fix(typescript): Compact JWS Header Parameters has alg and enc as required

This commit is contained in:
Filip Skokan 2021-11-11 21:51:57 +01:00
parent aaba8f3000
commit 0fa87af64b
6 changed files with 21 additions and 9 deletions

View file

@ -89,4 +89,5 @@ export type {
JWTVerifyResult,
JWTDecryptResult,
ResolvedKey,
CompactJWEHeaderParameters,
} from './types.d'

View file

@ -4,7 +4,7 @@ import { decoder } from '../../lib/buffer_utils.js'
import type {
KeyLike,
DecryptOptions,
JWEHeaderParameters,
CompactJWEHeaderParameters,
GetKeyFunction,
FlattenedJWE,
CompactDecryptResult,
@ -15,7 +15,8 @@ import type {
* Interface for Compact JWE Decryption dynamic key resolution.
* No token components have been verified at the time of this function call.
*/
export interface CompactDecryptGetKey extends GetKeyFunction<JWEHeaderParameters, FlattenedJWE> {}
export interface CompactDecryptGetKey
extends GetKeyFunction<CompactJWEHeaderParameters, FlattenedJWE> {}
/**
* Decrypts a Compact JWE.

View file

@ -2,7 +2,7 @@ import { FlattenedEncrypt } from '../flattened/encrypt.js'
import type {
KeyLike,
JWEKeyManagementHeaderParameters,
JWEHeaderParameters,
CompactJWEHeaderParameters,
EncryptOptions,
} from '../../types.d'
@ -63,7 +63,7 @@ export class CompactEncrypt {
*
* @param protectedHeader JWE Protected Header object.
*/
setProtectedHeader(protectedHeader: JWEHeaderParameters) {
setProtectedHeader(protectedHeader: CompactJWEHeaderParameters) {
this._flattened.setProtectedHeader(protectedHeader)
return this
}

View file

@ -4,7 +4,7 @@ import type {
DecryptOptions,
JWTClaimVerificationOptions,
GetKeyFunction,
JWEHeaderParameters,
CompactJWEHeaderParameters,
FlattenedJWE,
JWTDecryptResult,
ResolvedKey,
@ -21,7 +21,8 @@ export interface JWTDecryptOptions extends DecryptOptions, JWTClaimVerificationO
* Interface for JWT Decryption dynamic key resolution.
* No token components have been verified at the time of this function call.
*/
export interface JWTDecryptGetKey extends GetKeyFunction<JWEHeaderParameters, FlattenedJWE> {}
export interface JWTDecryptGetKey
extends GetKeyFunction<CompactJWEHeaderParameters, FlattenedJWE> {}
/**
* Verifies the JWT format (to be a JWE Compact format), decrypts the ciphertext, validates the JWT Claims Set.

View file

@ -1,7 +1,7 @@
import { CompactEncrypt } from '../jwe/compact/encrypt.js'
import type {
EncryptOptions,
JWEHeaderParameters,
CompactJWEHeaderParameters,
JWEKeyManagementHeaderParameters,
KeyLike,
} from '../types.d'
@ -31,7 +31,7 @@ export class EncryptJWT extends ProduceJWT {
private _keyManagementParameters!: JWEKeyManagementHeaderParameters
private _protectedHeader!: JWEHeaderParameters
private _protectedHeader!: CompactJWEHeaderParameters
private _replicateIssuerAsHeader!: boolean
@ -46,7 +46,7 @@ export class EncryptJWT extends ProduceJWT {
* Must contain an "alg" (JWE Algorithm) and "enc" (JWE
* Encryption Algorithm) properties.
*/
setProtectedHeader(protectedHeader: JWEHeaderParameters) {
setProtectedHeader(protectedHeader: CompactJWEHeaderParameters) {
if (this._protectedHeader) {
throw new TypeError('setProtectedHeader can only be called once')
}

9
src/types.d.ts vendored
View file

@ -720,3 +720,12 @@ export interface ResolvedKey {
*/
key: KeyLike | Uint8Array
}
/**
* Recognized Compact JWE Header Parameters, any other Header Members
* may also be present.
*/
export interface CompactJWEHeaderParameters extends JWEHeaderParameters {
alg: string
enc: string
}