debug.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package main
  2. import (
  3. "net"
  4. "github.com/jcmturner/gokrb5/messages"
  5. "time"
  6. "fmt"
  7. "os"
  8. )
  9. func main() {
  10. udpAddr, _ := net.ResolveUDPAddr("udp", "10.80.88.88:88")
  11. realm := "TEST.GOKRB5"
  12. conn, _ := net.DialUDP("udp", nil, udpAddr)
  13. defer conn.Close()
  14. a := messages.NewASReq()
  15. a.ReqBody.Realm = realm
  16. a.ReqBody.CName.NameString = []string{"testuser1"}
  17. a.ReqBody.SName.NameType = 2
  18. a.ReqBody.SName.NameString = []string{"krbtgt", realm}
  19. a.ReqBody.Till = time.Now().Add(10 * time.Hour)
  20. a.ReqBody.Nonce = 2069991465
  21. a.ReqBody.EType = []int{18}
  22. fmt.Fprintf(os.Stdout, "AS_REQ: %+v\n", a)
  23. b, err := a.Marshal()
  24. if err != nil {
  25. fmt.Fprintf(os.Stderr, "Error marshalling AS_REQ: %v\n", err)
  26. }
  27. var m messages.ASReq
  28. m.Unmarshal(b)
  29. b, err = m.Marshal()
  30. if err != nil {
  31. fmt.Fprintf(os.Stderr, "Error marshalling AS_REQ: %v\n", err)
  32. }
  33. fmt.Fprintf(os.Stdout, "AS_REQ post marshal: %+v\n", m)
  34. _, _ = conn.Write(b)
  35. buf := make([]byte, 4096)
  36. n,_,err := conn.ReadFrom(buf)
  37. var r messages.ASRep
  38. r.Unmarshal(buf[:n])
  39. fmt.Fprintf(os.Stdout, "AS REP: %+v\n", r)
  40. }