In chacha_init(), allow for a NULL iv. Reported by znz on github.
authormiod <miod@openbsd.org>
Mon, 4 Aug 2014 04:16:11 +0000 (04:16 +0000)
committermiod <miod@openbsd.org>
Mon, 4 Aug 2014 04:16:11 +0000 (04:16 +0000)
ok guenther@ jsing@

lib/libcrypto/evp/e_chacha.c
lib/libssl/src/crypto/evp/e_chacha.c

index 0a5ab98..b63f586 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: e_chacha.c,v 1.4 2014/07/10 22:45:57 jsing Exp $ */
+/* $OpenBSD: e_chacha.c,v 1.5 2014/08/04 04:16:11 miod Exp $ */
 /*
  * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
  *
@@ -53,7 +53,8 @@ chacha_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,
 {
        ChaCha_set_key((ChaCha_ctx *)ctx->cipher_data, key,
            EVP_CIPHER_CTX_key_length(ctx) * 8);
-       ChaCha_set_iv((ChaCha_ctx *)ctx->cipher_data, iv, NULL);
+       if (iv != NULL)
+               ChaCha_set_iv((ChaCha_ctx *)ctx->cipher_data, iv, NULL);
        return 1;
 }
 
index 0a5ab98..b63f586 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: e_chacha.c,v 1.4 2014/07/10 22:45:57 jsing Exp $ */
+/* $OpenBSD: e_chacha.c,v 1.5 2014/08/04 04:16:11 miod Exp $ */
 /*
  * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
  *
@@ -53,7 +53,8 @@ chacha_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,
 {
        ChaCha_set_key((ChaCha_ctx *)ctx->cipher_data, key,
            EVP_CIPHER_CTX_key_length(ctx) * 8);
-       ChaCha_set_iv((ChaCha_ctx *)ctx->cipher_data, iv, NULL);
+       if (iv != NULL)
+               ChaCha_set_iv((ChaCha_ctx *)ctx->cipher_data, iv, NULL);
        return 1;
 }