Branch Coverage

lib/Crypt/OpenSSL3.xs
Criterion Covered Total %
branch 55 482 11.4


line true false branch
97 0 0 COUNTING_TYPE(EVP_RAND, Random, Random)
0 0 COUNTING_TYPE(EVP_RAND, Random, Random)
98 0 0 COUNTING_TYPE(EVP_RAND_CTX, Random__Context, Random::Context)
0 0 COUNTING_TYPE(EVP_RAND_CTX, Random__Context, Random::Context)
99 0 0 COUNTING_TYPE(EVP_CIPHER, Cipher, Cipher)
0 0 COUNTING_TYPE(EVP_CIPHER, Cipher, Cipher)
100 0 0 DUPLICATING_TYPE(EVP_CIPHER_CTX, Cipher__Context, Cipher::Context)
0 0 DUPLICATING_TYPE(EVP_CIPHER_CTX, Cipher__Context, Cipher::Context)
101 0 0 COUNTING_TYPE(EVP_MD, MD, MD)
0 0 COUNTING_TYPE(EVP_MD, MD, MD)
102 0 0 DUPLICATING_TYPE(EVP_MD_CTX, MD__Context, MD::Context)
0 0 DUPLICATING_TYPE(EVP_MD_CTX, MD__Context, MD::Context)
103 0 0 COUNTING_TYPE(EVP_MAC, MAC, MAC)
0 0 COUNTING_TYPE(EVP_MAC, MAC, MAC)
104 0 0 DUPLICATING_TYPE(EVP_MAC_CTX, MAC__Context, MAC::Context)
0 0 DUPLICATING_TYPE(EVP_MAC_CTX, MAC__Context, MAC::Context)
105 0 0 COUNTING_TYPE(EVP_KDF, KDF, KDF)
0 0 COUNTING_TYPE(EVP_KDF, KDF, KDF)
106 0 0 DUPLICATING_TYPE(EVP_KDF_CTX, KDF__Context, KDF::Context)
0 0 DUPLICATING_TYPE(EVP_KDF_CTX, KDF__Context, KDF::Context)
107 0 0 COUNTING_TYPE(EVP_SIGNATURE, Signature, Signature)
0 0 COUNTING_TYPE(EVP_SIGNATURE, Signature, Signature)
108 0 0 DUPLICATING_TYPE(EVP_PKEY, PKey, PKey)
0 0 DUPLICATING_TYPE(EVP_PKEY, PKey, PKey)
109 0 0 DUPLICATING_TYPE(EVP_PKEY_CTX, PKey__Context, PKey::Context)
0 0 DUPLICATING_TYPE(EVP_PKEY_CTX, PKey__Context, PKey::Context)
112 6 0 DUPLICATING_TYPE(BN, BigNum, BigNum);
0 0 DUPLICATING_TYPE(BN, BigNum, BigNum);
114 0 0 DUPLICATING_TYPE(BN_CTX, BigNum__Context, BigNum::Context)
0 0 DUPLICATING_TYPE(BN_CTX, BigNum__Context, BigNum::Context)
116 0 0 SIMPLE_TYPE(ASN1_OBJECT, ASN1__Object, ASN1::Object, )
0 0 SIMPLE_TYPE(ASN1_OBJECT, ASN1__Object, ASN1::Object, )
117 0 0 DUPLICATING_TYPE(ASN1_INTEGER, ASN1__Integer, ASN1::Integer)
0 0 DUPLICATING_TYPE(ASN1_INTEGER, ASN1__Integer, ASN1::Integer)
119 0 0 DUPLICATING_TYPE(ASN1_ENUMERATED, ASN1__Enumerated, ASN1::Enumerated)
0 0 DUPLICATING_TYPE(ASN1_ENUMERATED, ASN1__Enumerated, ASN1::Enumerated)
120 0 0 DUPLICATING_TYPE(ASN1_STRING, ASN1__String, ASN1::String)
0 0 DUPLICATING_TYPE(ASN1_STRING, ASN1__String, ASN1::String)
121 0 0 DUPLICATING_TYPE(ASN1_OCTET_STRING, ASN1__String__Octet, ASN1::String::Octet)
0 0 DUPLICATING_TYPE(ASN1_OCTET_STRING, ASN1__String__Octet, ASN1::String::Octet)
122 0 0 DUPLICATING_TYPE(ASN1_TIME, ASN1__Time, ASN1::Time)
0 0 DUPLICATING_TYPE(ASN1_TIME, ASN1__Time, ASN1::Time)
123 0 0 DUPLICATING_TYPE(ASN1_GENERALIZEDTIME, ASN1__Time__Generalized, ASN1::Time::Generalized)
0 0 DUPLICATING_TYPE(ASN1_GENERALIZEDTIME, ASN1__Time__Generalized, ASN1::Time::Generalized)
124 0 0 DUPLICATING_TYPE(ASN1_UTCTIME, ASN1__Time__UTC, ASN1::Time::UTC)
0 0 DUPLICATING_TYPE(ASN1_UTCTIME, ASN1__Time__UTC, ASN1::Time::UTC)
125 0 0 DUPLICATING_TYPE(X509, X509, X509)
0 0 DUPLICATING_TYPE(X509, X509, X509)
126 0 0 COUNTING_TYPE(X509_STORE, X509__Store, X509::Store)
0 0 COUNTING_TYPE(X509_STORE, X509__Store, X509::Store)
127 0 0 DUPLICATING_TYPE(X509_NAME, X509__Name, X509::Name)
0 0 DUPLICATING_TYPE(X509_NAME, X509__Name, X509::Name)
128 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)
129 0 0 DUPLICATING_TYPE(X509_ALGOR, X509__Algorithm, X509::Algoritm)
0 0 DUPLICATING_TYPE(X509_ALGOR, X509__Algorithm, X509::Algoritm)
130 0 0 DUPLICATING_TYPE(X509_EXTENSION, X509__Extension, X509::Extension)
0 0 DUPLICATING_TYPE(X509_EXTENSION, X509__Extension, X509::Extension)
131 0 0 SIMPLE_TYPE(X509_VERIFY_PARAM, X509__VerifyParam, X509::VerifyParam, )
0 0 SIMPLE_TYPE(X509_VERIFY_PARAM, X509__VerifyParam, X509::VerifyParam, )
132 0 0 DUPLICATING_TYPE(GENERAL_NAME, X509__GeneralName, X509::GeneralName)
0 0 DUPLICATING_TYPE(GENERAL_NAME, X509__GeneralName, X509::GeneralName)
135 0 0 COUNTING_TYPE(BIO, BIO, BIO)
0 0 COUNTING_TYPE(BIO, BIO, BIO)
141 0 0 SIMPLE_TYPE(SSL_METHOD, SSL__Method, SSL::Method, const)
0 0 SIMPLE_TYPE(SSL_METHOD, SSL__Method, SSL::Method, const)
142 0 0 COUNTING_TYPE(SSL_CTX, SSL__Context, SSL::Context)
0 0 COUNTING_TYPE(SSL_CTX, SSL__Context, SSL::Context)
143 0 0 COUNTING_TYPE(SSL, SSL, SSL)
0 0 COUNTING_TYPE(SSL, SSL, SSL)
144 0 0 DUPLICATING_TYPE(SSL_SESSION, SSL__Session, SSL::Session)
0 0 DUPLICATING_TYPE(SSL_SESSION, SSL__Session, SSL::Session)
145 0 0 SIMPLE_TYPE(SSL_CIPHER, SSL__Cipher, SSL::Context, const)
0 0 SIMPLE_TYPE(SSL_CIPHER, SSL__Cipher, SSL::Context, const)
327 0 0 if (algo)
333 0 0 if (algo)
345 12 0 char* ptr = SvGROW(*retval, size);
7 5 char* ptr = SvGROW(*retval, size);
351 1 0 SvUPGRADE(buffer, SVt_PV);
352 0 1 SV_CHECK_THINKFIRST(buffer);
353 1 0 return SvGROW(buffer, size);
1 0 return SvGROW(buffer, size);
364 7 0 if (!SvROK(input) || SvTYPE(SvRV(input)) != SVt_PVHV)
0 7 if (!SvROK(input) || SvTYPE(SvRV(input)) != SVt_PVHV)
375 12 7 while (sv = hv_iternextsv(hash, &name, &name_len)) {
378 11 1 if (found) {
380 0 11 if (found->data_type == OSSL_PARAM_INTEGER) {
381 0 0 if (big = get_BN(aTHX_ sv))
385 6 5 } else if (found->data_type == OSSL_PARAM_UNSIGNED_INTEGER) {
386 0 6 if (big = get_BN(aTHX_ sv))
390 0 5 } else if (found->data_type == OSSL_PARAM_REAL) {
392 4 1 } else if (found->data_type == OSSL_PARAM_UTF8_STRING) {
396 1 0 } else if (found->data_type == OSSL_PARAM_OCTET_STRING) {
412 0 1 if (iter->data_type == OSSL_PARAM_INTEGER) {
413 0 0 if (iter->data_size == 0)
415 0 0 else if (iter->data_size <= IVSIZE) {
425 1 0 else if (iter->data_type == OSSL_PARAM_UNSIGNED_INTEGER) {
426 0 1 if (iter->data_size == 0)
428 1 0 else if (iter->data_size <= UVSIZE) {
438 0 0 else if (iter->data_type == OSSL_PARAM_REAL) {
443 0 0 else if (iter->data_type == OSSL_PARAM_UTF8_STRING) {
446 0 0 else if (iter->data_type == OSSL_PARAM_OCTET_STRING) {
481 0 0 mXPUSHp(name, strlen(name));
494 0 0 DEFINE_PROVIDED_CALLBACK(EVP_RAND)
495 0 124 DEFINE_PROVIDED_CALLBACK(EVP_CIPHER)
496 0 22 DEFINE_PROVIDED_CALLBACK(EVP_MD)
497 0 9 DEFINE_PROVIDED_CALLBACK(EVP_MAC)
498 0 12 DEFINE_PROVIDED_CALLBACK(EVP_KDF)
499 0 0 DEFINE_PROVIDED_CALLBACK(EVP_SIGNATURE)
681 0 1 if (!RETVAL)
715 0 0 if (RETVAL >= 0)
858 0 0 if (RETVAL >= 0)
870 0 0 if (RETVAL >= 0)
882 0 0 if (RETVAL >= 0)
1008 0 0 if (RETVAL == NID_undef)
1026 0 0 if (buf_len > 0) {
1028 0 0 if (OBJ_obj2txt(ptr, buf_len, a, no_name) > 0)
1041 0 0 if (!RETVAL)
1049 0 0 if (!RETVAL)
1066 0 0 if (!RETVAL)
1114 0 0 if (result > 0) {
1153 0 0 if (!RETVAL)
1158 0 0 if (RETVAL == -2)
1164 0 0 if (ASN1_TIME_to_tm(s, &tm)) {
1165 0 0 EXTEND(SP, 9);
1180 0 0 if (!RETVAL)
1253 0 0 if (!RETVAL)
1332 0 0 if (RETVAL)
1485 0 0 switch (gn->type) {
1566 0 0 if (RETVAL)
1575 0 0 if (RETVAL)
1840 0 0 if (!RETVAL)
1901 0 0 if (!RETVAL)
1944 1 0 if (RETVAL > 0)
1973 0 0 if (RETVAL)
1984 0 0 if (RETVAL)
1998 0 0 if (RETVAL)
2005 0 0 if (RETVAL)
2013 0 0 if (!RETVAL)
2061 0 0 if (RETVAL)
2069 0 0 if (RETVAL)
2173 0 0 if (!RETVAL)
2183 0 0 if (RETVAL)
2192 0 0 if (RETVAL)
2262 0 0 if (RETVAL)
2293 0 0 if (RETVAL == NULL)
2316 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)
2363 0 0 if (RETVAL)
2389 0 1 if (RETVAL == NULL)
2424 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)
2441 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))
2451 2 0 if (RETVAL)
2460 2 0 if (RETVAL)
2467 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)
2495 0 0 if (RETVAL > 0)
2512 1 0 if (RETVAL)
2523 0 1 if (RETVAL == NULL)
2560 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)
2569 0 0 if (RETVAL)
2594 1 0 if (RETVAL)
2602 0 0 if (RETVAL)
2626 1 0 if (EVP_DigestSignFinal(ctx, NULL, &size) == 1) {
2628 1 0 if (EVP_DigestSignFinal(ctx, ptr, &size) == 1)
2637 0 0 if (EVP_DigestSign(ctx, NULL, &size, tbs, XSauto_length_of_tbs) == 1) {
2639 0 0 if (EVP_DigestSign(ctx, ptr, &size, tbs, XSauto_length_of_tbs) == 1)
2658 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)
2687 0 1 if (RETVAL == NULL)
2710 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)
2734 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)
2751 1 0 if (result)
2759 0 0 if (RETVAL)
2769 0 1 if (RETVAL == NULL)
2792 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)
2811 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)
2826 1 0 if (RETVAL)
2836 0 0 if (RETVAL == NULL)
2866 0 0 if (RETVAL == NULL)
2872 0 0 if (RETVAL == NULL)
2885 0 0 if (!result)
2889 0 0 if (result)
2897 0 0 if (!result)
2901 0 0 if (result)
2907 0 0 if (!RETVAL)
2912 0 0 const EVP_CIPHER* cipher = SvOK(cipher_sv) ? get_EVP_CIPHER(aTHX_ cipher_sv) : NULL;
2915 0 0 if (SvOK(key))
2922 0 0 if (!RETVAL)
2966 0 0 if (RETVAL > 0)
2971 0 0 if (RETVAL <= 0)
2983 0 0 if (RETVAL)
2993 0 0 result = RETVAL > 0 ? newSVpvn((char*)ptr, RETVAL) : &PL_sv_undef;
2998 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)
3053 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)
3073 0 0 if (RETVAL)
3198 0 0 if (RETVAL)
3229 0 2 if (RETVAL <= 0)
3238 0 1 if (EVP_PKEY_encapsulate(ctx, NULL, &wrapped_length, NULL, &gen_length) != 1)
3244 1 0 if (EVP_PKEY_encapsulate(ctx, wrapped_ptr, &wrapped_length, gen_ptr, &gen_length)) {
3257 1 0 if (result == 1) {
3260 1 0 if (EVP_PKEY_decapsulate(ctx, unwrapped_ptr, &unwrapped_length, wrapped, XSauto_length_of_wrapped) == 1)
3281 0 0 if (result == 1) {
3285 0 0 if (result == 1)
3297 0 0 if (EVP_PKEY_decrypt(ctx, NULL, &out_length, in, XSauto_length_of_in) == 1) {
3300 0 0 if (EVP_PKEY_decrypt(ctx, out_ptr, &out_length, in, XSauto_length_of_in) == 1)
3314 0 0 if (EVP_PKEY_derive(ctx, NULL, &key_length) == 1) {
3317 0 0 if (EVP_PKEY_derive(ctx, key_ptr, &key_length) == 1)
3328 0 0 if (EVP_PKEY_sign(ctx, NULL, &sig_length, tbs, XSauto_length_of_tbs) == 1) {
3331 0 0 if (EVP_PKEY_sign(ctx, sig_ptr, &sig_length, tbs, XSauto_length_of_tbs) == 1)