lnencrypt: Moves the crypto functions in the chanbackup package into its own package called lnencrypt
The functions inside of the crypto.go file in chanbackup (like EncryptPayloadToWriter and DecryptPayloadFromReader) can be used by a lot of things outside of just the chanbackup package. We can't just reference them directly from the chanbackup package because it's likely that it would generate circular dependencies. Therefore we need to move these functions into their own package to be referenced by chanbackup and whatever new functionality that needs them
This commit is contained in:
1 parent
f3bd2227fa
commit
e0fc5bb234
10 files changed
+152
-124
No files matched your search
+11
-2
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/keychain"
|
||||
"github.com/lightningnetwork/lnd/lnencrypt"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
)
|
||||
|
||||
@@ -351,7 +352,11 @@ func (s *Single) PackToWriter(w io.Writer, keyRing keychain.KeyRing) error {
|
||||
// Finally, we'll encrypt the raw serialized SCB (using the nonce as
|
||||
// associated data), and write out the ciphertext prepend with the
|
||||
// nonce that we used to the passed io.Reader.
|
||||
return encryptPayloadToWriter(rawBytes, w, keyRing)
|
||||
e, err := lnencrypt.KeyRingEncrypter(keyRing)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to generate encrypt key %v", err)
|
||||
}
|
||||
return e.EncryptPayloadToWriter(rawBytes.Bytes(), w)
|
||||
}
|
||||
|
||||
// readLocalKeyDesc reads a KeyDescriptor encoded within an unpacked Single.
|
||||
@@ -528,7 +533,11 @@ func (s *Single) Deserialize(r io.Reader) error {
|
||||
// payload for whatever reason (wrong key, wrong nonce, etc), then this method
|
||||
// will return an error.
|
||||
func (s *Single) UnpackFromReader(r io.Reader, keyRing keychain.KeyRing) error {
|
||||
plaintext, err := decryptPayloadFromReader(r, keyRing)
|
||||
e, err := lnencrypt.KeyRingEncrypter(keyRing)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to generate key decrypter %v", err)
|
||||
}
|
||||
plaintext, err := e.DecryptPayloadFromReader(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user