upstream commit
don't ignore PKCS#11 hosted keys that return empty CKA_ID; patch by Jakub Jelen via bz#2429; ok markus Upstream-ID: 2f7c94744eb0342f8ee8bf97b2351d4e00116485
This commit is contained in:
parent
b15fd989c8
commit
63ebcd0005
20
ssh-pkcs11.c
20
ssh-pkcs11.c
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ssh-pkcs11.c,v 1.20 2015/07/18 08:00:21 djm Exp $ */
|
/* $OpenBSD: ssh-pkcs11.c,v 1.21 2015/07/18 08:02:17 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2010 Markus Friedl. All rights reserved.
|
* Copyright (c) 2010 Markus Friedl. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -481,15 +481,23 @@ pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx,
|
||||||
error("C_GetAttributeValue failed: %lu", rv);
|
error("C_GetAttributeValue failed: %lu", rv);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* check that none of the attributes are zero length */
|
/*
|
||||||
if (attribs[0].ulValueLen == 0 ||
|
* Allow CKA_ID (always first attribute) to be empty, but
|
||||||
attribs[1].ulValueLen == 0 ||
|
* ensure that none of the others are zero length.
|
||||||
|
* XXX assumes CKA_ID is always first.
|
||||||
|
*/
|
||||||
|
if (attribs[1].ulValueLen == 0 ||
|
||||||
attribs[2].ulValueLen == 0) {
|
attribs[2].ulValueLen == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* allocate buffers for attributes */
|
/* allocate buffers for attributes */
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++) {
|
||||||
attribs[i].pValue = xmalloc(attribs[i].ulValueLen);
|
if (attribs[i].ulValueLen > 0) {
|
||||||
|
attribs[i].pValue = xmalloc(
|
||||||
|
attribs[i].ulValueLen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* retrieve ID, modulus and public exponent of RSA key,
|
* retrieve ID, modulus and public exponent of RSA key,
|
||||||
* or ID, subject and value for certificates.
|
* or ID, subject and value for certificates.
|
||||||
|
|
Loading…
Reference in New Issue