Version 1 signature, added Drone CI
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
DataHoarder 2022-01-17 10:18:22 +01:00
parent 566bcaffb9
commit e2e192cce1
2 changed files with 44 additions and 5 deletions

12
.drone.yml Normal file
View file

@ -0,0 +1,12 @@
---
kind: pipeline
type: docker
name: default
steps:
- name: backend
image: golang:1.18-rc-bullseye
commands:
- go build -o orbeat .
...

View file

@ -362,11 +362,17 @@ func (s *ContentMessage) encodeMessage() []byte {
n := binary.PutUvarint(buf, s.Version) //signature version n := binary.PutUvarint(buf, s.Version) //signature version
_, _ = message.Write(buf[:n]) _, _ = message.Write(buf[:n])
if s.Version == 0 { if s.Version == 0 || s.Version == 1 {
_, _ = message.Write(s.PublicKey) _, _ = message.Write(s.PublicKey)
n = binary.PutVarint(buf, s.IssueTime) //time n = binary.PutVarint(buf, s.IssueTime) //time
_, _ = message.Write(buf[:n]) _, _ = message.Write(buf[:n])
if s.Version == 1 {
_, _ = message.Write(s.Identifier.Hash())
} else {
_, _ = s.Identifier.WriteBytes(message)
}
_, _ = s.Identifier.WriteBytes(message) _, _ = s.Identifier.WriteBytes(message)
return message.Bytes() return message.Bytes()
@ -401,29 +407,50 @@ func DecodeContentMessage(signatureBytes []byte) *ContentMessage {
return nil return nil
} }
if message.Version == 0 { if message.Version == 0 || message.Version == 1 {
message.PublicKey = make([]byte, ed25519.PublicKeySize) message.PublicKey = make([]byte, ed25519.PublicKeySize)
_, err := buffer.Read(message.PublicKey) _, err := buffer.Read(message.PublicKey)
if err != nil { if err != nil {
log.Print(message.String())
log.Print(err)
return nil return nil
} }
message.IssueTime, err = binary.ReadVarint(buffer) message.IssueTime, err = binary.ReadVarint(buffer)
if err != nil { if err != nil {
log.Print(message.String())
log.Print(err)
return nil return nil
} }
_, message.Identifier, err = cid.CidFromReader(buffer) if message.Version == 1 {
if err != nil { read, mh, err := multihash.MHFromBytes(buffer.Bytes())
return nil if err != nil {
log.Print(message.String())
log.Print(err)
return nil
}
buffer.Next(read)
message.Identifier = cid.NewCidV1(cid.Raw, mh)
} else {
_, message.Identifier, err = cid.CidFromReader(buffer)
if err != nil {
log.Print(message.String())
log.Print(err)
return nil
}
} }
message.Signature = make([]byte, ed25519.SignatureSize) message.Signature = make([]byte, ed25519.SignatureSize)
_, err = buffer.Read(message.Signature) _, err = buffer.Read(message.Signature)
if err != nil { if err != nil {
log.Print(message.String())
log.Print(err)
return nil return nil
} }
if buffer.Len() != 0 { //Unknown extra data if buffer.Len() != 0 { //Unknown extra data
log.Print(message.String())
log.Printf("%x", buffer.Bytes())
return nil return nil
} }