diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/mesa-sha1.c | 34 | ||||
-rw-r--r-- | src/util/mesa-sha1.h | 13 |
2 files changed, 13 insertions, 34 deletions
diff --git a/src/util/mesa-sha1.c b/src/util/mesa-sha1.c index e8f1bad22f0..eb882e8bd00 100644 --- a/src/util/mesa-sha1.c +++ b/src/util/mesa-sha1.c @@ -27,45 +27,21 @@ #include "sha1/sha1.h" #include "mesa-sha1.h" -struct mesa_sha1 * -_mesa_sha1_init(void) -{ - SHA1_CTX *ctx = malloc(sizeof(*ctx)); - - if (!ctx) - return NULL; - - SHA1Init(ctx); - return (struct mesa_sha1 *) ctx; -} - int _mesa_sha1_update(struct mesa_sha1 *ctx, const void *data, int size) { - SHA1_CTX *sha1_ctx = (SHA1_CTX *) ctx; - - SHA1Update(sha1_ctx, data, size); - return 1; -} - -int -_mesa_sha1_final(struct mesa_sha1 *ctx, unsigned char result[20]) -{ - SHA1_CTX *sha1_ctx = (SHA1_CTX *) ctx; - - SHA1Final(result, sha1_ctx); - free(sha1_ctx); + SHA1Update(ctx, data, size); return 1; } void _mesa_sha1_compute(const void *data, size_t size, unsigned char result[20]) { - struct mesa_sha1 *ctx; + struct mesa_sha1 ctx; - ctx = _mesa_sha1_init(); - _mesa_sha1_update(ctx, data, size); - _mesa_sha1_final(ctx, result); + _mesa_sha1_init(&ctx); + _mesa_sha1_update(&ctx, data, size); + _mesa_sha1_final(&ctx, result); } char * diff --git a/src/util/mesa-sha1.h b/src/util/mesa-sha1.h index 0be5485f313..f927d5772db 100644 --- a/src/util/mesa-sha1.h +++ b/src/util/mesa-sha1.h @@ -24,21 +24,24 @@ #define SHA1_H #include <stdlib.h> +#include "sha1/sha1.h" #ifdef __cplusplus extern "C" { #endif -struct mesa_sha1; +#define mesa_sha1 _SHA1_CTX -struct mesa_sha1 * -_mesa_sha1_init(void); +#define _mesa_sha1_init SHA1Init int _mesa_sha1_update(struct mesa_sha1 *ctx, const void *data, int size); -int -_mesa_sha1_final(struct mesa_sha1 *ctx, unsigned char result[20]); +static inline void +_mesa_sha1_final(struct mesa_sha1 *ctx, unsigned char result[20]) +{ + SHA1Final(result, ctx); +} char * _mesa_sha1_format(char *buf, const unsigned char *sha1); |