INNER CODE UNIT · Go
chacha20polyDecrypt
lightningnetwork/lightning-onion · crypto.go:223
func chacha20polyDecrypt(key, cipherTxt []byte) ([]byte, error) {
aead, err := chacha20poly1305.New(key)
if err != nil {
return nil, err
}
return aead.Open(cipherTxt[:0], chaChaPolyZeroNonce[:], cipherTxt, nil)
}
// sharedSecretGenerator is an interface that abstracts away exactly *how* the
// shared secret for each hop is generated.
//
// TODO(roasbef): rename?
type sharedSecretGenerator interface {
// generateSharedSecret given a public key, generates a shared secret
// using private data of the underlying sharedSecretGenerator.
generateSharedSecret(dhKey *btcec.PublicKey) (Hash256, error)
}