import { JWK } from "jose"; import { JWTPayload } from "./JWT"; import { OidcClaim, VerifiablePresentation } from "./oidcSsi"; export declare enum DidAuthKeyType { EC = "EC", RSA = "RSA" } export declare enum DidAuthKeyCurve { SECP256k1 = "secp256k1", ED25519 = "ed25519" } export declare enum DidAuthKeyAlgorithm { ES256KR = "ES256K-R", ES256K = "ES256K", RS256 = "RS256", EDDSA = "EdDSA", ES256 = "ES256" } export declare enum EncSymmetricAlgorithmCode { XC20P = "XC20P" } export declare enum EncSymmetricAlgorithm { XCHACHA20 = "XChaCha20" } export declare enum EncSymmetricAuthenticationTag { POLY1305 = "Poly1305" } export declare enum EncKeyCurve { X25519 = "X25519" } export declare enum EncKeyAlgorithm { ECDH_ES = "ECDH-ES" } export declare enum DidAuthScope { OPENID_DIDAUTHN = "openid did_authn" } export declare enum DidAuthResponseType { ID_TOKEN = "id_token" } export declare enum DidAuthResponseMode { FRAGMENT = "fragment", FORM_POST = "form_post", QUERY = "query" } export declare enum DidAuthResponseContext { RP = "rp", WALLET = "wallet" } export declare enum DidAuthResponseIss { SELF_ISSUE = "https://self-issued.me", SELF_ISSUE_V2 = "https://self-issued.me/v2" } export interface RegistrationJwksUri { jwks_uri: string; id_token_signed_response_alg: DidAuthKeyAlgorithm; } export interface RegistrationJwks { jwks: JWK; } export declare const expirationTime: number; export declare enum ObjectPassedBy { REFERENCE = "REFERENCE", VALUE = "VALUE" } export declare type RequestObjectBy = { type: ObjectPassedBy.REFERENCE | ObjectPassedBy.VALUE; referenceUri?: string; }; export interface InternalSignature { hexPrivateKey: string; did: string; kid?: string; } export interface NoSignature { hexPublicKey: string; did: string; kid?: string; } export interface ExternalSignature { signatureUri: string; did: string; authZToken?: string; hexPublicKey?: string; kid?: string; } export interface RegistrationType extends RequestObjectBy { id_token_encrypted_response_alg?: EncKeyAlgorithm; id_token_encrypted_response_enc?: EncSymmetricAlgorithmCode; } export interface DidAuthRequestOpts { oidpUri?: string; redirectUri: string; requestObjectBy: RequestObjectBy; signatureType: InternalSignature | ExternalSignature | NoSignature; registrationType: RegistrationType; responseMode?: DidAuthResponseMode; responseContext?: DidAuthResponseContext; claims?: OidcClaim; keySigningAlgorithm?: DidAuthKeyAlgorithm; nonce?: string; state?: string; } export interface DidAuthResponseOpts { redirectUri: string; signatureType: InternalSignature | ExternalSignature; nonce: string; state: string; registrationType: RegistrationType; responseMode?: DidAuthResponseMode; did: string; vp?: VerifiablePresentation; } export interface ResponseClaims { verified_claims?: string; encryption_key?: any; } export interface DidAuthResponseOptsNoSignature { redirectUri: string; identifiersUri: string; nonce: string; state: string; registrationType: RegistrationType; responseMode?: DidAuthResponseMode; did: string; vp?: VerifiablePresentation; claims?: ResponseClaims; } export interface InternalVerification { registry?: string; rpcUrl?: string; didUrlResolver?: string; } export interface ExternalVerification { verifyUri: string; authZToken?: string; didUrlResolver?: string; } export interface DidAuthVerifyOpts { verificationType?: InternalVerification | ExternalVerification; nonce?: string; redirectUri?: string; } export interface DidAuthRequestPayload extends JWTPayload { iss: string; scope: DidAuthScope; registration: RegistrationJwksUri | RegistrationJwks; client_id: string; nonce: string; state: string; response_type: DidAuthResponseType; response_mode?: DidAuthResponseMode; response_context?: DidAuthResponseContext; claims?: OidcClaim; } export interface DidAuthResponsePayload extends JWTPayload { iss: DidAuthResponseIss.SELF_ISSUE; sub: string; aud: string; exp?: number; iat?: number; nonce: string; sub_jwk: JWK; did: string; vp?: VerifiablePresentation; claims?: ResponseClaims; } export interface DidAuthValidationResponse { signatureValidation: boolean; payload?: DidAuthRequestPayload | DidAuthResponsePayload; } export interface SignatureResponse { jws: string; } export declare enum UrlEncodingFormat { FORM_URL_ENCODED = "application/x-www-form-urlencoded" } export declare type UriDidAuth = { urlEncoded: string; encoding: UrlEncodingFormat; }; export interface UriResponse extends UriDidAuth { response_mode: DidAuthResponseMode; bodyEncoded?: string; } export interface UriRequest extends UriDidAuth { jwt?: string; } export interface DidAuthRequestResponse { jwt: string; nonce: string; state: string; }