aes ctr_drbg: add cavs tests
[openssl.git] / test / drbg_cavs_data.h
diff --git a/test/drbg_cavs_data.h b/test/drbg_cavs_data.h
new file mode 100644 (file)
index 0000000..3ad97ab
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Known answer tests (KAT) for NIST SP800-90A DRBGs.
+ */
+
+#include <stddef.h>
+
+#ifndef DRBG_CAVS_DATA_H
+# define DRBG_CAVS_DATA_H
+
+enum drbg_kat_type {
+    NO_RESEED,
+    PR_FALSE,
+    PR_TRUE
+};
+
+enum drbg_df {
+    USE_DF,
+    NO_DF,
+    NA
+};
+
+struct drbg_kat_no_reseed {
+    size_t count;
+    const unsigned char *entropyin;
+    const unsigned char *nonce;
+    const unsigned char *persstr;
+    const unsigned char *addin1;
+    const unsigned char *addin2;
+    const unsigned char *retbytes;
+};
+
+struct drbg_kat_pr_false {
+    size_t count;
+    const unsigned char *entropyin;
+    const unsigned char *nonce;
+    const unsigned char *persstr;
+    const unsigned char *entropyinreseed;
+    const unsigned char *addinreseed;
+    const unsigned char *addin1;
+    const unsigned char *addin2;
+    const unsigned char *retbytes;
+};
+
+struct drbg_kat_pr_true {
+    size_t count;
+    const unsigned char *entropyin;
+    const unsigned char *nonce;
+    const unsigned char *persstr;
+    const unsigned char *entropyinpr1;
+    const unsigned char *addin1;
+    const unsigned char *entropyinpr2;
+    const unsigned char *addin2;
+    const unsigned char *retbytes;
+};
+
+struct drbg_kat {
+    enum drbg_kat_type type;
+    enum drbg_df df;
+    int nid;
+
+    size_t entropyinlen;
+    size_t noncelen;
+    size_t persstrlen;
+    size_t addinlen;
+    size_t retbyteslen;
+
+    const void *t;
+};
+
+extern const struct drbg_kat *drbg_test[];
+extern const size_t drbg_test_nelem;
+
+#endif