diff --git a/src/aead.c b/src/aead.c index 4932ea62..358ec938 100644 --- a/src/aead.c +++ b/src/aead.c @@ -695,10 +695,11 @@ aead_decrypt(buffer_t *ciphertext, cipher_ctx_t *cipher_ctx, size_t capacity) // Add the salt to bloom filter if (cipher_ctx->init == 1) { - if (ppbloom_add((void *)cipher_ctx->salt, salt_len) == 1) { + if (ppbloom_check((void *)cipher_ctx->salt, salt_len) == 1) { LOGE("crypto: AEAD: repeat salt detected"); return CRYPTO_ERROR; } + ppbloom_add((void *)cipher_ctx->salt, salt_len); cipher_ctx->init = 2; } diff --git a/src/ppbloom.c b/src/ppbloom.c index 511d5877..17e0f019 100644 --- a/src/ppbloom.c +++ b/src/ppbloom.c @@ -80,7 +80,7 @@ ppbloom_add(const void *buffer, int len) { int err; err = bloom_add(ppbloom + current, buffer, len); - if (err == -1 || err == 1) + if (err == -1) return err; bloom_count[current]++;