watchtower/wtdb/session_id: adds SessoinID, client pubkey

This commit is contained in:
Conner Fromknecht 2018-10-23 18:28:32 -07:00 committed by Conner Fromknecht
parent bc86ccf212
commit e825a756f4
No known key found for this signature in database
GPG Key ID: E7D737B67FA592C7

View File

@ -0,0 +1,26 @@
package wtdb
import (
"encoding/hex"
"github.com/btcsuite/btcd/btcec"
)
// SessionIDSize is 33-bytes; it is a serialized, compressed public key.
const SessionIDSize = 33
// SessionID is created from the remote public key of a client, and serves as a
// unique identifier and authentication for sending state updates.
type SessionID [SessionIDSize]byte
// NewSessionIDFromPubKey creates a new SessionID from a public key.
func NewSessionIDFromPubKey(pubKey *btcec.PublicKey) SessionID {
var sid SessionID
copy(sid[:], pubKey.SerializeCompressed())
return sid
}
// String returns a hex encoding of the session id.
func (s SessionID) String() string {
return hex.EncodeToString(s[:])
}