From 044255e7d40bdbadd442ff60b66b096518610af8 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 8 Oct 2015 20:15:17 +0200 Subject: Work in progress --- parse/parse.go | 64 +++++++++++++++++++--------------------------------------- 1 file changed, 21 insertions(+), 43 deletions(-) (limited to 'parse/parse.go') diff --git a/parse/parse.go b/parse/parse.go index 8f53c06..60c59b6 100644 --- a/parse/parse.go +++ b/parse/parse.go @@ -2,13 +2,15 @@ package main import ( "fmt" + "log" //"dim13.org/asn1/ber" "dim13.org/asn1/acse" - "dim13.org/asn1/csta" + //"dim13.org/asn1/csta" "dim13.org/asn1/rose" "github.com/dim13/asn1" + "github.com/kr/pretty" ) var t = map[byte]string{ @@ -21,61 +23,37 @@ var t = map[byte]string{ 0xa2: "ROSE Response", } +func unmarshal(b []byte, v interface{}) { + _, err := asn1.Unmarshal(b, v) + if err != nil { + log.Fatal(err) + } + pretty.Println(v) +} + func main() { for n, s := range session { fmt.Println(">>> packet", n, t[s[0]]) //fmt.Println(ber.Dump(s)) switch s[0] { case 0xa1: - v := rose.Invoke{} - _, err := asn1.Unmarshal(s, &v) - if err != nil { - fmt.Println(err) - } - fmt.Println(v, csta.Modules[v.Opcode]) + unmarshal(s, &rose.Invoke{}) case 0xa2: - v := rose.ReturnResult{} - _, err := asn1.Unmarshal(s, &v) - if err != nil { - fmt.Println(err) - } - fmt.Println(v, csta.Modules[v.Result.Opcode]) + unmarshal(s, &rose.ReturnResult{}) case 0x60: - v := acse.AARQ{} - _, err := asn1.Unmarshal(s, &v) - if err != nil { - fmt.Println(err) - } - fmt.Println(v) + unmarshal(s, &acse.AARQ{}) case 0x61: - v := acse.AARE{} - _, err := asn1.Unmarshal(s, &v) - if err != nil { - fmt.Println(err) - } - fmt.Println(v) + unmarshal(s, &acse.AARE{}) case 0x62: - v := acse.RLRQ{} - _, err := asn1.Unmarshal(s, &v) - if err != nil { - fmt.Println(err) - } - fmt.Println(v) + unmarshal(s, &acse.RLRQ{}) case 0x63: - v := acse.RLRE{} - _, err := asn1.Unmarshal(s, &v) - if err != nil { - fmt.Println(err) - } - fmt.Println(v) + unmarshal(s, &acse.RLRE{}) case 0x64: - v := acse.ABRT{} - _, err := asn1.Unmarshal(s, &v) - if err != nil { - fmt.Println(err) - } - fmt.Println(v) + unmarshal(s, &acse.ABRT{}) } } + fmt.Printf("%x\n", session[0]) + a, _ := acse.Associate() + fmt.Printf("%x\n", a) } -- cgit v1.2.3