Skip to content

Commit eddb02e

Browse files
committed
adopt to the latest changes in new-rsa-api branch
1 parent 326ed2e commit eddb02e

4 files changed

Lines changed: 15 additions & 8 deletions

File tree

src/headers/tomcrypt_private.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,7 @@ int rsa_import_pkcs1(const unsigned char *in, unsigned long inlen, rsa_key *key)
526526
int rsa_import_pkcs8_asn1(ltc_asn1_list *alg_id, ltc_asn1_list *priv_key, rsa_key *key);
527527
int rsa_import_spki(const unsigned char *in, unsigned long inlen, rsa_key *key);
528528
int rsa_decode_parameters(const ltc_asn1_list *parameters, rsa_key *key);
529+
int rsa_decode_pss_parameters(const ltc_asn1_list *parameters, ltc_rsa_parameters *rsa_params);
529530
#endif /* LTC_MRSA */
530531

531532
/* ---- DH Routines ---- */

src/pk/asn1/x509/x509_import.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ static int s_x509_get_sig_alg(const ltc_asn1_list *seq, ltc_x509_signature_algor
273273
return err;
274274
}
275275
if (sig_alg->pka == LTC_PKA_RSA_PSS && seq->child && seq->child->next) {
276-
if ((err = rsa_decode_parameters(seq->child->next, &sig_alg->u.rsa_params)) != CRYPT_OK) {
276+
if ((err = rsa_decode_pss_parameters(seq->child->next, &sig_alg->u.rsa_params)) != CRYPT_OK) {
277277
return err;
278278
}
279279
}

src/pk/asn1/x509/x509_utils.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

src/pk/rsa/rsa_import_x509.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ static int s_rsa_decode_parameters(const rsa_pss_parameters_data *d, ltc_rsa_par
127127
return CRYPT_OK;
128128
}
129129

130-
int rsa_decode_parameters(const ltc_asn1_list *parameters, rsa_key *key)
130+
int rsa_decode_pss_parameters(const ltc_asn1_list *parameters, ltc_rsa_parameters *rsa_params)
131131
{
132132
int err;
133133
rsa_pss_parameters_data d;
@@ -138,7 +138,13 @@ int rsa_decode_parameters(const ltc_asn1_list *parameters, rsa_key *key)
138138
return err;
139139
}
140140

141-
if ((err = s_rsa_decode_parameters(&d, &key->params)) != CRYPT_OK) {
141+
return s_rsa_decode_parameters(&d, rsa_params);
142+
}
143+
144+
int rsa_decode_parameters(const ltc_asn1_list *parameters, rsa_key *key)
145+
{
146+
int err;
147+
if ((err = rsa_decode_pss_parameters(parameters, &key->params)) != CRYPT_OK) {
142148
return err;
143149
}
144150
key->pss_oaep = 1;

0 commit comments

Comments
 (0)