@sphereon/ssi-sdk.mdl-mdoc
Version:
75 lines • 3.38 kB
TypeScript
import { com } from '@sphereon/kmp-mdoc-core';
import { PresentationDefinitionV2, PresentationSubmission } from '@sphereon/pex-models';
import { ISphereonKeyManager } from '@sphereon/ssi-sdk-ext.key-manager';
import { CertificateInfo, SubjectAlternativeGeneralName, X509ValidationResult } from '@sphereon/ssi-sdk-ext.x509-utils';
import { IAgentContext, IDIDManager, IPluginMethodMap, IResolver } from '@veramo/core';
import CoseSign1Json = com.sphereon.crypto.cose.CoseSign1Json;
import ICoseKeyCbor = com.sphereon.crypto.cose.ICoseKeyCbor;
import ICoseKeyJson = com.sphereon.crypto.cose.ICoseKeyJson;
import IKeyInfo = com.sphereon.crypto.IKeyInfo;
import IVerifyResults = com.sphereon.crypto.generic.IVerifyResults;
import IVerifySignatureResult = com.sphereon.crypto.generic.IVerifySignatureResult;
import DocumentJson = com.sphereon.mdoc.data.device.DocumentJson;
import DocumentCbor = com.sphereon.mdoc.data.device.DocumentCbor;
export interface ImDLMdoc extends IPluginMethodMap {
x509VerifyCertificateChain(args: VerifyCertificateChainArgs, context: IRequiredContext): Promise<X509ValidationResult>;
x509GetCertificateInfo(args: GetX509CertificateInfoArgs, context: IRequiredContext): Promise<CertificateInfo[]>;
mdocVerifyIssuerSigned(args: MdocVerifyIssuerSignedArgs, context: IRequiredContext): Promise<IVerifySignatureResult<KeyType>>;
mdocOid4vpHolderPresent(args: MdocOid4vpPresentArgs, context: IRequiredContext): Promise<MdocOid4VPPresentationAuth>;
mdocOid4vpRPVerify(args: MdocOid4vpRPVerifyArgs, _context: IRequiredContext): Promise<MdocOid4vpRPVerifyResult>;
}
export type IRequiredContext = IAgentContext<ISphereonKeyManager & IDIDManager & IResolver>;
export type VerifyCertificateChainArgs = {
chain: Array<string | Uint8Array>;
trustAnchors?: string[];
verificationTime?: Date;
opts?: {
allowNoTrustAnchorsFound?: boolean;
trustRootWhenNoAnchors?: boolean;
allowSingleNoCAChainElement?: boolean;
blindlyTrustedAnchors?: string[];
};
};
export type GetX509CertificateInfoArgs = {
certificates: (string | Uint8Array)[];
sanTypeFilter?: SubjectAlternativeGeneralName | SubjectAlternativeGeneralName[];
};
export type KeyType = ICoseKeyJson;
export type MdocVerifyIssuerSignedArgs = {
input: CoseSign1Json;
keyInfo?: IKeyInfo<KeyType>;
requireX5Chain?: boolean;
};
export interface MdocOid4VPPresentationAuth {
vp_token: string;
presentation_submission: PresentationSubmission;
}
export interface MdocOid4vpPresentArgs {
mdocs: DocumentCbor[];
mdocHolderNonce?: string;
presentationDefinition: PresentationDefinitionV2;
trustAnchors?: string[];
verifications?: VerificationOptions;
clientId: string;
responseUri: string;
authorizationRequestNonce: string;
}
export type VerificationOptions = {
allowExpiredDocuments?: boolean;
verificationTime?: Date;
};
export type DocumentVerifyResult = {
document: DocumentJson;
validations: IVerifyResults<ICoseKeyCbor>;
};
export type MdocOid4vpRPVerifyResult = {
error: boolean;
documents: Array<DocumentVerifyResult>;
presentation_submission: PresentationSubmission;
};
export interface MdocOid4vpRPVerifyArgs {
vp_token: string;
presentation_submission: PresentationSubmission;
trustAnchors?: string[];
}
//# sourceMappingURL=ImDLMdoc.d.ts.map