/// import { SRPParams } from './SRPParams'; export declare type SRPKeyPair = { secretKey: Buffer; publicKey: Buffer; }; export declare type SRPSession = { sessionKey: Buffer; serverProof: Buffer; clientProof: Buffer; }; export declare class SRP { private readonly _engine; constructor(params: SRPParams); /** * Generate User Salt * @param length Length of salt. Default is 16. */ generateSalt(length?: number): Buffer; /** * Compute private key for a user * @param username Username * @param password Password * @param salt User's salt */ computePrivateKey(username: string, password: string, salt: Buffer): Buffer; /** * Compute verifier for a user * @param username Username * @param password Password * @param salt User's salt */ computeVerifier(username: string, password: string, salt: Buffer): Buffer; /** * Generate Client Ephemeral Key */ generateClientEphemeralKey(): SRPKeyPair; /** * Generate Server Ephemeral Key * @param verifier User's verifier */ generateServerEphemeralKey(verifier: Buffer): SRPKeyPair; /** * Compute client session * @param key Client KeyPair * @param serverPublicKey Server Public Key * @param username Username * @param salt User's salt * @param privateKey User's private key * @returns Client Session or Null if something went wrong */ computeClientSession(key: SRPKeyPair, serverPublicKey: Buffer, username: string, salt: Buffer, privateKey: Buffer): SRPSession | null; computeServerSession(key: SRPKeyPair, clientPublicKey: Buffer, username: string, verifier: Buffer, salt: Buffer): SRPSession | null; }