}
alg_class = TEE_OPERATION_ASYMMETRIC_CIPHER;
- key_object_type = TEE_TYPE_RSA_KEYPAIR;
+ if (mode == TEE_MODE_ENCRYPT)
+ key_object_type = TEE_TYPE_RSA_PUBLIC_KEY;
+ else
+ key_object_type = TEE_TYPE_RSA_KEYPAIR;
block_len = 0;
- digest_len = 0;
+ digest_len = 0;
break;
/* Algorithm Class is SIGNATURE */
}
alg_class = TEE_OPERATION_ASYMMETRIC_SIGNATURE;
- key_object_type = TEE_TYPE_RSA_KEYPAIR;
+ if (mode == TEE_MODE_SIGN)
+ key_object_type = TEE_TYPE_RSA_KEYPAIR;
+ else
+ key_object_type = TEE_TYPE_RSA_PUBLIC_KEY;
break;
case TEE_ALG_ECDSA_P160:
}
alg_class = TEE_OPERATION_ASYMMETRIC_SIGNATURE;
- key_object_type = TEE_TYPE_RSA_KEYPAIR;
+ if (mode == TEE_MODE_SIGN)
+ key_object_type = TEE_TYPE_ECDSA_KEYPAIR;
+ else
+ key_object_type = TEE_TYPE_ECDSA_PUBLIC_KEY;
break;
case TEE_ALG_DSA_SHA1:
}
alg_class = TEE_OPERATION_ASYMMETRIC_SIGNATURE;
- key_object_type = TEE_TYPE_DSA_KEYPAIR;
+ if (mode == TEE_MODE_SIGN)
+ key_object_type = TEE_TYPE_DSA_KEYPAIR;
+ else
+ key_object_type = TEE_TYPE_DSA_PUBLIC_KEY;
break;
case TEE_ALG_ECDH_P192:
}
alg_class = TEE_OPERATION_ASYMMETRIC_SIGNATURE;
- key_object_type = TEE_TYPE_ECDH_KEYPAIR;
+ if (mode == TEE_MODE_SIGN)
+ key_object_type = TEE_TYPE_ECDH_KEYPAIR;
+ else
+ key_object_type = TEE_TYPE_ECDH_KEYPAIR;
break;
/* Algorithm Class is KEY DERIVATION */