aboutsummaryrefslogtreecommitdiff
path: root/testcases/kernel
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2019-03-18 10:13:24 -0700
committerPetr Vorel <pvorel@suse.cz>2019-03-18 20:07:43 +0100
commit11f34510bf5b9d72ee1f9a740d8e15212837525d (patch)
tree2d914b3a9163ae926ae949d7afd782503876b218 /testcases/kernel
parent6d7ddca878e431c1efeb2053a50ca07da3fee203 (diff)
crypto/af_alg02: new regression test for salsa20 empty message bug
Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Petr Vorel <pvorel@suse.cz>
Diffstat (limited to 'testcases/kernel')
-rw-r--r--testcases/kernel/crypto/.gitignore1
-rw-r--r--testcases/kernel/crypto/af_alg02.c29
2 files changed, 30 insertions, 0 deletions
diff --git a/testcases/kernel/crypto/.gitignore b/testcases/kernel/crypto/.gitignore
index 998af1728..dc79f3275 100644
--- a/testcases/kernel/crypto/.gitignore
+++ b/testcases/kernel/crypto/.gitignore
@@ -1,3 +1,4 @@
af_alg01
+af_alg02
pcrypt_aead01
crypto_user01
diff --git a/testcases/kernel/crypto/af_alg02.c b/testcases/kernel/crypto/af_alg02.c
new file mode 100644
index 000000000..a9e820423
--- /dev/null
+++ b/testcases/kernel/crypto/af_alg02.c
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright 2019 Google LLC
+ */
+
+/*
+ * Regression test for commit ecaaab564978 ("crypto: salsa20 - fix
+ * blkcipher_walk API usage"), or CVE-2017-17805. This test verifies that an
+ * empty message can be encrypted with Salsa20 without crashing the kernel.
+ */
+
+#include "tst_test.h"
+#include "tst_af_alg.h"
+
+static void run(void)
+{
+ char buf[16];
+ int reqfd = tst_alg_setup_reqfd("skcipher", "salsa20", NULL, 16);
+
+ /* With the bug the kernel crashed here */
+ if (read(reqfd, buf, 16) == 0)
+ tst_res(TPASS, "Successfully \"encrypted\" an empty message");
+ else
+ tst_res(TBROK, "read() didn't return 0");
+}
+
+static struct tst_test test = {
+ .test_all = run,
+};