Merge pull request from safing/fix/compatibility-and-checks

Fix compatibility and checks
This commit is contained in:
Daniel 2020-08-06 21:01:47 +02:00 committed by GitHub
commit abf8e0b805
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 1 deletions

View file

@ -15,7 +15,7 @@ func (s *Session) Close(data []byte) (*Letter, error) { //nolint:gocognit
letter := &Letter{}
if s.wire == nil || s.wire.msgNo == 0 {
letter.Version = 1
letter.Version = s.envelope.Version
letter.SuiteID = s.envelope.SuiteID
}

View file

@ -188,6 +188,7 @@ func (e *Envelope) prepSignets(signets []*Signet, recipients bool, storage Trust
// keys are _always_ signets
if signet.Scheme == SignetSchemeKey {
recipients = false
// TODO: spills to next loop
}
// signet is referrer

View file

@ -86,6 +86,12 @@ func (letter *Letter) ToWire() (*container.Container, error) {
return c, nil
}
// LetterFromWireData is a relay to LetterFromWire to quickly fix import issues of godep.
// DEPRECATED
func LetterFromWireData(data []byte) (*Letter, error) {
return LetterFromWire(container.New(data))
}
// LetterFromWire parses a letter sent over a network connection.
func LetterFromWire(c *container.Container) (*Letter, error) {
letter := &Letter{}

View file

@ -50,6 +50,10 @@ func Load(labeledHash []byte) (*LabeledHash, error) {
return nil, errors.New("compatibility error: invalid or unsupported algorithm")
}
if alg.new().Size() != len(digest) {
return nil, errors.New("integrity error: invalid digest length")
}
return &LabeledHash{
alg: alg,
digest: digest,