Bläddra i källkod

Merge pull request #129 from libtom/fix/gcm_counter_reuse

GCM counter incrementation isn't stopped at 2^32 blocks, which breaks GCM
Steffen Jaeckel 9 år sedan
förälder
incheckning
f784793891
1 ändrade filer med 5 tillägg och 0 borttagningar
  1. 5 0
      src/encauth/gcm/gcm_process.c

+ 5 - 0
src/encauth/gcm/gcm_process.c

@@ -49,6 +49,11 @@ int gcm_process(gcm_state *gcm,
       return err;
    }
 
+   /* 0xFFFFFFFE0 = ((2^39)-256)/8 */
+   if (gcm->pttotlen / 8 + (ulong64)gcm->buflen + (ulong64)ptlen >= CONST64(0xFFFFFFFE0)) {
+      return CRYPT_INVALID_ARG;
+   }
+
    /* in AAD mode? */
    if (gcm->mode == LTC_GCM_MODE_AAD) {
       /* let's process the AAD */