Branch Coverage

X509.xs
Criterion Covered Total %
branch 114 236 48.3


line true false branch
141 1178 1264 if (m == BIO_CB_WRITE) {
146 0 2442 if (m == BIO_CB_PUTS) {
178 0 43 if (!sv) sv = &PL_sv_undef;
189 0 8 if (!sv_utf8_decode(sv)) {
197 0 0 while ((start < end) && !is_utf8_string_loclen(start, len, &cur, 0)) {
0 0 while ((start < end) && !is_utf8_string_loclen(start, len, &cur, 0)) {
204 0 0 if (start < end) {
245 0 43 if (! sv_isa(rv, class) ) {
271 1 11 if ( !(c > 0) ) {
275 36 11 for (i = 0; i < c; i++) {
281 0 36 if (ext == NULL) croak("Extension %d unavailable\n", i);
285 36 0 if (no_name == 0 || no_name == 1) {
33 3 if (no_name == 0 || no_name == 1) {
291 3 0 } else if (no_name == 2) {
297 0 36 if (! hv_store(RETVAL, ckey, r, rv, 0) ) croak("Error storing extension in hash\n");
330 48 4 for (i = 0; (name = Crypt__OpenSSL__X509__const[i].n); i++) {
345 0 0 if ((RETVAL = X509_new()) == NULL) {
349 0 0 if (!X509_set_version(RETVAL, 2)) {
377 16 1 if (ix == 1) {
383 0 17 if (!bio) croak("%s: Failed to create BIO", SvPV_nolen(class));
386 1 16 if (format == FORMAT_ASN1) {
397 0 17 if (!RETVAL) croak("%s: failed to read X509 certificate.", SvPV_nolen(class));
408 17 0 if (x509) X509_free(x509); x509 = 0;
448 15 4 if (ix == 1 || ix == 2) {
2 13 if (ix == 1 || ix == 2) {
450 4 2 if (ix == 1) {
462 3 10 } else if (ix == 3) {
466 2 8 } else if (ix == 4) {
470 0 8 } else if (ix == 5) {
477 0 8 } else if (ix == 6) {
483 2 6 } else if (ix == 7) {
488 4 2 for (j = 0; j < sk_OPENSSL_STRING_num(emlst); j++) {
489 2 2 BIO_printf(bio, "%s%s", (j ? " " : ""), sk_OPENSSL_STRING_value(emlst, j));
494 1 5 } else if (ix == 8) {
498 2 3 } else if (ix == 9) {
506 2 1 } else if ( ix == 10 ) {
514 1 0 } else if ( ix == 11 ) {
532 12 2 if (ix == 1) {
563 0 0 for (i=0; i
585 0 1 if (format == FORMAT_PEM) {
589 1 0 } else if (format == FORMAT_ASN1) {
615 0 2 if (pkey == NULL) {
637 0 1 if ( !ec_order ) {
642 0 1 if ( (group = EC_KEY_get0_group(ec_pkey)) == NULL) {
647 0 1 if (!EC_GROUP_get_order(group, ec_order, NULL)) {
682 0 1 if (pkey == NULL) {
686 1 0 if ( EVP_PKEY_base_id(pkey) == EVP_PKEY_EC ) {
691 0 1 if ( (group = EC_KEY_get0_group(ec_pkey)) == NULL) {
696 0 1 if ( nid == 0 ) {
726 0 0 if (pkey == NULL) {
734 0 0 if (pkey_id == EVP_PKEY_RSA) {
743 0 0 } else if (pkey_id == EVP_PKEY_DSA) {
751 0 0 } else if ( pkey_id == EVP_PKEY_EC ) {
758 0 0 if ( (group = EC_KEY_get0_group(ec_pkey)) == NULL) {
764 0 0 if ((pub_key = EC_POINT_point2bn(group, public_key, EC_KEY_get_conv_form(ec_pkey), NULL, NULL)) == NULL) {
801 1 1 if (ix)
803 0 1 if (pkey == NULL) {
809 2 0 if (EVP_PKEY_base_id(pkey) == EVP_PKEY_RSA) {
843 7 0 const EVP_MD *mds[] = { EVP_md5(), EVP_sha1(), EVP_sha224(), EVP_sha256(), EVP_sha384(), EVP_sha512() };
853 0 7 if (!X509_digest(x509, mds[ix], md, &n)) {
860 217 7 for (i = 1; i < n; i++) {
885 0 0 if (ASN1_UTCTIME_cmp_time_t(X509_get0_notAfter(x509), now + (int)checkoffset) == -1) {
909 0 0 if (pkey == NULL) {
917 0 0 if (pkey_id == EVP_PKEY_RSA) {
923 0 0 } else if (pkey_id == EVP_PKEY_DSA) {
933 0 0 } else if (pkey_id == EVP_PKEY_EC ) {
967 0 1 if(!pkey)
971 0 1 if (pkey_id == EVP_PKEY_DSA) {
974 0 1 } else if (pkey_id == EVP_PKEY_RSA) {
977 1 0 } else if (pkey_id == EVP_PKEY_EC ) {
1009 0 0 if (!(c > 0)) {
1011 0 0 } else if (i >= c || i < 0) {
0 0 } else if (i >= c || i < 0) {
1017 0 0 if (ext == NULL) {
1050 0 3 if (ext == NULL) {
1065 0 1 if (ext == NULL) {
1084 0 3 if (ext == NULL) {
1109 0 2 if (ext == NULL) {
1128 1 0 int ret = 0;
1135 1 0 if (strcmp(value, "ca") == 0) {
1138 0 0 } else if (strcmp(value, "pathlen") == 0) {
1144 0 1 RETVAL = ret;
1193 1 0 if (nid == NID_key_usage) {
1195 9 1 for (i = 0; i < 9; i++) {
1200 0 0 } else if (nid == NID_netscape_cert_type) {
1202 0 0 for (i = 0; i < 8; i++) {
1228 0 0 while(sk_ASN1_OBJECT_num(extku) > 0) {
1250 0 0 RETVAL = akid->keyid ? 1 : 0;
1273 0 1 if (nid == NID_authority_key_identifier) {
1286 1 0 } else if (nid == NID_subject_key_identifier) {
1315 0 1 if (obj == NULL) {
1335 0 0 if (obj == NULL) {
1381 7 1 for (i = 0; i < c; i++) {
1407 5 1 if (ix == 1 || ix == 3) {
1 4 if (ix == 1 || ix == 3) {
1409 2 2 } else if (ix == 4 || ix == 5) {
0 2 } else if (ix == 4 || ix == 5) {
1415 0 6 if (!nid) {
1421 5 1 if (ix == 2 || ix == 3 || ix == 4) { /* has_entry */
4 1 if (ix == 2 || ix == 3 || ix == 4) { /* has_entry */
2 2 if (ix == 2 || ix == 3 || ix == 4) { /* has_entry */
1444 0 3 if (ix == 1) {
1450 0 3 if (!nid) {
1480 1 1 if (ix == 1 || ln) {
0 1 if (ix == 1 || ln) {
1514 1 1 if (ix == 1 || ln) {
0 1 if (ix == 1 || ln) {
1556 1 1 RETVAL = (X509_NAME_ENTRY_get_data(name_entry)->type == (ix == 1 ? asn1_type : ix));
0 2 RETVAL = (X509_NAME_ENTRY_get_data(name_entry)->type == (ix == 1 ? asn1_type : ix));
1583 0 0 if (X509_NAME_ENTRY_get_data(name_entry)->type == V_ASN1_PRINTABLESTRING) {
1586 0 0 } else if(X509_NAME_ENTRY_get_data(name_entry)->type == V_ASN1_IA5STRING) {
1589 0 0 } else if(X509_NAME_ENTRY_get_data(name_entry)->type == V_ASN1_UTF8STRING) {
1617 0 0 if (ix == 1) {
1623 0 0 if (!bio) {
1627 0 0 if (format == FORMAT_ASN1) {
1633 0 0 if (!RETVAL) {
1657 0 0 if (ix == 1) {
1662 0 0 } else if (ix == 2) {