util.go 804 B

12345678910111213141516171819202122232425262728293031
  1. // Package util provides some common utility methods
  2. package util
  3. import (
  4. "crypto/x509"
  5. "encoding/pem"
  6. "errors"
  7. )
  8. // IsStringInSlice searches a string in a slice and returns true if the string is found
  9. func IsStringInSlice(obj string, list []string) bool {
  10. for i := 0; i < len(list); i++ {
  11. if list[i] == obj {
  12. return true
  13. }
  14. }
  15. return false
  16. }
  17. // EncodeTLSCertToPem returns the specified certificate PEM encoded.
  18. // This can be verified using openssl x509 -in cert.crt -text -noout
  19. func EncodeTLSCertToPem(tlsCert *x509.Certificate) (string, error) {
  20. if len(tlsCert.Raw) == 0 {
  21. return "", errors.New("invalid x509 certificate, no der contents")
  22. }
  23. publicKeyBlock := pem.Block{
  24. Type: "CERTIFICATE",
  25. Bytes: tlsCert.Raw,
  26. }
  27. return string(pem.EncodeToMemory(&publicKeyBlock)), nil
  28. }