@iden3/js-iden3-auth
Version:
iden3-auth implementation in JavaScript
117 lines (116 loc) • 4.82 kB
TypeScript
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;
}