pem_truststore_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package test
  2. import (
  3. "crypto/rsa"
  4. "testing"
  5. "github.com/ncarlier/webhookd/pkg/assert"
  6. "github.com/ncarlier/webhookd/pkg/truststore"
  7. )
  8. func TestTrustStoreWithNoKeyID(t *testing.T) {
  9. ts, err := truststore.New("test-key-01.pem")
  10. assert.Nil(t, err, "")
  11. assert.NotNil(t, ts, "")
  12. pubkey := ts.GetPublicKey("test")
  13. assert.True(t, pubkey == nil, "")
  14. pubkey = ts.GetPublicKey("default")
  15. assert.NotNil(t, pubkey, "")
  16. _, ok := pubkey.(*rsa.PublicKey)
  17. assert.True(t, ok, "")
  18. }
  19. func TestTrustStoreWithKeyID(t *testing.T) {
  20. ts, err := truststore.New("test-key-02.pem")
  21. assert.Nil(t, err, "")
  22. assert.NotNil(t, ts, "")
  23. pubkey := ts.GetPublicKey("test")
  24. assert.NotNil(t, pubkey, "")
  25. _, ok := pubkey.(*rsa.PublicKey)
  26. assert.True(t, ok, "")
  27. }
  28. func TestTrustStoreWithCertificate(t *testing.T) {
  29. ts, err := truststore.New("test-cert.pem")
  30. assert.Nil(t, err, "")
  31. assert.NotNil(t, ts, "")
  32. pubkey := ts.GetPublicKey("test.localnet")
  33. assert.NotNil(t, pubkey, "")
  34. _, ok := pubkey.(*rsa.PublicKey)
  35. assert.True(t, ok, "")
  36. }
  37. func TestTrustStoreWithMultipleEntries(t *testing.T) {
  38. ts, err := truststore.New("test-multi.pem")
  39. assert.Nil(t, err, "")
  40. assert.NotNil(t, ts, "")
  41. pubkey := ts.GetPublicKey("test.localnet")
  42. assert.NotNil(t, pubkey, "")
  43. _, ok := pubkey.(*rsa.PublicKey)
  44. assert.True(t, ok, "")
  45. pubkey = ts.GetPublicKey("foo")
  46. assert.NotNil(t, pubkey, "")
  47. _, ok = pubkey.(*rsa.PublicKey)
  48. assert.True(t, ok, "")
  49. }