From 2864729d325aa13bd8591536185bf09bc0505bfa Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 26 Jun 2015 20:12:33 +0200 Subject: Obj marshaler --- ber/obj.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'ber/obj.go') diff --git a/ber/obj.go b/ber/obj.go index 735ef97..f2e76d1 100644 --- a/ber/obj.go +++ b/ber/obj.go @@ -1,12 +1,13 @@ package ber func base128(n int) (b []byte) { + if n == 0 { + return []byte{0x00} + } l := 0 - for i := n; i > 0; i >>= 7 { l++ } - for i := l - 1; i >= 0; i-- { o := byte(n >> uint(i*7)) o &= 0x7F @@ -22,8 +23,13 @@ func debase128(b []byte) int { return 0 } -func marshalObj(obj []int) []byte { - return []byte{} +func marshalObj(obj []int) (b []byte) { + first := obj[0]*40 + obj[1] + b = append(b, base128(first)...) + for _, o := range obj[2:] { + b = append(b, base128(o)...) + } + return b } func unmarshalObj(b []byte) []int { -- cgit v1.2.3