remove uint128 requirement from patch 978f869b99 (CFE)
authorBruce Momjian <[email protected]>
Fri, 25 Dec 2020 16:35:59 +0000 (11:35 -0500)
committerBruce Momjian <[email protected]>
Fri, 25 Dec 2020 16:35:59 +0000 (11:35 -0500)
Used char[16] instead.

Reported-by: buildfarm member florican
Backpatch-through: master

src/common/kmgr_utils.c
src/include/common/kmgr_utils.h

index d031976f5001491a497c11d20a62c6266877c3c9..db8572c8eaeb4317f1ae5608db1373c2964fe6f6 100644 (file)
@@ -81,7 +81,7 @@ kmgr_wrap_key(PgCipherCtx *ctx, CryptoKey *in, CryptoKey *out)
                           &enclen, /* Resulting length, must match input for us */
                           iv, /* Generated IV from above */
                           sizeof(iv), /* Length of the IV */
-                          (unsigned char *) &out->tag, /* Resulting tag */
+                          out->tag, /* Resulting tag */
                           sizeof(out->tag))) /* Length of our tag */
        return false;
 
@@ -106,7 +106,7 @@ kmgr_unwrap_key(PgCipherCtx *ctx, CryptoKey *in, CryptoKey *out)
 
    out->pgkey_id = in->pgkey_id;
    out->counter = in->counter;
-   out->tag = in->tag;
+   memcpy(out->tag, in->tag, sizeof(in->tag));
 
    /* Construct the IV we are going to use, see kmgr_utils.h */
    memcpy(iv, &out->pgkey_id, sizeof(out->pgkey_id));
@@ -120,7 +120,7 @@ kmgr_unwrap_key(PgCipherCtx *ctx, CryptoKey *in, CryptoKey *out)
                           &declen, /* Length of plaintext */
                           iv, /* IV we constructed above */
                           sizeof(iv), /* Size of our IV */
-                          (unsigned char *) &in->tag, /* Tag which will be verified */
+                          in->tag, /* Tag which will be verified */
                           sizeof(in->tag))) /* Size of our tag */
        return false;
 
index 23124a7fc608dea6baeccfd6d47e3378e7e9246a..ce26df56fb3b0995976b69f4fcf18c08df40047a 100644 (file)
@@ -82,7 +82,7 @@ typedef struct CryptoKey
 {
    uint64  pgkey_id;                               /* Upper half of IV */
    uint64  counter;                                /* Lower half of IV */
-   uint128 tag;                                    /* GCM tag */
+   unsigned char tag[16];                          /* GCM tag */
    unsigned char encrypted_key[sizeof(int) + KMGR_MAX_KEY_LEN_BYTES];
 } CryptoKey;