diff options
author | Dimitri Sokolyuk <demon@dim13.org> | 2015-06-30 19:47:04 +0200 |
---|---|---|
committer | Dimitri Sokolyuk <demon@dim13.org> | 2015-06-30 19:47:04 +0200 |
commit | 6c8904606f6455b82e5ec9fad5f18f1cd587d5ef (patch) | |
tree | 32f39df25afbf4d1d83636e2ce7925d7a14acb9c /ber/class.go | |
parent | 6905df6e3b4f00786311a07f30ad32c9a9de7213 (diff) |
Add uint
Diffstat (limited to 'ber/class.go')
-rw-r--r-- | ber/class.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ber/class.go b/ber/class.go index f2915fe..0839c05 100644 --- a/ber/class.go +++ b/ber/class.go @@ -116,3 +116,13 @@ func Ident(b []byte) (Class, Kind, Tag, int) { } return c, k, t, n + 1 } + +func Length(b []byte) (int, int) { + if b[0] & 0x80 != 0 { + l := b[0] & 0x7f + i := unmarshalUint(b[1:l+1]) + return int(i), int(l+1) + } else { + return int(b[0]), 1 + } +} |