X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fwrbuf_sha1.c;h=d801a28fc67629ecf5e5253785e4b80c399280c0;hb=1b29294f1ba913fb798c3556e3fda09bfc46bb67;hp=5627f6e0d8c1e5a0d163d6fd73344bdd51b79f70;hpb=053367cbe356fb3ce0def34b065dae589d700daf;p=yaz-moved-to-github.git diff --git a/src/wrbuf_sha1.c b/src/wrbuf_sha1.c index 5627f6e..d801a28 100644 --- a/src/wrbuf_sha1.c +++ b/src/wrbuf_sha1.c @@ -20,10 +20,30 @@ #if HAVE_GCRYPT_H #include #endif +#if HAVE_NETTLE +#include +#endif int wrbuf_sha1_write(WRBUF b, const char *cp, size_t sz, int hexit) { -#if HAVE_GCRYPT_H +#if HAVE_NETTLE + struct sha1_ctx ctx; + uint8_t digest[SHA1_DIGEST_SIZE]; + + sha1_init(&ctx); + sha1_update(&ctx, sz, (uint8_t *) cp); + sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + + if (hexit) + { + int i; + for (i = 0; i < SHA1_DIGEST_SIZE; i++) + wrbuf_printf(b, "%02x", digest[i]); + } + else + wrbuf_write(b, (const char *) digest, SHA1_DIGEST_SIZE); + return 0; +#elif HAVE_GCRYPT_H gcry_error_t e; gcry_md_hd_t hd; const unsigned char *digest_buf;