aboutsummaryrefslogtreecommitdiff
path: root/ber/base128.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-09-25 15:07:15 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-09-25 15:07:15 +0200
commit0559b7d4eab07cacf0f005e8e756c1d04470e0c7 (patch)
tree45f327235303491747140bb10f92edce922b7d98 /ber/base128.go
parent5d024539d5cc2f4deaa88f783533fd453b78586f (diff)
Broken, but a step in right direction
Diffstat (limited to 'ber/base128.go')
-rw-r--r--ber/base128.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/ber/base128.go b/ber/base128.go
index 4777651..bf894bb 100644
--- a/ber/base128.go
+++ b/ber/base128.go
@@ -1,5 +1,7 @@
package ber
+import "io"
+
func base128(n int) (b []byte) {
if n == 0 {
return []byte{0}
@@ -29,3 +31,15 @@ func debase128(b []byte) (i, n int) {
}
return
}
+
+func Debase128(r io.ByteReader) (i int) {
+ for {
+ b, _ := r.ReadByte()
+ i <<= 7
+ i |= int(b & 0x7f)
+ if b&0x80 == 0 {
+ return
+ }
+ }
+ return
+}