loadCert.go 755 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package goStrongswanVici
  2. import (
  3. "fmt"
  4. )
  5. type certPayload struct {
  6. Typ string `json:"type"` // (X509|X509_AC|X509_CRL)
  7. Flag string `json:"flag"` // (CA|AA|OCSP|NONE)
  8. Data string `json:"data"`
  9. }
  10. func (c *ClientConn) LoadCertificate(s string, typ string, flag string) (err error) {
  11. requestMap := &map[string]interface{}{}
  12. var k = certPayload{
  13. Typ: typ,
  14. Flag: flag,
  15. Data: s,
  16. }
  17. if err = ConvertToGeneral(k, requestMap); err != nil {
  18. return fmt.Errorf("error creating request: %v", err)
  19. }
  20. msg, err := c.Request("load-cert", *requestMap)
  21. if err != nil {
  22. return fmt.Errorf("unsuccessful loadCert: %v", err.Error())
  23. }
  24. if msg["success"] != "yes" {
  25. return fmt.Errorf("unsuccessful loadCert: %v", msg["errmsg"])
  26. }
  27. return nil
  28. }