electron-root-ssl-pinning
Version:
Pinning root CA certificates into your Electron app
37 lines (36 loc) • 1.19 kB
TypeScript
import { CertificatePrincipal } from "electron";
import Certificate from "pkijs/build/Certificate";
export declare type RootCertificates = string | RootCertificatesList;
export declare type RootCertificatesList = string[];
export interface ICaStore {
[key: string]: Certificate | undefined;
}
export declare type CreateRootCAVerifier = (rootCertificates: RootCertificates) => CertificateVerifier;
export declare type CertificateVerifier = (request: ICertificateVerifyProcRequest) => Promise<VerificationResult>;
export declare enum VerificationResult {
VALID = 0,
INVALID = -2,
INTERNAL_ERROR = -3
}
export interface IReadCertResult {
result: string | undefined;
isEnd: boolean;
}
export interface IRequestCertificate {
data: string;
fingerprint: string;
issuer: CertificatePrincipal;
issuerCert?: IRequestCertificate;
issuerName: string;
serialNumber: string;
subject: CertificatePrincipal;
subjectName: string;
validExpiry: number;
validStart: number;
}
export interface ICertificateVerifyProcRequest {
hostname: string;
certificate: IRequestCertificate;
verificationResult: string;
errorCode: number;
}