From 511cf41a779929b5c81b7429c37dc11bd9544182 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 25 Sep 2015 20:41:38 +0200 Subject: Rewrite from scratch --- ber/new/dump.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ber/new/dump.go (limited to 'ber/new/dump.go') diff --git a/ber/new/dump.go b/ber/new/dump.go new file mode 100644 index 0000000..5baaf1e --- /dev/null +++ b/ber/new/dump.go @@ -0,0 +1,43 @@ +package ber + +import ( + "bytes" + "fmt" +) + +func Dump(b []byte) string { + buf := bytes.NewBuffer(b) + s := &state{*buf} + return s.dump(0) +} + +func (s *state) dump(ident int) string { + h := s.ident() + fmt.Printf("%*s", 2*ident, "") + fmt.Printf("%v %x\n", h, s.Bytes()) + if h.Kind == kindConstructed { + s.subState().dump(ident + 1) + } + if h.Class == classUniversal { + /* + switch h.Tag { + case tagInteger: + fmt.Println(h.Tag, s.unmarshalInt()) + case tagObjectIdentifier: + fmt.Println(h.Tag, s.unmarshalOID()) + case tagBitString: + fmt.Println(h.Tag, s.unmarshalBitString()) + case tagIA5String, tagOctetString: + fmt.Println(h.Tag, s.unmarshalString()) + case tagBoolean: + fmt.Println(h.Tag, s.unmarshalBool()) + default: + fmt.Println(h.Tag, s.next()) + } + */ + } + if s.Len() > 0 { + s.subState().dump(ident) + } + return "" +} -- cgit v1.2.3