UNPKG

@scirexs/srp6a

Version:

SRP-6a (Secure Remote Password) implementation in TypeScript for browser and server.

34 lines 2.56 kB
export { addRandomDelay, calculateVerifier, computeClientEvidence, computeClientKey, computeIdentity, computeMultiplier, computeScramblingParameter, computeSecret, computeServerEvidence, computeServerKey, generateKeyPair, generateRandomKey, generateSalt, generateServerKeyPair, isValidPublic, }; import type { CryptoKeyPair } from "./types.js"; import { CryptoNumber, type SRPConfig } from "./crypto.js"; /** s = RAND() */ declare function generateSalt(config: SRPConfig): CryptoNumber; /** I = H(U | ":" | p) */ declare function computeIdentity(username: string, password: string, config: SRPConfig): Promise<CryptoNumber>; /** x = H(s | I) */ declare function computeSecret(salt: CryptoNumber, identity: CryptoNumber, config: SRPConfig): Promise<CryptoNumber>; /** v = MP(g, x, N) */ declare function calculateVerifier(secret: CryptoNumber, config: SRPConfig): CryptoNumber; /** k = H(N | PAD(g)) */ declare function computeMultiplier(config: SRPConfig): Promise<CryptoNumber>; /** b, B = k * v + MP(g, b, N) */ declare function generateServerKeyPair(multiplier: CryptoNumber, verifier: CryptoNumber, config: SRPConfig): CryptoKeyPair; /** a, A = MP(g, a, N) */ declare function generateKeyPair(config: SRPConfig): CryptoKeyPair; /** a = RAND(), b = RAND() */ declare function generateRandomKey(config: SRPConfig): CryptoNumber; /** u = H(PAD(A) | PAD(B)) */ declare function computeScramblingParameter(client: CryptoNumber, server: CryptoNumber, config: SRPConfig): Promise<CryptoNumber>; /** Kc = H(Sc) */ declare function computeClientKey(server: CryptoNumber, multiplier: CryptoNumber, secret: CryptoNumber, pvt: CryptoNumber, scrambling: CryptoNumber, config: SRPConfig): Promise<CryptoNumber>; /** Mc = H(H(N) xor H(g), H(U), s, A, B, K) */ declare function computeClientEvidence(username: string, salt: CryptoNumber, client: CryptoNumber, server: CryptoNumber, key: CryptoNumber, config: SRPConfig): Promise<CryptoNumber>; /** Ks = H(Ss) */ declare function computeServerKey(client: CryptoNumber, verifier: CryptoNumber, scrambling: CryptoNumber, pvt: CryptoNumber, config: SRPConfig): Promise<CryptoNumber>; /** Ms = H(A, Mc, K) */ declare function computeServerEvidence(client: CryptoNumber, evidence: CryptoNumber, key: CryptoNumber, config: SRPConfig): Promise<CryptoNumber>; /** Confirm public key is valid or not. */ declare function isValidPublic(pub: CryptoNumber, config: SRPConfig): boolean; /** Add random delay to fail authentication. */ declare function addRandomDelay(ms?: number): Promise<void>; //# sourceMappingURL=functions.d.ts.map