js-libp2p-noise/src/logger.ts

45 lines
1.4 KiB
TypeScript
Raw Normal View History

2020-06-19 12:49:40 +02:00
import debug from 'debug'
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-06-19 12:49:40 +02:00
export const logger = debug('libp2p:noise')
2020-04-17 10:18:05 +02:00
2020-06-19 12:49:40 +02:00
let keyLogger
if (DUMP_SESSION_KEYS) {
2020-04-17 10:22:13 +02:00
keyLogger = logger
2020-06-19 12:49:40 +02:00
} else {
2020-04-23 08:10:41 +02:00
keyLogger = () => { /* do nothing */ }
2020-04-10 13:35:38 +02:00
}
2020-06-19 12:49:40 +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')}`)
}
2020-06-19 12:49:40 +02:00
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')}`)
2020-06-19 12:49:40 +02:00
} else {
keyLogger('Missing local ephemeral keys.')
}
}
2020-06-19 12:49:40 +02:00
export function logRemoteStaticKey (rs: Buffer): void {
2020-04-23 08:10:41 +02:00
keyLogger(`REMOTE_STATIC_PUBLIC_KEY ${rs.toString('hex')}`)
}
2020-06-19 12:49:40 +02:00
export function logRemoteEphemeralKey (re: Buffer): void {
2020-04-23 08:10:41 +02:00
keyLogger(`REMOTE_EPHEMERAL_PUBLIC_KEY ${re.toString('hex')}`)
}
2020-06-19 12:49:40 +02:00
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')}`)
2020-06-19 12:49:40 +02:00
} else {
keyLogger('Missing cipher state.')
}
}