name LNDConn back, put h160 back for now

This commit is contained in:
Tadge Dryja 2016-01-16 10:59:10 -08:00
parent f81f28c5fe
commit 8469b4fd9f
3 changed files with 27 additions and 17 deletions

@ -16,7 +16,7 @@ import (
) )
// Conn... // Conn...
type Conn struct { type LNDConn struct {
longTermPriv *btcec.PrivateKey longTermPriv *btcec.PrivateKey
remotePub *btcec.PublicKey remotePub *btcec.PublicKey
@ -49,12 +49,12 @@ type Conn struct {
} }
// NewConn... // NewConn...
func NewConn(connPrivKey *btcec.PrivateKey, conn net.Conn) *Conn { func NewConn(connPrivKey *btcec.PrivateKey, conn net.Conn) *LNDConn {
return &Conn{longTermPriv: connPrivKey, conn: conn} return &LNDConn{longTermPriv: connPrivKey, conn: conn}
} }
// Dial... // Dial...
func (c *Conn) Dial(address string, remoteId []byte) error { func (c *LNDConn) Dial(address string, remoteId []byte) error {
var err error var err error
if c.conn != nil { if c.conn != nil {
return fmt.Errorf("connection already established") return fmt.Errorf("connection already established")
@ -144,7 +144,7 @@ func (c *Conn) Dial(address string, remoteId []byte) error {
} }
// authPubKey... // authPubKey...
func (c *Conn) authPubKey(remotePubBytes, localEphPubBytes []byte) error { func (c *LNDConn) authPubKey(remotePubBytes, localEphPubBytes []byte) error {
if c.authed { if c.authed {
return fmt.Errorf("%s already authed", c.remotePub) return fmt.Errorf("%s already authed", c.remotePub)
} }
@ -192,7 +192,7 @@ func (c *Conn) authPubKey(remotePubBytes, localEphPubBytes []byte) error {
} }
// authPKH... // authPKH...
func (c *Conn) authPKH(theirPKH, localEphPubBytes []byte) error { func (c *LNDConn) authPKH(theirPKH, localEphPubBytes []byte) error {
if c.authed { if c.authed {
return fmt.Errorf("%s already authed", c.remotePub) return fmt.Errorf("%s already authed", c.remotePub)
} }
@ -251,7 +251,7 @@ func (c *Conn) authPKH(theirPKH, localEphPubBytes []byte) error {
// Read can be made to time out and return a Error with Timeout() == true // Read can be made to time out and return a Error with Timeout() == true
// after a fixed time limit; see SetDeadline and SetReadDeadline. // after a fixed time limit; see SetDeadline and SetReadDeadline.
// Part of the net.Conn interface. // Part of the net.Conn interface.
func (c *Conn) Read(b []byte) (n int, err error) { func (c *LNDConn) Read(b []byte) (n int, err error) {
// In order to reconcile the differences between the record abstraction // In order to reconcile the differences between the record abstraction
// of our AEAD connection, and the stream abstraction of TCP, we maintain // of our AEAD connection, and the stream abstraction of TCP, we maintain
// an intermediate read buffer. If this buffer becomes depleated, then // an intermediate read buffer. If this buffer becomes depleated, then
@ -292,7 +292,7 @@ func (c *Conn) Read(b []byte) (n int, err error) {
// Write can be made to time out and return a Error with Timeout() == true // Write can be made to time out and return a Error with Timeout() == true
// after a fixed time limit; see SetDeadline and SetWriteDeadline. // after a fixed time limit; see SetDeadline and SetWriteDeadline.
// Part of the net.Conn interface. // Part of the net.Conn interface.
func (c *Conn) Write(b []byte) (n int, err error) { func (c *LNDConn) Write(b []byte) (n int, err error) {
if b == nil { if b == nil {
return 0, fmt.Errorf("write to %x nil", c.remoteLNId) return 0, fmt.Errorf("write to %x nil", c.remoteLNId)
} }
@ -320,7 +320,7 @@ func (c *Conn) Write(b []byte) (n int, err error) {
// Close closes the connection. // Close closes the connection.
// Any blocked Read or Write operations will be unblocked and return errors. // Any blocked Read or Write operations will be unblocked and return errors.
// Part of the net.Conn interface. // Part of the net.Conn interface.
func (c *Conn) Close() error { func (c *LNDConn) Close() error {
c.myNonceInt = 0 c.myNonceInt = 0
c.remoteNonceInt = 0 c.remoteNonceInt = 0
c.remotePub = nil c.remotePub = nil
@ -331,13 +331,13 @@ func (c *Conn) Close() error {
// LocalAddr returns the local network address. // LocalAddr returns the local network address.
// Part of the net.Conn interface. // Part of the net.Conn interface.
// If PBX reports address of pbx host. // If PBX reports address of pbx host.
func (c *Conn) LocalAddr() net.Addr { func (c *LNDConn) LocalAddr() net.Addr {
return c.conn.LocalAddr() return c.conn.LocalAddr()
} }
// RemoteAddr returns the remote network address. // RemoteAddr returns the remote network address.
// Part of the net.Conn interface. // Part of the net.Conn interface.
func (c *Conn) RemoteAddr() net.Addr { func (c *LNDConn) RemoteAddr() net.Addr {
return c.conn.RemoteAddr() return c.conn.RemoteAddr()
} }
@ -345,14 +345,14 @@ func (c *Conn) RemoteAddr() net.Addr {
// with the connection. It is equivalent to calling both // with the connection. It is equivalent to calling both
// SetReadDeadline and SetWriteDeadline. // SetReadDeadline and SetWriteDeadline.
// Part of the net.Conn interface. // Part of the net.Conn interface.
func (c *Conn) SetDeadline(t time.Time) error { func (c *LNDConn) SetDeadline(t time.Time) error {
return c.conn.SetDeadline(t) return c.conn.SetDeadline(t)
} }
// SetReadDeadline sets the deadline for future Read calls. // SetReadDeadline sets the deadline for future Read calls.
// A zero value for t means Read will not time out. // A zero value for t means Read will not time out.
// Part of the net.Conn interface. // Part of the net.Conn interface.
func (c *Conn) SetReadDeadline(t time.Time) error { func (c *LNDConn) SetReadDeadline(t time.Time) error {
return c.conn.SetReadDeadline(t) return c.conn.SetReadDeadline(t)
} }
@ -361,8 +361,8 @@ func (c *Conn) SetReadDeadline(t time.Time) error {
// some of the data was successfully written. // some of the data was successfully written.
// A zero value for t means Write will not time out. // A zero value for t means Write will not time out.
// Part of the net.Conn interface. // Part of the net.Conn interface.
func (c *Conn) SetWriteDeadline(t time.Time) error { func (c *LNDConn) SetWriteDeadline(t time.Time) error {
return c.conn.SetWriteDeadline(t) return c.conn.SetWriteDeadline(t)
} }
var _ net.Conn = (*Conn)(nil) var _ net.Conn = (*LNDConn)(nil)

@ -65,7 +65,7 @@ func (l *Listener) Accept() (c net.Conn, err error) {
} }
// createCipherConn.... // createCipherConn....
func (l *Listener) createCipherConn(lnConn *Conn) (*btcec.PrivateKey, error) { func (l *Listener) createCipherConn(lnConn *LNDConn) (*btcec.PrivateKey, error) {
var err error var err error
var theirEphPubBytes []byte var theirEphPubBytes []byte
@ -114,7 +114,7 @@ func (l *Listener) createCipherConn(lnConn *Conn) (*btcec.PrivateKey, error) {
} }
// AuthListen... // AuthListen...
func (l *Listener) authenticateConnection(lnConn *Conn, localEphPubBytes []byte) error { func (l *Listener) authenticateConnection(lnConn *LNDConn, localEphPubBytes []byte) error {
var err error var err error
// TODO(roasbeef): should be using read/write clear here? // TODO(roasbeef): should be using read/write clear here?

@ -6,6 +6,9 @@ import (
"fmt" "fmt"
"io" "io"
"net" "net"
"github.com/btcsuite/fastsha256"
"golang.org/x/crypto/ripemd160"
) )
// New & improved tcp open session. // New & improved tcp open session.
@ -83,6 +86,13 @@ import (
// *b = append([]byte{lnwire.MSGID_FWDMSG}, *b...) // *b = append([]byte{lnwire.MSGID_FWDMSG}, *b...)
//} //}
func H160(input []byte) []byte {
rp := ripemd160.New()
shaout := fastsha256.Sum256(input)
_, _ = rp.Write(shaout[:])
return rp.Sum(nil)
}
// readClear and writeClear don't encrypt but directly read and write to the // readClear and writeClear don't encrypt but directly read and write to the
// underlying data link, only adding or subtracting a 2 byte length header. // underlying data link, only adding or subtracting a 2 byte length header.
// All Read() and Write() calls for lndc's use these functions internally // All Read() and Write() calls for lndc's use these functions internally