Skip to content

Commit f1c3baf

Browse files
authored
Merge pull request #33 from bandi13/fixRSASignVerify
Fix rsa sign verify
2 parents f1cecf3 + beb3df4 commit f1c3baf

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/wp_rsa_sig.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -414,15 +414,20 @@ static int wp_rsa_signverify_init(wp_RsaSigCtx* ctx, wp_Rsa* rsa,
414414
{
415415
int ok = 1;
416416

417-
if (ctx->rsa != rsa) {
417+
if ((ctx == NULL) || (rsa == NULL)) {
418+
ok = 0;
419+
}
420+
if (ok && (ctx->rsa != rsa)) {
418421
wp_rsa_free(ctx->rsa);
419422
ctx->rsa = NULL;
420423
if (!wp_rsa_up_ref(rsa)) {
421424
ok = 0;
422425
}
426+
else {
427+
ctx->rsa = rsa;
428+
}
423429
}
424430
if (ok) {
425-
ctx->rsa = rsa;
426431
ctx->op = op;
427432

428433
if (!wp_rsa_set_ctx_params(ctx, params)) {
@@ -432,14 +437,14 @@ static int wp_rsa_signverify_init(wp_RsaSigCtx* ctx, wp_Rsa* rsa,
432437
if (ok) {
433438
ctx->saltLen = RSA_PSS_SALTLEN_AUTO;
434439

435-
if (wp_rsa_get_type(rsa) == RSA_FLAG_TYPE_RSA) {
440+
if (wp_rsa_get_type(ctx->rsa) == RSA_FLAG_TYPE_RSA) {
436441
ctx->padMode = RSA_PKCS1_PADDING;
437442
}
438443
else {
439444
char* mdName;
440445
char* mgfMdName;
441446
ctx->padMode = RSA_PKCS1_PSS_PADDING;
442-
wp_rsa_get_pss_mds(rsa, &mdName, &mgfMdName);
447+
wp_rsa_get_pss_mds(ctx->rsa, &mdName, &mgfMdName);
443448
if ((mdName == NULL) || (mdName[0] == '\0')) {
444449
mdName = (char*)WP_RSA_DEFAULT_MD;
445450
}
@@ -453,7 +458,7 @@ static int wp_rsa_signverify_init(wp_RsaSigCtx* ctx, wp_Rsa* rsa,
453458
ok = 0;
454459
}
455460
if (ok) {
456-
ctx->minSaltLen = wp_rsa_get_pss_salt_len(rsa);
461+
ctx->minSaltLen = wp_rsa_get_pss_salt_len(ctx->rsa);
457462
if (ok && !wp_rsa_check_pss_salt_len(ctx)) {
458463
ok = 0;
459464
}

0 commit comments

Comments
 (0)