12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // this file contains the functions for managing shared secrets
- package goStrongswanVici
- import (
- "fmt"
- )
- type Key struct {
- ID string `json:"id,omitempty"`
- Typ string `json:"type"`
- Data string `json:"data"`
- Owners []string `json:"owners"`
- }
- type UnloadKeyRequest struct {
- ID string `json:"id"`
- }
- type keyList struct {
- Keys []string `json:"keys"`
- }
- // load a shared secret into the IKE daemon
- func (c *ClientConn) LoadShared(key *Key) error {
- requestMap := &map[string]interface{}{}
- err := ConvertToGeneral(key, requestMap)
- if err != nil {
- return fmt.Errorf("error creating request: %v", err)
- }
- msg, err := c.Request("load-shared", *requestMap)
- if msg["success"] != "yes" {
- return fmt.Errorf("unsuccessful loadSharedKey: %v", msg["errmsg"])
- }
- return nil
- }
- // unload (delete) a shared secret from the IKE daemon
- func (c *ClientConn) UnloadShared(key *UnloadKeyRequest) error {
- requestMap := &map[string]interface{}{}
- err := ConvertToGeneral(key, requestMap)
- if err != nil {
- return fmt.Errorf("error creating request: %v", err)
- }
- msg, err := c.Request("unload-shared", *requestMap)
- if msg["success"] != "yes" {
- return fmt.Errorf("unsuccessful loadSharedKey: %v", msg["errmsg"])
- }
- return nil
- }
- // get a the names of the shared secrets currently loaded
- func (c *ClientConn) GetShared() ([]string, error) {
- msg, err := c.Request("get-shared", nil)
- if err != nil {
- fmt.Errorf("Error making request: %v", err)
- return nil, err
- }
- keys := &keyList{}
- err = ConvertFromGeneral(msg, keys)
- if err != nil {
- fmt.Errorf("Error converting data: %v", err)
- }
- return keys.Keys, err
- }
|