x/tx/signing/textual/internal/cbor encodes different values to the same bytes
- Dominant language
- Go
- Stars
- 116
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
Add the following test to x/tx/signing/textual/internal/cbor
`
package cbor
import (
"bytes"
"fmt"
"io"
"testing"
)
type CborString string
func (s CborString) Encode(w io.Writer) error { _, err := fmt.Fprint(w, s); return err }
func TestProblem(t *testing.T) {
var b1 bytes.Buffer
if err := NewMap(
Entry{key: CborString("abc"), val: CborString("def")},
Entry{key: CborString("ghi"), val: CborString("jkl")},
).Encode(&b1); err != nil {
t.Fatal(err)
}
t.Logf("b1: %X", b1.Bytes())
var b2 bytes.Buffer
if err := NewMap(
Entry{key: CborString("abcde"), val: CborString("fgh")},
Entry{key: CborString("ij"), val: CborString("kl")},
).Encode(&b2); err != nil {
t.Fatal(err)
}
t.Logf("b2: %X", b2.Bytes())
if bytes.Equal(b1.Bytes(), b2.Bytes()) {
t.Fatal("different values have the same encoding")
}
}
`
The following output is produced.
`
=== RUN TestProblem
/var/folders/zv/58xqkvpj5zj2rygfqdrh6nnc0000gn/T/tmp.ls30yTJG/cbor_test.go:27: b1: A26162636465666768696A6B6C
/var/folders/zv/58xqkvpj5zj2rygfqdrh6nnc0000gn/T/tmp.ls30yTJG/cbor_test.go:28: b2: A26162636465666768696A6B6C
/var/folders/zv/58xqkvpj5zj2rygfqdrh6nnc0000gn/T/tmp.ls30yTJG/cbor_test.go:31: different values have the same encoding
`
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.