@@ -154,22 +154,72 @@ int rsa_verify_hash_v2(const unsigned char *sig, unsigned long siglen,
154154 int * stat ,
155155 const rsa_key * key );
156156
157+ /* These use PKCS #1 v2.0 padding */
158+ #define ltc_rsa_encrypt_key (in , inlen , out , outlen , lp , lplen , prng_ , prng_idx , hash_idx , key ) \
159+ rsa_encrypt_key_v2(in, inlen, out, outlen, \
160+ &(ltc_rsa_op_parameters){ \
161+ .u.crypt.lparam = lp, \
162+ .u.crypt.lparamlen = lplen,\
163+ .prng = prng_, \
164+ .wprng = prng_idx, \
165+ .params.mgf1_hash_alg = hash_is_valid(hash_idx) == CRYPT_OK ? hash_descriptor[hash_idx].name : NULL, \
166+ .params.hash_alg = hash_is_valid(hash_idx) == CRYPT_OK ? hash_descriptor[hash_idx].name : NULL, \
167+ .padding = LTC_PKCS_1_OAEP, \
168+ }, key)
169+
170+ #define ltc_rsa_decrypt_key (in , inlen , out , outlen , lp , lplen , hash_idx , stat , key ) \
171+ rsa_decrypt_key_v2(in, inlen, out, outlen, \
172+ &(ltc_rsa_op_parameters){ \
173+ .u.crypt.lparam = lp, \
174+ .u.crypt.lparamlen = lplen,\
175+ .params.mgf1_hash_alg = hash_is_valid(hash_idx) == CRYPT_OK ? hash_descriptor[hash_idx].name : NULL, \
176+ .params.hash_alg = hash_is_valid(hash_idx) == CRYPT_OK ? hash_descriptor[hash_idx].name : NULL, \
177+ .padding = LTC_PKCS_1_OAEP, \
178+ }, stat, key)
179+
180+ #define ltc_rsa_sign_hash (hash , hashlen , sig , siglen , prng_ , prng_idx , hash_idx , saltlen_ , key ) \
181+ rsa_sign_hash_v2(hash, hashlen, sig, siglen, \
182+ &(ltc_rsa_op_parameters){ \
183+ .prng = prng_, \
184+ .wprng = prng_idx, \
185+ .params.mgf1_hash_alg = hash_is_valid(hash_idx) == CRYPT_OK ? hash_descriptor[hash_idx].name : NULL, \
186+ .params.hash_alg = hash_is_valid(hash_idx) == CRYPT_OK ? hash_descriptor[hash_idx].name : NULL, \
187+ .params.saltlen = saltlen_, \
188+ .padding = LTC_PKCS_1_PSS, \
189+ }, key)
190+
191+ #define ltc_rsa_verify_hash (sig , siglen , hash , hashlen , hash_idx , saltlen_ , stat , key ) \
192+ rsa_verify_hash_v2(sig, siglen, hash, hashlen, \
193+ &(ltc_rsa_op_parameters){ \
194+ .params.mgf1_hash_alg = hash_is_valid(hash_idx) == CRYPT_OK ? hash_descriptor[hash_idx].name : NULL, \
195+ .params.hash_alg = hash_is_valid(hash_idx) == CRYPT_OK ? hash_descriptor[hash_idx].name : NULL, \
196+ .params.saltlen = saltlen_, \
197+ .padding = LTC_PKCS_1_PSS, \
198+ }, stat, key)
199+
200+ //#define LTC_NO_DEPRECATED_APIS
201+ #ifdef LTC_NO_DEPRECATED_APIS
202+
203+ #define rsa_encrypt_key ltc_rsa_encrypt_key
204+ #define rsa_decrypt_key ltc_rsa_decrypt_key
205+ #define rsa_sign_hash ltc_rsa_sign_hash
206+ #define rsa_verify_hash ltc_rsa_verify_hash
207+
208+ #else /* LTC_NO_DEPRECATED_APIS */
209+
157210/* These use PKCS #1 v2.0 padding */
158211#define rsa_encrypt_key (in , inlen , out , outlen , lparam , lparamlen , prng , prng_idx , hash_idx , key ) \
159212 rsa_encrypt_key_ex(in, inlen, out, outlen, lparam, lparamlen, prng, prng_idx, hash_idx, LTC_PKCS_1_OAEP, key)
160213
161214#define rsa_decrypt_key (in , inlen , out , outlen , lparam , lparamlen , hash_idx , stat , key ) \
162215 rsa_decrypt_key_ex(in, inlen, out, outlen, lparam, lparamlen, hash_idx, LTC_PKCS_1_OAEP, stat, key)
163216
164- #define rsa_sign_hash (in , inlen , out , outlen , prng , prng_idx , hash_idx , saltlen , key ) \
165- rsa_sign_hash_ex(in, inlen, out, outlen , LTC_PKCS_1_PSS, prng, prng_idx, hash_idx, saltlen, key)
217+ #define rsa_sign_hash (hash , hashlen , sig , siglen , prng , prng_idx , hash_idx , saltlen , key ) \
218+ rsa_sign_hash_ex(hash, hashlen, sig, siglen , LTC_PKCS_1_PSS, prng, prng_idx, hash_idx, saltlen, key)
166219
167220#define rsa_verify_hash (sig , siglen , hash , hashlen , hash_idx , saltlen , stat , key ) \
168221 rsa_verify_hash_ex(sig, siglen, hash, hashlen, LTC_PKCS_1_PSS, hash_idx, saltlen, stat, key)
169222
170- #define rsa_sign_saltlen_get_max (hash_idx , key ) \
171- rsa_sign_saltlen_get_max_ex(LTC_PKCS_1_PSS, hash_idx, key)
172-
173223/* These can be switched between PKCS #1 v2.x and PKCS #1 v1.5 paddings */
174224LTC_DEPRECATED (rsa_encrypt_key_v2 )
175225int rsa_encrypt_key_ex (const unsigned char * in , unsigned long inlen ,
@@ -200,6 +250,10 @@ int rsa_verify_hash_ex(const unsigned char *sig, unsigned long sigle
200250 int padding ,
201251 int hash_idx , unsigned long saltlen ,
202252 int * stat , const rsa_key * key );
253+ #endif /* LTC_NO_DEPRECATED_APIS */
254+
255+ #define rsa_sign_saltlen_get_max (hash_idx , key ) \
256+ rsa_sign_saltlen_get_max_ex(LTC_PKCS_1_PSS, hash_idx, key)
203257
204258int rsa_sign_saltlen_get_max_ex (int padding , int hash_idx , const rsa_key * key );
205259
0 commit comments