keytab_test.go 1.9 KB

1234567891011121314151617181920212223242526272829
  1. package keytab
  2. import (
  3. "encoding/hex"
  4. "github.com/stretchr/testify/assert"
  5. "testing"
  6. "time"
  7. )
  8. //Keytab data generated from ktutil
  9. const keytabDataHexStr = "0502000000320001000b4558414d504c452e434f4d00047573657200000001586aa82d01001700100c61039f010b2fbb88fe449fbf262477000000420001000b4558414d504c452e434f4d00047573657200000001586aa82d010012002053142f614ee6c39823710d9f31ff2984ed0bd9074d6e542e8468137f7b909c17000000320001000b4558414d504c452e434f4d00047573657200000001586beaad01001700100c61039f010b2fbb88fe449fbf262477000000420001000b4558414d504c452e434f4d00047573657200000001586beaae010012002053142f614ee6c39823710d9f31ff2984ed0bd9074d6e542e8468137f7b909c17000000430001000b4a544c414e2e434f2e554b000562696c6c7900000001586beaae1f00120020508dd2b209064e101bf209caef5fda236875706a5e9ad47c157db5907778785f"
  10. func TestParse(t *testing.T) {
  11. dat, _ := hex.DecodeString(keytabDataHexStr)
  12. kt, err := Parse(dat)
  13. if err != nil {
  14. t.Fatalf("Error parsing keytab data: %v\n", err)
  15. }
  16. assert.Equal(t, uint16(2), kt.Version, "Keytab version not as expected")
  17. assert.Equal(t, uint32(1), kt.Entries[0].KVNO, "KVNO not as expected")
  18. assert.Equal(t, uint8(1), kt.Entries[0].KVNO8, "KVNO8 not as expected")
  19. assert.Equal(t, time.Unix(1483384877, 0), kt.Entries[0].Timestamp, "Timestamp not as expected")
  20. assert.Equal(t, 23, kt.Entries[0].Key.KeyType, "Key's EType not as expected")
  21. assert.Equal(t, "0c61039f010b2fbb88fe449fbf262477", hex.EncodeToString(kt.Entries[0].Key.KeyValue), "Key material not as expected")
  22. assert.Equal(t, int16(1), kt.Entries[0].Principal.NumComponents, "Number of components in principal not as expected")
  23. assert.Equal(t, int32(1), kt.Entries[0].Principal.NameType, "Name type of principal not as expected")
  24. assert.Equal(t, "EXAMPLE.COM", kt.Entries[0].Principal.Realm, "Realm of principal not as expected")
  25. assert.Equal(t, "user", kt.Entries[0].Principal.Components[0], "Component in principal not as expected")
  26. }