only set the key_reference if present

Thanks to Andrej Komelj <akomelj@email.si>


git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@1785 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
nils 2004-05-20 09:36:58 +00:00
parent 8147c22a93
commit 0ea8a53c0e
1 changed files with 14 additions and 6 deletions

View File

@ -106,9 +106,13 @@ int sc_pkcs15_decipher(struct sc_pkcs15_card *p15card,
}
senv.operation = SC_SEC_OPERATION_DECIPHER;
senv.key_ref_len = 1;
senv.key_ref[0] = prkey->key_reference & 0xFF;
senv.flags = SC_SEC_ENV_KEY_REF_PRESENT;
senv.flags = 0;
/* optional keyReference attribute (the default value is -1) */
if (prkey->key_reference >= 0) {
senv.key_ref_len = 1;
senv.key_ref[0] = prkey->key_reference & 0xFF;
senv.flags |= SC_SEC_ENV_KEY_REF_PRESENT;
}
senv.flags |= SC_SEC_ENV_ALG_PRESENT;
r = sc_lock(p15card->card);
@ -281,9 +285,13 @@ int sc_pkcs15_compute_signature(struct sc_pkcs15_card *p15card,
}
senv.operation = SC_SEC_OPERATION_SIGN;
senv.key_ref_len = 1;
senv.key_ref[0] = prkey->key_reference & 0xFF;
senv.flags = SC_SEC_ENV_KEY_REF_PRESENT;
senv.flags = 0;
/* optional keyReference attribute (the default value is -1) */
if (prkey->key_reference >= 0) {
senv.key_ref_len = 1;
senv.key_ref[0] = prkey->key_reference & 0xFF;
senv.flags |= SC_SEC_ENV_KEY_REF_PRESENT;
}
senv.flags |= SC_SEC_ENV_ALG_PRESENT;
r = sc_lock(p15card->card);