Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Side by Side Diff: crypto/p224_unittest.cc

Issue 8431007: crypto: add simple P224 implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« crypto/p224.h ('K') | « crypto/p224.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <string.h>
6 #include <stdio.h>
7
8 #include "crypto/p224.h"
9
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 using namespace crypto;
13 using p224::Point;
14
15 // kBasePointExternal is the P224 base point in external representation.
16 static const uint8 kBasePointExternal[56] = {
17 0xb7, 0x0e, 0x0c, 0xbd, 0x6b, 0xb4, 0xbf, 0x7f,
18 0x32, 0x13, 0x90, 0xb9, 0x4a, 0x03, 0xc1, 0xd3,
19 0x56, 0xc2, 0x11, 0x22, 0x34, 0x32, 0x80, 0xd6,
20 0x11, 0x5c, 0x1d, 0x21, 0xbd, 0x37, 0x63, 0x88,
21 0xb5, 0xf7, 0x23, 0xfb, 0x4c, 0x22, 0xdf, 0xe6,
22 0xcd, 0x43, 0x75, 0xa0, 0x5a, 0x07, 0x47, 0x64,
23 0x44, 0xd5, 0x81, 0x99, 0x85, 0x00, 0x7e, 0x34,
24 };
25
26 // TestVector represents a test of scalar multiplication of the base point.
27 // |scalar| is a big-endian scalar and |affine| is the external representation
28 // of g*scalar.
29 struct TestVector {
30 uint8 scalar[28];
31 uint8 affine[28*2];
32 };
33
34 static const int kNumNISTTestVectors = 52;
35
36 // kNISTTestVectors are the NIST test vectors for P224.
37 static const TestVector kNISTTestVectors[kNumNISTTestVectors] = {
38 {
39 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
42 0x00, 0x00, 0x00, 0x01},
43 {0xb7, 0x0e, 0x0c, 0xbd, 0x6b, 0xb4, 0xbf, 0x7f,
44 0x32, 0x13, 0x90, 0xb9, 0x4a, 0x03, 0xc1, 0xd3,
45 0x56, 0xc2, 0x11, 0x22, 0x34, 0x32, 0x80, 0xd6,
46 0x11, 0x5c, 0x1d, 0x21, 0xbd, 0x37, 0x63, 0x88,
47 0xb5, 0xf7, 0x23, 0xfb, 0x4c, 0x22, 0xdf, 0xe6,
48 0xcd, 0x43, 0x75, 0xa0, 0x5a, 0x07, 0x47, 0x64,
49 0x44, 0xd5, 0x81, 0x99, 0x85, 0x00, 0x7e, 0x34
50 },
51 },
52 {
53 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
55 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56 0x00, 0x00, 0x00, 0x02, },
57
58 {0x70, 0x6a, 0x46, 0xdc, 0x76, 0xdc, 0xb7, 0x67,
59 0x98, 0xe6, 0x0e, 0x6d, 0x89, 0x47, 0x47, 0x88,
60 0xd1, 0x6d, 0xc1, 0x80, 0x32, 0xd2, 0x68, 0xfd,
61 0x1a, 0x70, 0x4f, 0xa6, 0x1c, 0x2b, 0x76, 0xa7,
62 0xbc, 0x25, 0xe7, 0x70, 0x2a, 0x70, 0x4f, 0xa9,
63 0x86, 0x89, 0x28, 0x49, 0xfc, 0xa6, 0x29, 0x48,
64 0x7a, 0xcf, 0x37, 0x09, 0xd2, 0xe4, 0xe8, 0xbb,
65 },
66 },
67 {
68 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
71 0x00, 0x00, 0x00, 0x03, },
72 {0xdf, 0x1b, 0x1d, 0x66, 0xa5, 0x51, 0xd0, 0xd3,
73 0x1e, 0xff, 0x82, 0x25, 0x58, 0xb9, 0xd2, 0xcc,
74 0x75, 0xc2, 0x18, 0x02, 0x79, 0xfe, 0x0d, 0x08,
75 0xfd, 0x89, 0x6d, 0x04, 0xa3, 0xf7, 0xf0, 0x3c,
76 0xad, 0xd0, 0xbe, 0x44, 0x4c, 0x0a, 0xa5, 0x68,
77 0x30, 0x13, 0x0d, 0xdf, 0x77, 0xd3, 0x17, 0x34,
78 0x4e, 0x1a, 0xf3, 0x59, 0x19, 0x81, 0xa9, 0x25,
79 },
80 },
81 {
82 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
83 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85 0x00, 0x00, 0x00, 0x04, },
86 {0xae, 0x99, 0xfe, 0xeb, 0xb5, 0xd2, 0x69, 0x45,
87 0xb5, 0x48, 0x92, 0x09, 0x2a, 0x8a, 0xee, 0x02,
88 0x91, 0x29, 0x30, 0xfa, 0x41, 0xcd, 0x11, 0x4e,
89 0x40, 0x44, 0x73, 0x01, 0x04, 0x82, 0x58, 0x0a,
90 0x0e, 0xc5, 0xbc, 0x47, 0xe8, 0x8b, 0xc8, 0xc3,
91 0x78, 0x63, 0x2c, 0xd1, 0x96, 0xcb, 0x3f, 0xa0,
92 0x58, 0xa7, 0x11, 0x4e, 0xb0, 0x30, 0x54, 0xc9,
93 },
94 },
95 {
96 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
97 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
98 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
99 0x00, 0x00, 0x00, 0x05, },
100 {0x31, 0xc4, 0x9a, 0xe7, 0x5b, 0xce, 0x78, 0x07,
101 0xcd, 0xff, 0x22, 0x05, 0x5d, 0x94, 0xee, 0x90,
102 0x21, 0xfe, 0xdb, 0xb5, 0xab, 0x51, 0xc5, 0x75,
103 0x26, 0xf0, 0x11, 0xaa, 0x27, 0xe8, 0xbf, 0xf1,
104 0x74, 0x56, 0x35, 0xec, 0x5b, 0xa0, 0xc9, 0xf1,
105 0xc2, 0xed, 0xe1, 0x54, 0x14, 0xc6, 0x50, 0x7d,
106 0x29, 0xff, 0xe3, 0x7e, 0x79, 0x0a, 0x07, 0x9b,
107 },
108 },
109 {
110 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
111 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
112 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
113 0x00, 0x00, 0x00, 0x06, },
114 {0x1f, 0x24, 0x83, 0xf8, 0x25, 0x72, 0x25, 0x1f,
115 0xca, 0x97, 0x5f, 0xea, 0x40, 0xdb, 0x82, 0x1d,
116 0xf8, 0xad, 0x82, 0xa3, 0xc0, 0x02, 0xee, 0x6c,
117 0x57, 0x11, 0x24, 0x08, 0x89, 0xfa, 0xf0, 0xcc,
118 0xb7, 0x50, 0xd9, 0x9b, 0x55, 0x3c, 0x57, 0x4f,
119 0xad, 0x7e, 0xcf, 0xb0, 0x43, 0x85, 0x86, 0xeb,
120 0x39, 0x52, 0xaf, 0x5b, 0x4b, 0x15, 0x3c, 0x7e,
121 },
122 },
123 {
124 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
125 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
126 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
127 0x00, 0x00, 0x00, 0x07, },
128 {0xdb, 0x2f, 0x6b, 0xe6, 0x30, 0xe2, 0x46, 0xa5,
129 0xcf, 0x7d, 0x99, 0xb8, 0x51, 0x94, 0xb1, 0x23,
130 0xd4, 0x87, 0xe2, 0xd4, 0x66, 0xb9, 0x4b, 0x24,
131 0xa0, 0x3c, 0x3e, 0x28, 0x0f, 0x3a, 0x30, 0x08,
132 0x54, 0x97, 0xf2, 0xf6, 0x11, 0xee, 0x25, 0x17,
133 0xb1, 0x63, 0xef, 0x8c, 0x53, 0xb7, 0x15, 0xd1,
134 0x8b, 0xb4, 0xe4, 0x80, 0x8d, 0x02, 0xb9, 0x63,
135 },
136 },
137 {
138 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
139 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
141 0x00, 0x00, 0x00, 0x08, },
142 {0x85, 0x8e, 0x6f, 0x9c, 0xc6, 0xc1, 0x2c, 0x31,
143 0xf5, 0xdf, 0x12, 0x4a, 0xa7, 0x77, 0x67, 0xb0,
144 0x5c, 0x8b, 0xc0, 0x21, 0xbd, 0x68, 0x3d, 0x2b,
145 0x55, 0x57, 0x15, 0x50, 0x04, 0x6d, 0xcd, 0x3e,
146 0xa5, 0xc4, 0x38, 0x98, 0xc5, 0xc5, 0xfc, 0x4f,
147 0xda, 0xc7, 0xdb, 0x39, 0xc2, 0xf0, 0x2e, 0xbe,
148 0xe4, 0xe3, 0x54, 0x1d, 0x1e, 0x78, 0x04, 0x7a,
149 },
150 },
151 {
152 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
153 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
154 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
155 0x00, 0x00, 0x00, 0x09, },
156 {0x2f, 0xdc, 0xcc, 0xfe, 0xe7, 0x20, 0xa7, 0x7e,
157 0xf6, 0xcb, 0x3b, 0xfb, 0xb4, 0x47, 0xf9, 0x38,
158 0x31, 0x17, 0xe3, 0xda, 0xa4, 0xa0, 0x7e, 0x36,
159 0xed, 0x15, 0xf7, 0x8d, 0x37, 0x17, 0x32, 0xe4,
160 0xf4, 0x1b, 0xf4, 0xf7, 0x88, 0x30, 0x35, 0xe6,
161 0xa7, 0x9f, 0xce, 0xdc, 0x0e, 0x19, 0x6e, 0xb0,
162 0x7b, 0x48, 0x17, 0x16, 0x97, 0x51, 0x74, 0x63,
163 },
164 },
165 {
166 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
168 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169 0x00, 0x00, 0x00, 0x0a, },
170 {0xae, 0xa9, 0xe1, 0x7a, 0x30, 0x65, 0x17, 0xeb,
171 0x89, 0x15, 0x2a, 0xa7, 0x09, 0x6d, 0x2c, 0x38,
172 0x1e, 0xc8, 0x13, 0xc5, 0x1a, 0xa8, 0x80, 0xe7,
173 0xbe, 0xe2, 0xc0, 0xfd, 0x39, 0xbb, 0x30, 0xea,
174 0xb3, 0x37, 0xe0, 0xa5, 0x21, 0xb6, 0xcb, 0xa1,
175 0xab, 0xe4, 0xb2, 0xb3, 0xa3, 0xe5, 0x24, 0xc1,
176 0x4a, 0x3f, 0xe3, 0xeb, 0x11, 0x6b, 0x65, 0x5f,
177 },
178 },
179 {
180 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
182 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
183 0x00, 0x00, 0x00, 0x0b, },
184 {0xef, 0x53, 0xb6, 0x29, 0x4a, 0xca, 0x43, 0x1f,
185 0x0f, 0x3c, 0x22, 0xdc, 0x82, 0xeb, 0x90, 0x50,
186 0x32, 0x4f, 0x1d, 0x88, 0xd3, 0x77, 0xe7, 0x16,
187 0x44, 0x8e, 0x50, 0x7c, 0x20, 0xb5, 0x10, 0x00,
188 0x40, 0x92, 0xe9, 0x66, 0x36, 0xcf, 0xb7, 0xe3,
189 0x2e, 0xfd, 0xed, 0x82, 0x65, 0xc2, 0x66, 0xdf,
190 0xb7, 0x54, 0xfa, 0x6d, 0x64, 0x91, 0xa6, 0xda,
191 },
192 },
193 {
194 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
195 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
196 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197 0x00, 0x00, 0x00, 0x0c, },
198 {0x6e, 0x31, 0xee, 0x1d, 0xc1, 0x37, 0xf8, 0x1b,
199 0x05, 0x67, 0x52, 0xe4, 0xde, 0xab, 0x14, 0x43,
200 0xa4, 0x81, 0x03, 0x3e, 0x9b, 0x4c, 0x93, 0xa3,
201 0x04, 0x4f, 0x4f, 0x7a, 0x20, 0x7d, 0xdd, 0xf0,
202 0x38, 0x5b, 0xfd, 0xea, 0xb6, 0xe9, 0xac, 0xda,
203 0x8d, 0xa0, 0x6b, 0x3b, 0xbe, 0xf2, 0x24, 0xa9,
204 0x3a, 0xb1, 0xe9, 0xe0, 0x36, 0x10, 0x9d, 0x13,
205 },
206 },
207 {
208 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
211 0x00, 0x00, 0x00, 0x0d, },
212 {0x34, 0xe8, 0xe1, 0x7a, 0x43, 0x0e, 0x43, 0x28,
213 0x97, 0x93, 0xc3, 0x83, 0xfa, 0xc9, 0x77, 0x42,
214 0x47, 0xb4, 0x0e, 0x9e, 0xbd, 0x33, 0x66, 0x98,
215 0x1f, 0xcf, 0xae, 0xca, 0x25, 0x28, 0x19, 0xf7,
216 0x1c, 0x7f, 0xb7, 0xfb, 0xcb, 0x15, 0x9b, 0xe3,
217 0x37, 0xd3, 0x7d, 0x33, 0x36, 0xd7, 0xfe, 0xb9,
218 0x63, 0x72, 0x4f, 0xdf, 0xb0, 0xec, 0xb7, 0x67,
219 },
220 },
221 {
222 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
223 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
225 0x00, 0x00, 0x00, 0x0e, },
226 {0xa5, 0x36, 0x40, 0xc8, 0x3d, 0xc2, 0x08, 0x60,
227 0x3d, 0xed, 0x83, 0xe4, 0xec, 0xf7, 0x58, 0xf2,
228 0x4c, 0x35, 0x7d, 0x7c, 0xf4, 0x80, 0x88, 0xb2,
229 0xce, 0x01, 0xe9, 0xfa, 0xd5, 0x81, 0x4c, 0xd7,
230 0x24, 0x19, 0x9c, 0x4a, 0x5b, 0x97, 0x4a, 0x43,
231 0x68, 0x5f, 0xbf, 0x5b, 0x8b, 0xac, 0x69, 0x45,
232 0x9c, 0x94, 0x69, 0xbc, 0x8f, 0x23, 0xcc, 0xaf,
233 },
234 },
235 {
236 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
239 0x00, 0x00, 0x00, 0x0f, },
240 {0xba, 0xa4, 0xd8, 0x63, 0x55, 0x11, 0xa7, 0xd2,
241 0x88, 0xae, 0xbe, 0xed, 0xd1, 0x2c, 0xe5, 0x29,
242 0xff, 0x10, 0x2c, 0x91, 0xf9, 0x7f, 0x86, 0x7e,
243 0x21, 0x91, 0x6b, 0xf9, 0x97, 0x9a, 0x5f, 0x47,
244 0x59, 0xf8, 0x0f, 0x4f, 0xb4, 0xec, 0x2e, 0x34,
245 0xf5, 0x56, 0x6d, 0x59, 0x56, 0x80, 0xa1, 0x17,
246 0x35, 0xe7, 0xb6, 0x10, 0x46, 0x12, 0x79, 0x89,
247 },
248 },
249 {
250 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
251 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
252 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
253 0x00, 0x00, 0x00, 0x10, },
254 {0x0b, 0x6e, 0xc4, 0xfe, 0x17, 0x77, 0x38, 0x24,
255 0x04, 0xef, 0x67, 0x99, 0x97, 0xba, 0x8d, 0x1c,
256 0xc5, 0xcd, 0x8e, 0x85, 0x34, 0x92, 0x59, 0xf5,
257 0x90, 0xc4, 0xc6, 0x6d, 0x33, 0x99, 0xd4, 0x64,
258 0x34, 0x59, 0x06, 0xb1, 0x1b, 0x00, 0xe3, 0x63,
259 0xef, 0x42, 0x92, 0x21, 0xf2, 0xec, 0x72, 0x0d,
260 0x2f, 0x66, 0x5d, 0x7d, 0xea, 0xd5, 0xb4, 0x82,
261 },
262 },
263 {
264 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
266 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
267 0x00, 0x00, 0x00, 0x11, },
268 {0xb8, 0x35, 0x7c, 0x3a, 0x6c, 0xee, 0xf2, 0x88,
269 0x31, 0x0e, 0x17, 0xb8, 0xbf, 0xef, 0xf9, 0x20,
270 0x08, 0x46, 0xca, 0x8c, 0x19, 0x42, 0x49, 0x7c,
271 0x48, 0x44, 0x03, 0xbc, 0xff, 0x14, 0x9e, 0xfa,
272 0x66, 0x06, 0xa6, 0xbd, 0x20, 0xef, 0x7d, 0x1b,
273 0x06, 0xbd, 0x92, 0xf6, 0x90, 0x46, 0x39, 0xdc,
274 0xe5, 0x17, 0x4d, 0xb6, 0xcc, 0x55, 0x4a, 0x26,
275 },
276 },
277 {
278 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
279 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
280 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
281 0x00, 0x00, 0x00, 0x12, },
282 {0xc9, 0xff, 0x61, 0xb0, 0x40, 0x87, 0x4c, 0x05,
283 0x68, 0x47, 0x92, 0x16, 0x82, 0x4a, 0x15, 0xea,
284 0xb1, 0xa8, 0x38, 0xa7, 0x97, 0xd1, 0x89, 0x74,
285 0x62, 0x26, 0xe4, 0xcc, 0xea, 0x98, 0xd6, 0x0e,
286 0x5f, 0xfc, 0x9b, 0x8f, 0xcf, 0x99, 0x9f, 0xab,
287 0x1d, 0xf7, 0xe7, 0xef, 0x70, 0x84, 0xf2, 0x0d,
288 0xdb, 0x61, 0xbb, 0x04, 0x5a, 0x6c, 0xe0, 0x02,
289 },
290 },
291 {
292 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
293 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
294 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
295 0x00, 0x00, 0x00, 0x13, },
296 {0xa1, 0xe8, 0x1c, 0x04, 0xf3, 0x0c, 0xe2, 0x01,
297 0xc7, 0xc9, 0xac, 0xe7, 0x85, 0xed, 0x44, 0xcc,
298 0x33, 0xb4, 0x55, 0xa0, 0x22, 0xf2, 0xac, 0xdb,
299 0xc6, 0xca, 0xe8, 0x3c, 0xdc, 0xf1, 0xf6, 0xc3,
300 0xdb, 0x09, 0xc7, 0x0a, 0xcc, 0x25, 0x39, 0x1d,
301 0x49, 0x2f, 0xe2, 0x5b, 0x4a, 0x18, 0x0b, 0xab,
302 0xd6, 0xce, 0xa3, 0x56, 0xc0, 0x47, 0x19, 0xcd,
303 },
304 },
305 {
306 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
308 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
309 0x00, 0x00, 0x00, 0x14, },
310 {0xfc, 0xc7, 0xf2, 0xb4, 0x5d, 0xf1, 0xcd, 0x5a,
311 0x3c, 0x0c, 0x07, 0x31, 0xca, 0x47, 0xa8, 0xaf,
312 0x75, 0xcf, 0xb0, 0x34, 0x7e, 0x83, 0x54, 0xee,
313 0xfe, 0x78, 0x24, 0x55, 0x0d, 0x5d, 0x71, 0x10,
314 0x27, 0x4c, 0xba, 0x7c, 0xde, 0xe9, 0x0e, 0x1a,
315 0x8b, 0x0d, 0x39, 0x4c, 0x37, 0x6a, 0x55, 0x73,
316 0xdb, 0x6b, 0xe0, 0xbf, 0x27, 0x47, 0xf5, 0x30,
317 },
318 },
319 {
320 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
321 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
322 0x00, 0x00, 0x00, 0x00, 0x01, 0x8e, 0xbb, 0xb9,
323 0x5e, 0xed, 0x0e, 0x13, },
324 {0x61, 0xf0, 0x77, 0xc6, 0xf6, 0x2e, 0xd8, 0x02,
325 0xda, 0xd7, 0xc2, 0xf3, 0x8f, 0x5c, 0x67, 0xf2,
326 0xcc, 0x45, 0x36, 0x01, 0xe6, 0x1b, 0xd0, 0x76,
327 0xbb, 0x46, 0x17, 0x9e, 0x22, 0x72, 0xf9, 0xe9,
328 0xf5, 0x93, 0x3e, 0x70, 0x38, 0x8e, 0xe6, 0x52,
329 0x51, 0x34, 0x43, 0xb5, 0xe2, 0x89, 0xdd, 0x13,
330 0x5d, 0xcc, 0x0d, 0x02, 0x99, 0xb2, 0x25, 0xe4,
331 },
332 },
333 {
334 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
335 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x9d, 0x89,
336 0x3d, 0x4c, 0xdd, 0x74, 0x72, 0x46, 0xcd, 0xca,
337 0x43, 0x59, 0x0e, 0x13, },
338 {0x02, 0x98, 0x95, 0xf0, 0xaf, 0x49, 0x6b, 0xfc,
339 0x62, 0xb6, 0xef, 0x8d, 0x8a, 0x65, 0xc8, 0x8c,
340 0x61, 0x39, 0x49, 0xb0, 0x36, 0x68, 0xaa, 0xb4,
341 0xf0, 0x42, 0x9e, 0x35, 0x3e, 0xa6, 0xe5, 0x3f,
342 0x9a, 0x84, 0x1f, 0x20, 0x19, 0xec, 0x24, 0xbd,
343 0xe1, 0xa7, 0x56, 0x77, 0xaa, 0x9b, 0x59, 0x02,
344 0xe6, 0x10, 0x81, 0xc0, 0x10, 0x64, 0xde, 0x93,
345 },
346 },
347 {
348 {0x41, 0xff, 0xc1, 0xff, 0xff, 0xfe, 0x01, 0xff,
349 0xfc, 0x00, 0x03, 0xff, 0xfe, 0x00, 0x07, 0xc0,
350 0x01, 0xff, 0xf0, 0x00, 0x03, 0xff, 0xf0, 0x7f,
351 0xfe, 0x00, 0x07, 0xc0, },
352 {0xab, 0x68, 0x99, 0x30, 0xbc, 0xae, 0x4a, 0x4a,
353 0xa5, 0xf5, 0xcb, 0x08, 0x5e, 0x82, 0x3e, 0x8a,
354 0xe3, 0x0f, 0xd3, 0x65, 0xeb, 0x1d, 0xa4, 0xab,
355 0xa9, 0xcf, 0x03, 0x79, 0x33, 0x45, 0xa1, 0x21,
356 0xbb, 0xd2, 0x33, 0x54, 0x8a, 0xf0, 0xd2, 0x10,
357 0x65, 0x4e, 0xb4, 0x0b, 0xab, 0x78, 0x8a, 0x03,
358 0x66, 0x64, 0x19, 0xbe, 0x6f, 0xbd, 0x34, 0xe7,
359 },
360 },
361 {
362 {0x7f, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xc0, 0x03,
363 0xff, 0xff, 0xfc, 0x00, 0x7f, 0xff, 0x00, 0x00,
364 0x00, 0x00, 0x07, 0x00, 0x00, 0x10, 0x00, 0x00,
365 0x00, 0x0e, 0x00, 0xff, },
366 {0xbd, 0xb6, 0xa8, 0x81, 0x7c, 0x1f, 0x89, 0xda,
367 0x1c, 0x2f, 0x3d, 0xd8, 0xe9, 0x7f, 0xeb, 0x44,
368 0x94, 0xf2, 0xed, 0x30, 0x2a, 0x4c, 0xe2, 0xbc,
369 0x7f, 0x5f, 0x40, 0x25, 0x4c, 0x70, 0x20, 0xd5,
370 0x7c, 0x00, 0x41, 0x18, 0x89, 0x46, 0x2d, 0x77,
371 0xa5, 0x43, 0x8b, 0xb4, 0xe9, 0x7d, 0x17, 0x77,
372 0x00, 0xbf, 0x72, 0x43, 0xa0, 0x7f, 0x16, 0x80,
373 },
374 },
375 {
376 {0x7f, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x00,
377 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0xff, 0xff,
378 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
379 0x00, 0x0f, 0xff, 0xff, },
380 {0xd5, 0x8b, 0x61, 0xaa, 0x41, 0xc3, 0x2d, 0xd5,
381 0xeb, 0xa4, 0x62, 0x64, 0x7d, 0xba, 0x75, 0xc5,
382 0xd6, 0x7c, 0x83, 0x60, 0x6c, 0x0a, 0xf2, 0xbd,
383 0x92, 0x84, 0x46, 0xa9, 0xd2, 0x4b, 0xa6, 0xa8,
384 0x37, 0xbe, 0x04, 0x60, 0xdd, 0x10, 0x7a, 0xe7,
385 0x77, 0x25, 0x69, 0x6d, 0x21, 0x14, 0x46, 0xc5,
386 0x60, 0x9b, 0x45, 0x95, 0x97, 0x6b, 0x16, 0xbd,
387 },
388 },
389 {
390 {0x7f, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xfe, 0x3f,
391 0xff, 0xfc, 0x10, 0x00, 0x00, 0x20, 0x00, 0x3f,
392 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00,
393 0x3f, 0xff, 0xff, 0xff, },
394 {0xdc, 0x9f, 0xa7, 0x79, 0x78, 0xa0, 0x05, 0x51,
395 0x09, 0x80, 0xe9, 0x29, 0xa1, 0x48, 0x5f, 0x63,
396 0x71, 0x6d, 0xf6, 0x95, 0xd7, 0xa0, 0xc1, 0x8b,
397 0xb5, 0x18, 0xdf, 0x03, 0xed, 0xe2, 0xb0, 0x16,
398 0xf2, 0xdd, 0xff, 0xc2, 0xa8, 0xc0, 0x15, 0xb1,
399 0x34, 0x92, 0x82, 0x75, 0xce, 0x09, 0xe5, 0x66,
400 0x1b, 0x7a, 0xb1, 0x4c, 0xe0, 0xd1, 0xd4, 0x03,
401 },
402 },
403 {
404 {0x70, 0x01, 0xf0, 0x00, 0x1c, 0x00, 0x01, 0xc0,
405 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x00,
406 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x0f, 0xc0, 0x00,
407 0x00, 0x01, 0xfc, 0x00, },
408 {0x49, 0x9d, 0x8b, 0x28, 0x29, 0xcf, 0xb8, 0x79,
409 0xc9, 0x01, 0xf7, 0xd8, 0x5d, 0x35, 0x70, 0x45,
410 0xed, 0xab, 0x55, 0x02, 0x88, 0x24, 0xd0, 0xf0,
411 0x5b, 0xa2, 0x79, 0xba, 0xbf, 0x92, 0x95, 0x37,
412 0xb0, 0x6e, 0x40, 0x15, 0x91, 0x96, 0x39, 0xd9,
413 0x4f, 0x57, 0x83, 0x8f, 0xa3, 0x3f, 0xc3, 0xd9,
414 0x52, 0x59, 0x8d, 0xcd, 0xbb, 0x44, 0xd6, 0x38,
415 },
416 },
417 {
418 {0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00,
419 0x00, 0xff, 0xf0, 0x30, 0x00, 0x1f, 0x00, 0x00,
420 0xff, 0xff, 0xf0, 0x00, 0x00, 0x38, 0x00, 0x00,
421 0x00, 0x00, 0x00, 0x02, },
422 {0x82, 0x46, 0xc9, 0x99, 0x13, 0x71, 0x86, 0x63,
423 0x2c, 0x5f, 0x9e, 0xdd, 0xf3, 0xb1, 0xb0, 0xe1,
424 0x76, 0x4c, 0x5e, 0x8b, 0xd0, 0xe0, 0xd8, 0xa5,
425 0x54, 0xb9, 0xcb, 0x77, 0xe8, 0x0e, 0xd8, 0x66,
426 0x0b, 0xc1, 0xcb, 0x17, 0xac, 0x7d, 0x84, 0x5b,
427 0xe4, 0x0a, 0x7a, 0x02, 0x2d, 0x33, 0x06, 0xf1,
428 0x16, 0xae, 0x9f, 0x81, 0xfe, 0xa6, 0x59, 0x47,
429 },
430 },
431 {
432 {0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
433 0x07, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
434 0x00, 0x00, 0xff, 0xfe, 0x08, 0x00, 0x00, 0x1f,
435 0xf0, 0x00, 0x1f, 0xff, },
436 {0x66, 0x70, 0xc2, 0x0a, 0xfc, 0xce, 0xae, 0xa6,
437 0x72, 0xc9, 0x7f, 0x75, 0xe2, 0xe9, 0xdd, 0x5c,
438 0x84, 0x60, 0xe5, 0x4b, 0xb3, 0x85, 0x38, 0xeb,
439 0xb4, 0xbd, 0x30, 0xeb, 0xf2, 0x80, 0xd8, 0x00,
440 0x8d, 0x07, 0xa4, 0xca, 0xf5, 0x42, 0x71, 0xf9,
441 0x93, 0x52, 0x7d, 0x46, 0xff, 0x3f, 0xf4, 0x6f,
442 0xd1, 0x19, 0x0a, 0x3f, 0x1f, 0xaa, 0x4f, 0x74,
443 },
444 },
445 {
446 {0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
447 0xff, 0xc0, 0x00, 0x07, 0xff, 0xff, 0xe0, 0xff,
448 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xff,
449 0xff, 0xff, 0xff, 0xff, },
450 {0x00, 0x0e, 0xca, 0x93, 0x42, 0x47, 0x42, 0x5c,
451 0xfd, 0x94, 0x9b, 0x79, 0x5c, 0xb5, 0xce, 0x1e,
452 0xff, 0x40, 0x15, 0x50, 0x38, 0x6e, 0x28, 0xd1,
453 0xa4, 0xc5, 0xa8, 0xeb, 0xd4, 0xc0, 0x10, 0x40,
454 0xdb, 0xa1, 0x96, 0x28, 0x93, 0x1b, 0xc8, 0x85,
455 0x53, 0x70, 0x31, 0x7c, 0x72, 0x2c, 0xbd, 0x9c,
456 0xa6, 0x15, 0x69, 0x85, 0xf1, 0xc2, 0xe9, 0xce,
457 },
458 },
459 {
460 {0x7f, 0xff, 0xfc, 0x03, 0xff, 0x80, 0x7f, 0xff,
461 0xe0, 0x00, 0x1f, 0xff, 0xff, 0x80, 0x0f, 0xff,
462 0x80, 0x00, 0x01, 0xff, 0xff, 0x00, 0x01, 0xff,
463 0xff, 0xfe, 0x00, 0x1f, },
464 {0xef, 0x35, 0x3b, 0xf5, 0xc7, 0x3c, 0xd5, 0x51,
465 0xb9, 0x6d, 0x59, 0x6f, 0xbc, 0x9a, 0x67, 0xf1,
466 0x6d, 0x61, 0xdd, 0x9f, 0xe5, 0x6a, 0xf1, 0x9d,
467 0xe1, 0xfb, 0xa9, 0xcd, 0x21, 0x77, 0x1b, 0x9c,
468 0xdc, 0xe3, 0xe8, 0x43, 0x0c, 0x09, 0xb3, 0x83,
469 0x8b, 0xe7, 0x0b, 0x48, 0xc2, 0x1e, 0x15, 0xbc,
470 0x09, 0xee, 0x1f, 0x2d, 0x79, 0x45, 0xb9, 0x1f,
471 },
472 },
473 {
474 {0x00, 0x00, 0x00, 0x07, 0xff, 0xc0, 0x7f, 0xff,
475 0xff, 0xff, 0x01, 0xff, 0xfe, 0x03, 0xff, 0xfe,
476 0x40, 0x00, 0x38, 0x00, 0x07, 0xe0, 0x00, 0x3f,
477 0xfe, 0x00, 0x00, 0x00, },
478 {0x40, 0x36, 0x05, 0x2a, 0x30, 0x91, 0xeb, 0x48,
479 0x10, 0x46, 0xad, 0x32, 0x89, 0xc9, 0x5d, 0x3a,
480 0xc9, 0x05, 0xca, 0x00, 0x23, 0xde, 0x2c, 0x03,
481 0xec, 0xd4, 0x51, 0xcf, 0xd7, 0x68, 0x16, 0x5a,
482 0x38, 0xa2, 0xb9, 0x6f, 0x81, 0x25, 0x86, 0xa9,
483 0xd5, 0x9d, 0x41, 0x36, 0x03, 0x5d, 0x9c, 0x85,
484 0x3a, 0x5b, 0xf2, 0xe1, 0xc8, 0x6a, 0x49, 0x93,
485 },
486 },
487 {
488 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
489 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
490 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
491 0x5c, 0x5c, 0x2a, 0x29, },
492 {0xfc, 0xc7, 0xf2, 0xb4, 0x5d, 0xf1, 0xcd, 0x5a,
493 0x3c, 0x0c, 0x07, 0x31, 0xca, 0x47, 0xa8, 0xaf,
494 0x75, 0xcf, 0xb0, 0x34, 0x7e, 0x83, 0x54, 0xee,
495 0xfe, 0x78, 0x24, 0x55, 0xf2, 0xa2, 0x8e, 0xef,
496 0xd8, 0xb3, 0x45, 0x83, 0x21, 0x16, 0xf1, 0xe5,
497 0x74, 0xf2, 0xc6, 0xb2, 0xc8, 0x95, 0xaa, 0x8c,
498 0x24, 0x94, 0x1f, 0x40, 0xd8, 0xb8, 0x0a, 0xd1,
499 },
500 },
501 {
502 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
503 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
504 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
505 0x5c, 0x5c, 0x2a, 0x2a, },
506 {0xa1, 0xe8, 0x1c, 0x04, 0xf3, 0x0c, 0xe2, 0x01,
507 0xc7, 0xc9, 0xac, 0xe7, 0x85, 0xed, 0x44, 0xcc,
508 0x33, 0xb4, 0x55, 0xa0, 0x22, 0xf2, 0xac, 0xdb,
509 0xc6, 0xca, 0xe8, 0x3c, 0x23, 0x0e, 0x09, 0x3c,
510 0x24, 0xf6, 0x38, 0xf5, 0x33, 0xda, 0xc6, 0xe2,
511 0xb6, 0xd0, 0x1d, 0xa3, 0xb5, 0xe7, 0xf4, 0x54,
512 0x29, 0x31, 0x5c, 0xa9, 0x3f, 0xb8, 0xe6, 0x34,
513 },
514 },
515 {
516 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
517 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
518 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
519 0x5c, 0x5c, 0x2a, 0x2b, },
520 {0xc9, 0xff, 0x61, 0xb0, 0x40, 0x87, 0x4c, 0x05,
521 0x68, 0x47, 0x92, 0x16, 0x82, 0x4a, 0x15, 0xea,
522 0xb1, 0xa8, 0x38, 0xa7, 0x97, 0xd1, 0x89, 0x74,
523 0x62, 0x26, 0xe4, 0xcc, 0x15, 0x67, 0x29, 0xf1,
524 0xa0, 0x03, 0x64, 0x70, 0x30, 0x66, 0x60, 0x54,
525 0xe2, 0x08, 0x18, 0x0f, 0x8f, 0x7b, 0x0d, 0xf2,
526 0x24, 0x9e, 0x44, 0xfb, 0xa5, 0x93, 0x1f, 0xff,
527 },
528 },
529 {
530 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
531 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
532 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
533 0x5c, 0x5c, 0x2a, 0x2c, },
534 {0xb8, 0x35, 0x7c, 0x3a, 0x6c, 0xee, 0xf2, 0x88,
535 0x31, 0x0e, 0x17, 0xb8, 0xbf, 0xef, 0xf9, 0x20,
536 0x08, 0x46, 0xca, 0x8c, 0x19, 0x42, 0x49, 0x7c,
537 0x48, 0x44, 0x03, 0xbc, 0x00, 0xeb, 0x61, 0x05,
538 0x99, 0xf9, 0x59, 0x42, 0xdf, 0x10, 0x82, 0xe4,
539 0xf9, 0x42, 0x6d, 0x08, 0x6f, 0xb9, 0xc6, 0x23,
540 0x1a, 0xe8, 0xb2, 0x49, 0x33, 0xaa, 0xb5, 0xdb,
541 },
542 },
543 {
544 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
545 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
546 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
547 0x5c, 0x5c, 0x2a, 0x2d, },
548 {0x0b, 0x6e, 0xc4, 0xfe, 0x17, 0x77, 0x38, 0x24,
549 0x04, 0xef, 0x67, 0x99, 0x97, 0xba, 0x8d, 0x1c,
550 0xc5, 0xcd, 0x8e, 0x85, 0x34, 0x92, 0x59, 0xf5,
551 0x90, 0xc4, 0xc6, 0x6d, 0xcc, 0x66, 0x2b, 0x9b,
552 0xcb, 0xa6, 0xf9, 0x4e, 0xe4, 0xff, 0x1c, 0x9c,
553 0x10, 0xbd, 0x6d, 0xdd, 0x0d, 0x13, 0x8d, 0xf2,
554 0xd0, 0x99, 0xa2, 0x82, 0x15, 0x2a, 0x4b, 0x7f,
555 },
556 },
557 {
558 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
559 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
560 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
561 0x5c, 0x5c, 0x2a, 0x2e, },
562 {0xba, 0xa4, 0xd8, 0x63, 0x55, 0x11, 0xa7, 0xd2,
563 0x88, 0xae, 0xbe, 0xed, 0xd1, 0x2c, 0xe5, 0x29,
564 0xff, 0x10, 0x2c, 0x91, 0xf9, 0x7f, 0x86, 0x7e,
565 0x21, 0x91, 0x6b, 0xf9, 0x68, 0x65, 0xa0, 0xb8,
566 0xa6, 0x07, 0xf0, 0xb0, 0x4b, 0x13, 0xd1, 0xcb,
567 0x0a, 0xa9, 0x92, 0xa5, 0xa9, 0x7f, 0x5e, 0xe8,
568 0xca, 0x18, 0x49, 0xef, 0xb9, 0xed, 0x86, 0x78,
569 },
570 },
571 {
572 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
573 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
574 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
575 0x5c, 0x5c, 0x2a, 0x2f, },
576 {0xa5, 0x36, 0x40, 0xc8, 0x3d, 0xc2, 0x08, 0x60,
577 0x3d, 0xed, 0x83, 0xe4, 0xec, 0xf7, 0x58, 0xf2,
578 0x4c, 0x35, 0x7d, 0x7c, 0xf4, 0x80, 0x88, 0xb2,
579 0xce, 0x01, 0xe9, 0xfa, 0x2a, 0x7e, 0xb3, 0x28,
580 0xdb, 0xe6, 0x63, 0xb5, 0xa4, 0x68, 0xb5, 0xbc,
581 0x97, 0xa0, 0x40, 0xa3, 0x74, 0x53, 0x96, 0xba,
582 0x63, 0x6b, 0x96, 0x43, 0x70, 0xdc, 0x33, 0x52,
583 },
584 },
585 {
586 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
587 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
588 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
589 0x5c, 0x5c, 0x2a, 0x30, },
590 {0x34, 0xe8, 0xe1, 0x7a, 0x43, 0x0e, 0x43, 0x28,
591 0x97, 0x93, 0xc3, 0x83, 0xfa, 0xc9, 0x77, 0x42,
592 0x47, 0xb4, 0x0e, 0x9e, 0xbd, 0x33, 0x66, 0x98,
593 0x1f, 0xcf, 0xae, 0xca, 0xda, 0xd7, 0xe6, 0x08,
594 0xe3, 0x80, 0x48, 0x04, 0x34, 0xea, 0x64, 0x1c,
595 0xc8, 0x2c, 0x82, 0xcb, 0xc9, 0x28, 0x01, 0x46,
596 0x9c, 0x8d, 0xb0, 0x20, 0x4f, 0x13, 0x48, 0x9a,
597 },
598 },
599 {
600 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
601 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
602 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
603 0x5c, 0x5c, 0x2a, 0x31, },
604 {0x6e, 0x31, 0xee, 0x1d, 0xc1, 0x37, 0xf8, 0x1b,
605 0x05, 0x67, 0x52, 0xe4, 0xde, 0xab, 0x14, 0x43,
606 0xa4, 0x81, 0x03, 0x3e, 0x9b, 0x4c, 0x93, 0xa3,
607 0x04, 0x4f, 0x4f, 0x7a, 0xdf, 0x82, 0x22, 0x0f,
608 0xc7, 0xa4, 0x02, 0x15, 0x49, 0x16, 0x53, 0x25,
609 0x72, 0x5f, 0x94, 0xc3, 0x41, 0x0d, 0xdb, 0x56,
610 0xc5, 0x4e, 0x16, 0x1f, 0xc9, 0xef, 0x62, 0xee,
611 },
612 },
613 {
614 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
615 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
616 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
617 0x5c, 0x5c, 0x2a, 0x32, },
618 {0xef, 0x53, 0xb6, 0x29, 0x4a, 0xca, 0x43, 0x1f,
619 0x0f, 0x3c, 0x22, 0xdc, 0x82, 0xeb, 0x90, 0x50,
620 0x32, 0x4f, 0x1d, 0x88, 0xd3, 0x77, 0xe7, 0x16,
621 0x44, 0x8e, 0x50, 0x7c, 0xdf, 0x4a, 0xef, 0xff,
622 0xbf, 0x6d, 0x16, 0x99, 0xc9, 0x30, 0x48, 0x1c,
623 0xd1, 0x02, 0x12, 0x7c, 0x9a, 0x3d, 0x99, 0x20,
624 0x48, 0xab, 0x05, 0x92, 0x9b, 0x6e, 0x59, 0x27,
625 },
626 },
627 {
628 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
629 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
630 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
631 0x5c, 0x5c, 0x2a, 0x33, },
632 {0xae, 0xa9, 0xe1, 0x7a, 0x30, 0x65, 0x17, 0xeb,
633 0x89, 0x15, 0x2a, 0xa7, 0x09, 0x6d, 0x2c, 0x38,
634 0x1e, 0xc8, 0x13, 0xc5, 0x1a, 0xa8, 0x80, 0xe7,
635 0xbe, 0xe2, 0xc0, 0xfd, 0xc6, 0x44, 0xcf, 0x15,
636 0x4c, 0xc8, 0x1f, 0x5a, 0xde, 0x49, 0x34, 0x5e,
637 0x54, 0x1b, 0x4d, 0x4b, 0x5c, 0x1a, 0xdb, 0x3e,
638 0xb5, 0xc0, 0x1c, 0x14, 0xee, 0x94, 0x9a, 0xa2,
639 },
640 },
641 {
642 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
643 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
644 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
645 0x5c, 0x5c, 0x2a, 0x34, },
646 {0x2f, 0xdc, 0xcc, 0xfe, 0xe7, 0x20, 0xa7, 0x7e,
647 0xf6, 0xcb, 0x3b, 0xfb, 0xb4, 0x47, 0xf9, 0x38,
648 0x31, 0x17, 0xe3, 0xda, 0xa4, 0xa0, 0x7e, 0x36,
649 0xed, 0x15, 0xf7, 0x8d, 0xc8, 0xe8, 0xcd, 0x1b,
650 0x0b, 0xe4, 0x0b, 0x08, 0x77, 0xcf, 0xca, 0x19,
651 0x58, 0x60, 0x31, 0x22, 0xf1, 0xe6, 0x91, 0x4f,
652 0x84, 0xb7, 0xe8, 0xe9, 0x68, 0xae, 0x8b, 0x9e,
653 },
654 },
655 {
656 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
657 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
658 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
659 0x5c, 0x5c, 0x2a, 0x35, },
660 {0x85, 0x8e, 0x6f, 0x9c, 0xc6, 0xc1, 0x2c, 0x31,
661 0xf5, 0xdf, 0x12, 0x4a, 0xa7, 0x77, 0x67, 0xb0,
662 0x5c, 0x8b, 0xc0, 0x21, 0xbd, 0x68, 0x3d, 0x2b,
663 0x55, 0x57, 0x15, 0x50, 0xfb, 0x92, 0x32, 0xc1,
664 0x5a, 0x3b, 0xc7, 0x67, 0x3a, 0x3a, 0x03, 0xb0,
665 0x25, 0x38, 0x24, 0xc5, 0x3d, 0x0f, 0xd1, 0x41,
666 0x1b, 0x1c, 0xab, 0xe2, 0xe1, 0x87, 0xfb, 0x87,
667 },
668 },
669 {
670 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
671 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
672 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
673 0x5c, 0x5c, 0x2a, 0x36, },
674 {0xdb, 0x2f, 0x6b, 0xe6, 0x30, 0xe2, 0x46, 0xa5,
675 0xcf, 0x7d, 0x99, 0xb8, 0x51, 0x94, 0xb1, 0x23,
676 0xd4, 0x87, 0xe2, 0xd4, 0x66, 0xb9, 0x4b, 0x24,
677 0xa0, 0x3c, 0x3e, 0x28, 0xf0, 0xc5, 0xcf, 0xf7,
678 0xab, 0x68, 0x0d, 0x09, 0xee, 0x11, 0xda, 0xe8,
679 0x4e, 0x9c, 0x10, 0x72, 0xac, 0x48, 0xea, 0x2e,
680 0x74, 0x4b, 0x1b, 0x7f, 0x72, 0xfd, 0x46, 0x9e,
681 },
682 },
683 {
684 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
685 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
686 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
687 0x5c, 0x5c, 0x2a, 0x37, },
688 {0x1f, 0x24, 0x83, 0xf8, 0x25, 0x72, 0x25, 0x1f,
689 0xca, 0x97, 0x5f, 0xea, 0x40, 0xdb, 0x82, 0x1d,
690 0xf8, 0xad, 0x82, 0xa3, 0xc0, 0x02, 0xee, 0x6c,
691 0x57, 0x11, 0x24, 0x08, 0x76, 0x05, 0x0f, 0x33,
692 0x48, 0xaf, 0x26, 0x64, 0xaa, 0xc3, 0xa8, 0xb0,
693 0x52, 0x81, 0x30, 0x4e, 0xbc, 0x7a, 0x79, 0x14,
694 0xc6, 0xad, 0x50, 0xa4, 0xb4, 0xea, 0xc3, 0x83,
695 },
696 },
697 {
698 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
699 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
700 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
701 0x5c, 0x5c, 0x2a, 0x38, },
702 {0x31, 0xc4, 0x9a, 0xe7, 0x5b, 0xce, 0x78, 0x07,
703 0xcd, 0xff, 0x22, 0x05, 0x5d, 0x94, 0xee, 0x90,
704 0x21, 0xfe, 0xdb, 0xb5, 0xab, 0x51, 0xc5, 0x75,
705 0x26, 0xf0, 0x11, 0xaa, 0xd8, 0x17, 0x40, 0x0e,
706 0x8b, 0xa9, 0xca, 0x13, 0xa4, 0x5f, 0x36, 0x0e,
707 0x3d, 0x12, 0x1e, 0xaa, 0xeb, 0x39, 0xaf, 0x82,
708 0xd6, 0x00, 0x1c, 0x81, 0x86, 0xf5, 0xf8, 0x66,
709 },
710 },
711 {
712 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
713 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
714 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
715 0x5c, 0x5c, 0x2a, 0x39, },
716 {0xae, 0x99, 0xfe, 0xeb, 0xb5, 0xd2, 0x69, 0x45,
717 0xb5, 0x48, 0x92, 0x09, 0x2a, 0x8a, 0xee, 0x02,
718 0x91, 0x29, 0x30, 0xfa, 0x41, 0xcd, 0x11, 0x4e,
719 0x40, 0x44, 0x73, 0x01, 0xfb, 0x7d, 0xa7, 0xf5,
720 0xf1, 0x3a, 0x43, 0xb8, 0x17, 0x74, 0x37, 0x3c,
721 0x87, 0x9c, 0xd3, 0x2d, 0x69, 0x34, 0xc0, 0x5f,
722 0xa7, 0x58, 0xee, 0xb1, 0x4f, 0xcf, 0xab, 0x38,
723 },
724 },
725 {
726 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
727 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
728 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
729 0x5c, 0x5c, 0x2a, 0x3a, },
730 {0xdf, 0x1b, 0x1d, 0x66, 0xa5, 0x51, 0xd0, 0xd3,
731 0x1e, 0xff, 0x82, 0x25, 0x58, 0xb9, 0xd2, 0xcc,
732 0x75, 0xc2, 0x18, 0x02, 0x79, 0xfe, 0x0d, 0x08,
733 0xfd, 0x89, 0x6d, 0x04, 0x5c, 0x08, 0x0f, 0xc3,
734 0x52, 0x2f, 0x41, 0xbb, 0xb3, 0xf5, 0x5a, 0x97,
735 0xcf, 0xec, 0xf2, 0x1f, 0x88, 0x2c, 0xe8, 0xcb,
736 0xb1, 0xe5, 0x0c, 0xa6, 0xe6, 0x7e, 0x56, 0xdc,
737 },
738 },
739 {
740 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
741 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
742 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
743 0x5c, 0x5c, 0x2a, 0x3b, },
744 {0x70, 0x6a, 0x46, 0xdc, 0x76, 0xdc, 0xb7, 0x67,
745 0x98, 0xe6, 0x0e, 0x6d, 0x89, 0x47, 0x47, 0x88,
746 0xd1, 0x6d, 0xc1, 0x80, 0x32, 0xd2, 0x68, 0xfd,
747 0x1a, 0x70, 0x4f, 0xa6, 0xe3, 0xd4, 0x89, 0x58,
748 0x43, 0xda, 0x18, 0x8f, 0xd5, 0x8f, 0xb0, 0x56,
749 0x79, 0x76, 0xd7, 0xb5, 0x03, 0x59, 0xd6, 0xb7,
750 0x85, 0x30, 0xc8, 0xf6, 0x2d, 0x1b, 0x17, 0x46,
751 },
752 },
753 {
754 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
755 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2,
756 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45,
757 0x5c, 0x5c, 0x2a, 0x3c, },
758 {0xb7, 0x0e, 0x0c, 0xbd, 0x6b, 0xb4, 0xbf, 0x7f,
759 0x32, 0x13, 0x90, 0xb9, 0x4a, 0x03, 0xc1, 0xd3,
760 0x56, 0xc2, 0x11, 0x22, 0x34, 0x32, 0x80, 0xd6,
761 0x11, 0x5c, 0x1d, 0x21, 0x42, 0xc8, 0x9c, 0x77,
762 0x4a, 0x08, 0xdc, 0x04, 0xb3, 0xdd, 0x20, 0x19,
763 0x32, 0xbc, 0x8a, 0x5e, 0xa5, 0xf8, 0xb8, 0x9b,
764 0xbb, 0x2a, 0x7e, 0x66, 0x7a, 0xff, 0x81, 0xcd,
765 },
766 },
767 };
768
769 TEST(P224, ExternalToInternalAndBack) {
770 Point point;
771
772 EXPECT_TRUE(point.Set(base::StringPiece(
773 reinterpret_cast<const char *>(kBasePointExternal),
774 sizeof(kBasePointExternal))));
775
776 const std::string external = point.ToString();
777
778 ASSERT_EQ(external.size(), 56u);
779 EXPECT_TRUE(memcmp(external.data(), kBasePointExternal,
780 sizeof(kBasePointExternal)) == 0);
781 }
782
783 TEST(P224, ScalarBaseMult) {
784 Point point;
785
786 for (size_t i = 0; i < arraysize(kNISTTestVectors); i++) {
787 p224::ScalarBaseMult(kNISTTestVectors[i].scalar, &point);
788 const std::string external = point.ToString();
789 ASSERT_EQ(external.size(), 56u);
790 EXPECT_TRUE(memcmp(external.data(), kNISTTestVectors[i].affine,
791 external.size()) == 0);
792 }
793 }
794
795 TEST(P224, Addition) {
796 Point a, b, minus_b, sum, a_again;
797
798 ASSERT_TRUE(a.Set(base::StringPiece(
799 reinterpret_cast<const char *>(kNISTTestVectors[10].affine), 56)));
800 ASSERT_TRUE(b.Set(base::StringPiece(
801 reinterpret_cast<const char *>(kNISTTestVectors[11].affine), 56)));
802
803 p224::Negate(b, &minus_b);
804 p224::Add(a, b, &sum);
805 EXPECT_TRUE(memcmp(&sum, &a, sizeof(sum) != 0));
Nico 2013/12/21 05:50:43 A warning I'm prototyping (http://llvm.org/PR18297
806 p224::Add(minus_b, sum, &a_again);
807 EXPECT_TRUE(a_again.ToString() == a.ToString());
808 }
OLDNEW
« crypto/p224.h ('K') | « crypto/p224.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698