diff options
author | relyea%netscape.com <devnull@localhost> | 2001-06-06 23:41:24 +0000 |
---|---|---|
committer | relyea%netscape.com <devnull@localhost> | 2001-06-06 23:41:24 +0000 |
commit | 80c99d55eeb72949c98db5c5818f07b85ca75f15 (patch) | |
tree | 0582b62fb7ccc3772072b331652e989cbbf47b6c /security | |
parent | 0ab02f489e653297ef1c40d1677f04f55650130c (diff) | |
download | nss-hg-80c99d55eeb72949c98db5c5818f07b85ca75f15.tar.gz |
Add DER version of key for cert exists for JSS.
Diffstat (limited to 'security')
-rw-r--r-- | security/nss/lib/pk11wrap/pk11cert.c | 18 | ||||
-rw-r--r-- | security/nss/lib/pk11wrap/pk11func.h | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/security/nss/lib/pk11wrap/pk11cert.c b/security/nss/lib/pk11wrap/pk11cert.c index 1209c93b9..e6774cac9 100644 --- a/security/nss/lib/pk11wrap/pk11cert.c +++ b/security/nss/lib/pk11wrap/pk11cert.c @@ -1546,6 +1546,24 @@ PK11_KeyForCertExists(CERTCertificate *cert, CK_OBJECT_HANDLE *keyPtr, return slot; } +/* + * import a cert for a private key we have already generated. Set the label + * on both to be the nickname. This is for the Key Gen, orphaned key case. + */ +PK11SlotInfo * +PK11_KeyForDERCertExists(SECItem *derCert, CK_OBJECT_HANDLE *keyPtr, + void *wincx) { + CERTCertificate *cert; + PK11SlotInfo *slot = NULL; + + cert = CERT_NewTempCertificate(CERT_GetDefaultCertDB(), derCert, NULL, + PR_FALSE, PR_TRUE); + if (cert == NULL) return NULL; + + slot = PK11_KeyForCertExists(cert, keyPtr, wincx); + CERT_DestroyCertificate (cert); + return slot; +} PK11SlotInfo * PK11_ImportCertForKey(CERTCertificate *cert, char *nickname,void *wincx) { diff --git a/security/nss/lib/pk11wrap/pk11func.h b/security/nss/lib/pk11wrap/pk11func.h index e455cb164..289db9207 100644 --- a/security/nss/lib/pk11wrap/pk11func.h +++ b/security/nss/lib/pk11wrap/pk11func.h @@ -350,6 +350,8 @@ CK_OBJECT_HANDLE * PK11_FindObjectsFromNickname(char *nickname, void *wincx); PK11SlotInfo *PK11_KeyForCertExists(CERTCertificate *cert, CK_OBJECT_HANDLE *keyPtr, void *wincx); +PK11SlotInfo *PK11_KeyForDERCertExists(SECItem *derCert, + CK_OBJECT_HANDLE *keyPtr, void *wincx); CK_OBJECT_HANDLE PK11_MatchItem(PK11SlotInfo *slot,CK_OBJECT_HANDLE peer, CK_OBJECT_CLASS o_class); CERTCertificate * PK11_FindCertByIssuerAndSN(PK11SlotInfo **slot, |