diff --git a/encoding/tlv/ber.go b/encoding/tlv/ber.go index d3e476e..a04ccf1 100644 --- a/encoding/tlv/ber.go +++ b/encoding/tlv/ber.go @@ -25,7 +25,7 @@ func NewBERTag(number uint, class Class) Tag { var tag uint if number < 0x1F { - return Tag(number | (uint(class) >> 6)) + return Tag(number | (uint(class) << 6)) } tag = 0x1F | (uint(class) << 6) diff --git a/encoding/tlv/ber_test.go b/encoding/tlv/ber_test.go index 33c7dd3..d1d8fbc 100644 --- a/encoding/tlv/ber_test.go +++ b/encoding/tlv/ber_test.go @@ -19,6 +19,7 @@ func TestTagBER(t *testing.T) { class tlv.Class constructed bool }{ + {tlv.NewBERTag(0x2, tlv.ClassContext), tlv.ClassContext, false}, {tlv.NewBERTag(0x20, tlv.ClassUniversal), tlv.ClassUniversal, false}, {tlv.NewBERTag(0x200, tlv.ClassContext), tlv.ClassContext, false}, {tlv.NewBERTag(0x20000, tlv.ClassPrivate), tlv.ClassPrivate, false},