Branch Coverage

inc/CryptX_PK_DSA.xs.inc
Criterion Covered Total %
branch 113 208 54.3


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) {