Hello Andrew, I'll need a little more time to come up to speed on this fix. I'm concerned that there may be interoperability or backwards compatibility issues.
Andrew John Hughes wrote: > 2009/9/2 Andrew John Hughes <gnu_and...@member.fsf.org>: >> 2009/9/2 Michael StJohns <mstjo...@comcast.net>: >>> At 09:38 PM 9/1/2009, Andrew John Hughes wrote: >>>> 2009/9/2 Michael StJohns <mstjo...@comcast.net>: >>>>>  This appears to be related specifically to PKCS11. Specifically, >>>>> PKCS11 >>>>> v2.20 has some ambiguity of the representation of an EC point (which is >>>>> different in the text than an ASN1 ECPoint). >>>>> >>>>> This is being clarified in v2.30 with the unencoded point format (e.g.the >>>>> format described in X9.62, where the first octet indicates the encoding >>>>> and >>>>> there are either N or 2N octets following) being the expected value, but >>>>> with PKCS11 providers allowed - legacy - to accept either. >>>>> >>>>> One of the reasons for going that way was how the JDK PKCS11 provider had >>>>> interpreted the issue and implemented its code. >>>>> >>>>> I don't support this fix - among other things, this fix only deals with >>>>> 1/2 >>>>> of the problem. The other half is related to encoding the value. Also, >>>>> changing the code at decodePoint seems further into the stack than needed >>>>> and may affect other uses of that method. >>>>> >>>> That's really too vague to be of much help in improving the patch. >>>> You seem to be saying little more than 'I don't like it'. >>> Sorry about that. My point was that your patch didn't completely solve the >>> problem and that the point at where you were fixing it could have some bad >>> side effects for anyone calling decodePoint directly. >>> >>> >>>>> There's an existing JDK bug on this coming at it from a different >>>>> direction >>>>> - 6763530 ... and there may be considerations at >>>>> >>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=480280 >>>>> >>>> It seems likely that's the NSS change that causes the current failure. >>>> The fix I submitted here is based on the way this is handle in NSS. >>>> In fact, the code is similar enough to suggest that one was developed >>> >from the other. >>>>>  that should be looked at. >>>> The JDK bug is not really 'from a different direction', it's reporting >>>> exactly the same error but from a less trivial example (I get the same >>>> failure while trying to create an example key, while this seems to >>>> require specific hardware if I'm reading it correctly). >>> Not exactly. You're using the NSS as a PKCS11 module - this problem would >>> occur with any PKCS11 module that implements EC stuff. >>> >>> >>>> Also see 6779460 which is mostly a duplicate of >>>>> 6763530. >>>>> >>>> The patch on 6779460 seems wrong. It means that the method will >>>> return a DER-encoded value where it would either have returned an >>>> uncompressed value before or failed. >>> My point exactly as I mentioned in the comments. :-) >>> >>> >>>>> It's probable that the fix I suggested at 6763530 (in comments >>>>> submitted 29 >>>>> Nov 08) may be a better approach given the NSS fixes. I believe it will >>>>> fix >>>>> the keytool problem noted in the original message. >>>>> >>>> Ok, I can see the logic in the fix and it would appear to work, though >>>> I haven't tested it. >>>> Given the patch was written nine months ago, why has it not been >>>> applied? If it had, it would have saved me hours having to debug this >>>> same issue again. >>> Yup. I did do a search for PKCS11 related bugs when I encountered the same >>> problem and did find the original error. >>> >>>> Do you have an SCA with Sun? If so, I'll create a webrev based on your >>>> patch and we can finally get this fixed. Without it, NSS support is >>>> completely broken in OpenJDK6 which makes me wonder why this is a low >>>> priority bug! >>> I do have an SCA on file. Note that the recommendation from the NSS guys >>> was to raise the priority. >>> >>> The reason I haven't submitted this is because I submitted a different EC >>> fix https://bugs.openjdk.java.net/show_bug.cgi?id=100048 per the >>> documented process >>> and was waiting on progress there before continuing. I've got a number of >>> EC and PKCS11 related fixes I'd like to submit, but I was trying for a >>> worked example before proceeding. And then I got busy with some other >>> things... >>> >>> Mike >>> >>> >>> >>> >>> >>>>> Mike >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> At 04:39 PM 9/1/2009, Joe Darcy wrote: >>>>> >>>>> Andrew John Hughes wrote: >>>>> >>>>> 2009/8/28 Andrew John Hughes <gnu_and...@member.fsf.org>: >>>>> >>>>> In OpenJDK6, the elliptic curve cryptography algorithms are available >>>>> if the PKCS11 provider is configured to point to NSS. See: >>>>> >>>>> http://blogs.sun.com/andreas/entry/the_java_pkcs_11_provider >>>>> >>>>> If NSS is configured as specified in this blog, keytool can be used to >>>>> generate a key as follows: >>>>> >>>>> Hello. >>>>> >>>>> Allowing keytool and friends to work in more cases if the provider is >>>>> capable seems fine to me. >>>>> >>>>> Security team, do you have concerns about this patch? >>>>> >>>>> Thanks, >>>>> >>>>> -Joe >>>>> >>>> >>>> >>>> -- >>>> Andrew :-) >>>> >>>> Free Java Software Engineer >>>> Red Hat, Inc. (http://www.redhat.com) >>>> >>>> Support Free Java! >>>> Contribute to GNU Classpath and the OpenJDK >>>> http://www.gnu.org/software/classpath >>>> http://openjdk.java.net >>>> >>>> PGP Key: 94EFD9D8 (http://subkeys.pgp.net) >>>> Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 >>> >>> >> Ok here is a new webrev: >> >> http://cr.openjdk.java.net/~andrew/6763530/webrev.02/ >> >> with a slightly revised version of your change (you can't throw a >> PKCS11Exception which only takes a long ID from the native code, so I >> changed this to an IllegalArgumentException). >> >> Security team, does this look ok to push? >> -- >> Andrew :-) >> >> Free Java Software Engineer >> Red Hat, Inc. (http://www.redhat.com) >> >> Support Free Java! >> Contribute to GNU Classpath and the OpenJDK >> http://www.gnu.org/software/classpath >> http://openjdk.java.net >> >> PGP Key: 94EFD9D8 (http://subkeys.pgp.net) >> Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 >> > > Ping! Security developers, any thoughts on this patch: > > http://cr.openjdk.java.net/~andrew/6763530/webrev.02/ > > Does it look ok to push? > > Thanks,