needed for traversal of keys

This commit is contained in:
ian.mcgreer%sun.com 2001-12-17 13:43:34 +00:00
parent a8022ab91f
commit 5f437eeb8c

View File

@ -3288,12 +3288,18 @@ pk11_key_collect(DBT *key, DBT *data, void *arg)
PORT_Assert(slot->keyDB);
if (!keyData->strict && keyData->id) {
SECItem result;
PRBool haveMatch;
unsigned char hashKey[SHA1_LENGTH];
result.data = hashKey;
result.len = sizeof(hashKey);
SHA1_HashBuf( hashKey, key->data, key->size );
if (SECITEM_ItemsAreEqual(keyData->id,&result)) {
if (keyData->id->len == 0) {
haveMatch = PR_TRUE; /* taking any key */
} else {
SHA1_HashBuf( hashKey, key->data, key->size ); /* match id */
haveMatch = SECITEM_ItemsAreEqual(keyData->id,&result);
}
if (haveMatch) {
if (keyData->classFlags & NSC_PRIVATE) {
pk11_addHandle(keyData->searchHandles,
pk11_mkHandle(slot,&tmpDBKey,PK11_TOKEN_TYPE_PRIV));