@@ -207,4 +207,64 @@ function run_test(algorithmNames) {
207
207
} ) ;
208
208
} ) ;
209
209
210
+ // The 'kty' field is not correct.
211
+ testVectors . forEach ( function ( vector ) {
212
+ var name = vector . name ;
213
+ allAlgorithmSpecifiersFor ( name ) . forEach ( function ( algorithm ) {
214
+ getValidKeyData ( algorithm ) . forEach ( function ( test ) {
215
+ if ( test . format === "jwk" ) {
216
+ var data = { crv : test . data . crv , kty : test . data . kty , d : test . data . d , x : test . data . x , d : test . data . d } ;
217
+ data . kty = getMismatchedKtyField ( algorithm ) ;
218
+ var usages = validUsages ( vector , 'jwk' , test . data ) ;
219
+ testError ( 'jwk' , algorithm , data , name , usages , true , "DataError" , "Invalid 'kty' field" ) ;
220
+ }
221
+ } ) ;
222
+ } ) ;
223
+ } ) ;
224
+
225
+ // The 'ext' field is not correct.
226
+ testVectors . forEach ( function ( vector ) {
227
+ var name = vector . name ;
228
+ allAlgorithmSpecifiersFor ( name ) . forEach ( function ( algorithm ) {
229
+ getValidKeyData ( algorithm ) . forEach ( function ( test ) {
230
+ if ( test . format === "jwk" ) {
231
+ var data = { crv : test . data . crv , kty : test . data . kty , d : test . data . d , x : test . data . x , d : test . data . d } ;
232
+ data . ext = false ;
233
+ var usages = validUsages ( vector , 'jwk' , test . data ) ;
234
+ testError ( 'jwk' , algorithm , data , name , usages , true , "DataError" , "Import from a non-extractable" ) ;
235
+ }
236
+ } ) ;
237
+ } ) ;
238
+ } ) ;
239
+
240
+ // The 'use' field is incorrect.
241
+ testVectors . forEach ( function ( vector ) {
242
+ var name = vector . name ;
243
+ allAlgorithmSpecifiersFor ( name ) . forEach ( function ( algorithm ) {
244
+ getValidKeyData ( algorithm ) . forEach ( function ( test ) {
245
+ if ( test . format === "jwk" ) {
246
+ var data = { crv : test . data . crv , kty : test . data . kty , d : test . data . d , x : test . data . x , d : test . data . d } ;
247
+ data . use = "invalid" ;
248
+ var usages = validUsages ( vector , 'jwk' , test . data ) ;
249
+ if ( usages . length !== 0 )
250
+ testError ( 'jwk' , algorithm , data , name , usages , true , "DataError" , "Invalid 'use' field" ) ;
251
+ }
252
+ } ) ;
253
+ } ) ;
254
+ } ) ;
255
+
256
+ // The 'crv' field is incorrect.
257
+ testVectors . forEach ( function ( vector ) {
258
+ var name = vector . name ;
259
+ allAlgorithmSpecifiersFor ( name ) . forEach ( function ( algorithm ) {
260
+ getValidKeyData ( algorithm ) . forEach ( function ( test ) {
261
+ if ( test . format === "jwk" ) {
262
+ var data = { crv : test . data . crv , kty : test . data . kty , d : test . data . d , x : test . data . x , d : test . data . d } ;
263
+ data . crv = getMismatchedCrvField ( algorithm )
264
+ var usages = validUsages ( vector , 'jwk' , test . data ) ;
265
+ testError ( 'jwk' , algorithm , data , name , usages , true , "DataError" , "Invalid 'crv' field" ) ;
266
+ }
267
+ } ) ;
268
+ } ) ;
269
+ } ) ;
210
270
}
0 commit comments