From 7792f93bb6e157cbf57ecb1bffdc5acbb3d82f14 Mon Sep 17 00:00:00 2001 From: nmeier Date: Mon, 7 Oct 2019 17:55:42 +0200 Subject: [PATCH] fix(bazel): use own go-openssl repository with working BUILD files --- go/go.mod | 2 ++ go/go.sum | 4 ++-- go/internal/crypto/crypto.go | 2 +- go/internal/crypto/crypto_module.go | 8 +++++++- go/internal/cryptosigchain/crypto_sigchain.go | 10 +++++----- go/pkg/iface/crypto.go | 8 ++++---- 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/go/go.mod b/go/go.mod index 456515b9a7..e9c21f909e 100644 --- a/go/go.mod +++ b/go/go.mod @@ -27,3 +27,5 @@ require ( google.golang.org/grpc v1.20.1 gopkg.in/gormigrate.v1 v1.6.0 ) + +replace github.com/libp2p/go-openssl v0.0.2 => github.com/berty/go-openssl v0.0.3-0.20191007152928-66bd988d235e diff --git a/go/go.sum b/go/go.sum index 3c865afa96..87a4197f31 100644 --- a/go/go.sum +++ b/go/go.sum @@ -27,6 +27,8 @@ github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/berty/go-openssl v0.0.3-0.20191007152928-66bd988d235e h1:BvMGw43oi/P84gRjKi2QHVjtR9zc0MvAMn3eUL0a9sQ= +github.com/berty/go-openssl v0.0.3-0.20191007152928-66bd988d235e/go.mod h1:v8Zw2ijCSWBQi8Pq5GAixw6DbFfa9u6VIYDXnvOXkc0= github.com/bifurcation/mint v0.0.0-20181105073638-824af6541065/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bren2010/proquint v0.0.0-20160323162903-38337c27106d h1:QgeLLoPD3kRVmeu/1al9iIpIANMi9O1zXFm8BnYGCJg= @@ -505,8 +507,6 @@ github.com/libp2p/go-msgio v0.0.4 h1:agEFehY3zWJFUHK6SEMR7UYmk2z6kC3oeCM7ybLhguA github.com/libp2p/go-msgio v0.0.4/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= github.com/libp2p/go-nat v0.0.3 h1:l6fKV+p0Xa354EqQOQP+d8CivdLM4kl5GxC1hSc/UeI= github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI= -github.com/libp2p/go-openssl v0.0.2 h1:9pP2d3Ubaxkv7ZisLjx9BFwgOGnQdQYnfcH29HNY3ls= -github.com/libp2p/go-openssl v0.0.2/go.mod h1:v8Zw2ijCSWBQi8Pq5GAixw6DbFfa9u6VIYDXnvOXkc0= github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= diff --git a/go/internal/crypto/crypto.go b/go/internal/crypto/crypto.go index 200d18ebb0..609fa08713 100644 --- a/go/internal/crypto/crypto.go +++ b/go/internal/crypto/crypto.go @@ -26,7 +26,7 @@ func (c *crypto) GetDevicePublicKey() sign.PubKey { func (c *crypto) GetAccountPublicKey() (sign.PubKey, error) { initialEntry := c.sigChain.GetInitialEntry() - if initialEntry.GetEntryType() != iface.SigChainEntryType_INIT_CHAIN { + if initialEntry.GetEntryType() != iface.SigChainEntryTypeInitChain { return nil, errors.New("first sig chain node is invalid") } diff --git a/go/internal/crypto/crypto_module.go b/go/internal/crypto/crypto_module.go index eba799216d..a9ce0b67cb 100644 --- a/go/internal/crypto/crypto_module.go +++ b/go/internal/crypto/crypto_module.go @@ -25,6 +25,9 @@ func InitNewIdentity(ctx context.Context, store interface{}) (iface.Crypto, sign } sigChain, err := InitSigChain(privKey) + if err != nil { + return nil, nil, err + } return NewCrypto(store, privKey, sigChain), privKey, nil } @@ -80,7 +83,10 @@ func GetRendezvousPointForTime(id, seed []byte, date time.Time) ([]byte, error) mac := hmac.New(sha256.New, seed) binary.BigEndian.PutUint64(buf, uint64(date.Unix())) - mac.Write(buf) + if _, err := mac.Write(buf); err != nil { + return nil, err + } + sum := mac.Sum(nil) rendezvousPoint := sha256.Sum256(append(id, sum...)) diff --git a/go/internal/cryptosigchain/crypto_sigchain.go b/go/internal/cryptosigchain/crypto_sigchain.go index 0171787a61..0b349c06d9 100644 --- a/go/internal/cryptosigchain/crypto_sigchain.go +++ b/go/internal/cryptosigchain/crypto_sigchain.go @@ -40,9 +40,9 @@ func (m *SigChain) ListCurrentPubKeys() []crypto.PubKey { for _, e := range m.Entries { entryType := iface.SigChainEntryType(e.EntryTypeCode) - if entryType == iface.SigChainEntryType_UNDEFINED { + if entryType == iface.SigChainEntryTypeUndefined { continue - } else if entryType == iface.SigChainEntryType_REVOKE_KEY { + } else if entryType == iface.SigChainEntryTypeRemoveKey { delete(pubKeys, string(e.SubjectPublicKeyBytes)) } else { pubKeys[string(e.SubjectPublicKeyBytes)] = e.SubjectPublicKeyBytes @@ -72,7 +72,7 @@ func (m *SigChain) Init(privKey crypto.PrivKey) (iface.SigChainEntry, error) { } return m.appendEntry(privKey, &SigChainEntry{ - EntryTypeCode: uint32(iface.SigChainEntryType_INIT_CHAIN), + EntryTypeCode: uint32(iface.SigChainEntryTypeInitChain), SubjectPublicKeyBytes: subjectKeyBytes, }) } @@ -96,7 +96,7 @@ func (m *SigChain) AddEntry(privKey crypto.PrivKey, pubKey crypto.PubKey) (iface } return m.appendEntry(privKey, &SigChainEntry{ - EntryTypeCode: uint32(iface.SigChainEntryType_ADD_KEY), + EntryTypeCode: uint32(iface.SigChainEntryTypeAddKey), SubjectPublicKeyBytes: subjectKeyBytes, }) } @@ -120,7 +120,7 @@ func (m *SigChain) RemoveEntry(privKey crypto.PrivKey, pubKey crypto.PubKey) (if } return m.appendEntry(privKey, &SigChainEntry{ - EntryTypeCode: uint32(iface.SigChainEntryType_REVOKE_KEY), + EntryTypeCode: uint32(iface.SigChainEntryTypeRemoveKey), SubjectPublicKeyBytes: subjectKeyBytes, }) } diff --git a/go/pkg/iface/crypto.go b/go/pkg/iface/crypto.go index 5f48343dd1..0962453421 100644 --- a/go/pkg/iface/crypto.go +++ b/go/pkg/iface/crypto.go @@ -10,10 +10,10 @@ import ( type SigChainEntryType int8 const ( - SigChainEntryType_UNDEFINED SigChainEntryType = 0 - SigChainEntryType_INIT_CHAIN SigChainEntryType = 1 - SigChainEntryType_ADD_KEY SigChainEntryType = 2 - SigChainEntryType_REVOKE_KEY SigChainEntryType = 3 + SigChainEntryTypeUndefined SigChainEntryType = 0 + SigChainEntryTypeInitChain SigChainEntryType = 1 + SigChainEntryTypeAddKey SigChainEntryType = 2 + SigChainEntryTypeRemoveKey SigChainEntryType = 3 ) type SigChainEntry interface {