xref: /aosp_15_r20/external/libwebsockets/minimal-examples/crypto/minimal-crypto-cose-key/README.md (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker# lws minimal example for cose_key
2*1c60b9acSAndroid Build Coastguard Worker
3*1c60b9acSAndroid Build Coastguard WorkerDemonstrates how to create and dump cose_keys.
4*1c60b9acSAndroid Build Coastguard Worker
5*1c60b9acSAndroid Build Coastguard Worker## Dump key or key_set
6*1c60b9acSAndroid Build Coastguard Worker
7*1c60b9acSAndroid Build Coastguard WorkerPipe a cose_key or cose_key_set into stdin to get a textual dump of all the keys
8*1c60b9acSAndroid Build Coastguard Workerinside.  You can optionally use --kid kid or --kid-hex HEXSTRING to dump one key
9*1c60b9acSAndroid Build Coastguard Workerfrom a set.
10*1c60b9acSAndroid Build Coastguard Worker
11*1c60b9acSAndroid Build Coastguard Worker```
12*1c60b9acSAndroid Build Coastguard Worker$ cat set1.cks | ./bin/lws-crypto-cose-key
13*1c60b9acSAndroid Build Coastguard Worker$ cat set1.cks | ./bin/lws-crypto-cose-key --kid 11
14*1c60b9acSAndroid Build Coastguard Worker```
15*1c60b9acSAndroid Build Coastguard Worker
16*1c60b9acSAndroid Build Coastguard Worker## Create keys
17*1c60b9acSAndroid Build Coastguard Worker
18*1c60b9acSAndroid Build Coastguard WorkerStdin is not used, give parameters for the kty and kid etc to create a
19*1c60b9acSAndroid Build Coastguard Workernew key on stdout (which can be redirected to a file).
20*1c60b9acSAndroid Build Coastguard Worker
21*1c60b9acSAndroid Build Coastguard Worker```
22*1c60b9acSAndroid Build Coastguard Worker$ ./bin/lws-crypto-cose-key --kty EC2 --curve P-521 --kid sec512 >ec512.key
23*1c60b9acSAndroid Build Coastguard Worker```
24*1c60b9acSAndroid Build Coastguard Worker
25*1c60b9acSAndroid Build Coastguard Worker## build
26*1c60b9acSAndroid Build Coastguard Worker
27*1c60b9acSAndroid Build Coastguard Worker```
28*1c60b9acSAndroid Build Coastguard Worker $ cmake . && make
29*1c60b9acSAndroid Build Coastguard Worker```
30*1c60b9acSAndroid Build Coastguard Worker
31*1c60b9acSAndroid Build Coastguard Worker## usage
32*1c60b9acSAndroid Build Coastguard Worker
33*1c60b9acSAndroid Build Coastguard Worker|Option|Meaning|
34*1c60b9acSAndroid Build Coastguard Worker|---|---|
35*1c60b9acSAndroid Build Coastguard Worker|--kty type|Key type, one of OKP, EC2, RSA or SYMMETRIC|
36*1c60b9acSAndroid Build Coastguard Worker|-k \<keyset filepath\>|One or a set of cose_keys|
37*1c60b9acSAndroid Build Coastguard Worker|--kid string|Specifies the key ID to use as a string|
38*1c60b9acSAndroid Build Coastguard Worker|--kid-hex HEXSTRING|Specifies the key ID to use as a hex blob|
39*1c60b9acSAndroid Build Coastguard Worker|--curve curve|For EC type key creation, specify the curve|
40*1c60b9acSAndroid Build Coastguard Worker|--stdin filepath|Makes tool fetch from filepath instead of stdin (useful for CI)|
41*1c60b9acSAndroid Build Coastguard Worker|--stdout filepath|Makes tool write to filepath instead of stdout (useful for CI)|
42*1c60b9acSAndroid Build Coastguard Worker
43*1c60b9acSAndroid Build Coastguard Worker
44*1c60b9acSAndroid Build Coastguard WorkerHEXSTRING above means a string like `1a2b3c`
45*1c60b9acSAndroid Build Coastguard Worker
46*1c60b9acSAndroid Build Coastguard Worker## Examples
47*1c60b9acSAndroid Build Coastguard Worker
48*1c60b9acSAndroid Build Coastguard Worker### cose_key dumping
49*1c60b9acSAndroid Build Coastguard Worker
50*1c60b9acSAndroid Build Coastguard Worker```
51*1c60b9acSAndroid Build Coastguard Worker$ cat set1.cks | ./bin/lws-crypto-cose-key
52*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:0420] U: LWS cose-key example tool -k keyset [-s alg-name kid ]
53*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:0780] N: lws_create_context: LWS: 4.2.99-v4.2.0-134-g8433c8b459, NET CLI SRV H1 H2 WS ConMon IPV6-on
54*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:0892] N:  ++ [wsi|0|pipe] (1)
55*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:0926] N:  ++ [vh|0|netlink] (1)
56*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:0977] N:  ++ [vh|1|default||-1] (2)
57*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:1057] N: main: importing
58*1c60b9acSAndroid Build Coastguard WorkerCose key #1
59*1c60b9acSAndroid Build Coastguard Worker  kty: EC2
60*1c60b9acSAndroid Build Coastguard Worker  kid: 11
61*1c60b9acSAndroid Build Coastguard Worker  kty: P-256
62*1c60b9acSAndroid Build Coastguard Worker  x: bac5b11cad8f99f9c72b05cf4b9e26d244dc189f745228255a219a86d6a09eff
63*1c60b9acSAndroid Build Coastguard Worker  d: 57c92077664146e876760c9520d054aa93c3afb04e306705db6090308507b4d3
64*1c60b9acSAndroid Build Coastguard Worker  y: 20138bf82dc1b6d562be0fa54ab7804a3a64b6d72ccfed6b6fb6ed28bbfc117e
65*1c60b9acSAndroid Build Coastguard WorkerCose key #2
66*1c60b9acSAndroid Build Coastguard Worker  kty: EC2
67*1c60b9acSAndroid Build Coastguard Worker  kid: [email protected]
68*1c60b9acSAndroid Build Coastguard Worker  kty: P-256
69*1c60b9acSAndroid Build Coastguard Worker  x: 65eda5a12577c2bae829437fe338701a10aaa375e1bb5b5de108de439c08551d
70*1c60b9acSAndroid Build Coastguard Worker  d: aff907c99f9ad3aae6c4cdf21122bce2bd68b5283e6907154ad911840fa208cf
71*1c60b9acSAndroid Build Coastguard Worker  y: 1e52ed75701163f7f9e40ddf9f341b3dc9ba860af7e0ca7ca7e9eecd0084d19c
72*1c60b9acSAndroid Build Coastguard WorkerCose key #3
73*1c60b9acSAndroid Build Coastguard Worker  kty: SYMMETRIC
74*1c60b9acSAndroid Build Coastguard Worker  kid: our-secret
75*1c60b9acSAndroid Build Coastguard Worker  k: 849b57219dae48de646d07dbb533566e976686457c1491be3a76dcea6c427188
76*1c60b9acSAndroid Build Coastguard WorkerCose key #4
77*1c60b9acSAndroid Build Coastguard Worker  kty: EC2
78*1c60b9acSAndroid Build Coastguard Worker  kid: [email protected]
79*1c60b9acSAndroid Build Coastguard Worker  kty: P-521
80*1c60b9acSAndroid Build Coastguard Worker  x: 0072992cb3ac08ecf3e5c63dedec0d51a8c1f79ef2f82f94f3c737bf5de7986671eac625fe8257bbd0394644caaa3aaf8f27a4585fbbcad0f2457620085e5c8f42ad
81*1c60b9acSAndroid Build Coastguard Worker  d: 00085138ddabf5ca975f5860f91a08e91d6d5f9a76ad4018766a476680b55cd339e8ab6c72b5facdb2a2a50ac25bd086647dd3e2e6e99e84ca2c3609fdf177feb26d
82*1c60b9acSAndroid Build Coastguard Worker  y: 01dca6947bce88bc5790485ac97427342bc35f887d86d65a089377e247e60baa55e4e8501e2ada5724ac51d6909008033ebc10ac999b9d7f5cc2519f3fe1ea1d9475
83*1c60b9acSAndroid Build Coastguard WorkerCose key #5
84*1c60b9acSAndroid Build Coastguard Worker  kty: SYMMETRIC
85*1c60b9acSAndroid Build Coastguard Worker  kid: our-secret2
86*1c60b9acSAndroid Build Coastguard Worker  k: 849b5786457c1491be3a76dcea6c4271
87*1c60b9acSAndroid Build Coastguard WorkerCose key #6
88*1c60b9acSAndroid Build Coastguard Worker  kty: EC2
89*1c60b9acSAndroid Build Coastguard Worker  kid: [email protected]
90*1c60b9acSAndroid Build Coastguard Worker  kty: P-256
91*1c60b9acSAndroid Build Coastguard Worker  x: 98f50a4ff6c05861c8860d13a638ea56c3f5ad7590bbfbf054e1c7b4d91d6280
92*1c60b9acSAndroid Build Coastguard Worker  d: 02d1f7e6f26c43d4868d87ceb2353161740aacf1f7163647984b522a848df1c3
93*1c60b9acSAndroid Build Coastguard Worker  y: f01400b089867804b8e9fc96c3932161f1934f4223069170d924b7e03bf822bb
94*1c60b9acSAndroid Build Coastguard WorkerCose key #7
95*1c60b9acSAndroid Build Coastguard Worker  kty: SYMMETRIC
96*1c60b9acSAndroid Build Coastguard Worker  kid: 018c0ae5-4d9b-471b-bfd6-eef314bc7037
97*1c60b9acSAndroid Build Coastguard Worker  use: 849b57219dae48de646d07dbb533566e976686457c1491be3a76dcea6c427188
98*1c60b9acSAndroid Build Coastguard WorkerCose key #8
99*1c60b9acSAndroid Build Coastguard Worker  kty: SYMMETRIC
100*1c60b9acSAndroid Build Coastguard Worker  kid: sec-48
101*1c60b9acSAndroid Build Coastguard Worker  k: 849b57219dae48de646d07dbb533566e976686457c1491be3a76dcea6c42718800112233778899aa2122232425262728
102*1c60b9acSAndroid Build Coastguard WorkerCose key #9
103*1c60b9acSAndroid Build Coastguard Worker  kty: SYMMETRIC
104*1c60b9acSAndroid Build Coastguard Worker  kid: sec-64
105*1c60b9acSAndroid Build Coastguard Worker  k: 849b57219dae48de646d07dbb533566e976686457c1491be3a76dcea6c42718800112233778899aa2122232425262728aabbccddeeffa5a6a7a8a9a0b1b2b3b4
106*1c60b9acSAndroid Build Coastguard WorkerCose key #10
107*1c60b9acSAndroid Build Coastguard Worker  kty: EC2
108*1c60b9acSAndroid Build Coastguard Worker  kid: sec384
109*1c60b9acSAndroid Build Coastguard Worker  kty: P-384
110*1c60b9acSAndroid Build Coastguard Worker  x: ea2866349fe3a2f9ad4d6bfe7c30c527436e901c5fb22210b67b2150574ffcd0b1dd8c43d5d1e3d5cb849ecec202117c
111*1c60b9acSAndroid Build Coastguard Worker  d: 4d46a58480d43d5454307edcf501e098ef7c0186cc6b56b41dfd13fe4b9b1ab1425851cf5b23e6636ed18f5bbdde1896
112*1c60b9acSAndroid Build Coastguard Worker  y: 4c3d245515a688ef25ff68034089ca4f10a01bef51cc57309f12919c3d484142368795c6f2a5d30af650b4e12d0133e4
113*1c60b9acSAndroid Build Coastguard WorkerCose key #11
114*1c60b9acSAndroid Build Coastguard Worker  kty: EC2
115*1c60b9acSAndroid Build Coastguard Worker  kid: sec512
116*1c60b9acSAndroid Build Coastguard Worker  kty: P-521
117*1c60b9acSAndroid Build Coastguard Worker  x: 003b81ed66d8a2194b42f29ecb2c9ae48199be695924804a8407194ed0e172f39693f870f32463e2d36950034a21901487c5a0c43a1713a818fb89fa8a5b3b2dc181
118*1c60b9acSAndroid Build Coastguard Worker  d: 013e0f06ce394ac14a3df3953fc560679ad0dee14779ef0d475787451fca71e3b4b827b6f7cedcf00e23c716fb829b5419234ba5c92c33e0bc94351fe97be21f2b82
119*1c60b9acSAndroid Build Coastguard Worker  y: 004b9b6b0adf41913b5d700cf43bfe0ee8b79eb58fc308509e574fcb910b3fd5a2ad585affc6776f7fc9d4ff48f5923fe900660ecc6e3720f89c1363eecfffb38b5b
120*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:1430] N:  -- [wsi|0|pipe] (0) 52.763ms
121*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:1441] N:  -- [vh|0|netlink] (1) 51.437ms
122*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:1491] N:  -- [vh|1|default||-1] (0) 51.591ms
123*1c60b9acSAndroid Build Coastguard Worker[2021/07/30 10:14:31:1536] N: main: PASS
124*1c60b9acSAndroid Build Coastguard Worker
125*1c60b9acSAndroid Build Coastguard Worker```
126*1c60b9acSAndroid Build Coastguard Worker
127*1c60b9acSAndroid Build Coastguard Worker### cose_key creation
128*1c60b9acSAndroid Build Coastguard Worker
129*1c60b9acSAndroid Build Coastguard Worker```
130*1c60b9acSAndroid Build Coastguard Worker$ ./bin/lws-crypto-cose-key --kty EC2 --curve P-521 --kid sec512 >ec512.key
131*1c60b9acSAndroid Build Coastguard Worker```
132*1c60b9acSAndroid Build Coastguard Worker
133