projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update README and links to required libraries.
[tinc]
/
src
/
openssl
/
digest.c
diff --git
a/src/openssl/digest.c
b/src/openssl/digest.c
index
d51dcaa
..
9569f3c
100644
(file)
--- a/
src/openssl/digest.c
+++ b/
src/openssl/digest.c
@@
-66,8
+66,13
@@
digest_t *digest_open_by_nid(int nid, int maclength) {
}
bool digest_set_key(digest_t *digest, const void *key, size_t len) {
}
bool digest_set_key(digest_t *digest, const void *key, size_t len) {
+#ifdef HAVE_HMAC_CTX_NEW
digest->hmac_ctx = HMAC_CTX_new();
HMAC_Init_ex(digest->hmac_ctx, key, len, digest->digest, NULL);
digest->hmac_ctx = HMAC_CTX_new();
HMAC_Init_ex(digest->hmac_ctx, key, len, digest->digest, NULL);
+#else
+ digest->hmac_ctx = xzalloc(sizeof(*digest->hmac_ctx));
+ HMAC_Init(digest->hmac_ctx, key, len, digest->digest);
+#endif
if(!digest->hmac_ctx) {
abort();
if(!digest->hmac_ctx) {
abort();
@@
-85,10
+90,16
@@
void digest_close(digest_t *digest) {
EVP_MD_CTX_destroy(digest->md_ctx);
}
EVP_MD_CTX_destroy(digest->md_ctx);
}
+#ifdef HAVE_HMAC_CTX_NEW
+
if(digest->hmac_ctx) {
HMAC_CTX_free(digest->hmac_ctx);
}
if(digest->hmac_ctx) {
HMAC_CTX_free(digest->hmac_ctx);
}
+#else
+ free(digest->hmac_ctx);
+#endif
+
free(digest);
}
free(digest);
}