Home | History | Annotate | Line # | Download | only in apps
      1  1.1.1.3  christos /*
      2  1.1.1.5  christos  * Copyright 1998-2021 The OpenSSL Project Authors. All Rights Reserved.
      3  1.1.1.3  christos  *
      4  1.1.1.5  christos  * Licensed under the Apache License 2.0 (the "License").  You may not use
      5  1.1.1.3  christos  * this file except in compliance with the License.  You can obtain a copy
      6  1.1.1.3  christos  * in the file LICENSE in the source distribution or at
      7  1.1.1.3  christos  * https://www.openssl.org/source/license.html
      8  1.1.1.3  christos  */
      9  1.1.1.3  christos 
     10  1.1.1.5  christos #include <openssl/param_build.h>
     11  1.1.1.5  christos 
     12  1.1.1.3  christos /* used by speed.c */
     13  1.1.1.5  christos EVP_PKEY *get_dsa(int);
     14  1.1.1.3  christos 
     15      1.1  christos static unsigned char dsa512_priv[] = {
     16  1.1.1.2       spz     0x65, 0xe5, 0xc7, 0x38, 0x60, 0x24, 0xb5, 0x89, 0xd4, 0x9c, 0xeb, 0x4c,
     17  1.1.1.2       spz     0x9c, 0x1d, 0x7a, 0x22, 0xbd, 0xd1, 0xc2, 0xd2,
     18  1.1.1.2       spz };
     19  1.1.1.2       spz 
     20      1.1  christos static unsigned char dsa512_pub[] = {
     21  1.1.1.2       spz     0x00, 0x95, 0xa7, 0x0d, 0xec, 0x93, 0x68, 0xba, 0x5f, 0xf7, 0x5f, 0x07,
     22  1.1.1.2       spz     0xf2, 0x3b, 0xad, 0x6b, 0x01, 0xdc, 0xbe, 0xec, 0xde, 0x04, 0x7a, 0x3a,
     23  1.1.1.2       spz     0x27, 0xb3, 0xec, 0x49, 0xfd, 0x08, 0x43, 0x3d, 0x7e, 0xa8, 0x2c, 0x5e,
     24  1.1.1.2       spz     0x7b, 0xbb, 0xfc, 0xf4, 0x6e, 0xeb, 0x6c, 0xb0, 0x6e, 0xf8, 0x02, 0x12,
     25  1.1.1.2       spz     0x8c, 0x38, 0x5d, 0x83, 0x56, 0x7d, 0xee, 0x53, 0x05, 0x3e, 0x24, 0x84,
     26  1.1.1.2       spz     0xbe, 0xba, 0x0a, 0x6b, 0xc8,
     27  1.1.1.2       spz };
     28  1.1.1.2       spz 
     29  1.1.1.2       spz static unsigned char dsa512_p[] = {
     30  1.1.1.2       spz     0x9D, 0x1B, 0x69, 0x8E, 0x26, 0xDB, 0xF2, 0x2B, 0x11, 0x70, 0x19, 0x86,
     31  1.1.1.2       spz     0xF6, 0x19, 0xC8, 0xF8, 0x19, 0xF2, 0x18, 0x53, 0x94, 0x46, 0x06, 0xD0,
     32  1.1.1.2       spz     0x62, 0x50, 0x33, 0x4B, 0x02, 0x3C, 0x52, 0x30, 0x03, 0x8B, 0x3B, 0xF9,
     33  1.1.1.2       spz     0x5F, 0xD1, 0x24, 0x06, 0x4F, 0x7B, 0x4C, 0xBA, 0xAA, 0x40, 0x9B, 0xFD,
     34  1.1.1.2       spz     0x96, 0xE4, 0x37, 0x33, 0xBB, 0x2D, 0x5A, 0xD7, 0x5A, 0x11, 0x40, 0x66,
     35  1.1.1.2       spz     0xA2, 0x76, 0x7D, 0x31,
     36  1.1.1.2       spz };
     37  1.1.1.2       spz 
     38  1.1.1.2       spz static unsigned char dsa512_q[] = {
     39  1.1.1.2       spz     0xFB, 0x53, 0xEF, 0x50, 0xB4, 0x40, 0x92, 0x31, 0x56, 0x86, 0x53, 0x7A,
     40  1.1.1.2       spz     0xE8, 0x8B, 0x22, 0x9A, 0x49, 0xFB, 0x71, 0x8F,
     41  1.1.1.2       spz };
     42  1.1.1.2       spz 
     43  1.1.1.2       spz static unsigned char dsa512_g[] = {
     44  1.1.1.2       spz     0x83, 0x3E, 0x88, 0xE5, 0xC5, 0x89, 0x73, 0xCE, 0x3B, 0x6C, 0x01, 0x49,
     45  1.1.1.2       spz     0xBF, 0xB3, 0xC7, 0x9F, 0x0A, 0xEA, 0x44, 0x91, 0xE5, 0x30, 0xAA, 0xD9,
     46  1.1.1.2       spz     0xBE, 0x5B, 0x5F, 0xB7, 0x10, 0xD7, 0x89, 0xB7, 0x8E, 0x74, 0xFB, 0xCF,
     47  1.1.1.2       spz     0x29, 0x1E, 0xEB, 0xA8, 0x2C, 0x54, 0x51, 0xB8, 0x10, 0xDE, 0xA0, 0xCE,
     48  1.1.1.2       spz     0x2F, 0xCC, 0x24, 0x6B, 0x90, 0x77, 0xDE, 0xA2, 0x68, 0xA6, 0x52, 0x12,
     49  1.1.1.2       spz     0xA2, 0x03, 0x9D, 0x20,
     50  1.1.1.2       spz };
     51      1.1  christos 
     52  1.1.1.2       spz static unsigned char dsa1024_priv[] = {
     53  1.1.1.2       spz     0x7d, 0x21, 0xda, 0xbb, 0x62, 0x15, 0x47, 0x36, 0x07, 0x67, 0x12, 0xe8,
     54  1.1.1.2       spz     0x8c, 0xaa, 0x1c, 0xcd, 0x38, 0x12, 0x61, 0x18,
     55  1.1.1.2       spz };
     56  1.1.1.2       spz 
     57  1.1.1.2       spz static unsigned char dsa1024_pub[] = {
     58  1.1.1.2       spz     0x3c, 0x4e, 0x9c, 0x2a, 0x7f, 0x16, 0xc1, 0x25, 0xeb, 0xac, 0x78, 0x63,
     59  1.1.1.2       spz     0x90, 0x14, 0x8c, 0x8b, 0xf4, 0x68, 0x43, 0x3c, 0x2d, 0xee, 0x65, 0x50,
     60  1.1.1.2       spz     0x7d, 0x9c, 0x8f, 0x8c, 0x8a, 0x51, 0xd6, 0x11, 0x2b, 0x99, 0xaf, 0x1e,
     61  1.1.1.2       spz     0x90, 0x97, 0xb5, 0xd3, 0xa6, 0x20, 0x25, 0xd6, 0xfe, 0x43, 0x02, 0xd5,
     62  1.1.1.2       spz     0x91, 0x7d, 0xa7, 0x8c, 0xdb, 0xc9, 0x85, 0xa3, 0x36, 0x48, 0xf7, 0x68,
     63  1.1.1.2       spz     0xaa, 0x60, 0xb1, 0xf7, 0x05, 0x68, 0x3a, 0xa3, 0x3f, 0xd3, 0x19, 0x82,
     64  1.1.1.2       spz     0xd8, 0x82, 0x7a, 0x77, 0xfb, 0xef, 0xf4, 0x15, 0x0a, 0xeb, 0x06, 0x04,
     65  1.1.1.2       spz     0x7f, 0x53, 0x07, 0x0c, 0xbc, 0xcb, 0x2d, 0x83, 0xdb, 0x3e, 0xd1, 0x28,
     66  1.1.1.2       spz     0xa5, 0xa1, 0x31, 0xe0, 0x67, 0xfa, 0x50, 0xde, 0x9b, 0x07, 0x83, 0x7e,
     67  1.1.1.2       spz     0x2c, 0x0b, 0xc3, 0x13, 0x50, 0x61, 0xe5, 0xad, 0xbd, 0x36, 0xb8, 0x97,
     68  1.1.1.2       spz     0x4e, 0x40, 0x7d, 0xe8, 0x83, 0x0d, 0xbc, 0x4b
     69  1.1.1.2       spz };
     70  1.1.1.2       spz 
     71  1.1.1.2       spz static unsigned char dsa1024_p[] = {
     72  1.1.1.2       spz     0xA7, 0x3F, 0x6E, 0x85, 0xBF, 0x41, 0x6A, 0x29, 0x7D, 0xF0, 0x9F, 0x47,
     73  1.1.1.2       spz     0x19, 0x30, 0x90, 0x9A, 0x09, 0x1D, 0xDA, 0x6A, 0x33, 0x1E, 0xC5, 0x3D,
     74  1.1.1.2       spz     0x86, 0x96, 0xB3, 0x15, 0xE0, 0x53, 0x2E, 0x8F, 0xE0, 0x59, 0x82, 0x73,
     75  1.1.1.2       spz     0x90, 0x3E, 0x75, 0x31, 0x99, 0x47, 0x7A, 0x52, 0xFB, 0x85, 0xE4, 0xD9,
     76  1.1.1.2       spz     0xA6, 0x7B, 0x38, 0x9B, 0x68, 0x8A, 0x84, 0x9B, 0x87, 0xC6, 0x1E, 0xB5,
     77  1.1.1.2       spz     0x7E, 0x86, 0x4B, 0x53, 0x5B, 0x59, 0xCF, 0x71, 0x65, 0x19, 0x88, 0x6E,
     78  1.1.1.2       spz     0xCE, 0x66, 0xAE, 0x6B, 0x88, 0x36, 0xFB, 0xEC, 0x28, 0xDC, 0xC2, 0xD7,
     79  1.1.1.2       spz     0xA5, 0xBB, 0xE5, 0x2C, 0x39, 0x26, 0x4B, 0xDA, 0x9A, 0x70, 0x18, 0x95,
     80  1.1.1.2       spz     0x37, 0x95, 0x10, 0x56, 0x23, 0xF6, 0x15, 0xED, 0xBA, 0x04, 0x5E, 0xDE,
     81  1.1.1.2       spz     0x39, 0x4F, 0xFD, 0xB7, 0x43, 0x1F, 0xB5, 0xA4, 0x65, 0x6F, 0xCD, 0x80,
     82  1.1.1.2       spz     0x11, 0xE4, 0x70, 0x95, 0x5B, 0x50, 0xCD, 0x49,
     83  1.1.1.2       spz };
     84  1.1.1.2       spz 
     85  1.1.1.2       spz static unsigned char dsa1024_q[] = {
     86  1.1.1.2       spz     0xF7, 0x07, 0x31, 0xED, 0xFA, 0x6C, 0x06, 0x03, 0xD5, 0x85, 0x8A, 0x1C,
     87  1.1.1.2       spz     0xAC, 0x9C, 0x65, 0xE7, 0x50, 0x66, 0x65, 0x6F,
     88  1.1.1.2       spz };
     89  1.1.1.2       spz 
     90  1.1.1.2       spz static unsigned char dsa1024_g[] = {
     91  1.1.1.2       spz     0x4D, 0xDF, 0x4C, 0x03, 0xA6, 0x91, 0x8A, 0xF5, 0x19, 0x6F, 0x50, 0x46,
     92  1.1.1.2       spz     0x25, 0x99, 0xE5, 0x68, 0x6F, 0x30, 0xE3, 0x69, 0xE1, 0xE5, 0xB3, 0x5D,
     93  1.1.1.2       spz     0x98, 0xBB, 0x28, 0x86, 0x48, 0xFC, 0xDE, 0x99, 0x04, 0x3F, 0x5F, 0x88,
     94  1.1.1.2       spz     0x0C, 0x9C, 0x73, 0x24, 0x0D, 0x20, 0x5D, 0xB9, 0x2A, 0x9A, 0x3F, 0x18,
     95  1.1.1.2       spz     0x96, 0x27, 0xE4, 0x62, 0x87, 0xC1, 0x7B, 0x74, 0x62, 0x53, 0xFC, 0x61,
     96  1.1.1.2       spz     0x27, 0xA8, 0x7A, 0x91, 0x09, 0x9D, 0xB6, 0xF1, 0x4D, 0x9C, 0x54, 0x0F,
     97  1.1.1.2       spz     0x58, 0x06, 0xEE, 0x49, 0x74, 0x07, 0xCE, 0x55, 0x7E, 0x23, 0xCE, 0x16,
     98  1.1.1.2       spz     0xF6, 0xCA, 0xDC, 0x5A, 0x61, 0x01, 0x7E, 0xC9, 0x71, 0xB5, 0x4D, 0xF6,
     99  1.1.1.2       spz     0xDC, 0x34, 0x29, 0x87, 0x68, 0xF6, 0x5E, 0x20, 0x93, 0xB3, 0xDB, 0xF5,
    100  1.1.1.2       spz     0xE4, 0x09, 0x6C, 0x41, 0x17, 0x95, 0x92, 0xEB, 0x01, 0xB5, 0x73, 0xA5,
    101  1.1.1.2       spz     0x6A, 0x7E, 0xD8, 0x32, 0xED, 0x0E, 0x02, 0xB8,
    102  1.1.1.2       spz };
    103      1.1  christos 
    104  1.1.1.2       spz static unsigned char dsa2048_priv[] = {
    105  1.1.1.2       spz     0x32, 0x67, 0x92, 0xf6, 0xc4, 0xe2, 0xe2, 0xe8, 0xa0, 0x8b, 0x6b, 0x45,
    106  1.1.1.2       spz     0x0c, 0x8a, 0x76, 0xb0, 0xee, 0xcf, 0x91, 0xa7,
    107  1.1.1.2       spz };
    108  1.1.1.2       spz 
    109  1.1.1.2       spz static unsigned char dsa2048_pub[] = {
    110  1.1.1.2       spz     0x17, 0x8f, 0xa8, 0x11, 0x84, 0x92, 0xec, 0x83, 0x47, 0xc7, 0x6a, 0xb0,
    111  1.1.1.2       spz     0x92, 0xaf, 0x5a, 0x20, 0x37, 0xa3, 0x64, 0x79, 0xd2, 0xd0, 0x3d, 0xcd,
    112  1.1.1.2       spz     0xe0, 0x61, 0x88, 0x88, 0x21, 0xcc, 0x74, 0x5d, 0xce, 0x4c, 0x51, 0x47,
    113  1.1.1.2       spz     0xf0, 0xc5, 0x5c, 0x4c, 0x82, 0x7a, 0xaf, 0x72, 0xad, 0xb9, 0xe0, 0x53,
    114  1.1.1.2       spz     0xf2, 0x78, 0xb7, 0xf0, 0xb5, 0x48, 0x7f, 0x8a, 0x3a, 0x18, 0xd1, 0x9f,
    115  1.1.1.2       spz     0x8b, 0x7d, 0xa5, 0x47, 0xb7, 0x95, 0xab, 0x98, 0xf8, 0x7b, 0x74, 0x50,
    116  1.1.1.2       spz     0x56, 0x8e, 0x57, 0xf0, 0xee, 0xf5, 0xb7, 0xba, 0xab, 0x85, 0x86, 0xf9,
    117  1.1.1.2       spz     0x2b, 0xef, 0x41, 0x56, 0xa0, 0xa4, 0x9f, 0xb7, 0x38, 0x00, 0x46, 0x0a,
    118  1.1.1.2       spz     0xa6, 0xf1, 0xfc, 0x1f, 0xd8, 0x4e, 0x85, 0x44, 0x92, 0x43, 0x21, 0x5d,
    119  1.1.1.2       spz     0x6e, 0xcc, 0xc2, 0xcb, 0x26, 0x31, 0x0d, 0x21, 0xc4, 0xbd, 0x8d, 0x24,
    120  1.1.1.2       spz     0xbc, 0xd9, 0x18, 0x19, 0xd7, 0xdc, 0xf1, 0xe7, 0x93, 0x50, 0x48, 0x03,
    121  1.1.1.2       spz     0x2c, 0xae, 0x2e, 0xe7, 0x49, 0x88, 0x5f, 0x93, 0x57, 0x27, 0x99, 0x36,
    122  1.1.1.2       spz     0xb4, 0x20, 0xab, 0xfc, 0xa7, 0x2b, 0xf2, 0xd9, 0x98, 0xd7, 0xd4, 0x34,
    123  1.1.1.2       spz     0x9d, 0x96, 0x50, 0x58, 0x9a, 0xea, 0x54, 0xf3, 0xee, 0xf5, 0x63, 0x14,
    124  1.1.1.2       spz     0xee, 0x85, 0x83, 0x74, 0x76, 0xe1, 0x52, 0x95, 0xc3, 0xf7, 0xeb, 0x04,
    125  1.1.1.2       spz     0x04, 0x7b, 0xa7, 0x28, 0x1b, 0xcc, 0xea, 0x4a, 0x4e, 0x84, 0xda, 0xd8,
    126  1.1.1.2       spz     0x9c, 0x79, 0xd8, 0x9b, 0x66, 0x89, 0x2f, 0xcf, 0xac, 0xd7, 0x79, 0xf9,
    127  1.1.1.2       spz     0xa9, 0xd8, 0x45, 0x13, 0x78, 0xb9, 0x00, 0x14, 0xc9, 0x7e, 0x22, 0x51,
    128  1.1.1.2       spz     0x86, 0x67, 0xb0, 0x9f, 0x26, 0x11, 0x23, 0xc8, 0x38, 0xd7, 0x70, 0x1d,
    129  1.1.1.2       spz     0x15, 0x8e, 0x4d, 0x4f, 0x95, 0x97, 0x40, 0xa1, 0xc2, 0x7e, 0x01, 0x18,
    130  1.1.1.2       spz     0x72, 0xf4, 0x10, 0xe6, 0x8d, 0x52, 0x16, 0x7f, 0xf2, 0xc9, 0xf8, 0x33,
    131  1.1.1.2       spz     0x8b, 0x33, 0xb7, 0xce,
    132  1.1.1.2       spz };
    133  1.1.1.2       spz 
    134  1.1.1.2       spz static unsigned char dsa2048_p[] = {
    135  1.1.1.2       spz     0xA0, 0x25, 0xFA, 0xAD, 0xF4, 0x8E, 0xB9, 0xE5, 0x99, 0xF3, 0x5D, 0x6F,
    136  1.1.1.2       spz     0x4F, 0x83, 0x34, 0xE2, 0x7E, 0xCF, 0x6F, 0xBF, 0x30, 0xAF, 0x6F, 0x81,
    137  1.1.1.2       spz     0xEB, 0xF8, 0xC4, 0x13, 0xD9, 0xA0, 0x5D, 0x8B, 0x5C, 0x8E, 0xDC, 0xC2,
    138  1.1.1.2       spz     0x1D, 0x0B, 0x41, 0x32, 0xB0, 0x1F, 0xFE, 0xEF, 0x0C, 0xC2, 0xA2, 0x7E,
    139  1.1.1.2       spz     0x68, 0x5C, 0x28, 0x21, 0xE9, 0xF5, 0xB1, 0x58, 0x12, 0x63, 0x4C, 0x19,
    140  1.1.1.2       spz     0x4E, 0xFF, 0x02, 0x4B, 0x92, 0xED, 0xD2, 0x07, 0x11, 0x4D, 0x8C, 0x58,
    141  1.1.1.2       spz     0x16, 0x5C, 0x55, 0x8E, 0xAD, 0xA3, 0x67, 0x7D, 0xB9, 0x86, 0x6E, 0x0B,
    142  1.1.1.2       spz     0xE6, 0x54, 0x6F, 0x40, 0xAE, 0x0E, 0x67, 0x4C, 0xF9, 0x12, 0x5B, 0x3C,
    143  1.1.1.2       spz     0x08, 0x7A, 0xF7, 0xFC, 0x67, 0x86, 0x69, 0xE7, 0x0A, 0x94, 0x40, 0xBF,
    144  1.1.1.2       spz     0x8B, 0x76, 0xFE, 0x26, 0xD1, 0xF2, 0xA1, 0x1A, 0x84, 0xA1, 0x43, 0x56,
    145  1.1.1.2       spz     0x28, 0xBC, 0x9A, 0x5F, 0xD7, 0x3B, 0x69, 0x89, 0x8A, 0x36, 0x2C, 0x51,
    146  1.1.1.2       spz     0xDF, 0x12, 0x77, 0x2F, 0x57, 0x7B, 0xA0, 0xAA, 0xDD, 0x7F, 0xA1, 0x62,
    147  1.1.1.2       spz     0x3B, 0x40, 0x7B, 0x68, 0x1A, 0x8F, 0x0D, 0x38, 0xBB, 0x21, 0x5D, 0x18,
    148  1.1.1.2       spz     0xFC, 0x0F, 0x46, 0xF7, 0xA3, 0xB0, 0x1D, 0x23, 0xC3, 0xD2, 0xC7, 0x72,
    149  1.1.1.2       spz     0x51, 0x18, 0xDF, 0x46, 0x95, 0x79, 0xD9, 0xBD, 0xB5, 0x19, 0x02, 0x2C,
    150  1.1.1.2       spz     0x87, 0xDC, 0xE7, 0x57, 0x82, 0x7E, 0xF1, 0x8B, 0x06, 0x3D, 0x00, 0xA5,
    151  1.1.1.2       spz     0x7B, 0x6B, 0x26, 0x27, 0x91, 0x0F, 0x6A, 0x77, 0xE4, 0xD5, 0x04, 0xE4,
    152  1.1.1.2       spz     0x12, 0x2C, 0x42, 0xFF, 0xD2, 0x88, 0xBB, 0xD3, 0x92, 0xA0, 0xF9, 0xC8,
    153  1.1.1.2       spz     0x51, 0x64, 0x14, 0x5C, 0xD8, 0xF9, 0x6C, 0x47, 0x82, 0xB4, 0x1C, 0x7F,
    154  1.1.1.2       spz     0x09, 0xB8, 0xF0, 0x25, 0x83, 0x1D, 0x3F, 0x3F, 0x05, 0xB3, 0x21, 0x0A,
    155  1.1.1.2       spz     0x5D, 0xA7, 0xD8, 0x54, 0xC3, 0x65, 0x7D, 0xC3, 0xB0, 0x1D, 0xBF, 0xAE,
    156  1.1.1.2       spz     0xF8, 0x68, 0xCF, 0x9B,
    157  1.1.1.2       spz };
    158  1.1.1.2       spz 
    159  1.1.1.2       spz static unsigned char dsa2048_q[] = {
    160  1.1.1.2       spz     0x97, 0xE7, 0x33, 0x4D, 0xD3, 0x94, 0x3E, 0x0B, 0xDB, 0x62, 0x74, 0xC6,
    161  1.1.1.2       spz     0xA1, 0x08, 0xDD, 0x19, 0xA3, 0x75, 0x17, 0x1B,
    162  1.1.1.2       spz };
    163  1.1.1.2       spz 
    164  1.1.1.2       spz static unsigned char dsa2048_g[] = {
    165  1.1.1.2       spz     0x2C, 0x78, 0x16, 0x59, 0x34, 0x63, 0xF4, 0xF3, 0x92, 0xFC, 0xB5, 0xA5,
    166  1.1.1.2       spz     0x4F, 0x13, 0xDE, 0x2F, 0x1C, 0xA4, 0x3C, 0xAE, 0xAD, 0x38, 0x3F, 0x7E,
    167  1.1.1.2       spz     0x90, 0xBF, 0x96, 0xA6, 0xAE, 0x25, 0x90, 0x72, 0xF5, 0x8E, 0x80, 0x0C,
    168  1.1.1.2       spz     0x39, 0x1C, 0xD9, 0xEC, 0xBA, 0x90, 0x5B, 0x3A, 0xE8, 0x58, 0x6C, 0x9E,
    169  1.1.1.2       spz     0x30, 0x42, 0x37, 0x02, 0x31, 0x82, 0xBC, 0x6A, 0xDF, 0x6A, 0x09, 0x29,
    170  1.1.1.2       spz     0xE3, 0xC0, 0x46, 0xD1, 0xCB, 0x85, 0xEC, 0x0C, 0x30, 0x5E, 0xEA, 0xC8,
    171  1.1.1.2       spz     0x39, 0x8E, 0x22, 0x9F, 0x22, 0x10, 0xD2, 0x34, 0x61, 0x68, 0x37, 0x3D,
    172  1.1.1.2       spz     0x2E, 0x4A, 0x5B, 0x9A, 0xF5, 0xC1, 0x48, 0xC6, 0xF6, 0xDC, 0x63, 0x1A,
    173  1.1.1.2       spz     0xD3, 0x96, 0x64, 0xBA, 0x34, 0xC9, 0xD1, 0xA0, 0xD1, 0xAE, 0x6C, 0x2F,
    174  1.1.1.2       spz     0x48, 0x17, 0x93, 0x14, 0x43, 0xED, 0xF0, 0x21, 0x30, 0x19, 0xC3, 0x1B,
    175  1.1.1.2       spz     0x5F, 0xDE, 0xA3, 0xF0, 0x70, 0x78, 0x18, 0xE1, 0xA8, 0xE4, 0xEE, 0x2E,
    176  1.1.1.2       spz     0x00, 0xA5, 0xE4, 0xB3, 0x17, 0xC8, 0x0C, 0x7D, 0x6E, 0x42, 0xDC, 0xB7,
    177  1.1.1.2       spz     0x46, 0x00, 0x36, 0x4D, 0xD4, 0x46, 0xAA, 0x3D, 0x3C, 0x46, 0x89, 0x40,
    178  1.1.1.2       spz     0xBF, 0x1D, 0x84, 0x77, 0x0A, 0x75, 0xF3, 0x87, 0x1D, 0x08, 0x4C, 0xA6,
    179  1.1.1.2       spz     0xD1, 0xA9, 0x1C, 0x1E, 0x12, 0x1E, 0xE1, 0xC7, 0x30, 0x28, 0x76, 0xA5,
    180  1.1.1.2       spz     0x7F, 0x6C, 0x85, 0x96, 0x2B, 0x6F, 0xDB, 0x80, 0x66, 0x26, 0xAE, 0xF5,
    181  1.1.1.2       spz     0x93, 0xC7, 0x8E, 0xAE, 0x9A, 0xED, 0xE4, 0xCA, 0x04, 0xEA, 0x3B, 0x72,
    182  1.1.1.2       spz     0xEF, 0xDC, 0x87, 0xED, 0x0D, 0xA5, 0x4C, 0x4A, 0xDD, 0x71, 0x22, 0x64,
    183  1.1.1.2       spz     0x59, 0x69, 0x4E, 0x8E, 0xBF, 0x43, 0xDC, 0xAB, 0x8E, 0x66, 0xBB, 0x01,
    184  1.1.1.2       spz     0xB6, 0xF4, 0xE7, 0xFD, 0xD2, 0xAD, 0x9F, 0x36, 0xC1, 0xA0, 0x29, 0x99,
    185  1.1.1.2       spz     0xD1, 0x96, 0x70, 0x59, 0x06, 0x78, 0x35, 0xBD, 0x65, 0x55, 0x52, 0x9E,
    186  1.1.1.2       spz     0xF8, 0xB2, 0xE5, 0x38,
    187  1.1.1.2       spz };
    188      1.1  christos 
    189  1.1.1.4  christos typedef struct testdsa_st {
    190  1.1.1.4  christos     unsigned char *priv;
    191  1.1.1.4  christos     unsigned char *pub;
    192  1.1.1.4  christos     unsigned char *p;
    193  1.1.1.4  christos     unsigned char *g;
    194  1.1.1.4  christos     unsigned char *q;
    195  1.1.1.4  christos     int priv_l;
    196  1.1.1.4  christos     int pub_l;
    197  1.1.1.4  christos     int p_l;
    198  1.1.1.4  christos     int g_l;
    199  1.1.1.4  christos     int q_l;
    200  1.1.1.4  christos } testdsa;
    201  1.1.1.4  christos 
    202  1.1.1.4  christos #define set_dsa_ptr(st, bits) \
    203  1.1.1.4  christos     do { \
    204  1.1.1.4  christos         st.priv = dsa##bits##_priv; \
    205  1.1.1.4  christos         st.pub = dsa##bits##_pub; \
    206  1.1.1.4  christos         st.p = dsa##bits##_p; \
    207  1.1.1.4  christos         st.g = dsa##bits##_g; \
    208  1.1.1.4  christos         st.q = dsa##bits##_q; \
    209  1.1.1.4  christos         st.priv_l = sizeof(dsa##bits##_priv); \
    210  1.1.1.4  christos         st.pub_l = sizeof(dsa##bits##_pub); \
    211  1.1.1.4  christos         st.p_l = sizeof(dsa##bits##_p); \
    212  1.1.1.4  christos         st.g_l = sizeof(dsa##bits##_g); \
    213  1.1.1.4  christos         st.q_l = sizeof(dsa##bits##_q); \
    214  1.1.1.4  christos     } while (0)
    215  1.1.1.4  christos 
    216  1.1.1.5  christos EVP_PKEY *get_dsa(int dsa_bits)
    217  1.1.1.2       spz {
    218  1.1.1.5  christos     EVP_PKEY *pkey = NULL;
    219  1.1.1.3  christos     BIGNUM *priv_key, *pub_key, *p, *q, *g;
    220  1.1.1.5  christos     EVP_PKEY_CTX *pctx;
    221  1.1.1.4  christos     testdsa dsa_t;
    222  1.1.1.5  christos     OSSL_PARAM_BLD *tmpl = NULL;
    223  1.1.1.5  christos     OSSL_PARAM *params = NULL;
    224  1.1.1.4  christos 
    225  1.1.1.4  christos     switch (dsa_bits) {
    226  1.1.1.4  christos     case 512:
    227  1.1.1.4  christos         set_dsa_ptr(dsa_t, 512);
    228  1.1.1.4  christos         break;
    229  1.1.1.4  christos     case 1024:
    230  1.1.1.4  christos         set_dsa_ptr(dsa_t, 1024);
    231  1.1.1.4  christos         break;
    232  1.1.1.4  christos     case 2048:
    233  1.1.1.4  christos         set_dsa_ptr(dsa_t, 2048);
    234  1.1.1.4  christos         break;
    235  1.1.1.4  christos     default:
    236  1.1.1.4  christos         return NULL;
    237  1.1.1.4  christos     }
    238  1.1.1.2       spz 
    239  1.1.1.5  christos     if ((pctx = EVP_PKEY_CTX_new_from_name(NULL, "DSA", NULL)) == NULL)
    240  1.1.1.4  christos         return NULL;
    241  1.1.1.5  christos 
    242  1.1.1.4  christos     priv_key = BN_bin2bn(dsa_t.priv, dsa_t.priv_l, NULL);
    243  1.1.1.4  christos     pub_key = BN_bin2bn(dsa_t.pub, dsa_t.pub_l, NULL);
    244  1.1.1.4  christos     p = BN_bin2bn(dsa_t.p, dsa_t.p_l, NULL);
    245  1.1.1.4  christos     q = BN_bin2bn(dsa_t.q, dsa_t.q_l, NULL);
    246  1.1.1.4  christos     g = BN_bin2bn(dsa_t.g, dsa_t.g_l, NULL);
    247  1.1.1.5  christos     if (priv_key == NULL || pub_key == NULL || p == NULL || q == NULL
    248  1.1.1.5  christos         || g == NULL) {
    249  1.1.1.3  christos         goto err;
    250  1.1.1.3  christos     }
    251  1.1.1.5  christos     if ((tmpl = OSSL_PARAM_BLD_new()) == NULL
    252  1.1.1.5  christos         || !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_P,
    253  1.1.1.5  christos                                    p)
    254  1.1.1.5  christos         || !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_Q,
    255  1.1.1.5  christos                                    q)
    256  1.1.1.5  christos         || !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_G,
    257  1.1.1.5  christos                                    g)
    258  1.1.1.5  christos         || !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_PRIV_KEY,
    259  1.1.1.5  christos                                    priv_key)
    260  1.1.1.5  christos         || !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_PUB_KEY,
    261  1.1.1.5  christos                                    pub_key)
    262  1.1.1.5  christos         || (params = OSSL_PARAM_BLD_to_param(tmpl)) == NULL)
    263  1.1.1.3  christos         goto err;
    264  1.1.1.3  christos 
    265  1.1.1.5  christos     if (EVP_PKEY_fromdata_init(pctx) <= 0
    266  1.1.1.5  christos         || EVP_PKEY_fromdata(pctx, &pkey, EVP_PKEY_KEYPAIR,
    267  1.1.1.5  christos                              params) <= 0)
    268  1.1.1.5  christos         pkey = NULL;
    269  1.1.1.5  christos err:
    270  1.1.1.5  christos     OSSL_PARAM_free(params);
    271  1.1.1.5  christos     OSSL_PARAM_BLD_free(tmpl);
    272  1.1.1.3  christos     BN_free(priv_key);
    273  1.1.1.3  christos     BN_free(pub_key);
    274  1.1.1.3  christos     BN_free(p);
    275  1.1.1.3  christos     BN_free(q);
    276  1.1.1.3  christos     BN_free(g);
    277  1.1.1.5  christos     EVP_PKEY_CTX_free(pctx);
    278  1.1.1.5  christos     return pkey;
    279  1.1.1.2       spz }
    280