package ber 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)) & 0x7f if i != 0 { o |= 0x80 } b = append(b, o) } return } func debase128(b []byte) (i, n int) { for _, v := range b { i <<= 7 i |= int(v & 0x7f) n++ if v&0x80 == 0 { return } } return }