OpenCoverage

hm_ameth.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/hmac/hm_ameth.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3static int-
4hmac_size(const EVP_PKEY *pkey)-
5{-
6 return
never executed: return 64;
64;
never executed: return 64;
0
7}-
8-
9static void-
10hmac_key_free(EVP_PKEY *pkey)-
11{-
12 ASN1_OCTET_STRING *os = (ASN1_OCTET_STRING *)pkey->pkey.ptr;-
13-
14 if (os
osDescription
TRUEevaluated 1804 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEnever evaluated
) {
0-1804
15 if (os->data
os->dataDescription
TRUEevaluated 1804 times by 3 tests
Evaluated by:
  • ssltest
  • tls_prf
  • tlstest
FALSEnever evaluated
)
0-1804
16 explicit_bzero(os->data, os->length);
executed 1804 times by 3 tests: explicit_bzero(os->data, os->length);
Executed by:
  • ssltest
  • tls_prf
  • tlstest
1804
17 ASN1_OCTET_STRING_free(os);-
18 }
executed 1804 times by 3 tests: end of block
Executed by:
  • ssltest
  • tls_prf
  • tlstest
1804
19}
executed 1804 times by 3 tests: end of block
Executed by:
  • ssltest
  • tls_prf
  • tlstest
1804
20-
21static int-
22hmac_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)-
23{-
24 switch (op) {-
25 case
never executed: case 0x3:
0x3:
never executed: case 0x3:
0
26 *(int *)arg2 = 64;-
27 return
never executed: return 1;
1;
never executed: return 1;
0
28 default
never executed: default:
:
never executed: default:
0
29 return
never executed: return -2;
-2;
never executed: return -2;
0
30 }-
31}-
32-
33-
34-
35-
36-
37-
38-
39static int-
40old_hmac_decode(EVP_PKEY *pkey, const unsigned char **pder, int derlen)-
41{-
42 ASN1_OCTET_STRING *os;-
43-
44 os = ASN1_OCTET_STRING_new();-
45 if (os ==
os == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
46 ((void *)0)
os == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
47 )-
48 goto
never executed: goto err;
err;
never executed: goto err;
0
49 if (ASN1_OCTET_STRING_set(os, *pder, derlen) == 0
ASN1_OCTET_STR..., derlen) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
50 goto
never executed: goto err;
err;
never executed: goto err;
0
51 if (EVP_PKEY_assign(pkey, 855, os) == 0
EVP_PKEY_assig... 855, os) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
52 goto
never executed: goto err;
err;
never executed: goto err;
0
53 return
never executed: return 1;
1;
never executed: return 1;
0
54-
55err:-
56 ASN1_OCTET_STRING_free(os);-
57 return
never executed: return 0;
0;
never executed: return 0;
0
58}-
59-
60static int-
61old_hmac_encode(const EVP_PKEY *pkey, unsigned char **pder)-
62{-
63 int inc;-
64 ASN1_OCTET_STRING *os = (ASN1_OCTET_STRING *)pkey->pkey.ptr;-
65-
66 if (pder
pderDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
67 if (!*pder
!*pderDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
68 *pder = malloc(os->length);-
69 if (*
*pder == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
pder ==
*pder == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
70 ((void *)0)
*pder == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
71 )-
72 return
never executed: return -1;
-1;
never executed: return -1;
0
73 inc = 0;-
74 }
never executed: end of block
else
0
75 inc = 1;
never executed: inc = 1;
0
76-
77 memcpy(*pder, os->data, os->length);-
78-
79 if (inc
incDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
80 *
never executed: *pder += os->length;
pder += os->length;
never executed: *pder += os->length;
0
81 }
never executed: end of block
0
82-
83 return
never executed: return os->length;
os->length;
never executed: return os->length;
0
84}-
85-
86-
87-
88const EVP_PKEY_ASN1_METHOD hmac_asn1_meth = {-
89 .pkey_id = 855,-
90 .pkey_base_id = 855,-
91-
92 .pem_str = "HMAC",-
93 .info = "OpenSSL HMAC method",-
94-
95 .pkey_size = hmac_size,-
96-
97 .pkey_free = hmac_key_free,-
98 .pkey_ctrl = hmac_pkey_ctrl,-
99-
100 .old_priv_decode = old_hmac_decode,-
101 .old_priv_encode = old_hmac_encode-
102-
103};-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2