js-libp2p-noise/src/logger.ts

52 lines
1.5 KiB
TypeScript
Raw Normal View History

2019-12-03 15:19:08 +01:00
import debug from "debug";
2020-04-10 13:35:38 +02:00
import {DUMP_SESSION_KEYS} from './constants';
import { KeyPair } from "./@types/libp2p";
import { NoiseSession, SymmetricState } from "./@types/handshake";
2020-04-10 13:35:38 +02:00
2020-04-17 10:18:05 +02:00
export const logger = debug('libp2p:noise');
2020-04-10 13:35:38 +02:00
let keyLogger;
if(DUMP_SESSION_KEYS){
2020-04-17 10:18:05 +02:00
keyLogger = logger
2020-04-10 13:35:38 +02:00
}
2020-04-17 10:18:05 +02:00
else {
2020-04-10 14:22:09 +02:00
keyLogger = () => {}
2020-04-10 13:35:38 +02:00
}
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')}`)
}