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