| line |
true |
false |
branch |
|
11
|
0 |
82 |
if (!RETVAL) croak("FATAL: Newz failed"); |
|
15
|
0 |
82 |
if (RETVAL->pindex == -1) { |
|
21
|
0 |
82 |
if (rv != CRYPT_OK) { |
|
36
|
1 |
4 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
39
|
0 |
5 |
if (rv != CRYPT_OK) croak("FATAL: dsa_make_key failed: %s", error_to_string(rv)); |
|
40
|
0 |
5 |
XPUSHs(ST(0)); /* return self */ |
|
51
|
0 |
2 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
55
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dsa_set_pqg_dsaparam failed: %s", error_to_string(rv)); |
|
58
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dsa_generate_key failed: %s", error_to_string(rv)); |
|
59
|
0 |
2 |
XPUSHs(ST(0)); /* return self */ |
|
70
|
0 |
1 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
71
|
1 |
0 |
if (!p || !strlen(p) || !q || !strlen(q) || !g || !strlen(g)) { |
|
|
1 |
0 |
if (!p || !strlen(p) || !q || !strlen(q) || !g || !strlen(g)) { |
|
|
1 |
0 |
if (!p || !strlen(p) || !q || !strlen(q) || !g || !strlen(g)) { |
|
|
1 |
0 |
if (!p || !strlen(p) || !q || !strlen(q) || !g || !strlen(g)) { |
|
|
1 |
0 |
if (!p || !strlen(p) || !q || !strlen(q) || !g || !strlen(g)) { |
|
|
0 |
1 |
if (!p || !strlen(p) || !q || !strlen(q) || !g || !strlen(g)) { |
|
76
|
0 |
1 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(p) failed: %s", error_to_string(rv)); |
|
78
|
0 |
1 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(q) failed: %s", error_to_string(rv)); |
|
80
|
0 |
1 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(g) failed: %s", error_to_string(rv)); |
|
82
|
0 |
1 |
if (rv != CRYPT_OK) croak("FATAL: dsa_set_pqg failed: %s", error_to_string(rv)); |
|
85
|
0 |
1 |
if (rv != CRYPT_OK) croak("FATAL: dsa_generate_key failed: %s", error_to_string(rv)); |
|
86
|
0 |
1 |
XPUSHs(ST(0)); /* return self */ |
|
98
|
0 |
57 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
100
|
0 |
57 |
if (rv != CRYPT_OK) croak("FATAL: dsa_import failed: %s", error_to_string(rv)); |
|
101
|
0 |
57 |
XPUSHs(ST(0)); /* return self */ |
|
114
|
0 |
0 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
115
|
0 |
0 |
if (SvOK(passwd)) { |
|
121
|
0 |
0 |
if (rv != CRYPT_OK) croak("FATAL: dsa_import_pkcs8 failed: %s", error_to_string(rv)); |
|
122
|
0 |
0 |
XPUSHs(ST(0)); /* return self */ |
|
136
|
4 |
16 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
137
|
11 |
9 |
if (SvOK(passwd)) { |
|
143
|
0 |
20 |
if (rv != CRYPT_OK) croak("FATAL: pem_decode_pkcs failed: %s", error_to_string(rv)); |
|
144
|
0 |
20 |
if (key_from_pem.id != LTC_PKA_DSA) croak("FATAL: pem_decode_pkcs decoded non-DSA key"); |
|
146
|
0 |
20 |
XPUSHs(ST(0)); /* return self */ |
|
160
|
3 |
0 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
161
|
1 |
2 |
if (SvOK(passwd)) { |
|
167
|
0 |
3 |
if (rv != CRYPT_OK) croak("FATAL: pem_decode_openssh failed: %s", error_to_string(rv)); |
|
168
|
0 |
3 |
if (key_from_pem.id != LTC_PKA_DSA) croak("FATAL: pem_decode_openssh decoded non-DSA key"); |
|
170
|
0 |
3 |
XPUSHs(ST(0)); /* return self */ |
|
181
|
1 |
2 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
183
|
3 |
0 |
if (p && strlen(p) > 0 && q && strlen(q) > 0 && g && strlen(g) > 0 && y && strlen(y) > 0) { |
|
|
3 |
0 |
if (p && strlen(p) > 0 && q && strlen(q) > 0 && g && strlen(g) > 0 && y && strlen(y) > 0) { |
|
|
3 |
0 |
if (p && strlen(p) > 0 && q && strlen(q) > 0 && g && strlen(g) > 0 && y && strlen(y) > 0) { |
|
|
3 |
0 |
if (p && strlen(p) > 0 && q && strlen(q) > 0 && g && strlen(g) > 0 && y && strlen(y) > 0) { |
|
|
3 |
0 |
if (p && strlen(p) > 0 && q && strlen(q) > 0 && g && strlen(g) > 0 && y && strlen(y) > 0) { |
|
|
3 |
0 |
if (p && strlen(p) > 0 && q && strlen(q) > 0 && g && strlen(g) > 0 && y && strlen(y) > 0) { |
|
|
3 |
0 |
if (p && strlen(p) > 0 && q && strlen(q) > 0 && g && strlen(g) > 0 && y && strlen(y) > 0) { |
|
|
3 |
0 |
if (p && strlen(p) > 0 && q && strlen(q) > 0 && g && strlen(g) > 0 && y && strlen(y) > 0) { |
|
185
|
0 |
3 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(p) failed: %s", error_to_string(rv)); |
|
187
|
0 |
3 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(q) failed: %s", error_to_string(rv)); |
|
189
|
0 |
3 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(g) failed: %s", error_to_string(rv)); |
|
191
|
0 |
3 |
if (rv != CRYPT_OK) croak("FATAL: dsa_set_pqg failed: %s", error_to_string(rv)); |
|
194
|
0 |
3 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(y) failed: %s", error_to_string(rv)); |
|
195
|
2 |
1 |
if (x && strlen(x) > 0) { |
|
|
1 |
1 |
if (x && strlen(x) > 0) { |
|
198
|
0 |
1 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(x) failed: %s", error_to_string(rv)); |
|
200
|
0 |
1 |
if (rv != CRYPT_OK) croak("FATAL: dsa_set_key failed: %s", error_to_string(rv)); |
|
205
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dsa_set_key failed: %s", error_to_string(rv)); |
|
212
|
0 |
3 |
XPUSHs(ST(0)); /* return self */ |
|
218
|
36 |
0 |
if (self->key.type == -1 || self->key.qord <= 0) XSRETURN_UNDEF; |
|
|
0 |
36 |
if (self->key.type == -1 || self->key.qord <= 0) XSRETURN_UNDEF; |
|
219
|
15 |
21 |
RETVAL = (self->key.type == PK_PRIVATE) ? 1 : 0; |
|
226
|
3 |
0 |
if (self->key.type == -1 || self->key.qord <= 0) XSRETURN_UNDEF; |
|
|
0 |
3 |
if (self->key.type == -1 || self->key.qord <= 0) XSRETURN_UNDEF; |
|
234
|
2 |
0 |
if (self->key.type == -1 || self->key.qord <= 0) XSRETURN_UNDEF; |
|
|
0 |
2 |
if (self->key.type == -1 || self->key.qord <= 0) XSRETURN_UNDEF; |
|
247
|
51 |
0 |
if (self->key.type == -1 || self->key.qord <= 0) XSRETURN_UNDEF; |
|
|
0 |
51 |
if (self->key.type == -1 || self->key.qord <= 0) XSRETURN_UNDEF; |
|
252
|
51 |
0 |
siz = (self->key.g) ? mp_ubin_size(self->key.g) : 0; |
|
253
|
0 |
51 |
if (siz>10000) { |
|
256
|
51 |
0 |
if (siz>0) { |
|
264
|
51 |
0 |
siz = (self->key.q) ? mp_ubin_size(self->key.q) : 0; |
|
265
|
0 |
51 |
if (siz>10000) { |
|
268
|
51 |
0 |
if (siz>0) { |
|
276
|
51 |
0 |
siz = (self->key.p) ? mp_ubin_size(self->key.p) : 0; |
|
277
|
0 |
51 |
if (siz>10000) { |
|
280
|
51 |
0 |
if (siz>0) { |
|
288
|
51 |
0 |
siz = (self->key.x) ? mp_ubin_size(self->key.x) : 0; |
|
289
|
0 |
51 |
if (siz>10000) { |
|
292
|
28 |
23 |
if (siz>0) { |
|
300
|
51 |
0 |
siz = (self->key.y) ? mp_ubin_size(self->key.y) : 0; |
|
301
|
0 |
51 |
if (siz>10000) { |
|
304
|
51 |
0 |
if (siz>0) { |
|
329
|
10 |
11 |
if (strEQ(type, "private")) { |
|
331
|
0 |
10 |
if (rv != CRYPT_OK) croak("FATAL: dsa_export(PK_PRIVATE|PK_STD) failed: %s", error_to_string(rv)); |
|
334
|
11 |
0 |
else if (strEQ(type, "public")) { |
|
336
|
0 |
11 |
if (rv != CRYPT_OK) croak("FATAL: dsa_export(PK_PUBLIC|PK_STD) failed: %s", error_to_string(rv)); |
|
361
|
0 |
3 |
if (hash_id == -1) croak("FATAL: find_hash failed for '%s'", hash_name); |
|
365
|
0 |
3 |
if (rv != CRYPT_OK) croak("FATAL: dsa_encrypt_key failed: %s", error_to_string(rv)); |
|
385
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dsa_decrypt_key failed: %s", error_to_string(rv)); |
|
405
|
3 |
2 |
if (ix == 1) { |
|
407
|
0 |
3 |
if (id == -1) croak("FATAL: find_hash failed for '%s'", hash_name); |
|
409
|
0 |
3 |
if (rv != CRYPT_OK) croak("FATAL: hash_memory failed: %s", error_to_string(rv)); |
|
416
|
0 |
5 |
if (rv != CRYPT_OK) croak("FATAL: dsa_sign_hash failed: %s", error_to_string(rv)); |
|
437
|
39 |
3 |
if (ix == 1) { |
|
439
|
0 |
39 |
if (id == -1) croak("FATAL: find_hash failed for '%s'", hash_name); |
|
441
|
0 |
39 |
if (rv != CRYPT_OK) croak("FATAL: hash_memory failed: %s", error_to_string(rv)); |
|
448
|
40 |
2 |
if (rv != CRYPT_OK || stat != 1) RETVAL = 0; |
|
|
0 |
40 |
if (rv != CRYPT_OK || stat != 1) RETVAL = 0; |
|
456
|
82 |
0 |
if (self->key.type != -1) { dsa_free(&self->key); self->key.type = -1; } |
|
457
|
82 |
0 |
if (self->pindex >= 0 && prng_is_valid(self->pindex) == CRYPT_OK && prng_descriptor[self->pindex].done) { |
|
|
82 |
0 |
if (self->pindex >= 0 && prng_is_valid(self->pindex) == CRYPT_OK && prng_descriptor[self->pindex].done) { |
|
|
82 |
0 |
if (self->pindex >= 0 && prng_is_valid(self->pindex) == CRYPT_OK && prng_descriptor[self->pindex].done) { |