BIP 38 NFC normalisation issue



Summary:

The problem with Unicode astral plane is caused by a plain old (ASCII) control character, \u0000. It is suggested to ban/filter ISO control characters to solve this issue. However, it is assumed that Character.isISOControl() works consistently across platforms. Aaron Voisine suggests limiting the spec to the subset of Unicode that all popular platforms can support if JVMs can't support Unicode NFC. Mike Hearn recommends refusing any passphrase that includes characters outside the BMP for compatibility with JVM based wallets. He suspects that Java may not/won't support this kind of thing because it uses 16 bit characters internally. The email also includes a link to Black Duck Code Sight for indexing and searching up to 200,000 lines of code.


Updated on: 2023-06-09T00:57:07.566337+00:00