| line |
true |
false |
branch |
|
115
|
0 |
20 |
CHECK_NEW(rsa, 1, rsaData); |
|
119
|
0 |
20 |
return sv_bless( |
|
214
|
8 |
0 |
return EVP_Q_digest(NULL, "MD5", NULL, text, text_length, md, NULL) ? md : NULL; |
|
238
|
7 |
0 |
return EVP_Q_digest(NULL, "RIPEMD160", NULL, text, text_length, md, NULL) ? md : NULL; |
|
258
|
41 |
23 |
: &PL_sv_undef; |
|
267
|
0 |
17 |
CHECK_OPEN_SSL(BIO_flush(p_stringBio) == 1); |
|
272
|
0 |
17 |
CHECK_OPEN_SSL(BIO_set_close(p_stringBio, BIO_CLOSE) == 1); |
|
290
|
4 |
7 |
if (SvPOK(p_passphaseSv)) { |
|
294
|
0 |
11 |
CHECK_OPEN_SSL(stringBIO = BIO_new_mem_buf(keyString, keyStringLength)); |
|
298
|
0 |
11 |
CHECK_OPEN_SSL(BIO_set_close(stringBIO, BIO_CLOSE) == 1); |
|
301
|
0 |
11 |
CHECK_OPEN_SSL(rsa); |
|
324
|
0 |
15 |
CHECK_NEW(to, size, UNSIGNED_CHAR); |
|
327
|
0 |
15 |
if(p_rsa->padding == RSA_PKCS1_PSS_PADDING) |
|
333
|
8 |
7 |
if (public) { |
|
339
|
0 |
15 |
CHECK_OPEN_SSL(ctx); |
|
341
|
0 |
15 |
CHECK_OPEN_SSL(init_crypt(ctx) == 1); |
|
342
|
0 |
15 |
CHECK_OPEN_SSL(EVP_PKEY_CTX_set_rsa_padding(ctx, p_rsa->padding) > 0); |
|
343
|
0 |
15 |
CHECK_OPEN_SSL(p_crypt(ctx, NULL, &to_length, from, from_length) == 1); |
|
344
|
0 |
15 |
CHECK_OPEN_SSL(p_crypt(ctx, to, &to_length, from, from_length) == 1); |
|
422
|
9 |
0 |
const EVP_CIPHER* enc = NULL; |
|
424
|
2 |
7 |
if (SvPOK(cipher_name_SV) && !SvPOK(passphase_SV)) { |
|
|
0 |
2 |
if (SvPOK(cipher_name_SV) && !SvPOK(passphase_SV)) { |
|
427
|
3 |
6 |
if (SvPOK(passphase_SV)) { |
|
429
|
2 |
1 |
if (SvPOK(cipher_name_SV)) { |
|
436
|
0 |
3 |
if (enc == NULL) { |
|
441
|
0 |
9 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
455
|
0 |
5 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
461
|
5 |
0 |
CHECK_OPEN_SSL(ctx != NULL && OSSL_ENCODER_CTX_get_num_encoders(ctx)); |
|
|
0 |
5 |
CHECK_OPEN_SSL(ctx != NULL && OSSL_ENCODER_CTX_get_num_encoders(ctx)); |
|
463
|
0 |
5 |
CHECK_OPEN_SSL(OSSL_ENCODER_to_bio(ctx, stringBIO) == 1); |
|
480
|
0 |
3 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
493
|
3 |
0 |
EVP_PKEY* rsa = NULL; |
|
515
|
0 |
3 |
CHECK_OPEN_SSL(ctx); |
|
516
|
0 |
3 |
CHECK_OPEN_SSL(EVP_PKEY_keygen_init(ctx) == 1); |
|
517
|
0 |
3 |
CHECK_OPEN_SSL(EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, SvIV(bitsSV)) > 0); |
|
518
|
0 |
3 |
CHECK_OPEN_SSL(EVP_PKEY_CTX_set1_rsa_keygen_pubexp(ctx, e) >0); |
|
519
|
0 |
3 |
CHECK_OPEN_SSL(EVP_PKEY_generate(ctx, &rsa) == 1); |
|
520
|
0 |
3 |
CHECK_OPEN_SSL(rsa != NULL); |
|
526
|
0 |
3 |
CHECK_OPEN_SSL(rsa); |
|
551
|
8 |
0 |
if (!(n && e)) |
|
|
0 |
8 |
if (!(n && e)) |
|
558
|
0 |
8 |
CHECK_OPEN_SSL(pctx != NULL); |
|
559
|
0 |
8 |
CHECK_OPEN_SSL(EVP_PKEY_fromdata_init(pctx) > 0); |
|
561
|
0 |
8 |
CHECK_OPEN_SSL(params_build) |
|
570
|
0 |
8 |
CHECK_OPEN_SSL(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_N, n)); |
|
571
|
0 |
8 |
CHECK_OPEN_SSL(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_E, e)); |
|
573
|
5 |
3 |
if (p || q) |
|
|
3 |
2 |
if (p || q) |
|
576
|
0 |
6 |
THROW(ctx = BN_CTX_new()); |
|
577
|
3 |
3 |
if (!p) |
|
579
|
0 |
3 |
THROW(p = BN_new()); |
|
580
|
0 |
3 |
THROW(BN_div(p, NULL, n, q, ctx)); |
|
582
|
2 |
1 |
else if (!q) |
|
585
|
0 |
2 |
THROW(BN_div(q, NULL, n, p, ctx)); |
|
596
|
0 |
6 |
THROW(p_minus_1 = BN_new()); |
|
597
|
0 |
6 |
THROW(BN_sub(p_minus_1, p, BN_value_one())); |
|
598
|
0 |
6 |
THROW(q_minus_1 = BN_new()); |
|
599
|
0 |
6 |
THROW(BN_sub(q_minus_1, q, BN_value_one())); |
|
600
|
1 |
5 |
if (!d) |
|
602
|
0 |
1 |
THROW(d = BN_new()); |
|
603
|
0 |
1 |
THROW(BN_mul(d, p_minus_1, q_minus_1, ctx)); |
|
604
|
0 |
1 |
THROW(BN_mod_inverse(d, e, d, ctx)); |
|
610
|
0 |
6 |
THROW(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_D, d)); |
|
611
|
0 |
6 |
THROW(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_FACTOR1, p)); |
|
612
|
0 |
6 |
THROW(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_FACTOR2, q)); |
|
617
|
0 |
6 |
THROW(dmp1 = BN_new()); |
|
618
|
0 |
6 |
THROW(BN_mod(dmp1, d, p_minus_1, ctx)); |
|
619
|
0 |
6 |
THROW(dmq1 = BN_new()); |
|
620
|
0 |
6 |
THROW(BN_mod(dmq1, d, q_minus_1, ctx)); |
|
621
|
0 |
6 |
THROW(iqmp = BN_new()); |
|
622
|
0 |
6 |
THROW(BN_mod_inverse(iqmp, q, p, ctx)); |
|
629
|
0 |
6 |
THROW(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_EXPONENT1, dmp1)); |
|
630
|
0 |
6 |
THROW(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_EXPONENT2, dmq1)); |
|
631
|
0 |
6 |
THROW(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_COEFFICIENT1, iqmp)); |
|
634
|
0 |
6 |
THROW(params != NULL); |
|
637
|
6 |
0 |
THROW( status > 0 && rsa != NULL ); |
|
|
0 |
6 |
THROW( status > 0 && rsa != NULL ); |
|
639
|
2 |
4 |
THROW(EVP_PKEY_check(test_ctx) == 1); |
|
658
|
1 |
1 |
if(d != NULL) |
|
659
|
0 |
1 |
THROW(OSSL_PARAM_BLD_push_BN(params_build, OSSL_PKEY_PARAM_RSA_D, d)); |
|
661
|
0 |
2 |
THROW(params != NULL); |
|
664
|
2 |
0 |
THROW( status > 0 && rsa != NULL ); |
|
|
0 |
2 |
THROW( status > 0 && rsa != NULL ); |
|
672
|
6 |
0 |
if(RETVAL) |
|
677
|
2 |
0 |
if (p_minus_1) BN_clear_free(p_minus_1); |
|
680
|
2 |
0 |
if (q_minus_1) BN_clear_free(q_minus_1); |
|
681
|
2 |
0 |
if (dmp1) BN_clear_free(dmp1); |
|
682
|
2 |
0 |
if (dmq1) BN_clear_free(dmq1); |
|
683
|
2 |
0 |
if (iqmp) BN_clear_free(iqmp); |
|
684
|
2 |
0 |
if (ctx) BN_CTX_free(ctx); |
|
685
|
0 |
2 |
if (error) |
|
708
|
8 |
0 |
BIGNUM* iqmp = NULL; |
|
748
|
0 |
8 |
XPUSHs(cor_bn2sv(n)); |
|
749
|
0 |
8 |
XPUSHs(cor_bn2sv(e)); |
|
750
|
0 |
8 |
XPUSHs(cor_bn2sv(d)); |
|
751
|
0 |
8 |
XPUSHs(cor_bn2sv(p)); |
|
752
|
0 |
8 |
XPUSHs(cor_bn2sv(q)); |
|
753
|
0 |
8 |
XPUSHs(cor_bn2sv(dmp1)); |
|
754
|
0 |
8 |
XPUSHs(cor_bn2sv(dmq1)); |
|
755
|
0 |
8 |
XPUSHs(cor_bn2sv(iqmp)); |
|
776
|
1 |
5 |
if (!_is_private(p_rsa)) |
|
793
|
1 |
2 |
if (!_is_private(p_rsa)) |
|
830
|
1 |
1 |
if (!_is_private(p_rsa)) |
|
970
|
1 |
20 |
if (!_is_private(p_rsa)) |
|
974
|
0 |
20 |
CHECK_NEW(signature, EVP_PKEY_get_size(p_rsa->rsa), UNSIGNED_CHAR); |
|
976
|
0 |
20 |
CHECK_OPEN_SSL(digest = get_message_digest(text_SV, p_rsa->hashMode)); |
|
980
|
0 |
20 |
CHECK_OPEN_SSL(ctx); |
|
981
|
0 |
20 |
CHECK_OPEN_SSL(EVP_PKEY_sign_init(ctx)); |
|
983
|
6 |
14 |
CHECK_OPEN_SSL(EVP_PKEY_CTX_set_rsa_padding(ctx, p_rsa->padding) > 0); |
|
986
|
0 |
14 |
CHECK_OPEN_SSL(md != NULL); |
|
989
|
0 |
14 |
CHECK_OPEN_SSL((md_status = EVP_PKEY_CTX_set_signature_md(ctx, md)) > 0); |
|
990
|
14 |
0 |
if (p_rsa->padding == RSA_PKCS1_PSS_PADDING) { |
|
991
|
0 |
14 |
CHECK_OPEN_SSL((md_status = EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md)) > 0); |
|
992
|
0 |
14 |
CHECK_OPEN_SSL(EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, RSA_PSS_SALTLEN_DIGEST) > 0); |
|
994
|
0 |
14 |
CHECK_OPEN_SSL(EVP_PKEY_sign(ctx, NULL, &signature_length, digest, get_digest_length(p_rsa->hashMode)) == 1); |
|
999
|
0 |
14 |
CHECK_OPEN_SSL(signature); |
|
1001
|
0 |
14 |
CHECK_OPEN_SSL(EVP_PKEY_sign(ctx, signature, &signature_length, digest, get_digest_length(p_rsa->hashMode)) == 1); |
|
1002
|
0 |
14 |
CHECK_OPEN_SSL(signature); |
|
1031
|
0 |
35 |
if (EVP_PKEY_get_size(p_rsa->rsa) < sig_length) |
|
1036
|
0 |
35 |
CHECK_OPEN_SSL(digest = get_message_digest(text_SV, p_rsa->hashMode)); |
|
1040
|
0 |
35 |
CHECK_OPEN_SSL(ctx); |
|
1041
|
0 |
35 |
CHECK_OPEN_SSL(EVP_PKEY_verify_init(ctx) == 1); |
|
1043
|
0 |
35 |
CHECK_OPEN_SSL(EVP_PKEY_CTX_set_rsa_padding(ctx, p_rsa->padding) > 0); |
|
1046
|
0 |
35 |
CHECK_OPEN_SSL(md != NULL); |
|
1049
|
0 |
35 |
CHECK_OPEN_SSL((md_status = EVP_PKEY_CTX_set_signature_md(ctx, md)) > 0); |
|
1050
|
35 |
0 |
if (p_rsa->padding == RSA_PKCS1_PSS_PADDING) { |
|
1051
|
0 |
35 |
CHECK_OPEN_SSL((md_status = EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md)) > 0); |
|
1052
|
0 |
35 |
CHECK_OPEN_SSL(EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, RSA_PSS_SALTLEN_DIGEST) > 0); |
|
1082
|
0 |
2 |
RETVAL = _is_private(p_rsa); |