Branch Coverage

inc/CryptX_PK_RSA.xs.inc
Criterion Covered Total %
branch 126 288 43.7


line true false branch
11 0 107 if (!RETVAL) croak("FATAL: Newz failed");
14 0 107 if (RETVAL->pindex == -1) {
19 0 107 if (rv != CRYPT_OK) {
35 0 1 if (rv != CRYPT_OK) croak("FATAL: rsa_make_key failed: %s", error_to_string(rv));
36 0 1 XPUSHs(ST(0)); /* return self */
48 2 87 if (self->key.type != -1) { rsa_free(&self->key); self->key.type = -1; }
50 2 87 if (rv != CRYPT_OK) croak("FATAL: rsa_import failed: %s", error_to_string(rv));
51 0 87 XPUSHs(ST(0)); /* return self */
64 0 2 if (self->key.type != -1) { rsa_free(&self->key); self->key.type = -1; }
65 1 1 if (SvOK(passwd)) {
71 0 2 if (rv != CRYPT_OK) croak("FATAL: rsa_import_pkcs8 failed: %s", error_to_string(rv));
72 0 2 XPUSHs(ST(0)); /* return self */
86 36 18 if (self->key.type != -1) { rsa_free(&self->key); self->key.type = -1; }
87 22 32 if (SvOK(passwd)) {
93 0 54 if (rv != CRYPT_OK) croak("FATAL: pem_decode_pkcs failed: %s", error_to_string(rv));
94 0 54 if (key_from_pem.id != LTC_PKA_RSA) croak("FATAL: pem_decode_pkcs decoded non-RSA key");
96 0 54 XPUSHs(ST(0)); /* return self */
111 18 0 if (self->key.type != -1) { rsa_free(&self->key); self->key.type = -1; }
112 6 12 if (SvOK(passwd)) {
118 0 18 if (rv != CRYPT_OK) croak("FATAL: pem_decode_openssh failed: %s", error_to_string(rv));
119 0 18 if (key_from_pem.id != LTC_PKA_RSA) croak("FATAL: pem_decode_openssh decoded non-RSA key");
121 0 18 XPUSHs(ST(0)); /* return self */
133 0 0 if (self->key.type != -1) { rsa_free(&self->key); self->key.type = -1; }
135 0 0 if (rv != CRYPT_OK) croak("FATAL: rsa_import_x509 failed: %s", error_to_string(rv));
136 0 0 XPUSHs(ST(0)); /* return self */
149 0 7 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(N) failed: %s", error_to_string(rv));
151 0 7 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(e) failed: %s", error_to_string(rv));
153 0 7 if (d && strlen(d) > 0) {
0 0 if (d && strlen(d) > 0) {
156 0 0 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(d) failed: %s", error_to_string(rv));
158 0 0 if (rv != CRYPT_OK) croak("FATAL: rsa_set_key failed: %s", error_to_string(rv));
163 0 7 if (rv != CRYPT_OK) croak("FATAL: rsa_set_key failed: %s", error_to_string(rv));
166 0 7 if (p && strlen(p) > 0 && q && strlen(q) > 0) {
0 0 if (p && strlen(p) > 0 && q && strlen(q) > 0) {
0 0 if (p && strlen(p) > 0 && q && strlen(q) > 0) {
0 0 if (p && strlen(p) > 0 && q && strlen(q) > 0) {
169 0 0 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(p) failed: %s", error_to_string(rv));
171 0 0 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(q) failed: %s", error_to_string(rv));
173 0 0 if (rv != CRYPT_OK) croak("FATAL: rsa_set_factors failed: %s", error_to_string(rv));
176 0 7 if (dP && strlen(dP) > 0 && dQ && strlen(dQ) > 0 && qP && strlen(qP) > 0) {
0 0 if (dP && strlen(dP) > 0 && dQ && strlen(dQ) > 0 && qP && strlen(qP) > 0) {
0 0 if (dP && strlen(dP) > 0 && dQ && strlen(dQ) > 0 && qP && strlen(qP) > 0) {
0 0 if (dP && strlen(dP) > 0 && dQ && strlen(dQ) > 0 && qP && strlen(qP) > 0) {
0 0 if (dP && strlen(dP) > 0 && dQ && strlen(dQ) > 0 && qP && strlen(qP) > 0) {
0 0 if (dP && strlen(dP) > 0 && dQ && strlen(dQ) > 0 && qP && strlen(qP) > 0) {
179 0 0 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(dP) failed: %s", error_to_string(rv));
181 0 0 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(dQ) failed: %s", error_to_string(rv));
183 0 0 if (rv != CRYPT_OK) croak("FATAL: radix_to_bin(qP) failed: %s", error_to_string(rv));
185 0 0 if (rv != CRYPT_OK) croak("FATAL: rsa_set_crt_params failed: %s", error_to_string(rv));
188 0 7 XPUSHs(ST(0)); /* return self */
194 88 0 if (self->key.type == -1 || self->key.N == NULL) XSRETURN_UNDEF;
0 88 if (self->key.type == -1 || self->key.N == NULL) XSRETURN_UNDEF;
195 68 20 RETVAL = (self->key.type == PK_PRIVATE) ? 1 : 0;
202 1 0 if (self->key.type == -1 || self->key.N == NULL) XSRETURN_UNDEF;
0 1 if (self->key.type == -1 || self->key.N == NULL) XSRETURN_UNDEF;
215 133 0 if (self->key.type == -1 || self->key.N == NULL) XSRETURN_UNDEF;
0 133 if (self->key.type == -1 || self->key.N == NULL) XSRETURN_UNDEF;
219 133 0 siz = (self->key.e) ? mp_ubin_size(self->key.e) : 0;
220 0 133 if (siz>10000) {
223 133 0 if (siz>0) {
231 133 0 siz = (self->key.d) ? mp_ubin_size(self->key.d) : 0;
232 0 133 if (siz>10000) {
235 73 60 if (siz>0) {
243 133 0 siz = (self->key.N) ? nsize : 0;
244 0 133 if (siz>10000) {
247 133 0 if (siz>0) {
255 133 0 siz = (self->key.q) ? mp_ubin_size(self->key.q) : 0;
256 0 133 if (siz>10000) {
259 73 60 if (siz>0) {
267 133 0 siz = (self->key.p) ? mp_ubin_size(self->key.p) : 0;
268 0 133 if (siz>10000) {
271 73 60 if (siz>0) {
279 133 0 siz = (self->key.qP) ? mp_ubin_size(self->key.qP) : 0;
280 0 133 if (siz>10000) {
283 73 60 if (siz>0) {
291 133 0 siz = (self->key.dP) ? mp_ubin_size(self->key.dP) : 0;
292 0 133 if (siz>10000) {
295 73 60 if (siz>0) {
303 133 0 siz = (self->key.dQ) ? mp_ubin_size(self->key.dQ) : 0;
304 0 133 if (siz>10000) {
307 73 60 if (siz>0) {
332 2 3 if (strnEQ(type, "private", 7)) {
334 0 2 if (rv != CRYPT_OK) croak("FATAL: rsa_export(PK_PRIVATE) failed: %s", error_to_string(rv));
337 3 0 else if (strnEQ(type, "public", 6)) {
339 0 3 if (rv != CRYPT_OK) croak("FATAL: rsa_export(PK_PUBLIC|PK_STD) failed: %s", error_to_string(rv));
365 1 1 if (strnEQ(padding, "oaep", 4)) {
367 0 1 if (mgf_hash_id == -1) croak("FATAL: find_hash failed for '%s'", mgf_hash);
368 0 1 if (lparam_hash) {
370 0 0 if (lparam_hash_id == -1) croak("FATAL: find_hash failed for '%s'", lparam_hash);
375 0 1 if (oaep_lparam) lparam_ptr = (unsigned char *)SvPVbyte(oaep_lparam, lparam_len);
385 0 1 if (rv != CRYPT_OK) croak("FATAL: rsa_encrypt_key_v2/oaep failed: %s", error_to_string(rv));
388 0 1 else if (strnEQ(padding, "v1.5", 4)) {
398 0 0 if (rv != CRYPT_OK) croak("FATAL: rsa_encrypt_key_v2/v1.5 failed: %s", error_to_string(rv));
401 1 0 else if (strnEQ(padding, "none", 4)) {
404 0 1 if (rv != CRYPT_OK) croak("FATAL: rsa_me failed: %s", error_to_string(rv));
430 1 37 if (strnEQ(padding, "oaep", 4)) {
432 0 1 if (mgf_hash_id == -1) croak("FATAL: find_hash failed for '%s'", mgf_hash);
433 0 1 if (lparam_hash) {
435 0 0 if (lparam_hash_id == -1) croak("FATAL: find_hash failed for '%s'", lparam_hash);
440 0 1 if (oaep_lparam) lparam_ptr = (unsigned char *)SvPVbyte(oaep_lparam, lparam_len);
450 0 1 if (rv != CRYPT_OK) croak("FATAL: rsa_decrypt_key_v2 failed: %s", error_to_string(rv));
451 0 1 if (stat != 1) croak("FATAL: rsa_decrypt - not valid OAEP packet");
454 36 1 else if (strnEQ(padding, "v1.5", 4)) {
464 0 36 if (rv != CRYPT_OK) croak("FATAL: rsa_decrypt_key_v2 failed: %s", error_to_string(rv));
465 0 36 if (stat != 1) croak("FATAL: rsa_decrypt - invalid");
468 1 0 else if (strnEQ(padding, "none", 4)) {
471 0 1 if (rv != CRYPT_OK) croak("FATAL: rsa_me failed: %s", error_to_string(rv));
494 2 2 if (ix == 1) {
496 0 2 if (hash_id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
498 0 2 if (rv != CRYPT_OK) croak("FATAL: hash_memory failed: %s", error_to_string(rv));
502 4 0 if (strnEQ(padding, "pss", 3)) {
504 0 4 if (hash_id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
505 0 4 mgf_hash_id = mgf_hash_name ? cryptx_internal_find_hash(mgf_hash_name) : hash_id;
506 0 4 if (mgf_hash_id == -1) croak("FATAL: find_hash failed for '%s'", mgf_hash_name);
516 0 4 if (rv != CRYPT_OK) croak("FATAL: rsa_sign_hash_v2 failed: %s", error_to_string(rv));
519 0 0 else if (strnEQ(padding, "v1.5", 4)) {
521 0 0 if (hash_id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
531 0 0 if (rv != CRYPT_OK) croak("FATAL: rsa_sign_hash_v2 failed: %s", error_to_string(rv));
534 0 0 else if (strnEQ(padding, "v1.5.na1", 8)) {
537 0 0 else if (strnEQ(padding, "none", 4)) {
540 0 0 if (rv != CRYPT_OK) croak("FATAL: rsa_me failed: %s", error_to_string(rv));
564 107 2 if (ix == 1) {
566 0 107 if (hash_id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
568 0 107 if (rv != CRYPT_OK) croak("FATAL: hash_memory failed: %s", error_to_string(rv));
574 4 105 if (strnEQ(padding, "pss", 3)) {
576 0 4 if (hash_id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
577 0 4 mgf_hash_id = mgf_hash_name ? cryptx_internal_find_hash(mgf_hash_name) : hash_id;
578 0 4 if (mgf_hash_id == -1) croak("FATAL: find_hash failed for '%s'", mgf_hash_name);
588 4 0 if (rv != CRYPT_OK || stat != 1) RETVAL = 0;
0 4 if (rv != CRYPT_OK || stat != 1) RETVAL = 0;
590 105 0 else if (strnEQ(padding, "v1.5", 4)) {
592 0 105 if (hash_id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
602 105 0 if (rv != CRYPT_OK || stat != 1) RETVAL = 0;
2 103 if (rv != CRYPT_OK || stat != 1) RETVAL = 0;
604 0 0 else if (strnEQ(padding, "v1.5.na1", 8)) {
607 0 0 else if (strnEQ(padding, "none", 4)) {
611 0 0 if (rv != CRYPT_OK) croak("FATAL: rsa_me failed: %s", error_to_string(rv));
612 0 0 if (data_len <= buffer_len && buffer_len > 0 && data_len > 0) {
0 0 if (data_len <= buffer_len && buffer_len > 0 && data_len > 0) {
0 0 if (data_len <= buffer_len && buffer_len > 0 && data_len > 0) {
613 0 0 for (i = 0; i < buffer_len - data_len; i++) if (buffer[i] != 0) RETVAL = 0;
0 0 for (i = 0; i < buffer_len - data_len; i++) if (buffer[i] != 0) RETVAL = 0;
614 0 0 if (memNE(data_ptr, buffer + buffer_len - data_len, data_len)) RETVAL = 0;
630 107 0 if (self->key.type != -1) { rsa_free(&self->key); self->key.type = -1; }