summaryrefslogtreecommitdiff
path: root/f6/9aed97938b38abb79cd3e8b3bdfb62335a2faa
blob: 3cf5246724e8e4cb67a4f27c11f72013c6dbec5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193]
	helo=mx.sourceforge.net)
	by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <mw@osfda.org>) id 1X72qV-0005WU-At
	for bitcoin-development@lists.sourceforge.net;
	Tue, 15 Jul 2014 13:32:39 +0000
Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of osfda.org
	designates 217.23.13.216 as permitted sender)
	client-ip=217.23.13.216; envelope-from=mw@osfda.org;
	helo=smtp.osfda.org; 
Received: from smtp.osfda.org ([217.23.13.216])
	by sog-mx-3.v43.ch3.sourceforge.com with esmtp (Exim 4.76)
	id 1X72qT-00020c-R7 for bitcoin-development@lists.sourceforge.net;
	Tue, 15 Jul 2014 13:32:39 +0000
Received: from [38.105.161.253] (unknown [38.105.161.253])
	(using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by smtp.osfda.org (Postfix) with ESMTPSA id 2833513A01B9;
	Tue, 15 Jul 2014 15:32:10 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Michael Wozniak <mw@osfda.org>
In-Reply-To: <lq39p1$gff$1@ger.gmane.org>
Date: Tue, 15 Jul 2014 09:32:01 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <365F4709-54A6-4E14-BA6F-BCFB36DBAA96@osfda.org>
References: <CANEZrP3ZzCBohXWZmZxE=ofP74Df4Hd-hCLH6jYn=JKbiqNQXA@mail.gmail.com>
	<CAObn+gfbH61kyv_ttT4vsQuNFRWLB5H3xaux7GQ0co82ucO_eA@mail.gmail.com>
	<lq39p1$gff$1@ger.gmane.org>
To: Andreas Schildbach <andreas@schildbach.de>
X-Mailer: Apple Mail (2.1878.6)
X-Spam-Score: -1.6 (-)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	-0.0 SPF_PASS               SPF: sender matches SPF record
	-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay
	domain
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1X72qT-00020c-R7
Cc: bitcoin-development@lists.sourceforge.net
Subject: Re: [Bitcoin-development] BIP 38 NFC normalisation issue
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Tue, 15 Jul 2014 13:32:39 -0000

I have a python implementation that seems to pass this test vector:

https://github.com/wozz/electrum/blob/bip38_import/lib/bip38.py#L299



On Jul 15, 2014, at 9:19 AM, Andreas Schildbach <andreas@schildbach.de> =
wrote:

> I think generally control-characters (such as \u0000) should be
> disallowed in passphrases. (Even the use of whitespaces is very
> questionable.)
>=20
> I'm ok with allowing pile-of-poo's. On mobile phones there is =
keyboards
> just containing emoticons -- why not allow those? Assuming NFC works =
of
> course.
>=20
>=20
> On 07/15/2014 03:07 PM, Eric Winer wrote:
>> I don't know for sure if the test vector is correct NFC form.  But =
for
>> what it's worth, the Pile of Poo character is pretty easily =
accessible
>> on the iPhone and Android keyboards, and in this string it's already =
in
>> NFC form (f09f92a9 in the test result).  I've certainly seen it in
>> usernames around the internet, and wouldn't be surprised to see it in
>> passphrases entered on smartphones, especially if the author of a
>> BIP38-compatible app includes a (possibly ill-advised) suggestion to
>> have your passphrase "include special characters".
>>=20
>> I haven't seen the NULL character on any smartphone keyboards, though =
-
>> I assume the iOS and Android developers had the foresight to know how
>> much havoc that would wreak on systems assuming null-terminated =
strings.
>> It seems unlikely that NULL would be in a real-world passphrase =
entered
>> by a sane user.
>>=20
>>=20
>> On Tue, Jul 15, 2014 at 8:03 AM, Mike Hearn <mike@plan99.net
>> <mailto:mike@plan99.net>> wrote:
>>=20
>>    [+cc aaron]
>>=20
>>    We recently added an implementation of BIP 38 (password protected
>>    private keys) to bitcoinj. It came to my attention that the third
>>    test vector may be broken. It gives a hex version of what the NFC
>>    normalised version of the input string should be, but this does =
not
>>    match the results of the Java unicode normaliser, and in fact I
>>    can't even get Python to print the names of the characters past =
the
>>    embedded null. I'm curious where this normalised version came =
from.
>>=20
>>    Given that "pile of poo" is not a character I think any sane user
>>    would put into a passphrase, I question the value of this test
>>    vector. NFC form is intended to collapse things like umlaut =
control
>>    characters onto their prior code point, but here we're feeding the
>>    algorithm what is basically garbage so I'm not totally surprised
>>    that different implementations appear to disagree on the outcome.
>>=20
>>    Proposed action: we remove this test vector as it does not =
represent
>>    any real world usage of the spec, or if we desperately need to
>>    verify NFC normalisation I suggest using a different, more =
realistic
>>    test string, like Z=C3=BCrich, or something written in Thai.
>>=20
>>=20
>>=20
>>    Test 3:
>>=20
>>      * Passphrase =CF=92=CC=81=E2=90=80=F0=90=90=80=F0=9F=92=A9 =
(\u03D2\u0301\u0000\U00010400\U0001F4A9; GREEK
>>        UPSILON WITH HOOK <http://codepoints.net/U+03D2>, COMBINING
>>        ACUTE ACCENT <http://codepoints.net/U+0301>, NULL
>>        <http://codepoints.net/U+0000>, DESERET CAPITAL LETTER LONG I
>>        <http://codepoints.net/U+10400>, PILE OF POO
>>        <http://codepoints.net/U+1F4A9>)
>>      * Encrypted key:
>>        6PRW5o9FLp4gJDDVqJQKJFTpMvdsSGJxMYHtHaQBF3ooa8mwD69bapcDQn
>>      * Bitcoin Address: 16ktGzmfrurhbhi6JGqsMWf7TyqK9HNAeF
>>      * Unencrypted private key (WIF):
>>        5Jajm8eQ22H3pGWLEVCXyvND8dQZhiQhoLJNKjYXk9roUFTMSZ4
>>      * /Note:/ The non-standard UTF-8 characters in this passphrase
>>        should be NFC normalized to result in a passphrase
>>        of0xcf9300f0909080f09f92a9 before further processing
>>=20
>>=20
>>=20
>>=20
>>    =
--------------------------------------------------------------------------=
----
>>    Want fast and easy access to all the code in your enterprise? =
Index and
>>    search up to 200,000 lines of code with a free copy of Black Duck
>>    Code Sight - the same software that powers the world's largest =
code
>>    search on Ohloh, the Black Duck Open Hub! Try it now.
>>    http://p.sf.net/sfu/bds
>>    _______________________________________________
>>    Bitcoin-development mailing list
>>    Bitcoin-development@lists.sourceforge.net
>>    <mailto:Bitcoin-development@lists.sourceforge.net>
>>    https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>=20
>>=20
>>=20
>>=20
>> =
--------------------------------------------------------------------------=
----
>> Want fast and easy access to all the code in your enterprise? Index =
and
>> search up to 200,000 lines of code with a free copy of Black Duck
>> Code Sight - the same software that powers the world's largest code
>> search on Ohloh, the Black Duck Open Hub! Try it now.
>> http://p.sf.net/sfu/bds
>>=20
>>=20
>>=20
>> _______________________________________________
>> Bitcoin-development mailing list
>> Bitcoin-development@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>=20
>=20
>=20
>=20
> =
--------------------------------------------------------------------------=
----
> Want fast and easy access to all the code in your enterprise? Index =
and
> search up to 200,000 lines of code with a free copy of Black Duck
> Code Sight - the same software that powers the world's largest code
> search on Ohloh, the Black Duck Open Hub! Try it now.
> http://p.sf.net/sfu/bds
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development