| line |
true |
false |
branch |
|
68
|
0 |
20 |
CHECK_NEW(rsa, 1, rsaData); |
|
72
|
0 |
20 |
return sv_bless( |
|
120
|
49 |
0 |
text = (unsigned char*) SvPV(text_SV, text_length); |
|
162
|
41 |
23 |
: &PL_sv_undef; |
|
170
|
0 |
17 |
CHECK_OPEN_SSL(BIO_flush(p_stringBio) == 1); |
|
174
|
0 |
17 |
CHECK_OPEN_SSL(BIO_set_close(p_stringBio, BIO_CLOSE) == 1); |
|
190
|
11 |
0 |
keyString = SvPV(p_keyStringSv, keyStringLength); |
|
192
|
4 |
7 |
if (SvPOK(p_passphaseSv)) { |
|
193
|
4 |
0 |
passphase = SvPV_nolen(p_passphaseSv); |
|
196
|
0 |
11 |
CHECK_OPEN_SSL(stringBIO = BIO_new_mem_buf(keyString, keyStringLength)); |
|
200
|
0 |
11 |
CHECK_OPEN_SSL(BIO_set_close(stringBIO, BIO_CLOSE) == 1); |
|
203
|
0 |
11 |
CHECK_OPEN_SSL(rsa); |
|
217
|
19 |
0 |
from = (unsigned char*) SvPV(p_from, from_length); |
|
219
|
0 |
19 |
CHECK_NEW(to, size, char); |
|
224
|
0 |
19 |
if (to_length < 0) |
|
298
|
2 |
7 |
if (SvPOK(cipher_name_SV) && !SvPOK(passphase_SV)) { |
|
|
0 |
2 |
if (SvPOK(cipher_name_SV) && !SvPOK(passphase_SV)) { |
|
301
|
3 |
6 |
if (SvPOK(passphase_SV)) { |
|
302
|
3 |
0 |
passphase = SvPV(passphase_SV, passphaseLength); |
|
303
|
2 |
1 |
if (SvPOK(cipher_name_SV)) { |
|
304
|
2 |
0 |
cipher_name = SvPV_nolen(cipher_name_SV); |
|
310
|
0 |
3 |
if (enc == NULL) { |
|
315
|
0 |
9 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
329
|
0 |
5 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
342
|
0 |
3 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
363
|
3 |
0 |
rc = RSA_generate_key_ex(rsa, SvIV(bitsSV), e, NULL); |
|
366
|
0 |
3 |
CHECK_OPEN_SSL(rc != -1); |
|
370
|
0 |
3 |
CHECK_OPEN_SSL(rsa); |
|
395
|
8 |
0 |
if (!(n && e)) |
|
|
0 |
8 |
if (!(n && e)) |
|
399
|
0 |
8 |
CHECK_OPEN_SSL(rsa = RSA_new()); |
|
404
|
5 |
3 |
if (p || q) |
|
|
3 |
2 |
if (p || q) |
|
407
|
0 |
6 |
THROW(ctx = BN_CTX_new()); |
|
408
|
3 |
3 |
if (!p) |
|
410
|
0 |
3 |
THROW(p = BN_new()); |
|
411
|
0 |
3 |
THROW(BN_div(p, NULL, n, q, ctx)); |
|
413
|
2 |
1 |
else if (!q) |
|
416
|
0 |
2 |
THROW(BN_div(q, NULL, n, p, ctx)); |
|
424
|
0 |
6 |
THROW(p_minus_1 = BN_new()); |
|
425
|
0 |
6 |
THROW(BN_sub(p_minus_1, p, BN_value_one())); |
|
426
|
0 |
6 |
THROW(q_minus_1 = BN_new()); |
|
427
|
0 |
6 |
THROW(BN_sub(q_minus_1, q, BN_value_one())); |
|
428
|
1 |
5 |
if (!d) |
|
430
|
0 |
1 |
THROW(d = BN_new()); |
|
431
|
0 |
1 |
THROW(BN_mul(d, p_minus_1, q_minus_1, ctx)); |
|
432
|
0 |
1 |
THROW(BN_mod_inverse(d, e, d, ctx)); |
|
439
|
0 |
6 |
THROW(dmp1 = BN_new()); |
|
440
|
0 |
6 |
THROW(BN_mod(dmp1, d, p_minus_1, ctx)); |
|
441
|
0 |
6 |
THROW(dmq1 = BN_new()); |
|
442
|
0 |
6 |
THROW(BN_mod(dmq1, d, q_minus_1, ctx)); |
|
443
|
0 |
6 |
THROW(iqmp = BN_new()); |
|
444
|
0 |
6 |
THROW(BN_mod_inverse(iqmp, q, p, ctx)); |
|
453
|
2 |
4 |
THROW(RSA_check_key(rsa) == 1); |
|
455
|
6 |
0 |
if (p_minus_1) BN_clear_free(p_minus_1); |
|
456
|
6 |
0 |
if (q_minus_1) BN_clear_free(q_minus_1); |
|
457
|
0 |
6 |
if (dmp1) BN_clear_free(dmp1); |
|
458
|
0 |
6 |
if (dmq1) BN_clear_free(dmq1); |
|
459
|
0 |
6 |
if (iqmp) BN_clear_free(iqmp); |
|
460
|
6 |
0 |
if (ctx) BN_CTX_free(ctx); |
|
461
|
2 |
4 |
if (error) |
|
510
|
0 |
8 |
XPUSHs(cor_bn2sv(n)); |
|
511
|
0 |
8 |
XPUSHs(cor_bn2sv(e)); |
|
512
|
0 |
8 |
XPUSHs(cor_bn2sv(d)); |
|
513
|
0 |
8 |
XPUSHs(cor_bn2sv(p)); |
|
514
|
0 |
8 |
XPUSHs(cor_bn2sv(q)); |
|
515
|
0 |
8 |
XPUSHs(cor_bn2sv(dmp1)); |
|
516
|
0 |
8 |
XPUSHs(cor_bn2sv(dmq1)); |
|
517
|
0 |
8 |
XPUSHs(cor_bn2sv(iqmp)); |
|
534
|
1 |
6 |
if (!_is_private(p_rsa)) |
|
547
|
1 |
3 |
if (!_is_private(p_rsa)) |
|
576
|
1 |
1 |
if (!_is_private(p_rsa)) |
|
594
|
0 |
0 |
random_bytes = SvPV(random_bytes_SV, random_bytes_length); |
|
705
|
1 |
14 |
if (!_is_private(p_rsa)) |
|
710
|
0 |
14 |
CHECK_NEW(signature, RSA_size(p_rsa->rsa), char); |
|
712
|
0 |
14 |
CHECK_OPEN_SSL(digest = get_message_digest(text_SV, p_rsa->hashMode)); |
|
713
|
0 |
14 |
CHECK_OPEN_SSL(RSA_sign(p_rsa->hashMode, |
|
738
|
35 |
0 |
sig = (unsigned char*) SvPV(sig_SV, sig_length); |
|
739
|
0 |
35 |
if (RSA_size(p_rsa->rsa) < sig_length) |
|
744
|
0 |
35 |
CHECK_OPEN_SSL(digest = get_message_digest(text_SV, p_rsa->hashMode)); |