Closed
Bug 102966
Opened 23 years ago
Closed 23 years ago
fromRaw() does not set correct KeyType
Categories
(JSS Graveyard :: Library, defect, P1)
Tracking
(Not tracked)
3.1.1
People
(Reporter: mzhao, Assigned: jamie-bugzilla)
Details
Attachments
(1 file)
616 bytes,
patch
|
Details | Diff | Splinter Review |
The PK11Pubkey created using fromRaw doe not setup KeyType PrivateKey.Type keyType = null; String alg = signKey.getAlgorithm(); if(alg.equals("RSA")) { Debug.trace("RSA"); keyType = PrivateKey.RSA; } else if( alg.equals("DSA")) { Debug.trace("DSA"); keyType = PrivateKey.DSA; } else { Assert.NotReached("Unknown key type"); } try{ FileOutputStream fo = new FileOutputStream("/tmp/cert"); fo.write(((X509Key)signKey).getKey()); fo.close(); }catch (Exception e) { FileOutputStream fo = new FileOutputStream("/tmp/ex"); PrintStream ps = new PrintStream(fo); e.printStackTrace(ps); fo.close(); ps.close(); } PK11PubKey pubK = PK11PubKey.fromRaw(keyType,((X509Key)signKey).getKey()); si.verify(digest, id, pubK); The above code failed in CMS because the pubK does not have KeyType. (dbx) pathmap /u/mzhao/jss/mozilla/security/jss/org/mozilla/jss/pkcs11 (dbx) list 88 jobject pubKey=NULL; 89 jclass keyClass; 90 KeyType keyType; 91 jmethodID constructor; 92 jbyteArray ptr; 93 char *keyClassName; 94 95 PR_ASSERT(env!=NULL && pKey!=NULL); 96 97 /* What kind of public key? */ (dbx) next t@28 (l@20) stopped in JSS_PK11_wrapPubKey at line 95 in file "PK11PubKey.c" 95 PR_ASSERT(env!=NULL && pKey!=NULL); (dbx) next t@28 (l@20) stopped in JSS_PK11_wrapPubKey at line 98 in file "PK11PubKey.c" 98 keyType = (*pKey)->keyType; (dbx) next t@28 (l@20) stopped in JSS_PK11_wrapPubKey at line 99 in file "PK11PubKey.c" 99 switch(keyType) { (dbx) print keyType keyType = nullKey /tmp ->dumpasn1 cert 0 30 72: SEQUENCE { 2 02 65: INTEGER : 00 C8 B2 75 0E 26 5C 33 A5 C7 27 D1 1A E8 C3 CD : 1A 16 8E 5F C5 DE 89 40 98 0D 9D 50 3F 8E E0 49 : A1 27 4E 66 2D E8 5D CC 00 76 8F 14 C1 96 E6 01 : 82 73 C1 10 B8 29 49 6F 97 08 71 21 46 93 D3 F6 : DF 69 02 3: INTEGER 65537 : }
This is the RSA key I passed into fromRaw. You can test it out with simple test programs if you prefer. MEgCQQDIsnUOJlwzpccn0Rrow80aFo5fxd6JQJgNnVA/juBJoSdOZi3oXcwAdo8UwZbmAYJzwRC4 KUlvlwhxIUaT0/bfAgMBAAE=
Assignee | ||
Comment 2•23 years ago
|
||
*** This bug has been marked as a duplicate of 95666 ***
Status: UNCONFIRMED → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
Comment 3•23 years ago
|
||
Comment 4•23 years ago
|
||
The fix for NSS bug 95666 did not make it into NSS 3.3.1, so we need to work around it in JSS 3.1.1, if possible. Michelle reported that my patch (attachment 52085 [details] [diff] [review]) fixed the problem, so I went ahead and checked it in on the JSS_3_1_BRANCH. I would still appreciate a code review.
Priority: -- → P1
Target Milestone: --- → 3.1.1
Assignee | ||
Comment 5•23 years ago
|
||
This patch looks correct. It is checked in only on the JSS_3_1_BRANCH, which is good because the bug has been fixed in the NSS trunk.
Comment 6•23 years ago
|
||
The NSS bug (bug 95666) is also fixed on NSS_3_3_BRANCH and will be in NSS 3.3.2. We could back out the workaround from JSS_3_1_BRANCH when it switches to NSS 3.3.2, but I think it is not worth the trouble.
You need to log in
before you can comment on or make changes to this bug.
Description
•