/** * @see {@link https://datatracker.ietf.org/doc/html/rfc7517 JSON Web Key (JWK)} * @example * ```json * { * "kty": "EC", * "crv": "P-256", * "x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU", * "y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0", * "kid": "Public key used in JWS spec Appendix A.3 example" * } * ``` * * * File automatically generated using json-schema-to-typescript. * ! DO NOT MODIFY IT BY HAND ! * Instead, modify the source file ./jose/jwk.schema.json of @oada/formats * and run `$ yarn build` to regenerate this file. * * @packageDocumentation */ /** * `$id` of the source schema * @see {@link https://formats.openag.io/jose/jwk.schema.json} */ export declare const $id = "https://formats.openag.io/jose/jwk.schema.json"; /** * JSON Schema used to generate this type * @see {@link https://formats.openag.io/jose/jwk.schema.json} */ export declare const schema: { readonly $id: "https://formats.openag.io/jose/jwk.schema.json"; readonly $schema: "http://json-schema.org/draft-07/schema#"; readonly title: "JWK"; readonly description: "@see {@link https://datatracker.ietf.org/doc/html/rfc7517 JSON Web Key (JWK)}"; readonly definitions: { readonly jwk: { readonly description: "@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4 JSON Web Key (JWK) Format}"; readonly type: "object"; readonly required: readonly ["kty"]; readonly properties: { readonly kty: { readonly title: "kty"; readonly description: "Key Type\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.1}"; readonly allOf: readonly [{ readonly $ref: "./jwa.schema.json#/definitions/kty"; }]; }; readonly use: { readonly title: "use"; readonly description: "Public Key Use\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.2}"; readonly allOf: readonly [{ readonly $ref: "#/definitions/use"; }]; }; readonly key_ops: { readonly title: "key_ops"; readonly description: "@see {@link https://www.w3.org/TR/WebCryptoAPI/#dfn-KeyUsage Web Crypto API}"; readonly type: "array"; readonly uniqueItems: true; readonly items: { readonly $ref: "#/definitions/key_op"; }; }; readonly alg: { readonly title: "alg"; readonly description: "Algorithm\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.4}"; readonly allOf: readonly [{ readonly $ref: "./jwa.schema.json#/definitions/alg"; }]; }; readonly kid: { readonly title: "kid"; readonly description: "Key ID\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.5}"; readonly type: "string"; }; readonly x5u: { readonly title: "x5u"; readonly description: "X.509 URL\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.6}"; readonly type: "string"; readonly format: "uri"; }; readonly x5c: { readonly title: "x5c"; readonly description: "X.509 Certificate Chain\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.7}"; readonly type: "array"; readonly minItems: 1; readonly items: { readonly type: "string"; readonly contentEncoding: "base64"; readonly contentMediaType: "application/pkix-pkipath"; }; }; readonly x5t: { readonly title: "x5t"; readonly description: "X.509 Certificate SHA-1 Thumbprint\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.8}"; readonly type: "string"; readonly contentEncoding: "base64url"; }; readonly 'x5t#S256': { readonly title: "x5t#S256"; readonly description: "X.509 Certificate SHA-256 Thumbprint\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.9}"; readonly type: "string"; readonly contentEncoding: "base64url"; }; readonly crv: { readonly title: "crv"; readonly description: "The subtype of key pair\n@see {@link https://datatracker.ietf.org/doc/html/rfc8037#section-2}"; }; readonly x: { readonly title: "x"; readonly description: "The public key\n@see {@link https://datatracker.ietf.org/doc/html/rfc8037#section-2}"; }; readonly y: { readonly title: "y"; readonly description: "Y Coordinate\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.2.1.3}"; }; readonly d: { readonly title: "d"; readonly description: "The private key\n@see {@link https://datatracker.ietf.org/doc/html/rfc8037#section-2}"; }; readonly n: { readonly title: "n"; readonly description: "Modulus\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.1.1}"; }; readonly e: { readonly title: "e"; readonly description: "Exponent\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.1.2}"; }; readonly p: { readonly title: "p"; readonly description: "First Prime Factor\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.2}"; }; readonly q: { readonly title: "q"; readonly description: "Second Prime Factor\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.3}"; }; readonly dp: { readonly title: "dp"; readonly description: "First Factor CRT Exponent\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.4}"; }; readonly dq: { readonly title: "dq"; readonly description: "Second Factor CRT Exponent\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.5}"; }; readonly qi: { readonly title: "qi"; readonly description: "First CRT Coefficient\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.6}"; }; readonly oth: { readonly title: "oth"; readonly description: "Other Primes Info\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.7}"; }; readonly k: { readonly title: "k"; readonly description: "Key Value\n@see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.4.1}"; }; readonly ext: { readonly title: "ext"; readonly description: "Extractable\n@see {@link https://www.w3.org/TR/WebCryptoAPI}"; }; readonly iat: { readonly title: "iat"; readonly description: "Issued At, as defined in [RFC7519]\n@see {@link OpenID Federation 1.0, Section 8.7.2}"; }; readonly nbf: { readonly title: "nbf"; readonly description: "Not Before, as defined in [RFC7519]\n@see {@link OpenID Federation 1.0, Section 8.7.2}"; }; readonly exp: { readonly title: "exp"; readonly description: "Expiration Time, as defined in [RFC7519]\n@see {@link OpenID Federation 1.0, Section 8.7.2}"; }; readonly revoked: { readonly title: "revoked"; readonly description: "Revoked Key Properties\n@see {@link OpenID Federation 1.0, Section 8.7.2}"; }; readonly pub: { readonly title: "pub"; readonly description: "Public key\n@see {@link https://datatracker.ietf.org/doc/html/rfcNaN}"; }; readonly priv: { readonly title: "priv"; readonly description: "Private key\n@see {@link https://datatracker.ietf.org/doc/html/rfcNaN}"; }; }; }; readonly jwks: { readonly type: "object"; readonly required: readonly ["keys"]; readonly properties: { readonly keys: { readonly type: "array"; readonly items: { readonly $ref: "#/definitions/jwk"; }; }; }; }; readonly use: { readonly oneOf: readonly [{ readonly $ref: "#/definitions/use/definitions/registered"; }, { readonly $ref: "../utils.schema.json#/definitions/anyOtherString"; }]; readonly definitions: { readonly registered: { readonly $comment: "Enum retrieved dynamically from https://www.iana.org/assignments/jose/jose.xhtml#web-key-use on Tue May 19 2026 18:03:05 GMT-0700 (Pacific Daylight Time)"; readonly oneOf: readonly [{ readonly title: "sig"; readonly description: "Digital Signature or MAC\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.2}"; readonly const: "sig"; }, { readonly title: "enc"; readonly description: "Encryption\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.2}"; readonly const: "enc"; }]; }; }; }; readonly key_op: { readonly oneOf: readonly [{ readonly $ref: "#/definitions/key_op/definitions/registered"; }, { readonly $ref: "../utils.schema.json#/definitions/anyOtherString"; }]; readonly definitions: { readonly registered: { readonly $comment: "Enum retrieved dynamically from https://www.iana.org/assignments/jose/jose.xhtml#web-key-operations on Tue May 19 2026 18:03:05 GMT-0700 (Pacific Daylight Time)"; readonly oneOf: readonly [{ readonly title: "sign"; readonly description: "Compute digital signature or MAC\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}"; readonly const: "sign"; }, { readonly title: "verify"; readonly description: "Verify digital signature or MAC\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}"; readonly const: "verify"; }, { readonly title: "encrypt"; readonly description: "Encrypt content\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}"; readonly const: "encrypt"; }, { readonly title: "decrypt"; readonly description: "Decrypt content and validate decryption, if applicable\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}"; readonly const: "decrypt"; }, { readonly title: "wrapKey"; readonly description: "Encrypt key\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}"; readonly const: "wrapKey"; }, { readonly title: "unwrapKey"; readonly description: "Decrypt key and validate decryption, if applicable\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}"; readonly const: "unwrapKey"; }, { readonly title: "deriveKey"; readonly description: "Derive key\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}"; readonly const: "deriveKey"; }, { readonly title: "deriveBits"; readonly description: "Derive bits not to be used as a key\n@see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3}"; readonly const: "deriveBits"; }]; }; }; }; }; readonly oneOf: readonly [{ readonly $ref: "#/definitions/jwk"; }]; readonly examples: readonly [{ readonly kty: "EC"; readonly crv: "P-256"; readonly x: "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU"; readonly y: "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0"; readonly kid: "Public key used in JWS spec Appendix A.3 example"; }]; }; /** * Returns true if `val` is a @type `JWK`, false otherwise */ export declare function is(val: unknown): val is JWK; /** * Asserts that `val` is a @type `JWK` */ export declare function assert(val: unknown): asserts val is JWK; /** * @see {@link https://datatracker.ietf.org/doc/html/rfc7517 JSON Web Key (JWK)} * @example * ```json * { * "kty": "EC", * "crv": "P-256", * "x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU", * "y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0", * "kid": "Public key used in JWS spec Appendix A.3 example" * } * ``` * */ export default JWK; /** * @see {@link https://datatracker.ietf.org/doc/html/rfc7517 JSON Web Key (JWK)} */ export type JWK = Jwk; /** * Key Type * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.1} */ export type Kty = KtyKeyTypeParameter; /** * Identifies the cryptographic algorithm family used with the key */ export type KtyKeyTypeParameter = RegisteredKty | AnyOtherString; /** * IANA registered values for JSON Web Key Types * @see {@link https://www.iana.org/assignments/jose/jose.xhtml#web-key-types} */ export type RegisteredKty = EC | RSA | Oct | OKP | AKP; /** * Elliptic Curve * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.2} */ export type EC = 'EC'; /** * RSA * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3} */ export type RSA = 'RSA'; /** * Octet sequence * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.4} */ export type Oct = 'oct'; /** * Octet string key pairs * @see {@link https://datatracker.ietf.org/doc/html/rfc8037#section-2} */ export type OKP = 'OKP'; /** * Algorithm Key Pair * @see {@link https://datatracker.ietf.org/doc/html/rfcNaN} */ export type AKP = 'AKP'; /** * Workaround to make TypeScript autocomplete better for string enums */ export type AnyOtherString = string & Record; /** * Public Key Use * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.2} */ export type Use = Use1; export type Use1 = (Sig | Enc) | AnyOtherString; /** * Digital Signature or MAC * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.2} */ export type Sig = 'sig'; /** * Encryption * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.2} */ export type Enc = 'enc'; export type KeyOp = (Sign | Verify | Encrypt | Decrypt | WrapKey | UnwrapKey | DeriveKey | DeriveBits) | AnyOtherString; /** * Compute digital signature or MAC * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3} */ export type Sign = 'sign'; /** * Verify digital signature or MAC * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3} */ export type Verify = 'verify'; /** * Encrypt content * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3} */ export type Encrypt = 'encrypt'; /** * Decrypt content and validate decryption, if applicable * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3} */ export type Decrypt = 'decrypt'; /** * Encrypt key * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3} */ export type WrapKey = 'wrapKey'; /** * Decrypt key and validate decryption, if applicable * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3} */ export type UnwrapKey = 'unwrapKey'; /** * Derive key * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3} */ export type DeriveKey = 'deriveKey'; /** * Derive bits not to be used as a key * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.3} */ export type DeriveBits = 'deriveBits'; /** * @see {@link https://www.w3.org/TR/WebCryptoAPI/#dfn-KeyUsage Web Crypto API} */ export type KeyOps = KeyOp[]; /** * Algorithm * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.4} */ export type Alg = AlgAlgorithmParameter; /** * JSON Web Signature and Encryption Algorithms */ export type AlgAlgorithmParameter = RegisteredAlg | AnyOtherString; /** * IANA registered values for JSON Web Signature and Encryption Algorithms * @see {@link https://www.iana.org/assignments/jose/jose.xhtml#web-signature-encryption-algorithms} */ export type RegisteredAlg = HS256 | HS384 | HS512 | RS256 | RS384 | RS512 | ES256 | ES384 | ES512 | PS256 | PS384 | PS512 | None | RSA1_5 | RSAOAEP | RSAOAEP256 | A128KW | A192KW | A256KW | Dir | ECDHES | ECDHESA128KW | ECDHESA192KW | ECDHESA256KW | A128GCMKW | A192GCMKW | A256GCMKW | PBES2HS256A128KW | PBES2HS384A192KW | PBES2HS512A256KW | A128CBCHS256 | A192CBCHS384 | A256CBCHS512 | A128GCM | A192GCM | A256GCM | EdDSA | RS1 | RSAOAEP384 | RSAOAEP512 | A128CBC | A192CBC | A256CBC | A128CTR | A192CTR | A256CTR | HS1 | ES256K | MLDSA44 | MLDSA65 | MLDSA87 | Ed25519 | Ed448; /** * HMAC using SHA-256 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.2} */ export type HS256 = 'HS256'; /** * HMAC using SHA-384 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.2} */ export type HS384 = 'HS384'; /** * HMAC using SHA-512 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.2} */ export type HS512 = 'HS512'; /** * RSASSA-PKCS1-v1_5 using SHA-256 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.3} */ export type RS256 = 'RS256'; /** * RSASSA-PKCS1-v1_5 using SHA-384 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.3} */ export type RS384 = 'RS384'; /** * RSASSA-PKCS1-v1_5 using SHA-512 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.3} */ export type RS512 = 'RS512'; /** * ECDSA using P-256 and SHA-256 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.4} */ export type ES256 = 'ES256'; /** * ECDSA using P-384 and SHA-384 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.4} */ export type ES384 = 'ES384'; /** * ECDSA using P-521 and SHA-512 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.4} */ export type ES512 = 'ES512'; /** * RSASSA-PSS using SHA-256 and MGF1 with SHA-256 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.5} */ export type PS256 = 'PS256'; /** * RSASSA-PSS using SHA-384 and MGF1 with SHA-384 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.5} */ export type PS384 = 'PS384'; /** * RSASSA-PSS using SHA-512 and MGF1 with SHA-512 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.5} */ export type PS512 = 'PS512'; /** * No digital signature or MAC performed * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-3.6} */ export type None = 'none'; /** * RSAES-PKCS1-v1_5 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.2} */ export type RSA1_5 = 'RSA1_5'; /** * RSAES OAEP using default parameters * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.3} */ export type RSAOAEP = 'RSA-OAEP'; /** * RSAES OAEP using SHA-256 and MGF1 with SHA-256 * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.3} */ export type RSAOAEP256 = 'RSA-OAEP-256'; /** * AES Key Wrap using 128-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.4} */ export type A128KW = 'A128KW'; /** * AES Key Wrap using 192-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.4} */ export type A192KW = 'A192KW'; /** * AES Key Wrap using 256-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.4} */ export type A256KW = 'A256KW'; /** * Direct use of a shared symmetric key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.5} */ export type Dir = 'dir'; /** * ECDH-ES using Concat KDF * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.6} */ export type ECDHES = 'ECDH-ES'; /** * ECDH-ES using Concat KDF and "A128KW" wrapping * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.6} */ export type ECDHESA128KW = 'ECDH-ES+A128KW'; /** * ECDH-ES using Concat KDF and "A192KW" wrapping * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.6} */ export type ECDHESA192KW = 'ECDH-ES+A192KW'; /** * ECDH-ES using Concat KDF and "A256KW" wrapping * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.6} */ export type ECDHESA256KW = 'ECDH-ES+A256KW'; /** * Key wrapping with AES GCM using 128-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.7} */ export type A128GCMKW = 'A128GCMKW'; /** * Key wrapping with AES GCM using 192-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.7} */ export type A192GCMKW = 'A192GCMKW'; /** * Key wrapping with AES GCM using 256-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.7} */ export type A256GCMKW = 'A256GCMKW'; /** * PBES2 with HMAC SHA-256 and "A128KW" wrapping * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.8} */ export type PBES2HS256A128KW = 'PBES2-HS256+A128KW'; /** * PBES2 with HMAC SHA-384 and "A192KW" wrapping * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.8} */ export type PBES2HS384A192KW = 'PBES2-HS384+A192KW'; /** * PBES2 with HMAC SHA-512 and "A256KW" wrapping * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-4.8} */ export type PBES2HS512A256KW = 'PBES2-HS512+A256KW'; /** * AES_128_CBC_HMAC_SHA_256 authenticated encryption algorithm * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-5.2.3} */ export type A128CBCHS256 = 'A128CBC-HS256'; /** * AES_192_CBC_HMAC_SHA_384 authenticated encryption algorithm * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-5.2.4} */ export type A192CBCHS384 = 'A192CBC-HS384'; /** * AES_256_CBC_HMAC_SHA_512 authenticated encryption algorithm * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-5.2.5} */ export type A256CBCHS512 = 'A256CBC-HS512'; /** * AES GCM using 128-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-5.3} */ export type A128GCM = 'A128GCM'; /** * AES GCM using 192-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-5.3} */ export type A192GCM = 'A192GCM'; /** * AES GCM using 256-bit key * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-5.3} */ export type A256GCM = 'A256GCM'; /** * EdDSA signature algorithms * @see {@link https://datatracker.ietf.org/doc/html/rfc9864#section-2.2} */ export type EdDSA = 'EdDSA'; /** * RSASSA-PKCS1-v1_5 with SHA-1 * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type RS1 = 'RS1'; /** * RSA-OAEP using SHA-384 and MGF1 with SHA-384 * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type RSAOAEP384 = 'RSA-OAEP-384'; /** * RSA-OAEP using SHA-512 and MGF1 with SHA-512 * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type RSAOAEP512 = 'RSA-OAEP-512'; /** * AES CBC using 128 bit key * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type A128CBC = 'A128CBC'; /** * AES CBC using 192 bit key * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type A192CBC = 'A192CBC'; /** * AES CBC using 256 bit key * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type A256CBC = 'A256CBC'; /** * AES CTR using 128 bit key * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type A128CTR = 'A128CTR'; /** * AES CTR using 192 bit key * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type A192CTR = 'A192CTR'; /** * AES CTR using 256 bit key * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type A256CTR = 'A256CTR'; /** * HMAC using SHA-1 * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export type HS1 = 'HS1'; /** * ECDSA using secp256k1 curve and SHA-256 * @see {@link https://datatracker.ietf.org/doc/html/rfc8812#section-3.2} */ export type ES256K = 'ES256K'; /** * ML-DSA-44 as described in US NIST FIPS 204 * @see {@link https://datatracker.ietf.org/doc/html/rfcNaN} */ export type MLDSA44 = 'ML-DSA-44'; /** * ML-DSA-65 as described in US NIST FIPS 204 * @see {@link https://datatracker.ietf.org/doc/html/rfcNaN} */ export type MLDSA65 = 'ML-DSA-65'; /** * ML-DSA-87 as described in US NIST FIPS 204 * @see {@link https://datatracker.ietf.org/doc/html/rfcNaN} */ export type MLDSA87 = 'ML-DSA-87'; /** * EdDSA using the Ed25519 parameter set in Section 5.1 of [RFC8032] * @see {@link https://datatracker.ietf.org/doc/html/rfc9864#section-2.2} */ export type Ed25519 = 'Ed25519'; /** * EdDSA using the Ed448 parameter set in Section 5.2 of [RFC8032] * @see {@link https://datatracker.ietf.org/doc/html/rfc9864#section-2.2} */ export type Ed448 = 'Ed448'; /** * Key ID * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.5} */ export type Kid = string; /** * X.509 URL * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.6} */ export type X5U = string; /** * X.509 Certificate Chain * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.7} * * @minItems 1 */ export type X5C = [string, ...string[]]; /** * X.509 Certificate SHA-1 Thumbprint * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.8} */ export type X5T = string; /** * X.509 Certificate SHA-256 Thumbprint * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4.9} */ export type X5TS256 = string; /** * @see {@link https://datatracker.ietf.org/doc/html/rfc7517#section-4 JSON Web Key (JWK) Format} */ export interface Jwk { 'kty': Kty; 'use'?: Use; 'key_ops'?: KeyOps; 'alg'?: Alg; 'kid'?: Kid; 'x5u'?: X5U; 'x5c'?: X5C; 'x5t'?: X5T; 'x5t#S256'?: X5TS256; 'crv'?: Crv; 'x'?: X; 'y'?: Y; 'd'?: D; 'n'?: N; 'e'?: E; 'p'?: P; 'q'?: Q; 'dp'?: Dp; 'dq'?: Dq; 'qi'?: Qi; 'oth'?: Oth; 'k'?: K; 'ext'?: Ext; 'iat'?: Iat; 'nbf'?: Nbf; 'exp'?: Exp; 'revoked'?: Revoked; 'pub'?: Pub; 'priv'?: Priv; [k: string]: unknown; } /** * The subtype of key pair * @see {@link https://datatracker.ietf.org/doc/html/rfc8037#section-2} */ export interface Crv { [k: string]: unknown; } /** * The public key * @see {@link https://datatracker.ietf.org/doc/html/rfc8037#section-2} */ export interface X { [k: string]: unknown; } /** * Y Coordinate * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.2.1.3} */ export interface Y { [k: string]: unknown; } /** * The private key * @see {@link https://datatracker.ietf.org/doc/html/rfc8037#section-2} */ export interface D { [k: string]: unknown; } /** * Modulus * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.1.1} */ export interface N { [k: string]: unknown; } /** * Exponent * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.1.2} */ export interface E { [k: string]: unknown; } /** * First Prime Factor * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.2} */ export interface P { [k: string]: unknown; } /** * Second Prime Factor * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.3} */ export interface Q { [k: string]: unknown; } /** * First Factor CRT Exponent * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.4} */ export interface Dp { [k: string]: unknown; } /** * Second Factor CRT Exponent * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.5} */ export interface Dq { [k: string]: unknown; } /** * First CRT Coefficient * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.6} */ export interface Qi { [k: string]: unknown; } /** * Other Primes Info * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.2.7} */ export interface Oth { [k: string]: unknown; } /** * Key Value * @see {@link https://datatracker.ietf.org/doc/html/rfc7518#section-6.4.1} */ export interface K { [k: string]: unknown; } /** * Extractable * @see {@link https://www.w3.org/TR/WebCryptoAPI} */ export interface Ext { [k: string]: unknown; } /** * Issued At, as defined in [RFC7519] * @see {@link OpenID Federation 1.0, Section 8.7.2} */ export interface Iat { [k: string]: unknown; } /** * Not Before, as defined in [RFC7519] * @see {@link OpenID Federation 1.0, Section 8.7.2} */ export interface Nbf { [k: string]: unknown; } /** * Expiration Time, as defined in [RFC7519] * @see {@link OpenID Federation 1.0, Section 8.7.2} */ export interface Exp { [k: string]: unknown; } /** * Revoked Key Properties * @see {@link OpenID Federation 1.0, Section 8.7.2} */ export interface Revoked { [k: string]: unknown; } /** * Public key * @see {@link https://datatracker.ietf.org/doc/html/rfcNaN} */ export interface Pub { [k: string]: unknown; } /** * Private key * @see {@link https://datatracker.ietf.org/doc/html/rfcNaN} */ export interface Priv { [k: string]: unknown; }