1 Tests structured cloning of ECDH keys
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
6 PASS importedKey.extraProperty is "hi"
7 PASS importedKey.type is "public"
8 PASS typeof importedKey.extractable is 'boolean'
9 PASS importedKey.extractable is true
10 PASS importedKey.algorithm.name is "ECDH"
11 PASS importedKey.algorithm.namedCurve is "P-256"
12 PASS importedKey.usages.join(',') is ""
13 PASS importedKey is not clonedKey
14 PASS clonedKey.extraProperty is undefined.
15 PASS clonedKey.type is "public"
16 PASS typeof clonedKey.extractable is 'boolean'
17 PASS clonedKey.extractable is true
18 PASS clonedKey.algorithm.name is "ECDH"
19 PASS clonedKey.algorithm.namedCurve is "P-256"
20 PASS clonedKey.usages.join(',') is ""
21 Serialized key bytes: 3f004b050f0101015b3059301306072a8648ce3d020106082a8648ce3d030107034200049cb0cf69303dafc761d4e4687b4ecf039e6d34ab964af80810d8d558a4a8d6f72d51233a1788920a86ee08a1962c79efa317fb7879e297dad2146db995fa1c78
22 PASS: Cloned key exported data should be [3059301306072a8648ce3d020106082a8648ce3d030107034200049cb0cf69303dafc761d4e4687b4ecf039e6d34ab964af80810d8d558a4a8d6f72d51233a1788920a86ee08a1962c79efa317fb7879e297dad2146db995fa1c78] and was
24 PASS importedKey.extraProperty is "hi"
25 PASS importedKey.type is "public"
26 PASS typeof importedKey.extractable is 'boolean'
27 PASS importedKey.extractable is false
28 PASS importedKey.algorithm.name is "ECDH"
29 PASS importedKey.algorithm.namedCurve is "P-256"
30 PASS importedKey.usages.join(',') is ""
31 PASS importedKey is not clonedKey
32 PASS clonedKey.extraProperty is undefined.
33 PASS clonedKey.type is "public"
34 PASS typeof clonedKey.extractable is 'boolean'
35 PASS clonedKey.extractable is false
36 PASS clonedKey.algorithm.name is "ECDH"
37 PASS clonedKey.algorithm.namedCurve is "P-256"
38 PASS clonedKey.usages.join(',') is ""
39 Serialized key bytes: 3f004b050f0101005b3059301306072a8648ce3d020106082a8648ce3d030107034200049cb0cf69303dafc761d4e4687b4ecf039e6d34ab964af80810d8d558a4a8d6f72d51233a1788920a86ee08a1962c79efa317fb7879e297dad2146db995fa1c78
41 PASS importedKey.extraProperty is "hi"
42 PASS importedKey.type is "public"
43 PASS typeof importedKey.extractable is 'boolean'
44 PASS importedKey.extractable is true
45 PASS importedKey.algorithm.name is "ECDH"
46 PASS importedKey.algorithm.namedCurve is "P-384"
47 PASS importedKey.usages.join(',') is ""
48 PASS importedKey is not clonedKey
49 PASS clonedKey.extraProperty is undefined.
50 PASS clonedKey.type is "public"
51 PASS typeof clonedKey.extractable is 'boolean'
52 PASS clonedKey.extractable is true
53 PASS clonedKey.algorithm.name is "ECDH"
54 PASS clonedKey.algorithm.namedCurve is "P-384"
55 PASS clonedKey.usages.join(',') is ""
56 Serialized key bytes: 3f004b050f010201783076301006072a8648ce3d020106052b81040022036200040874a2e0b8ff448f0e54321e27f4f1e64d064cdeb7d26f458c32e930120f4e57dc85c2693f977eed4a8ecc8db981b4d91f69446df4f4c6f5de19003f45f891d0ebcd2fffdb5c81c040e8d6994c43c7feedb98a4a31edfb35e89a30013c3b926700
57 PASS: Cloned key exported data should be [3076301006072a8648ce3d020106052b81040022036200040874a2e0b8ff448f0e54321e27f4f1e64d064cdeb7d26f458c32e930120f4e57dc85c2693f977eed4a8ecc8db981b4d91f69446df4f4c6f5de19003f45f891d0ebcd2fffdb5c81c040e8d6994c43c7feedb98a4a31edfb35e89a30013c3b9267] and was
59 PASS importedKey.extraProperty is "hi"
60 PASS importedKey.type is "public"
61 PASS typeof importedKey.extractable is 'boolean'
62 PASS importedKey.extractable is false
63 PASS importedKey.algorithm.name is "ECDH"
64 PASS importedKey.algorithm.namedCurve is "P-384"
65 PASS importedKey.usages.join(',') is ""
66 PASS importedKey is not clonedKey
67 PASS clonedKey.extraProperty is undefined.
68 PASS clonedKey.type is "public"
69 PASS typeof clonedKey.extractable is 'boolean'
70 PASS clonedKey.extractable is false
71 PASS clonedKey.algorithm.name is "ECDH"
72 PASS clonedKey.algorithm.namedCurve is "P-384"
73 PASS clonedKey.usages.join(',') is ""
74 Serialized key bytes: 3f004b050f010200783076301006072a8648ce3d020106052b81040022036200040874a2e0b8ff448f0e54321e27f4f1e64d064cdeb7d26f458c32e930120f4e57dc85c2693f977eed4a8ecc8db981b4d91f69446df4f4c6f5de19003f45f891d0ebcd2fffdb5c81c040e8d6994c43c7feedb98a4a31edfb35e89a30013c3b926700
76 PASS importedKey.extraProperty is "hi"
77 PASS importedKey.type is "public"
78 PASS typeof importedKey.extractable is 'boolean'
79 PASS importedKey.extractable is true
80 PASS importedKey.algorithm.name is "ECDH"
81 PASS importedKey.algorithm.namedCurve is "P-521"
82 PASS importedKey.usages.join(',') is ""
83 PASS importedKey is not clonedKey
84 PASS clonedKey.extraProperty is undefined.
85 PASS clonedKey.type is "public"
86 PASS typeof clonedKey.extractable is 'boolean'
87 PASS clonedKey.extractable is true
88 PASS clonedKey.algorithm.name is "ECDH"
89 PASS clonedKey.algorithm.namedCurve is "P-521"
90 PASS clonedKey.usages.join(',') is ""
91 Serialized key bytes: 3f004b050f0103019e0130819b301006072a8648ce3d020106052b81040023038186000400f50a08703250c15f043c8c46e99783435245cf98f4f2694b0e2f8d029a514dd6f0b086d4ed892000cd5590107aae69c4c0a7a95f7cf74e5770a07d5db55bce4ab400f2c770bab8b9be4cdb6ecd3dc26c698da0d2599cebf3d904f7f9ca3a55e64731810d73cd317264e50baba4bc2860857e16d6cbb79501bc9e3a32bd172ea8a71dee
92 PASS: Cloned key exported data should be [30819b301006072a8648ce3d020106052b81040023038186000400f50a08703250c15f043c8c46e99783435245cf98f4f2694b0e2f8d029a514dd6f0b086d4ed892000cd5590107aae69c4c0a7a95f7cf74e5770a07d5db55bce4ab400f2c770bab8b9be4cdb6ecd3dc26c698da0d2599cebf3d904f7f9ca3a55e64731810d73cd317264e50baba4bc2860857e16d6cbb79501bc9e3a32bd172ea8a71dee] and was
94 PASS importedKey.extraProperty is "hi"
95 PASS importedKey.type is "public"
96 PASS typeof importedKey.extractable is 'boolean'
97 PASS importedKey.extractable is false
98 PASS importedKey.algorithm.name is "ECDH"
99 PASS importedKey.algorithm.namedCurve is "P-521"
100 PASS importedKey.usages.join(',') is ""
101 PASS importedKey is not clonedKey
102 PASS clonedKey.extraProperty is undefined.
103 PASS clonedKey.type is "public"
104 PASS typeof clonedKey.extractable is 'boolean'
105 PASS clonedKey.extractable is false
106 PASS clonedKey.algorithm.name is "ECDH"
107 PASS clonedKey.algorithm.namedCurve is "P-521"
108 PASS clonedKey.usages.join(',') is ""
109 Serialized key bytes: 3f004b050f0103009e0130819b301006072a8648ce3d020106052b81040023038186000400f50a08703250c15f043c8c46e99783435245cf98f4f2694b0e2f8d029a514dd6f0b086d4ed892000cd5590107aae69c4c0a7a95f7cf74e5770a07d5db55bce4ab400f2c770bab8b9be4cdb6ecd3dc26c698da0d2599cebf3d904f7f9ca3a55e64731810d73cd317264e50baba4bc2860857e16d6cbb79501bc9e3a32bd172ea8a71dee
111 PASS importedKey.extraProperty is "hi"
112 PASS importedKey.type is "private"
113 PASS typeof importedKey.extractable is 'boolean'
114 PASS importedKey.extractable is true
115 PASS importedKey.algorithm.name is "ECDH"
116 PASS importedKey.algorithm.namedCurve is "P-256"
117 PASS importedKey.usages.join(',') is "deriveBits"
118 PASS importedKey is not clonedKey
119 PASS clonedKey.extraProperty is undefined.
120 PASS clonedKey.type is "private"
121 PASS typeof clonedKey.extractable is 'boolean'
122 PASS clonedKey.extractable is true
123 PASS clonedKey.algorithm.name is "ECDH"
124 PASS clonedKey.algorithm.namedCurve is "P-256"
125 PASS clonedKey.usages.join(',') is "deriveBits"
126 Serialized key bytes: 3f004b050f020181028a01308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02010104201fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42a144034200047c110c66dcfda807f6e69e45ddb3c74f69a1484d203e8dc5ada8e9a9dd7cb3c70df448986e51bde5d1576f99901f9c2c6a806a47fd907643a72b835597efc8c600
127 PASS: Cloned key exported data should be [308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02010104201fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42a144034200047c110c66dcfda807f6e69e45ddb3c74f69a1484d203e8dc5ada8e9a9dd7cb3c70df448986e51bde5d1576f99901f9c2c6a806a47fd907643a72b835597efc8c6] and was
129 PASS importedKey.extraProperty is "hi"
130 PASS importedKey.type is "private"
131 PASS typeof importedKey.extractable is 'boolean'
132 PASS importedKey.extractable is false
133 PASS importedKey.algorithm.name is "ECDH"
134 PASS importedKey.algorithm.namedCurve is "P-256"
135 PASS importedKey.usages.join(',') is "deriveBits"
136 PASS importedKey is not clonedKey
137 PASS clonedKey.extraProperty is undefined.
138 PASS clonedKey.type is "private"
139 PASS typeof clonedKey.extractable is 'boolean'
140 PASS clonedKey.extractable is false
141 PASS clonedKey.algorithm.name is "ECDH"
142 PASS clonedKey.algorithm.namedCurve is "P-256"
143 PASS clonedKey.usages.join(',') is "deriveBits"
144 Serialized key bytes: 3f004b050f020180028a01308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02010104201fe33950c5f461124ae992c2bdfdf1c73b1615f571bd567e60d19aa1f48cdf42a144034200047c110c66dcfda807f6e69e45ddb3c74f69a1484d203e8dc5ada8e9a9dd7cb3c70df448986e51bde5d1576f99901f9c2c6a806a47fd907643a72b835597efc8c600
146 PASS importedKey.extraProperty is "hi"
147 PASS importedKey.type is "private"
148 PASS typeof importedKey.extractable is 'boolean'
149 PASS importedKey.extractable is true
150 PASS importedKey.algorithm.name is "ECDH"
151 PASS importedKey.algorithm.namedCurve is "P-384"
152 PASS importedKey.usages.join(',') is "deriveBits"
153 PASS importedKey is not clonedKey
154 PASS clonedKey.extraProperty is undefined.
155 PASS clonedKey.type is "private"
156 PASS typeof clonedKey.extractable is 'boolean'
157 PASS clonedKey.extractable is true
158 PASS clonedKey.algorithm.name is "ECDH"
159 PASS clonedKey.algorithm.namedCurve is "P-384"
160 PASS clonedKey.usages.join(',') is "deriveBits"
161 Serialized key bytes: 3f004b050f02028102b9013081b6020100301006072a8648ce3d020106052b8104002204819e30819b0201010430a492ce8fa90084c227e1a32f7974d39e9ff67a7e8705ec3419b35fb607582bebd461e0b1520ac76ec2dd4e9b63ebae71a16403620004e55fee6c49d8d523f5ce7bf9c0425ce4ff650708b7de5cfb095901523979a7f042602db30854735369813b5c3f5ef86828f59cc5dc509892a988d38a8e2519de3d0c4fd0fbdb0993e38f18506c17606c5e24249246f1ce94983a5361c5be983e
162 PASS: Cloned key exported data should be [3081b6020100301006072a8648ce3d020106052b8104002204819e30819b0201010430a492ce8fa90084c227e1a32f7974d39e9ff67a7e8705ec3419b35fb607582bebd461e0b1520ac76ec2dd4e9b63ebae71a16403620004e55fee6c49d8d523f5ce7bf9c0425ce4ff650708b7de5cfb095901523979a7f042602db30854735369813b5c3f5ef86828f59cc5dc509892a988d38a8e2519de3d0c4fd0fbdb0993e38f18506c17606c5e24249246f1ce94983a5361c5be983e] and was
164 PASS importedKey.extraProperty is "hi"
165 PASS importedKey.type is "private"
166 PASS typeof importedKey.extractable is 'boolean'
167 PASS importedKey.extractable is false
168 PASS importedKey.algorithm.name is "ECDH"
169 PASS importedKey.algorithm.namedCurve is "P-384"
170 PASS importedKey.usages.join(',') is "deriveBits"
171 PASS importedKey is not clonedKey
172 PASS clonedKey.extraProperty is undefined.
173 PASS clonedKey.type is "private"
174 PASS typeof clonedKey.extractable is 'boolean'
175 PASS clonedKey.extractable is false
176 PASS clonedKey.algorithm.name is "ECDH"
177 PASS clonedKey.algorithm.namedCurve is "P-384"
178 PASS clonedKey.usages.join(',') is "deriveBits"
179 Serialized key bytes: 3f004b050f02028002b9013081b6020100301006072a8648ce3d020106052b8104002204819e30819b0201010430a492ce8fa90084c227e1a32f7974d39e9ff67a7e8705ec3419b35fb607582bebd461e0b1520ac76ec2dd4e9b63ebae71a16403620004e55fee6c49d8d523f5ce7bf9c0425ce4ff650708b7de5cfb095901523979a7f042602db30854735369813b5c3f5ef86828f59cc5dc509892a988d38a8e2519de3d0c4fd0fbdb0993e38f18506c17606c5e24249246f1ce94983a5361c5be983e
181 PASS importedKey.extraProperty is "hi"
182 PASS importedKey.type is "private"
183 PASS typeof importedKey.extractable is 'boolean'
184 PASS importedKey.extractable is true
185 PASS importedKey.algorithm.name is "ECDH"
186 PASS importedKey.algorithm.namedCurve is "P-521"
187 PASS importedKey.usages.join(',') is "deriveBits"
188 PASS importedKey is not clonedKey
189 PASS clonedKey.extraProperty is undefined.
190 PASS clonedKey.type is "private"
191 PASS typeof clonedKey.extractable is 'boolean'
192 PASS clonedKey.extractable is true
193 PASS clonedKey.algorithm.name is "ECDH"
194 PASS clonedKey.algorithm.namedCurve is "P-521"
195 PASS clonedKey.usages.join(',') is "deriveBits"
196 Serialized key bytes: 3f004b050f02038102f1013081ee020100301006072a8648ce3d020106052b810400230481d63081d3020101044201bd56bd106118eda246155bd43b42b8e13f0a6e25dd3bb376026fab4dc92b6157bc6dfec2d15dd3d0cf2a39aa68494042af48ba9601118da82c6f2108a3a203ad74a181890381860004012fbcaeffa6a51f3ee4d3d2b51c5dec6d7c726ca353fc014ea2bf7cfbb9b910d32cbfa6a00fe39b6cdb8946f22775398b2e233c0cf144d78c8a7742b5c7a3bb5d23009cdef823dd7bf9a79e8cceacd2e4527c231d0ae5967af0958e931d7ddccf2805a3e618dc3039fec9febbd33052fe4c0fee98f033106064982d88f4e03549d4a64d
197 PASS: Cloned key exported data should be [3081ee020100301006072a8648ce3d020106052b810400230481d63081d3020101044201bd56bd106118eda246155bd43b42b8e13f0a6e25dd3bb376026fab4dc92b6157bc6dfec2d15dd3d0cf2a39aa68494042af48ba9601118da82c6f2108a3a203ad74a181890381860004012fbcaeffa6a51f3ee4d3d2b51c5dec6d7c726ca353fc014ea2bf7cfbb9b910d32cbfa6a00fe39b6cdb8946f22775398b2e233c0cf144d78c8a7742b5c7a3bb5d23009cdef823dd7bf9a79e8cceacd2e4527c231d0ae5967af0958e931d7ddccf2805a3e618dc3039fec9febbd33052fe4c0fee98f033106064982d88f4e03549d4a64d] and was
199 PASS importedKey.extraProperty is "hi"
200 PASS importedKey.type is "private"
201 PASS typeof importedKey.extractable is 'boolean'
202 PASS importedKey.extractable is false
203 PASS importedKey.algorithm.name is "ECDH"
204 PASS importedKey.algorithm.namedCurve is "P-521"
205 PASS importedKey.usages.join(',') is "deriveBits"
206 PASS importedKey is not clonedKey
207 PASS clonedKey.extraProperty is undefined.
208 PASS clonedKey.type is "private"
209 PASS typeof clonedKey.extractable is 'boolean'
210 PASS clonedKey.extractable is false
211 PASS clonedKey.algorithm.name is "ECDH"
212 PASS clonedKey.algorithm.namedCurve is "P-521"
213 PASS clonedKey.usages.join(',') is "deriveBits"
214 Serialized key bytes: 3f004b050f02038002f1013081ee020100301006072a8648ce3d020106052b810400230481d63081d3020101044201bd56bd106118eda246155bd43b42b8e13f0a6e25dd3bb376026fab4dc92b6157bc6dfec2d15dd3d0cf2a39aa68494042af48ba9601118da82c6f2108a3a203ad74a181890381860004012fbcaeffa6a51f3ee4d3d2b51c5dec6d7c726ca353fc014ea2bf7cfbb9b910d32cbfa6a00fe39b6cdb8946f22775398b2e233c0cf144d78c8a7742b5c7a3bb5d23009cdef823dd7bf9a79e8cceacd2e4527c231d0ae5967af0958e931d7ddccf2805a3e618dc3039fec9febbd33052fe4c0fee98f033106064982d88f4e03549d4a64d
216 PASS successfullyParsed is true