aboutsummaryrefslogtreecommitdiff
path: root/cryptobyte/cryptobyte_test.go
diff options
context:
space:
mode:
authorDaniel Mangum <georgedanielmangum@gmail.com>2023-09-06 19:20:46 +0000
committerGopher Robot <gobot@golang.org>2023-09-07 16:27:37 +0000
commite90f1e17ee2ffe351a8295e8ae8b66afda2969c6 (patch)
tree64eddcb4e2a4b2f1f269ad4b153ce938ae09e502 /cryptobyte/cryptobyte_test.go
parentd359caa4a39d59a440003b37a6cc7ace3871fd4a (diff)
downloadgo-x-crypto-e90f1e17ee2ffe351a8295e8ae8b66afda2969c6.tar.xz
cryptobyte: add uint48 methods
Adds uint48 methods for cryptobyte.Builder and cryptobyte.String. Supporting 48-bit unsigned integers is useful for working with protocols that use them for sequence numbers, such as DTLS. Fixes golang/go#61275 Change-Id: Ibe49422d37644b9212b28b123dc5e01850f7b05b GitHub-Last-Rev: 11b388c240109c8f4ac23880645c901ce6d2f093 GitHub-Pull-Request: golang/crypto#265 Reviewed-on: https://go-review.googlesource.com/c/crypto/+/508675 Reviewed-by: Roland Shoemaker <roland@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: qiulaidongfeng <2645477756@qq.com> Run-TryBot: Roland Shoemaker <roland@golang.org> Auto-Submit: Roland Shoemaker <roland@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'cryptobyte/cryptobyte_test.go')
-rw-r--r--cryptobyte/cryptobyte_test.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/cryptobyte/cryptobyte_test.go b/cryptobyte/cryptobyte_test.go
index dc90e81..9b55d52 100644
--- a/cryptobyte/cryptobyte_test.go
+++ b/cryptobyte/cryptobyte_test.go
@@ -179,6 +179,27 @@ func TestUint32(t *testing.T) {
}
}
+func TestUint48(t *testing.T) {
+ var b Builder
+ var u uint64 = 0xfefcff3cfdfc
+ b.AddUint48(u)
+ if err := builderBytesEq(&b, 254, 252, 255, 60, 253, 252); err != nil {
+ t.Error(err)
+ }
+
+ var s String = b.BytesOrPanic()
+ var v uint64
+ if !s.ReadUint48(&v) {
+ t.Error("ReadUint48() = false, want true")
+ }
+ if v != u {
+ t.Errorf("v = %x, want %x", v, u)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+}
+
func TestUint64(t *testing.T) {
var b Builder
b.AddUint64(0xf2fefefcff3cfdfc)