Home | History | Annotate | Line # | Download | only in test
drbg_cavs_data.h revision 1.1.1.1
      1 /*
      2  * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
      3  *
      4  * Licensed under the OpenSSL license (the "License").  You may not use
      5  * this file except in compliance with the License.  You can obtain a copy
      6  * in the file LICENSE in the source distribution or at
      7  * https://www.openssl.org/source/license.html
      8  */
      9 
     10 /*
     11  * Known answer tests (KAT) for NIST SP800-90A DRBGs.
     12  */
     13 
     14 #include <stddef.h>
     15 
     16 #ifndef OSSL_TEST_DRBG_CAVS_DATA_H
     17 # define OSSL_TEST_DRBG_CAVS_DATA_H
     18 
     19 enum drbg_kat_type {
     20     NO_RESEED,
     21     PR_FALSE,
     22     PR_TRUE
     23 };
     24 
     25 enum drbg_df {
     26     USE_DF,
     27     NO_DF,
     28     NA
     29 };
     30 
     31 struct drbg_kat_no_reseed {
     32     size_t count;
     33     const unsigned char *entropyin;
     34     const unsigned char *nonce;
     35     const unsigned char *persstr;
     36     const unsigned char *addin1;
     37     const unsigned char *addin2;
     38     const unsigned char *retbytes;
     39 };
     40 
     41 struct drbg_kat_pr_false {
     42     size_t count;
     43     const unsigned char *entropyin;
     44     const unsigned char *nonce;
     45     const unsigned char *persstr;
     46     const unsigned char *entropyinreseed;
     47     const unsigned char *addinreseed;
     48     const unsigned char *addin1;
     49     const unsigned char *addin2;
     50     const unsigned char *retbytes;
     51 };
     52 
     53 struct drbg_kat_pr_true {
     54     size_t count;
     55     const unsigned char *entropyin;
     56     const unsigned char *nonce;
     57     const unsigned char *persstr;
     58     const unsigned char *entropyinpr1;
     59     const unsigned char *addin1;
     60     const unsigned char *entropyinpr2;
     61     const unsigned char *addin2;
     62     const unsigned char *retbytes;
     63 };
     64 
     65 struct drbg_kat {
     66     enum drbg_kat_type type;
     67     enum drbg_df df;
     68     int nid;
     69 
     70     size_t entropyinlen;
     71     size_t noncelen;
     72     size_t persstrlen;
     73     size_t addinlen;
     74     size_t retbyteslen;
     75 
     76     const void *t;
     77 };
     78 
     79 extern const struct drbg_kat *drbg_test[];
     80 extern const size_t drbg_test_nelem;
     81 
     82 #endif
     83