import debug from "debug"; import {DUMP_SESSION_KEYS} from './constants'; import { KeyPair } from "./@types/libp2p"; import { NoiseSession, SymmetricState } from "./@types/handshake"; export const logger = debug('libp2p:noise'); let keyLogger; if(DUMP_SESSION_KEYS){ keyLogger = logger } else { keyLogger = () => {} } export function logLocalStaticKeys(s: KeyPair): void { keyLogger(`LOCAL_STATIC_PUBLIC_KEY ${s.publicKey.toString('hex')}`) keyLogger(`LOCAL_STATIC_PRIVATE_KEY ${s.privateKey.toString('hex')}`) } export function logLocalEphemeralKeys(e: KeyPair|undefined): void { if(e){ keyLogger(`LOCAL_PUBLIC_EPHEMERAL_KEY ${e.publicKey.toString('hex')}`) keyLogger(`LOCAL_PRIVATE_EPHEMERAL_KEY ${e.privateKey.toString('hex')}`) } else{ keyLogger('Missing local ephemeral keys.') } } export function logRemoteStaticKey(rs: Buffer): void { keyLogger(`REMOTE_STATIC_PUBLIC_KEY ${rs.toString('hex')}`) } export function logRemoteEphemeralKey(re: Buffer): void { keyLogger(`REMOTE_EPHEMERAL_PUBLIC_KEY ${re.toString('hex')}`) } export function logCipherState(session: NoiseSession): void { if(session.cs1 && session.cs2){ keyLogger(`CIPHER_STATE_1 ${session.cs1.n} ${session.cs1.k.toString('hex')}`) keyLogger(`CIPHER_STATE_2 ${session.cs2.n} ${session.cs2.k.toString('hex')}`) } else{ keyLogger('Missing cipher state.') } } export function logSymmetricCipherState(ss: SymmetricState): void { keyLogger(`SYMMETRIC_CIPHER_STATE ${ss.cs.n} ${ss.cs.k.toString('hex')}`) }