Branch Coverage

inc/CryptX_PK_DH.xs.inc
Criterion Covered Total %
branch 64 136 47.0


line true false branch
11 0 36 if (!RETVAL) croak("FATAL: Newz failed");
15 0 36 if (RETVAL->pindex == -1) {
20 0 36 if (rv != CRYPT_OK) {
35 0 2 if (rv != CRYPT_OK) croak("FATAL: dh_set_pg_groupsize failed: %s", error_to_string(rv));
37 0 2 if (rv != CRYPT_OK) croak("FATAL: dh_generate_key failed: %s", error_to_string(rv));
38 0 2 XPUSHs(ST(0)); /* return self */
50 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) {
52 0 4 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(p) failed: %s", error_to_string(rv));
54 0 4 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(g) failed: %s", error_to_string(rv));
57 0 4 if (rv != CRYPT_OK) croak("FATAL: dh_set_pg failed: %s", error_to_string(rv));
59 0 4 if (rv != CRYPT_OK) croak("FATAL: dh_generate_key failed: %s", error_to_string(rv));
62 0 4 XPUSHs(ST(0)); /* return self */
76 0 2 if (rv != CRYPT_OK) croak("FATAL: dh_set_pg_dhparam failed: %s", error_to_string(rv));
79 0 2 if (rv != CRYPT_OK) croak("FATAL: dh_generate_key failed: %s", error_to_string(rv));
80 0 2 XPUSHs(ST(0)); /* return self */
92 0 24 if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; }
94 0 24 if (rv != CRYPT_OK) croak("FATAL: dh_import failed: %s", error_to_string(rv));
95 0 24 XPUSHs(ST(0)); /* return self */
109 0 4 if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; }
111 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) {
113 0 4 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(p) failed: %s", error_to_string(rv));
115 0 4 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(g) failed: %s", error_to_string(rv));
118 0 4 if (rv != CRYPT_OK) croak("FATAL: dh_set_pg failed: %s", error_to_string(rv));
120 2 2 if (type == 0) {
123 0 2 if (rv != CRYPT_OK) croak("FATAL: dh_set_key failed: %s", error_to_string(rv));
125 2 0 else if (type == 1) {
128 0 2 if (rv != CRYPT_OK) croak("FATAL: dh_set_key failed: %s", error_to_string(rv));
135 0 4 XPUSHs(ST(0)); /* return self */
141 0 21 if (self->key.type == -1) XSRETURN_UNDEF;
142 3 18 RETVAL = (self->key.type == PK_PRIVATE) ? 1 : 0;
149 0 2 if (self->key.type == -1) XSRETURN_UNDEF;
162 0 3 if (self->key.type == -1) XSRETURN_UNDEF;
165 3 0 siz = (self->key.x) ? mp_ubin_size(self->key.x) : 0;
166 0 3 if (siz>10000) {
169 3 0 if (siz>0) {
177 3 0 siz = (self->key.y) ? mp_ubin_size(self->key.y) : 0;
178 0 3 if (siz>10000) {
181 3 0 if (siz>0) {
189 3 0 siz = (self->key.prime) ? mp_ubin_size(self->key.prime) : 0;
190 0 3 if (siz>10000) {
193 3 0 if (siz>0) {
202 3 0 siz = (self->key.base) ? mp_ubin_size(self->key.base) : 0;
203 0 3 if (siz>10000) {
206 3 0 if (siz>0) {
230 0 0 if (self->key.type == -1) XSRETURN_UNDEF;
233 0 0 siz = (self->key.prime) ? mp_ubin_size(self->key.prime) : 0;
234 0 0 if (siz>10000) {
237 0 0 if (siz>0) {
246 0 0 siz = (self->key.base) ? mp_ubin_size(self->key.base) : 0;
247 0 0 if (siz>10000) {
250 0 0 if (siz>0) {
257 0 0 if (not_used) not_used = NULL; /* just silence the warning: variable 'not_used' set but not used */
271 7 7 if (strnEQ(type, "private", 7)) {
273 0 7 if (rv != CRYPT_OK) croak("FATAL: dh_export(PK_PRIVATE) failed: %s", error_to_string(rv));
276 7 0 else if (strnEQ(type, "public", 6)) {
278 0 7 if (rv != CRYPT_OK) croak("FATAL: dh_export(PK_PUBLIC) failed: %s", error_to_string(rv));
297 0 10 if (rv != CRYPT_OK) croak("FATAL: dh_shared_secret failed: %s", error_to_string(rv));
312 1 2 if (strnEQ(type, "private", 7)) {
314 0 1 if (rv != CRYPT_OK) croak("FATAL: dh_export_key(PK_PRIVATE) failed: %s", error_to_string(rv));
317 2 0 else if (strnEQ(type, "public", 6)) {
319 0 2 if (rv != CRYPT_OK) croak("FATAL: dh_export_key(PK_PUBLIC) failed: %s", error_to_string(rv));
332 36 0 if (self->key.type != -1) { dh_free(&self->key); self->key.type = -1; }