UNPKG

@unvision/jose

Version:

Implementation of the RFCs of the JOSE Working Group.

102 lines (101 loc) 4.22 kB
import { JsonWebKeyParameters } from '../jwk/jsonwebkey.parameters'; import { JsonWebEncryptionKeyWrapAlgorithm } from './algorithms/alg/jsonwebencryption-key-wrap.algorithm'; import { SupportedJsonWebEncryptionKeyWrapAlgorithm } from './algorithms/alg/types/supported-jsonwebencryption-keywrap-algorithm'; import { JsonWebEncryptionContentEncryptionAlgorithm } from './algorithms/enc/jsonwebencryption-content-encryption.algorithm'; import { SupportedJsonWebEncryptionContentEncryptionAlgorithm } from './algorithms/enc/types/supported-jsonwebencryption-content-encryption-algorithm'; import { JsonWebEncryptionCompressionAlgorithm } from './algorithms/zip/jsonwebencryption-compression.algorithm'; import { SupportedJsonWebEncryptionCompressionAlgorithm } from './algorithms/zip/types/supported-jsonwebencryption-compression-algorithm'; import { JsonWebEncryptionHeaderParameters } from './jsonwebencryption.header.parameters'; /** * Implementation of the JSON Web Encryption Header. * * @see https://www.rfc-editor.org/rfc/rfc7516.html#section-4 */ export declare class JsonWebEncryptionHeader implements JsonWebEncryptionHeaderParameters { /** * Supported JSON Web Encryption Key Wrap Algorithms. */ private static readonly keyWrapAlgorithms; /** * Supported JSON Web Encryption Content Encryption Algorithms. */ private static readonly contentEncryptionAlgorithms; /** * Supported JSON Web Encryption Compression Algorithms. */ private static readonly compressionAlgorithms; /** * JSON Web Encryption Key Wrap Algorithm used by the JSON Web Encryption Header. */ readonly keyWrapAlgorithm: JsonWebEncryptionKeyWrapAlgorithm; /** * JSON Web Encryption Content Encryption Algorithm used by the JSON Web Encryption Header. */ readonly contentEncryptionAlgorithm: JsonWebEncryptionContentEncryptionAlgorithm; /** * JSON Web Encryption Compression Algorithm used by the JSON Web Encryption Header. */ readonly compressionAlgorithm: JsonWebEncryptionCompressionAlgorithm | null; /** * JSON Web Encryption Key Wrap Algorithm used to Wrap and Unwrap the Content Encryption Key. */ readonly alg: SupportedJsonWebEncryptionKeyWrapAlgorithm; /** * JSON Web Encryption Content Encryption Algorithm used to Encrypt and Decrypt the Plaintext of the Token. */ readonly enc: SupportedJsonWebEncryptionContentEncryptionAlgorithm; /** * JSON Web Encryption Compression Algorithm used to Compress and Decompress the Plaintext of the Token. */ readonly zip?: SupportedJsonWebEncryptionCompressionAlgorithm; /** * URI of a Set of Public JSON Web Keys that contains the JSON Web Key used to Encrypt the Token. */ readonly jku?: string; /** * JSON Web Key used to Encrypt the Token. */ readonly jwk?: JsonWebKeyParameters; /** * Identifier of the JSON Web Key used to Encrypt the Token. */ readonly kid?: string; /** * URI of the X.509 certificate of the JSON Web Key used to Encrypt the Token. */ readonly x5u?: string; /** * Chain of X.509 certificates of the JSON Web Key used to Encrypt the Token. */ readonly x5c?: string[]; /** * SHA-1 Thumbprint of the X.509 certificate of the JSON Web Key used to Encrypt the Token. */ readonly x5t?: string; /** * SHA-256 Thumbprint of the X.509 certificate of the JSON Web Key used to Encrypt the Token. */ readonly 'x5t#S256'?: string; /** * Defines the type of the Token. */ readonly typ?: string; /** * Defines the type of the Payload of the Token. */ readonly cty?: string; /** * Defines the parameters that MUST be present in the JSON Web Encryption Header. */ readonly crit?: string[]; /** * Additional JSON Web Encryption Header Parameters. */ readonly [parameter: string]: any; /** * Instantiates a new JSON Web Encryption Header based on the provided Parameters. * * @param parameters JSON Web Encryption Header Parameters. */ constructor(parameters: JsonWebEncryptionHeaderParameters); }