xref: /aosp_15_r20/external/libwebsockets/minimal-examples/api-tests/api-test-cose/keys.c (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker /*
2*1c60b9acSAndroid Build Coastguard Worker  * lws-api-test-jose - RFC8152 cose_key tests
3*1c60b9acSAndroid Build Coastguard Worker  *
4*1c60b9acSAndroid Build Coastguard Worker  * Written in 2010-2021 by Andy Green <[email protected]>
5*1c60b9acSAndroid Build Coastguard Worker  *
6*1c60b9acSAndroid Build Coastguard Worker  * This file is made available under the Creative Commons CC0 1.0
7*1c60b9acSAndroid Build Coastguard Worker  * Universal Public Domain Dedication.
8*1c60b9acSAndroid Build Coastguard Worker  *
9*1c60b9acSAndroid Build Coastguard Worker  * Raw key CBOR created from descriptions at
10*1c60b9acSAndroid Build Coastguard Worker  *
11*1c60b9acSAndroid Build Coastguard Worker  * https://github.com/cose-wg/Examples/blob/master/KeySet.txt
12*1c60b9acSAndroid Build Coastguard Worker  */
13*1c60b9acSAndroid Build Coastguard Worker 
14*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets.h>
15*1c60b9acSAndroid Build Coastguard Worker #include <stdlib.h>
16*1c60b9acSAndroid Build Coastguard Worker #include <fcntl.h>
17*1c60b9acSAndroid Build Coastguard Worker 
18*1c60b9acSAndroid Build Coastguard Worker static int
key_import_cb(struct lws_cose_key * s,void * user)19*1c60b9acSAndroid Build Coastguard Worker key_import_cb(struct lws_cose_key *s, void *user)
20*1c60b9acSAndroid Build Coastguard Worker {
21*1c60b9acSAndroid Build Coastguard Worker 	lwsl_notice("%s: key type %lld\n", __func__, (long long)s->kty);
22*1c60b9acSAndroid Build Coastguard Worker 
23*1c60b9acSAndroid Build Coastguard Worker 	return 0;
24*1c60b9acSAndroid Build Coastguard Worker }
25*1c60b9acSAndroid Build Coastguard Worker 
26*1c60b9acSAndroid Build Coastguard Worker static const uint8_t
27*1c60b9acSAndroid Build Coastguard Worker 	cose_key1[] = {
28*1c60b9acSAndroid Build Coastguard Worker 			0xa6, 0x01, 0x02, 0x02, 0x62,
29*1c60b9acSAndroid Build Coastguard Worker 			0x31, 0x31, 0x20, 0x01, 0x21,
30*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0xba, 0xc5, 0xb1,
31*1c60b9acSAndroid Build Coastguard Worker 			0x1c, 0xad, 0x8f, 0x99, 0xf9,
32*1c60b9acSAndroid Build Coastguard Worker 			0xc7, 0x2b, 0x05, 0xcf, 0x4b,
33*1c60b9acSAndroid Build Coastguard Worker 			0x9e, 0x26, 0xd2, 0x44, 0xdc,
34*1c60b9acSAndroid Build Coastguard Worker 			0x18, 0x9f, 0x74, 0x52, 0x28,
35*1c60b9acSAndroid Build Coastguard Worker 			0x25, 0x5a, 0x21, 0x9a, 0x86,
36*1c60b9acSAndroid Build Coastguard Worker 			0xd6, 0xa0, 0x9e, 0xff, 0x22,
37*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x20, 0x13, 0x8b,
38*1c60b9acSAndroid Build Coastguard Worker 			0xf8, 0x2d, 0xc1, 0xb6, 0xd5,
39*1c60b9acSAndroid Build Coastguard Worker 			0x62, 0xbe, 0x0f, 0xa5, 0x4a,
40*1c60b9acSAndroid Build Coastguard Worker 			0xb7, 0x80, 0x4a, 0x3a, 0x64,
41*1c60b9acSAndroid Build Coastguard Worker 			0xb6, 0xd7, 0x2c, 0xcf, 0xed,
42*1c60b9acSAndroid Build Coastguard Worker 			0x6b, 0x6f, 0xb6, 0xed, 0x28,
43*1c60b9acSAndroid Build Coastguard Worker 			0xbb, 0xfc, 0x11, 0x7e, 0x23,
44*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x57, 0xc9, 0x20,
45*1c60b9acSAndroid Build Coastguard Worker 			0x77, 0x66, 0x41, 0x46, 0xe8,
46*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0x76, 0x0c, 0x95, 0x20,
47*1c60b9acSAndroid Build Coastguard Worker 			0xd0, 0x54, 0xaa, 0x93, 0xc3,
48*1c60b9acSAndroid Build Coastguard Worker 			0xaf, 0xb0, 0x4e, 0x30, 0x67,
49*1c60b9acSAndroid Build Coastguard Worker 			0x05, 0xdb, 0x60, 0x90, 0x30,
50*1c60b9acSAndroid Build Coastguard Worker 			0x85, 0x07, 0xb4, 0xd3 },
51*1c60b9acSAndroid Build Coastguard Worker 	cose_key2[] = {
52*1c60b9acSAndroid Build Coastguard Worker 			0xa6, 0x01, 0x02, 0x02, 0x78,
53*1c60b9acSAndroid Build Coastguard Worker 			0x24, 0x6d, 0x65, 0x72, 0x69,
54*1c60b9acSAndroid Build Coastguard Worker 			0x61, 0x64, 0x6f, 0x63, 0x2e,
55*1c60b9acSAndroid Build Coastguard Worker 			0x62, 0x72, 0x61, 0x6e, 0x64,
56*1c60b9acSAndroid Build Coastguard Worker 			0x79, 0x62, 0x75, 0x63, 0x6b,
57*1c60b9acSAndroid Build Coastguard Worker 			0x40, 0x62, 0x75, 0x63, 0x6b,
58*1c60b9acSAndroid Build Coastguard Worker 			0x6c, 0x61, 0x6e, 0x64, 0x2e,
59*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x78, 0x61, 0x6d, 0x70,
60*1c60b9acSAndroid Build Coastguard Worker 			0x6c, 0x65, 0x20, 0x01, 0x21,
61*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x65, 0xed, 0xa5,
62*1c60b9acSAndroid Build Coastguard Worker 			0xa1, 0x25, 0x77, 0xc2, 0xba,
63*1c60b9acSAndroid Build Coastguard Worker 			0xe8, 0x29, 0x43, 0x7f, 0xe3,
64*1c60b9acSAndroid Build Coastguard Worker 			0x38, 0x70, 0x1a, 0x10, 0xaa,
65*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x75, 0xe1, 0xbb, 0x5b,
66*1c60b9acSAndroid Build Coastguard Worker 			0x5d, 0xe1, 0x08, 0xde, 0x43,
67*1c60b9acSAndroid Build Coastguard Worker 			0x9c, 0x08, 0x55, 0x1d, 0x22,
68*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x1e, 0x52, 0xed,
69*1c60b9acSAndroid Build Coastguard Worker 			0x75, 0x70, 0x11, 0x63, 0xf7,
70*1c60b9acSAndroid Build Coastguard Worker 			0xf9, 0xe4, 0x0d, 0xdf, 0x9f,
71*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x1b, 0x3d, 0xc9, 0xba,
72*1c60b9acSAndroid Build Coastguard Worker 			0x86, 0x0a, 0xf7, 0xe0, 0xca,
73*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0xa7, 0xe9, 0xee, 0xcd,
74*1c60b9acSAndroid Build Coastguard Worker 			0x00, 0x84, 0xd1, 0x9c, 0x23,
75*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0xaf, 0xf9, 0x07,
76*1c60b9acSAndroid Build Coastguard Worker 			0xc9, 0x9f, 0x9a, 0xd3, 0xaa,
77*1c60b9acSAndroid Build Coastguard Worker 			0xe6, 0xc4, 0xcd, 0xf2, 0x11,
78*1c60b9acSAndroid Build Coastguard Worker 			0x22, 0xbc, 0xe2, 0xbd, 0x68,
79*1c60b9acSAndroid Build Coastguard Worker 			0xb5, 0x28, 0x3e, 0x69, 0x07,
80*1c60b9acSAndroid Build Coastguard Worker 			0x15, 0x4a, 0xd9, 0x11, 0x84,
81*1c60b9acSAndroid Build Coastguard Worker 			0x0f, 0xa2, 0x08, 0xcf },
82*1c60b9acSAndroid Build Coastguard Worker 
83*1c60b9acSAndroid Build Coastguard Worker 	cose_key3[] = { 0xa3, 0x01, 0x04, 0x02, 0x6a,
84*1c60b9acSAndroid Build Coastguard Worker 			0x6f, 0x75, 0x72, 0x2d, 0x73,
85*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x63, 0x72, 0x65, 0x74,
86*1c60b9acSAndroid Build Coastguard Worker 			0x20, 0x58, 0x20, 0x84, 0x9b,
87*1c60b9acSAndroid Build Coastguard Worker 			0x57, 0x21, 0x9d, 0xae, 0x48,
88*1c60b9acSAndroid Build Coastguard Worker 			0xde, 0x64, 0x6d, 0x07, 0xdb,
89*1c60b9acSAndroid Build Coastguard Worker 			0xb5, 0x33, 0x56, 0x6e, 0x97,
90*1c60b9acSAndroid Build Coastguard Worker 			0x66, 0x86, 0x45, 0x7c, 0x14,
91*1c60b9acSAndroid Build Coastguard Worker 			0x91, 0xbe, 0x3a, 0x76, 0xdc,
92*1c60b9acSAndroid Build Coastguard Worker 			0xea, 0x6c, 0x42, 0x71, 0x88 },
93*1c60b9acSAndroid Build Coastguard Worker 
94*1c60b9acSAndroid Build Coastguard Worker 	cose_key4[] = { 0xa6, 0x01, 0x02, 0x02, 0x78,
95*1c60b9acSAndroid Build Coastguard Worker 			0x1e, 0x62, 0x69, 0x6c, 0x62,
96*1c60b9acSAndroid Build Coastguard Worker 			0x6f, 0x2e, 0x62, 0x61, 0x67,
97*1c60b9acSAndroid Build Coastguard Worker 			0x67, 0x69, 0x6e, 0x73, 0x40,
98*1c60b9acSAndroid Build Coastguard Worker 			0x68, 0x6f, 0x62, 0x62, 0x69,
99*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x6f, 0x6e, 0x2e, 0x65,
100*1c60b9acSAndroid Build Coastguard Worker 			0x78, 0x61, 0x6d, 0x70, 0x6c,
101*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x20, 0x03, 0x21, 0x58,
102*1c60b9acSAndroid Build Coastguard Worker 			0x42, 0x00, 0x72, 0x99, 0x2c,
103*1c60b9acSAndroid Build Coastguard Worker 			0xb3, 0xac, 0x08, 0xec, 0xf3,
104*1c60b9acSAndroid Build Coastguard Worker 			0xe5, 0xc6, 0x3d, 0xed, 0xec,
105*1c60b9acSAndroid Build Coastguard Worker 			0x0d, 0x51, 0xa8, 0xc1, 0xf7,
106*1c60b9acSAndroid Build Coastguard Worker 			0x9e, 0xf2, 0xf8, 0x2f, 0x94,
107*1c60b9acSAndroid Build Coastguard Worker 			0xf3, 0xc7, 0x37, 0xbf, 0x5d,
108*1c60b9acSAndroid Build Coastguard Worker 			0xe7, 0x98, 0x66, 0x71, 0xea,
109*1c60b9acSAndroid Build Coastguard Worker 			0xc6, 0x25, 0xfe, 0x82, 0x57,
110*1c60b9acSAndroid Build Coastguard Worker 			0xbb, 0xd0, 0x39, 0x46, 0x44,
111*1c60b9acSAndroid Build Coastguard Worker 			0xca, 0xaa, 0x3a, 0xaf, 0x8f,
112*1c60b9acSAndroid Build Coastguard Worker 			0x27, 0xa4, 0x58, 0x5f, 0xbb,
113*1c60b9acSAndroid Build Coastguard Worker 			0xca, 0xd0, 0xf2, 0x45, 0x76,
114*1c60b9acSAndroid Build Coastguard Worker 			0x20, 0x08, 0x5e, 0x5c, 0x8f,
115*1c60b9acSAndroid Build Coastguard Worker 			0x42, 0xad, 0x22, 0x58, 0x42,
116*1c60b9acSAndroid Build Coastguard Worker 			0x01, 0xdc, 0xa6, 0x94, 0x7b,
117*1c60b9acSAndroid Build Coastguard Worker 			0xce, 0x88, 0xbc, 0x57, 0x90,
118*1c60b9acSAndroid Build Coastguard Worker 			0x48, 0x5a, 0xc9, 0x74, 0x27,
119*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x2b, 0xc3, 0x5f, 0x88,
120*1c60b9acSAndroid Build Coastguard Worker 			0x7d, 0x86, 0xd6, 0x5a, 0x08,
121*1c60b9acSAndroid Build Coastguard Worker 			0x93, 0x77, 0xe2, 0x47, 0xe6,
122*1c60b9acSAndroid Build Coastguard Worker 			0x0b, 0xaa, 0x55, 0xe4, 0xe8,
123*1c60b9acSAndroid Build Coastguard Worker 			0x50, 0x1e, 0x2a, 0xda, 0x57,
124*1c60b9acSAndroid Build Coastguard Worker 			0x24, 0xac, 0x51, 0xd6, 0x90,
125*1c60b9acSAndroid Build Coastguard Worker 			0x90, 0x08, 0x03, 0x3e, 0xbc,
126*1c60b9acSAndroid Build Coastguard Worker 			0x10, 0xac, 0x99, 0x9b, 0x9d,
127*1c60b9acSAndroid Build Coastguard Worker 			0x7f, 0x5c, 0xc2, 0x51, 0x9f,
128*1c60b9acSAndroid Build Coastguard Worker 			0x3f, 0xe1, 0xea, 0x1d, 0x94,
129*1c60b9acSAndroid Build Coastguard Worker 			0x75, 0x23, 0x58, 0x42, 0x00,
130*1c60b9acSAndroid Build Coastguard Worker 			0x08, 0x51, 0x38, 0xdd, 0xab,
131*1c60b9acSAndroid Build Coastguard Worker 			0xf5, 0xca, 0x97, 0x5f, 0x58,
132*1c60b9acSAndroid Build Coastguard Worker 			0x60, 0xf9, 0x1a, 0x08, 0xe9,
133*1c60b9acSAndroid Build Coastguard Worker 			0x1d, 0x6d, 0x5f, 0x9a, 0x76,
134*1c60b9acSAndroid Build Coastguard Worker 			0xad, 0x40, 0x18, 0x76, 0x6a,
135*1c60b9acSAndroid Build Coastguard Worker 			0x47, 0x66, 0x80, 0xb5, 0x5c,
136*1c60b9acSAndroid Build Coastguard Worker 			0xd3, 0x39, 0xe8, 0xab, 0x6c,
137*1c60b9acSAndroid Build Coastguard Worker 			0x72, 0xb5, 0xfa, 0xcd, 0xb2,
138*1c60b9acSAndroid Build Coastguard Worker 			0xa2, 0xa5, 0x0a, 0xc2, 0x5b,
139*1c60b9acSAndroid Build Coastguard Worker 			0xd0, 0x86, 0x64, 0x7d, 0xd3,
140*1c60b9acSAndroid Build Coastguard Worker 			0xe2, 0xe6, 0xe9, 0x9e, 0x84,
141*1c60b9acSAndroid Build Coastguard Worker 			0xca, 0x2c, 0x36, 0x09, 0xfd,
142*1c60b9acSAndroid Build Coastguard Worker 			0xf1, 0x77, 0xfe, 0xb2, 0x6d },
143*1c60b9acSAndroid Build Coastguard Worker 	cose_key5[] = { 0xa3, 0x01, 0x04, 0x02, 0x6b,
144*1c60b9acSAndroid Build Coastguard Worker 			0x6f, 0x75, 0x72, 0x2d, 0x73,
145*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x63, 0x72, 0x65, 0x74,
146*1c60b9acSAndroid Build Coastguard Worker 			0x32, 0x20, 0x50, 0x84, 0x9b,
147*1c60b9acSAndroid Build Coastguard Worker 			0x57, 0x86, 0x45, 0x7c, 0x14,
148*1c60b9acSAndroid Build Coastguard Worker 			0x91, 0xbe, 0x3a, 0x76, 0xdc,
149*1c60b9acSAndroid Build Coastguard Worker 			0xea, 0x6c, 0x42, 0x71 },
150*1c60b9acSAndroid Build Coastguard Worker 
151*1c60b9acSAndroid Build Coastguard Worker 	cose_key6[] = { 0xa6, 0x01, 0x02, 0x02, 0x78,
152*1c60b9acSAndroid Build Coastguard Worker 			0x21, 0x70, 0x65, 0x72, 0x65,
153*1c60b9acSAndroid Build Coastguard Worker 			0x67, 0x72, 0x69, 0x6e, 0x2e,
154*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x6f, 0x6f, 0x6b, 0x40,
155*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x75, 0x63, 0x6b, 0x62,
156*1c60b9acSAndroid Build Coastguard Worker 			0x6f, 0x72, 0x6f, 0x75, 0x67,
157*1c60b9acSAndroid Build Coastguard Worker 			0x68, 0x2e, 0x65, 0x78, 0x61,
158*1c60b9acSAndroid Build Coastguard Worker 			0x6d, 0x70, 0x6c, 0x65, 0x20,
159*1c60b9acSAndroid Build Coastguard Worker 			0x01, 0x21, 0x58, 0x20, 0x98,
160*1c60b9acSAndroid Build Coastguard Worker 			0xf5, 0x0a, 0x4f, 0xf6, 0xc0,
161*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x61, 0xc8, 0x86, 0x0d,
162*1c60b9acSAndroid Build Coastguard Worker 			0x13, 0xa6, 0x38, 0xea, 0x56,
163*1c60b9acSAndroid Build Coastguard Worker 			0xc3, 0xf5, 0xad, 0x75, 0x90,
164*1c60b9acSAndroid Build Coastguard Worker 			0xbb, 0xfb, 0xf0, 0x54, 0xe1,
165*1c60b9acSAndroid Build Coastguard Worker 			0xc7, 0xb4, 0xd9, 0x1d, 0x62,
166*1c60b9acSAndroid Build Coastguard Worker 			0x80, 0x22, 0x58, 0x20, 0xf0,
167*1c60b9acSAndroid Build Coastguard Worker 			0x14, 0x00, 0xb0, 0x89, 0x86,
168*1c60b9acSAndroid Build Coastguard Worker 			0x78, 0x04, 0xb8, 0xe9, 0xfc,
169*1c60b9acSAndroid Build Coastguard Worker 			0x96, 0xc3, 0x93, 0x21, 0x61,
170*1c60b9acSAndroid Build Coastguard Worker 			0xf1, 0x93, 0x4f, 0x42, 0x23,
171*1c60b9acSAndroid Build Coastguard Worker 			0x06, 0x91, 0x70, 0xd9, 0x24,
172*1c60b9acSAndroid Build Coastguard Worker 			0xb7, 0xe0, 0x3b, 0xf8, 0x22,
173*1c60b9acSAndroid Build Coastguard Worker 			0xbb, 0x23, 0x58, 0x20, 0x02,
174*1c60b9acSAndroid Build Coastguard Worker 			0xd1, 0xf7, 0xe6, 0xf2, 0x6c,
175*1c60b9acSAndroid Build Coastguard Worker 			0x43, 0xd4, 0x86, 0x8d, 0x87,
176*1c60b9acSAndroid Build Coastguard Worker 			0xce, 0xb2, 0x35, 0x31, 0x61,
177*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x0a, 0xac, 0xf1, 0xf7,
178*1c60b9acSAndroid Build Coastguard Worker 			0x16, 0x36, 0x47, 0x98, 0x4b,
179*1c60b9acSAndroid Build Coastguard Worker 			0x52, 0x2a, 0x84, 0x8d, 0xf1,
180*1c60b9acSAndroid Build Coastguard Worker 			0xc3 },
181*1c60b9acSAndroid Build Coastguard Worker 	cose_key7[] = { 0xa3, 0x01, 0x04, 0x02, 0x58,
182*1c60b9acSAndroid Build Coastguard Worker 			0x24, 0x30, 0x31, 0x38, 0x63,
183*1c60b9acSAndroid Build Coastguard Worker 			0x30, 0x61, 0x65, 0x35, 0x2d,
184*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x64, 0x39, 0x62, 0x2d,
185*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x37, 0x31, 0x62, 0x2d,
186*1c60b9acSAndroid Build Coastguard Worker 			0x62, 0x66, 0x64, 0x36, 0x2d,
187*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x65, 0x66, 0x33, 0x31,
188*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x62, 0x63, 0x37, 0x30,
189*1c60b9acSAndroid Build Coastguard Worker 			0x33, 0x37, 0x20, 0x58, 0x20,
190*1c60b9acSAndroid Build Coastguard Worker 			0x84, 0x9b, 0x57, 0x21, 0x9d,
191*1c60b9acSAndroid Build Coastguard Worker 			0xae, 0x48, 0xde, 0x64, 0x6d,
192*1c60b9acSAndroid Build Coastguard Worker 			0x07, 0xdb, 0xb5, 0x33, 0x56,
193*1c60b9acSAndroid Build Coastguard Worker 			0x6e, 0x97, 0x66, 0x86, 0x45,
194*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0x14, 0x91, 0xbe, 0x3a,
195*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0xdc, 0xea, 0x6c, 0x42,
196*1c60b9acSAndroid Build Coastguard Worker 			0x71, 0x88 },
197*1c60b9acSAndroid Build Coastguard Worker 
198*1c60b9acSAndroid Build Coastguard Worker 	cose_key8[] = {
199*1c60b9acSAndroid Build Coastguard Worker 			/* kid "sec-48" for hmac 384 */
200*1c60b9acSAndroid Build Coastguard Worker 
201*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x01, 0x04, 0x02, 0x66,
202*1c60b9acSAndroid Build Coastguard Worker 			0x73, 0x65, 0x63, 0x2d, 0x34,
203*1c60b9acSAndroid Build Coastguard Worker 			0x38, 0x20, 0x58, 0x30, 0x84,
204*1c60b9acSAndroid Build Coastguard Worker 			0x9b, 0x57, 0x21, 0x9d, 0xae,
205*1c60b9acSAndroid Build Coastguard Worker 			0x48, 0xde, 0x64, 0x6d, 0x07,
206*1c60b9acSAndroid Build Coastguard Worker 			0xdb, 0xb5, 0x33, 0x56, 0x6e,
207*1c60b9acSAndroid Build Coastguard Worker 			0x97, 0x66, 0x86, 0x45, 0x7c,
208*1c60b9acSAndroid Build Coastguard Worker 			0x14, 0x91, 0xbe, 0x3a, 0x76,
209*1c60b9acSAndroid Build Coastguard Worker 			0xdc, 0xea, 0x6c, 0x42, 0x71,
210*1c60b9acSAndroid Build Coastguard Worker 			0x88, 0x00, 0x11, 0x22, 0x33,
211*1c60b9acSAndroid Build Coastguard Worker 			0x77, 0x88, 0x99, 0xaa, 0x21,
212*1c60b9acSAndroid Build Coastguard Worker 			0x22, 0x23, 0x24, 0x25, 0x26,
213*1c60b9acSAndroid Build Coastguard Worker 			0x27, 0x28
214*1c60b9acSAndroid Build Coastguard Worker 	},
215*1c60b9acSAndroid Build Coastguard Worker 
216*1c60b9acSAndroid Build Coastguard Worker 	cose_key9[] = {
217*1c60b9acSAndroid Build Coastguard Worker 			/* kid "sec-64" for hmac 512 */
218*1c60b9acSAndroid Build Coastguard Worker 
219*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x01, 0x04, 0x02, 0x46,
220*1c60b9acSAndroid Build Coastguard Worker 			0x73, 0x65, 0x63, 0x2d, 0x36,
221*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x20, 0x58, 0x40, 0x84,
222*1c60b9acSAndroid Build Coastguard Worker 			0x9b, 0x57, 0x21, 0x9d, 0xae,
223*1c60b9acSAndroid Build Coastguard Worker 			0x48, 0xde, 0x64, 0x6d, 0x07,
224*1c60b9acSAndroid Build Coastguard Worker 			0xdb, 0xb5, 0x33, 0x56, 0x6e,
225*1c60b9acSAndroid Build Coastguard Worker 			0x97, 0x66, 0x86, 0x45, 0x7c,
226*1c60b9acSAndroid Build Coastguard Worker 			0x14, 0x91, 0xbe, 0x3a, 0x76,
227*1c60b9acSAndroid Build Coastguard Worker 			0xdc, 0xea, 0x6c, 0x42, 0x71,
228*1c60b9acSAndroid Build Coastguard Worker 			0x88, 0x00, 0x11, 0x22, 0x33,
229*1c60b9acSAndroid Build Coastguard Worker 			0x77, 0x88, 0x99, 0xaa, 0x21,
230*1c60b9acSAndroid Build Coastguard Worker 			0x22, 0x23, 0x24, 0x25, 0x26,
231*1c60b9acSAndroid Build Coastguard Worker 			0x27, 0x28, 0xaa, 0xbb, 0xcc,
232*1c60b9acSAndroid Build Coastguard Worker 			0xdd, 0xee, 0xff, 0xa5, 0xa6,
233*1c60b9acSAndroid Build Coastguard Worker 			0xa7, 0xa8, 0xa9, 0xa0, 0xb1,
234*1c60b9acSAndroid Build Coastguard Worker 			0xb2, 0xb3, 0xb4,
235*1c60b9acSAndroid Build Coastguard Worker 	},
236*1c60b9acSAndroid Build Coastguard Worker 
237*1c60b9acSAndroid Build Coastguard Worker 	cose_key10[] = { /* kid "11" (again) ed22519 OKP key */
238*1c60b9acSAndroid Build Coastguard Worker 			0xa5, 0x01, 0x01, 0x02, 0x42,
239*1c60b9acSAndroid Build Coastguard Worker 			0x31, 0x31, 0x20, 0x06, 0x21,
240*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0xd7, 0x5a, 0x98,
241*1c60b9acSAndroid Build Coastguard Worker 			0x01, 0x82, 0xb1, 0x0a, 0xb7,
242*1c60b9acSAndroid Build Coastguard Worker 			0xd5, 0x4b, 0xfe, 0xd3, 0xc9,
243*1c60b9acSAndroid Build Coastguard Worker 			0x64, 0x07, 0x3a, 0x0e, 0xe1,
244*1c60b9acSAndroid Build Coastguard Worker 			0x72, 0xf3, 0xda, 0xa6, 0x23,
245*1c60b9acSAndroid Build Coastguard Worker 			0x25, 0xaf, 0x02, 0x1a, 0x68,
246*1c60b9acSAndroid Build Coastguard Worker 			0xf7, 0x07, 0x51, 0x1a, 0x23,
247*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x9d, 0x61, 0xb1,
248*1c60b9acSAndroid Build Coastguard Worker 			0x9d, 0xef, 0xfd, 0x5a, 0x60,
249*1c60b9acSAndroid Build Coastguard Worker 			0xba, 0x84, 0x4a, 0xf4, 0x92,
250*1c60b9acSAndroid Build Coastguard Worker 			0xec, 0x2c, 0xc4, 0x44, 0x49,
251*1c60b9acSAndroid Build Coastguard Worker 			0xc5, 0x69, 0x7b, 0x32, 0x69,
252*1c60b9acSAndroid Build Coastguard Worker 			0x19, 0x70, 0x3b, 0xac, 0x03,
253*1c60b9acSAndroid Build Coastguard Worker 			0x1c, 0xae, 0x7f, 0x60
254*1c60b9acSAndroid Build Coastguard Worker 	},
255*1c60b9acSAndroid Build Coastguard Worker 
256*1c60b9acSAndroid Build Coastguard Worker 	cose_key_set1[] = {
257*1c60b9acSAndroid Build Coastguard Worker 
258*1c60b9acSAndroid Build Coastguard Worker 			0x89,
259*1c60b9acSAndroid Build Coastguard Worker 
260*1c60b9acSAndroid Build Coastguard Worker 			0xa6, 0x01, 0x02, 0x02, 0x42,
261*1c60b9acSAndroid Build Coastguard Worker 			0x31, 0x31, 0x20, 0x01, 0x21,
262*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0xba, 0xc5, 0xb1,
263*1c60b9acSAndroid Build Coastguard Worker 			0x1c, 0xad, 0x8f, 0x99, 0xf9,
264*1c60b9acSAndroid Build Coastguard Worker 			0xc7, 0x2b, 0x05, 0xcf, 0x4b,
265*1c60b9acSAndroid Build Coastguard Worker 			0x9e, 0x26, 0xd2, 0x44, 0xdc,
266*1c60b9acSAndroid Build Coastguard Worker 			0x18, 0x9f, 0x74, 0x52, 0x28,
267*1c60b9acSAndroid Build Coastguard Worker 			0x25, 0x5a, 0x21, 0x9a, 0x86,
268*1c60b9acSAndroid Build Coastguard Worker 			0xd6, 0xa0, 0x9e, 0xff, 0x22,
269*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x20, 0x13, 0x8b,
270*1c60b9acSAndroid Build Coastguard Worker 			0xf8, 0x2d, 0xc1, 0xb6, 0xd5,
271*1c60b9acSAndroid Build Coastguard Worker 			0x62, 0xbe, 0x0f, 0xa5, 0x4a,
272*1c60b9acSAndroid Build Coastguard Worker 			0xb7, 0x80, 0x4a, 0x3a, 0x64,
273*1c60b9acSAndroid Build Coastguard Worker 			0xb6, 0xd7, 0x2c, 0xcf, 0xed,
274*1c60b9acSAndroid Build Coastguard Worker 			0x6b, 0x6f, 0xb6, 0xed, 0x28,
275*1c60b9acSAndroid Build Coastguard Worker 			0xbb, 0xfc, 0x11, 0x7e, 0x23,
276*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x57, 0xc9, 0x20,
277*1c60b9acSAndroid Build Coastguard Worker 			0x77, 0x66, 0x41, 0x46, 0xe8,
278*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0x76, 0x0c, 0x95, 0x20,
279*1c60b9acSAndroid Build Coastguard Worker 			0xd0, 0x54, 0xaa, 0x93, 0xc3,
280*1c60b9acSAndroid Build Coastguard Worker 			0xaf, 0xb0, 0x4e, 0x30, 0x67,
281*1c60b9acSAndroid Build Coastguard Worker 			0x05, 0xdb, 0x60, 0x90, 0x30,
282*1c60b9acSAndroid Build Coastguard Worker 			0x85, 0x07, 0xb4, 0xd3,
283*1c60b9acSAndroid Build Coastguard Worker 
284*1c60b9acSAndroid Build Coastguard Worker 			0xa6, 0x01, 0x02, 0x02, 0x58,
285*1c60b9acSAndroid Build Coastguard Worker 			0x24, 0x6d, 0x65, 0x72, 0x69,
286*1c60b9acSAndroid Build Coastguard Worker 			0x61, 0x64, 0x6f, 0x63, 0x2e,
287*1c60b9acSAndroid Build Coastguard Worker 			0x62, 0x72, 0x61, 0x6e, 0x64,
288*1c60b9acSAndroid Build Coastguard Worker 			0x79, 0x62, 0x75, 0x63, 0x6b,
289*1c60b9acSAndroid Build Coastguard Worker 			0x40, 0x62, 0x75, 0x63, 0x6b,
290*1c60b9acSAndroid Build Coastguard Worker 			0x6c, 0x61, 0x6e, 0x64, 0x2e,
291*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x78, 0x61, 0x6d, 0x70,
292*1c60b9acSAndroid Build Coastguard Worker 			0x6c, 0x65, 0x20, 0x01, 0x21,
293*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x65, 0xed, 0xa5,
294*1c60b9acSAndroid Build Coastguard Worker 			0xa1, 0x25, 0x77, 0xc2, 0xba,
295*1c60b9acSAndroid Build Coastguard Worker 			0xe8, 0x29, 0x43, 0x7f, 0xe3,
296*1c60b9acSAndroid Build Coastguard Worker 			0x38, 0x70, 0x1a, 0x10, 0xaa,
297*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x75, 0xe1, 0xbb, 0x5b,
298*1c60b9acSAndroid Build Coastguard Worker 			0x5d, 0xe1, 0x08, 0xde, 0x43,
299*1c60b9acSAndroid Build Coastguard Worker 			0x9c, 0x08, 0x55, 0x1d, 0x22,
300*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0x1e, 0x52, 0xed,
301*1c60b9acSAndroid Build Coastguard Worker 			0x75, 0x70, 0x11, 0x63, 0xf7,
302*1c60b9acSAndroid Build Coastguard Worker 			0xf9, 0xe4, 0x0d, 0xdf, 0x9f,
303*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x1b, 0x3d, 0xc9, 0xba,
304*1c60b9acSAndroid Build Coastguard Worker 			0x86, 0x0a, 0xf7, 0xe0, 0xca,
305*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0xa7, 0xe9, 0xee, 0xcd,
306*1c60b9acSAndroid Build Coastguard Worker 			0x00, 0x84, 0xd1, 0x9c, 0x23,
307*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x20, 0xaf, 0xf9, 0x07,
308*1c60b9acSAndroid Build Coastguard Worker 			0xc9, 0x9f, 0x9a, 0xd3, 0xaa,
309*1c60b9acSAndroid Build Coastguard Worker 			0xe6, 0xc4, 0xcd, 0xf2, 0x11,
310*1c60b9acSAndroid Build Coastguard Worker 			0x22, 0xbc, 0xe2, 0xbd, 0x68,
311*1c60b9acSAndroid Build Coastguard Worker 			0xb5, 0x28, 0x3e, 0x69, 0x07,
312*1c60b9acSAndroid Build Coastguard Worker 			0x15, 0x4a, 0xd9, 0x11, 0x84,
313*1c60b9acSAndroid Build Coastguard Worker 			0x0f, 0xa2, 0x08, 0xcf,
314*1c60b9acSAndroid Build Coastguard Worker 
315*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x01, 0x04, 0x02, 0x4a,
316*1c60b9acSAndroid Build Coastguard Worker 			0x6f, 0x75, 0x72, 0x2d, 0x73,
317*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x63, 0x72, 0x65, 0x74,
318*1c60b9acSAndroid Build Coastguard Worker 			0x20, 0x58, 0x20, 0x84, 0x9b,
319*1c60b9acSAndroid Build Coastguard Worker 			0x57, 0x21, 0x9d, 0xae, 0x48,
320*1c60b9acSAndroid Build Coastguard Worker 			0xde, 0x64, 0x6d, 0x07, 0xdb,
321*1c60b9acSAndroid Build Coastguard Worker 			0xb5, 0x33, 0x56, 0x6e, 0x97,
322*1c60b9acSAndroid Build Coastguard Worker 			0x66, 0x86, 0x45, 0x7c, 0x14,
323*1c60b9acSAndroid Build Coastguard Worker 			0x91, 0xbe, 0x3a, 0x76, 0xdc,
324*1c60b9acSAndroid Build Coastguard Worker 			0xea, 0x6c, 0x42, 0x71, 0x88,
325*1c60b9acSAndroid Build Coastguard Worker 
326*1c60b9acSAndroid Build Coastguard Worker 			0xa6, 0x01, 0x02, 0x02, 0x58,
327*1c60b9acSAndroid Build Coastguard Worker 			0x1e, 0x62, 0x69, 0x6c, 0x62,
328*1c60b9acSAndroid Build Coastguard Worker 			0x6f, 0x2e, 0x62, 0x61, 0x67,
329*1c60b9acSAndroid Build Coastguard Worker 			0x67, 0x69, 0x6e, 0x73, 0x40,
330*1c60b9acSAndroid Build Coastguard Worker 			0x68, 0x6f, 0x62, 0x62, 0x69,
331*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x6f, 0x6e, 0x2e, 0x65,
332*1c60b9acSAndroid Build Coastguard Worker 			0x78, 0x61, 0x6d, 0x70, 0x6c,
333*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x20, 0x03, 0x21, 0x58,
334*1c60b9acSAndroid Build Coastguard Worker 			0x42, 0x00, 0x72, 0x99, 0x2c,
335*1c60b9acSAndroid Build Coastguard Worker 			0xb3, 0xac, 0x08, 0xec, 0xf3,
336*1c60b9acSAndroid Build Coastguard Worker 			0xe5, 0xc6, 0x3d, 0xed, 0xec,
337*1c60b9acSAndroid Build Coastguard Worker 			0x0d, 0x51, 0xa8, 0xc1, 0xf7,
338*1c60b9acSAndroid Build Coastguard Worker 			0x9e, 0xf2, 0xf8, 0x2f, 0x94,
339*1c60b9acSAndroid Build Coastguard Worker 			0xf3, 0xc7, 0x37, 0xbf, 0x5d,
340*1c60b9acSAndroid Build Coastguard Worker 			0xe7, 0x98, 0x66, 0x71, 0xea,
341*1c60b9acSAndroid Build Coastguard Worker 			0xc6, 0x25, 0xfe, 0x82, 0x57,
342*1c60b9acSAndroid Build Coastguard Worker 			0xbb, 0xd0, 0x39, 0x46, 0x44,
343*1c60b9acSAndroid Build Coastguard Worker 			0xca, 0xaa, 0x3a, 0xaf, 0x8f,
344*1c60b9acSAndroid Build Coastguard Worker 			0x27, 0xa4, 0x58, 0x5f, 0xbb,
345*1c60b9acSAndroid Build Coastguard Worker 			0xca, 0xd0, 0xf2, 0x45, 0x76,
346*1c60b9acSAndroid Build Coastguard Worker 			0x20, 0x08, 0x5e, 0x5c, 0x8f,
347*1c60b9acSAndroid Build Coastguard Worker 			0x42, 0xad, 0x22, 0x58, 0x42,
348*1c60b9acSAndroid Build Coastguard Worker 			0x01, 0xdc, 0xa6, 0x94, 0x7b,
349*1c60b9acSAndroid Build Coastguard Worker 			0xce, 0x88, 0xbc, 0x57, 0x90,
350*1c60b9acSAndroid Build Coastguard Worker 			0x48, 0x5a, 0xc9, 0x74, 0x27,
351*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x2b, 0xc3, 0x5f, 0x88,
352*1c60b9acSAndroid Build Coastguard Worker 			0x7d, 0x86, 0xd6, 0x5a, 0x08,
353*1c60b9acSAndroid Build Coastguard Worker 			0x93, 0x77, 0xe2, 0x47, 0xe6,
354*1c60b9acSAndroid Build Coastguard Worker 			0x0b, 0xaa, 0x55, 0xe4, 0xe8,
355*1c60b9acSAndroid Build Coastguard Worker 			0x50, 0x1e, 0x2a, 0xda, 0x57,
356*1c60b9acSAndroid Build Coastguard Worker 			0x24, 0xac, 0x51, 0xd6, 0x90,
357*1c60b9acSAndroid Build Coastguard Worker 			0x90, 0x08, 0x03, 0x3e, 0xbc,
358*1c60b9acSAndroid Build Coastguard Worker 			0x10, 0xac, 0x99, 0x9b, 0x9d,
359*1c60b9acSAndroid Build Coastguard Worker 			0x7f, 0x5c, 0xc2, 0x51, 0x9f,
360*1c60b9acSAndroid Build Coastguard Worker 			0x3f, 0xe1, 0xea, 0x1d, 0x94,
361*1c60b9acSAndroid Build Coastguard Worker 			0x75, 0x23, 0x58, 0x42, 0x00,
362*1c60b9acSAndroid Build Coastguard Worker 			0x08, 0x51, 0x38, 0xdd, 0xab,
363*1c60b9acSAndroid Build Coastguard Worker 			0xf5, 0xca, 0x97, 0x5f, 0x58,
364*1c60b9acSAndroid Build Coastguard Worker 			0x60, 0xf9, 0x1a, 0x08, 0xe9,
365*1c60b9acSAndroid Build Coastguard Worker 			0x1d, 0x6d, 0x5f, 0x9a, 0x76,
366*1c60b9acSAndroid Build Coastguard Worker 			0xad, 0x40, 0x18, 0x76, 0x6a,
367*1c60b9acSAndroid Build Coastguard Worker 			0x47, 0x66, 0x80, 0xb5, 0x5c,
368*1c60b9acSAndroid Build Coastguard Worker 			0xd3, 0x39, 0xe8, 0xab, 0x6c,
369*1c60b9acSAndroid Build Coastguard Worker 			0x72, 0xb5, 0xfa, 0xcd, 0xb2,
370*1c60b9acSAndroid Build Coastguard Worker 			0xa2, 0xa5, 0x0a, 0xc2, 0x5b,
371*1c60b9acSAndroid Build Coastguard Worker 			0xd0, 0x86, 0x64, 0x7d, 0xd3,
372*1c60b9acSAndroid Build Coastguard Worker 			0xe2, 0xe6, 0xe9, 0x9e, 0x84,
373*1c60b9acSAndroid Build Coastguard Worker 			0xca, 0x2c, 0x36, 0x09, 0xfd,
374*1c60b9acSAndroid Build Coastguard Worker 			0xf1, 0x77, 0xfe, 0xb2, 0x6d,
375*1c60b9acSAndroid Build Coastguard Worker 
376*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x01, 0x04, 0x02, 0x4b,
377*1c60b9acSAndroid Build Coastguard Worker 			0x6f, 0x75, 0x72, 0x2d, 0x73,
378*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x63, 0x72, 0x65, 0x74,
379*1c60b9acSAndroid Build Coastguard Worker 			0x32, 0x20, 0x50, 0x84, 0x9b,
380*1c60b9acSAndroid Build Coastguard Worker 			0x57, 0x86, 0x45, 0x7c, 0x14,
381*1c60b9acSAndroid Build Coastguard Worker 			0x91, 0xbe, 0x3a, 0x76, 0xdc,
382*1c60b9acSAndroid Build Coastguard Worker 			0xea, 0x6c, 0x42, 0x71,
383*1c60b9acSAndroid Build Coastguard Worker 
384*1c60b9acSAndroid Build Coastguard Worker 			0xa6, 0x01, 0x02, 0x02, 0x58,
385*1c60b9acSAndroid Build Coastguard Worker 			0x21, 0x70, 0x65, 0x72, 0x65,
386*1c60b9acSAndroid Build Coastguard Worker 			0x67, 0x72, 0x69, 0x6e, 0x2e,
387*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x6f, 0x6f, 0x6b, 0x40,
388*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x75, 0x63, 0x6b, 0x62,
389*1c60b9acSAndroid Build Coastguard Worker 			0x6f, 0x72, 0x6f, 0x75, 0x67,
390*1c60b9acSAndroid Build Coastguard Worker 			0x68, 0x2e, 0x65, 0x78, 0x61,
391*1c60b9acSAndroid Build Coastguard Worker 			0x6d, 0x70, 0x6c, 0x65, 0x20,
392*1c60b9acSAndroid Build Coastguard Worker 			0x01, 0x21, 0x58, 0x20, 0x98,
393*1c60b9acSAndroid Build Coastguard Worker 			0xf5, 0x0a, 0x4f, 0xf6, 0xc0,
394*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x61, 0xc8, 0x86, 0x0d,
395*1c60b9acSAndroid Build Coastguard Worker 			0x13, 0xa6, 0x38, 0xea, 0x56,
396*1c60b9acSAndroid Build Coastguard Worker 			0xc3, 0xf5, 0xad, 0x75, 0x90,
397*1c60b9acSAndroid Build Coastguard Worker 			0xbb, 0xfb, 0xf0, 0x54, 0xe1,
398*1c60b9acSAndroid Build Coastguard Worker 			0xc7, 0xb4, 0xd9, 0x1d, 0x62,
399*1c60b9acSAndroid Build Coastguard Worker 			0x80, 0x22, 0x58, 0x20, 0xf0,
400*1c60b9acSAndroid Build Coastguard Worker 			0x14, 0x00, 0xb0, 0x89, 0x86,
401*1c60b9acSAndroid Build Coastguard Worker 			0x78, 0x04, 0xb8, 0xe9, 0xfc,
402*1c60b9acSAndroid Build Coastguard Worker 			0x96, 0xc3, 0x93, 0x21, 0x61,
403*1c60b9acSAndroid Build Coastguard Worker 			0xf1, 0x93, 0x4f, 0x42, 0x23,
404*1c60b9acSAndroid Build Coastguard Worker 			0x06, 0x91, 0x70, 0xd9, 0x24,
405*1c60b9acSAndroid Build Coastguard Worker 			0xb7, 0xe0, 0x3b, 0xf8, 0x22,
406*1c60b9acSAndroid Build Coastguard Worker 			0xbb, 0x23, 0x58, 0x20, 0x02,
407*1c60b9acSAndroid Build Coastguard Worker 			0xd1, 0xf7, 0xe6, 0xf2, 0x6c,
408*1c60b9acSAndroid Build Coastguard Worker 			0x43, 0xd4, 0x86, 0x8d, 0x87,
409*1c60b9acSAndroid Build Coastguard Worker 			0xce, 0xb2, 0x35, 0x31, 0x61,
410*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x0a, 0xac, 0xf1, 0xf7,
411*1c60b9acSAndroid Build Coastguard Worker 			0x16, 0x36, 0x47, 0x98, 0x4b,
412*1c60b9acSAndroid Build Coastguard Worker 			0x52, 0x2a, 0x84, 0x8d, 0xf1,
413*1c60b9acSAndroid Build Coastguard Worker 			0xc3,
414*1c60b9acSAndroid Build Coastguard Worker 
415*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x01, 0x04, 0x02, 0x58,
416*1c60b9acSAndroid Build Coastguard Worker 			0x24, 0x30, 0x31, 0x38, 0x63,
417*1c60b9acSAndroid Build Coastguard Worker 			0x30, 0x61, 0x65, 0x35, 0x2d,
418*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x64, 0x39, 0x62, 0x2d,
419*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x37, 0x31, 0x62, 0x2d,
420*1c60b9acSAndroid Build Coastguard Worker 			0x62, 0x66, 0x64, 0x36, 0x2d,
421*1c60b9acSAndroid Build Coastguard Worker 			0x65, 0x65, 0x66, 0x33, 0x31,
422*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x62, 0x63, 0x37, 0x30,
423*1c60b9acSAndroid Build Coastguard Worker 			0x33, 0x37, 0x04, 0x58, 0x20,
424*1c60b9acSAndroid Build Coastguard Worker 			0x84, 0x9b, 0x57, 0x21, 0x9d,
425*1c60b9acSAndroid Build Coastguard Worker 			0xae, 0x48, 0xde, 0x64, 0x6d,
426*1c60b9acSAndroid Build Coastguard Worker 			0x07, 0xdb, 0xb5, 0x33, 0x56,
427*1c60b9acSAndroid Build Coastguard Worker 			0x6e, 0x97, 0x66, 0x86, 0x45,
428*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0x14, 0x91, 0xbe, 0x3a,
429*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0xdc, 0xea, 0x6c, 0x42,
430*1c60b9acSAndroid Build Coastguard Worker 			0x71, 0x88,
431*1c60b9acSAndroid Build Coastguard Worker 
432*1c60b9acSAndroid Build Coastguard Worker 			/* kid "sec-48" for hmac 384 */
433*1c60b9acSAndroid Build Coastguard Worker 
434*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x01, 0x04, 0x02, 0x46,
435*1c60b9acSAndroid Build Coastguard Worker 			0x73, 0x65, 0x63, 0x2d, 0x34,
436*1c60b9acSAndroid Build Coastguard Worker 			0x38, 0x20, 0x58, 0x30, 0x84,
437*1c60b9acSAndroid Build Coastguard Worker 			0x9b, 0x57, 0x21, 0x9d, 0xae,
438*1c60b9acSAndroid Build Coastguard Worker 			0x48, 0xde, 0x64, 0x6d, 0x07,
439*1c60b9acSAndroid Build Coastguard Worker 			0xdb, 0xb5, 0x33, 0x56, 0x6e,
440*1c60b9acSAndroid Build Coastguard Worker 			0x97, 0x66, 0x86, 0x45, 0x7c,
441*1c60b9acSAndroid Build Coastguard Worker 			0x14, 0x91, 0xbe, 0x3a, 0x76,
442*1c60b9acSAndroid Build Coastguard Worker 			0xdc, 0xea, 0x6c, 0x42, 0x71,
443*1c60b9acSAndroid Build Coastguard Worker 			0x88, 0x00, 0x11, 0x22, 0x33,
444*1c60b9acSAndroid Build Coastguard Worker 			0x77, 0x88, 0x99, 0xaa, 0x21,
445*1c60b9acSAndroid Build Coastguard Worker 			0x22, 0x23, 0x24, 0x25, 0x26,
446*1c60b9acSAndroid Build Coastguard Worker 			0x27, 0x28,
447*1c60b9acSAndroid Build Coastguard Worker 
448*1c60b9acSAndroid Build Coastguard Worker 			/* kid "sec-64" for hmac 512 */
449*1c60b9acSAndroid Build Coastguard Worker 
450*1c60b9acSAndroid Build Coastguard Worker 			0xa3, 0x01, 0x04, 0x02, 0x46,
451*1c60b9acSAndroid Build Coastguard Worker 			0x73, 0x65, 0x63, 0x2d, 0x36,
452*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x20, 0x58, 0x40, 0x84,
453*1c60b9acSAndroid Build Coastguard Worker 			0x9b, 0x57, 0x21, 0x9d, 0xae,
454*1c60b9acSAndroid Build Coastguard Worker 			0x48, 0xde, 0x64, 0x6d, 0x07,
455*1c60b9acSAndroid Build Coastguard Worker 			0xdb, 0xb5, 0x33, 0x56, 0x6e,
456*1c60b9acSAndroid Build Coastguard Worker 			0x97, 0x66, 0x86, 0x45, 0x7c,
457*1c60b9acSAndroid Build Coastguard Worker 			0x14, 0x91, 0xbe, 0x3a, 0x76,
458*1c60b9acSAndroid Build Coastguard Worker 			0xdc, 0xea, 0x6c, 0x42, 0x71,
459*1c60b9acSAndroid Build Coastguard Worker 			0x88, 0x00, 0x11, 0x22, 0x33,
460*1c60b9acSAndroid Build Coastguard Worker 			0x77, 0x88, 0x99, 0xaa, 0x21,
461*1c60b9acSAndroid Build Coastguard Worker 			0x22, 0x23, 0x24, 0x25, 0x26,
462*1c60b9acSAndroid Build Coastguard Worker 			0x27, 0x28, 0xaa, 0xbb, 0xcc,
463*1c60b9acSAndroid Build Coastguard Worker 			0xdd, 0xee, 0xff, 0xa5, 0xa6,
464*1c60b9acSAndroid Build Coastguard Worker 			0xa7, 0xa8, 0xa9, 0xa0, 0xb1,
465*1c60b9acSAndroid Build Coastguard Worker 			0xb2, 0xb3, 0xb4,
466*1c60b9acSAndroid Build Coastguard Worker }
467*1c60b9acSAndroid Build Coastguard Worker ;
468*1c60b9acSAndroid Build Coastguard Worker 
469*1c60b9acSAndroid Build Coastguard Worker struct keyinfo {
470*1c60b9acSAndroid Build Coastguard Worker 	const uint8_t		*set;
471*1c60b9acSAndroid Build Coastguard Worker 	size_t			len;
472*1c60b9acSAndroid Build Coastguard Worker };
473*1c60b9acSAndroid Build Coastguard Worker 
474*1c60b9acSAndroid Build Coastguard Worker struct keyinfo keyset1 = { cose_key_set1, sizeof(cose_key_set1) },
475*1c60b9acSAndroid Build Coastguard Worker 		key3 = { cose_key3, sizeof(cose_key3) },
476*1c60b9acSAndroid Build Coastguard Worker 		key8 = { cose_key8, sizeof(cose_key8) },
477*1c60b9acSAndroid Build Coastguard Worker 		key9 = { cose_key9, sizeof(cose_key9) },
478*1c60b9acSAndroid Build Coastguard Worker 		key10 = { cose_key10, sizeof(cose_key10) }
479*1c60b9acSAndroid Build Coastguard Worker ;
480*1c60b9acSAndroid Build Coastguard Worker 
481*1c60b9acSAndroid Build Coastguard Worker /* key pieces */
482*1c60b9acSAndroid Build Coastguard Worker 
483*1c60b9acSAndroid Build Coastguard Worker static const uint8_t
484*1c60b9acSAndroid Build Coastguard Worker 	key1_x[] = { 0xba, 0xc5, 0xb1, 0x1c, 0xad,
485*1c60b9acSAndroid Build Coastguard Worker 			0x8f, 0x99, 0xf9, 0xc7, 0x2b,
486*1c60b9acSAndroid Build Coastguard Worker 			0x05, 0xcf, 0x4b, 0x9e, 0x26,
487*1c60b9acSAndroid Build Coastguard Worker 			0xd2, 0x44, 0xdc, 0x18, 0x9f,
488*1c60b9acSAndroid Build Coastguard Worker 			0x74, 0x52, 0x28, 0x25, 0x5a,
489*1c60b9acSAndroid Build Coastguard Worker 			0x21, 0x9a, 0x86, 0xd6, 0xa0,
490*1c60b9acSAndroid Build Coastguard Worker 			0x9e, 0xff },
491*1c60b9acSAndroid Build Coastguard Worker 	key1_y[] = { 0x20, 0x13, 0x8b, 0xf8, 0x2d,
492*1c60b9acSAndroid Build Coastguard Worker 			0xc1, 0xb6, 0xd5, 0x62, 0xbe,
493*1c60b9acSAndroid Build Coastguard Worker 			0x0f, 0xa5, 0x4a, 0xb7, 0x80,
494*1c60b9acSAndroid Build Coastguard Worker 			0x4a, 0x3a, 0x64, 0xb6, 0xd7,
495*1c60b9acSAndroid Build Coastguard Worker 			0x2c, 0xcf, 0xed, 0x6b, 0x6f,
496*1c60b9acSAndroid Build Coastguard Worker 			0xb6, 0xed, 0x28, 0xbb, 0xfc,
497*1c60b9acSAndroid Build Coastguard Worker 			0x11, 0x7e },
498*1c60b9acSAndroid Build Coastguard Worker 	key1_d[] = { 0x57, 0xc9, 0x20, 0x77, 0x66,
499*1c60b9acSAndroid Build Coastguard Worker 			0x41, 0x46, 0xe8, 0x76, 0x76,
500*1c60b9acSAndroid Build Coastguard Worker 			0x0c, 0x95, 0x20, 0xd0, 0x54,
501*1c60b9acSAndroid Build Coastguard Worker 			0xaa, 0x93, 0xc3, 0xaf, 0xb0,
502*1c60b9acSAndroid Build Coastguard Worker 			0x4e, 0x30, 0x67, 0x05, 0xdb,
503*1c60b9acSAndroid Build Coastguard Worker 			0x60, 0x90, 0x30, 0x85, 0x07,
504*1c60b9acSAndroid Build Coastguard Worker 			0xb4, 0xd3 },
505*1c60b9acSAndroid Build Coastguard Worker 
506*1c60b9acSAndroid Build Coastguard Worker 	key2_x[] = { 0x65, 0xed, 0xa5, 0xa1, 0x25,
507*1c60b9acSAndroid Build Coastguard Worker 			0x77, 0xc2, 0xba, 0xe8, 0x29,
508*1c60b9acSAndroid Build Coastguard Worker 			0x43, 0x7f, 0xe3, 0x38, 0x70,
509*1c60b9acSAndroid Build Coastguard Worker 			0x1a, 0x10, 0xaa, 0xa3, 0x75,
510*1c60b9acSAndroid Build Coastguard Worker 			0xe1, 0xbb, 0x5b, 0x5d, 0xe1,
511*1c60b9acSAndroid Build Coastguard Worker 			0x08, 0xde, 0x43, 0x9c, 0x08,
512*1c60b9acSAndroid Build Coastguard Worker 			0x55, 0x1d },
513*1c60b9acSAndroid Build Coastguard Worker 	key2_y[] = { 0x1e, 0x52, 0xed, 0x75, 0x70,
514*1c60b9acSAndroid Build Coastguard Worker 			0x11, 0x63, 0xf7, 0xf9, 0xe4,
515*1c60b9acSAndroid Build Coastguard Worker 			0x0d, 0xdf, 0x9f, 0x34, 0x1b,
516*1c60b9acSAndroid Build Coastguard Worker 			0x3d, 0xc9, 0xba, 0x86, 0x0a,
517*1c60b9acSAndroid Build Coastguard Worker 			0xf7, 0xe0, 0xca, 0x7c, 0xa7,
518*1c60b9acSAndroid Build Coastguard Worker 			0xe9, 0xee, 0xcd, 0x00, 0x84,
519*1c60b9acSAndroid Build Coastguard Worker 			0xd1, 0x9c },
520*1c60b9acSAndroid Build Coastguard Worker 	key2_d[] = { 0xaf, 0xf9, 0x07, 0xc9, 0x9f,
521*1c60b9acSAndroid Build Coastguard Worker 			0x9a, 0xd3, 0xaa, 0xe6, 0xc4,
522*1c60b9acSAndroid Build Coastguard Worker 			0xcd, 0xf2, 0x11, 0x22, 0xbc,
523*1c60b9acSAndroid Build Coastguard Worker 			0xe2, 0xbd, 0x68, 0xb5, 0x28,
524*1c60b9acSAndroid Build Coastguard Worker 			0x3e, 0x69, 0x07, 0x15, 0x4a,
525*1c60b9acSAndroid Build Coastguard Worker 			0xd9, 0x11, 0x84, 0x0f, 0xa2,
526*1c60b9acSAndroid Build Coastguard Worker 			0x08, 0xcf },
527*1c60b9acSAndroid Build Coastguard Worker 
528*1c60b9acSAndroid Build Coastguard Worker 	key3_k[] = { 0x84, 0x9b, 0x57, 0x21, 0x9d,
529*1c60b9acSAndroid Build Coastguard Worker 			0xae, 0x48, 0xde, 0x64, 0x6d,
530*1c60b9acSAndroid Build Coastguard Worker 			0x07, 0xdb, 0xb5, 0x33, 0x56,
531*1c60b9acSAndroid Build Coastguard Worker 			0x6e, 0x97, 0x66, 0x86, 0x45,
532*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0x14, 0x91, 0xbe, 0x3a,
533*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0xdc, 0xea, 0x6c, 0x42,
534*1c60b9acSAndroid Build Coastguard Worker 			0x71, 0x88 },
535*1c60b9acSAndroid Build Coastguard Worker 
536*1c60b9acSAndroid Build Coastguard Worker 	key4_x[] = { 0x00, 0x72, 0x99, 0x2c, 0xb3,
537*1c60b9acSAndroid Build Coastguard Worker 			0xac, 0x08, 0xec, 0xf3, 0xe5,
538*1c60b9acSAndroid Build Coastguard Worker 			0xc6, 0x3d, 0xed, 0xec, 0x0d,
539*1c60b9acSAndroid Build Coastguard Worker 			0x51, 0xa8, 0xc1, 0xf7, 0x9e,
540*1c60b9acSAndroid Build Coastguard Worker 			0xf2, 0xf8, 0x2f, 0x94, 0xf3,
541*1c60b9acSAndroid Build Coastguard Worker 			0xc7, 0x37, 0xbf, 0x5d, 0xe7,
542*1c60b9acSAndroid Build Coastguard Worker 			0x98, 0x66, 0x71, 0xea, 0xc6,
543*1c60b9acSAndroid Build Coastguard Worker 			0x25, 0xfe, 0x82, 0x57, 0xbb,
544*1c60b9acSAndroid Build Coastguard Worker 			0xd0, 0x39, 0x46, 0x44, 0xca,
545*1c60b9acSAndroid Build Coastguard Worker 			0xaa, 0x3a, 0xaf, 0x8f, 0x27,
546*1c60b9acSAndroid Build Coastguard Worker 			0xa4, 0x58, 0x5f, 0xbb, 0xca,
547*1c60b9acSAndroid Build Coastguard Worker 			0xd0, 0xf2, 0x45, 0x76, 0x20,
548*1c60b9acSAndroid Build Coastguard Worker 			0x08, 0x5e, 0x5c, 0x8f, 0x42,
549*1c60b9acSAndroid Build Coastguard Worker 			0xad },
550*1c60b9acSAndroid Build Coastguard Worker 	key4_y[] = { 0x01, 0xdc, 0xa6, 0x94, 0x7b,
551*1c60b9acSAndroid Build Coastguard Worker 			0xce, 0x88, 0xbc, 0x57, 0x90,
552*1c60b9acSAndroid Build Coastguard Worker 			0x48, 0x5a, 0xc9, 0x74, 0x27,
553*1c60b9acSAndroid Build Coastguard Worker 			0x34, 0x2b, 0xc3, 0x5f, 0x88,
554*1c60b9acSAndroid Build Coastguard Worker 			0x7d, 0x86, 0xd6, 0x5a, 0x08,
555*1c60b9acSAndroid Build Coastguard Worker 			0x93, 0x77, 0xe2, 0x47, 0xe6,
556*1c60b9acSAndroid Build Coastguard Worker 			0x0b, 0xaa, 0x55, 0xe4, 0xe8,
557*1c60b9acSAndroid Build Coastguard Worker 			0x50, 0x1e, 0x2a, 0xda, 0x57,
558*1c60b9acSAndroid Build Coastguard Worker 			0x24, 0xac, 0x51, 0xd6, 0x90,
559*1c60b9acSAndroid Build Coastguard Worker 			0x90, 0x08, 0x03, 0x3e, 0xbc,
560*1c60b9acSAndroid Build Coastguard Worker 			0x10, 0xac, 0x99, 0x9b, 0x9d,
561*1c60b9acSAndroid Build Coastguard Worker 			0x7f, 0x5c, 0xc2, 0x51, 0x9f,
562*1c60b9acSAndroid Build Coastguard Worker 			0x3f, 0xe1, 0xea, 0x1d, 0x94,
563*1c60b9acSAndroid Build Coastguard Worker 			0x75 },
564*1c60b9acSAndroid Build Coastguard Worker 	key4_d[] = { 0x00, 0x08, 0x51, 0x38, 0xdd,
565*1c60b9acSAndroid Build Coastguard Worker 			0xab, 0xf5, 0xca, 0x97, 0x5f,
566*1c60b9acSAndroid Build Coastguard Worker 			0x58, 0x60, 0xf9, 0x1a, 0x08,
567*1c60b9acSAndroid Build Coastguard Worker 			0xe9, 0x1d, 0x6d, 0x5f, 0x9a,
568*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0xad, 0x40, 0x18, 0x76,
569*1c60b9acSAndroid Build Coastguard Worker 			0x6a, 0x47, 0x66, 0x80, 0xb5,
570*1c60b9acSAndroid Build Coastguard Worker 			0x5c, 0xd3, 0x39, 0xe8, 0xab,
571*1c60b9acSAndroid Build Coastguard Worker 			0x6c, 0x72, 0xb5, 0xfa, 0xcd,
572*1c60b9acSAndroid Build Coastguard Worker 			0xb2, 0xa2, 0xa5, 0x0a, 0xc2,
573*1c60b9acSAndroid Build Coastguard Worker 			0x5b, 0xd0, 0x86, 0x64, 0x7d,
574*1c60b9acSAndroid Build Coastguard Worker 			0xd3, 0xe2, 0xe6, 0xe9, 0x9e,
575*1c60b9acSAndroid Build Coastguard Worker 			0x84, 0xca, 0x2c, 0x36, 0x09,
576*1c60b9acSAndroid Build Coastguard Worker 			0xfd, 0xf1, 0x77, 0xfe, 0xb2,
577*1c60b9acSAndroid Build Coastguard Worker 			0x6d },
578*1c60b9acSAndroid Build Coastguard Worker 	key5_k[] = { 0x84, 0x9b, 0x57, 0x86, 0x45,
579*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0x14, 0x91, 0xbe, 0x3a,
580*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0xdc, 0xea, 0x6c, 0x42,
581*1c60b9acSAndroid Build Coastguard Worker 			0x71 },
582*1c60b9acSAndroid Build Coastguard Worker 
583*1c60b9acSAndroid Build Coastguard Worker 	key6_x[] = { 0x98, 0xf5, 0x0a, 0x4f, 0xf6,
584*1c60b9acSAndroid Build Coastguard Worker 			0xc0, 0x58, 0x61, 0xc8, 0x86,
585*1c60b9acSAndroid Build Coastguard Worker 			0x0d, 0x13, 0xa6, 0x38, 0xea,
586*1c60b9acSAndroid Build Coastguard Worker 			0x56, 0xc3, 0xf5, 0xad, 0x75,
587*1c60b9acSAndroid Build Coastguard Worker 			0x90, 0xbb, 0xfb, 0xf0, 0x54,
588*1c60b9acSAndroid Build Coastguard Worker 			0xe1, 0xc7, 0xb4, 0xd9, 0x1d,
589*1c60b9acSAndroid Build Coastguard Worker 			0x62, 0x80 },
590*1c60b9acSAndroid Build Coastguard Worker 	key6_y[] = { 0xf0, 0x14, 0x00, 0xb0, 0x89,
591*1c60b9acSAndroid Build Coastguard Worker 			0x86, 0x78, 0x04, 0xb8, 0xe9,
592*1c60b9acSAndroid Build Coastguard Worker 			0xfc, 0x96, 0xc3, 0x93, 0x21,
593*1c60b9acSAndroid Build Coastguard Worker 			0x61, 0xf1, 0x93, 0x4f, 0x42,
594*1c60b9acSAndroid Build Coastguard Worker 			0x23, 0x06, 0x91, 0x70, 0xd9,
595*1c60b9acSAndroid Build Coastguard Worker 			0x24, 0xb7, 0xe0, 0x3b, 0xf8,
596*1c60b9acSAndroid Build Coastguard Worker 			0x22, 0xbb },
597*1c60b9acSAndroid Build Coastguard Worker 	key6_d[] = { 0x02, 0xd1, 0xf7, 0xe6, 0xf2,
598*1c60b9acSAndroid Build Coastguard Worker 			0x6c, 0x43, 0xd4, 0x86, 0x8d,
599*1c60b9acSAndroid Build Coastguard Worker 			0x87, 0xce, 0xb2, 0x35, 0x31,
600*1c60b9acSAndroid Build Coastguard Worker 			0x61, 0x74, 0x0a, 0xac, 0xf1,
601*1c60b9acSAndroid Build Coastguard Worker 			0xf7, 0x16, 0x36, 0x47, 0x98,
602*1c60b9acSAndroid Build Coastguard Worker 			0x4b, 0x52, 0x2a, 0x84, 0x8d,
603*1c60b9acSAndroid Build Coastguard Worker 			0xf1, 0xc3 },
604*1c60b9acSAndroid Build Coastguard Worker 
605*1c60b9acSAndroid Build Coastguard Worker 	key7_k[] = { 0x84, 0x9b, 0x57, 0x21, 0x9d,
606*1c60b9acSAndroid Build Coastguard Worker 			0xae, 0x48, 0xde, 0x64, 0x6d,
607*1c60b9acSAndroid Build Coastguard Worker 			0x07, 0xdb, 0xb5, 0x33, 0x56,
608*1c60b9acSAndroid Build Coastguard Worker 			0x6e, 0x97, 0x66, 0x86, 0x45,
609*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0x14, 0x91, 0xbe, 0x3a,
610*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0xdc, 0xea, 0x6c, 0x42,
611*1c60b9acSAndroid Build Coastguard Worker 			0x71, 0x88 },
612*1c60b9acSAndroid Build Coastguard Worker 
613*1c60b9acSAndroid Build Coastguard Worker 	key8_k[] = { 0x84, 0x9b, 0x57, 0x21, 0x9d,
614*1c60b9acSAndroid Build Coastguard Worker 			0xae, 0x48, 0xde, 0x64, 0x6d,
615*1c60b9acSAndroid Build Coastguard Worker 			0x07, 0xdb, 0xb5, 0x33, 0x56,
616*1c60b9acSAndroid Build Coastguard Worker 			0x6e, 0x97, 0x66, 0x86, 0x45,
617*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0x14, 0x91, 0xbe, 0x3a,
618*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0xdc, 0xea, 0x6c, 0x42,
619*1c60b9acSAndroid Build Coastguard Worker 			0x71, 0x88, 0x00, 0x11, 0x22,
620*1c60b9acSAndroid Build Coastguard Worker 			0x33, 0x77, 0x88, 0x99, 0xaa,
621*1c60b9acSAndroid Build Coastguard Worker 			0x21, 0x22, 0x23, 0x24, 0x25,
622*1c60b9acSAndroid Build Coastguard Worker 			0x26, 0x27, 0x28 },
623*1c60b9acSAndroid Build Coastguard Worker 
624*1c60b9acSAndroid Build Coastguard Worker 	key9_k[] = {    0x84, 0x9b, 0x57, 0x21, 0x9d,
625*1c60b9acSAndroid Build Coastguard Worker 			0xae, 0x48, 0xde, 0x64, 0x6d,
626*1c60b9acSAndroid Build Coastguard Worker 			0x07, 0xdb, 0xb5, 0x33, 0x56,
627*1c60b9acSAndroid Build Coastguard Worker 			0x6e, 0x97, 0x66, 0x86, 0x45,
628*1c60b9acSAndroid Build Coastguard Worker 			0x7c, 0x14, 0x91, 0xbe, 0x3a,
629*1c60b9acSAndroid Build Coastguard Worker 			0x76, 0xdc, 0xea, 0x6c, 0x42,
630*1c60b9acSAndroid Build Coastguard Worker 			0x71, 0x88, 0x00, 0x11, 0x22,
631*1c60b9acSAndroid Build Coastguard Worker 			0x33, 0x77, 0x88, 0x99, 0xaa,
632*1c60b9acSAndroid Build Coastguard Worker 			0x21, 0x22, 0x23, 0x24, 0x25,
633*1c60b9acSAndroid Build Coastguard Worker 			0x26, 0x27, 0x28, 0xaa, 0xbb,
634*1c60b9acSAndroid Build Coastguard Worker 			0xcc, 0xdd, 0xee, 0xff, 0xa5,
635*1c60b9acSAndroid Build Coastguard Worker 			0xa6, 0xa7, 0xa8, 0xa9, 0xa0,
636*1c60b9acSAndroid Build Coastguard Worker 			0xb1, 0xb2, 0xb3, 0xb4 }
637*1c60b9acSAndroid Build Coastguard Worker #if 0
638*1c60b9acSAndroid Build Coastguard Worker 			,
639*1c60b9acSAndroid Build Coastguard Worker 	key10_x[] = {
640*1c60b9acSAndroid Build Coastguard Worker 			0xd7, 0x5a, 0x98, 0x01, 0x82,
641*1c60b9acSAndroid Build Coastguard Worker 			0xb1, 0x0a, 0xb7, 0xd5, 0x4b,
642*1c60b9acSAndroid Build Coastguard Worker 			0xfe, 0xd3, 0xc9, 0x64, 0x07,
643*1c60b9acSAndroid Build Coastguard Worker 			0x3a, 0x0e, 0xe1, 0x72, 0xf3,
644*1c60b9acSAndroid Build Coastguard Worker 			0xda, 0xa6, 0x23, 0x25, 0xaf,
645*1c60b9acSAndroid Build Coastguard Worker 			0x02, 0x1a, 0x68, 0xf7, 0x07,
646*1c60b9acSAndroid Build Coastguard Worker 			0x51, 0x1a
647*1c60b9acSAndroid Build Coastguard Worker 	}, key10_d[] = {
648*1c60b9acSAndroid Build Coastguard Worker 			0x9d, 0x61, 0xb1, 0x9d, 0xef,
649*1c60b9acSAndroid Build Coastguard Worker 			0xfd, 0x5a, 0x60, 0xba, 0x84,
650*1c60b9acSAndroid Build Coastguard Worker 			0x4a, 0xf4, 0x92, 0xec, 0x2c,
651*1c60b9acSAndroid Build Coastguard Worker 			0xc4, 0x44, 0x49, 0xc5, 0x69,
652*1c60b9acSAndroid Build Coastguard Worker 			0x7b, 0x32, 0x69, 0x19, 0x70,
653*1c60b9acSAndroid Build Coastguard Worker 			0x3b, 0xac, 0x03, 0x1c, 0xae,
654*1c60b9acSAndroid Build Coastguard Worker 			0x7f, 0x60
655*1c60b9acSAndroid Build Coastguard Worker 	}
656*1c60b9acSAndroid Build Coastguard Worker #endif
657*1c60b9acSAndroid Build Coastguard Worker ;
658*1c60b9acSAndroid Build Coastguard Worker 
659*1c60b9acSAndroid Build Coastguard Worker int
test_cose_keys(struct lws_context * context)660*1c60b9acSAndroid Build Coastguard Worker test_cose_keys(struct lws_context *context)
661*1c60b9acSAndroid Build Coastguard Worker {
662*1c60b9acSAndroid Build Coastguard Worker 	struct lws_cose_key *ck;
663*1c60b9acSAndroid Build Coastguard Worker 	lws_dll2_owner_t set;
664*1c60b9acSAndroid Build Coastguard Worker 	lws_lec_pctx_t wc;
665*1c60b9acSAndroid Build Coastguard Worker 	uint8_t buf[4096];
666*1c60b9acSAndroid Build Coastguard Worker 	int n;
667*1c60b9acSAndroid Build Coastguard Worker 
668*1c60b9acSAndroid Build Coastguard Worker #if 0
669*1c60b9acSAndroid Build Coastguard Worker 	{
670*1c60b9acSAndroid Build Coastguard Worker 		int fd = open("set1.cks",
671*1c60b9acSAndroid Build Coastguard Worker 			      LWS_O_CREAT | LWS_O_TRUNC | LWS_O_WRONLY, 0600);
672*1c60b9acSAndroid Build Coastguard Worker 
673*1c60b9acSAndroid Build Coastguard Worker 		if (fd >= 0) {
674*1c60b9acSAndroid Build Coastguard Worker 			write(fd, cose_key_set1, sizeof(cose_key_set1));
675*1c60b9acSAndroid Build Coastguard Worker 			close(fd);
676*1c60b9acSAndroid Build Coastguard Worker 		}
677*1c60b9acSAndroid Build Coastguard Worker 	}
678*1c60b9acSAndroid Build Coastguard Worker #endif
679*1c60b9acSAndroid Build Coastguard Worker 
680*1c60b9acSAndroid Build Coastguard Worker #if 0
681*1c60b9acSAndroid Build Coastguard Worker 	lws_lec_pctx_t wx;
682*1c60b9acSAndroid Build Coastguard Worker 	uint8_t dump[8192];
683*1c60b9acSAndroid Build Coastguard Worker 
684*1c60b9acSAndroid Build Coastguard Worker 	lws_lec_init(&wx, buf, sizeof(buf));
685*1c60b9acSAndroid Build Coastguard Worker 
686*1c60b9acSAndroid Build Coastguard Worker 	if (lws_lec_printf(&wx,
687*1c60b9acSAndroid Build Coastguard Worker 		"{%d:%d, %d:%.*b, %d:%d, %d:%.*b, %d:%.*b}",
688*1c60b9acSAndroid Build Coastguard Worker 		LWSCOSE_WKK_KTY, LWSCOSE_WKKTV_OKP,
689*1c60b9acSAndroid Build Coastguard Worker 		LWSCOSE_WKK_KID, 2, "11",
690*1c60b9acSAndroid Build Coastguard Worker 		LWSCOSE_WKOKP_CRV, LWSCOSE_WKEC_ED25519,
691*1c60b9acSAndroid Build Coastguard Worker 		LWSCOSE_WKECKP_X, (int)sizeof(key10_x), key10_x,
692*1c60b9acSAndroid Build Coastguard Worker //		LWSCOSE_WKECKP_Y, (int)sizeof(key6_y), key6_y,
693*1c60b9acSAndroid Build Coastguard Worker 		LWSCOSE_WKECKP_D, (int)sizeof(key10_d), key10_d) !=
694*1c60b9acSAndroid Build Coastguard Worker 			LWS_LECPCTX_RET_FINISHED)
695*1c60b9acSAndroid Build Coastguard Worker 		return 1;
696*1c60b9acSAndroid Build Coastguard Worker 
697*1c60b9acSAndroid Build Coastguard Worker 	lws_hex_from_byte_array(buf, wx.used, (char *)dump, sizeof(dump));
698*1c60b9acSAndroid Build Coastguard Worker 	puts((const char *)dump);
699*1c60b9acSAndroid Build Coastguard Worker #endif
700*1c60b9acSAndroid Build Coastguard Worker #if 0
701*1c60b9acSAndroid Build Coastguard Worker 	lws_lec_pctx_t wx;
702*1c60b9acSAndroid Build Coastguard Worker 	uint8_t dump[8192];
703*1c60b9acSAndroid Build Coastguard Worker 
704*1c60b9acSAndroid Build Coastguard Worker 	lws_lec_init(&wx, buf, sizeof(buf));
705*1c60b9acSAndroid Build Coastguard Worker 
706*1c60b9acSAndroid Build Coastguard Worker 	if (lws_lec_printf(&wx,
707*1c60b9acSAndroid Build Coastguard Worker 		"{%d:%d, %d:%.*b, %d:%.*b}",
708*1c60b9acSAndroid Build Coastguard Worker 		LWSCOSE_WKK_KTY, LWSCOSE_WKKTV_SYMMETRIC,
709*1c60b9acSAndroid Build Coastguard Worker 		LWSCOSE_WKK_KID, 6, "sec-64",
710*1c60b9acSAndroid Build Coastguard Worker 		-1, (int)sizeof(key9_k), key9_k) !=
711*1c60b9acSAndroid Build Coastguard Worker 			LWS_LECPCTX_RET_FINISHED)
712*1c60b9acSAndroid Build Coastguard Worker 		return 1;
713*1c60b9acSAndroid Build Coastguard Worker 
714*1c60b9acSAndroid Build Coastguard Worker 	lws_hex_from_byte_array(buf, wx.used, (char *)dump, sizeof(dump));
715*1c60b9acSAndroid Build Coastguard Worker 	puts((const char *)dump);
716*1c60b9acSAndroid Build Coastguard Worker #endif
717*1c60b9acSAndroid Build Coastguard Worker 
718*1c60b9acSAndroid Build Coastguard Worker 	/* key1 import */
719*1c60b9acSAndroid Build Coastguard Worker 
720*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 1 import\n", __func__);
721*1c60b9acSAndroid Build Coastguard Worker 
722*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, key_import_cb, NULL, cose_key1, sizeof(cose_key1));
723*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
724*1c60b9acSAndroid Build Coastguard Worker 		return 1;
725*1c60b9acSAndroid Build Coastguard Worker 
726*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_EC2 ||
727*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_EC ||
728*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_X].len != sizeof(key1_x) ||
729*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_Y].len != sizeof(key1_y) ||
730*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_D].len != sizeof(key1_d) ||
731*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_X].buf, key1_x, sizeof(key1_x)) ||
732*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_Y].buf, key1_y, sizeof(key1_y)) ||
733*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_D].buf, key1_d, sizeof(key1_d)))
734*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
735*1c60b9acSAndroid Build Coastguard Worker 
736*1c60b9acSAndroid Build Coastguard Worker 	// lws_cose_key_dump(ck);
737*1c60b9acSAndroid Build Coastguard Worker 
738*1c60b9acSAndroid Build Coastguard Worker 	/* key 1 export */
739*1c60b9acSAndroid Build Coastguard Worker 
740*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 1 export\n", __func__);
741*1c60b9acSAndroid Build Coastguard Worker 
742*1c60b9acSAndroid Build Coastguard Worker 	lws_lec_init(&wc, buf, sizeof(buf));
743*1c60b9acSAndroid Build Coastguard Worker 	n = (int)lws_cose_key_export(ck, &wc, LWSJWKF_EXPORT_PRIVATE);
744*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
745*1c60b9acSAndroid Build Coastguard Worker 	if (n != LWS_LECPCTX_RET_FINISHED)
746*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
747*1c60b9acSAndroid Build Coastguard Worker 
748*1c60b9acSAndroid Build Coastguard Worker 	// lwsl_hexdump_notice(buf, wc.used);
749*1c60b9acSAndroid Build Coastguard Worker 
750*1c60b9acSAndroid Build Coastguard Worker 	/* key2 import */
751*1c60b9acSAndroid Build Coastguard Worker 
752*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 2 import\n", __func__);
753*1c60b9acSAndroid Build Coastguard Worker 
754*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, NULL, NULL, cose_key2, sizeof(cose_key2));
755*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
756*1c60b9acSAndroid Build Coastguard Worker 		return 1;
757*1c60b9acSAndroid Build Coastguard Worker 
758*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_EC2 ||
759*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_EC ||
760*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_X].len != sizeof(key2_x) ||
761*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_Y].len != sizeof(key2_y) ||
762*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_D].len != sizeof(key2_d) ||
763*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_X].buf, key2_x, sizeof(key2_x)) ||
764*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_Y].buf, key2_y, sizeof(key2_y)) ||
765*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_D].buf, key2_d, sizeof(key2_d)))
766*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
767*1c60b9acSAndroid Build Coastguard Worker 
768*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
769*1c60b9acSAndroid Build Coastguard Worker 
770*1c60b9acSAndroid Build Coastguard Worker 	/* key3 import */
771*1c60b9acSAndroid Build Coastguard Worker 
772*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 3 import\n", __func__);
773*1c60b9acSAndroid Build Coastguard Worker 
774*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, NULL, NULL, cose_key3, sizeof(cose_key3));
775*1c60b9acSAndroid Build Coastguard Worker 	if (!ck) {
776*1c60b9acSAndroid Build Coastguard Worker 		lwsl_err("%s: key 3 import failed\n", __func__);
777*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
778*1c60b9acSAndroid Build Coastguard Worker 	}
779*1c60b9acSAndroid Build Coastguard Worker 
780*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_SYMMETRIC ||
781*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_OCT ||
782*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].len != sizeof(key3_k) ||
783*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].buf, key3_k, sizeof(key3_k))) {
784*1c60b9acSAndroid Build Coastguard Worker 		lwsl_err("%s: key 3 checks failed %d %d %d\n", __func__,
785*1c60b9acSAndroid Build Coastguard Worker 				(int)ck->kty, (int)ck->gencrypto_kty,
786*1c60b9acSAndroid Build Coastguard Worker 				(int)ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].len);
787*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
788*1c60b9acSAndroid Build Coastguard Worker 	}
789*1c60b9acSAndroid Build Coastguard Worker 
790*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
791*1c60b9acSAndroid Build Coastguard Worker 
792*1c60b9acSAndroid Build Coastguard Worker 	/* key4 import */
793*1c60b9acSAndroid Build Coastguard Worker 
794*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 4 import\n", __func__);
795*1c60b9acSAndroid Build Coastguard Worker 
796*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, NULL, NULL, cose_key4, sizeof(cose_key4));
797*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
798*1c60b9acSAndroid Build Coastguard Worker 		return 1;
799*1c60b9acSAndroid Build Coastguard Worker 
800*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_EC2 ||
801*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_EC ||
802*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_X].len != sizeof(key4_x) ||
803*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_Y].len != sizeof(key4_y) ||
804*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_D].len != sizeof(key4_d) ||
805*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_X].buf, key4_x, sizeof(key4_x)) ||
806*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_Y].buf, key4_y, sizeof(key4_y)) ||
807*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_D].buf, key4_d, sizeof(key4_d)))
808*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
809*1c60b9acSAndroid Build Coastguard Worker 
810*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
811*1c60b9acSAndroid Build Coastguard Worker 
812*1c60b9acSAndroid Build Coastguard Worker 	/* key5 import */
813*1c60b9acSAndroid Build Coastguard Worker 
814*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 5 import\n", __func__);
815*1c60b9acSAndroid Build Coastguard Worker 
816*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, NULL, NULL, cose_key5, sizeof(cose_key5));
817*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
818*1c60b9acSAndroid Build Coastguard Worker 		return 1;
819*1c60b9acSAndroid Build Coastguard Worker 
820*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_SYMMETRIC ||
821*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_OCT ||
822*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].len != sizeof(key5_k) ||
823*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].buf, key5_k, sizeof(key5_k)))
824*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
825*1c60b9acSAndroid Build Coastguard Worker 
826*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
827*1c60b9acSAndroid Build Coastguard Worker 
828*1c60b9acSAndroid Build Coastguard Worker 	/* key6 import */
829*1c60b9acSAndroid Build Coastguard Worker 
830*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 6 import\n", __func__);
831*1c60b9acSAndroid Build Coastguard Worker 
832*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, NULL, NULL, cose_key6, sizeof(cose_key6));
833*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
834*1c60b9acSAndroid Build Coastguard Worker 		return 1;
835*1c60b9acSAndroid Build Coastguard Worker 
836*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_EC2 ||
837*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_EC ||
838*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_X].len != sizeof(key6_x) ||
839*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_Y].len != sizeof(key6_y) ||
840*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_EC_KEYEL_D].len != sizeof(key6_d) ||
841*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_X].buf, key6_x, sizeof(key6_x)) ||
842*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_Y].buf, key6_y, sizeof(key6_y)) ||
843*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_EC_KEYEL_D].buf, key6_d, sizeof(key6_d)))
844*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
845*1c60b9acSAndroid Build Coastguard Worker 
846*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
847*1c60b9acSAndroid Build Coastguard Worker 
848*1c60b9acSAndroid Build Coastguard Worker 	/* key7 import */
849*1c60b9acSAndroid Build Coastguard Worker 
850*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 7 import\n", __func__);
851*1c60b9acSAndroid Build Coastguard Worker 
852*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, NULL, NULL, cose_key7, sizeof(cose_key7));
853*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
854*1c60b9acSAndroid Build Coastguard Worker 		return 1;
855*1c60b9acSAndroid Build Coastguard Worker 
856*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_SYMMETRIC ||
857*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_OCT ||
858*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].len != sizeof(key7_k) ||
859*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].buf, key7_k, sizeof(key7_k)))
860*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
861*1c60b9acSAndroid Build Coastguard Worker 
862*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
863*1c60b9acSAndroid Build Coastguard Worker 
864*1c60b9acSAndroid Build Coastguard Worker 	/* key8 import */
865*1c60b9acSAndroid Build Coastguard Worker 
866*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 8 import\n", __func__);
867*1c60b9acSAndroid Build Coastguard Worker 
868*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, NULL, NULL, cose_key8, sizeof(cose_key8));
869*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
870*1c60b9acSAndroid Build Coastguard Worker 		return 1;
871*1c60b9acSAndroid Build Coastguard Worker 
872*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_SYMMETRIC ||
873*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_OCT ||
874*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].len != sizeof(key8_k) ||
875*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].buf, key8_k, sizeof(key8_k)))
876*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
877*1c60b9acSAndroid Build Coastguard Worker 
878*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
879*1c60b9acSAndroid Build Coastguard Worker 
880*1c60b9acSAndroid Build Coastguard Worker 	/* key9 import */
881*1c60b9acSAndroid Build Coastguard Worker 
882*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key 9 import\n", __func__);
883*1c60b9acSAndroid Build Coastguard Worker 
884*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(NULL, NULL, NULL, cose_key9, sizeof(cose_key9));
885*1c60b9acSAndroid Build Coastguard Worker 	if (!ck) {
886*1c60b9acSAndroid Build Coastguard Worker 		lwsl_err("%s: cose9 import fail\n", __func__);
887*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
888*1c60b9acSAndroid Build Coastguard Worker 	}
889*1c60b9acSAndroid Build Coastguard Worker 
890*1c60b9acSAndroid Build Coastguard Worker 	if (ck->kty != LWSCOSE_WKKTV_SYMMETRIC ||
891*1c60b9acSAndroid Build Coastguard Worker 	    ck->gencrypto_kty != LWS_GENCRYPTO_KTY_OCT ||
892*1c60b9acSAndroid Build Coastguard Worker 	    ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].len != sizeof(key9_k) ||
893*1c60b9acSAndroid Build Coastguard Worker 	    memcmp(ck->e[LWS_GENCRYPTO_OCT_KEYEL_K].buf, key9_k, sizeof(key9_k))) {
894*1c60b9acSAndroid Build Coastguard Worker 		lwsl_notice("%s: key9 check fails\n", __func__);
895*1c60b9acSAndroid Build Coastguard Worker 		goto bail;
896*1c60b9acSAndroid Build Coastguard Worker 	}
897*1c60b9acSAndroid Build Coastguard Worker 
898*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
899*1c60b9acSAndroid Build Coastguard Worker 
900*1c60b9acSAndroid Build Coastguard Worker 	/* key set 1 */
901*1c60b9acSAndroid Build Coastguard Worker 
902*1c60b9acSAndroid Build Coastguard Worker 	lwsl_user("%s: key_set1\n", __func__);
903*1c60b9acSAndroid Build Coastguard Worker 	lws_dll2_owner_clear(&set);
904*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_import(&set, NULL, NULL, cose_key_set1, sizeof(cose_key_set1));
905*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
906*1c60b9acSAndroid Build Coastguard Worker 		return 1;
907*1c60b9acSAndroid Build Coastguard Worker 
908*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_set_destroy(&set);
909*1c60b9acSAndroid Build Coastguard Worker 
910*1c60b9acSAndroid Build Coastguard Worker 	/* generate */
911*1c60b9acSAndroid Build Coastguard Worker 
912*1c60b9acSAndroid Build Coastguard Worker 	ck = lws_cose_key_generate(context, LWSCOSE_WKKTV_EC2,
913*1c60b9acSAndroid Build Coastguard Worker 				   (1 << LWSCOSE_WKKO_SIGN) |
914*1c60b9acSAndroid Build Coastguard Worker 				   (1 << LWSCOSE_WKKO_VERIFY) |
915*1c60b9acSAndroid Build Coastguard Worker 				   (1 << LWSCOSE_WKKO_ENCRYPT) |
916*1c60b9acSAndroid Build Coastguard Worker 				   (1 << LWSCOSE_WKKO_DECRYPT),
917*1c60b9acSAndroid Build Coastguard Worker 				   0, "P-256", (const uint8_t *)"the-keyid", 9);
918*1c60b9acSAndroid Build Coastguard Worker 	if (!ck)
919*1c60b9acSAndroid Build Coastguard Worker 		return 1;
920*1c60b9acSAndroid Build Coastguard Worker 
921*1c60b9acSAndroid Build Coastguard Worker 	// lws_cose_key_dump(ck);
922*1c60b9acSAndroid Build Coastguard Worker 
923*1c60b9acSAndroid Build Coastguard Worker 	lws_cose_key_destroy(&ck);
924*1c60b9acSAndroid Build Coastguard Worker 
925*1c60b9acSAndroid Build Coastguard Worker 	return 0;
926*1c60b9acSAndroid Build Coastguard Worker 
927*1c60b9acSAndroid Build Coastguard Worker bail:
928*1c60b9acSAndroid Build Coastguard Worker 	lwsl_err("%s: selftest failed ++++++++++++++++++++\n", __func__);
929*1c60b9acSAndroid Build Coastguard Worker 
930*1c60b9acSAndroid Build Coastguard Worker 	return 1;
931*1c60b9acSAndroid Build Coastguard Worker }
932