diff options
| author | Steven Fackler <[email protected]> | 2015-02-08 23:30:34 -0800 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2015-02-08 23:31:46 -0800 |
| commit | 6ef819f9718c3b43551461b72c531c2eeee878f9 (patch) | |
| tree | 4788a3c2a2ac6f425ab1b7317bc88bd1ebfc57d1 /openssl-sys/src/old_openssl_shim.c | |
| parent | Merge pull request #156 from s-panferov/patch-1 (diff) | |
| download | rust-openssl-6ef819f9718c3b43551461b72c531c2eeee878f9.tar.xz rust-openssl-6ef819f9718c3b43551461b72c531c2eeee878f9.zip | |
Fix builds against 0.9.x OpenSSL
Namely builds on OSX
Diffstat (limited to 'openssl-sys/src/old_openssl_shim.c')
| -rw-r--r-- | openssl-sys/src/old_openssl_shim.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/openssl-sys/src/old_openssl_shim.c b/openssl-sys/src/old_openssl_shim.c new file mode 100644 index 00000000..473bd2ae --- /dev/null +++ b/openssl-sys/src/old_openssl_shim.c @@ -0,0 +1,49 @@ +#include <openssl/hmac.h> + +#ifdef OLD_OPENSSL +// Copied from openssl crypto/hmac/hmac.c +int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx) + { + if (!EVP_MD_CTX_copy(&dctx->i_ctx, &sctx->i_ctx)) + goto err; + if (!EVP_MD_CTX_copy(&dctx->o_ctx, &sctx->o_ctx)) + goto err; + if (!EVP_MD_CTX_copy(&dctx->md_ctx, &sctx->md_ctx)) + goto err; + memcpy(dctx->key, sctx->key, HMAC_MAX_MD_CBLOCK); + dctx->key_length = sctx->key_length; + dctx->md = sctx->md; + return 1; + err: + return 0; + } + +int HMAC_Init_ex_shim(HMAC_CTX *ctx, const void *key, int key_len, const EVP_MD *md, ENGINE *impl) { + HMAC_Init_ex(ctx, key, key_len, md, impl); + return 1; +} + +int HMAC_Update_shim(HMAC_CTX *ctx, const unsigned char *data, int len) { + HMAC_Update(ctx, data, len); + return 1; +} + +int HMAC_Final_shim(HMAC_CTX *ctx, unsigned char *md, unsigned int *len) { + HMAC_Final(ctx, md, len); + return 1; +} + +#else /* OLD_OPENSSL */ + +int HMAC_Init_ex_shim(HMAC_CTX *ctx, const void *key, int key_len, const EVP_MD *md, ENGINE *impl) { + return HMAC_Init_ex(ctx, key, key_len, md, impl); +} + +int HMAC_Update_shim(HMAC_CTX *ctx, const unsigned char *data, int len) { + return HMAC_Update(ctx, data, len); +} + +int HMAC_Final_shim(HMAC_CTX *ctx, unsigned char *md, unsigned int *len) { + return HMAC_Final(ctx, md, len); +} +#endif /* OLD_OPENSSL */ |