cryptlib  3.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros
ssh_dhkeys.h
Go to the documentation of this file.
1 /****************************************************************************
2 * *
3 * cryptlib SSHv2 DH Public Parameters *
4 * Copyright Peter Gutmann 1998-2008 *
5 * *
6 ****************************************************************************/
7 
8 #ifndef _SSH_DHKEYS_DEFINED
9 
10 #define _SSH_DHKEYS_DEFINED
11 
12 /* Fixed DH public parameters for use with SSH. The prime is the value
13  2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 } from the Oakley spec
14  (RFC 2412, other locations omit the q value). Unfortunately the choice
15  of q leads to horribly inefficient operations since it's 860 bits larger
16  than it needs to be */
17 
18 static const BYTE FAR_BSS dh1024SPKI[] = {
19  0x30, 0x82, 0x01, 0xA2,
20  0x30, 0x82, 0x01, 0x17,
21  0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3E, 0x02, 0x01,
22  0x30, 0x82, 0x01, 0x0A,
23  0x02, 0x81, 0x81, 0x00, /* p */
24  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
25  0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
26  0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
27  0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
28  0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
29  0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
30  0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
31  0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
32  0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
33  0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
34  0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
35  0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
36  0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
37  0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
38  0x49, 0x28, 0x66, 0x51, 0xEC, 0xE6, 0x53, 0x81,
39  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
40  0x02, 0x01, /* g */
41  0x02,
42  0x02, 0x81, 0x80, /* q */
43  0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
44  0xE4, 0x87, 0xED, 0x51, 0x10, 0xB4, 0x61, 0x1A,
45  0x62, 0x63, 0x31, 0x45, 0xC0, 0x6E, 0x0E, 0x68,
46  0x94, 0x81, 0x27, 0x04, 0x45, 0x33, 0xE6, 0x3A,
47  0x01, 0x05, 0xDF, 0x53, 0x1D, 0x89, 0xCD, 0x91,
48  0x28, 0xA5, 0x04, 0x3C, 0xC7, 0x1A, 0x02, 0x6E,
49  0xF7, 0xCA, 0x8C, 0xD9, 0xE6, 0x9D, 0x21, 0x8D,
50  0x98, 0x15, 0x85, 0x36, 0xF9, 0x2F, 0x8A, 0x1B,
51  0xA7, 0xF0, 0x9A, 0xB6, 0xB6, 0xA8, 0xE1, 0x22,
52  0xF2, 0x42, 0xDA, 0xBB, 0x31, 0x2F, 0x3F, 0x63,
53  0x7A, 0x26, 0x21, 0x74, 0xD3, 0x1B, 0xF6, 0xB5,
54  0x85, 0xFF, 0xAE, 0x5B, 0x7A, 0x03, 0x5B, 0xF6,
55  0xF7, 0x1C, 0x35, 0xFD, 0xAD, 0x44, 0xCF, 0xD2,
56  0xD7, 0x4F, 0x92, 0x08, 0xBE, 0x25, 0x8F, 0xF3,
57  0x24, 0x94, 0x33, 0x28, 0xF6, 0x73, 0x29, 0xC0,
58  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
59  0x03, 0x81, 0x84, 0x00,
60  0x02, 0x81, 0x80, /* y (dummy value for key-read code) */
61  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
62  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
64  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
66  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
67  0x44, 0x6F, 0x65, 0x73, 0x20, 0x79, 0x6F, 0x75,
68  0x72, 0x20, 0x6D, 0x6F, 0x74, 0x68, 0x65, 0x72,
69  0x20, 0x6B, 0x6E, 0x6F, 0x77, 0x20, 0x79, 0x6F,
70  0x75, 0x27, 0x72, 0x65, 0x20, 0x64, 0x6F, 0x69,
71  0x6E, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x3F,
72  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
73  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
74  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
76  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
77  };
78 
79 /* Additional DH values from RFC 3526. The 1536-bit value is widely used
80  in IKE, and has the prime value
81  2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 }. The 2048-bit
82  value has the prime value
83  2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 }, and the 3072-bit
84  value has the prime value
85  2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 }. All have a
86  generator of 2 */
87 
88 static const BYTE FAR_BSS dh1536SSH[] = {
89  0x00, 0x00, 0x00, 0xD8,
90  0x00, 0x00, 0x00, 0x06, /* Algorithm ID */
91  's', 's', 'h', '-', 'd', 'h',
92  0x00, 0x00, 0x00, 0xC1, /* p */
93  0x00,
94  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
95  0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
96  0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
97  0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
98  0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
99  0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
100  0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
101  0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
102  0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
103  0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
104  0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
105  0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
106  0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
107  0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
108  0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
109  0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
110  0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
111  0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
112  0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
113  0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
114  0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
115  0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
116  0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x23, 0x73, 0x27,
117  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
118  0x00, 0x00, 0x00, 0x01, /* g */
119  0x02
120  };
121 
122 static const BYTE FAR_BSS dh2048SSH[] = {
123  0x00, 0x00, 0x01, 0x18,
124  0x00, 0x00, 0x00, 0x06, /* Algorithm ID */
125  's', 's', 'h', '-', 'd', 'h',
126  0x00, 0x00, 0x01, 0x01, /* p */
127  0x00,
128  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
129  0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
130  0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
131  0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
132  0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
133  0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
134  0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
135  0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
136  0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
137  0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
138  0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
139  0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
140  0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
141  0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
142  0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
143  0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
144  0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
145  0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
146  0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
147  0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
148  0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
149  0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
150  0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
151  0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
152  0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
153  0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
154  0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
155  0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
156  0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
157  0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
158  0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68,
159  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
160  0x00, 0x00, 0x00, 0x01, /* g */
161  0x02
162  };
163 
164 static const BYTE FAR_BSS dh3072SSH[] = {
165  0x00, 0x00, 0x01, 0x98,
166  0x00, 0x00, 0x00, 0x06, /* Algorithm ID */
167  's', 's', 'h', '-', 'd', 'h',
168  0x00, 0x00, 0x01, 0x81, /* p */
169  0x00,
170  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
171  0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
172  0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
173  0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
174  0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22,
175  0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
176  0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B,
177  0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37,
178  0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
179  0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6,
180  0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B,
181  0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
182  0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5,
183  0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6,
184  0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
185  0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05,
186  0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A,
187  0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
188  0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96,
189  0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB,
190  0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
191  0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04,
192  0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C,
193  0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
194  0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03,
195  0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F,
196  0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
197  0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18,
198  0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5,
199  0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
200  0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D,
201  0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33,
202  0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
203  0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A,
204  0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D,
205  0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
206  0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7,
207  0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D,
208  0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
209  0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64,
210  0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64,
211  0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
212  0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C,
213  0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2,
214  0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
215  0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E,
216  0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x3A, 0xD2, 0xCA,
217  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
218  0x00, 0x00, 0x00, 0x01, /* g */
219  0x02
220  };
221 
222 #endif /* _SSH_DHKEYS_DEFINED */