mirror of
https://github.com/saymrwulf/cryptography.git
synced 2026-05-14 20:37:55 +00:00
Fixed
This commit is contained in:
parent
0b1e66358e
commit
dc043b1e15
2 changed files with 25 additions and 2 deletions
|
|
@ -340,7 +340,7 @@ class HMACs(object):
|
|||
self._backend.lib.HMAC_CTX_init(copied_ctx)
|
||||
copied_ctx = self._backend.ffi.gc(copied_ctx,
|
||||
self._backend.lib.HMAC_CTX_cleanup)
|
||||
res = self._backend.lib.HMAC_CTX_copy(copied_ctx, ctx)
|
||||
res = self._backend.lib.Cryptography_HMAC_CTX_copy(copied_ctx, ctx)
|
||||
assert res != 0
|
||||
return copied_ctx
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ int Cryptography_HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *,
|
|||
ENGINE *);
|
||||
int Cryptography_HMAC_Update(HMAC_CTX *, const unsigned char *, size_t);
|
||||
int Cryptography_HMAC_Final(HMAC_CTX *, unsigned char *, unsigned int *);
|
||||
int HMAC_CTX_copy(HMAC_CTX *, HMAC_CTX *);
|
||||
int Cryptography_HMAC_CTX_copy(HMAC_CTX *, HMAC_CTX *);
|
||||
"""
|
||||
|
||||
MACROS = """
|
||||
|
|
@ -64,4 +64,27 @@ int Cryptography_HMAC_Final(HMAC_CTX *ctx, unsigned char *digest,
|
|||
#endif
|
||||
}
|
||||
|
||||
int Cryptography_HMAC_CTX_copy(HMAC_CTX *dst_ctx, HMAC_CTX *src_ctx) {
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x010000000
|
||||
return HMAC_CTX_copy(dst_ctx, src_ctx);
|
||||
#else
|
||||
HMAC_CTX_init(dst_ctx);
|
||||
if (!EVP_MD_CTX_copy_ex(&dst_ctx->i_ctx, &src_ctx->i_ctx)) {
|
||||
goto err;
|
||||
}
|
||||
if (!EVP_MD_CTX_copy_ex(&dst_ctx->o_ctx, &src_ctx->o_ctx)) {
|
||||
goto err;
|
||||
}
|
||||
if (!EVP_MD_CTX_copy_ex(&dst_ctx->md_ctx, &src_ctx->md_ctx)) {
|
||||
goto err;
|
||||
}
|
||||
memcpy(dst_ctx->key, src_ctx->key, HMAC_MAX_MD_CBLOCK);
|
||||
dst_ctx->key_length = src_ctx->key_length;
|
||||
dst_ctx->md = src_ctx->md;
|
||||
return 1;
|
||||
|
||||
err:
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
"""
|
||||
|
|
|
|||
Loading…
Reference in a new issue