@@ -25,7 +25,7 @@ static LTC_INLINE int s_pka_verify(const unsigned char *msg, unsigned long msgle
2525 switch (key -> id ) {
2626#ifdef LTC_MRSA
2727 case LTC_PKA_RSA :
28- rsa_params .params .hash_alg = hash_descriptor [ sig_args -> hash_idx ]. name ;
28+ rsa_params .params .hash_idx = sig_args -> hash_idx ;
2929 rsa_params .padding = LTC_PKCS_1_V1_5 ;
3030 /* RSA Keys usually use PKCS#1 v1.5 padding */
3131 return rsa_verify_hash_v2 (sig , siglen , msg , msglen , & rsa_params , stat , & key -> u .rsa );
@@ -103,17 +103,17 @@ int x509_cert_is_signed_by(const ltc_x509_certificate *cert, const ltc_pka_key *
103103 msglen = cert -> tbs_certificate .asn1 -> size ;
104104 } else {
105105 if (key -> id == LTC_PKA_RSA_PSS ) {
106- if (cert -> signature_algorithm .u .rsa_params .pss_oaep ) {
106+ if (cert -> signature_algorithm .u .rsa_params .hash_idx >= 0 ) {
107107 sig_args .rsa_params = & cert -> signature_algorithm .u .rsa_params ;
108- if (key -> u .rsa .params . pss_oaep && !rsa_params_equal (& key -> u .rsa .params , sig_args .rsa_params )) {
108+ if (key -> u .rsa .pss_oaep && !rsa_params_equal (& key -> u .rsa .params , sig_args .rsa_params )) {
109109 return CRYPT_PK_TYPE_MISMATCH ;
110110 }
111- } else if (key -> u .rsa .params . pss_oaep ) {
111+ } else if (key -> u .rsa .pss_oaep ) {
112112 sig_args .rsa_params = & key -> u .rsa .params ;
113113 } else {
114114 return CRYPT_PK_TYPE_MISMATCH ;
115115 }
116- hashalg = sig_args .rsa_params -> hash_alg ;
116+ hashalg = hash_descriptor [ sig_args .rsa_params -> hash_idx ]. name ;
117117 } else {
118118 hashalg = cert -> signature_algorithm .u .hash ;
119119 }
0 commit comments