@@ -26,23 +26,15 @@ function getNamedCurve(alg: string) {
26
26
}
27
27
}
28
28
29
- function checkUsage ( key : CryptoKey , usages : KeyUsage [ ] ) {
30
- if ( usages . length && ! usages . some ( ( expected ) => key . usages . includes ( expected ) ) ) {
31
- let msg = 'CryptoKey does not support this operation, its usages must include '
32
- if ( usages . length > 2 ) {
33
- const last = usages . pop ( )
34
- msg += `one of ${ usages . join ( ', ' ) } , or ${ last } .`
35
- } else if ( usages . length === 2 ) {
36
- msg += `one of ${ usages [ 0 ] } or ${ usages [ 1 ] } .`
37
- } else {
38
- msg += `${ usages [ 0 ] } .`
39
- }
40
-
41
- throw new TypeError ( msg )
29
+ function checkUsage ( key : CryptoKey , usage ?: KeyUsage ) {
30
+ if ( usage && ! key . usages . includes ( usage ) ) {
31
+ throw new TypeError (
32
+ `CryptoKey does not support this operation, its usages must include ${ usage } .` ,
33
+ )
42
34
}
43
35
}
44
36
45
- export function checkSigCryptoKey ( key : CryptoKey , alg : string , ... usages : KeyUsage [ ] ) {
37
+ export function checkSigCryptoKey ( key : CryptoKey , alg : string , usage : KeyUsage ) {
46
38
switch ( alg ) {
47
39
case 'HS256' :
48
40
case 'HS384' :
@@ -95,10 +87,10 @@ export function checkSigCryptoKey(key: CryptoKey, alg: string, ...usages: KeyUsa
95
87
throw new TypeError ( 'CryptoKey does not support this operation' )
96
88
}
97
89
98
- checkUsage ( key , usages )
90
+ checkUsage ( key , usage )
99
91
}
100
92
101
- export function checkEncCryptoKey ( key : CryptoKey , alg : string , ... usages : KeyUsage [ ] ) {
93
+ export function checkEncCryptoKey ( key : CryptoKey , alg : string , usage ? : KeyUsage ) {
102
94
switch ( alg ) {
103
95
case 'A128GCM' :
104
96
case 'A192GCM' :
@@ -148,5 +140,5 @@ export function checkEncCryptoKey(key: CryptoKey, alg: string, ...usages: KeyUsa
148
140
throw new TypeError ( 'CryptoKey does not support this operation' )
149
141
}
150
142
151
- checkUsage ( key , usages )
143
+ checkUsage ( key , usage )
152
144
}
0 commit comments