@reclaimprotocol/tls
Version:
TLS 1.2/1.3 for any JavaScript Environment
30 lines (29 loc) • 1.77 kB
TypeScript
import './additional-root-cas.js';
import type { CertificatePublicKey, CipherSuite, Key, Logger, TLSProcessContext, X509Certificate } from '../types/index.ts';
import { SUPPORTED_NAMED_CURVE_MAP, SUPPORTED_SIGNATURE_ALGS_MAP } from './constants.ts';
import { defaultFetchCertificateBytes } from './x509.ts';
type VerifySignatureOptions = {
signature: Uint8Array;
algorithm: keyof typeof SUPPORTED_SIGNATURE_ALGS_MAP;
publicKey: CertificatePublicKey;
signatureData: Uint8Array;
};
export declare function parseCertificates(data: Uint8Array, { version }: TLSProcessContext): {
certificates: X509Certificate[];
ctx: number;
};
export declare function parseServerCertificateVerify(data: Uint8Array): {
algorithm: "ECDSA_SECP256R1_SHA256" | "ECDSA_SECP384R1_SHA256" | "RSA_PSS_RSAE_SHA256" | "RSA_PKCS1_SHA256" | "RSA_PKCS1_SHA384" | "RSA_PKCS1_SHA512";
signature: Uint8Array<ArrayBuffer>;
};
export declare function verifyCertificateSignature({ signature, algorithm, publicKey, signatureData, }: VerifySignatureOptions): Promise<void>;
export declare function getSignatureDataTls13(hellos: Uint8Array[] | Uint8Array, cipherSuite: CipherSuite): Promise<Uint8Array<ArrayBufferLike>>;
type Tls12SignatureDataOpts = {
clientRandom: Uint8Array;
serverRandom: Uint8Array;
curveType: keyof typeof SUPPORTED_NAMED_CURVE_MAP;
publicKey: Key;
};
export declare function getSignatureDataTls12({ clientRandom, serverRandom, curveType, publicKey, }: Tls12SignatureDataOpts): Promise<Uint8Array<ArrayBufferLike>>;
export declare function verifyCertificateChain(chain: X509Certificate[], host: string, logger: Logger, fetchCertificateBytes?: typeof defaultFetchCertificateBytes, additionalRootCAs?: X509Certificate[]): Promise<void>;
export {};