From: Niels Möller Date: Wed, 28 Sep 2005 13:53:18 +0000 (+0200) Subject: * examples/nettle-openssl.c (nettle_openssl_md5) X-Git-Tag: nettle_1.13_release_20051006~37 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e57dd37cecff70550663cabc9206948f8f9e522c;p=thirdparty%2Fnettle.git * examples/nettle-openssl.c (nettle_openssl_md5) (nettle_openssl_sha1): Added glue for openssl hash functions. Rev: src/nettle/examples/nettle-openssl.c:1.7 --- diff --git a/examples/nettle-openssl.c b/examples/nettle-openssl.c index 00345188..59b636c5 100644 --- a/examples/nettle-openssl.c +++ b/examples/nettle-openssl.c @@ -43,6 +43,9 @@ #include #include +#include +#include + #include "nettle-internal.h" @@ -294,4 +297,74 @@ nettle_openssl_cast128 = { openssl_cast_encrypt, openssl_cast_decrypt }; +/* Hash functions */ + +/* md5 */ + +static void +openssl_md5_init(void *ctx) +{ + MD5_Init(ctx); +} + +static void +openssl_md5_update(void *ctx, + unsigned length, + const uint8_t *src) +{ + MD5_Update(ctx, src, length); +} + +static void +openssl_md5_digest(void *ctx, + unsigned length, uint8_t *dst) +{ + assert(length == SHA_DIGEST_LENGTH); + MD5_Final(dst, ctx); + MD5_Init(ctx); +} + +const struct nettle_hash +nettle_openssl_md5 = { + "openssl md5", sizeof(SHA_CTX), + SHA_DIGEST_LENGTH, SHA_CBLOCK, + openssl_md5_init, + openssl_md5_update, + openssl_md5_digest +}; + +/* sha1 */ + +static void +openssl_sha1_init(void *ctx) +{ + SHA1_Init(ctx); +} + +static void +openssl_sha1_update(void *ctx, + unsigned length, + const uint8_t *src) +{ + SHA1_Update(ctx, src, length); +} + +static void +openssl_sha1_digest(void *ctx, + unsigned length, uint8_t *dst) +{ + assert(length == SHA_DIGEST_LENGTH); + SHA1_Final(dst, ctx); + SHA1_Init(ctx); +} + +const struct nettle_hash +nettle_openssl_sha1 = { + "openssl sha1", sizeof(SHA_CTX), + SHA_DIGEST_LENGTH, SHA_CBLOCK, + openssl_sha1_init, + openssl_sha1_update, + openssl_sha1_digest +}; + #endif /* WITH_OPENSSL */