Home | History | Annotate | Line # | Download | only in test
      1 /*
      2  * Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved.
      3  *
      4  * Licensed under the Apache License 2.0 (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 #define PASS 1
     11 #define FAIL 0
     12 #define ITM(x) x, sizeof(x)
     13 
     14 #ifndef OPENSSL_NO_EC
     15 
     16 struct ecdsa_keygen_st {
     17     const char *curve_name;
     18 };
     19 
     20 struct ecdsa_pub_verify_st {
     21     const char *curve_name;
     22     const unsigned char *pub;
     23     size_t pub_len;
     24     int pass;
     25 };
     26 
     27 struct ecdsa_siggen_st {
     28     const char *digest_alg;
     29     const char *curve_name;
     30     const unsigned char *msg;
     31     size_t msg_len;
     32 };
     33 
     34 struct ecdsa_sigver_st {
     35     const char *digest_alg;
     36     const char *curve_name;
     37     const unsigned char *msg;
     38     size_t msg_len;
     39     const unsigned char *pub;
     40     size_t pub_len;
     41     const unsigned char *r;
     42     size_t r_len;
     43     const unsigned char *s;
     44     size_t s_len;
     45     int pass;
     46 };
     47 
     48 struct ecdh_cofactor_derive_st {
     49     int derive_cofactor_mode;
     50     int key_cofactor;
     51     int expected;
     52 };
     53 
     54 static const struct ecdsa_keygen_st ecdsa_keygen_data[] = {
     55     { "P-224" },
     56 };
     57 
     58 static const unsigned char ecdsa_pv_pub0[] = {
     59     POINT_CONVERSION_UNCOMPRESSED,
     60     0x50, 0x0F, 0x05, 0x86, 0xD3, 0xAA, 0x8A, 0x48,
     61     0x46, 0x63, 0x0D, 0xD7, 0xC7, 0x5D, 0x5F, 0x1D,
     62     0xB2, 0xA7, 0x9B, 0xE8, 0xC8, 0xBB, 0xBE, 0x2C,
     63     0x93, 0x33, 0xDC, 0xCB, 0xBB, 0x2F, 0xB3, 0xCF,
     64     0x55, 0x88, 0x7A, 0x97, 0xD1, 0x75, 0x73, 0xFE,
     65     0x92, 0x02, 0x5C, 0xC8, 0xE3, 0xF4, 0x35, 0x4B,
     66     0x08, 0x7E, 0xF4, 0xD3, 0x7D, 0x86, 0x06, 0x92,
     67     0xBA, 0x15, 0x3F, 0xCF, 0x0C, 0xC4, 0xBF, 0xBC,
     68 };
     69 static const unsigned char ecdsa_pv_pub1[] = {
     70     POINT_CONVERSION_UNCOMPRESSED,
     71     0x1F, 0x74, 0xD6, 0x99, 0xEB, 0x1D, 0x4F, 0x26,
     72     0x25, 0x5E, 0xD4, 0x6A, 0xA6, 0xD5, 0x23, 0xB3,
     73     0xF5, 0x5D, 0x14, 0x38, 0xE0, 0x4D, 0x23, 0x7F,
     74     0x9A, 0xE5, 0xB7, 0x1B, 0xF9, 0x7F, 0xAD, 0x7E,
     75     0x0E, 0x1C, 0x06, 0xF4, 0x20, 0xF3, 0x8E, 0x93,
     76     0x79, 0x11, 0x15, 0xD6, 0x82, 0x12, 0x14, 0xC2,
     77     0xF9, 0x30, 0x61, 0x9A, 0xC3, 0x12, 0xE3, 0x88,
     78     0x4E, 0xB1, 0x1A, 0x4B, 0x54, 0x6D, 0xEA, 0xCF,
     79 };
     80 static const struct ecdsa_pub_verify_st ecdsa_pv_data[] = {
     81     {
     82         "P-256",
     83         ITM(ecdsa_pv_pub0),
     84         PASS
     85     },
     86     {
     87         "P-256",
     88         ITM(ecdsa_pv_pub1),
     89         FAIL
     90     },
     91 };
     92 
     93 static const unsigned char ecdsa_siggen_msg0[] = {
     94     0xB8, 0x65, 0x55, 0x9D, 0x54, 0x5C, 0xD2, 0xC7,
     95     0xC2, 0xCA, 0x96, 0xDF, 0xF3, 0x9B, 0x26, 0xED,
     96     0xF8, 0x16, 0x99, 0x05, 0x94, 0xA9, 0x3F, 0x69,
     97     0x5F, 0xE8, 0x73, 0xC5, 0xFE, 0x78, 0x28, 0x84,
     98     0xC0, 0xA7, 0xFA, 0x29, 0xBE, 0x37, 0x82, 0xC0,
     99     0x56, 0x41, 0x49, 0xAF, 0xF3, 0x59, 0xBB, 0x96,
    100     0xF6, 0x4B, 0x87, 0x45, 0xAB, 0x1F, 0xB2, 0xB3,
    101     0x8F, 0x14, 0xD4, 0xD7, 0x1C, 0x29, 0x08, 0x0C,
    102     0x79, 0x8A, 0x38, 0xAE, 0x32, 0x1C, 0x38, 0x80,
    103     0x5B, 0x45, 0x25, 0x46, 0x5D, 0xCE, 0x7D, 0x34,
    104     0xC0, 0x90, 0xEF, 0x06, 0x84, 0xA1, 0x0F, 0xF8,
    105     0x56, 0x2D, 0x46, 0xF7, 0xB7, 0xDE, 0x06, 0x7C,
    106     0x87, 0xA6, 0x7E, 0x71, 0x8D, 0x7B, 0x27, 0xE5,
    107     0x51, 0x0C, 0xE7, 0xBA, 0x18, 0x08, 0xE0, 0xD5,
    108     0x0B, 0x8C, 0xB6, 0x22, 0xA5, 0x8F, 0xB3, 0xF7,
    109     0xFB, 0xC6, 0x2A, 0x59, 0x02, 0x8A, 0x8C, 0x42,
    110 };
    111 static const struct ecdsa_siggen_st ecdsa_siggen_data[] = {
    112      {
    113         "SHA2-256",
    114         "P-384",
    115         ITM(ecdsa_siggen_msg0),
    116      },
    117 };
    118 
    119 static const unsigned char ecdsa_sigver_msg0[] = {
    120     0x0b, 0x00, 0xc4, 0x3f, 0xb9, 0xcb, 0x92, 0xd3,
    121     0x56, 0x83, 0xc6, 0x97, 0x23, 0xf8, 0xf1, 0x0b,
    122     0x0a, 0xa6, 0x60, 0xca, 0x3a, 0xed, 0xba, 0x38,
    123     0xf7, 0x86, 0xc2, 0x6d, 0xa1, 0xb6, 0x40, 0x2c,
    124     0x92, 0xfe, 0x44, 0x1a, 0x19, 0x61, 0x5c, 0x02,
    125     0xfa, 0xd3, 0x79, 0x99, 0xb8, 0x99, 0xe8, 0x70,
    126     0xaa, 0x26, 0x01, 0xf2, 0xe7, 0xdc, 0x69, 0xce,
    127     0x9a, 0xd2, 0xaa, 0x02, 0x15, 0xab, 0x0d, 0xcb,
    128     0x77, 0xaf, 0xe0, 0x81, 0x6d, 0x92, 0x6e, 0x09,
    129     0xcd, 0x93, 0xd6, 0x22, 0x67, 0xc2, 0xd3, 0x7c,
    130     0x58, 0x11, 0xc8, 0x77, 0x4e, 0x97, 0x92, 0x87,
    131     0xcd, 0xe4, 0xc9, 0x2a, 0x77, 0xb2, 0xf0, 0xe7,
    132     0xd3, 0x5a, 0x20, 0x36, 0x91, 0x75, 0x23, 0xa8,
    133     0xcb, 0x4a, 0xd0, 0xe5, 0x95, 0x3b, 0x24, 0x2a,
    134     0x86, 0xa0, 0xaa, 0xbe, 0xac, 0x59, 0xd7, 0xd0,
    135     0xfb, 0xdf, 0x33, 0xc9, 0x73, 0xaf, 0x8a, 0x06,
    136 };
    137 static const unsigned char ecdsa_sigver_msg1[] = {
    138     0x45, 0xBB, 0x9D, 0xDC, 0x1D, 0x0A, 0xF2, 0xD7,
    139     0x56, 0x07, 0x1F, 0x47, 0x2A, 0x17, 0xCE, 0x38,
    140     0xA8, 0x7E, 0x75, 0xED, 0x4F, 0xE4, 0x17, 0x65,
    141     0x11, 0x69, 0xDF, 0x04, 0xF0, 0x39, 0x28, 0xD0,
    142     0x75, 0xD5, 0xF0, 0x1C, 0x32, 0x84, 0x16, 0x74,
    143     0x7D, 0x61, 0x57, 0xDB, 0x92, 0x24, 0x60, 0xBA,
    144     0x58, 0x7B, 0x48, 0xB4, 0x44, 0xFB, 0xD7, 0x35,
    145     0xD7, 0xCF, 0x61, 0x34, 0x7F, 0x70, 0x38, 0xAE,
    146     0xE2, 0xB2, 0x6C, 0x8A, 0xD1, 0x27, 0xB4, 0xF0,
    147     0x33, 0xB9, 0xE9, 0x27, 0x1A, 0xEE, 0x34, 0x72,
    148     0x9D, 0x5E, 0x74, 0x28, 0xE7, 0x0B, 0x82, 0xE1,
    149     0x60, 0xC2, 0x43, 0xE6, 0x75, 0x4A, 0x2E, 0x66,
    150     0x88, 0x72, 0xCA, 0xC7, 0x97, 0xFE, 0x19, 0xCD,
    151     0xA4, 0x30, 0xBF, 0xC7, 0xDC, 0x37, 0xF8, 0x1B,
    152     0xB6, 0xD7, 0x7E, 0xAD, 0xD6, 0xC1, 0x20, 0xAC,
    153     0x79, 0x03, 0x89, 0xEA, 0xF4, 0x59, 0x21, 0xF2,
    154 };
    155 
    156 static const unsigned char ecdsa_sigver_pub0[] = {
    157     POINT_CONVERSION_UNCOMPRESSED,
    158     0x2c, 0xdf, 0x6f, 0x23, 0x3d, 0x73, 0x86, 0x25,
    159     0x1a, 0x29, 0xd6, 0xde, 0x98, 0xcf, 0x85, 0xf7,
    160     0x6a, 0x55, 0xba, 0xdb, 0x0f, 0x35, 0x94, 0x92,
    161     0xb3, 0x58, 0xf3, 0x89, 0x7f, 0x6c, 0x22, 0x10,
    162     0xd9, 0xd3, 0x54, 0xd2, 0x74, 0x9f, 0x64, 0x0d,
    163     0xd2, 0xf8, 0x3e, 0xfc, 0x7f, 0xb7, 0x16, 0x36,
    164 };
    165 static const unsigned char ecdsa_sigver_pub1[] = {
    166     POINT_CONVERSION_UNCOMPRESSED,
    167     0x00, 0xD4, 0x79, 0x9F, 0xD9, 0x99, 0xEC, 0x21,
    168     0x1E, 0xE6, 0x06, 0x58, 0xB7, 0xFB, 0x76, 0xFC,
    169     0xF5, 0x9A, 0xE1, 0x1E, 0x5A, 0x87, 0xD7, 0x0E,
    170     0x21, 0x7B, 0xDE, 0x21, 0x52, 0xE6, 0xE4, 0x09,
    171     0x2C, 0xB8, 0x5D, 0x99, 0xE2, 0x6A, 0xB1, 0xE5,
    172     0x79, 0x11, 0x49, 0xBD, 0x3D, 0xC7, 0x1C, 0x48,
    173     0xF5, 0x83, 0xFC, 0x9E, 0xF3, 0xAB, 0x2D, 0x30,
    174     0x64, 0xEC, 0x22, 0xCB, 0xEB, 0x95, 0xBF, 0xF2,
    175     0x2D, 0xCE,
    176 
    177     0x01, 0xB9, 0xFE, 0xBD, 0x4C, 0x4B, 0xDA, 0x1F,
    178     0x30, 0xC3, 0x5C, 0x0F, 0x5D, 0x3E, 0x36, 0x51,
    179     0xF2, 0xC0, 0xF7, 0xFC, 0x79, 0x25, 0x98, 0xF2,
    180     0x4B, 0x2B, 0x61, 0xFC, 0xD9, 0xC4, 0x5C, 0xC0,
    181     0x13, 0xA2, 0x4F, 0x2E, 0x34, 0xD4, 0x15, 0xC4,
    182     0x25, 0x13, 0xA9, 0x30, 0x35, 0x56, 0xB7, 0xCD,
    183     0xD0, 0xC4, 0x65, 0x5D, 0xFB, 0xB2, 0xE4, 0xBF,
    184     0x22, 0x67, 0xEF, 0xA1, 0x2E, 0xA2, 0x1B, 0x33,
    185     0xE4, 0x3D,
    186 };
    187 static const unsigned char ecdsa_sigver_r0[] = {
    188     0x6b, 0x35, 0x62, 0x67, 0xa3, 0xbd, 0x76, 0xc8,
    189     0xa3, 0xdc, 0x93, 0x18, 0x82, 0x6f, 0xd2, 0x43,
    190     0x52, 0x18, 0x93, 0x21, 0x8e, 0xce, 0x12, 0x65,
    191 };
    192 static const unsigned char ecdsa_sigver_r1[] = {
    193     0x01, 0xBF, 0xA6, 0x46, 0x6D, 0x4E, 0x1C, 0x42,
    194     0x18, 0x7D, 0x46, 0xC6, 0x5F, 0xA5, 0x05, 0xEA,
    195     0x1A, 0xEF, 0xDB, 0x46, 0xD1, 0x79, 0x3F, 0x2B,
    196     0xE2, 0x70, 0x0F, 0x14, 0x26, 0x30, 0x7F, 0x2D,
    197     0x1A, 0x41, 0xFD, 0x11, 0xC0, 0xBB, 0xD0, 0xD5,
    198     0x09, 0xAA, 0xE0, 0x1A, 0xFE, 0x59, 0x23, 0x7D,
    199     0x1B, 0x5C, 0xB9, 0x51, 0xCD, 0x3A, 0xA1, 0x32,
    200     0xC6, 0x92, 0xB0, 0x7D, 0x91, 0xC6, 0x30, 0xC0,
    201     0xA4, 0x2A,
    202 };
    203 static const unsigned char ecdsa_sigver_s0[] = {
    204     0x7b, 0x92, 0x4a, 0x13, 0x8d, 0x74, 0x87, 0xb2,
    205     0xd4, 0xc7, 0x21, 0x73, 0x2c, 0x8a, 0x09, 0x25,
    206     0xac, 0x19, 0xcf, 0x9c, 0xbc, 0xd7, 0x7b, 0xf8,
    207 };
    208 static const unsigned char ecdsa_sigver_s1[] = {
    209     0x00, 0x8D, 0x56, 0xBA, 0x60, 0x38, 0x23, 0x47,
    210     0xB8, 0x32, 0x73, 0x29, 0x40, 0x84, 0xF0, 0x2C,
    211     0x90, 0xB2, 0x1D, 0x56, 0xFF, 0x38, 0x68, 0xAA,
    212     0x42, 0xBA, 0x48, 0xA1, 0x52, 0x8C, 0xB4, 0xD6,
    213     0x15, 0xB7, 0x88, 0xB3, 0x71, 0xC6, 0x69, 0x60,
    214     0x6C, 0xEB, 0x4B, 0xF6, 0x19, 0x6A, 0x95, 0x8F,
    215     0x01, 0x09, 0xC6, 0x13, 0xE6, 0x17, 0x38, 0xC8,
    216     0x10, 0x49, 0x4F, 0x87, 0x43, 0x63, 0x62, 0x98,
    217     0xB1, 0xAC,
    218 };
    219 static const struct ecdsa_sigver_st ecdsa_sigver_data[] = {
    220     {
    221         "SHA-1",
    222         "P-192",
    223         ITM(ecdsa_sigver_msg0),
    224         ITM(ecdsa_sigver_pub0),
    225         ITM(ecdsa_sigver_r0),
    226         ITM(ecdsa_sigver_s0),
    227         PASS,
    228     },
    229     {
    230         "SHA2-512",
    231         "P-521",
    232         ITM(ecdsa_sigver_msg1),
    233         ITM(ecdsa_sigver_pub1),
    234         ITM(ecdsa_sigver_r1),
    235         ITM(ecdsa_sigver_s1),
    236         FAIL,
    237     },
    238 };
    239 
    240 /*
    241  * FIPS EC DH key derivation requires the use of the cofactor if a curve has a
    242  * cofactor that is not 1. The cofactor option is determined by either
    243  *  (1) The derive ctx using OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE or via
    244  *  (2) The EVP_PKEY (used by the derive) using OSSL_PKEY_PARAM_USE_COFACTOR_ECDH
    245  * Test all combinations of these.
    246  * Notes:
    247  *   COFACTOR_MODE is -1 by default. (It can be -1, 0, or 1).
    248  *   OSSL_PKEY_PARAM_USE_COFACTOR_ECDH is 0 by default. (It can be 0 or 1)
    249  *
    250  *   OSSL_PKEY_PARAM_USE_COFACTOR_ECDH is only used if the COFACTOR_MODE is -1.
    251  *
    252  * If the cofactor is not set by either then the derived is expected to fail.
    253  */
    254 # define COFACTOR_NOT_SET -2 /* Use the default by not setting the param */
    255 static const struct ecdh_cofactor_derive_st ecdh_cofactor_derive_data[] = {
    256     { COFACTOR_NOT_SET, COFACTOR_NOT_SET, 0 },
    257     { COFACTOR_NOT_SET, 0, 0 },
    258     { COFACTOR_NOT_SET, 1, 1 },
    259     { -1, COFACTOR_NOT_SET, 0 },
    260     { -1, 0, 0 },
    261     { -1, 1, 1 },
    262     { 0, COFACTOR_NOT_SET, 0 },
    263     { 0, 0, 0 },
    264     { 0, 1, 0 },
    265     { 1, COFACTOR_NOT_SET, 1 },
    266     { 1, 0, 1 },
    267     { 1, 1, 1 }
    268 };
    269 
    270 #endif /* OPENSSL_NO_EC */
    271 
    272 #ifndef OPENSSL_NO_ECX
    273 
    274 /*
    275  * Test vectors obtained from
    276  * https://github.com/usnistgov/ACVP-Server/blob/master/gen-val/json-files/EDDSA-KeyVer-1.0
    277  */
    278 static const unsigned char ed25519_pv_pub0[] = {
    279     0xBE, 0xE1, 0x6F, 0x5B, 0x4A, 0x24, 0xEF, 0xF8,
    280     0xA6, 0x54, 0x0C, 0x04, 0x5C, 0xC4, 0x51, 0xCA,
    281     0x3A, 0x4E, 0x9B, 0x86, 0xDC, 0x5D, 0xE8, 0x12,
    282     0x0C, 0xDD, 0x1C, 0x23, 0x8E, 0x3F, 0x22, 0x7D
    283 };
    284 static const unsigned char ed25519_pv_pub1[] = {
    285     0x1E, 0xE7, 0x74, 0x94, 0x73, 0xA1, 0xB8, 0x98,
    286     0xBF, 0x8C, 0x81, 0x11, 0x8E, 0x76, 0xEE, 0x8B,
    287     0xDB, 0xD4, 0x8C, 0x19, 0x29, 0xF7, 0x47, 0x2A,
    288     0x18, 0xAD, 0xCE, 0xFE, 0x2F, 0x8A, 0x25, 0x69
    289 };
    290 static const unsigned char ed25519_pv_pub2[] = {
    291     0x61, 0x4B, 0xC0, 0xBE, 0x80, 0xE6, 0xC6, 0x35,
    292     0xDC, 0xF5, 0x65, 0xE6, 0xCE, 0xEE, 0x1C, 0x14,
    293     0x3C, 0xF4, 0x46, 0xAC, 0x22, 0x82, 0xA0, 0xCE,
    294     0x28, 0xE6, 0x53, 0x62, 0x48, 0x3D, 0x8B, 0x94
    295 };
    296 static const unsigned char ed25519_pv_pub3[] = {
    297     0x38, 0x95, 0x95, 0x90, 0x4D, 0x7E, 0xDC, 0x9B,
    298     0xF3, 0xB6, 0xF9, 0x52, 0x40, 0xC4, 0x50, 0xC4,
    299     0x72, 0xC0, 0x5E, 0x83, 0x8E, 0x84, 0xD5, 0x9A,
    300     0x10, 0x3D, 0xCC, 0xFA, 0xD6, 0x19, 0x61, 0x07
    301 };
    302 static const unsigned char ed448_pv_pub0[] = {
    303     0xC3, 0xA9, 0x2B, 0xDD, 0xF1, 0x9C, 0x1F, 0xF1,
    304     0x69, 0x0E, 0xB0, 0x42, 0x73, 0x85, 0xCB, 0x8F,
    305     0x74, 0xE6, 0x49, 0x63, 0xF0, 0xF3, 0xA6, 0x28,
    306     0x11, 0xDB, 0x10, 0x54, 0x70, 0x52, 0x38, 0xB6,
    307     0xCE, 0x62, 0xE0, 0x9F, 0x7A, 0xD5, 0xA2, 0xFF,
    308     0xA9, 0xB4, 0xA1, 0xCD, 0x5E, 0x67, 0x6E, 0xFB,
    309     0x1B, 0x1C, 0xAE, 0x58, 0xF5, 0xE1, 0x74, 0x8C,
    310     0x00
    311 };
    312 static const unsigned char ed448_pv_pub1[] = {
    313     0x94, 0xFE, 0x99, 0x25, 0x2F, 0x5C, 0x05, 0x69,
    314     0xBF, 0x8B, 0x5B, 0xDD, 0x32, 0x61, 0x50, 0x08,
    315     0x95, 0x05, 0xEE, 0x44, 0x04, 0xCF, 0x76, 0x44,
    316     0x17, 0x56, 0x82, 0x03, 0xF1, 0x3A, 0xBB, 0x13,
    317     0xBB, 0xC6, 0x3E, 0xCE, 0xE2, 0x1F, 0xEC, 0x06,
    318     0x90, 0xA9, 0x53, 0x10, 0xB6, 0x86, 0x4D, 0x71,
    319     0x29, 0x1B, 0x12, 0xCE, 0x3A, 0x86, 0xFD, 0xE0,
    320     0x80
    321 };
    322 static const unsigned char ed448_pv_pub2[] = {
    323     0xD0, 0x88, 0xF0, 0xA9, 0x94, 0x86, 0x31, 0x9A,
    324     0xC7, 0xD0, 0x8C, 0x7C, 0xE4, 0xEB, 0xA0, 0x6C,
    325     0xF3, 0xF7, 0x20, 0x3A, 0xA9, 0x4C, 0x85, 0xEC,
    326     0x30, 0x10, 0xD7, 0x1A, 0x4B, 0x21, 0xA2, 0xFF,
    327     0x7F, 0x3D, 0xEF, 0xA9, 0x45, 0x28, 0x53, 0x30,
    328     0x16, 0x34, 0x3C, 0x4F, 0x19, 0xF5, 0xA3, 0x80,
    329     0xF4, 0x42, 0xFB, 0xE6, 0x3B, 0xEE, 0x35, 0x4D,
    330     0x80
    331 };
    332 static const unsigned char ed448_pv_pub3[] = {
    333     0x45, 0x42, 0x38, 0x5F, 0x3D, 0xD3, 0x4A, 0x84,
    334     0x87, 0x74, 0x56, 0x27, 0x62, 0x4E, 0xA2, 0xA9,
    335     0xE8, 0xB2, 0x45, 0x9E, 0x1A, 0xF4, 0x5D, 0xCB,
    336     0x70, 0x51, 0xBD, 0xD2, 0xEE, 0x07, 0xB9, 0x32,
    337     0xFD, 0x5E, 0xCA, 0x47, 0x56, 0xB0, 0x06, 0xC0,
    338     0xEF, 0xC0, 0x43, 0x5F, 0xE2, 0x1C, 0xAA, 0xE9,
    339     0x10, 0x6F, 0xD7, 0x16, 0xFC, 0xBE, 0xF4, 0xB8,
    340     0x80
    341 };
    342 
    343 static const struct ecdsa_pub_verify_st eddsa_pv_data[] = {
    344     {
    345         "ED25519",
    346         ITM(ed25519_pv_pub0),
    347         FAIL
    348     },
    349     {
    350         "ED25519",
    351         ITM(ed25519_pv_pub1),
    352         FAIL
    353     },
    354     {
    355         "ED25519",
    356         ITM(ed25519_pv_pub2),
    357         PASS
    358     },
    359     {
    360         "ED25519",
    361         ITM(ed25519_pv_pub3),
    362         PASS
    363     },
    364     {
    365         "ED448",
    366         ITM(ed448_pv_pub0),
    367         FAIL
    368     },
    369     {
    370         "ED448",
    371         ITM(ed448_pv_pub1),
    372         FAIL
    373     },
    374     {
    375         "ED448",
    376         ITM(ed448_pv_pub2),
    377         PASS
    378     },
    379     {
    380         "ED448",
    381         ITM(ed448_pv_pub3),
    382         PASS
    383     },
    384 };
    385 #endif /* OPENSSL_NO_ECX */
    386 
    387 #ifndef OPENSSL_NO_DSA
    388 
    389 struct dsa_paramgen_st {
    390     size_t L;
    391     size_t N;
    392 };
    393 
    394 struct dsa_pqver_st {
    395     const unsigned char *p;
    396     size_t p_len;
    397     const unsigned char *q;
    398     size_t q_len;
    399     const unsigned char *seed;
    400     size_t seed_len;
    401     int counter;
    402     int pass;
    403 };
    404 
    405 struct dsa_siggen_st {
    406     const char *digest_alg;
    407     size_t L;
    408     size_t N;
    409     const unsigned char *msg;
    410     size_t msg_len;
    411 };
    412 
    413 struct dsa_sigver_st {
    414     const char *digest_alg;
    415     const unsigned char *p;
    416     size_t p_len;
    417     const unsigned char *q;
    418     size_t q_len;
    419     const unsigned char *g;
    420     size_t g_len;
    421     const unsigned char *pub;
    422     size_t pub_len;
    423     const unsigned char *msg;
    424     size_t msg_len;
    425     const unsigned char *r;
    426     size_t r_len;
    427     const unsigned char *s;
    428     size_t s_len;
    429     int pass;
    430 };
    431 
    432 static const struct dsa_paramgen_st dsa_keygen_data[] = {
    433     { 2048, 224 },
    434 };
    435 
    436 static const struct dsa_paramgen_st dsa_paramgen_data[] = {
    437     { 2048, 256 },
    438 };
    439 
    440 /* dsa_pqver */
    441 static const unsigned char dsa_pqver_p0[] = {
    442     0xEF, 0xC7, 0x95, 0xEB, 0x1E, 0x1C, 0x8F, 0x5E,
    443     0x4A, 0x85, 0xCD, 0x20, 0x66, 0xC7, 0xB9, 0x6C,
    444     0x4E, 0xC4, 0xE7, 0x3B, 0x7B, 0x8E, 0x0E, 0x8C,
    445     0x00, 0xF5, 0x2E, 0x68, 0xF5, 0xC2, 0x89, 0x47,
    446     0xA5, 0x7B, 0xA6, 0xA3, 0x30, 0xBC, 0xFA, 0x25,
    447     0x29, 0xBD, 0xE2, 0x4D, 0x05, 0x0B, 0x6D, 0x2D,
    448     0x49, 0x50, 0x53, 0xEF, 0x8C, 0xBE, 0xC3, 0xEC,
    449     0x92, 0xC1, 0x45, 0xE3, 0x95, 0x39, 0x72, 0x58,
    450     0xFD, 0x93, 0x23, 0x06, 0x37, 0xD6, 0x56, 0x1F,
    451     0x75, 0x92, 0xAD, 0x15, 0xA9, 0x88, 0x25, 0x3F,
    452     0xD6, 0x47, 0xB5, 0xB1, 0x32, 0x01, 0x2D, 0x70,
    453     0x55, 0xB9, 0x5D, 0xED, 0x1B, 0x40, 0x39, 0x78,
    454     0x74, 0xA6, 0xDF, 0x4B, 0xE4, 0x86, 0x8B, 0x56,
    455     0x46, 0x1E, 0xDB, 0x04, 0xD2, 0xD2, 0x50, 0xE9,
    456     0x5D, 0x88, 0xA8, 0x84, 0x55, 0xE3, 0xF3, 0xB7,
    457     0x07, 0x54, 0x9E, 0x98, 0x03, 0x9F, 0x31, 0x86,
    458     0xEB, 0x0D, 0x26, 0x97, 0x30, 0x31, 0x34, 0x64,
    459     0x35, 0x56, 0x40, 0x35, 0xEA, 0xE5, 0x00, 0x90,
    460     0xBD, 0x20, 0x93, 0xFC, 0xAD, 0x70, 0x9A, 0xF5,
    461     0xB8, 0xA4, 0xAD, 0xEC, 0xFE, 0x64, 0xF4, 0x2C,
    462     0x11, 0x25, 0x68, 0x27, 0x0E, 0x5C, 0x81, 0x57,
    463     0x64, 0x9A, 0x50, 0x86, 0xA3, 0x69, 0x61, 0x1E,
    464     0x0D, 0x62, 0xE9, 0x4D, 0x44, 0x1E, 0x1E, 0xE1,
    465     0x6D, 0x8F, 0x10, 0x67, 0x82, 0xB6, 0x6A, 0xD0,
    466     0x08, 0x59, 0xF3, 0xBA, 0xE8, 0x29, 0xE0, 0x60,
    467     0x1F, 0x3E, 0xBA, 0xAB, 0x6E, 0xB6, 0x5B, 0xAF,
    468     0xCC, 0x76, 0x5D, 0x70, 0x7F, 0x3A, 0xAA, 0x7E,
    469     0x27, 0x23, 0x6F, 0x8E, 0xF8, 0x06, 0xC1, 0x3E,
    470     0xAE, 0xBE, 0x22, 0x71, 0x93, 0xEC, 0x9A, 0x33,
    471     0x3C, 0xA4, 0x77, 0xD4, 0x76, 0x79, 0x10, 0x5A,
    472     0xF4, 0x07, 0x52, 0x66, 0x9D, 0xC5, 0xFD, 0xDA,
    473     0xA1, 0xE7, 0xA2, 0x45, 0x27, 0x08, 0x54, 0xB9,
    474     0x3B, 0xEC, 0x07, 0xFB, 0xE0, 0xF4, 0x4B, 0x7C,
    475     0xB1, 0x04, 0x2B, 0x0E, 0x65, 0x3A, 0xF7, 0x65,
    476     0x57, 0x65, 0xCF, 0x36, 0x28, 0x2A, 0x1C, 0x57,
    477     0x10, 0x28, 0x02, 0x26, 0xF7, 0x45, 0xAA, 0x1B,
    478     0x2E, 0xE3, 0x25, 0xEA, 0x28, 0xA1, 0x84, 0x1E,
    479     0xA1, 0xA3, 0xAB, 0x52, 0x25, 0xD4, 0x64, 0xB2,
    480     0xA8, 0xA5, 0xFD, 0x2F, 0x48, 0x90, 0x28, 0x8F,
    481     0x8B, 0x10, 0x7F, 0x6F, 0x80, 0xA9, 0x4B, 0xB3,
    482     0xC0, 0x5B, 0x27, 0xE9, 0x90, 0x90, 0x53, 0xA8,
    483     0x30, 0x88, 0xD4, 0x9B, 0x09, 0x62, 0xCD, 0x99,
    484     0x61, 0x63, 0x14, 0xDF, 0xC3, 0x5A, 0x60, 0xBE,
    485     0xA3, 0x40, 0xAB, 0x29, 0x3E, 0xB2, 0x02, 0x19,
    486     0x9D, 0x97, 0x75, 0x34, 0x0D, 0x71, 0x3B, 0xEC,
    487     0xF1, 0x13, 0x23, 0xE6, 0xCA, 0x35, 0x84, 0xFF,
    488     0x27, 0x4A, 0xE0, 0x11, 0x59, 0xEB, 0x1D, 0x8C,
    489     0xFF, 0xF3, 0x91, 0x90, 0x3C, 0xE9, 0x43, 0x31,
    490 };
    491 static const unsigned char dsa_pqver_p1[] = {
    492     0x83, 0xA6, 0x8F, 0xE5, 0xFE, 0xF0, 0x9D, 0x9E,
    493     0x8A, 0x80, 0x9C, 0x47, 0xEF, 0xBE, 0x1A, 0xD0,
    494     0x7F, 0xEA, 0x6D, 0x08, 0x59, 0x2D, 0x04, 0xB6,
    495     0xAC, 0x2A, 0x54, 0x47, 0x42, 0xB2, 0x5F, 0x28,
    496     0xF6, 0x30, 0x36, 0xE3, 0xDA, 0x4E, 0xDC, 0xC1,
    497     0x6E, 0x61, 0xCE, 0x45, 0x1C, 0x73, 0x87, 0x3E,
    498     0xB7, 0x94, 0xDB, 0x68, 0xEE, 0xFD, 0x8D, 0x93,
    499     0x5E, 0x5D, 0xAB, 0x77, 0xA2, 0xF0, 0xD6, 0x60,
    500     0xCD, 0x9D, 0x13, 0xE0, 0xA6, 0xE7, 0xEC, 0x45,
    501     0xBA, 0xD8, 0xB0, 0x3D, 0x4F, 0x75, 0x30, 0xB7,
    502     0x89, 0x96, 0x2B, 0x48, 0xFC, 0x73, 0xB8, 0x5C,
    503     0x59, 0xDC, 0x41, 0xEF, 0xCE, 0xC6, 0x7F, 0x66,
    504     0x4F, 0xB6, 0x1F, 0x9C, 0x91, 0xB4, 0xEE, 0xAA,
    505     0x2C, 0x4A, 0x7F, 0x1F, 0xBF, 0xE2, 0x9A, 0xF2,
    506     0x9F, 0x52, 0x83, 0x30, 0x97, 0x86, 0x7F, 0xA2,
    507     0x85, 0x20, 0x75, 0x75, 0xAD, 0x01, 0xE2, 0x40,
    508     0x3A, 0x82, 0xD8, 0x52, 0x91, 0x15, 0x67, 0x1B,
    509     0x00, 0x78, 0xFD, 0x3E, 0x61, 0x8A, 0xA8, 0x1D,
    510     0x1A, 0x07, 0x8E, 0x87, 0x48, 0x64, 0x1E, 0x5B,
    511     0x05, 0x34, 0x7E, 0x5D, 0xD6, 0x11, 0xC4, 0xB7,
    512     0x0E, 0xF3, 0x91, 0xC7, 0x2B, 0xAD, 0x22, 0x96,
    513     0xA3, 0xF7, 0x4E, 0xEB, 0xE4, 0x9F, 0x67, 0x91,
    514     0x9D, 0x65, 0x45, 0x8F, 0x92, 0x2F, 0x8B, 0x46,
    515     0xCC, 0x4B, 0xB9, 0xC5, 0xD0, 0x00, 0xFF, 0xBB,
    516     0x37, 0xD6, 0x20, 0x36, 0x7D, 0x4A, 0xC3, 0x75,
    517     0xAC, 0x58, 0xE5, 0x24, 0x54, 0x47, 0x80, 0x2C,
    518     0x83, 0xBD, 0xC8, 0xA7, 0x87, 0x20, 0x3D, 0xA8,
    519     0x78, 0xE2, 0xC5, 0x4E, 0xE8, 0x4E, 0x3C, 0xFA,
    520     0x75, 0xA0, 0x8D, 0x35, 0x8E, 0xF2, 0x61, 0x19,
    521     0x84, 0x9C, 0x71, 0x95, 0x5B, 0x09, 0xE1, 0xB6,
    522     0xC6, 0x6A, 0x7C, 0x34, 0x39, 0x67, 0x14, 0xAB,
    523     0xA7, 0x6B, 0x45, 0x01, 0xF0, 0x0F, 0x52, 0xB5,
    524     0x23, 0xD9, 0x67, 0x57, 0x91, 0x9F, 0xC2, 0xA9,
    525     0xB6, 0x7C, 0x15, 0x59, 0x3E, 0x22, 0x89, 0xD6,
    526     0x0B, 0x83, 0xB4, 0x29, 0xEF, 0x0B, 0x66, 0x30,
    527     0x2D, 0xE7, 0xC5, 0x04, 0x1F, 0x28, 0x7D, 0x9F,
    528     0xC9, 0x87, 0x05, 0xC6, 0x1B, 0x18, 0x1F, 0x3B,
    529     0x90, 0x00, 0x31, 0x5B, 0xDC, 0x19, 0x7D, 0x71,
    530     0xE4, 0xA4, 0x21, 0xB5, 0x37, 0xE7, 0x9B, 0xA4,
    531     0xBC, 0x04, 0xF8, 0x0A, 0x95, 0x3F, 0xDB, 0x30,
    532     0xA5, 0xC9, 0xC2, 0xD7, 0x19, 0x9D, 0x57, 0x77,
    533     0x44, 0xB7, 0x47, 0xBD, 0xA1, 0x01, 0xEB, 0x51,
    534     0xA4, 0xB2, 0x8B, 0x1A, 0x51, 0xA4, 0xCC, 0x07,
    535     0x57, 0x19, 0xFB, 0xFC, 0xAA, 0x42, 0xCC, 0x2A,
    536     0xCE, 0xF8, 0xFD, 0xF8, 0x92, 0xC4, 0xDC, 0x7B,
    537     0x0B, 0x92, 0x9A, 0xD7, 0xC5, 0xBC, 0x6D, 0x74,
    538     0x13, 0x0E, 0xD2, 0x8F, 0x86, 0xEB, 0x8D, 0xD7,
    539     0xC6, 0xAC, 0x43, 0xD8, 0x00, 0x80, 0x53, 0x57,
    540 };
    541 static const unsigned char dsa_pqver_q0[] = {
    542     0xCB, 0x74, 0xE6, 0x57, 0x37, 0x0F, 0x7A, 0x61,
    543     0x0B, 0x09, 0xCE, 0x91, 0x78, 0x06, 0x3C, 0x7F,
    544     0x20, 0xF5, 0xD1, 0x1E, 0x1D, 0xC2, 0x43, 0xBA,
    545     0x89, 0xC8, 0x4A, 0x49, 0x83, 0x38, 0xE1, 0x2D,
    546 };
    547 static const unsigned char dsa_pqver_q1[] = {
    548     0x85, 0x2B, 0x77, 0x9B, 0x1B, 0x70, 0x6F, 0x8C,
    549     0x10, 0xF3, 0x2F, 0xA9, 0xC2, 0xEE, 0xF6, 0x74,
    550     0x78, 0x5F, 0xD5, 0x5E, 0x2C, 0x34, 0xAF, 0xD1,
    551     0x25, 0x63, 0x96, 0x6D, 0x6D, 0x84, 0x68, 0x3F,
    552 };
    553 static const unsigned char dsa_pqver_seed0[] = {
    554     0x33, 0xDC, 0x43, 0xAF, 0xC4, 0x51, 0x5C, 0x3B,
    555     0x8B, 0x8A, 0x0D, 0x5D, 0xA2, 0x84, 0xDE, 0x6D,
    556     0xCC, 0x6C, 0xFD, 0x42, 0x37, 0x98, 0xFB, 0x66,
    557     0xAB, 0xD3, 0x73, 0x96, 0x1F, 0xC5, 0xD1, 0x46,
    558 };
    559 static const unsigned char dsa_pqver_seed1[] = {
    560     0xEE, 0xA4, 0x02, 0x70, 0x0B, 0x89, 0xB7, 0x96,
    561     0x52, 0x5C, 0x00, 0xC4, 0x8E, 0x14, 0x45, 0x0F,
    562     0x6A, 0x18, 0x00, 0xF7, 0x24, 0x52, 0x41, 0x0E,
    563     0x33, 0x41, 0xD2, 0x91, 0xC3, 0x16, 0x7D, 0x5D,
    564 };
    565 static const struct dsa_pqver_st dsa_pqver_data[] = {
    566     {
    567         ITM(dsa_pqver_p0),
    568         ITM(dsa_pqver_q0),
    569         ITM(dsa_pqver_seed0),
    570         1956,
    571         PASS
    572     },
    573     {
    574         ITM(dsa_pqver_p1),
    575         ITM(dsa_pqver_q1),
    576         ITM(dsa_pqver_seed1),
    577         685,
    578         FAIL
    579     },
    580 };
    581 
    582 /* dsa_siggen */
    583 static const unsigned char dsa_siggen_msg0[]= {
    584     0x85, 0x01, 0x2F, 0x61, 0x1C, 0x36, 0xA8, 0xE1,
    585     0x54, 0x55, 0x13, 0xFA, 0x00, 0x58, 0x1E, 0xD4,
    586     0xF2, 0x4C, 0x54, 0x67, 0xB3, 0xEA, 0x48, 0x2C,
    587     0xD1, 0x27, 0xBE, 0x5F, 0x26, 0x35, 0xD4, 0x00,
    588     0xDD, 0x6C, 0xD8, 0xE8, 0x3C, 0x6D, 0x2D, 0x50,
    589     0x01, 0x53, 0xC7, 0xB5, 0xA3, 0x8E, 0x9A, 0x85,
    590     0xA6, 0x53, 0x8C, 0x46, 0x55, 0x02, 0xA1, 0x5E,
    591     0xEA, 0x6C, 0xCF, 0x4A, 0x86, 0xA9, 0x34, 0x1B,
    592     0x0B, 0xB6, 0x88, 0x9A, 0xDE, 0xC4, 0x27, 0x7F,
    593     0x93, 0xAA, 0x69, 0x54, 0x48, 0x33, 0x98, 0xA0,
    594     0x71, 0x45, 0x09, 0x5A, 0x51, 0xDF, 0xB6, 0x66,
    595     0x06, 0xB7, 0xAD, 0x64, 0xED, 0xC1, 0xFA, 0x6B,
    596     0xA8, 0x0F, 0xE8, 0x3C, 0x2E, 0x0C, 0xCB, 0xB0,
    597     0xAE, 0xDE, 0x25, 0x0C, 0x68, 0xA8, 0x15, 0x97,
    598     0xD0, 0xBC, 0x0B, 0x81, 0x15, 0xDC, 0x2B, 0xF3,
    599     0xF2, 0xB7, 0xA7, 0xA9, 0x74, 0xD6, 0x5D, 0xB8,
    600     0xB7, 0xD1, 0xFC, 0x5D, 0xCA, 0x69, 0x5D, 0x7D,
    601     0xC6, 0x1E, 0x37, 0x7D, 0xD3, 0xA9, 0x1E, 0xAE,
    602     0x60, 0x22, 0x3A, 0x4B, 0x7A, 0xB1, 0x3D, 0xA4,
    603     0x6D, 0xB3, 0xA5, 0x8C, 0x89, 0x91, 0xCF, 0xE6,
    604     0x5B, 0xF9, 0xB6, 0x87, 0x56, 0x75, 0xB9, 0x0B,
    605     0x08, 0x85, 0x32, 0x52, 0x81, 0x99, 0xA7, 0x98,
    606     0x44, 0x30, 0x3B, 0x44, 0xBC, 0xB8, 0xB2, 0x6D,
    607     0x59, 0x52, 0xD3, 0x84, 0x74, 0x65, 0x02, 0xF9,
    608     0x71, 0xB9, 0x16, 0x7A, 0x42, 0x62, 0xDE, 0x9B,
    609     0x66, 0xF6, 0x04, 0x2C, 0x1F, 0x96, 0xF7, 0x41,
    610     0x38, 0x1A, 0xF1, 0x8C, 0x8A, 0x40, 0x9F, 0x72,
    611     0x73, 0xF9, 0xE9, 0x35, 0x11, 0x1F, 0x02, 0x0C,
    612     0xB1, 0x51, 0xE8, 0x78, 0xDB, 0xE0, 0xB2, 0x35,
    613     0xBD, 0xC5, 0x84, 0x5B, 0x2B, 0x25, 0x66, 0x42,
    614     0x87, 0xE5, 0xA4, 0x77, 0x71, 0xB4, 0x4A, 0x59,
    615     0x31, 0xF1, 0x5A, 0xF5, 0x98, 0x9C, 0x61, 0xEA,
    616     0x52, 0x2F, 0x51, 0x85, 0xD9, 0x7F, 0x26, 0xDD,
    617     0x91, 0x63, 0x41, 0xD5, 0x99, 0xD1, 0x64, 0xCE,
    618     0xEE, 0x82, 0xD1, 0x73, 0x0A, 0x54, 0x3B, 0x03,
    619     0xD7, 0xC1, 0xF7, 0x01, 0xBD, 0x44, 0x99, 0xFE,
    620     0x9B, 0x1E, 0x2C, 0x8F, 0xF4, 0x55, 0xC5, 0x59,
    621     0x58, 0xAF, 0xCB, 0xAD, 0xB8, 0x22, 0x1A, 0x29,
    622     0xF3, 0x18, 0x39, 0x31, 0x9B, 0xFC, 0x08, 0x7E,
    623     0xBE, 0x45, 0xDA, 0x9E, 0xD8, 0x7F, 0x8C, 0x5D,
    624     0x10, 0xF9, 0xF8, 0xB4, 0xFA, 0x58, 0xE6, 0x28,
    625     0xB4, 0x6C, 0x70, 0x12, 0xD2, 0xFA, 0x49, 0xB2,
    626     0x5F, 0xD0, 0x81, 0x4A, 0xA1, 0xAA, 0xF8, 0x93,
    627     0xD2, 0x26, 0xE7, 0xDA, 0x7D, 0x79, 0xC5, 0xC8,
    628     0xC2, 0x9E, 0xA7, 0x01, 0xD5, 0x7A, 0xF9, 0x75,
    629     0x62, 0xDB, 0xDC, 0x93, 0x90, 0xDA, 0xA5, 0xA6,
    630     0x20, 0x58, 0x17, 0x9E, 0x47, 0x4E, 0xFB, 0xB8,
    631     0xFB, 0xCD, 0x2E, 0xF4, 0xCD, 0x49, 0x03, 0x90,
    632 };
    633 static struct dsa_siggen_st dsa_siggen_data[] = {
    634     {
    635         "SHA2-384",
    636         3072,
    637         256,
    638         ITM(dsa_siggen_msg0),
    639     },
    640 };
    641 
    642 /* dsa_sigver */
    643 static const unsigned char dsa_sigver_p0[] = {
    644     0xD2, 0x90, 0x2E, 0x38, 0xA5, 0x32, 0xBB, 0x63,
    645     0xE0, 0xC3, 0x20, 0xD9, 0x26, 0x06, 0x21, 0x06,
    646     0x85, 0x3A, 0x4C, 0xE3, 0x13, 0x83, 0xCA, 0x43,
    647     0x8C, 0x9C, 0x76, 0xC0, 0x65, 0x60, 0x27, 0x7E,
    648     0x7C, 0xA0, 0x83, 0x9F, 0x65, 0x91, 0xF9, 0x16,
    649     0x5F, 0xE8, 0x60, 0x0C, 0xC6, 0x91, 0x20, 0x35,
    650     0xE7, 0xF1, 0x83, 0xE6, 0xF8, 0x8C, 0xBB, 0x4C,
    651     0xFF, 0xF5, 0x4D, 0x09, 0x8E, 0x83, 0x72, 0xCB,
    652     0x22, 0x5F, 0xD0, 0x85, 0xA9, 0x60, 0x3C, 0x4A,
    653     0xA6, 0xDD, 0x73, 0x1F, 0xCF, 0xD0, 0xD7, 0x42,
    654     0xB8, 0x72, 0x61, 0xDB, 0x91, 0xE3, 0xBB, 0x5C,
    655     0x21, 0x41, 0xFD, 0x97, 0xD0, 0x81, 0x72, 0x53,
    656     0x77, 0xE0, 0x15, 0x9E, 0xC0, 0xD0, 0x6A, 0xB4,
    657     0x7F, 0xF8, 0x63, 0x39, 0x1A, 0x25, 0x63, 0x84,
    658     0x4D, 0xBA, 0x2C, 0x29, 0x94, 0x28, 0xCE, 0x5B,
    659     0x9A, 0xC3, 0x14, 0xAD, 0x9D, 0x82, 0x1D, 0x8F,
    660     0xF3, 0xE9, 0x60, 0x65, 0x28, 0x0B, 0x0E, 0x48,
    661     0x6B, 0xCC, 0x05, 0x9D, 0x3B, 0x1F, 0x1D, 0x0A,
    662     0xA7, 0xF8, 0x22, 0xB0, 0xE1, 0x52, 0xB0, 0x25,
    663     0x8F, 0xEA, 0x25, 0x28, 0xC9, 0x6F, 0x44, 0xCD,
    664     0xA4, 0x16, 0x13, 0xE8, 0xD0, 0xDB, 0x43, 0x6E,
    665     0xCE, 0xEC, 0x0B, 0xA8, 0x3E, 0x53, 0x10, 0xA2,
    666     0x52, 0x0E, 0xBB, 0x63, 0x63, 0x84, 0x2C, 0x12,
    667     0x93, 0x29, 0x98, 0xAF, 0x38, 0x8F, 0x0B, 0x86,
    668     0x16, 0x99, 0x0E, 0x39, 0xA8, 0x4A, 0x0B, 0xCD,
    669     0xAA, 0x66, 0x8F, 0x4C, 0x15, 0xB7, 0xA5, 0xBB,
    670     0x22, 0x77, 0x8D, 0xE8, 0x05, 0x35, 0x2D, 0xAA,
    671     0x8D, 0x83, 0xDE, 0xBC, 0x15, 0x3D, 0xC2, 0x95,
    672     0x0E, 0x47, 0x85, 0x41, 0xAD, 0xE3, 0xB1, 0x70,
    673     0x76, 0x1B, 0x62, 0x9E, 0x96, 0x8B, 0x18, 0xD7,
    674     0xE3, 0xB5, 0xF8, 0x6E, 0x85, 0x67, 0x61, 0x54,
    675     0x7C, 0x85, 0x08, 0x91, 0xF4, 0x46, 0x3F, 0x01,
    676     0x99, 0x48, 0x18, 0x3C, 0x0D, 0xC7, 0x2D, 0xEC,
    677     0xA4, 0x11, 0x1D, 0x4F, 0x7F, 0xBF, 0x3A, 0xE8,
    678     0x9C, 0x1C, 0xAE, 0x9E, 0x30, 0x32, 0x1F, 0x81,
    679     0xEF, 0x14, 0xFE, 0x5C, 0xC2, 0x5C, 0xD0, 0x6A,
    680     0x7C, 0x18, 0x88, 0x9F, 0xC4, 0x97, 0x7D, 0x4B,
    681     0x3B, 0x01, 0xEB, 0x59, 0x58, 0x1C, 0x00, 0x6B,
    682     0x3E, 0xD6, 0x80, 0x80, 0x86, 0x06, 0x39, 0x88,
    683     0x0D, 0x23, 0x1E, 0xD6, 0x5E, 0x1F, 0x92, 0x3B,
    684     0xEC, 0x50, 0x0B, 0xA0, 0x83, 0x4F, 0x10, 0xDE,
    685     0xAF, 0x7B, 0x19, 0xBC, 0xBD, 0x72, 0xE6, 0x42,
    686     0xFE, 0xD7, 0xEF, 0x22, 0xD3, 0x83, 0x6B, 0x30,
    687     0xA3, 0x95, 0x0D, 0x3E, 0x61, 0x9E, 0xBC, 0x0E,
    688     0x14, 0x7E, 0x61, 0x05, 0x3D, 0xBA, 0x4E, 0xEF,
    689     0x31, 0x75, 0x5D, 0x10, 0x1E, 0xBA, 0xBD, 0xBA,
    690     0x89, 0x4D, 0x3A, 0x5B, 0x03, 0xB1, 0xAE, 0x27,
    691     0x47, 0x2D, 0x03, 0xB1, 0x8A, 0x74, 0x1B, 0xF3,
    692 };
    693 static const unsigned char dsa_sigver_q0[] = {
    694     0xAC, 0x71, 0x8D, 0x81, 0x05, 0x2F, 0xAB, 0x72,
    695     0xB9, 0x96, 0x94, 0x98, 0xB5, 0x19, 0x2B, 0xE2,
    696     0x78, 0x06, 0xAA, 0x32, 0xFC, 0xB9, 0xD2, 0xFD,
    697     0x26, 0xC4, 0x50, 0x6F, 0x81, 0xD8, 0x04, 0xAB,
    698 };
    699 static const unsigned char dsa_sigver_g0[] = {
    700     0x3D, 0x0B, 0x46, 0x39, 0x13, 0xFF, 0x67, 0xA8,
    701     0x8C, 0xE8, 0x8A, 0x46, 0x46, 0x9A, 0xE6, 0x70,
    702     0xA1, 0xF5, 0x48, 0xF5, 0x84, 0xF8, 0x93, 0x57,
    703     0x9A, 0x4F, 0x2C, 0xD4, 0x26, 0x49, 0x1C, 0x83,
    704     0x64, 0x14, 0x0B, 0x5B, 0xEF, 0x6F, 0x6F, 0x91,
    705     0x14, 0xC5, 0x4D, 0xE8, 0x86, 0x47, 0x5C, 0xFC,
    706     0xAE, 0xBF, 0xD8, 0x32, 0xE2, 0x96, 0xB9, 0x61,
    707     0x70, 0x3F, 0x24, 0x29, 0xFA, 0x41, 0x5D, 0x8E,
    708     0xD0, 0xB0, 0xF1, 0x26, 0xD5, 0x7C, 0xE6, 0x17,
    709     0x48, 0xE5, 0x04, 0x0E, 0x58, 0x14, 0xEE, 0xBA,
    710     0x64, 0xE9, 0xF1, 0x6A, 0x7C, 0x17, 0xAB, 0x7B,
    711     0x28, 0xCF, 0x69, 0x7D, 0xDC, 0x54, 0xCA, 0xF2,
    712     0x4C, 0x22, 0x17, 0xDD, 0xC3, 0x1A, 0x02, 0xE2,
    713     0x8E, 0xE6, 0xA4, 0xFB, 0x84, 0x27, 0x2B, 0xE8,
    714     0x14, 0xF3, 0x3D, 0xAC, 0x59, 0x0C, 0xAB, 0x69,
    715     0x0E, 0x73, 0xDF, 0x82, 0xC1, 0xDE, 0xD7, 0xD9,
    716     0xA7, 0xCA, 0x8F, 0x4B, 0xCE, 0x8A, 0x05, 0xBD,
    717     0x07, 0xC8, 0x29, 0xBB, 0x46, 0x29, 0x2A, 0x4F,
    718     0xA7, 0x12, 0x19, 0x91, 0x01, 0xA0, 0xAE, 0x16,
    719     0xEF, 0xC1, 0xC5, 0x4B, 0x03, 0xF0, 0x53, 0xDC,
    720     0xFC, 0x1C, 0xC4, 0x73, 0xB7, 0xBF, 0x53, 0xEB,
    721     0x19, 0x63, 0xCA, 0x30, 0x53, 0x54, 0x12, 0x90,
    722     0x0E, 0x43, 0xC7, 0x66, 0xFF, 0x29, 0xFC, 0xA4,
    723     0xE8, 0xF6, 0x4B, 0x76, 0x3B, 0xA2, 0x65, 0x6B,
    724     0x9E, 0xFA, 0xBA, 0x5B, 0x54, 0x94, 0x34, 0xF6,
    725     0xD1, 0x20, 0x2A, 0xF7, 0x39, 0x72, 0xA3, 0xDB,
    726     0xD1, 0x8F, 0xA6, 0x4D, 0x1B, 0xB1, 0x2D, 0xC5,
    727     0x7F, 0xC5, 0x2C, 0x7E, 0x6D, 0xD9, 0xC8, 0xC2,
    728     0x19, 0xC0, 0xC4, 0xC2, 0x77, 0xD9, 0x4C, 0x63,
    729     0x77, 0x59, 0x0C, 0x5B, 0xFE, 0x69, 0xEF, 0xBF,
    730     0x58, 0x47, 0x69, 0x3E, 0x49, 0xA7, 0x1B, 0x98,
    731     0x6C, 0xE5, 0xA7, 0x42, 0x8B, 0x0E, 0x68, 0x05,
    732     0x48, 0x80, 0x39, 0xF4, 0x02, 0x9E, 0xE2, 0x9F,
    733     0x1C, 0xDA, 0x24, 0xC5, 0xB8, 0xEC, 0x03, 0xEA,
    734     0x7A, 0x00, 0xDF, 0xCF, 0x58, 0xD0, 0xE7, 0xB7,
    735     0xF3, 0xE7, 0x36, 0xDD, 0x1F, 0x65, 0xF9, 0x2D,
    736     0x6F, 0xC3, 0xE4, 0x72, 0xFD, 0xBA, 0x58, 0x8D,
    737     0xB5, 0xDF, 0x61, 0x3D, 0x3B, 0xB5, 0xF3, 0x08,
    738     0xE7, 0x21, 0x5A, 0x7D, 0xFF, 0x02, 0x1E, 0x0E,
    739     0x4E, 0xB5, 0x0D, 0x3D, 0x33, 0xF4, 0xA7, 0x6D,
    740     0xF7, 0x96, 0xC2, 0x96, 0x85, 0x33, 0x9C, 0x58,
    741     0x72, 0x5C, 0x97, 0x73, 0x0E, 0xDC, 0x5C, 0x6B,
    742     0x3D, 0x68, 0xF7, 0xF0, 0x0F, 0xCC, 0x01, 0xBB,
    743     0x47, 0x01, 0x3C, 0xB0, 0x52, 0x48, 0x70, 0xB8,
    744     0x0C, 0x0F, 0x04, 0xB5, 0x8F, 0x70, 0x50, 0x12,
    745     0x7C, 0x9D, 0xD1, 0xC1, 0x2B, 0xFE, 0x95, 0x31,
    746     0x8F, 0x2D, 0xFA, 0xAC, 0xAE, 0x24, 0xDD, 0x13,
    747     0xDA, 0x76, 0xC2, 0x34, 0xB9, 0x4A, 0x3E, 0xC3,
    748 };
    749 static const unsigned char dsa_sigver_pub0[] = {
    750     0x91, 0x78, 0x1C, 0xBA, 0x8A, 0x2F, 0xF6, 0xEC,
    751     0x9B, 0xD4, 0x73, 0x2C, 0x1F, 0xC0, 0xFE, 0x79,
    752     0xCF, 0xAC, 0x0C, 0x3C, 0x0D, 0x81, 0x85, 0x3D,
    753     0xCD, 0x67, 0x2B, 0x77, 0x99, 0x4A, 0x51, 0x48,
    754     0x58, 0x03, 0xC9, 0x68, 0xE6, 0x19, 0x26, 0x28,
    755     0xDC, 0x86, 0x9F, 0x8F, 0xCE, 0xDD, 0x1B, 0xCD,
    756     0xDD, 0x63, 0x4E, 0xCE, 0x76, 0x4D, 0xD5, 0x0D,
    757     0x71, 0x73, 0x04, 0x03, 0x9C, 0x35, 0xD0, 0x56,
    758     0x98, 0x25, 0xA7, 0x06, 0xF2, 0x6B, 0xA9, 0x9F,
    759     0x9A, 0xB1, 0x2A, 0xBD, 0xB7, 0x71, 0x62, 0x99,
    760     0x06, 0x47, 0x77, 0x22, 0x57, 0xFA, 0x24, 0x21,
    761     0x21, 0xB0, 0x78, 0x26, 0x7E, 0xEC, 0xB6, 0xEB,
    762     0x82, 0x15, 0x53, 0x68, 0xAE, 0xAC, 0x5B, 0xDC,
    763     0xA6, 0x7F, 0x6B, 0x26, 0xE6, 0x59, 0x22, 0x55,
    764     0x1C, 0x3B, 0xFD, 0xD5, 0x90, 0xA9, 0x6F, 0xB3,
    765     0xE6, 0x99, 0x8E, 0x26, 0x72, 0xA1, 0x02, 0xAA,
    766     0x37, 0xF6, 0x89, 0x68, 0xF1, 0x5A, 0x6D, 0x54,
    767     0xAD, 0x9D, 0xF3, 0x03, 0xBE, 0x3F, 0x9D, 0x85,
    768     0x38, 0x25, 0xB8, 0xDF, 0xB8, 0x43, 0x21, 0xCA,
    769     0xF8, 0xDC, 0x12, 0x40, 0x1E, 0xEF, 0x37, 0x40,
    770     0xCE, 0x0E, 0x02, 0x88, 0x63, 0x98, 0x2E, 0x93,
    771     0x89, 0xB0, 0x43, 0xAC, 0x0E, 0x62, 0x4C, 0x38,
    772     0x14, 0xAC, 0x0C, 0xA3, 0x03, 0x10, 0x8E, 0xB4,
    773     0x60, 0x10, 0x9B, 0xCC, 0x16, 0xA7, 0xB8, 0x1D,
    774     0x73, 0x81, 0x26, 0x12, 0xA8, 0x9A, 0xFE, 0x17,
    775     0xBB, 0x2D, 0x33, 0x5E, 0x8C, 0xA4, 0x80, 0xBF,
    776     0x84, 0x37, 0xCA, 0x0F, 0x50, 0x23, 0x79, 0x20,
    777     0x2A, 0x8E, 0xD1, 0x1F, 0x9F, 0x89, 0x98, 0x4F,
    778     0xF5, 0xB6, 0x0F, 0xB9, 0x3C, 0xFC, 0x6C, 0x00,
    779     0xBC, 0x76, 0x2F, 0xB4, 0xFD, 0x22, 0x13, 0x37,
    780     0x26, 0xCD, 0x9B, 0xAF, 0x4C, 0x89, 0x16, 0xD0,
    781     0x73, 0x44, 0xF9, 0x71, 0x60, 0xA2, 0x3E, 0xFE,
    782     0x24, 0xFE, 0xFC, 0xFE, 0x90, 0x91, 0xED, 0x92,
    783     0x57, 0x0A, 0xFA, 0xEB, 0x21, 0x99, 0xE3, 0x9A,
    784     0xFF, 0x5C, 0x74, 0x85, 0xC2, 0x6D, 0x83, 0x90,
    785     0xEE, 0x84, 0x05, 0x1A, 0x00, 0xAC, 0x87, 0xA7,
    786     0x78, 0x87, 0xCA, 0x70, 0xFC, 0xB0, 0xF4, 0x3B,
    787     0x61, 0x7C, 0xD0, 0x09, 0x63, 0x2B, 0x5E, 0xC2,
    788     0xFE, 0x15, 0x41, 0xB3, 0x9F, 0xFC, 0x19, 0xE3,
    789     0x4D, 0x3C, 0x6F, 0x89, 0xEB, 0x8A, 0x43, 0xEC,
    790     0x8E, 0xFB, 0xEC, 0xCD, 0x99, 0x2E, 0x4B, 0x02,
    791     0x99, 0xAC, 0xC6, 0x62, 0xAA, 0xC5, 0x0F, 0xA3,
    792     0x0B, 0xBB, 0xCD, 0x51, 0x0C, 0x19, 0xA7, 0x7A,
    793     0x43, 0x6C, 0xAA, 0x26, 0x28, 0x2A, 0xC9, 0x9D,
    794     0x97, 0xAE, 0x83, 0x74, 0xDA, 0xC4, 0x03, 0x98,
    795     0x94, 0x58, 0x28, 0xBC, 0x32, 0x1D, 0xD4, 0xF2,
    796     0x6F, 0x89, 0x92, 0xD4, 0x80, 0x9B, 0xDE, 0x6B,
    797     0xC5, 0x6F, 0xDB, 0x7A, 0x03, 0x1C, 0xF5, 0x55,
    798 };
    799 static const unsigned char dsa_sigver_msg0[] = {
    800     0x32, 0xE9, 0x64, 0x47, 0xED, 0x3B, 0xF0, 0xC0,
    801     0xCA, 0xC2, 0x90, 0xF5, 0x10, 0x60, 0x99, 0x82,
    802     0x4D, 0x13, 0x44, 0xFA, 0x92, 0xD1, 0xFD, 0x50,
    803     0x26, 0x80, 0xEA, 0x7B, 0x7D, 0xC5, 0xF0, 0xB7,
    804 };
    805 static const unsigned char dsa_sigver_msg1[] = {
    806     0x31, 0xE9, 0x64, 0x47, 0xED, 0x3B, 0xF0, 0xC0,
    807     0xCA, 0xC2, 0x90, 0xF5, 0x10, 0x60, 0x99, 0x82,
    808     0x4D, 0x13, 0x44, 0xFA, 0x92, 0xD1, 0xFD, 0x50,
    809     0x26, 0x80, 0xEA, 0x7B, 0x7D, 0xC5, 0xF0, 0xB7
    810 };
    811 static const unsigned char dsa_sigver_r0[] = {
    812     0x2A, 0x24, 0x0F, 0xA7, 0x04, 0xF1, 0xE0, 0x60,
    813     0x3B, 0x07, 0xDE, 0xB6, 0x5F, 0x01, 0x20, 0x81,
    814     0xDD, 0x64, 0x22, 0x0F, 0x9F, 0x2E, 0x67, 0x33,
    815     0xB7, 0x56, 0xDE, 0x17, 0xD0, 0xED, 0x9D, 0x30,
    816 };
    817 static const unsigned char dsa_sigver_s0[] = {
    818     0x15, 0x93, 0x81, 0x6E, 0xC2, 0x07, 0x6E, 0x06,
    819     0x6A, 0xBF, 0x62, 0xBF, 0x93, 0xA6, 0xCB, 0x6E,
    820     0xBA, 0x1E, 0x72, 0x57, 0x27, 0x0E, 0x85, 0x9E,
    821     0x8C, 0x42, 0x9A, 0x41, 0x63, 0x27, 0x74, 0x4F,
    822 };
    823 static const struct dsa_sigver_st dsa_sigver_data[] = {
    824     {
    825         "SHA2-512",
    826         ITM(dsa_sigver_p0),
    827         ITM(dsa_sigver_q0),
    828         ITM(dsa_sigver_g0),
    829         ITM(dsa_sigver_pub0),
    830         ITM(dsa_sigver_msg0),
    831         ITM(dsa_sigver_r0),
    832         ITM(dsa_sigver_s0),
    833         PASS,
    834     },
    835     {
    836         "SHA2-512",
    837         ITM(dsa_sigver_p0),
    838         ITM(dsa_sigver_q0),
    839         ITM(dsa_sigver_g0),
    840         ITM(dsa_sigver_pub0),
    841         ITM(dsa_sigver_msg1),
    842         ITM(dsa_sigver_r0),
    843         ITM(dsa_sigver_s0),
    844         FAIL,
    845     },
    846 };
    847 
    848 #endif /* OPENSSL_NO_DSA */
    849 
    850 struct cipher_st {
    851     const char *alg;
    852     const unsigned char *key;
    853     size_t key_len;
    854     const unsigned char *iv;
    855     size_t iv_len;
    856     const unsigned char *pt;
    857     size_t pt_len;
    858     const unsigned char *ct;
    859     size_t ct_len;
    860 };
    861 
    862 struct cipher_ccm_st {
    863     const char *alg;
    864     const unsigned char *key;
    865     size_t key_len;
    866     const unsigned char *iv;
    867     size_t iv_len;
    868     const unsigned char *aad;
    869     size_t aad_len;
    870     const unsigned char *pt;
    871     size_t pt_len;
    872     const unsigned char *ct; /* includes the tag */
    873     size_t ct_len;
    874 };
    875 
    876 struct cipher_gcm_st {
    877     const char *alg;
    878     const unsigned char *key;
    879     size_t key_len;
    880     const unsigned char *iv;
    881     size_t iv_len;
    882     const unsigned char *aad;
    883     size_t aad_len;
    884     const unsigned char *pt;
    885     size_t pt_len;
    886     const unsigned char *ct;
    887     size_t ct_len;
    888     const unsigned char *tag;
    889     size_t tag_len;
    890 };
    891 
    892 
    893 static const unsigned char cipher_enc_pt0[] = {
    894     0xF3, 0x44, 0x81, 0xEC, 0x3C, 0xC6, 0x27, 0xBA,
    895     0xCD, 0x5D, 0xC3, 0xFB, 0x08, 0xF2, 0x73, 0xE6,
    896 };
    897 static const unsigned char cipher_enc_pt1[] = {
    898     0x1B, 0x07, 0x7A, 0x6A, 0xF4, 0xB7, 0xF9, 0x82,
    899     0x29, 0xDE, 0x78, 0x6D, 0x75, 0x16, 0xB6, 0x39,
    900 };
    901 static const unsigned char cipher_enc_pt2[] = {
    902     0x91, 0x07, 0x41, 0x31, 0xF1, 0xF8, 0x6C, 0xCD,
    903     0x54, 0x8D, 0x22, 0xA6, 0x93, 0x40, 0xFF, 0x39,
    904 };
    905 static const unsigned char cipher_enc_pt3[] = {
    906     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
    907     0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
    908     0x10, 0x11, 0x12, 0x13
    909 };
    910 static const unsigned char cipher_enc_key0[] = {
    911     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    912     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    913 };
    914 static const unsigned char cipher_enc_key1[] = {
    915     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    916     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    917     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    918 };
    919 static const unsigned char cipher_enc_key2[] = {
    920     0xE8, 0x70, 0x13, 0x1C, 0xE7, 0x03, 0xD6, 0x51,
    921     0x4E, 0x76, 0x1F, 0x95, 0xE6, 0xEE, 0x9E, 0xFB,
    922 };
    923 static const unsigned char cipher_enc_key3[] = {
    924     0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
    925     0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
    926     0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xba, 0xb9, 0xb8,
    927     0xb7, 0xb6, 0xb5, 0xb4, 0xb3, 0xb2, 0xb1, 0xb0,
    928 };
    929 static const unsigned char cipher_enc_ct0[] = {
    930     0x03, 0x36, 0x76, 0x3E, 0x96, 0x6D, 0x92, 0x59,
    931     0x5A, 0x56, 0x7C, 0xC9, 0xCE, 0x53, 0x7F, 0x5E,
    932 };
    933 static const unsigned char cipher_enc_ct1[] = {
    934     0x27, 0x5C, 0xFC, 0x04, 0x13, 0xD8, 0xCC, 0xB7,
    935     0x05, 0x13, 0xC3, 0x85, 0x9B, 0x1D, 0x0F, 0x72,
    936 };
    937 static const unsigned char cipher_enc_ct2[] = {
    938     0x3A, 0xF6, 0x4C, 0x70, 0x37, 0xEE, 0x48, 0x13,
    939     0xD8, 0x5F, 0xE9, 0xB3, 0x7F, 0xE6, 0x6A, 0xD4,
    940 };
    941 static const unsigned char cipher_enc_ct3[] = {
    942     0x9d, 0x84, 0xc8, 0x13, 0xf7, 0x19, 0xaa, 0x2c,
    943     0x7b, 0xe3, 0xf6, 0x61, 0x71, 0xc7, 0xc5, 0xc2,
    944     0xed, 0xbf, 0x9d, 0xac,
    945 };
    946 static const unsigned char cipher_enc_iv0[] = {
    947     0x00,
    948 };
    949 static const unsigned char cipher_enc_iv1[] = {
    950     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    951     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    952 };
    953 static const unsigned char cipher_enc_iv2[] = {
    954     0x53, 0xF2, 0x25, 0xD8, 0xDE, 0x97, 0xF1, 0x4B,
    955     0xFE, 0x3E, 0xC6, 0x5E, 0xC3, 0xFF, 0xF7, 0xD3,
    956 };
    957 static const unsigned char cipher_enc_iv3[] = {
    958     0x9a, 0x78, 0x56, 0x34, 0x12, 0x00, 0x00, 0x00,
    959     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    960 };
    961 
    962 static const struct cipher_st cipher_enc_data[] = {
    963     {
    964         "AES-128-ECB",
    965         ITM(cipher_enc_key0),
    966         NULL, 0,     /* iv */
    967         ITM(cipher_enc_pt0),
    968         ITM(cipher_enc_ct0),
    969     },
    970     {
    971         "AES-192-CBC",
    972         ITM(cipher_enc_key1),
    973         ITM(cipher_enc_iv1),
    974         ITM(cipher_enc_pt1),
    975         ITM(cipher_enc_ct1),
    976     },
    977     {
    978         "AES-128-CTR",
    979         ITM(cipher_enc_key2),
    980         ITM(cipher_enc_iv2),
    981         ITM(cipher_enc_pt2),
    982         ITM(cipher_enc_ct2),
    983     },
    984     {
    985         "AES-128-XTS",
    986          ITM(cipher_enc_key3),
    987          ITM(cipher_enc_iv3),
    988          ITM(cipher_enc_pt3),
    989          ITM(cipher_enc_ct3),
    990     }
    991 };
    992 
    993 static const unsigned char aes_ccm_enc_pt0[] = {
    994     0xDA, 0x6A, 0xDC, 0xB2, 0xA5, 0xCC, 0xC3, 0xE7,
    995     0xFC, 0x4C, 0xDF, 0x0A, 0xAB, 0xDC, 0x3B, 0x38,
    996     0x26, 0x8B, 0x21, 0x82, 0xCA, 0x26, 0xE6, 0x2C,
    997 };
    998 static const unsigned char aes_ccm_enc_key0[] = {
    999     0xDE, 0xF8, 0x67, 0xBC, 0x40, 0xB6, 0x7C, 0xAA,
   1000     0x4A, 0x00, 0xE8, 0x07, 0x24, 0x52, 0xAE, 0x72,
   1001 };
   1002 static const unsigned char aes_ccm_enc_aad0[] = {
   1003     0x29, 0x8D, 0x01, 0x92, 0x3B, 0x50, 0x1F, 0x66,
   1004     0xCE, 0xD3, 0x57, 0x4B, 0x7B, 0x4F, 0x07, 0x57,
   1005 };
   1006 static const unsigned char aes_ccm_enc_iv0[] = {
   1007     0x44, 0xEE, 0x48, 0x11, 0x4D, 0x3B, 0x71, 0x33,
   1008     0xF0, 0xF7, 0x12, 0xA2, 0xA5,
   1009 };
   1010 static const unsigned char aes_ccm_enc_ct0[] = {
   1011     0x30, 0x4D, 0x19, 0x31, 0x02, 0x66, 0x95, 0x2E,
   1012     0x23, 0x6D, 0xF4, 0xB9, 0xDF, 0xFE, 0xCA, 0x92,
   1013     0x04, 0x2A, 0x32, 0xB5, 0x08, 0x2C, 0x8B, 0x6F,
   1014     0x1B, 0x14, 0xB8, 0x62, 0x8B, 0xA0, 0x12, 0x4E,
   1015     0x6A, 0x6F, 0x85, 0x86, 0x24, 0x6A, 0x83, 0xE0,
   1016 };
   1017 static const struct cipher_ccm_st aes_ccm_enc_data[] = {
   1018     {
   1019         "AES-128-CCM",
   1020         ITM(aes_ccm_enc_key0),
   1021         ITM(aes_ccm_enc_iv0),
   1022         ITM(aes_ccm_enc_aad0),
   1023         ITM(aes_ccm_enc_pt0),
   1024         ITM(aes_ccm_enc_ct0),
   1025     },
   1026 };
   1027 
   1028 static const unsigned char aes_gcm_enc_pt0[] = {
   1029     0x97,
   1030 };
   1031 static const unsigned char aes_gcm_enc_key0[] = {
   1032     0x3E, 0x77, 0x38, 0xA6, 0x0A, 0xB3, 0x95, 0x90,
   1033     0xFA, 0x8B, 0x3B, 0xCF, 0xE1, 0xA3, 0x8C, 0x7D,
   1034 };
   1035 static const unsigned char aes_gcm_enc_aad0[] = {
   1036     0xE7, 0xEF, 0xCB, 0x0F, 0x3D, 0x94, 0x1D, 0x0F,
   1037     0x3D, 0x65, 0x69, 0xFC, 0xDA, 0x77, 0x36, 0x5E,
   1038     0xB9, 0x20, 0xF8, 0xDA, 0x81, 0xDF, 0x6B, 0x4C,
   1039     0x2A, 0x70, 0x5E, 0xE3, 0x07, 0xCE, 0xCF, 0x62,
   1040     0x84,
   1041 };
   1042 static const unsigned char aes_gcm_enc_iv0[] = {
   1043     0x01, 0x02, 0x03, 0x04, 0xEB, 0xED, 0x2F, 0x4B,
   1044     0xD1, 0x20, 0x2C, 0xCD,
   1045 };
   1046 static const unsigned char aes_gcm_enc_ct0[] = {
   1047     0x63,
   1048 };
   1049 static const unsigned char aes_gcm_enc_tag0[] = {
   1050     0xA2, 0x8E, 0xA5, 0xF6, 0x6A, 0x1C, 0xE6, 0xD7,
   1051     0xFF, 0xCD, 0x7F, 0x49,
   1052 };
   1053 static const struct cipher_gcm_st aes_gcm_enc_data[] = {
   1054     {
   1055         "AES-128-GCM",
   1056         ITM(aes_gcm_enc_key0),
   1057         ITM(aes_gcm_enc_iv0),
   1058         ITM(aes_gcm_enc_aad0),
   1059         ITM(aes_gcm_enc_pt0),
   1060         ITM(aes_gcm_enc_ct0),
   1061         ITM(aes_gcm_enc_tag0),
   1062     },
   1063 };
   1064 
   1065 #ifndef OPENSSL_NO_DH
   1066 
   1067 struct dh_safe_prime_keygen_st {
   1068     const char *group_name;
   1069 };
   1070 
   1071 struct dh_safe_prime_keyver_st {
   1072     const char *group_name;
   1073     const unsigned char *pub;
   1074     size_t pub_len;
   1075     const unsigned char *priv;
   1076     size_t priv_len;
   1077     int pass;
   1078 };
   1079 
   1080 static const struct dh_safe_prime_keygen_st dh_safe_prime_keygen_data[] = {
   1081     { "ffdhe2048" },
   1082 };
   1083 
   1084 static const unsigned char dh_safe_prime_keyver_priv0[] = {
   1085     0x39, 0x9C, 0x08, 0x8E, 0x4A, 0x1E, 0x1A, 0x03,
   1086     0x18, 0x5A, 0x72, 0x4F, 0xCB, 0x13, 0xFB, 0x8F,
   1087     0x7F, 0x14, 0x12, 0x48, 0x9A, 0x18, 0x03, 0x1C,
   1088     0x03, 0x98, 0x7E, 0x3C, 0xEF, 0x57, 0xF2, 0x1E,
   1089     0xD5, 0x54, 0x5C, 0x0F, 0x36, 0x5E, 0xB0, 0xF8,
   1090     0xD1, 0x27, 0x79, 0x24, 0x69, 0xB5, 0x7C, 0xF1,
   1091     0x39, 0xFC, 0xE3, 0x79, 0xF0, 0xD6, 0xA0, 0xE1,
   1092     0xA5, 0xA7, 0x65, 0x01, 0xBA, 0xFE, 0xBB, 0x28,
   1093     0xF0, 0x9C, 0x49, 0x90, 0x68, 0xB4, 0xE7, 0xE2,
   1094     0xB6, 0xBF, 0xB9, 0xF8, 0x96, 0xAA, 0xF9, 0xE6,
   1095     0x0B, 0x8A, 0x86, 0x0D, 0x31, 0x2C, 0x90, 0xDA,
   1096     0x4E, 0xFB, 0xE3, 0x59, 0x3F, 0xFB, 0x14, 0x33,
   1097     0xF6, 0xBD, 0xDA, 0x5D, 0x27, 0xCC, 0x7C, 0x1C,
   1098     0x30, 0xC8, 0xB2, 0xAF, 0x2A, 0xA8, 0x25, 0x97,
   1099     0xDC, 0x5E, 0xEF, 0x22, 0xCB, 0xF6, 0x88, 0x83,
   1100     0xD0, 0x47, 0x3F, 0x5D, 0xF3, 0x2A, 0xE0, 0xCC,
   1101     0x86, 0x49, 0x5A, 0x8F, 0x67, 0xF6, 0xC4, 0xD8,
   1102     0x3F, 0x09, 0xE8, 0x49, 0x89, 0x2E, 0xC0, 0xB4,
   1103     0x9C, 0x06, 0x9C, 0x40, 0x10, 0xFB, 0x20, 0xC6,
   1104     0xF1, 0x5F, 0x52, 0x3F, 0x21, 0xBF, 0xBB, 0x13,
   1105     0x6A, 0x81, 0x1C, 0xFF, 0x19, 0x2A, 0x36, 0xD2,
   1106     0x13, 0x23, 0x33, 0xD1, 0xEF, 0x34, 0xF3, 0xA6,
   1107     0xD5, 0x56, 0xAF, 0x1A, 0x63, 0xFC, 0x95, 0x86,
   1108     0xD5, 0xEB, 0xBF, 0x49, 0x84, 0x73, 0x30, 0x1D,
   1109     0xE2, 0xA1, 0xAE, 0x6D, 0x20, 0x69, 0xAE, 0xB6,
   1110     0x1A, 0xB9, 0xF2, 0x7A, 0xE3, 0x17, 0x4E, 0x7C,
   1111     0x8F, 0xE8, 0x34, 0x02, 0x59, 0xB4, 0x54, 0x9A,
   1112     0x8D, 0x19, 0x04, 0x2A, 0x8E, 0xF8, 0x05, 0xA3,
   1113     0x98, 0x5B, 0xBD, 0xB4, 0x6A, 0xDA, 0xAA, 0x1F,
   1114     0xFC, 0x56, 0xA0, 0x4D, 0x22, 0x66, 0x31, 0xEA,
   1115     0x8A, 0xC8, 0x61, 0x12, 0x40, 0xF0, 0x38, 0x0B,
   1116     0xA3, 0x23, 0x40, 0x97, 0x7A, 0x18, 0xE3, 0x42,
   1117 };
   1118 static const unsigned char dh_safe_prime_keyver_pub0[] = {
   1119     0xFA, 0xDA, 0x86, 0x67, 0xE9, 0x12, 0x67, 0x79,
   1120     0x50, 0xAE, 0x64, 0x0B, 0x07, 0x47, 0x8F, 0xA5,
   1121     0xD1, 0x27, 0x6C, 0xFC, 0x10, 0xD8, 0x90, 0x8D,
   1122     0x93, 0x75, 0xAD, 0x31, 0xBD, 0x97, 0xBE, 0xD5,
   1123     0xB5, 0x59, 0x2F, 0x37, 0x52, 0x32, 0x30, 0x75,
   1124     0xD3, 0xA5, 0x36, 0x10, 0x62, 0x4C, 0x82, 0x06,
   1125     0xB9, 0x29, 0xAE, 0x14, 0xD1, 0xB0, 0xD0, 0x23,
   1126     0x7A, 0xE6, 0xEA, 0x7E, 0x8E, 0xE3, 0xC7, 0xEB,
   1127     0x43, 0x78, 0xFA, 0x9A, 0x40, 0x9A, 0x6F, 0xF5,
   1128     0x42, 0x8A, 0xF7, 0xF3, 0x92, 0xE6, 0x5D, 0x68,
   1129     0x9B, 0x2A, 0x91, 0xB5, 0x37, 0x33, 0x3F, 0x35,
   1130     0xA5, 0xFB, 0x54, 0xD1, 0x3C, 0x46, 0xC6, 0x3C,
   1131     0x16, 0x3A, 0xD7, 0xF8, 0x55, 0x48, 0x9A, 0xB7,
   1132     0xB1, 0x40, 0xBF, 0xAF, 0x26, 0x1B, 0x07, 0x0F,
   1133     0x11, 0x04, 0x63, 0x06, 0xDA, 0x2D, 0x45, 0x0E,
   1134     0x7F, 0x17, 0xA4, 0x38, 0xBD, 0x68, 0x5A, 0xA9,
   1135     0xC4, 0x7F, 0x7E, 0xC7, 0xF0, 0xFC, 0x74, 0x87,
   1136     0x55, 0xCD, 0x35, 0xA8, 0xAA, 0x59, 0xA7, 0xFA,
   1137     0xC1, 0x34, 0x67, 0x04, 0xD8, 0xCC, 0xE1, 0x77,
   1138     0x60, 0xE1, 0xBE, 0xC0, 0xA5, 0x52, 0xA4, 0x72,
   1139     0x3A, 0x19, 0xFA, 0x76, 0xC8, 0x67, 0x60, 0x5E,
   1140     0x1C, 0x43, 0xF4, 0x50, 0xA0, 0xCB, 0x33, 0x77,
   1141     0x2D, 0x2D, 0x3B, 0x5D, 0x7D, 0x72, 0x2E, 0x38,
   1142     0xCD, 0x71, 0xB1, 0xBF, 0xB5, 0x10, 0x80, 0xCD,
   1143     0xA4, 0x5D, 0x70, 0x6E, 0xD5, 0x7E, 0xA2, 0xAA,
   1144     0xDC, 0xA4, 0x7C, 0x7A, 0x7D, 0x21, 0x09, 0x6A,
   1145     0x14, 0xB2, 0x21, 0x24, 0xA4, 0xF4, 0x6C, 0xD2,
   1146     0xBA, 0x76, 0x99, 0xD7, 0x69, 0x44, 0xA8, 0x66,
   1147     0x85, 0x08, 0x50, 0xBA, 0x42, 0x37, 0xA2, 0xC2,
   1148     0xD5, 0x45, 0x7E, 0x7B, 0xE9, 0x4A, 0xAE, 0xEE,
   1149     0x84, 0x2A, 0xEB, 0xA9, 0x4A, 0x69, 0x40, 0x83,
   1150     0xBA, 0xCC, 0x1E, 0x1B, 0x25, 0x56, 0x13, 0x88,
   1151 };
   1152 static const struct dh_safe_prime_keyver_st dh_safe_prime_keyver_data[] = {
   1153     {
   1154         "ffdhe2048",
   1155         ITM(dh_safe_prime_keyver_pub0),
   1156         ITM(dh_safe_prime_keyver_priv0),
   1157         PASS
   1158     },
   1159 };
   1160 
   1161 #endif /* OPENSSL_NO_DH */
   1162 
   1163 struct rsa_keygen_st {
   1164     size_t mod;
   1165     const unsigned char *e;
   1166     size_t e_len;
   1167     const unsigned char *xp1;
   1168     size_t xp1_len;
   1169     const unsigned char *xp2;
   1170     size_t xp2_len;
   1171     const unsigned char *xp;
   1172     size_t xp_len;
   1173     const unsigned char *xq1;
   1174     size_t xq1_len;
   1175     const unsigned char *xq2;
   1176     size_t xq2_len;
   1177     const unsigned char *xq;
   1178     size_t xq_len;
   1179 
   1180     const unsigned char *p1;
   1181     size_t p1_len;
   1182     const unsigned char *p2;
   1183     size_t p2_len;
   1184     const unsigned char *q1;
   1185     size_t q1_len;
   1186     const unsigned char *q2;
   1187     size_t q2_len;
   1188     const unsigned char *p;
   1189     size_t p_len;
   1190     const unsigned char *q;
   1191     size_t q_len;
   1192     const unsigned char *n;
   1193     size_t n_len;
   1194     const unsigned char *d;
   1195     size_t d_len;
   1196 };
   1197 
   1198 static const unsigned char rsa_keygen0_e[] = {
   1199     0x01,0x00,0x01
   1200 };
   1201 static const unsigned char rsa_keygen0_xp[] = {
   1202     0xcf,0x72,0x1b,0x9a,0xfd,0x0d,0x22,0x1a,0x74,0x50,0x97,0x22,0x76,0xd8,0xc0,
   1203     0xc2,0xfd,0x08,0x81,0x05,0xdd,0x18,0x21,0x99,0x96,0xd6,0x5c,0x79,0xe3,0x02,
   1204     0x81,0xd7,0x0e,0x3f,0x3b,0x34,0xda,0x61,0xc9,0x2d,0x84,0x86,0x62,0x1e,0x3d,
   1205     0x5d,0xbf,0x92,0x2e,0xcd,0x35,0x3d,0x6e,0xb9,0x59,0x16,0xc9,0x82,0x50,0x41,
   1206     0x30,0x45,0x67,0xaa,0xb7,0xbe,0xec,0xea,0x4b,0x9e,0xa0,0xc3,0x05,0xb3,0x88,
   1207     0xd4,0x4c,0xac,0xeb,0xe4,0x03,0xc6,0xca,0xcb,0xd9,0xd3,0x4e,0xf6,0x7f,0x2c,
   1208     0x27,0x1e,0x08,0x6c,0xc2,0xd6,0x45,0x1f,0x84,0xe4,0x3c,0x97,0x19,0xde,0xb8,
   1209     0x55,0xaf,0x0e,0xcf,0x9e,0xb0,0x9c,0x20,0xd3,0x1f,0xa8,0xd7,0x52,0xc2,0x95,
   1210     0x1c,0x80,0x15,0x42,0x4d,0x4f,0x19,0x16
   1211 };
   1212 static const unsigned char rsa_keygen0_xp1[] = {
   1213     0xac,0x5f,0x7f,0x6e,0x33,0x3e,0x97,0x3a,0xb3,0x17,0x44,0xa9,0x0f,0x7a,0x54,
   1214     0x70,0x27,0x06,0x93,0xd5,0x49,0xde,0x91,0x83,0xbc,0x8a,0x7b,0x95
   1215 };
   1216 static const unsigned char rsa_keygen0_xp2[] = {
   1217     0x0b,0xf6,0xe8,0x79,0x5a,0x81,0xae,0x90,0x1d,0xa4,0x38,0x74,0x9c,0x0e,0x6f,
   1218     0xe0,0x03,0xcf,0xc4,0x53,0x16,0x32,0x17,0xf7,0x09,0x5f,0xd9
   1219 };
   1220 static const unsigned char rsa_keygen0_xq[] = {
   1221     0xfe,0xab,0xf2,0x7c,0x16,0x4a,0xf0,0x8d,0x31,0xc6,0x0a,0x82,0xe2,0xae,0xbb,
   1222     0x03,0x7e,0x7b,0x20,0x4e,0x64,0xb0,0x16,0xad,0x3c,0x01,0x1a,0xd3,0x54,0xbf,
   1223     0x2b,0xa4,0x02,0x9e,0xc3,0x0d,0x60,0x3d,0x1f,0xb9,0xc0,0x0d,0xe6,0x97,0x68,
   1224     0xbb,0x8c,0x81,0xd5,0xc1,0x54,0x96,0x0f,0x99,0xf0,0xa8,0xa2,0xf3,0xc6,0x8e,
   1225     0xec,0xbc,0x31,0x17,0x70,0x98,0x24,0xa3,0x36,0x51,0xa8,0x54,0xbd,0x9a,0x89,
   1226     0x99,0x6e,0x57,0x5e,0xd0,0x39,0x86,0xc3,0xa3,0x1b,0xc7,0xcf,0xc4,0x4f,0x47,
   1227     0x25,0x9e,0x2c,0x79,0xe1,0x2c,0xcc,0xe4,0x63,0xf4,0x02,0x84,0xf8,0xf6,0xa1,
   1228     0x5c,0x93,0x14,0xf2,0x68,0x5f,0x3a,0x90,0x2f,0x4e,0x5e,0xf9,0x16,0x05,0xcf,
   1229     0x21,0x63,0xca,0xfa,0xb0,0x08,0x02,0xc0
   1230 };
   1231 static const unsigned char rsa_keygen0_xq1[] = {
   1232     0x9b,0x02,0xd4,0xba,0xf0,0xaa,0x14,0x99,0x6d,0xc0,0xb7,0xa5,0xe1,0xd3,0x70,
   1233     0xb6,0x5a,0xa2,0x9b,0x59,0xd5,0x8c,0x1e,0x9f,0x3f,0x9a,0xde,0xeb,0x9e,0x9c,
   1234     0x61,0xd6,0x5a,0xe1
   1235 };
   1236 static const unsigned char rsa_keygen0_xq2[] = {
   1237     0x06,0x81,0x53,0xfd,0xa8,0x7b,0xa3,0x85,0x90,0x15,0x2c,0x97,0xb2,0xa0,0x17,
   1238     0x48,0xb0,0x7f,0x0a,0x01,0x6d
   1239 };
   1240 /* expected values */
   1241 static const unsigned char rsa_keygen0_p1[] = {
   1242     0xac,0x5f,0x7f,0x6e,0x33,0x3e,0x97,0x3a,0xb3,0x17,0x44,0xa9,0x0f,0x7a,0x54,
   1243     0x70,0x27,0x06,0x93,0xd5,0x49,0xde,0x91,0x83,0xbc,0x8a,0x7b,0xc3
   1244 };
   1245 static const unsigned char rsa_keygen0_p2[] = {
   1246     0x0b,0xf6,0xe8,0x79,0x5a,0x81,0xae,0x90,0x1d,0xa4,0x38,0x74,0x9c,0x0e,0x6f,
   1247     0xe0,0x03,0xcf,0xc4,0x53,0x16,0x32,0x17,0xf7,0x09,0x5f,0xd9
   1248 };
   1249 static const unsigned char rsa_keygen0_q1[] = {
   1250     0x9b,0x02,0xd4,0xba,0xf0,0xaa,0x14,0x99,0x6d,0xc0,0xb7,0xa5,0xe1,0xd3,0x70,
   1251     0xb6,0x5a,0xa2,0x9b,0x59,0xd5,0x8c,0x1e,0x9f,0x3f,0x9a,0xde,0xeb,0x9e,0x9c,
   1252     0x61,0xd6,0x5d,0x47
   1253 };
   1254 static const unsigned char rsa_keygen0_q2[] = {
   1255     0x06,0x81,0x53,0xfd,0xa8,0x7b,0xa3,0x85,0x90,0x15,0x2c,0x97,0xb2,0xa0,0x17,
   1256     0x48,0xb0,0x7f,0x0a,0x01,0x8f
   1257 };
   1258 static const unsigned char rsa_keygen0_p[] = {
   1259     0xcf,0x72,0x1b,0x9a,0xfd,0x0d,0x22,0x1a,0x74,0x50,0x97,0x22,0x76,0xd8,0xc0,
   1260     0xc2,0xfd,0x08,0x81,0x05,0xdd,0x18,0x21,0x99,0x96,0xd6,0x5c,0x79,0xe3,0x02,
   1261     0x81,0xd7,0x0e,0x3f,0x3b,0x34,0xda,0x61,0xc9,0x2d,0x84,0x86,0x62,0x1e,0x3d,
   1262     0x5d,0xbf,0x92,0x2e,0xcd,0x35,0x3d,0x6e,0xb9,0x59,0x16,0xc9,0x82,0x50,0x41,
   1263     0x30,0x45,0x67,0xaa,0xb7,0xbe,0xec,0xea,0x4b,0x9e,0xa0,0xc3,0x05,0xbc,0x4c,
   1264     0x01,0xa5,0x4b,0xbd,0xa4,0x20,0xb5,0x20,0xd5,0x59,0x6f,0x82,0x5c,0x8f,0x4f,
   1265     0xe0,0x3a,0x4e,0x7e,0xfe,0x44,0xf3,0x3c,0xc0,0x0e,0x14,0x2b,0x32,0xe6,0x28,
   1266     0x8b,0x63,0x87,0x00,0xc3,0x53,0x4a,0x5b,0x71,0x7a,0x5b,0x28,0x40,0xc4,0x18,
   1267     0xb6,0x77,0x0b,0xab,0x59,0xa4,0x96,0x7d
   1268 };
   1269 static const unsigned char rsa_keygen0_q[] = {
   1270     0xfe,0xab,0xf2,0x7c,0x16,0x4a,0xf0,0x8d,0x31,0xc6,0x0a,0x82,0xe2,0xae,0xbb,
   1271     0x03,0x7e,0x7b,0x20,0x4e,0x64,0xb0,0x16,0xad,0x3c,0x01,0x1a,0xd3,0x54,0xbf,
   1272     0x2b,0xa4,0x02,0x9e,0xc3,0x0d,0x60,0x3d,0x1f,0xb9,0xc0,0x0d,0xe6,0x97,0x68,
   1273     0xbb,0x8c,0x81,0xd5,0xc1,0x54,0x96,0x0f,0x99,0xf0,0xa8,0xa2,0xf3,0xc6,0x8e,
   1274     0xec,0xbc,0x31,0x17,0x70,0x98,0x24,0xa3,0x36,0x51,0xa8,0x54,0xc4,0x44,0xdd,
   1275     0xf7,0x7e,0xda,0x47,0x4a,0x67,0x44,0x5d,0x4e,0x75,0xf0,0x4d,0x00,0x68,0xe1,
   1276     0x4a,0xec,0x1f,0x45,0xf9,0xe6,0xca,0x38,0x95,0x48,0x6f,0xdc,0x9d,0x1b,0xa3,
   1277     0x4b,0xfd,0x08,0x4b,0x54,0xcd,0xeb,0x3d,0xef,0x33,0x11,0x6e,0xce,0xe4,0x5d,
   1278     0xef,0xa9,0x58,0x5c,0x87,0x4d,0xc8,0xcf
   1279 };
   1280 static const unsigned char rsa_keygen0_n[] = {
   1281     0xce,0x5e,0x8d,0x1a,0xa3,0x08,0x7a,0x2d,0xb4,0x49,0x48,0xf0,0x06,0xb6,0xfe,
   1282     0xba,0x2f,0x39,0x7c,0x7b,0xe0,0x5d,0x09,0x2d,0x57,0x4e,0x54,0x60,0x9c,0xe5,
   1283     0x08,0x4b,0xe1,0x1a,0x73,0xc1,0x5e,0x2f,0xb6,0x46,0xd7,0x81,0xca,0xbc,0x98,
   1284     0xd2,0xf9,0xef,0x1c,0x92,0x8c,0x8d,0x99,0x85,0x28,0x52,0xd6,0xd5,0xab,0x70,
   1285     0x7e,0x9e,0xa9,0x87,0x82,0xc8,0x95,0x64,0xeb,0xf0,0x6c,0x0f,0x3f,0xe9,0x02,
   1286     0x29,0x2e,0x6d,0xa1,0xec,0xbf,0xdc,0x23,0xdf,0x82,0x4f,0xab,0x39,0x8d,0xcc,
   1287     0xac,0x21,0x51,0x14,0xf8,0xef,0xec,0x73,0x80,0x86,0xa3,0xcf,0x8f,0xd5,0xcf,
   1288     0x22,0x1f,0xcc,0x23,0x2f,0xba,0xcb,0xf6,0x17,0xcd,0x3a,0x1f,0xd9,0x84,0xb9,
   1289     0x88,0xa7,0x78,0x0f,0xaa,0xc9,0x04,0x01,0x20,0x72,0x5d,0x2a,0xfe,0x5b,0xdd,
   1290     0x16,0x5a,0xed,0x83,0x02,0x96,0x39,0x46,0x37,0x30,0xc1,0x0d,0x87,0xc2,0xc8,
   1291     0x33,0x38,0xed,0x35,0x72,0xe5,0x29,0xf8,0x1f,0x23,0x60,0xe1,0x2a,0x5b,0x1d,
   1292     0x6b,0x53,0x3f,0x07,0xc4,0xd9,0xbb,0x04,0x0c,0x5c,0x3f,0x0b,0xc4,0xd4,0x61,
   1293     0x96,0x94,0xf1,0x0f,0x4a,0x49,0xac,0xde,0xd2,0xe8,0x42,0xb3,0x4a,0x0b,0x64,
   1294     0x7a,0x32,0x5f,0x2b,0x5b,0x0f,0x8b,0x8b,0xe0,0x33,0x23,0x34,0x64,0xf8,0xb5,
   1295     0x7f,0x69,0x60,0xb8,0x71,0xe9,0xff,0x92,0x42,0xb1,0xf7,0x23,0xa8,0xa7,0x92,
   1296     0x04,0x3d,0x6b,0xff,0xf7,0xab,0xbb,0x14,0x1f,0x4c,0x10,0x97,0xd5,0x6b,0x71,
   1297     0x12,0xfd,0x93,0xa0,0x4a,0x3b,0x75,0x72,0x40,0x96,0x1c,0x5f,0x40,0x40,0x57,
   1298     0x13
   1299 };
   1300 static const unsigned char rsa_keygen0_d[] = {
   1301     0x47,0x47,0x49,0x1d,0x66,0x2a,0x4b,0x68,0xf5,0xd8,0x4a,0x24,0xfd,0x6c,0xbf,
   1302     0x56,0xb7,0x70,0xf7,0x9a,0x21,0xc8,0x80,0x9e,0xf4,0x84,0xcd,0x88,0x01,0x28,
   1303     0xea,0x50,0xab,0x13,0x63,0xdf,0xea,0x14,0x38,0xb5,0x07,0x42,0x81,0x2f,0xda,
   1304     0xe9,0x24,0x02,0x7e,0xaf,0xef,0x74,0x09,0x0e,0x80,0xfa,0xfb,0xd1,0x19,0x41,
   1305     0xe5,0xba,0x0f,0x7c,0x0a,0xa4,0x15,0x55,0xa2,0x58,0x8c,0x3a,0x48,0x2c,0xc6,
   1306     0xde,0x4a,0x76,0xfb,0x72,0xb6,0x61,0xe6,0xd2,0x10,0x44,0x4c,0x33,0xb8,0xd2,
   1307     0x74,0xb1,0x9d,0x3b,0xcd,0x2f,0xb1,0x4f,0xc3,0x98,0xbd,0x83,0xb7,0x7e,0x75,
   1308     0xe8,0xa7,0x6a,0xee,0xcc,0x51,0x8c,0x99,0x17,0x67,0x7f,0x27,0xf9,0x0d,0x6a,
   1309     0xb7,0xd4,0x80,0x17,0x89,0x39,0x9c,0xf3,0xd7,0x0f,0xdf,0xb0,0x55,0x80,0x1d,
   1310     0xaf,0x57,0x2e,0xd0,0xf0,0x4f,0x42,0x69,0x55,0xbc,0x83,0xd6,0x97,0x83,0x7a,
   1311     0xe6,0xc6,0x30,0x6d,0x3d,0xb5,0x21,0xa7,0xc4,0x62,0x0a,0x20,0xce,0x5e,0x5a,
   1312     0x17,0x98,0xb3,0x6f,0x6b,0x9a,0xeb,0x6b,0xa3,0xc4,0x75,0xd8,0x2b,0xdc,0x5c,
   1313     0x6f,0xec,0x5d,0x49,0xac,0xa8,0xa4,0x2f,0xb8,0x8c,0x4f,0x2e,0x46,0x21,0xee,
   1314     0x72,0x6a,0x0e,0x22,0x80,0x71,0xc8,0x76,0x40,0x44,0x61,0x16,0xbf,0xa5,0xf8,
   1315     0x89,0xc7,0xe9,0x87,0xdf,0xbd,0x2e,0x4b,0x4e,0xc2,0x97,0x53,0xe9,0x49,0x1c,
   1316     0x05,0xb0,0x0b,0x9b,0x9f,0x21,0x19,0x41,0xe9,0xf5,0x61,0xd7,0x33,0x2e,0x2c,
   1317     0x94,0xb8,0xa8,0x9a,0x3a,0xcc,0x6a,0x24,0x8d,0x19,0x13,0xee,0xb9,0xb0,0x48,
   1318     0x61
   1319 };
   1320 
   1321 static const struct rsa_keygen_st rsa_keygen_data[] = {
   1322     {
   1323         2048,
   1324         ITM(rsa_keygen0_e),
   1325         ITM(rsa_keygen0_xp1),
   1326         ITM(rsa_keygen0_xp2),
   1327         ITM(rsa_keygen0_xp),
   1328         ITM(rsa_keygen0_xq1),
   1329         ITM(rsa_keygen0_xq2),
   1330         ITM(rsa_keygen0_xq),
   1331 
   1332         ITM(rsa_keygen0_p1),
   1333         ITM(rsa_keygen0_p2),
   1334         ITM(rsa_keygen0_q1),
   1335         ITM(rsa_keygen0_q2),
   1336 
   1337         ITM(rsa_keygen0_p),
   1338         ITM(rsa_keygen0_q),
   1339         ITM(rsa_keygen0_n),
   1340         ITM(rsa_keygen0_d),
   1341     },
   1342 };
   1343 
   1344 #define NO_PSS_SALT_LEN -1
   1345 struct rsa_siggen_st {
   1346     const char *sig_pad_mode;
   1347     size_t mod;
   1348     const char *digest_alg;
   1349     const unsigned char *msg;
   1350     size_t msg_len;
   1351     int pss_salt_len;
   1352 };
   1353 static const unsigned char rsa_siggen0_msg[] = {
   1354     0xa3, 0x76, 0x35, 0xc2, 0x6d, 0x6b, 0xa0, 0xe1,
   1355     0x2e, 0x0b, 0x58, 0x33, 0x0d, 0x30, 0xdd, 0x07,
   1356     0xa9, 0x53, 0xd6, 0x37, 0x07, 0xad, 0xa8, 0x67,
   1357 };
   1358 static const struct rsa_siggen_st rsa_siggen_data[] = {
   1359     {
   1360         "pkcs1", /* pkcs1v1.5 */
   1361         2048,
   1362         "SHA384",
   1363         ITM(rsa_siggen0_msg),
   1364         NO_PSS_SALT_LEN,
   1365     },
   1366     {
   1367         "x931",
   1368         2048,
   1369         "SHA384",
   1370         ITM(rsa_siggen0_msg),
   1371         NO_PSS_SALT_LEN,
   1372     },
   1373     {
   1374         "pss",
   1375         2048,
   1376         "SHA384",
   1377         ITM(rsa_siggen0_msg),
   1378         48
   1379     },
   1380 };
   1381 
   1382 struct rsa_sigver_st {
   1383     const char *sig_pad_mode;
   1384     size_t mod;
   1385     const char *digest_alg;
   1386     const unsigned char *msg;
   1387     size_t msg_len;
   1388     const unsigned char *n;
   1389     size_t n_len;
   1390     const unsigned char *e;
   1391     size_t e_len;
   1392     const unsigned char *sig;
   1393     size_t sig_len;
   1394     int pss_salt_len;
   1395     int pass;
   1396 };
   1397 
   1398 static const unsigned char rsa_sigver15_0_n[] = {
   1399     0xbb, 0xbc, 0xf3, 0x35, 0x6f, 0x8e, 0x2e, 0x4f,
   1400     0x32, 0xb5, 0xbb, 0x47, 0x9d, 0x02, 0x2a, 0xac,
   1401     0x93, 0x9e, 0x70, 0x50, 0x0f, 0x59, 0x0d, 0x38,
   1402     0x1c, 0xe5, 0xda, 0x87, 0x61, 0x6b, 0xbf, 0xa8,
   1403     0x2c, 0x2f, 0x97, 0xbc, 0x4b, 0xd4, 0xae, 0x21,
   1404     0xed, 0xbe, 0x7a, 0x98, 0x15, 0xa8, 0xe2, 0xf0,
   1405     0x5f, 0x4d, 0xf8, 0xe2, 0x7c, 0x7e, 0x87, 0x52,
   1406     0x8e, 0xbf, 0xb6, 0x3f, 0x1a, 0x12, 0x96, 0x87,
   1407     0x2c, 0xd2, 0xac, 0x85, 0x87, 0xe5, 0xcd, 0x4c,
   1408     0x31, 0x2b, 0x98, 0x16, 0x9f, 0xcf, 0x3e, 0xef,
   1409     0x50, 0xaa, 0xee, 0xc0, 0x6c, 0x80, 0x94, 0xc5,
   1410     0xb1, 0xc7, 0x0d, 0xd4, 0x24, 0x94, 0x44, 0x3a,
   1411     0x44, 0xdb, 0x10, 0xdc, 0x21, 0x57, 0xe0, 0x77,
   1412     0xe5, 0x9c, 0xc4, 0x49, 0x06, 0xe3, 0x5a, 0xea,
   1413     0x64, 0xf4, 0x54, 0xca, 0xfc, 0x5a, 0x2b, 0x92,
   1414     0x76, 0xe1, 0x86, 0x6f, 0x3b, 0x4e, 0x7d, 0xe7,
   1415     0xb9, 0x62, 0xc4, 0x63, 0x12, 0x65, 0x16, 0x58,
   1416     0x11, 0x23, 0xba, 0x1b, 0x95, 0x06, 0x1c, 0xdd,
   1417     0xdc, 0x49, 0x0b, 0x67, 0x7c, 0xb0, 0xdb, 0x45,
   1418     0x88, 0x6e, 0x42, 0xdd, 0x67, 0xbf, 0xec, 0x0e,
   1419     0xfa, 0x64, 0x06, 0x3e, 0xb9, 0x40, 0xee, 0xc6,
   1420     0x56, 0xdf, 0xe7, 0xd8, 0xed, 0xf1, 0xf7, 0x53,
   1421     0xec, 0xd6, 0x1e, 0xb1, 0x66, 0x66, 0x80, 0x16,
   1422     0x5b, 0xba, 0x8c, 0x75, 0xe2, 0x6c, 0x19, 0xe7,
   1423     0xf9, 0xc8, 0xae, 0x75, 0xc9, 0xc4, 0x19, 0xe6,
   1424     0xba, 0xfd, 0x3e, 0x12, 0xf0, 0x88, 0x90, 0xee,
   1425     0x39, 0xf8, 0x85, 0x3c, 0x20, 0x3b, 0xfe, 0xb9,
   1426     0xa0, 0x07, 0x93, 0x6d, 0x20, 0x78, 0xf2, 0xc2,
   1427     0xa5, 0x49, 0x51, 0xa3, 0xb7, 0x13, 0x83, 0xeb,
   1428     0x19, 0x55, 0x08, 0x4f, 0x28, 0x32, 0x1a, 0x9b,
   1429     0xab, 0x05, 0x9a, 0xaa, 0x28, 0xdc, 0xfa, 0xbf,
   1430     0xf3, 0x52, 0x40, 0x0c, 0x4a, 0xb3, 0xd6, 0xb5,
   1431 };
   1432 static const unsigned char rsa_sigver15_0_e[] = {
   1433     0x01, 0x00, 0x01,
   1434 };
   1435 static const unsigned char rsa_sigver15_0_msg[] = {
   1436     0xba, 0x1a, 0x03, 0xda, 0x95, 0xd4, 0x36, 0x60,
   1437     0xe6, 0x77, 0xc7, 0x80, 0x49, 0x42, 0xc7, 0x98,
   1438     0xf6, 0x9e, 0xcf, 0x6f, 0xe5, 0xaf, 0x41, 0x6c,
   1439     0x36, 0x29, 0xd0, 0x06, 0xcf, 0x65, 0x43, 0x7c,
   1440     0x47, 0xb4, 0x75, 0xc6, 0x03, 0xf3, 0xa1, 0xcb,
   1441     0x9e, 0x5f, 0xdc, 0xd4, 0x8e, 0xab, 0xe3, 0x41,
   1442     0x05, 0x50, 0x17, 0x7b, 0x16, 0x25, 0xc6, 0x29,
   1443     0x19, 0x2f, 0xac, 0xa7, 0x50, 0xba, 0xba, 0xb3,
   1444     0xcb, 0xa8, 0x16, 0x6a, 0x88, 0x0a, 0x62, 0x74,
   1445     0xdf, 0xed, 0x41, 0x7b, 0x1d, 0x76, 0x17, 0xe1,
   1446     0x70, 0x32, 0x11, 0xb2, 0x03, 0xa7, 0x66, 0xd7,
   1447     0x69, 0x2f, 0xdc, 0x8d, 0x3f, 0x06, 0x8d, 0x16,
   1448     0x0d, 0xa1, 0xeb, 0xae, 0x6e, 0x41, 0x02, 0xc1,
   1449     0x71, 0xc9, 0xfd, 0x5b, 0x3e, 0xcc, 0xec, 0xe0,
   1450     0xfd, 0xeb, 0xc4, 0xfd, 0xf3, 0x5e, 0xa7, 0xde,
   1451     0xee, 0xd0, 0x66, 0xa2, 0xe4, 0x70, 0x45, 0x0c,
   1452 };
   1453 static const unsigned char rsa_sigver15_0_sig[] = {
   1454     0x4a, 0x8a, 0xcb, 0x88, 0x89, 0xd3, 0xa9, 0x48,
   1455     0x84, 0x09, 0x2e, 0x2c, 0x50, 0x02, 0xb9, 0xad,
   1456     0xe5, 0x10, 0xac, 0x27, 0x8f, 0x2d, 0x36, 0x7e,
   1457     0x6e, 0x32, 0x5c, 0x1d, 0xcb, 0xfa, 0xb8, 0xc7,
   1458     0x1a, 0x27, 0x11, 0x2b, 0x34, 0xf4, 0xa9, 0xda,
   1459     0xa0, 0x99, 0x86, 0xbe, 0x81, 0xd0, 0xd9, 0x2a,
   1460     0x88, 0x25, 0x99, 0xb3, 0x02, 0x50, 0xf1, 0xa5,
   1461     0x4f, 0x3a, 0x1d, 0x7f, 0xcf, 0x7d, 0x76, 0x00,
   1462     0x06, 0x87, 0x9f, 0x39, 0x3a, 0x3c, 0xc0, 0xc6,
   1463     0x46, 0x7a, 0x65, 0x0d, 0x85, 0x06, 0xd8, 0x51,
   1464     0xbe, 0xc5, 0x00, 0x80, 0xeb, 0x73, 0xbb, 0x71,
   1465     0x8c, 0xcc, 0x72, 0x83, 0x1f, 0x9d, 0x73, 0x75,
   1466     0xb8, 0xc8, 0x4c, 0x07, 0x5b, 0xda, 0x8c, 0x9b,
   1467     0x6f, 0x65, 0x8c, 0x2e, 0x23, 0x62, 0x6c, 0x8d,
   1468     0x94, 0x54, 0x5b, 0x7f, 0xe6, 0x5c, 0x90, 0xa3,
   1469     0x07, 0xe2, 0x14, 0x4d, 0xe7, 0x71, 0x6c, 0xfd,
   1470     0x64, 0x12, 0x14, 0x12, 0x14, 0x00, 0x1b, 0xc4,
   1471     0x65, 0xe7, 0x28, 0x5c, 0x34, 0x2d, 0xda, 0x94,
   1472     0xfd, 0x71, 0xcb, 0x27, 0xa6, 0x0e, 0x63, 0xd4,
   1473     0xd6, 0x14, 0x65, 0xc0, 0xe3, 0x65, 0x94, 0x61,
   1474     0x59, 0xb8, 0xc9, 0x3b, 0x9b, 0xc2, 0x82, 0xe2,
   1475     0x76, 0xe7, 0x17, 0xf1, 0xef, 0x32, 0x9e, 0x8a,
   1476     0x04, 0xf3, 0x1e, 0xcc, 0x16, 0xb4, 0x45, 0x0e,
   1477     0x77, 0xdb, 0x8b, 0x38, 0x6c, 0xcc, 0x98, 0xf4,
   1478     0xf8, 0xb5, 0x45, 0x2c, 0xde, 0x23, 0x36, 0xe7,
   1479     0x83, 0xf0, 0xb4, 0xb5, 0xe3, 0xd3, 0xd4, 0x59,
   1480     0xf1, 0x46, 0x7f, 0x0f, 0x55, 0x58, 0xff, 0x75,
   1481     0xc7, 0x7f, 0xee, 0xf8, 0xe0, 0xb2, 0x52, 0xd8,
   1482     0xba, 0x37, 0x4f, 0x7b, 0xba, 0xa3, 0xf0, 0x13,
   1483     0xa7, 0x3a, 0x21, 0xac, 0xdc, 0x9e, 0x63, 0x36,
   1484     0x38, 0xe7, 0x90, 0xeb, 0xea, 0x7f, 0x83, 0xf4,
   1485     0x9d, 0xf3, 0x6b, 0x31, 0x44, 0x47, 0x27, 0x8e,
   1486 };
   1487 
   1488 #define rsa_sigver15_1_n rsa_sigver15_0_n
   1489 #define rsa_sigver15_1_e rsa_sigver15_0_e
   1490 static const unsigned char rsa_sigver15_1_msg[] = {
   1491     0x52, 0x68, 0x35, 0xd6, 0x4a, 0x95, 0xaa, 0xbd,
   1492     0x02, 0x69, 0x7f, 0x92, 0xc7, 0x8c, 0x04, 0x71,
   1493     0x17, 0x10, 0x5a, 0x0d, 0xab, 0x5e, 0x91, 0x45,
   1494     0xb5, 0x70, 0x0d, 0xf8, 0x66, 0x41, 0x2e, 0x19,
   1495     0xb3, 0x82, 0x30, 0x06, 0x59, 0x8f, 0x4f, 0x15,
   1496     0x1e, 0xa1, 0x2f, 0x70, 0x5a, 0x45, 0x7c, 0x24,
   1497     0xb7, 0x0d, 0xcd, 0x74, 0x35, 0x85, 0xcf, 0x73,
   1498     0x71, 0x68, 0x9f, 0xd2, 0x26, 0x14, 0x77, 0xf6,
   1499     0xf4, 0x3c, 0x8d, 0x4d, 0x60, 0xdd, 0x38, 0xe3,
   1500     0x1d, 0x73, 0x55, 0x30, 0x8a, 0x6c, 0xe9, 0x35,
   1501     0x7b, 0xdd, 0x08, 0xc7, 0x3c, 0x74, 0xf5, 0x2a,
   1502     0xd3, 0xae, 0x8a, 0xe1, 0x86, 0x49, 0xda, 0xc5,
   1503     0x9d, 0xfd, 0x16, 0x55, 0x69, 0x67, 0xad, 0x4d,
   1504     0x85, 0x46, 0xb7, 0x7a, 0x5c, 0xe9, 0x94, 0xcc,
   1505     0xeb, 0xe8, 0xd0, 0xad, 0xc9, 0x13, 0x4a, 0x91,
   1506     0x64, 0xa8, 0x96, 0xce, 0x8d, 0xc9, 0x9f, 0xaf,
   1507 };
   1508 static const unsigned char rsa_sigver15_1_sig[] = {
   1509     0x81, 0x96, 0xdb, 0x65, 0x66, 0x5d, 0xec, 0x14,
   1510     0xb3, 0x42, 0xf6, 0x93, 0x89, 0xae, 0x49, 0x81,
   1511     0x98, 0xda, 0x71, 0x6d, 0x72, 0x9b, 0xcb, 0x39,
   1512     0xe4, 0x85, 0xd1, 0x9f, 0xbe, 0xb8, 0x69, 0x0e,
   1513     0xbe, 0xc0, 0x07, 0x88, 0xee, 0xbf, 0xf9, 0x5d,
   1514     0x20, 0x0f, 0x90, 0x48, 0x93, 0x53, 0xbb, 0xc6,
   1515     0x2f, 0xf8, 0xb7, 0x1d, 0xd2, 0x15, 0x0f, 0x1f,
   1516     0x25, 0xab, 0x5b, 0xae, 0x52, 0xe6, 0x8e, 0x06,
   1517     0x43, 0xe1, 0xd9, 0x4a, 0x4c, 0xee, 0x24, 0x0e,
   1518     0xeb, 0x4f, 0x9b, 0x1a, 0xcb, 0x6d, 0x22, 0x93,
   1519     0xa8, 0xa8, 0xcd, 0x4b, 0xa2, 0xf6, 0x88, 0x1a,
   1520     0xaf, 0x3b, 0x2b, 0xdf, 0x04, 0x2d, 0x2b, 0x27,
   1521     0x54, 0x90, 0x41, 0xb0, 0x4a, 0xda, 0xb1, 0xdf,
   1522     0xce, 0x39, 0xda, 0xd7, 0xda, 0x00, 0x97, 0x89,
   1523     0x9a, 0xaf, 0x4c, 0xc3, 0x0b, 0x6d, 0xb3, 0xce,
   1524     0x59, 0x0b, 0xd9, 0x91, 0x17, 0x31, 0x6a, 0xe7,
   1525     0x92, 0xec, 0x62, 0xe1, 0xe9, 0x73, 0xc7, 0x14,
   1526     0x06, 0x16, 0x42, 0x8a, 0x68, 0xb1, 0x7c, 0xb8,
   1527     0xa1, 0x45, 0xf0, 0x06, 0xf6, 0x85, 0xb5, 0x93,
   1528     0xf1, 0x45, 0xc4, 0xe5, 0xf1, 0x76, 0x71, 0xb4,
   1529     0xdc, 0x03, 0x55, 0xde, 0xb1, 0xd3, 0x5a, 0x0f,
   1530     0x1f, 0x4f, 0xdd, 0xaa, 0x87, 0x8e, 0x46, 0x4d,
   1531     0xe3, 0xd0, 0x5b, 0x28, 0x01, 0xc4, 0x94, 0xf7,
   1532     0x00, 0x93, 0xae, 0xa3, 0xb5, 0x64, 0x65, 0xa1,
   1533     0x16, 0x29, 0x2e, 0xc7, 0xbb, 0xeb, 0x71, 0x02,
   1534     0xf9, 0x26, 0xb6, 0xa6, 0x24, 0xdc, 0x6a, 0x0e,
   1535     0x0d, 0xad, 0x50, 0xf5, 0x4b, 0xe7, 0x0e, 0x9a,
   1536     0x39, 0x20, 0x70, 0xe2, 0xdf, 0x3b, 0x6f, 0x9d,
   1537     0xe3, 0x8f, 0x15, 0x6d, 0x5a, 0xaf, 0x12, 0xf7,
   1538     0xf7, 0x85, 0x6f, 0x0e, 0xe4, 0x6e, 0x27, 0xf7,
   1539     0xb3, 0x44, 0x38, 0x73, 0x45, 0x80, 0x7a, 0x72,
   1540     0x82, 0xf3, 0xc8, 0x32, 0xb8, 0x25, 0xef, 0xdc,
   1541 };
   1542 
   1543 static const unsigned char rsa_sigverpss_0_n[] = {
   1544     0xb2, 0x76, 0x6c, 0x31, 0x01, 0x15, 0xd8, 0xe7,
   1545     0x88, 0xd3, 0x4a, 0xb2, 0x75, 0xc8, 0xeb, 0x1f,
   1546     0xd4, 0xe3, 0xf7, 0xbc, 0x83, 0xb6, 0xe7, 0x88,
   1547     0x1f, 0x77, 0x36, 0xe1, 0x61, 0x2b, 0xa1, 0x83,
   1548     0xe5, 0x0b, 0x59, 0x8c, 0xd9, 0x7c, 0x88, 0x3e,
   1549     0x68, 0xef, 0x71, 0x1b, 0x72, 0x5d, 0x5e, 0xfe,
   1550     0xa8, 0x1f, 0xe9, 0x8c, 0x41, 0x18, 0xd3, 0x90,
   1551     0x2f, 0x6d, 0xc3, 0x46, 0x74, 0x69, 0x9b, 0xe1,
   1552     0x46, 0x9c, 0x9d, 0xaf, 0x5c, 0x36, 0xb8, 0x54,
   1553     0xf0, 0x67, 0xcb, 0x2c, 0xf4, 0x81, 0x7a, 0x4d,
   1554     0xaf, 0x1b, 0x53, 0xc9, 0x3d, 0xbf, 0x2e, 0xee,
   1555     0xe2, 0xe5, 0x00, 0x34, 0x58, 0xfd, 0x9f, 0xd0,
   1556     0xa5, 0xdf, 0x20, 0x04, 0x41, 0x5f, 0x1b, 0x53,
   1557     0xd5, 0x25, 0x9a, 0x06, 0x9d, 0xb6, 0x57, 0xa0,
   1558     0x3e, 0xea, 0x21, 0x32, 0x85, 0xed, 0x34, 0xcb,
   1559     0x4e, 0x96, 0xcc, 0xe6, 0xe0, 0x86, 0x9a, 0x38,
   1560     0xeb, 0x1c, 0xb0, 0x9c, 0x90, 0xf1, 0xca, 0xe0,
   1561     0x56, 0x1e, 0xf3, 0x90, 0xe0, 0xa8, 0x1f, 0x18,
   1562     0xcf, 0xac, 0x22, 0xec, 0x72, 0x59, 0xfd, 0x08,
   1563     0x41, 0x68, 0xc0, 0x7a, 0x19, 0xfe, 0x85, 0x6b,
   1564     0x7a, 0xf8, 0x20, 0x80, 0x66, 0xf2, 0xfc, 0x27,
   1565     0xc7, 0xa9, 0x39, 0xa7, 0x39, 0x01, 0xed, 0x78,
   1566     0xa7, 0x5f, 0xa5, 0x48, 0x99, 0x55, 0xb5, 0x0f,
   1567     0xb3, 0x08, 0x14, 0x00, 0xfc, 0xc1, 0x5a, 0xb8,
   1568     0xa1, 0xd4, 0xfd, 0x9b, 0xb8, 0xbc, 0x3b, 0x7f,
   1569     0x0b, 0x2e, 0x52, 0x22, 0x01, 0xc0, 0x24, 0x2b,
   1570     0xda, 0xfd, 0x61, 0xfc, 0x72, 0xe7, 0x72, 0x84,
   1571     0x7d, 0x57, 0xae, 0x52, 0xda, 0x47, 0x29, 0xac,
   1572     0x4b, 0x52, 0xb5, 0x0c, 0xa8, 0xe7, 0x70, 0x5d,
   1573     0x06, 0x67, 0x29, 0xb2, 0x68, 0xae, 0xb5, 0x27,
   1574     0x84, 0xab, 0x8f, 0x26, 0x8b, 0x6e, 0x8a, 0x61,
   1575     0x25, 0x11, 0x92, 0xc6, 0x07, 0x7e, 0x05, 0x19,
   1576     0xc2, 0xf3, 0xbc, 0xb1, 0xf9, 0x2d, 0x6e, 0x52,
   1577     0x85, 0x1c, 0x72, 0xd8, 0x71, 0x58, 0x70, 0x8a,
   1578     0x85, 0x7e, 0x2e, 0x89, 0xb1, 0x0c, 0xe2, 0x46,
   1579     0xf6, 0x09, 0x79, 0x36, 0x02, 0xae, 0xb9, 0x87,
   1580     0x29, 0x02, 0x98, 0x1c, 0x83, 0x89, 0x3b, 0xa1,
   1581     0xd2, 0xfa, 0x92, 0x92, 0x3e, 0x40, 0x05, 0xf5,
   1582     0xd6, 0x57, 0xda, 0xea, 0x77, 0x6f, 0xb2, 0x8e,
   1583     0xdc, 0xfd, 0xdb, 0xb9, 0x78, 0xe1, 0xb0, 0xb8,
   1584     0x57, 0x93, 0x60, 0x6a, 0xb7, 0x70, 0x48, 0x9e,
   1585     0x52, 0xd8, 0x82, 0xd2, 0x3b, 0xa3, 0x7e, 0x92,
   1586     0x5e, 0x5d, 0x5a, 0x88, 0xa0, 0x1f, 0x3c, 0x40,
   1587     0xd3, 0xc5, 0xdf, 0xa1, 0x18, 0x38, 0xe5, 0xe8,
   1588     0xdc, 0x59, 0x82, 0x55, 0x3a, 0x3a, 0x61, 0x4a,
   1589     0xed, 0x63, 0xf0, 0xa3, 0x61, 0x1e, 0x2e, 0x16,
   1590     0x35, 0xad, 0x99, 0x36, 0x3f, 0x1d, 0xc5, 0x36,
   1591     0xc6, 0xcd, 0x5c, 0x80, 0x3d, 0x48, 0x29, 0xf3,
   1592     0x37, 0xcd, 0xe1, 0xf7, 0x98, 0x27, 0x3c, 0x1e,
   1593     0x2d, 0x7a, 0xbe, 0xf3, 0x81, 0x66, 0xc7, 0xf3,
   1594     0x70, 0xb2, 0xe4, 0xb0, 0x86, 0x9b, 0xba, 0x00,
   1595     0x2a, 0xeb, 0x08, 0xd1, 0xa2, 0x3f, 0x4c, 0x2e,
   1596     0x7b, 0x87, 0xe1, 0x3b, 0xb9, 0xba, 0x3e, 0x78,
   1597     0xaf, 0x46, 0x89, 0x14, 0x01, 0x5d, 0x3b, 0x7c,
   1598     0x3e, 0x35, 0x58, 0xea, 0x76, 0x4a, 0xb2, 0xf8,
   1599     0x9b, 0x94, 0x2c, 0xa6, 0xf3, 0x19, 0x85, 0xc0,
   1600     0x91, 0x52, 0xc7, 0x57, 0x65, 0x99, 0x7a, 0x65,
   1601     0xaf, 0xd9, 0x01, 0xed, 0xea, 0x64, 0x8a, 0x0a,
   1602     0x62, 0x77, 0x14, 0xb0, 0xf6, 0xe2, 0x03, 0xdd,
   1603     0x3a, 0x81, 0x62, 0x30, 0x40, 0x66, 0xfe, 0xbc,
   1604     0xbd, 0x2a, 0xae, 0x6f, 0xd8, 0x94, 0xfd, 0xf1,
   1605     0xd6, 0x9b, 0xb7, 0xe4, 0x0f, 0xae, 0xfe, 0x10,
   1606     0x63, 0x72, 0x36, 0xc8, 0x75, 0x7c, 0x8e, 0xff,
   1607     0x3f, 0xd6, 0xb4, 0x5e, 0xdc, 0xda, 0x5d, 0x4d
   1608 };
   1609 static const unsigned char rsa_sigverpss_0_e[] = {
   1610     0x01, 0x00, 0x01,
   1611 };
   1612 static const unsigned char rsa_sigverpss_0_msg[] = {
   1613     0x32, 0x03, 0x0c, 0x2e, 0x06, 0xfc, 0x0f, 0xa5,
   1614     0x65, 0xcd, 0x0f, 0x88, 0x52, 0x80, 0xc3, 0x43,
   1615     0xda, 0x01, 0x36, 0x48, 0xf5, 0x76, 0xc8, 0x03,
   1616     0xae, 0xce, 0x76, 0x0f, 0x83, 0x9d, 0x5c, 0xaa,
   1617     0x0f, 0x27, 0x78, 0x66, 0xe6, 0xba, 0xb1, 0x22,
   1618     0xc1, 0x42, 0x18, 0x39, 0xdb, 0x17, 0x6d, 0xf9,
   1619     0x9a, 0x19, 0xe5, 0x57, 0x72, 0xff, 0x2a, 0xe0,
   1620     0x07, 0xec, 0xa4, 0xf3, 0x91, 0x43, 0xf7, 0x2e,
   1621     0x85, 0xbd, 0xcd, 0x26, 0x72, 0xb9, 0xd5, 0x5b,
   1622     0x28, 0xd3, 0x0c, 0x6b, 0x20, 0xb7, 0x3b, 0x85,
   1623     0x18, 0x38, 0xc0, 0x21, 0xfe, 0x9c, 0x92, 0xee,
   1624     0x0f, 0x3a, 0x80, 0x0c, 0x40, 0x48, 0xb9, 0x7c,
   1625     0xdd, 0xee, 0x91, 0xd5, 0x70, 0x9e, 0x82, 0x38,
   1626     0xe4, 0xa8, 0x71, 0x85, 0xea, 0x09, 0x33, 0xcf,
   1627     0x9c, 0x84, 0x50, 0x0e, 0x60, 0xf5, 0x07, 0x14,
   1628     0x10, 0xe1, 0x92, 0xc3, 0x58, 0x51, 0xab, 0x7c,
   1629 };
   1630 static const unsigned char rsa_sigverpss_0_sig[] = {
   1631     0xad, 0x38, 0x4f, 0x00, 0xdd, 0x95, 0xd7, 0x72,
   1632     0x90, 0x50, 0x48, 0x4e, 0xfd, 0x87, 0x3b, 0xab,
   1633     0x36, 0x75, 0xe5, 0xa7, 0x32, 0xcf, 0xf5, 0x3a,
   1634     0x9e, 0xe9, 0x59, 0x54, 0xcf, 0x95, 0x59, 0x63,
   1635     0x14, 0x43, 0xf8, 0x49, 0x55, 0x86, 0x13, 0x91,
   1636     0x4f, 0x0b, 0x67, 0x70, 0xc1, 0xd6, 0x97, 0x19,
   1637     0xc5, 0xd2, 0xba, 0x48, 0x1b, 0x16, 0x65, 0xd3,
   1638     0xcf, 0xee, 0x35, 0x19, 0xc8, 0xa6, 0x0f, 0x72,
   1639     0xc6, 0x13, 0x9f, 0xa4, 0x9f, 0x53, 0x62, 0x49,
   1640     0x1e, 0x1f, 0x18, 0x89, 0x2a, 0x7f, 0xf3, 0x17,
   1641     0x78, 0x9d, 0x8a, 0xc1, 0x8e, 0xdd, 0x91, 0xf1,
   1642     0x1f, 0xdd, 0x98, 0xff, 0x9a, 0x6d, 0xb8, 0x14,
   1643     0x87, 0xaa, 0x08, 0xad, 0xe8, 0x6d, 0x95, 0x6b,
   1644     0xc3, 0xad, 0x6a, 0x56, 0xa2, 0x78, 0x2d, 0x8c,
   1645     0xa3, 0x80, 0x4f, 0x97, 0x91, 0x2e, 0x14, 0x7b,
   1646     0x7a, 0x70, 0x9b, 0x48, 0x4d, 0xa4, 0x64, 0xe6,
   1647     0x3f, 0x6f, 0x26, 0x83, 0x73, 0xb0, 0x41, 0xd6,
   1648     0x29, 0x57, 0x31, 0x2e, 0x87, 0x3b, 0xea, 0x69,
   1649     0x97, 0xc5, 0xe7, 0x75, 0xc6, 0x05, 0xf7, 0x05,
   1650     0xf2, 0x74, 0xb5, 0x96, 0x71, 0x48, 0xcf, 0x1e,
   1651     0xa1, 0x67, 0x0a, 0x72, 0x28, 0xfb, 0x87, 0xde,
   1652     0xca, 0x91, 0x97, 0x63, 0x1e, 0x70, 0x22, 0x5c,
   1653     0xa2, 0xbe, 0x2a, 0x50, 0xf3, 0xac, 0x2f, 0x04,
   1654     0x1d, 0x09, 0x14, 0xdf, 0x9d, 0xe5, 0x03, 0x8e,
   1655     0xe1, 0xa1, 0x4e, 0x78, 0x71, 0xc5, 0xed, 0x04,
   1656     0x3e, 0x34, 0xf7, 0xce, 0xae, 0xe9, 0xc7, 0xe8,
   1657     0x25, 0xc2, 0xf8, 0x23, 0xfd, 0x8b, 0xec, 0x5a,
   1658     0xe1, 0x16, 0x0c, 0x6f, 0x04, 0x8b, 0x10, 0xe7,
   1659     0xc8, 0x9d, 0x6d, 0x8f, 0x21, 0x1d, 0x9d, 0xe6,
   1660     0xfa, 0x5f, 0x4f, 0xc7, 0x98, 0x2f, 0x78, 0x1f,
   1661     0x14, 0xcd, 0xc3, 0x6e, 0xfa, 0x36, 0xcf, 0x6e,
   1662     0xda, 0xf7, 0x31, 0xa8, 0x7f, 0x70, 0x8a, 0xc0,
   1663     0x24, 0xef, 0x5b, 0x0f, 0xab, 0x49, 0x89, 0xe2,
   1664     0x61, 0xc5, 0x9c, 0xae, 0x04, 0xf2, 0x54, 0x9f,
   1665     0x7a, 0xce, 0x2b, 0x62, 0x07, 0xdb, 0x86, 0x10,
   1666     0xe9, 0x3a, 0xc1, 0xdd, 0xd1, 0xe5, 0x17, 0xcf,
   1667     0x72, 0xe8, 0x03, 0x72, 0x23, 0xd8, 0xb3, 0x6e,
   1668     0x2d, 0xfc, 0xa7, 0xd4, 0x7d, 0x85, 0x9b, 0x73,
   1669     0x7e, 0xa6, 0xe1, 0x71, 0xd5, 0xf3, 0xf0, 0xe8,
   1670     0x23, 0x80, 0x7e, 0x3c, 0x4e, 0xc9, 0x7c, 0x3a,
   1671     0x9a, 0xc3, 0x65, 0xb8, 0xea, 0x49, 0x02, 0x92,
   1672     0xda, 0x39, 0xb4, 0xb2, 0xde, 0xf3, 0x1d, 0xb2,
   1673     0x81, 0xed, 0x21, 0x58, 0xdb, 0xb8, 0xe5, 0x96,
   1674     0xe9, 0xd5, 0xd3, 0x76, 0xde, 0x45, 0xa1, 0x1a,
   1675     0xfe, 0xcd, 0x41, 0x63, 0x86, 0xd5, 0x72, 0xf1,
   1676     0xae, 0x41, 0xf0, 0x10, 0x47, 0xcb, 0xd0, 0x86,
   1677     0x60, 0xb6, 0x38, 0x28, 0x6b, 0x96, 0xa5, 0xd0,
   1678     0x8e, 0x7e, 0x8e, 0x4f, 0xbf, 0x26, 0xbc, 0x10,
   1679     0x23, 0x7c, 0xd8, 0xba, 0x63, 0x0a, 0x61, 0x25,
   1680     0x0d, 0x3c, 0xba, 0x37, 0xef, 0x58, 0xaf, 0x57,
   1681     0x67, 0x10, 0xdc, 0xe6, 0x73, 0x6d, 0xf6, 0x0b,
   1682     0x38, 0x75, 0x00, 0x9d, 0x50, 0x71, 0xf0, 0x79,
   1683     0x33, 0xb0, 0xe4, 0xb9, 0x2a, 0x66, 0x48, 0xae,
   1684     0x74, 0xb4, 0xcb, 0x88, 0x57, 0x35, 0x28, 0xfd,
   1685     0xa1, 0x7b, 0x50, 0x8e, 0x7a, 0x09, 0x94, 0x01,
   1686     0xed, 0x3b, 0x1d, 0x42, 0xc3, 0x34, 0x5e, 0x2c,
   1687     0x1e, 0x94, 0x90, 0x45, 0x24, 0x0e, 0x2e, 0xaa,
   1688     0x50, 0x90, 0x2b, 0x32, 0x16, 0xf7, 0xeb, 0xbd,
   1689     0x49, 0x32, 0x10, 0xa1, 0xd6, 0xd6, 0x17, 0x88,
   1690     0xbb, 0x6d, 0x5f, 0xfc, 0xc3, 0xf4, 0x78, 0x38,
   1691     0x4c, 0xc8, 0xe0, 0x61, 0xd5, 0x5b, 0x30, 0xb1,
   1692     0x18, 0xa8, 0x90, 0xaf, 0x2b, 0xe9, 0x36, 0xad,
   1693     0xd0, 0x8b, 0x46, 0xe4, 0x38, 0xc0, 0x6f, 0xfc,
   1694     0x86, 0xae, 0x64, 0x00, 0xd1, 0x39, 0x3f, 0xee
   1695 };
   1696 
   1697 #define rsa_sigverpss_1_n rsa_sigverpss_0_n
   1698 #define rsa_sigverpss_1_e rsa_sigverpss_0_e
   1699 static const unsigned char rsa_sigverpss_1_msg[] = {
   1700     0x29, 0xdc, 0x70, 0xd8, 0xa5, 0xde, 0x41, 0x1d,
   1701     0xed, 0x05, 0x16, 0x04, 0x48, 0x05, 0x21, 0x05,
   1702     0x1c, 0x40, 0x8a, 0xbb, 0x6c, 0x3c, 0x11, 0xf3,
   1703     0x9f, 0x55, 0xf4, 0x03, 0x83, 0xaf, 0x13, 0x5d,
   1704     0x91, 0x6f, 0x52, 0x63, 0x73, 0x2b, 0x3f, 0x7d,
   1705     0xc3, 0x9e, 0xf5, 0x69, 0x16, 0xa1, 0x40, 0xd3,
   1706     0x39, 0x57, 0x01, 0x26, 0xba, 0xa7, 0xd4, 0xa1,
   1707     0xaa, 0xef, 0xf1, 0xad, 0xa2, 0xf6, 0x50, 0x6e,
   1708     0x04, 0x23, 0x11, 0x98, 0x83, 0xed, 0x1a, 0x84,
   1709     0xe6, 0x93, 0x02, 0x83, 0x08, 0x0d, 0x2e, 0x72,
   1710     0x24, 0x42, 0x39, 0x8e, 0x4f, 0x7b, 0x99, 0x8a,
   1711     0x46, 0x18, 0x80, 0xdf, 0x6a, 0x82, 0x01, 0x64,
   1712     0x09, 0x60, 0x74, 0x1e, 0xdf, 0x0e, 0x1b, 0x59,
   1713     0xdd, 0x4a, 0x06, 0xf7, 0x29, 0x31, 0x33, 0x09,
   1714     0x65, 0x6b, 0xfa, 0x9c, 0x34, 0xa2, 0xa8, 0xd5,
   1715     0xfa, 0x38, 0x6b, 0x41, 0xe4, 0x39, 0x6e, 0x66,
   1716 };
   1717 static const unsigned char rsa_sigverpss_1_sig[] = {
   1718     0x2a, 0x7a, 0xc1, 0x6d, 0x2a, 0x7d, 0xc0, 0x0c,
   1719     0x70, 0x8b, 0xab, 0xac, 0x8b, 0x93, 0xcd, 0x8c,
   1720     0x9a, 0xdf, 0x93, 0x53, 0xda, 0x2d, 0x97, 0xf4,
   1721     0xc5, 0x3d, 0xee, 0x5a, 0x5a, 0x51, 0x2a, 0xef,
   1722     0xa2, 0xf0, 0x2e, 0x19, 0x83, 0x94, 0x43, 0x95,
   1723     0x10, 0xde, 0x6a, 0xcc, 0xaf, 0xe0, 0xfb, 0xed,
   1724     0xd0, 0xf9, 0x6a, 0x37, 0x66, 0x29, 0xee, 0xbb,
   1725     0xce, 0xcc, 0x02, 0x27, 0xe4, 0xb9, 0x43, 0x3c,
   1726     0xfd, 0x24, 0x93, 0x4e, 0x67, 0x1c, 0x8e, 0xfc,
   1727     0xf0, 0xaa, 0x5f, 0x56, 0x68, 0x18, 0x5f, 0xd5,
   1728     0x8e, 0xdc, 0x58, 0x7e, 0x2d, 0xc7, 0xd6, 0x16,
   1729     0xfe, 0x3b, 0xb5, 0xcb, 0x9e, 0x50, 0xd1, 0x2f,
   1730     0xce, 0x5e, 0x63, 0x81, 0xda, 0x46, 0xc1, 0x5b,
   1731     0xaa, 0x6a, 0x3c, 0xcd, 0xa6, 0x4c, 0x1a, 0xff,
   1732     0xda, 0xd0, 0x53, 0xeb, 0xbf, 0x83, 0x7f, 0x2b,
   1733     0xb7, 0xee, 0x89, 0xbc, 0x70, 0x2c, 0xec, 0x29,
   1734     0xce, 0xf9, 0xb6, 0x95, 0xde, 0xcc, 0x7b, 0x79,
   1735     0xb5, 0x77, 0x6f, 0x0a, 0xf7, 0xe0, 0xc9, 0x90,
   1736     0x58, 0xf1, 0x0b, 0xb1, 0xda, 0xdc, 0x11, 0xe9,
   1737     0x6c, 0x46, 0x2e, 0x06, 0x84, 0x78, 0x57, 0xaa,
   1738     0x54, 0xa2, 0x35, 0xec, 0xa0, 0x48, 0xec, 0xa6,
   1739     0x15, 0x9d, 0x49, 0xbb, 0x43, 0x19, 0xa8, 0x6f,
   1740     0x7d, 0xd3, 0x03, 0xbf, 0x9b, 0x42, 0x7e, 0x8d,
   1741     0xee, 0x9a, 0x80, 0x3c, 0xe1, 0xe3, 0x1f, 0x61,
   1742     0x6e, 0x21, 0x70, 0xf4, 0x37, 0x55, 0x83, 0x9a,
   1743     0xe1, 0xe9, 0xb0, 0xe6, 0xf0, 0x94, 0x2d, 0xd6,
   1744     0x8d, 0x1e, 0x3d, 0x12, 0xb9, 0xd4, 0xb0, 0x9b,
   1745     0x40, 0x36, 0xb0, 0x39, 0x55, 0xdc, 0x04, 0x32,
   1746     0x3c, 0xd1, 0xb9, 0x08, 0x43, 0x35, 0x57, 0x47,
   1747     0x46, 0xea, 0x98, 0x26, 0x46, 0xef, 0xc3, 0x4d,
   1748     0xc4, 0xa6, 0x3d, 0x1c, 0x35, 0x45, 0x78, 0x73,
   1749     0xab, 0xe1, 0x33, 0x53, 0xad, 0xe9, 0xab, 0x32,
   1750     0x18, 0xd8, 0x71, 0x69, 0xf5, 0x15, 0xb7, 0x30,
   1751     0x00, 0xde, 0x0c, 0x01, 0x78, 0x82, 0xaf, 0xf0,
   1752     0x10, 0x34, 0xab, 0xd9, 0x3a, 0xa7, 0x23, 0x13,
   1753     0x31, 0x09, 0x90, 0x8a, 0xda, 0x2e, 0xc5, 0x38,
   1754     0x59, 0x67, 0x24, 0xd9, 0x9e, 0x6f, 0xd8, 0x12,
   1755     0x59, 0x16, 0x26, 0xd8, 0x31, 0x0e, 0x76, 0x82,
   1756     0x7c, 0x8d, 0xd4, 0x80, 0xa8, 0x55, 0xeb, 0x97,
   1757     0x76, 0xc9, 0x82, 0x4a, 0x73, 0x84, 0x0f, 0x9d,
   1758     0x7f, 0x2e, 0x7b, 0x16, 0xa9, 0x89, 0xdc, 0x95,
   1759     0x59, 0x11, 0xa2, 0xfd, 0xa3, 0x17, 0xc0, 0xe8,
   1760     0xfd, 0xed, 0xd0, 0x2f, 0xca, 0x70, 0x6e, 0xa6,
   1761     0x8b, 0x79, 0x39, 0xae, 0x77, 0xb2, 0x3d, 0x8f,
   1762     0x8b, 0xf8, 0xaf, 0x05, 0x20, 0x80, 0xde, 0xb4,
   1763     0x19, 0x77, 0x0b, 0x45, 0x87, 0xe0, 0xcb, 0x35,
   1764     0x24, 0x46, 0x9d, 0xa5, 0xee, 0x30, 0xba, 0x9a,
   1765     0xe9, 0x3c, 0x6a, 0x7e, 0xd4, 0xdc, 0x47, 0x26,
   1766     0x83, 0xf5, 0x05, 0x8e, 0x70, 0xb5, 0x0c, 0x4f,
   1767     0x83, 0xe2, 0x60, 0x99, 0x7b, 0xc5, 0xf4, 0x8a,
   1768     0x8d, 0x87, 0xe1, 0x5c, 0x90, 0x5d, 0x21, 0x26,
   1769     0xe1, 0x43, 0x0e, 0x4c, 0xed, 0xb4, 0xd9, 0x92,
   1770     0xd6, 0x4c, 0x4e, 0xd4, 0x81, 0x12, 0x01, 0x88,
   1771     0x3e, 0xf6, 0xab, 0x64, 0xed, 0x8f, 0x7d, 0x22,
   1772     0xbb, 0x21, 0x4c, 0xc0, 0xe2, 0x72, 0x5a, 0x15,
   1773     0x47, 0xdd, 0x1f, 0xf1, 0xb8, 0x32, 0x97, 0x08,
   1774     0xc0, 0x8b, 0xe8, 0x65, 0x1a, 0x6b, 0x86, 0x22,
   1775     0xee, 0x8d, 0xa5, 0xa2, 0x86, 0xf1, 0xcc, 0xb4,
   1776     0x93, 0xc1, 0x8a, 0x99, 0x2d, 0x13, 0xad, 0xe5,
   1777     0x28, 0x7e, 0xff, 0xfb, 0xfc, 0x43, 0x0e, 0xfa,
   1778     0x9d, 0x08, 0x51, 0x40, 0x1f, 0x50, 0xa9, 0xb7,
   1779     0xfa, 0xc3, 0x33, 0x24, 0x73, 0xb3, 0x30, 0x69,
   1780     0xf8, 0x3d, 0xc3, 0x62, 0xac, 0x5e, 0x2b, 0x13,
   1781     0xe9, 0x97, 0x20, 0x35, 0xf8, 0xf1, 0x78, 0xe1
   1782 };
   1783 
   1784 static const unsigned char rsa_sigverx931_0_n[] = {
   1785     0xa0, 0x16, 0x14, 0x80, 0x8b, 0x17, 0x2b, 0xad,
   1786     0xd7, 0x07, 0x31, 0x6d, 0xfc, 0xba, 0x25, 0x83,
   1787     0x09, 0xa0, 0xf7, 0x71, 0xc6, 0x06, 0x22, 0x87,
   1788     0xd6, 0xbd, 0x13, 0xd9, 0xfe, 0x7c, 0xf7, 0xe6,
   1789     0x48, 0xdb, 0x27, 0xd8, 0xa5, 0x49, 0x8e, 0x8c,
   1790     0xea, 0xbe, 0xe0, 0x04, 0x6f, 0x3d, 0x3b, 0x73,
   1791     0xdc, 0xc5, 0xd4, 0xdc, 0x85, 0xef, 0xea, 0x10,
   1792     0x46, 0xf3, 0x88, 0xb9, 0x93, 0xbc, 0xa0, 0xb6,
   1793     0x06, 0x02, 0x82, 0xb4, 0x2d, 0x54, 0xec, 0x79,
   1794     0x50, 0x8a, 0xfc, 0xfa, 0x62, 0x45, 0xbb, 0xd7,
   1795     0x26, 0xcd, 0x88, 0xfa, 0xe8, 0x0f, 0x26, 0x5b,
   1796     0x1f, 0x21, 0x3f, 0x3b, 0x5d, 0x98, 0x3f, 0x02,
   1797     0x8c, 0xa1, 0xbf, 0xc0, 0x70, 0x4d, 0xd1, 0x41,
   1798     0xfd, 0xb9, 0x55, 0x12, 0x90, 0xc8, 0x6e, 0x0f,
   1799     0x19, 0xa8, 0x5c, 0x31, 0xd6, 0x16, 0x0e, 0xdf,
   1800     0x08, 0x84, 0xcd, 0x4b, 0xfd, 0x28, 0x8d, 0x7d,
   1801     0x6e, 0xea, 0xc7, 0x95, 0x4a, 0xc3, 0x84, 0x54,
   1802     0x7f, 0xb0, 0x20, 0x29, 0x96, 0x39, 0x4c, 0x3e,
   1803     0x85, 0xec, 0x22, 0xdd, 0xb9, 0x14, 0xbb, 0x04,
   1804     0x2f, 0x4c, 0x0c, 0xe3, 0xfa, 0xae, 0x47, 0x79,
   1805     0x59, 0x8e, 0x4e, 0x7d, 0x4a, 0x17, 0xae, 0x16,
   1806     0x38, 0x66, 0x4e, 0xff, 0x45, 0x7f, 0xac, 0x5e,
   1807     0x75, 0x9f, 0x51, 0x18, 0xe6, 0xad, 0x6b, 0x8b,
   1808     0x3d, 0x08, 0x4d, 0x9a, 0xd2, 0x11, 0xba, 0xa8,
   1809     0xc3, 0xb5, 0x17, 0xb5, 0xdf, 0xe7, 0x39, 0x89,
   1810     0x27, 0x7b, 0xeb, 0xf4, 0xe5, 0x7e, 0xa9, 0x7b,
   1811     0x39, 0x40, 0x6f, 0xe4, 0x82, 0x14, 0x3d, 0x62,
   1812     0xb6, 0xd4, 0x43, 0xd0, 0x0a, 0x2f, 0xc1, 0x73,
   1813     0x3d, 0x99, 0x37, 0xbe, 0x62, 0x13, 0x6a, 0x8b,
   1814     0xeb, 0xc5, 0x64, 0xd5, 0x2a, 0x8b, 0x4f, 0x7f,
   1815     0x82, 0x48, 0x69, 0x3e, 0x08, 0x1b, 0xb5, 0x77,
   1816     0xd3, 0xdc, 0x1b, 0x2c, 0xe5, 0x59, 0xf6, 0x33,
   1817     0x47, 0xa0, 0x0f, 0xff, 0x8a, 0x6a, 0x1d, 0x66,
   1818     0x24, 0x67, 0x36, 0x7d, 0x21, 0xda, 0xc1, 0xd4,
   1819     0x11, 0x6c, 0xe8, 0x5f, 0xd7, 0x8a, 0x53, 0x5c,
   1820     0xb2, 0xe2, 0xf9, 0x14, 0x29, 0x0f, 0xcf, 0x28,
   1821     0x32, 0x4f, 0xc6, 0x17, 0xf6, 0xbc, 0x0e, 0xb8,
   1822     0x99, 0x7c, 0x14, 0xa3, 0x40, 0x3f, 0xf3, 0xe4,
   1823     0x31, 0xbe, 0x54, 0x64, 0x5a, 0xad, 0x1d, 0xb0,
   1824     0x37, 0xcc, 0xd9, 0x0b, 0xa4, 0xbc, 0xe0, 0x07,
   1825     0x37, 0xd1, 0xe1, 0x65, 0xc6, 0x53, 0xfe, 0x60,
   1826     0x6a, 0x64, 0xa4, 0x01, 0x00, 0xf3, 0x5b, 0x9a,
   1827     0x28, 0x61, 0xde, 0x7a, 0xd7, 0x0d, 0x56, 0x1e,
   1828     0x4d, 0xa8, 0x6a, 0xb5, 0xf2, 0x86, 0x2a, 0x4e,
   1829     0xaa, 0x37, 0x23, 0x5a, 0x3b, 0x69, 0x66, 0x81,
   1830     0xc8, 0x8e, 0x1b, 0x31, 0x0f, 0x28, 0x31, 0x9a,
   1831     0x2d, 0xe5, 0x79, 0xcc, 0xa4, 0xca, 0x60, 0x45,
   1832     0xf7, 0x83, 0x73, 0x5a, 0x01, 0x29, 0xda, 0xf7,
   1833 
   1834 };
   1835 static const unsigned char rsa_sigverx931_0_e[] = {
   1836     0x01, 0x00, 0x01,
   1837 };
   1838 static const unsigned char rsa_sigverx931_0_msg[] = {
   1839     0x82, 0x2e, 0x41, 0x70, 0x9d, 0x1f, 0xe9, 0x47,
   1840     0xec, 0xf1, 0x79, 0xcc, 0x05, 0xef, 0xdb, 0xcd,
   1841     0xca, 0x8b, 0x8e, 0x61, 0x45, 0xad, 0xa6, 0xd9,
   1842     0xd7, 0x4b, 0x15, 0xf4, 0x92, 0x3a, 0x2a, 0x52,
   1843     0xe3, 0x44, 0x57, 0x2b, 0x74, 0x7a, 0x37, 0x41,
   1844     0x50, 0xcb, 0xcf, 0x13, 0x49, 0xd6, 0x15, 0x54,
   1845     0x97, 0xfd, 0xae, 0x9b, 0xc1, 0xbb, 0xfc, 0x5c,
   1846     0xc1, 0x37, 0x58, 0x17, 0x63, 0x19, 0x9c, 0xcf,
   1847     0xee, 0x9c, 0xe5, 0xbe, 0x06, 0xe4, 0x97, 0x47,
   1848     0xd1, 0x93, 0xa1, 0x2c, 0x59, 0x97, 0x02, 0x01,
   1849     0x31, 0x45, 0x8c, 0xe1, 0x5c, 0xac, 0xe7, 0x5f,
   1850     0x6a, 0x23, 0xda, 0xbf, 0xe4, 0x25, 0xc6, 0x67,
   1851     0xea, 0x5f, 0x73, 0x90, 0x1b, 0x06, 0x0f, 0x41,
   1852     0xb5, 0x6e, 0x74, 0x7e, 0xfd, 0xd9, 0xaa, 0xbd,
   1853     0xe2, 0x8d, 0xad, 0x99, 0xdd, 0x29, 0x70, 0xca,
   1854     0x1b, 0x38, 0x21, 0x55, 0xde, 0x07, 0xaf, 0x00,
   1855 
   1856 };
   1857 static const unsigned char rsa_sigverx931_0_sig[] = {
   1858     0x29, 0xa9, 0x3a, 0x8e, 0x9e, 0x90, 0x1b, 0xdb,
   1859     0xaf, 0x0b, 0x47, 0x5b, 0xb5, 0xc3, 0x8c, 0xc3,
   1860     0x70, 0xbe, 0x73, 0xf9, 0x65, 0x8e, 0xc6, 0x1e,
   1861     0x95, 0x0b, 0xdb, 0x24, 0x76, 0x79, 0xf1, 0x00,
   1862     0x71, 0xcd, 0xc5, 0x6a, 0x7b, 0xd2, 0x8b, 0x18,
   1863     0xc4, 0xdd, 0xf1, 0x2a, 0x31, 0x04, 0x3f, 0xfc,
   1864     0x36, 0x06, 0x20, 0x71, 0x3d, 0x62, 0xf2, 0xb5,
   1865     0x79, 0x0a, 0xd5, 0xd2, 0x81, 0xf1, 0xb1, 0x4f,
   1866     0x9a, 0x17, 0xe8, 0x67, 0x64, 0x48, 0x09, 0x75,
   1867     0xff, 0x2d, 0xee, 0x36, 0xca, 0xca, 0x1d, 0x74,
   1868     0x99, 0xbe, 0x5c, 0x94, 0x31, 0xcc, 0x12, 0xf4,
   1869     0x59, 0x7e, 0x17, 0x00, 0x4f, 0x7b, 0xa4, 0xb1,
   1870     0xda, 0xdb, 0x3e, 0xa4, 0x34, 0x10, 0x4a, 0x19,
   1871     0x0a, 0xd2, 0xa7, 0xa0, 0xc5, 0xe6, 0xef, 0x82,
   1872     0xd4, 0x2e, 0x21, 0xbe, 0x15, 0x73, 0xac, 0xef,
   1873     0x05, 0xdb, 0x6a, 0x8a, 0x1a, 0xcb, 0x8e, 0xa5,
   1874     0xee, 0xfb, 0x28, 0xbf, 0x96, 0xa4, 0x2b, 0xd2,
   1875     0x85, 0x2b, 0x20, 0xc3, 0xaf, 0x9a, 0x32, 0x04,
   1876     0xa0, 0x49, 0x24, 0x47, 0xd0, 0x09, 0xf7, 0xcf,
   1877     0x73, 0xb6, 0xf6, 0x70, 0xda, 0x3b, 0xf8, 0x5a,
   1878     0x28, 0x2e, 0x14, 0x6c, 0x52, 0xbd, 0x2a, 0x7c,
   1879     0x8e, 0xc1, 0xa8, 0x0e, 0xb1, 0x1e, 0x6b, 0x8d,
   1880     0x76, 0xea, 0x70, 0x81, 0xa0, 0x02, 0x63, 0x74,
   1881     0xbc, 0x7e, 0xb9, 0xac, 0x0e, 0x7b, 0x1b, 0x75,
   1882     0x82, 0xe2, 0x98, 0x4e, 0x24, 0x55, 0xd4, 0xbd,
   1883     0x14, 0xde, 0x58, 0x56, 0x3a, 0x5d, 0x4e, 0x57,
   1884     0x0d, 0x54, 0x74, 0xe8, 0x86, 0x8c, 0xcb, 0x07,
   1885     0x9f, 0x0b, 0xfb, 0xc2, 0x08, 0x5c, 0xd7, 0x05,
   1886     0x3b, 0xc8, 0xd2, 0x15, 0x68, 0x8f, 0x3d, 0x3c,
   1887     0x4e, 0x85, 0xa9, 0x25, 0x6f, 0xf5, 0x2e, 0xca,
   1888     0xca, 0xa8, 0x27, 0x89, 0x61, 0x4e, 0x1f, 0x57,
   1889     0x2d, 0x99, 0x10, 0x3f, 0xbc, 0x9e, 0x96, 0x5e,
   1890     0x2f, 0x0a, 0x25, 0xa7, 0x5c, 0xea, 0x65, 0x2a,
   1891     0x22, 0x35, 0xa3, 0xf9, 0x13, 0x89, 0x05, 0x2e,
   1892     0x19, 0x73, 0x1d, 0x70, 0x74, 0x98, 0x15, 0x4b,
   1893     0xab, 0x56, 0x52, 0xe0, 0x01, 0x42, 0x95, 0x6a,
   1894     0x46, 0x2c, 0x78, 0xff, 0x26, 0xbc, 0x48, 0x10,
   1895     0x38, 0x25, 0xab, 0x32, 0x7c, 0x79, 0x7c, 0x5d,
   1896     0x6f, 0x45, 0x54, 0x74, 0x2d, 0x93, 0x56, 0x52,
   1897     0x11, 0x34, 0x1e, 0xe3, 0x4b, 0x6a, 0x17, 0x4f,
   1898     0x37, 0x14, 0x75, 0xac, 0xa3, 0xa1, 0xca, 0xda,
   1899     0x38, 0x06, 0xa9, 0x78, 0xb9, 0x5d, 0xd0, 0x59,
   1900     0x1b, 0x5d, 0x1e, 0xc2, 0x0b, 0xfb, 0x39, 0x37,
   1901     0x44, 0x85, 0xb6, 0x36, 0x06, 0x95, 0xbc, 0x15,
   1902     0x35, 0xb9, 0xe6, 0x27, 0x42, 0xe3, 0xc8, 0xec,
   1903     0x30, 0x37, 0x20, 0x26, 0x9a, 0x11, 0x61, 0xc0,
   1904     0xdb, 0xb2, 0x5a, 0x26, 0x78, 0x27, 0xb9, 0x13,
   1905     0xc9, 0x1a, 0xa7, 0x67, 0x93, 0xe8, 0xbe, 0xcb,
   1906 };
   1907 
   1908 #define rsa_sigverx931_1_n rsa_sigverx931_0_n
   1909 #define rsa_sigverx931_1_e rsa_sigverx931_0_e
   1910 static const unsigned char rsa_sigverx931_1_msg[] = {
   1911     0x79, 0x02, 0xb9, 0xd2, 0x3e, 0x84, 0x02, 0xc8,
   1912     0x2a, 0x94, 0x92, 0x14, 0x8d, 0xd5, 0xd3, 0x8d,
   1913     0xb2, 0xf6, 0x00, 0x8b, 0x61, 0x2c, 0xd2, 0xf9,
   1914     0xa8, 0xe0, 0x5d, 0xac, 0xdc, 0xa5, 0x34, 0xf3,
   1915     0xda, 0x6c, 0xd4, 0x70, 0x92, 0xfb, 0x40, 0x26,
   1916     0xc7, 0x9b, 0xe8, 0xd2, 0x10, 0x11, 0xcf, 0x7f,
   1917     0x23, 0xd0, 0xed, 0x55, 0x52, 0x6d, 0xd3, 0xb2,
   1918     0x56, 0x53, 0x8d, 0x7c, 0x4c, 0xb8, 0xcc, 0xb5,
   1919     0xfd, 0xd0, 0x45, 0x4f, 0x62, 0x40, 0x54, 0x42,
   1920     0x68, 0xd5, 0xe5, 0xdd, 0xf0, 0x76, 0x94, 0x59,
   1921     0x1a, 0x57, 0x13, 0xb4, 0xc3, 0x70, 0xcc, 0xbd,
   1922     0x4c, 0x2e, 0xc8, 0x6b, 0x9d, 0x68, 0xd0, 0x72,
   1923     0x6a, 0x94, 0xd2, 0x18, 0xb5, 0x3b, 0x86, 0x45,
   1924     0x95, 0xaa, 0x50, 0xda, 0x35, 0xeb, 0x69, 0x44,
   1925     0x1f, 0xf3, 0x3a, 0x51, 0xbb, 0x1d, 0x08, 0x42,
   1926     0x12, 0xd7, 0xd6, 0x21, 0xd8, 0x9b, 0x87, 0x55,
   1927 };
   1928 
   1929 static const unsigned char rsa_sigverx931_1_sig[] = {
   1930     0x3b, 0xba, 0xb3, 0xb1, 0xb2, 0x6a, 0x29, 0xb5,
   1931     0xf9, 0x94, 0xf1, 0x00, 0x5c, 0x16, 0x67, 0x67,
   1932     0x73, 0xd3, 0xde, 0x7e, 0x07, 0xfa, 0xaa, 0x95,
   1933     0xeb, 0x5a, 0x55, 0xdc, 0xb2, 0xa9, 0x70, 0x5a,
   1934     0xee, 0x8f, 0x8d, 0x69, 0x85, 0x2b, 0x00, 0xe3,
   1935     0xdc, 0xe2, 0x73, 0x9b, 0x68, 0xeb, 0x93, 0x69,
   1936     0x08, 0x03, 0x17, 0xd6, 0x50, 0x21, 0x14, 0x23,
   1937     0x8c, 0xe6, 0x54, 0x3a, 0xd9, 0xfc, 0x8b, 0x14,
   1938     0x81, 0xb1, 0x8b, 0x9d, 0xd2, 0xbe, 0x58, 0x75,
   1939     0x94, 0x74, 0x93, 0xc9, 0xbb, 0x4e, 0xf6, 0x1f,
   1940     0x73, 0x7d, 0x1a, 0x5f, 0xbd, 0xbf, 0x59, 0x37,
   1941     0x5b, 0x98, 0x54, 0xad, 0x3a, 0xef, 0xa0, 0xef,
   1942     0xcb, 0xc3, 0xe8, 0x84, 0xd8, 0x3d, 0xf5, 0x60,
   1943     0xb8, 0xc3, 0x8d, 0x1e, 0x78, 0xa0, 0x91, 0x94,
   1944     0xb7, 0xd7, 0xb1, 0xd4, 0xe2, 0xee, 0x81, 0x93,
   1945     0xfc, 0x41, 0xf0, 0x31, 0xbb, 0x03, 0x52, 0xde,
   1946     0x80, 0x20, 0x3a, 0x68, 0xe6, 0xc5, 0x50, 0x1b,
   1947     0x08, 0x3f, 0x40, 0xde, 0xb3, 0xe5, 0x81, 0x99,
   1948     0x7f, 0xdb, 0xb6, 0x5d, 0x61, 0x27, 0xd4, 0xfb,
   1949     0xcd, 0xc5, 0x7a, 0xea, 0xde, 0x7a, 0x66, 0xef,
   1950     0x55, 0x3f, 0x85, 0xea, 0x84, 0xc5, 0x0a, 0xf6,
   1951     0x3c, 0x40, 0x38, 0xf7, 0x6c, 0x66, 0xe5, 0xbe,
   1952     0x61, 0x41, 0xd3, 0xb1, 0x08, 0xe1, 0xb4, 0xf9,
   1953     0x6e, 0xf6, 0x0e, 0x4a, 0x72, 0x6c, 0x61, 0x63,
   1954     0x3e, 0x41, 0x33, 0x94, 0xd6, 0x27, 0xa4, 0xd9,
   1955     0x3a, 0x20, 0x2b, 0x39, 0xea, 0xe5, 0x82, 0x48,
   1956     0xd6, 0x5b, 0x58, 0x85, 0x44, 0xb0, 0xd2, 0xfd,
   1957     0xfb, 0x3e, 0xeb, 0x78, 0xac, 0xbc, 0xba, 0x16,
   1958     0x92, 0x0e, 0x20, 0xc1, 0xb2, 0xd1, 0x92, 0xa8,
   1959     0x00, 0x88, 0xc0, 0x41, 0x46, 0x38, 0xb6, 0x54,
   1960     0x70, 0x0c, 0x00, 0x62, 0x97, 0x6a, 0x8e, 0x66,
   1961     0x5a, 0xa1, 0x6c, 0xf7, 0x6d, 0xc2, 0x27, 0x56,
   1962     0x60, 0x5b, 0x0c, 0x52, 0xac, 0x5c, 0xae, 0x99,
   1963     0x55, 0x11, 0x62, 0x52, 0x09, 0x48, 0x53, 0x90,
   1964     0x3c, 0x0b, 0xd4, 0xdc, 0x7b, 0xe3, 0x4c, 0xe3,
   1965     0xa8, 0x6d, 0xc5, 0xdf, 0xc1, 0x5c, 0x59, 0x25,
   1966     0x99, 0x30, 0xde, 0x57, 0x6a, 0x84, 0x25, 0x34,
   1967     0x3e, 0x64, 0x11, 0xdb, 0x7a, 0x82, 0x8e, 0x70,
   1968     0xd2, 0x5c, 0x0e, 0x81, 0xa0, 0x24, 0x53, 0x75,
   1969     0x98, 0xd6, 0x10, 0x01, 0x6a, 0x14, 0xed, 0xc3,
   1970     0x6f, 0xc4, 0x18, 0xb8, 0xd2, 0x9f, 0x59, 0x53,
   1971     0x81, 0x3a, 0x86, 0x31, 0xfc, 0x9e, 0xbf, 0x6c,
   1972     0x52, 0x93, 0x86, 0x9c, 0xaa, 0x6c, 0x6f, 0x07,
   1973     0x8a, 0x40, 0x33, 0x64, 0xb2, 0x70, 0x48, 0x85,
   1974     0x05, 0x59, 0x65, 0x2d, 0x6b, 0x9a, 0xad, 0xab,
   1975     0x20, 0x7e, 0x02, 0x6d, 0xde, 0xcf, 0x22, 0x0b,
   1976     0xea, 0x6e, 0xbd, 0x1c, 0x39, 0x3a, 0xfd, 0xa4,
   1977     0xde, 0x54, 0xae, 0xde, 0x5e, 0xf7, 0xb0, 0x6d,
   1978 };
   1979 
   1980 static const struct rsa_sigver_st rsa_sigver_data[] = {
   1981     {
   1982         "pkcs1", /* pkcs1v1.5 */
   1983         2048,
   1984         "SHA224",
   1985         ITM(rsa_sigver15_0_msg),
   1986         ITM(rsa_sigver15_0_n),
   1987         ITM(rsa_sigver15_0_e),
   1988         ITM(rsa_sigver15_0_sig),
   1989         NO_PSS_SALT_LEN,
   1990         PASS
   1991     },
   1992     {
   1993         "pkcs1", /* pkcs1v1.5 */
   1994         2048,
   1995         "SHA224",
   1996         ITM(rsa_sigver15_1_msg),
   1997         ITM(rsa_sigver15_1_n),
   1998         ITM(rsa_sigver15_1_e),
   1999         ITM(rsa_sigver15_1_sig),
   2000         NO_PSS_SALT_LEN,
   2001         FAIL
   2002     },
   2003     {
   2004         "x931",
   2005         3072,
   2006         "SHA1",
   2007         ITM(rsa_sigverx931_0_msg),
   2008         ITM(rsa_sigverx931_0_n),
   2009         ITM(rsa_sigverx931_0_e),
   2010         ITM(rsa_sigverx931_0_sig),
   2011         NO_PSS_SALT_LEN,
   2012         PASS
   2013     },
   2014     {
   2015         "x931",
   2016         3072,
   2017         "SHA256",
   2018         ITM(rsa_sigverx931_1_msg),
   2019         ITM(rsa_sigverx931_1_n),
   2020         ITM(rsa_sigverx931_1_e),
   2021         ITM(rsa_sigverx931_1_sig),
   2022         NO_PSS_SALT_LEN,
   2023         FAIL
   2024     },
   2025     {
   2026         "pss",
   2027         4096,
   2028         "SHA384",
   2029         ITM(rsa_sigverpss_0_msg),
   2030         ITM(rsa_sigverpss_0_n),
   2031         ITM(rsa_sigverpss_0_e),
   2032         ITM(rsa_sigverpss_0_sig),
   2033         48,
   2034         PASS
   2035     },
   2036     {
   2037         "pss",
   2038         4096,
   2039         "SHA384",
   2040         ITM(rsa_sigverpss_1_msg),
   2041         ITM(rsa_sigverpss_1_n),
   2042         ITM(rsa_sigverpss_1_e),
   2043         ITM(rsa_sigverpss_1_sig),
   2044         48,
   2045         FAIL
   2046     },
   2047 };
   2048 
   2049 struct rsa_decrypt_prim_st {
   2050     const unsigned char *ct;
   2051     size_t ct_len;
   2052 };
   2053 
   2054 static const unsigned char rsa_decrypt_prim_0_ct[] = {
   2055     0x09, 0x7e, 0x82, 0xfe, 0xc7, 0x24, 0x65, 0xe0,
   2056     0x49, 0x2e, 0x78, 0xed, 0xf4, 0x7d, 0x05, 0x0d,
   2057     0xff, 0x2f, 0x1a, 0x95, 0xeb, 0x74, 0x60, 0x3d,
   2058     0xd3, 0x3a, 0xec, 0x8a, 0x2c, 0x8b, 0x00, 0xa5,
   2059     0x75, 0x2c, 0x87, 0x7b, 0xa5, 0x76, 0x08, 0xee,
   2060     0x99, 0xab, 0x5b, 0x21, 0x69, 0x90, 0x72, 0x0d,
   2061     0x55, 0xe4, 0x7d, 0x1d, 0xcb, 0xaa, 0xeb, 0x32,
   2062     0x24, 0xf7, 0xce, 0x95, 0xb5, 0x3e, 0x0e, 0x57,
   2063     0xd4, 0x2a, 0x5b, 0xfc, 0x1f, 0xf7, 0x28, 0x3f,
   2064     0xd6, 0x31, 0x36, 0x92, 0xc5, 0x13, 0xe3, 0x4e,
   2065     0x28, 0x53, 0xbe, 0x60, 0x5f, 0x82, 0x12, 0x7a,
   2066     0x50, 0xe6, 0x91, 0x40, 0xcf, 0x52, 0x3a, 0xd2,
   2067     0x15, 0x20, 0xd5, 0x82, 0x6d, 0x5e, 0xab, 0x47,
   2068     0xd1, 0x2d, 0x00, 0xf5, 0xea, 0xf4, 0x68, 0x88,
   2069     0x38, 0x43, 0xd6, 0xcb, 0xaa, 0xd0, 0xd1, 0x75,
   2070     0xe6, 0x87, 0x5f, 0xd1, 0x89, 0xd3, 0x57, 0x1b,
   2071     0xf2, 0x45, 0x8a, 0x92, 0xe6, 0x95, 0xb8, 0x99,
   2072     0x80, 0xe9, 0xe6, 0x5f, 0x2b, 0x48, 0x2b, 0xb3,
   2073     0x2b, 0x80, 0x56, 0xf8, 0xd4, 0x96, 0x44, 0xb5,
   2074     0xae, 0x6d, 0x4a, 0x3d, 0x7b, 0x0a, 0x54, 0x3c,
   2075     0xa8, 0x21, 0x8b, 0x64, 0x96, 0xea, 0xc2, 0xef,
   2076     0x60, 0xbb, 0xd3, 0x4e, 0xaf, 0x6c, 0x5b, 0x06,
   2077     0x57, 0xe8, 0x5e, 0x2c, 0x87, 0x46, 0x12, 0xeb,
   2078     0xfb, 0xe2, 0xdb, 0x7b, 0xac, 0x09, 0x8b, 0xa0,
   2079     0x98, 0x6e, 0xc6, 0x3f, 0x98, 0xdd, 0x7d, 0xc6,
   2080     0xc6, 0x32, 0xc2, 0xcc, 0x73, 0xe2, 0x15, 0xde,
   2081     0xb2, 0x0f, 0x41, 0x08, 0x1e, 0x2e, 0xba, 0x93,
   2082     0x65, 0x94, 0xab, 0x84, 0x0e, 0x1e, 0xda, 0x1b,
   2083     0xf0, 0xe0, 0x13, 0x13, 0xe2, 0xa5, 0x31, 0xb8,
   2084     0x80, 0xc1, 0x38, 0xc5, 0x08, 0x09, 0x0a, 0xe2,
   2085     0x78, 0x7d, 0xd6, 0xcf, 0x8d, 0x6b, 0xe8, 0x1b,
   2086     0x47, 0x83, 0x80, 0x71, 0xe2, 0xd3, 0x01, 0xbc,
   2087 };
   2088 
   2089 static const unsigned char rsa_decrypt_prim_1_ct[] = {
   2090     0xff, 0xd5, 0xaa, 0x3f, 0x0c, 0x7c, 0x78, 0x7e,
   2091     0xe3, 0x8a, 0x4f, 0xcc, 0x20, 0x3f, 0x51, 0xe5,
   2092     0xf4, 0x9c, 0xc5, 0x62, 0xcc, 0xa3, 0xcb, 0xce,
   2093     0x39, 0x80, 0x35, 0xef, 0xd5, 0x95, 0x56, 0xcb,
   2094     0xb2, 0x62, 0x8c, 0xe6, 0x8b, 0x20, 0xe4, 0x36,
   2095     0xae, 0xe8, 0x07, 0x07, 0xc2, 0x23, 0x6a, 0xfc,
   2096     0x83, 0xf0, 0x04, 0x88, 0x19, 0xf8, 0x9f, 0x5c,
   2097     0x59, 0x4d, 0xb3, 0x81, 0x86, 0x9d, 0x3b, 0x61,
   2098     0x73, 0x31, 0x03, 0xec, 0x9c, 0xdd, 0x75, 0xb7,
   2099     0x37, 0x0a, 0x8d, 0x94, 0xd9, 0x9f, 0x6d, 0x85,
   2100     0xb0, 0x5c, 0x08, 0xcc, 0xb4, 0x27, 0x8c, 0xf0,
   2101     0xe6, 0xd6, 0xe0, 0xc1, 0x57, 0x59, 0xaa, 0xc7,
   2102     0x8f, 0x5c, 0xa7, 0x4b, 0x3c, 0x81, 0x4a, 0xa3,
   2103     0x9b, 0x18, 0x88, 0x04, 0x98, 0x54, 0x3d, 0x87,
   2104     0x2a, 0x89, 0xb6, 0x41, 0xe8, 0xbd, 0x37, 0x17,
   2105     0x03, 0xa8, 0xf1, 0x37, 0xa5, 0x5e, 0x02, 0x13,
   2106     0x67, 0x08, 0xec, 0x9e, 0x97, 0xf5, 0xcc, 0x5f,
   2107     0x75, 0x37, 0xbe, 0xce, 0xe8, 0x5e, 0xa1, 0xca,
   2108     0x46, 0xa3, 0xda, 0xe4, 0x1f, 0xf8, 0xc4, 0xa3,
   2109     0x26, 0xbb, 0xed, 0xa2, 0x71, 0xb2, 0x44, 0x00,
   2110     0xd3, 0xe5, 0x06, 0xf1, 0xb4, 0xc1, 0xe0, 0x29,
   2111     0xca, 0xeb, 0xe0, 0xdf, 0xd1, 0x69, 0x5f, 0xa9,
   2112     0x03, 0x7c, 0x49, 0x93, 0xfb, 0xc2, 0xdf, 0x39,
   2113     0xbc, 0x2a, 0x6b, 0x59, 0x7d, 0xf4, 0x84, 0x93,
   2114     0xa2, 0x8b, 0x7a, 0x5a, 0x7a, 0xa9, 0xff, 0x41,
   2115     0x4c, 0x52, 0x5c, 0xf9, 0x59, 0xd2, 0x91, 0xc3,
   2116     0xa9, 0xe8, 0x23, 0x36, 0x5f, 0x2f, 0xb9, 0xbe,
   2117     0x22, 0xc4, 0xfd, 0x84, 0x5f, 0x81, 0x3d, 0x94,
   2118     0xf8, 0xa4, 0x9b, 0xae, 0xc0, 0xb5, 0x78, 0x4f,
   2119     0x91, 0x76, 0x02, 0x5d, 0x60, 0x71, 0x8b, 0xeb,
   2120     0x08, 0x42, 0xe3, 0xb3, 0x63, 0x05, 0x60, 0x59,
   2121     0x98, 0xc1, 0x6d, 0x66, 0xb3, 0xc5, 0x8a, 0xbc,
   2122 };
   2123 
   2124 static const struct rsa_decrypt_prim_st rsa_decrypt_prim_data[] = {
   2125     {
   2126         ITM(rsa_decrypt_prim_0_ct),
   2127     },
   2128     {
   2129         ITM(rsa_decrypt_prim_1_ct),
   2130     },
   2131 };
   2132 
   2133 struct drbg_st {
   2134     const char *drbg_name;
   2135     const char *cipher;
   2136     int use_df;
   2137 
   2138     const unsigned char *entropy_input;
   2139     size_t entropy_input_len;
   2140     const unsigned char *nonce;
   2141     size_t nonce_len;
   2142     const unsigned char *returned_bits;
   2143     size_t returned_bits_len;
   2144 };
   2145 
   2146 static const unsigned char drbg_entropy_input[] = {
   2147     0x36, 0x40, 0x19, 0x40, 0xfa, 0x8b, 0x1f, 0xba,
   2148     0x91, 0xa1, 0x66, 0x1f, 0x21, 0x1d, 0x78, 0xa0,
   2149     0xb9, 0x38, 0x9a, 0x74, 0xe5, 0xbc, 0xcf, 0xec,
   2150     0xe8, 0xd7, 0x66, 0xaf, 0x1a, 0x6d, 0x3b, 0x14
   2151 };
   2152 
   2153 static const unsigned char drbg_nonce[] = {
   2154     0x49, 0x6f, 0x25, 0xb0, 0xf1, 0x30, 0x1b, 0x4f,
   2155     0x50, 0x1b, 0xe3, 0x03, 0x80, 0xa1, 0x37, 0xeb
   2156 };
   2157 
   2158 static const unsigned char drbg_returned_bits[] = {
   2159     0x58, 0x62, 0xeb, 0x38, 0xbd, 0x55, 0x8d, 0xd9,
   2160     0x78, 0xa6, 0x96, 0xe6, 0xdf, 0x16, 0x47, 0x82,
   2161     0xdd, 0xd8, 0x87, 0xe7, 0xe9, 0xa6, 0xc9, 0xf3,
   2162     0xf1, 0xfb, 0xaf, 0xb7, 0x89, 0x41, 0xb5, 0x35,
   2163     0xa6, 0x49, 0x12, 0xdf, 0xd2, 0x24, 0xc6, 0xdc,
   2164     0x74, 0x54, 0xe5, 0x25, 0x0b, 0x3d, 0x97, 0x16,
   2165     0x5e, 0x16, 0x26, 0x0c, 0x2f, 0xaf, 0x1c, 0xc7,
   2166     0x73, 0x5c, 0xb7, 0x5f, 0xb4, 0xf0, 0x7e, 0x1d
   2167 };
   2168 
   2169 static const unsigned char drbg_key_0[] = {
   2170     0x33, 0x63, 0xd9, 0x00, 0x0e, 0x6d, 0xb4, 0x7c,
   2171     0x16, 0xd3, 0xfc, 0x65, 0xf2, 0x87, 0x2c, 0x08,
   2172     0xa3, 0x5f, 0x99, 0xb2, 0xd1, 0x74, 0xaf, 0xa5,
   2173     0x37, 0xa6, 0x6e, 0xc1, 0x53, 0x05, 0x2d, 0x98
   2174 };
   2175 
   2176 static const struct drbg_st drbg_data[] = {
   2177     {
   2178         "CTR-DRBG",
   2179         "AES-256-CTR",
   2180         1,
   2181         ITM(drbg_entropy_input),
   2182         ITM(drbg_nonce),
   2183         ITM(drbg_returned_bits)
   2184     }
   2185 };
   2186