Преглед изворни кода

abort() if hydro_hash_final() is called twice

Frank Denis пре 9 година
родитељ
комит
fe9fb05aae
2 измењених фајлова са 6 додато и 1 уклоњено
  1. 1 1
      impl/hash.h
  2. 5 0
      tests/tests.c

+ 1 - 1
impl/hash.h

@@ -104,7 +104,7 @@ static int hydro_hash_blake2s_final(
 
     memset(buffer, 0, sizeof buffer);
     if (state->f[0] != 0) {
-        return -1;
+        abort();
     }
     state->f[0] = (uint32_t)-1;
     hydro_hash_increment_counter(state, state->buf_off);

+ 5 - 0
tests/tests.c

@@ -262,6 +262,11 @@ static void test_sign(void)
     hydro_sign_update(
         &st, msg + (sizeof msg) / 3, (sizeof msg) - (sizeof msg) / 3);
     assert(hydro_sign_final_verify(&st, sig, kp.pk) == 0);
+
+    hydro_sign_init(&st, ctx);
+    hydro_sign_update(&st, msg, (sizeof msg) / 3);
+    hydro_sign_update(
+        &st, msg + (sizeof msg) / 3, (sizeof msg) - (sizeof msg) / 3);
     sig[0]++;
     assert(hydro_sign_final_verify(&st, sig, kp.pk) == -1);