/// /** * Outer connection protocol. * Has two modes, DVC and normal (telnet?). Starts in DVC mode. * * This layer basically takes care of encryption / decryption. */ export declare class Telnet { protected key: Buffer; protected ciphers: { [enc: number]: [CipherFn, CipherFn]; }; protected cipher: DvcEncryption; protected state: { dvcMode: false; ctr1: number; } | { dvcMode: true; encryption: boolean; }; constructor(key: Buffer); receive(b: number): void; sendDvc(data: Buffer): void; setDvcWithEncryption(enc: DvcEncryption): void; initializeCipherInstances(enc: DvcEncryption): void; exitDvc(): void; protected receiveDvc(b: number): void; protected send(data: Buffer): void; } /** * Defines the cipher used for encryption / decryption. * * The cipher is always used as a **stream cipher**, i.e. * block ciphers are used in OFB mode (so decryption and * encryption are the same operation). IV is zero. */ export declare enum DvcEncryption { NONE = 0, RC4 = 1, AES128 = 2, AES256 = 3 } declare type CipherFn = (data: Buffer) => Buffer; export default Telnet;