| line |
true |
false |
branch |
|
65
|
0 |
15 |
CHECK_NEW(rsa, 1, rsaData); |
|
69
|
0 |
15 |
return sv_bless( |
|
117
|
49 |
0 |
text = (unsigned char*) SvPV(text_SV, text_length); |
|
159
|
41 |
23 |
: &PL_sv_undef; |
|
167
|
0 |
10 |
CHECK_OPEN_SSL(BIO_flush(p_stringBio) == 1); |
|
171
|
0 |
10 |
CHECK_OPEN_SSL(BIO_set_close(p_stringBio, BIO_CLOSE) == 1); |
|
185
|
6 |
0 |
keyString = SvPV(p_keyStringSv, keyStringLength); |
|
187
|
0 |
6 |
CHECK_OPEN_SSL(stringBIO = BIO_new_mem_buf(keyString, keyStringLength)); |
|
191
|
0 |
6 |
CHECK_OPEN_SSL(BIO_set_close(stringBIO, BIO_CLOSE) == 1); |
|
194
|
0 |
6 |
CHECK_OPEN_SSL(rsa); |
|
208
|
19 |
0 |
from = (unsigned char*) SvPV(p_from, from_length); |
|
210
|
0 |
19 |
CHECK_NEW(to, size, char); |
|
215
|
0 |
19 |
if (to_length < 0) |
|
275
|
0 |
2 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
289
|
0 |
5 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
302
|
0 |
3 |
CHECK_OPEN_SSL(stringBIO = BIO_new(BIO_s_mem())); |
|
323
|
3 |
0 |
rc = RSA_generate_key_ex(rsa, SvIV(bitsSV), e, NULL); |
|
326
|
0 |
3 |
CHECK_OPEN_SSL(rc != -1); |
|
330
|
0 |
3 |
CHECK_OPEN_SSL(rsa); |
|
355
|
8 |
0 |
if (!(n && e)) |
|
|
0 |
8 |
if (!(n && e)) |
|
359
|
0 |
8 |
CHECK_OPEN_SSL(rsa = RSA_new()); |
|
364
|
5 |
3 |
if (p || q) |
|
|
3 |
2 |
if (p || q) |
|
367
|
0 |
6 |
THROW(ctx = BN_CTX_new()); |
|
368
|
3 |
3 |
if (!p) |
|
370
|
0 |
3 |
THROW(p = BN_new()); |
|
371
|
0 |
3 |
THROW(BN_div(p, NULL, n, q, ctx)); |
|
373
|
2 |
1 |
else if (!q) |
|
376
|
0 |
2 |
THROW(BN_div(q, NULL, n, p, ctx)); |
|
384
|
0 |
6 |
THROW(p_minus_1 = BN_new()); |
|
385
|
0 |
6 |
THROW(BN_sub(p_minus_1, p, BN_value_one())); |
|
386
|
0 |
6 |
THROW(q_minus_1 = BN_new()); |
|
387
|
0 |
6 |
THROW(BN_sub(q_minus_1, q, BN_value_one())); |
|
388
|
1 |
5 |
if (!d) |
|
390
|
0 |
1 |
THROW(d = BN_new()); |
|
391
|
0 |
1 |
THROW(BN_mul(d, p_minus_1, q_minus_1, ctx)); |
|
392
|
0 |
1 |
THROW(BN_mod_inverse(d, e, d, ctx)); |
|
399
|
0 |
6 |
THROW(dmp1 = BN_new()); |
|
400
|
0 |
6 |
THROW(BN_mod(dmp1, d, p_minus_1, ctx)); |
|
401
|
0 |
6 |
THROW(dmq1 = BN_new()); |
|
402
|
0 |
6 |
THROW(BN_mod(dmq1, d, q_minus_1, ctx)); |
|
403
|
0 |
6 |
THROW(iqmp = BN_new()); |
|
404
|
0 |
6 |
THROW(BN_mod_inverse(iqmp, q, p, ctx)); |
|
413
|
2 |
4 |
THROW(RSA_check_key(rsa) == 1); |
|
415
|
6 |
0 |
if (p_minus_1) BN_clear_free(p_minus_1); |
|
416
|
6 |
0 |
if (q_minus_1) BN_clear_free(q_minus_1); |
|
417
|
0 |
6 |
if (dmp1) BN_clear_free(dmp1); |
|
418
|
0 |
6 |
if (dmq1) BN_clear_free(dmq1); |
|
419
|
0 |
6 |
if (iqmp) BN_clear_free(iqmp); |
|
420
|
6 |
0 |
if (ctx) BN_CTX_free(ctx); |
|
421
|
2 |
4 |
if (error) |
|
470
|
0 |
8 |
XPUSHs(cor_bn2sv(n)); |
|
471
|
0 |
8 |
XPUSHs(cor_bn2sv(e)); |
|
472
|
0 |
8 |
XPUSHs(cor_bn2sv(d)); |
|
473
|
0 |
8 |
XPUSHs(cor_bn2sv(p)); |
|
474
|
0 |
8 |
XPUSHs(cor_bn2sv(q)); |
|
475
|
0 |
8 |
XPUSHs(cor_bn2sv(dmp1)); |
|
476
|
0 |
8 |
XPUSHs(cor_bn2sv(dmq1)); |
|
477
|
0 |
8 |
XPUSHs(cor_bn2sv(iqmp)); |
|
494
|
1 |
6 |
if (!_is_private(p_rsa)) |
|
507
|
1 |
3 |
if (!_is_private(p_rsa)) |
|
536
|
1 |
1 |
if (!_is_private(p_rsa)) |
|
554
|
0 |
0 |
random_bytes = SvPV(random_bytes_SV, random_bytes_length); |
|
661
|
1 |
14 |
if (!_is_private(p_rsa)) |
|
666
|
0 |
14 |
CHECK_NEW(signature, RSA_size(p_rsa->rsa), char); |
|
668
|
0 |
14 |
CHECK_OPEN_SSL(digest = get_message_digest(text_SV, p_rsa->hashMode)); |
|
669
|
0 |
14 |
CHECK_OPEN_SSL(RSA_sign(p_rsa->hashMode, |
|
694
|
35 |
0 |
sig = (unsigned char*) SvPV(sig_SV, sig_length); |
|
695
|
0 |
35 |
if (RSA_size(p_rsa->rsa) < sig_length) |
|
700
|
0 |
35 |
CHECK_OPEN_SSL(digest = get_message_digest(text_SV, p_rsa->hashMode)); |