github.com/jcmturner/gokrb5/v8@v8.4.4/kadmin/message_test.go (about) 1 package kadmin 2 3 import ( 4 "encoding/hex" 5 "testing" 6 7 "github.com/jcmturner/gokrb5/v8/iana" 8 "github.com/jcmturner/gokrb5/v8/iana/msgtype" 9 "github.com/jcmturner/gokrb5/v8/test/testdata" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestUnmarshalReply(t *testing.T) { 14 t.Parallel() 15 var a Reply 16 b, err := hex.DecodeString(testdata.MarshaledKpasswd_Rep) 17 if err != nil { 18 t.Fatalf("Test vector read error: %v", err) 19 } 20 err = a.Unmarshal(b) 21 if err != nil { 22 t.Fatalf("Unmarshal error: %v", err) 23 } 24 assert.Equal(t, 236, a.MessageLength, "message length not as expected") 25 assert.Equal(t, 1, a.Version, "message version not as expected") 26 assert.Equal(t, 140, a.APREPLength, "AP_REP length not as expected") 27 assert.Equal(t, iana.PVNO, a.APREP.PVNO, "AP_REP within reply not as expected") 28 assert.Equal(t, msgtype.KRB_AP_REP, a.APREP.MsgType, "AP_REP message type within reply not as expected") 29 assert.Equal(t, int32(18), a.APREP.EncPart.EType, "AP_REQ etype not as expected") 30 assert.Equal(t, iana.PVNO, a.KRBPriv.PVNO, "KRBPriv within reply not as expected") 31 assert.Equal(t, msgtype.KRB_PRIV, a.KRBPriv.MsgType, "KRBPriv type within reply not as expected") 32 assert.Equal(t, int32(18), a.KRBPriv.EncPart.EType, "KRBPriv etype not as expected") 33 } 34 35 // Request marshal is tested via integration test in the client package due to the dynamic keys and encryption.