Branch Coverage

lib/Crypt/OpenSSL3.xs
Criterion Covered Total %
branch 55 410 13.4


line true false branch
96 0 0 COUNTING_TYPE(EVP_RAND, Random, Random)
0 0 COUNTING_TYPE(EVP_RAND, Random, Random)
97 0 0 COUNTING_TYPE(EVP_RAND_CTX, Random__Context, Random::Context)
0 0 COUNTING_TYPE(EVP_RAND_CTX, Random__Context, Random::Context)
98 0 0 COUNTING_TYPE(EVP_CIPHER, Cipher, Cipher)
0 0 COUNTING_TYPE(EVP_CIPHER, Cipher, Cipher)
99 0 0 DUPLICATING_TYPE(EVP_CIPHER_CTX, Cipher__Context, Cipher::Context)
0 0 DUPLICATING_TYPE(EVP_CIPHER_CTX, Cipher__Context, Cipher::Context)
100 0 0 COUNTING_TYPE(EVP_MD, MD, MD)
0 0 COUNTING_TYPE(EVP_MD, MD, MD)
101 0 0 DUPLICATING_TYPE(EVP_MD_CTX, MD__Context, MD::Context)
0 0 DUPLICATING_TYPE(EVP_MD_CTX, MD__Context, MD::Context)
102 0 0 COUNTING_TYPE(EVP_MAC, MAC, MAC)
0 0 COUNTING_TYPE(EVP_MAC, MAC, MAC)
103 0 0 DUPLICATING_TYPE(EVP_MAC_CTX, MAC__Context, MAC::Context)
0 0 DUPLICATING_TYPE(EVP_MAC_CTX, MAC__Context, MAC::Context)
104 0 0 COUNTING_TYPE(EVP_KDF, KDF, KDF)
0 0 COUNTING_TYPE(EVP_KDF, KDF, KDF)
105 0 0 DUPLICATING_TYPE(EVP_KDF_CTX, KDF__Context, KDF::Context)
0 0 DUPLICATING_TYPE(EVP_KDF_CTX, KDF__Context, KDF::Context)
106 0 0 COUNTING_TYPE(EVP_SIGNATURE, Signature, Signature)
0 0 COUNTING_TYPE(EVP_SIGNATURE, Signature, Signature)
107 0 0 DUPLICATING_TYPE(EVP_PKEY, PKey, PKey)
0 0 DUPLICATING_TYPE(EVP_PKEY, PKey, PKey)
108 0 0 DUPLICATING_TYPE(EVP_PKEY_CTX, PKey__Context, PKey::Context)
0 0 DUPLICATING_TYPE(EVP_PKEY_CTX, PKey__Context, PKey::Context)
111 6 0 DUPLICATING_TYPE(BN, BigNum, BigNum);
0 0 DUPLICATING_TYPE(BN, BigNum, BigNum);
113 0 0 DUPLICATING_TYPE(BN_CTX, BigNum__Context, BigNum::Context)
0 0 DUPLICATING_TYPE(BN_CTX, BigNum__Context, BigNum::Context)
114 0 0 SIMPLE_TYPE(ASN1_OBJECT, ASN1__Object, ASN1::Object, )
0 0 SIMPLE_TYPE(ASN1_OBJECT, ASN1__Object, ASN1::Object, )
115 0 0 DUPLICATING_TYPE(X509, X509, X509)
0 0 DUPLICATING_TYPE(X509, X509, X509)
116 0 0 COUNTING_TYPE(X509_STORE, X509__Store, X509::Store)
0 0 COUNTING_TYPE(X509_STORE, X509__Store, X509::Store)
117 0 0 DUPLICATING_TYPE(X509_NAME, X509__Name, X509::Name)
0 0 DUPLICATING_TYPE(X509_NAME, X509__Name, X509::Name)
118 0 0 DUPLICATING_TYPE(X509_NAME_ENTRY, X509__Name__Entry, X509::Name::Entry)
0 0 DUPLICATING_TYPE(X509_NAME_ENTRY, X509__Name__Entry, X509::Name::Entry)
121 0 0 COUNTING_TYPE(BIO, BIO, BIO)
0 0 COUNTING_TYPE(BIO, BIO, BIO)
127 0 0 SIMPLE_TYPE(SSL_METHOD, SSL__Method, SSL::Method, const)
0 0 SIMPLE_TYPE(SSL_METHOD, SSL__Method, SSL::Method, const)
128 0 0 COUNTING_TYPE(SSL_CTX, SSL__Context, SSL::Context)
0 0 COUNTING_TYPE(SSL_CTX, SSL__Context, SSL::Context)
129 0 0 COUNTING_TYPE(SSL, SSL, SSL)
0 0 COUNTING_TYPE(SSL, SSL, SSL)
130 0 0 DUPLICATING_TYPE(SSL_SESSION, SSL__Session, SSL::Session)
0 0 DUPLICATING_TYPE(SSL_SESSION, SSL__Session, SSL::Session)
131 0 0 SIMPLE_TYPE(SSL_CIPHER, SSL__Cipher, SSL::Context, const)
0 0 SIMPLE_TYPE(SSL_CIPHER, SSL__Cipher, SSL::Context, const)
277 0 0 if (algo)
283 0 0 if (algo)
295 12 0 char* ptr = SvGROW(*retval, size);
7 5 char* ptr = SvGROW(*retval, size);
301 1 0 SvUPGRADE(buffer, SVt_PV);
302 0 1 SV_CHECK_THINKFIRST(buffer);
303 1 0 return SvGROW(buffer, size);
1 0 return SvGROW(buffer, size);
314 7 0 if (!SvROK(input) || SvTYPE(SvRV(input)) != SVt_PVHV)
0 7 if (!SvROK(input) || SvTYPE(SvRV(input)) != SVt_PVHV)
325 12 7 while (sv = hv_iternextsv(hash, &name, &name_len)) {
328 11 1 if (found) {
330 0 11 if (found->data_type == OSSL_PARAM_INTEGER) {
331 0 0 if (big = get_BN(aTHX_ sv))
335 6 5 } else if (found->data_type == OSSL_PARAM_UNSIGNED_INTEGER) {
336 0 6 if (big = get_BN(aTHX_ sv))
340 0 5 } else if (found->data_type == OSSL_PARAM_REAL) {
342 4 1 } else if (found->data_type == OSSL_PARAM_UTF8_STRING) {
346 1 0 } else if (found->data_type == OSSL_PARAM_OCTET_STRING) {
362 0 1 if (iter->data_type == OSSL_PARAM_INTEGER) {
363 0 0 if (iter->data_size == 0)
365 0 0 else if (iter->data_size <= IVSIZE) {
375 1 0 else if (iter->data_type == OSSL_PARAM_UNSIGNED_INTEGER) {
376 0 1 if (iter->data_size == 0)
378 1 0 else if (iter->data_size <= UVSIZE) {
388 0 0 else if (iter->data_type == OSSL_PARAM_REAL) {
393 0 0 else if (iter->data_type == OSSL_PARAM_UTF8_STRING) {
396 0 0 else if (iter->data_type == OSSL_PARAM_OCTET_STRING) {
431 0 0 mXPUSHp(name, strlen(name));
444 0 0 DEFINE_PROVIDED_CALLBACK(EVP_RAND)
445 0 124 DEFINE_PROVIDED_CALLBACK(EVP_CIPHER)
446 0 22 DEFINE_PROVIDED_CALLBACK(EVP_MD)
447 0 9 DEFINE_PROVIDED_CALLBACK(EVP_MAC)
448 0 12 DEFINE_PROVIDED_CALLBACK(EVP_KDF)
449 0 0 DEFINE_PROVIDED_CALLBACK(EVP_SIGNATURE)
613 0 1 if (!RETVAL)
647 0 0 if (RETVAL >= 0)
791 0 0 if (RETVAL >= 0)
803 0 0 if (RETVAL >= 0)
815 0 0 if (RETVAL >= 0)
942 0 0 if (!RETVAL)
965 0 0 if (RETVAL)
994 0 0 if (RETVAL)
1255 0 0 if (!RETVAL)
1316 0 0 if (!RETVAL)
1355 1 0 if (RETVAL > 0)
1384 0 0 if (RETVAL)
1395 0 0 if (RETVAL)
1409 0 0 if (RETVAL)
1416 0 0 if (RETVAL)
1424 0 0 if (!RETVAL)
1472 0 0 if (RETVAL)
1480 0 0 if (RETVAL)
1584 0 0 if (!RETVAL)
1594 0 0 if (RETVAL)
1603 0 0 if (RETVAL)
1673 0 0 if (RETVAL)
1704 0 0 if (RETVAL == NULL)
1727 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)
1775 0 0 if (RETVAL)
1801 0 1 if (RETVAL == NULL)
1836 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)
1854 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))
1864 2 0 if (RETVAL)
1873 2 0 if (RETVAL)
1880 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)
1909 0 0 if (RETVAL > 0)
1926 1 0 if (RETVAL)
1937 0 1 if (RETVAL == NULL)
1974 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)
1984 0 0 if (RETVAL)
2009 1 0 if (RETVAL)
2017 0 0 if (RETVAL)
2038 1 0 if (EVP_DigestSignFinal(ctx, NULL, &size) == 1) {
2040 1 0 if (EVP_DigestSignFinal(ctx, ptr, &size) == 1)
2050 0 0 if (EVP_DigestSign(ctx, NULL, &size, tbs, XSauto_length_of_tbs) == 1) {
2052 0 0 if (EVP_DigestSign(ctx, ptr, &size, tbs, XSauto_length_of_tbs) == 1)
2072 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)
2102 0 1 if (RETVAL == NULL)
2125 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)
2150 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)
2168 1 0 if (result)
2176 0 0 if (RETVAL)
2186 0 1 if (RETVAL == NULL)
2209 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)
2229 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)
2245 1 0 if (RETVAL)
2255 0 0 if (RETVAL == NULL)
2285 0 0 if (RETVAL == NULL)
2291 0 0 if (RETVAL == NULL)
2304 0 0 if (!result)
2308 0 0 if (result)
2316 0 0 if (!result)
2320 0 0 if (result)
2326 0 0 if (!RETVAL)
2331 0 0 const EVP_CIPHER* cipher = SvOK(cipher_sv) ? get_EVP_CIPHER(aTHX_ cipher_sv) : NULL;
2334 0 0 if (SvOK(key))
2341 0 0 if (!RETVAL)
2385 0 0 if (RETVAL > 0)
2390 0 0 if (RETVAL <= 0)
2402 0 0 if (RETVAL)
2412 0 0 result = RETVAL > 0 ? newSVpvn((char*)ptr, RETVAL) : &PL_sv_undef;
2417 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)
2473 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)
2494 0 0 if (RETVAL)
2617 0 0 if (RETVAL)
2649 0 2 if (RETVAL <= 0)
2658 0 1 if (EVP_PKEY_encapsulate(ctx, NULL, &wrapped_length, NULL, &gen_length) != 1)
2664 1 0 if (EVP_PKEY_encapsulate(ctx, wrapped_ptr, &wrapped_length, gen_ptr, &gen_length)) {
2677 1 0 if (result == 1) {
2680 1 0 if (EVP_PKEY_decapsulate(ctx, unwrapped_ptr, &unwrapped_length, wrapped, XSauto_length_of_wrapped) == 1)
2702 0 0 if (result == 1) {
2706 0 0 if (result == 1)
2719 0 0 if (EVP_PKEY_decrypt(ctx, NULL, &out_length, in, XSauto_length_of_in) == 1) {
2722 0 0 if (EVP_PKEY_decrypt(ctx, out_ptr, &out_length, in, XSauto_length_of_in) == 1)
2737 0 0 if (EVP_PKEY_derive(ctx, NULL, &key_length) == 1) {
2740 0 0 if (EVP_PKEY_derive(ctx, key_ptr, &key_length) == 1)
2752 0 0 if (EVP_PKEY_sign(ctx, NULL, &sig_length, tbs, XSauto_length_of_tbs) == 1) {
2755 0 0 if (EVP_PKEY_sign(ctx, sig_ptr, &sig_length, tbs, XSauto_length_of_tbs) == 1)