From fd3dbc1dbf416995089ff9eb1ac99b5cf0beffd7 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Mon, 7 Feb 2011 18:05:27 +0000 Subject: [PATCH] Add CRYPTO_gcm128_tag() function to retrieve the tag. --- crypto/modes/gcm128.c | 6 ++++++ crypto/modes/modes.h | 1 + 2 files changed, 7 insertions(+) diff --git a/crypto/modes/gcm128.c b/crypto/modes/gcm128.c index 2de858c282..a9e9a34d3f 100644 --- a/crypto/modes/gcm128.c +++ b/crypto/modes/gcm128.c @@ -1337,6 +1337,12 @@ int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx,const unsigned char *tag, return -1; } +void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len) +{ + CRYPTO_gcm128_finish(ctx, NULL, 0); + memcpy(tag, ctx->Xi.c, len); +} + GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block) { GCM128_CONTEXT *ret; diff --git a/crypto/modes/modes.h b/crypto/modes/modes.h index f4aac29938..1af06efbfb 100644 --- a/crypto/modes/modes.h +++ b/crypto/modes/modes.h @@ -102,4 +102,5 @@ void CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, size_t len, ctr128_f stream); int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx,const unsigned char *tag, size_t len); +void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); -- 2.25.1