xud
Version:
Exchange Union Daemon
44 lines (43 loc) • 1.43 kB
TypeScript
/// <reference types="node" />
import Network from './Network';
import Packet from './packets/Packet';
declare type WireMsgHeader = {
magic?: number;
type: number;
length: number;
checksum?: number;
};
declare type WireMsg = {
header: WireMsgHeader;
packet: Buffer;
};
/** Wire protocol msg framer */
declare class Framer {
private network;
static readonly MSG_HEADER_LENGTH = 16;
static readonly ENCRYPTED_MSG_HEADER_LENGTH = 4;
static readonly ENCRYPTED_MSG_PAYLOAD_HEADER_LENGTH = 8;
static readonly ENCRYPTION_KEY_LENGTH = 32;
static readonly ENCRYPTION_IV_LENGTH = 16;
constructor(network: Network);
/**
* Frame a packet with a header to be used as a wire msg
*/
frame: (packet: Packet, encryptionKey?: Buffer | undefined) => Promise<Buffer>;
/**
* Unframe a wire msg or an encrypted wire msg
*/
unframe: (msg: Buffer, encryptionKey?: Buffer | undefined) => WireMsg;
/**
* Parse the length of a wire msg or an encrypted wire msg
*/
parseLength: (data: Buffer, encrypted: boolean) => number;
/**
* Parse the header of a wire msg or an encrypted wire msg payload
*/
parseHeader: (msg: Buffer, encrypted: boolean) => WireMsgHeader;
encrypt: (plaintext: Buffer, key: Buffer) => Promise<Buffer>;
decrypt: (ciphertext: Buffer, key: Buffer) => Buffer;
}
export default Framer;
export { WireMsgHeader };