Branch Coverage

lib/Crypt/OpenSSL3.xs
Criterion Covered Total %
branch 55 380 14.4


line true false branch
28 12 0 char* ptr = SvGROW(*retval, size);
7 5 char* ptr = SvGROW(*retval, size);
34 1 0 SvUPGRADE(buffer, SVt_PV);
35 0 1 SV_CHECK_THINKFIRST(buffer);
36 1 0 return SvGROW(buffer, size);
1 0 return SvGROW(buffer, size);
139 0 0 COUNTING_TYPE(EVP_CIPHER, Cipher, Cipher)
0 0 COUNTING_TYPE(EVP_CIPHER, Cipher, Cipher)
152 6 0 DUPLICATING_TYPE(BN, BigNum, BigNum);
0 0 DUPLICATING_TYPE(BN, BigNum, BigNum);
237 0 0 if (buf_len > 0) {
239 0 0 if (OBJ_obj2txt((char*)ptr, buf_len, object, no_name) > 0)
497 0 0 if (algo)
503 0 0 if (algo)
527 7 0 if (!SvROK(input) || SvTYPE(SvRV(input)) != SVt_PVHV)
0 7 if (!SvROK(input) || SvTYPE(SvRV(input)) != SVt_PVHV)
538 12 7 while (sv = hv_iternextsv(hash, &name, &name_len)) {
541 11 1 if (found) {
543 0 11 if (found->data_type == OSSL_PARAM_INTEGER) {
544 0 0 if (big = get_BN(aTHX_ sv))
548 6 5 } else if (found->data_type == OSSL_PARAM_UNSIGNED_INTEGER) {
549 0 6 if (big = get_BN(aTHX_ sv))
553 0 5 } else if (found->data_type == OSSL_PARAM_REAL) {
555 4 1 } else if (found->data_type == OSSL_PARAM_UTF8_STRING) {
559 1 0 } else if (found->data_type == OSSL_PARAM_OCTET_STRING) {
575 0 1 if (iter->data_type == OSSL_PARAM_INTEGER) {
576 0 0 if (iter->data_size == 0)
578 0 0 else if (iter->data_size <= IVSIZE) {
588 1 0 else if (iter->data_type == OSSL_PARAM_UNSIGNED_INTEGER) {
589 0 1 if (iter->data_size == 0)
591 1 0 else if (iter->data_size <= UVSIZE) {
601 0 0 else if (iter->data_type == OSSL_PARAM_REAL) {
606 0 0 else if (iter->data_type == OSSL_PARAM_UTF8_STRING) {
609 0 0 else if (iter->data_type == OSSL_PARAM_OCTET_STRING) {
644 0 0 mXPUSHp(name, strlen(name));
657 0 0 DEFINE_PROVIDED_CALLBACK(EVP_RAND)
658 0 124 DEFINE_PROVIDED_CALLBACK(EVP_CIPHER)
659 0 22 DEFINE_PROVIDED_CALLBACK(EVP_MD)
660 0 9 DEFINE_PROVIDED_CALLBACK(EVP_MAC)
661 0 12 DEFINE_PROVIDED_CALLBACK(EVP_KDF)
662 0 0 DEFINE_PROVIDED_CALLBACK(EVP_SIGNATURE)
862 0 1 if (!RETVAL)
896 0 0 if (RETVAL >= 0)
1039 0 0 if (RETVAL >= 0)
1052 0 0 if (RETVAL >= 0)
1082 0 0 if (!RETVAL)
1222 0 0 if (!RETVAL)
1230 0 0 if (!RETVAL)
1249 0 0 if (!RETVAL)
1300 0 0 if (result > 0) {
1337 0 0 if (!RETVAL)
1344 0 0 if (RETVAL == -2)
1350 0 0 if (ASN1_TIME_to_tm(s, &tm)) {
1351 0 0 EXTEND(SP, 9);
1366 0 0 if (!RETVAL)
1429 0 0 if (!RETVAL)
1438 0 0 if (!RETVAL)
1514 0 0 if (RETVAL)
1558 0 0 if (RETVAL)
1565 0 0 if (RETVAL)
1572 0 0 if (RETVAL)
1579 0 0 if (RETVAL)
1901 0 0 if (RETVAL)
1910 0 0 if (RETVAL)
1984 0 0 if (!RETVAL)
1993 0 0 if (!RETVAL)
2025 0 0 if (RETVAL)
2089 0 0 if (!RETVAL)
2098 0 0 if (!RETVAL)
2113 0 0 if (RETVAL)
2380 0 0 if (!RETVAL)
2418 0 0 RETVAL = SSL_set_alpn_protos(ssl, (unsigned char*)raw, raw_len);
2453 0 0 if (!RETVAL)
2502 1 0 if (RETVAL > 0)
2531 0 0 if (RETVAL)
2542 0 0 if (RETVAL)
2554 0 0 if (RETVAL)
2561 0 0 if (RETVAL)
2569 0 0 if (!RETVAL)
2619 0 0 if (RETVAL)
2723 0 0 if (!RETVAL)
2733 0 0 if (RETVAL)
2742 0 0 if (RETVAL)
2767 0 0 if (!RETVAL)
2821 0 0 if (RETVAL)
2893 0 0 if (!RETVAL)
2918 0 0 if (!RETVAL)
2986 0 0 if (!RETVAL)
3008 0 0 if (!RETVAL)
3073 0 0 if (RETVAL)
3082 0 0 if (RETVAL)
3099 0 0 if (RETVAL == NID_undef)
3129 0 0 if (RETVAL == NULL)
3152 0 0 GENERATE_GET_PARAM(EVP_RAND, rand, name)
0 0 GENERATE_GET_PARAM(EVP_RAND, rand, name)
0 0 GENERATE_GET_PARAM(EVP_RAND, rand, name)
0 0 GENERATE_GET_PARAM(EVP_RAND, rand, name)
3163 0 0 if (RETVAL > 0)
3201 0 0 if (RETVAL)
3227 0 1 if (RETVAL == NULL)
3262 0 0 GENERATE_GET_PARAM(EVP_CIPHER, cipher, name)
0 0 GENERATE_GET_PARAM(EVP_CIPHER, cipher, name)
0 0 GENERATE_GET_PARAM(EVP_CIPHER, cipher, name)
0 0 GENERATE_GET_PARAM(EVP_CIPHER, cipher, name)
3279 2 0 if (XSauto_length_of_key != EVP_CIPHER_get_key_length(type) || XSauto_length_of_iv != EVP_CIPHER_get_iv_length(type))
0 2 if (XSauto_length_of_key != EVP_CIPHER_get_key_length(type) || XSauto_length_of_iv != EVP_CIPHER_get_iv_length(type))
3289 2 0 if (RETVAL)
3298 2 0 if (RETVAL)
3305 1 0 GENERATE_GET_PARAM(EVP_CIPHER_CTX, ctx, name)
1 0 GENERATE_GET_PARAM(EVP_CIPHER_CTX, ctx, name)
1 0 GENERATE_GET_PARAM(EVP_CIPHER_CTX, ctx, name)
1 0 GENERATE_GET_PARAM(EVP_CIPHER_CTX, ctx, name)
3333 0 0 if (RETVAL > 0)
3350 1 0 if (RETVAL)
3369 0 1 if (RETVAL == NULL)
3406 0 0 GENERATE_GET_PARAM(EVP_MD, md, name)
0 0 GENERATE_GET_PARAM(EVP_MD, md, name)
0 0 GENERATE_GET_PARAM(EVP_MD, md, name)
0 0 GENERATE_GET_PARAM(EVP_MD, md, name)
3415 0 0 if (RETVAL)
3440 1 0 if (RETVAL)
3448 0 0 if (RETVAL)
3472 1 0 if (EVP_DigestSignFinal(ctx, NULL, &size) == 1) {
3474 1 0 if (EVP_DigestSignFinal(ctx, ptr, &size) == 1)
3483 0 0 if (EVP_DigestSign(ctx, NULL, &size, tbs, XSauto_length_of_tbs) == 1) {
3485 0 0 if (EVP_DigestSign(ctx, ptr, &size, tbs, XSauto_length_of_tbs) == 1)
3504 0 0 GENERATE_GET_PARAM(EVP_MD_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_MD_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_MD_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_MD_CTX, ctx, name)
3533 0 1 if (RETVAL == NULL)
3556 0 0 GENERATE_GET_PARAM(EVP_MAC, mac, name)
0 0 GENERATE_GET_PARAM(EVP_MAC, mac, name)
0 0 GENERATE_GET_PARAM(EVP_MAC, mac, name)
0 0 GENERATE_GET_PARAM(EVP_MAC, mac, name)
3580 0 0 GENERATE_GET_PARAM(EVP_MAC_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_MAC_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_MAC_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_MAC_CTX, ctx, name)
3597 1 0 if (result)
3606 0 0 if (RETVAL)
3616 0 1 if (RETVAL == NULL)
3639 0 0 GENERATE_GET_PARAM(EVP_KDF, kdf, name)
0 0 GENERATE_GET_PARAM(EVP_KDF, kdf, name)
0 0 GENERATE_GET_PARAM(EVP_KDF, kdf, name)
0 0 GENERATE_GET_PARAM(EVP_KDF, kdf, name)
3658 0 0 GENERATE_GET_PARAM(EVP_KDF_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_KDF_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_KDF_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_KDF_CTX, ctx, name)
3673 1 0 if (RETVAL)
3683 0 0 if (RETVAL == NULL)
3713 0 0 if (RETVAL == NULL)
3719 0 0 if (RETVAL == NULL)
3732 0 0 if (!result)
3736 0 0 if (result)
3744 0 0 if (!result)
3748 0 0 if (result)
3754 0 0 if (!RETVAL)
3759 0 0 const EVP_CIPHER* cipher = SvOK(cipher_sv) ? get_EVP_CIPHER(aTHX_ cipher_sv) : NULL;
3762 0 0 if (SvOK(key))
3769 0 0 if (!RETVAL)
3778 0 0 if (!RETVAL)
3784 0 0 if (!RETVAL)
3793 0 0 if (RETVAL == -1)
3832 0 0 if (RETVAL > 0)
3837 0 0 if (RETVAL <= 0)
3849 0 0 if (RETVAL)
3859 0 0 result = RETVAL > 0 ? newSVpvn((char*)ptr, RETVAL) : &PL_sv_undef;
3864 0 0 GENERATE_GET_PARAM(EVP_PKEY, pkey, name)
0 0 GENERATE_GET_PARAM(EVP_PKEY, pkey, name)
0 0 GENERATE_GET_PARAM(EVP_PKEY, pkey, name)
0 0 GENERATE_GET_PARAM(EVP_PKEY, pkey, name)
3919 0 0 GENERATE_GET_PARAM(EVP_PKEY_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_PKEY_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_PKEY_CTX, ctx, name)
0 0 GENERATE_GET_PARAM(EVP_PKEY_CTX, ctx, name)
3948 0 2 if (RETVAL <= 0)
3957 0 1 if (EVP_PKEY_encapsulate(ctx, NULL, &wrapped_length, NULL, &gen_length) != 1)
3963 1 0 if (EVP_PKEY_encapsulate(ctx, wrapped_ptr, &wrapped_length, gen_ptr, &gen_length)) {
3976 1 0 if (result == 1) {
3979 1 0 if (EVP_PKEY_decapsulate(ctx, unwrapped_ptr, &unwrapped_length, wrapped, XSauto_length_of_wrapped) == 1)
4000 0 0 if (result == 1) {
4004 0 0 if (result == 1)
4016 0 0 if (EVP_PKEY_decrypt(ctx, NULL, &out_length, in, XSauto_length_of_in) == 1) {
4019 0 0 if (EVP_PKEY_decrypt(ctx, out_ptr, &out_length, in, XSauto_length_of_in) == 1)
4033 0 0 if (EVP_PKEY_derive(ctx, NULL, &key_length) == 1) {
4036 0 0 if (EVP_PKEY_derive(ctx, key_ptr, &key_length) == 1)
4047 0 0 if (EVP_PKEY_sign(ctx, NULL, &sig_length, tbs, XSauto_length_of_tbs) == 1) {
4050 0 0 if (EVP_PKEY_sign(ctx, sig_ptr, &sig_length, tbs, XSauto_length_of_tbs) == 1)