package ber type Obj []int func base128(n int) (b []byte) { if n == 0 { return []byte{0} } 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 if i != 0 { o |= 0x80 } b = append(b, o) } return } func debase128(b []byte) int { return 0 } func marshalObj(obj Obj) (b []byte) { if len(obj) < 2 || obj[0] > 2 { return []byte{} } if obj[0] < 2 && obj[1] > 39 { return []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) Obj { return Obj{} }