diff options
author | Tim Taubert <ttaubert@mozilla.com> | 2017-02-02 15:50:56 +0100 |
---|---|---|
committer | Tim Taubert <ttaubert@mozilla.com> | 2017-02-02 15:50:56 +0100 |
commit | 1aecb544bed7048844655e0f6328b51fbf00ca2b (patch) | |
tree | 6de688dd6e273c67e413f42b8ee2e6baa16f6f90 /lib/cryptohi | |
parent | e271322723ffb06cc0a1060389d399560db055eb (diff) | |
download | nss-hg-1aecb544bed7048844655e0f6328b51fbf00ca2b.tar.gz |
Bug 1295121 - Add the ability to load PKCS#8 ECDSA private keys r=franziskus
Differential Revision: https://nss-review.dev.mozaws.net/D185
Diffstat (limited to 'lib/cryptohi')
-rw-r--r-- | lib/cryptohi/seckey.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/cryptohi/seckey.c b/lib/cryptohi/seckey.c index 1f053e583..df976f46c 100644 --- a/lib/cryptohi/seckey.c +++ b/lib/cryptohi/seckey.c @@ -1242,6 +1242,22 @@ SECKEY_ConvertToPublicKey(SECKEYPrivateKey *privk) break; return pubk; break; + case ecKey: + rv = PK11_ReadAttribute(privk->pkcs11Slot, privk->pkcs11ID, + CKA_EC_PARAMS, arena, &pubk->u.ec.DEREncodedParams); + if (rv != SECSuccess) { + break; + } + rv = PK11_ReadAttribute(privk->pkcs11Slot, privk->pkcs11ID, + CKA_EC_POINT, arena, &pubk->u.ec.publicValue); + if (rv != SECSuccess || pubk->u.ec.publicValue.len == 0) { + break; + } + rv = seckey_SetPointEncoding(arena, pubk); + if (rv != SECSuccess) { + break; + } + return pubk; default: break; } |