package ber import "io" 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(r io.ByteReader) (i int) { for { b, _ := r.ReadByte() i = (i << 7) | int(b&0x7f) if b&0x80 == 0 { return } } }