sc-hsm: Check the operation first
This commit is contained in:
parent
df0bbc110e
commit
86fd200462
@ -1001,7 +1001,9 @@ static int sc_hsm_set_security_env(sc_card_t *card,
|
||||
}
|
||||
break;
|
||||
case SC_ALGORITHM_EC:
|
||||
if (env->algorithm_flags & SC_ALGORITHM_ECDSA_HASH_NONE) {
|
||||
if (env->operation == SC_SEC_OPERATION_DERIVE) {
|
||||
priv->algorithm = ALGO_EC_DH;
|
||||
} else if (env->algorithm_flags & SC_ALGORITHM_ECDSA_HASH_NONE) {
|
||||
priv->algorithm = ALGO_EC_RAW;
|
||||
} else if (env->algorithm_flags & SC_ALGORITHM_ECDSA_HASH_SHA1) {
|
||||
priv->algorithm = ALGO_EC_SHA1;
|
||||
@ -1009,12 +1011,8 @@ static int sc_hsm_set_security_env(sc_card_t *card,
|
||||
priv->algorithm = ALGO_EC_SHA224;
|
||||
} else if (env->algorithm_flags & SC_ALGORITHM_ECDSA_HASH_SHA256) {
|
||||
priv->algorithm = ALGO_EC_SHA256;
|
||||
} else if (env->algorithm_flags & SC_ALGORITHM_ECDH_CDH_RAW) {
|
||||
if (env->operation == SC_SEC_OPERATION_DERIVE) {
|
||||
priv->algorithm = ALGO_EC_DH;
|
||||
} else {
|
||||
priv->algorithm = ALGO_EC_RAW;
|
||||
}
|
||||
} else if (env->algorithm_flags & SC_ALGORITHM_ECDSA_RAW) {
|
||||
priv->algorithm = ALGO_EC_RAW;
|
||||
} else {
|
||||
LOG_FUNC_RETURN(card->ctx, SC_ERROR_INVALID_ARGUMENTS);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user