| OLD | NEW |
| (Empty) |
| 1 // TODO(eroman): Use known test vectors. The samples I used here I generated mys
elf. | |
| 2 [ | |
| 3 // Test key derivation using ECDH (P-256), using a public and private key from | |
| 4 // different key pairs. | |
| 5 { | |
| 6 "public_key": { | |
| 7 "crv": "P-256", | |
| 8 "kty":"EC", | |
| 9 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 10 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE" | |
| 11 }, | |
| 12 | |
| 13 "private_key": { | |
| 14 "kty":"EC", | |
| 15 "crv":"P-256", | |
| 16 "d":"uN2YSQvxuxhQQ9Y1XXjYi1vr2ZTdzuoDX18PYu4LU-0", | |
| 17 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 18 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o" | |
| 19 }, | |
| 20 | |
| 21 // This is the maximum length for P-256. | |
| 22 "length_bits": 256, | |
| 23 "derived_bytes": "163FAA3FC4815D47345C8E959F707B2F1D3537E7B2EA1DAEC23CA8D0A2
42CFF3" | |
| 24 }, | |
| 25 | |
| 26 // Same as the test above, but in reverse (choosing public/private from the | |
| 27 // opposite keypair). | |
| 28 { | |
| 29 "private_key": { | |
| 30 "kty":"EC", | |
| 31 "crv":"P-256", | |
| 32 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 33 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 34 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 35 }, | |
| 36 "public_key": { | |
| 37 "kty":"EC", | |
| 38 "crv":"P-256", | |
| 39 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 40 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o" | |
| 41 }, | |
| 42 | |
| 43 // This is the maximum length for P-256. | |
| 44 "length_bits": 256, | |
| 45 "derived_bytes": "163FAA3FC4815D47345C8E959F707B2F1D3537E7B2EA1DAEC23CA8D0A2
42CFF3" | |
| 46 }, | |
| 47 | |
| 48 // This is the same test as above, however the length is 2 bytes shorter. | |
| 49 { | |
| 50 "private_key": { | |
| 51 "kty":"EC", | |
| 52 "crv":"P-256", | |
| 53 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 54 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 55 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 56 }, | |
| 57 "public_key": { | |
| 58 "kty":"EC", | |
| 59 "crv":"P-256", | |
| 60 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 61 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o" | |
| 62 }, | |
| 63 | |
| 64 // This is the maximum length for P-256. | |
| 65 "length_bits": 240, | |
| 66 "derived_bytes": "163FAA3FC4815D47345C8E959F707B2F1D3537E7B2EA1DAEC23CA8D0A2
42" | |
| 67 }, | |
| 68 | |
| 69 // Try deriving zero bits. | |
| 70 { | |
| 71 "private_key": { | |
| 72 "kty":"EC", | |
| 73 "crv":"P-256", | |
| 74 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 75 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 76 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 77 }, | |
| 78 "public_key": { | |
| 79 "kty":"EC", | |
| 80 "crv":"P-256", | |
| 81 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 82 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o" | |
| 83 }, | |
| 84 | |
| 85 "length_bits": 0, | |
| 86 "derived_bytes": "" | |
| 87 }, | |
| 88 | |
| 89 // Try deriving a single bit. | |
| 90 // Note that the full byte would be 0x16, however the remaining bits in the | |
| 91 // byte will be zero-ed. | |
| 92 { | |
| 93 "private_key": { | |
| 94 "kty":"EC", | |
| 95 "crv":"P-256", | |
| 96 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 97 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 98 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 99 }, | |
| 100 "public_key": { | |
| 101 "kty":"EC", | |
| 102 "crv":"P-256", | |
| 103 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 104 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o" | |
| 105 }, | |
| 106 | |
| 107 "length_bits": 1, | |
| 108 "derived_bytes": "00" | |
| 109 }, | |
| 110 | |
| 111 // This is the same as an earlier test, however 253 bits instead of 256. | |
| 112 // Notice how the last byte went from 0xF3 --> 0xF0, because the unused bits | |
| 113 // have been zeroed. | |
| 114 { | |
| 115 "private_key": { | |
| 116 "kty":"EC", | |
| 117 "crv":"P-256", | |
| 118 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 119 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 120 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 121 }, | |
| 122 "public_key": { | |
| 123 "kty":"EC", | |
| 124 "crv":"P-256", | |
| 125 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 126 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o" | |
| 127 }, | |
| 128 | |
| 129 "length_bits": 253, | |
| 130 "derived_bytes": "163FAA3FC4815D47345C8E959F707B2F1D3537E7B2EA1DAEC23CA8D0A2
42CFF0" | |
| 131 }, | |
| 132 | |
| 133 | |
| 134 // A test using P-521. | |
| 135 { | |
| 136 "private_key": { | |
| 137 "crv":"P-521", | |
| 138 "d":"AI_Zu5xisuK-IIz85dTSoqaQSTxN1I88l05myJJ0ZYFMdQ2VmjFOIUTonKGG97yOGmiky
id-6F48d7iI1zF6VRk7", | |
| 139 "kty":"EC", | |
| 140 "x":"ACw6DX7wqwHVO-JzyOet0B-r10YVLv5R5q_IfiWCzclg0u_x57NCtOcFCFpM2ZnS22tyY
jZb0gBHGcgUE_I-h-6s", | |
| 141 "y":"Actm2tCHBPOKLZMpJV3DaVOluln9zBsE2I0g6iV73I4M-liqA1rLSJN8q-vcSQtZF0Jvz
wuvGkGuTbvT_DaRQ2pf" | |
| 142 }, | |
| 143 | |
| 144 "public_key": { | |
| 145 "crv":"P-521", | |
| 146 "kty":"EC", | |
| 147 "x":"ADRllQ0B7icrnJ7ib2r-CXvymGFiC_3f6_o0SzLMBIggM8ndQm9l768SToMy1hUo64Jso
fGSQ37P4CRqT_QeivBD", | |
| 148 "y":"ALKEzew1Xe4Sv86lZVqb2xxZ0l7WrE3DPJ93fUtSPih5iH8jg0GPDKMVoA5ffFmqPwbdg
S2BK18PBFIT7QDGb2Zx" | |
| 149 }, | |
| 150 | |
| 151 "length_bits": 521, | |
| 152 "derived_bytes": "0117D54D84379D0FD385BE068455A77A5366AB534FF172AB0A121F37D1
80DCCD19607ABB0C41CB9F6F12B01303AC4A69DC2D1D05180181FD496D9769B46BFFEC3400", | |
| 153 "valid_p521_keys": true // Special variable use by ecdh_unittest.cc::LoadTes
tKeys | |
| 154 }, | |
| 155 | |
| 156 // Same as above but with the public/private switched. | |
| 157 { | |
| 158 "public_key": { | |
| 159 "crv":"P-521", | |
| 160 "kty":"EC", | |
| 161 "x":"ACw6DX7wqwHVO-JzyOet0B-r10YVLv5R5q_IfiWCzclg0u_x57NCtOcFCFpM2ZnS22tyY
jZb0gBHGcgUE_I-h-6s", | |
| 162 "y":"Actm2tCHBPOKLZMpJV3DaVOluln9zBsE2I0g6iV73I4M-liqA1rLSJN8q-vcSQtZF0Jvz
wuvGkGuTbvT_DaRQ2pf" | |
| 163 }, | |
| 164 | |
| 165 "private_key": { | |
| 166 "crv":"P-521", | |
| 167 "kty":"EC", | |
| 168 "d":"AU3LVJK4dtlbOEFb018ry-D-kYF7J7oQxXLpXcnQXbTh42FORGGGtySTA83gT_GiHJ0tn
vgVrDdUMK1muJBGPrRf", | |
| 169 "x":"ADRllQ0B7icrnJ7ib2r-CXvymGFiC_3f6_o0SzLMBIggM8ndQm9l768SToMy1hUo64Jso
fGSQ37P4CRqT_QeivBD", | |
| 170 "y":"ALKEzew1Xe4Sv86lZVqb2xxZ0l7WrE3DPJ93fUtSPih5iH8jg0GPDKMVoA5ffFmqPwbdg
S2BK18PBFIT7QDGb2Zx" | |
| 171 }, | |
| 172 | |
| 173 "length_bits": 521, | |
| 174 "derived_bytes": "0117D54D84379D0FD385BE068455A77A5366AB534FF172AB0A121F37D1
80DCCD19607ABB0C41CB9F6F12B01303AC4A69DC2D1D05180181FD496D9769B46BFFEC3400" | |
| 175 }, | |
| 176 | |
| 177 { | |
| 178 "public_key": { | |
| 179 "crv":"P-521", | |
| 180 "kty":"EC", | |
| 181 "x":"ACw6DX7wqwHVO-JzyOet0B-r10YVLv5R5q_IfiWCzclg0u_x57NCtOcFCFpM2ZnS22tyY
jZb0gBHGcgUE_I-h-6s", | |
| 182 "y":"Actm2tCHBPOKLZMpJV3DaVOluln9zBsE2I0g6iV73I4M-liqA1rLSJN8q-vcSQtZF0Jvz
wuvGkGuTbvT_DaRQ2pf" | |
| 183 }, | |
| 184 | |
| 185 "private_key": { | |
| 186 "crv":"P-521", | |
| 187 "kty":"EC", | |
| 188 "d":"AU3LVJK4dtlbOEFb018ry-D-kYF7J7oQxXLpXcnQXbTh42FORGGGtySTA83gT_GiHJ0tn
vgVrDdUMK1muJBGPrRf", | |
| 189 "x":"ADRllQ0B7icrnJ7ib2r-CXvymGFiC_3f6_o0SzLMBIggM8ndQm9l768SToMy1hUo64Jso
fGSQ37P4CRqT_QeivBD", | |
| 190 "y":"ALKEzew1Xe4Sv86lZVqb2xxZ0l7WrE3DPJ93fUtSPih5iH8jg0GPDKMVoA5ffFmqPwbdg
S2BK18PBFIT7QDGb2Zx" | |
| 191 }, | |
| 192 | |
| 193 "length_bits": 522, | |
| 194 "derived_bytes": "0117D54D84379D0FD385BE068455A77A5366AB534FF172AB0A121F37D1
80DCCD19607ABB0C41CB9F6F12B01303AC4A69DC2D1D05180181FD496D9769B46BFFEC3400" | |
| 195 }, | |
| 196 | |
| 197 // Ask for 528 bits using P-521, which is the rounded up byte length of the | |
| 198 // field size. | |
| 199 { | |
| 200 "public_key": { | |
| 201 "crv":"P-521", | |
| 202 "kty":"EC", | |
| 203 "x":"ACw6DX7wqwHVO-JzyOet0B-r10YVLv5R5q_IfiWCzclg0u_x57NCtOcFCFpM2ZnS22tyY
jZb0gBHGcgUE_I-h-6s", | |
| 204 "y":"Actm2tCHBPOKLZMpJV3DaVOluln9zBsE2I0g6iV73I4M-liqA1rLSJN8q-vcSQtZF0Jvz
wuvGkGuTbvT_DaRQ2pf" | |
| 205 }, | |
| 206 | |
| 207 "private_key": { | |
| 208 "crv":"P-521", | |
| 209 "kty":"EC", | |
| 210 "d":"AU3LVJK4dtlbOEFb018ry-D-kYF7J7oQxXLpXcnQXbTh42FORGGGtySTA83gT_GiHJ0tn
vgVrDdUMK1muJBGPrRf", | |
| 211 "x":"ADRllQ0B7icrnJ7ib2r-CXvymGFiC_3f6_o0SzLMBIggM8ndQm9l768SToMy1hUo64Jso
fGSQ37P4CRqT_QeivBD", | |
| 212 "y":"ALKEzew1Xe4Sv86lZVqb2xxZ0l7WrE3DPJ93fUtSPih5iH8jg0GPDKMVoA5ffFmqPwbdg
S2BK18PBFIT7QDGb2Zx" | |
| 213 }, | |
| 214 | |
| 215 "length_bits": 528, | |
| 216 "derived_bytes": "0117D54D84379D0FD385BE068455A77A5366AB534FF172AB0A121F37D1
80DCCD19607ABB0C41CB9F6F12B01303AC4A69DC2D1D05180181FD496D9769B46BFFEC3425" | |
| 217 }, | |
| 218 | |
| 219 // The first 7 bits for P-521 will always be zero. | |
| 220 { | |
| 221 "public_key": { | |
| 222 "crv":"P-521", | |
| 223 "kty":"EC", | |
| 224 "x":"ACw6DX7wqwHVO-JzyOet0B-r10YVLv5R5q_IfiWCzclg0u_x57NCtOcFCFpM2ZnS22tyY
jZb0gBHGcgUE_I-h-6s", | |
| 225 "y":"Actm2tCHBPOKLZMpJV3DaVOluln9zBsE2I0g6iV73I4M-liqA1rLSJN8q-vcSQtZF0Jvz
wuvGkGuTbvT_DaRQ2pf" | |
| 226 }, | |
| 227 | |
| 228 "private_key": { | |
| 229 "crv":"P-521", | |
| 230 "kty":"EC", | |
| 231 "d":"AU3LVJK4dtlbOEFb018ry-D-kYF7J7oQxXLpXcnQXbTh42FORGGGtySTA83gT_GiHJ0tn
vgVrDdUMK1muJBGPrRf", | |
| 232 "x":"ADRllQ0B7icrnJ7ib2r-CXvymGFiC_3f6_o0SzLMBIggM8ndQm9l768SToMy1hUo64Jso
fGSQ37P4CRqT_QeivBD", | |
| 233 "y":"ALKEzew1Xe4Sv86lZVqb2xxZ0l7WrE3DPJ93fUtSPih5iH8jg0GPDKMVoA5ffFmqPwbdg
S2BK18PBFIT7QDGb2Zx" | |
| 234 }, | |
| 235 | |
| 236 "length_bits": 7, | |
| 237 "derived_bytes": "00" | |
| 238 }, | |
| 239 | |
| 240 // Using different key pairs, verify again that the first 7 bits are zero. | |
| 241 { | |
| 242 "public_key": { | |
| 243 "crv":"P-521", | |
| 244 "kty":"EC", | |
| 245 "x":"ACw6DX7wqwHVO-JzyOet0B-r10YVLv5R5q_IfiWCzclg0u_x57NCtOcFCFpM2ZnS22tyY
jZb0gBHGcgUE_I-h-6s", | |
| 246 "y":"Actm2tCHBPOKLZMpJV3DaVOluln9zBsE2I0g6iV73I4M-liqA1rLSJN8q-vcSQtZF0Jvz
wuvGkGuTbvT_DaRQ2pf" | |
| 247 }, | |
| 248 | |
| 249 "private_key": { | |
| 250 "kty": "EC", | |
| 251 "crv": "P-521", | |
| 252 "d": "Ab1WvRBhGO2iRhVb1DtCuOE_Cm4l3TuzdgJvq03JK2FXvG3-wtFd09DPKjmqaElAQq9I
upYBEY2oLG8hCKOiA610", | |
| 253 "x": "AS-8rv-mpR8-5NPStRxd7G18cmyjU_wBTqK_fPu5uRDTLL-moA_jm2zbiUbyJ3U5iy4j
PAzxRNeMindCtceju10j", | |
| 254 "y": "AJze-CPde_mnnozOrNLkUnwjHQrllnrwlY6THX3czygFo-YY3DA5_sn-u9MwUv5MD-6Y
8DMQYGSYLYj04DVJ1KZN" | |
| 255 }, | |
| 256 | |
| 257 "length_bits": 7, | |
| 258 "derived_bytes": "00" | |
| 259 }, | |
| 260 | |
| 261 // Same as an earlier test, however the public key specifies the extraneous | |
| 262 // {"use": "sig"}. This doesn't make sense for ECDH; however, it is allowed | |
| 263 // by the implementation. This is not spec compliant, see: | |
| 264 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=27601 | |
| 265 { | |
| 266 "private_key": { | |
| 267 "kty":"EC", | |
| 268 "crv":"P-256", | |
| 269 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 270 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 271 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 272 }, | |
| 273 "public_key": { | |
| 274 "kty":"EC", | |
| 275 "crv":"P-256", | |
| 276 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 277 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o", | |
| 278 "use": "sig" | |
| 279 }, | |
| 280 | |
| 281 "length_bits": 0, | |
| 282 "derived_bytes": "" | |
| 283 }, | |
| 284 | |
| 285 // Same test as above, but instead of "use" it uses "key_ops" with bogus | |
| 286 // values for ECDH | |
| 287 { | |
| 288 "private_key": { | |
| 289 "kty":"EC", | |
| 290 "crv":"P-256", | |
| 291 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 292 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 293 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 294 }, | |
| 295 "public_key": { | |
| 296 "kty":"EC", | |
| 297 "crv":"P-256", | |
| 298 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 299 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o", | |
| 300 "key_ops": ["encrypt", "decrypt"] | |
| 301 }, | |
| 302 | |
| 303 "length_bits": 0, | |
| 304 "derived_bytes": "" | |
| 305 }, | |
| 306 | |
| 307 // ----------------------------------------- | |
| 308 // Errors | |
| 309 // ----------------------------------------- | |
| 310 | |
| 311 // The length is too long, by 1 bit | |
| 312 { | |
| 313 "private_key": { | |
| 314 "kty":"EC", | |
| 315 "crv":"P-256", | |
| 316 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 317 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 318 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 319 }, | |
| 320 "public_key": { | |
| 321 "kty":"EC", | |
| 322 "crv":"P-256", | |
| 323 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 324 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o" | |
| 325 }, | |
| 326 | |
| 327 "length_bits": 257, | |
| 328 "error": "OperationError: Length specified for ECDH key derivation is too la
rge. Maximum allowed is 256 bits" | |
| 329 }, | |
| 330 | |
| 331 // The length is too long, by 1 byte | |
| 332 { | |
| 333 "private_key": { | |
| 334 "kty":"EC", | |
| 335 "crv":"P-256", | |
| 336 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 337 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 338 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 339 }, | |
| 340 "public_key": { | |
| 341 "kty":"EC", | |
| 342 "crv":"P-256", | |
| 343 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 344 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o" | |
| 345 }, | |
| 346 | |
| 347 "length_bits": 264, | |
| 348 "error": "OperationError: Length specified for ECDH key derivation is too la
rge. Maximum allowed is 256 bits" | |
| 349 }, | |
| 350 | |
| 351 // Curve mismatch (public key is for P-521 however private key was for P-256). | |
| 352 { | |
| 353 "private_key": { | |
| 354 "kty":"EC", | |
| 355 "crv":"P-256", | |
| 356 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 357 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE", | |
| 358 "d":"CQ8uF_-zB1NftLO6ytwKM3Cnuol64PQw5qOuCzQJeFU" | |
| 359 }, | |
| 360 | |
| 361 "public_key": { | |
| 362 "crv":"P-521", | |
| 363 "kty":"EC", | |
| 364 "x":"ACw6DX7wqwHVO-JzyOet0B-r10YVLv5R5q_IfiWCzclg0u_x57NCtOcFCFpM2ZnS22tyY
jZb0gBHGcgUE_I-h-6s", | |
| 365 "y":"Actm2tCHBPOKLZMpJV3DaVOluln9zBsE2I0g6iV73I4M-liqA1rLSJN8q-vcSQtZF0Jvz
wuvGkGuTbvT_DaRQ2pf" | |
| 366 }, | |
| 367 | |
| 368 "length_bits": 256, | |
| 369 "error": "InvalidAccess: The public parameter for ECDH key derivation is for
a different named curve" | |
| 370 }, | |
| 371 | |
| 372 // Ask for 529 bits using P-521, which is too much. | |
| 373 { | |
| 374 "public_key": { | |
| 375 "crv":"P-521", | |
| 376 "kty":"EC", | |
| 377 "x":"ACw6DX7wqwHVO-JzyOet0B-r10YVLv5R5q_IfiWCzclg0u_x57NCtOcFCFpM2ZnS22tyY
jZb0gBHGcgUE_I-h-6s", | |
| 378 "y":"Actm2tCHBPOKLZMpJV3DaVOluln9zBsE2I0g6iV73I4M-liqA1rLSJN8q-vcSQtZF0Jvz
wuvGkGuTbvT_DaRQ2pf" | |
| 379 }, | |
| 380 | |
| 381 "private_key": { | |
| 382 "crv":"P-521", | |
| 383 "kty":"EC", | |
| 384 "d":"AU3LVJK4dtlbOEFb018ry-D-kYF7J7oQxXLpXcnQXbTh42FORGGGtySTA83gT_GiHJ0tn
vgVrDdUMK1muJBGPrRf", | |
| 385 "x":"ADRllQ0B7icrnJ7ib2r-CXvymGFiC_3f6_o0SzLMBIggM8ndQm9l768SToMy1hUo64Jso
fGSQ37P4CRqT_QeivBD", | |
| 386 "y":"ALKEzew1Xe4Sv86lZVqb2xxZ0l7WrE3DPJ93fUtSPih5iH8jg0GPDKMVoA5ffFmqPwbdg
S2BK18PBFIT7QDGb2Zx" | |
| 387 }, | |
| 388 | |
| 389 "length_bits": 529, | |
| 390 "error": "OperationError: Length specified for ECDH key derivation is too la
rge. Maximum allowed is 528 bits" | |
| 391 }, | |
| 392 | |
| 393 // The JWK has wrong usages (enc) | |
| 394 { | |
| 395 "public_key": { | |
| 396 "crv": "P-256", | |
| 397 "kty":"EC", | |
| 398 "x":"u6dWhaRHrvFF0CiFVuUUFafU6ixveQf9trHDXJ8hgV8", | |
| 399 "y":"thSm4LIY35vDD-5LE454eB7TShn919DVVGZ_7tWdjTE" | |
| 400 }, | |
| 401 | |
| 402 "private_key": { | |
| 403 "kty":"EC", | |
| 404 "crv":"P-256", | |
| 405 "d":"uN2YSQvxuxhQQ9Y1XXjYi1vr2ZTdzuoDX18PYu4LU-0", | |
| 406 "x":"S2S3tjygMB0DkM-N9jYUgGLt_9_H6km5P9V6V_KS4_4", | |
| 407 "y":"03j8Tyqgrc4R4FAUV2C7-im96yMmfmO_5Om6Kr8YP3o", | |
| 408 "use": "enc" | |
| 409 }, | |
| 410 | |
| 411 "private_key_error": "DataError: The JWK \"use\" member was inconsistent wit
h that specified by the Web Crypto call. The JWK usage must be a superset of tho
se requested" | |
| 412 } | |
| 413 ] | |
| 414 | |
| OLD | NEW |