diff options
author | wyllys <none@none> | 2007-12-21 13:00:16 -0800 |
---|---|---|
committer | wyllys <none@none> | 2007-12-21 13:00:16 -0800 |
commit | 71a79fe7afa36dcf0de6902c2c6ef432980534d3 (patch) | |
tree | 5771259a7edc8f3a7aec798e840f560698353513 | |
parent | ba753d4a1cf19adb873981f5e1dbc4daa05f91ab (diff) | |
download | illumos-joyent-71a79fe7afa36dcf0de6902c2c6ef432980534d3.tar.gz |
6643206 pktool should check for all keys when exporting objtype=key
-rw-r--r-- | usr/src/cmd/cmd-crypto/pktool/export.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/usr/src/cmd/cmd-crypto/pktool/export.c b/usr/src/cmd/cmd-crypto/pktool/export.c index 2e973f8184..be24ba0b9c 100644 --- a/usr/src/cmd/cmd-crypto/pktool/export.c +++ b/usr/src/cmd/cmd-crypto/pktool/export.c @@ -520,6 +520,22 @@ pk_export_pk11_keys(KMF_HANDLE_T kmfhandle, char *token, numattr++; rv = kmf_find_key(kmfhandle, numattr, attrlist); + /* + * If nothing found but caller wanted ALL keys, try symmetric + * this time. + */ + if (rv == KMF_ERR_KEY_NOT_FOUND && (oclass == PK_KEY_OBJ)) { + kclass = KMF_SYMMETRIC; + rv = kmf_find_key(kmfhandle, numattr, attrlist); + } + /* + * If nothing found but caller wanted ALL keys, try asymmetric + * public this time. + */ + if (rv == KMF_ERR_KEY_NOT_FOUND && (oclass == PK_KEY_OBJ)) { + kclass = KMF_ASYM_PUB; + rv = kmf_find_key(kmfhandle, numattr, attrlist); + } if (rv == KMF_OK && key.keyclass == KMF_SYMMETRIC) { KMF_RAW_SYM_KEY rkey; |