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