summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@crystal.(none)>2008-05-11 14:14:15 +0300
committerNikos Mavrogiannopoulos <nmav@crystal.(none)>2008-05-11 14:14:15 +0300
commit83e85a9d8209d409134bdc6073b6522eadcc6f84 (patch)
treeee1423e74daf9c174137df064f36d78a70ed57c7
parent7357a2fd7f8b89f49f9ec312294f51c08bfa78b5 (diff)
downloadgnutls-83e85a9d8209d409134bdc6073b6522eadcc6f84.tar.gz
hash_deinit can now handle a NULL digest value.
-rw-r--r--lib/gnutls_hash_int.c34
1 files changed, 21 insertions, 13 deletions
diff --git a/lib/gnutls_hash_int.c b/lib/gnutls_hash_int.c
index 49bcdf8715..570e457405 100644
--- a/lib/gnutls_hash_int.c
+++ b/lib/gnutls_hash_int.c
@@ -138,14 +138,18 @@ _gnutls_hash_deinit (digest_hd_st* handle, void *digest)
maclen = _gnutls_hash_get_algo_len (handle->algorithm);
- if (handle->registered && handle->hd.rh.ctx != NULL) {
- handle->hd.rh.cc->output( handle->hd.rh.ctx, digest, maclen);
- handle->hd.rh.cc->deinit( handle->hd.rh.ctx);
- return;
- }
+ if (handle->registered && handle->hd.rh.ctx != NULL)
+ {
+ handle->hd.rh.cc->output( handle->hd.rh.ctx, digest, maclen);
+ handle->hd.rh.cc->deinit( handle->hd.rh.ctx);
+ return;
+ }
- _gnutls_digest_ops.output( handle->hd.gc, digest, maclen);
- _gnutls_digest_ops.deinit( handle->hd.gc);
+ if (digest != NULL)
+ {
+ _gnutls_digest_ops.output( handle->hd.gc, digest, maclen);
+ }
+ _gnutls_digest_ops.deinit( handle->hd.gc);
}
/* HMAC interface */
@@ -221,13 +225,17 @@ _gnutls_hmac_deinit (digest_hd_st* handle, void *digest)
maclen = _gnutls_hmac_get_algo_len (handle->algorithm);
- if (handle->registered && handle->hd.rh.ctx != NULL) {
- handle->hd.rh.cc->output( handle->hd.rh.ctx, digest, maclen);
- handle->hd.rh.cc->deinit( handle->hd.rh.ctx);
- return;
- }
+ if (handle->registered && handle->hd.rh.ctx != NULL)
+ {
+ handle->hd.rh.cc->output( handle->hd.rh.ctx, digest, maclen);
+ handle->hd.rh.cc->deinit( handle->hd.rh.ctx);
+ return;
+ }
- _gnutls_mac_ops.output( handle->hd.gc, digest, maclen);
+ if (digest != NULL)
+ {
+ _gnutls_mac_ops.output( handle->hd.gc, digest, maclen);
+ }
_gnutls_mac_ops.deinit( handle->hd.gc);
}