1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
$NetBSD: patch-libtcpa_hmac.c,v 1.2 2020/10/26 10:04:12 schmonz Exp $
Fix build with OpenSSL 1.1.
--- libtcpa/hmac.c.orig 2020-03-27 18:46:13.942881974 +0000
+++ libtcpa/hmac.c
@@ -167,25 +167,30 @@ int authhmac(unsigned char *digest, unsi
int rawhmac(unsigned char *digest, unsigned char *key,
unsigned int keylen, ...)
{
- HMAC_CTX hmac;
+ HMAC_CTX *hmac;
unsigned int dlen;
unsigned char *data;
va_list argp;
- HMAC_Init(&hmac, key, keylen, EVP_sha1());
+ hmac = HMAC_CTX_new();
+ if (!hmac)
+ return -1;
+ HMAC_Init_ex(hmac, key, keylen, EVP_sha1(), NULL);
va_start(argp, keylen);
for (;;) {
dlen = (unsigned int) va_arg(argp, unsigned int);
if (dlen == 0)
break;
data = (unsigned char *) va_arg(argp, int);
- if (data == NULL)
+ if (data == NULL) {
+ HMAC_CTX_free(hmac);
return -1;
- HMAC_Update(&hmac, data, dlen);
+ }
+ HMAC_Update(hmac, data, dlen);
}
- HMAC_Final(&hmac, digest, &dlen);
- HMAC_cleanup(&hmac);
+ HMAC_Final(hmac, digest, &dlen);
va_end(argp);
+ HMAC_CTX_free(hmac);
return 0;
}
|