| line |
true |
false |
branch |
|
11
|
0 |
46 |
if (!RETVAL) croak("FATAL: Newz failed"); |
|
15
|
0 |
46 |
if (RETVAL->pindex == -1) { |
|
21
|
0 |
46 |
if (rv != CRYPT_OK) { |
|
36
|
0 |
2 |
if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; } |
|
38
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dh_set_pg_groupsize failed: %s", error_to_string(rv)); |
|
40
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dh_generate_key failed: %s", error_to_string(rv)); |
|
41
|
0 |
2 |
XPUSHs(ST(0)); /* return self */ |
|
52
|
1 |
7 |
if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; } |
|
54
|
8 |
0 |
if (p && strlen(p) > 0 && g && strlen(g) > 0) { |
|
|
8 |
0 |
if (p && strlen(p) > 0 && g && strlen(g) > 0) { |
|
|
8 |
0 |
if (p && strlen(p) > 0 && g && strlen(g) > 0) { |
|
|
8 |
0 |
if (p && strlen(p) > 0 && g && strlen(g) > 0) { |
|
56
|
1 |
7 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(p) failed: %s", error_to_string(rv)); |
|
58
|
0 |
7 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(g) failed: %s", error_to_string(rv)); |
|
61
|
0 |
7 |
if (rv != CRYPT_OK) croak("FATAL: dh_set_pg failed: %s", error_to_string(rv)); |
|
63
|
0 |
7 |
if (rv != CRYPT_OK) croak("FATAL: dh_generate_key failed: %s", error_to_string(rv)); |
|
69
|
0 |
7 |
XPUSHs(ST(0)); /* return self */ |
|
80
|
0 |
2 |
if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; } |
|
84
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dh_set_pg_dhparam failed: %s", error_to_string(rv)); |
|
87
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dh_generate_key failed: %s", error_to_string(rv)); |
|
88
|
0 |
2 |
XPUSHs(ST(0)); /* return self */ |
|
100
|
0 |
27 |
if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; } |
|
102
|
0 |
27 |
if (rv != CRYPT_OK) croak("FATAL: dh_import failed: %s", error_to_string(rv)); |
|
103
|
0 |
27 |
XPUSHs(ST(0)); /* return self */ |
|
117
|
0 |
4 |
if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; } |
|
119
|
4 |
0 |
if (p && strlen(p) > 0 && g && strlen(g) > 0) { |
|
|
4 |
0 |
if (p && strlen(p) > 0 && g && strlen(g) > 0) { |
|
|
4 |
0 |
if (p && strlen(p) > 0 && g && strlen(g) > 0) { |
|
|
4 |
0 |
if (p && strlen(p) > 0 && g && strlen(g) > 0) { |
|
121
|
0 |
4 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(p) failed: %s", error_to_string(rv)); |
|
123
|
0 |
4 |
if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(g) failed: %s", error_to_string(rv)); |
|
126
|
0 |
4 |
if (rv != CRYPT_OK) croak("FATAL: dh_set_pg failed: %s", error_to_string(rv)); |
|
128
|
2 |
2 |
if (type == 0) { |
|
131
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dh_set_key failed: %s", error_to_string(rv)); |
|
133
|
2 |
0 |
else if (type == 1) { |
|
136
|
0 |
2 |
if (rv != CRYPT_OK) croak("FATAL: dh_set_key failed: %s", error_to_string(rv)); |
|
146
|
0 |
4 |
XPUSHs(ST(0)); /* return self */ |
|
152
|
0 |
23 |
if (self->key.type == -1) XSRETURN_UNDEF; |
|
153
|
4 |
19 |
RETVAL = (self->key.type == PK_PRIVATE) ? 1 : 0; |
|
160
|
0 |
4 |
if (self->key.type == -1) XSRETURN_UNDEF; |
|
173
|
0 |
3 |
if (self->key.type == -1) XSRETURN_UNDEF; |
|
176
|
3 |
0 |
siz = (self->key.x) ? mp_ubin_size(self->key.x) : 0; |
|
177
|
0 |
3 |
if (siz>10000) { |
|
181
|
3 |
0 |
if (siz>0) { |
|
189
|
3 |
0 |
siz = (self->key.y) ? mp_ubin_size(self->key.y) : 0; |
|
190
|
0 |
3 |
if (siz>10000) { |
|
194
|
3 |
0 |
if (siz>0) { |
|
202
|
3 |
0 |
siz = (self->key.prime) ? mp_ubin_size(self->key.prime) : 0; |
|
203
|
0 |
3 |
if (siz>10000) { |
|
207
|
3 |
0 |
if (siz>0) { |
|
216
|
3 |
0 |
siz = (self->key.base) ? mp_ubin_size(self->key.base) : 0; |
|
217
|
0 |
3 |
if (siz>10000) { |
|
221
|
3 |
0 |
if (siz>0) { |
|
246
|
0 |
0 |
if (self->key.type == -1) XSRETURN_UNDEF; |
|
249
|
0 |
0 |
siz = (self->key.prime) ? mp_ubin_size(self->key.prime) : 0; |
|
250
|
0 |
0 |
if (siz>10000) { |
|
253
|
0 |
0 |
if (siz>0) { |
|
262
|
0 |
0 |
siz = (self->key.base) ? mp_ubin_size(self->key.base) : 0; |
|
263
|
0 |
0 |
if (siz>10000) { |
|
266
|
0 |
0 |
if (siz>0) { |
|
273
|
0 |
0 |
if (not_used) not_used = NULL; /* just silence the warning: variable 'not_used' set but not used */ |
|
287
|
7 |
7 |
if (strEQ(type, "private")) { |
|
289
|
0 |
7 |
if (rv != CRYPT_OK) { zeromem(out, sizeof(out)); croak("FATAL: dh_export(PK_PRIVATE) failed: %s", error_to_string(rv)); } |
|
292
|
7 |
0 |
else if (strEQ(type, "public")) { |
|
294
|
0 |
7 |
if (rv != CRYPT_OK) { zeromem(out, sizeof(out)); croak("FATAL: dh_export(PK_PUBLIC) failed: %s", error_to_string(rv)); } |
|
314
|
0 |
10 |
if (rv != CRYPT_OK) { zeromem(buffer, sizeof(buffer)); croak("FATAL: dh_shared_secret failed: %s", error_to_string(rv)); } |
|
330
|
1 |
4 |
if (strEQ(type, "private")) { |
|
332
|
0 |
1 |
if (rv != CRYPT_OK) { zeromem(out, sizeof(out)); croak("FATAL: dh_export_key(PK_PRIVATE) failed: %s", error_to_string(rv)); } |
|
335
|
4 |
0 |
else if (strEQ(type, "public")) { |
|
337
|
0 |
4 |
if (rv != CRYPT_OK) { zeromem(out, sizeof(out)); croak("FATAL: dh_export_key(PK_PUBLIC) failed: %s", error_to_string(rv)); } |
|
351
|
41 |
5 |
if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; } |
|
352
|
46 |
0 |
if (self->pindex >= 0 && prng_is_valid(self->pindex) == CRYPT_OK && prng_descriptor[self->pindex].done) { |
|
|
46 |
0 |
if (self->pindex >= 0 && prng_is_valid(self->pindex) == CRYPT_OK && prng_descriptor[self->pindex].done) { |
|
|
46 |
0 |
if (self->pindex >= 0 && prng_is_valid(self->pindex) == CRYPT_OK && prng_descriptor[self->pindex].done) { |