aboutsummaryrefslogtreecommitdiff
path: root/ber/obj.go
diff options
context:
space:
mode:
Diffstat (limited to 'ber/obj.go')
-rw-r--r--ber/obj.go18
1 files changed, 16 insertions, 2 deletions
diff --git a/ber/obj.go b/ber/obj.go
index e9db78c..735ef97 100644
--- a/ber/obj.go
+++ b/ber/obj.go
@@ -1,7 +1,21 @@
package ber
-func base128(i int) (b []byte) {
- return b
+func base128(n int) (b []byte) {
+ 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 {