UNPKG

@iden3/js-iden3-auth

Version:

iden3-auth implementation in JavaScript

117 lines (116 loc) 4.82 kB
import { Resolvers } from '../state/resolver'; import { VerifyOpts } from '../circuits/registry'; import { Token } from '@iden3/js-jwz'; import { AuthorizationRequestMessage, AuthorizationResponseMessage, IPacker, KMS, PackageManager, IZKProver, ICircuitStorage } from '@0xpolygonid/js-sdk'; import { Resolvable } from 'did-resolver'; import { Options, DocumentLoader } from '@iden3/js-jsonld-merklization'; import { ZeroKnowledgeProofRequest } from '@0xpolygonid/js-sdk'; /** * Options to pass to createAuthorizationRequest function * @public */ export type AuthorizationRequestCreateOptions = { accept?: string[]; scope?: ZeroKnowledgeProofRequest[]; expires_time?: Date; }; /** * createAuthorizationRequest is a function to create protocol authorization request * @param {string} reason - reason to request proof * @param {string} sender - sender did * @param {string} callbackUrl - callback that user should use to send response * @returns `Promise<AuthorizationRequestMessage>` */ export declare function createAuthorizationRequest(reason: string, sender: string, callbackUrl: string, opts?: AuthorizationRequestCreateOptions): AuthorizationRequestMessage; /** * createAuthorizationRequestWithMessage is a function to create protocol authorization request with explicit message to sign * @param {string} reason - reason to request proof * @param {string} message - message to sign in the response * @param {string} sender - sender did * @param {string} callbackUrl - callback that user should use to send response * @returns `Promise<AuthorizationRequestMessage>` */ export declare function createAuthorizationRequestWithMessage(reason: string, message: string, sender: string, callbackUrl: string, opts?: AuthorizationRequestCreateOptions): AuthorizationRequestMessage; /** * VerifierParams are params to pass init verifier that contain jsonld document loader options and * options to verify the query */ export type VerifierParams = Options & { stateResolver: Resolvers; didDocumentResolver?: Resolvable; circuitsDir?: string; suite?: VerifierSuiteParams; }; /** * VerifierSuiteParams are custom defined prover, circuit storage, package manager and document loader */ export interface VerifierSuiteParams { documentLoader: DocumentLoader; packageManager: PackageManager; circuitStorage: ICircuitStorage; prover: IZKProver; } /** * * Verifier is responsible for verification of JWZ / JWS packed messages with zero-knowledge proofs inside. * * @public * @class Verifier */ export declare class Verifier { private schemaLoader; private stateResolver; private packageManager; private prover; private circuitStorage; /** * Creates an instance of the Verifier. * @private * @param {Resolvers} resolvers - state resolvers instances * @param {VerifierSuiteParams} params - suite for verification */ private constructor(); /** * Creates an instance of the Verifier. * @public * @param {VerifierParams} params - params to init verifier * @returns `Promise<Verifier>` */ static newVerifier(params: VerifierParams): Promise<Verifier>; setPackageManager(manager: PackageManager): void; setPacker(packer: IPacker): void; setupAuthV2ZKPPacker(circuitStorage: ICircuitStorage): Promise<void>; setupJWSPacker(kms: KMS, documentResolver: Resolvable): void; verifyAuthRequest(request: AuthorizationRequestMessage, opts?: VerifyOpts): void; /** * verifies zero knowledge proof response according to the proof request * @public * @param {AuthorizationResponseMessage} response - auth protocol response * @param {AuthorizationRequestMessage} proofRequest - auth protocol request * @param {VerifyOpts} opts - verification options * * @returns `Promise<void>` */ verifyAuthResponse(response: AuthorizationResponseMessage, request: AuthorizationRequestMessage, opts?: VerifyOpts): Promise<void>; /** * verifies jwz token * @public * @param {string} tokenStr - token string * @param {VerifyOpts} opts - verification options * * @returns `Promise<Token>` */ verifyJWZ(tokenStr: string, opts?: VerifyOpts): Promise<Token>; /** * perform both verification of jwz / jws token and authorization request message * @public * @param {string} tokenStr - token string * @param {AuthorizationRequestMessage} request - auth protocol request * @param {VerifyOpts} opts - verification options * * @returns `Promise<AuthorizationResponseMessage>` */ fullVerify(tokenStr: string, request: AuthorizationRequestMessage, opts?: VerifyOpts): Promise<AuthorizationResponseMessage>; private initPackers; private verifyProfile; }