vici: Document NTLM secrets in README.md
[strongswan.git] / src / libcharon / plugins / vici / README.md
index 0a06e5d..49cce37 100644 (file)
@@ -1,8 +1,8 @@
 # The Versatile IKE Control Interface (VICI) protocol #
 
-The vici plugin implements the server side of an IPC protocol to configure,
-monitor and control the IKE daemon charon. It uses request/response and event
-messages to communicate over a reliable stream based transport.
+The vici _[ˈvitʃi]_ plugin implements the server side of an IPC protocol to
+configure, monitor and control the IKE daemon charon. It uses request/response
+and event messages to communicate over a reliable stream based transport.
 
 ## Transport protocol ##
 
@@ -258,7 +258,7 @@ Initiates an SA while streaming _control-log_ events.
 
        {
                child = <CHILD_SA configuration name to initiate>
-               ike = <optional IKE_SA configuraiton name to find child under>
+               ike = <optional IKE_SA configuration name to find child under>
                timeout = <timeout in ms before returning>
                init-limits = <whether limits may prevent initiating the CHILD_SA>
                loglevel = <loglevel to issue "control-log" events for>
@@ -283,12 +283,29 @@ Terminates an SA while streaming _control-log_ events.
                loglevel = <loglevel to issue "control-log" events for>
        } => {
                success = <yes or no>
+               matches = <number of matched SAs>
+               terminated = <number of terminated SAs>
                errmsg = <error string on failure or timeout>
        }
 
 The default timeout of 0 waits indefinitely for a result, and a timeout value
 of -1 returns a result immediately.
 
+### rekey() ###
+
+Initiate the rekeying of an SA.
+
+       {
+               child = <rekey a CHILD_SA by configuration name>
+               ike = <rekey an IKE_SA by configuration name>
+               child-id = <rekey a CHILD_SA by its reqid>
+               ike-id = <rekey an IKE_SA by its unique id>
+       } => {
+               success = <yes or no>
+               matches = <number of matched SAs>
+               errmsg = <error string on failure>
+       }
+
 ### redirect() ###
 
 Redirect a client-initiated IKE_SA to another gateway.  Only for IKEv2 and if
@@ -303,6 +320,7 @@ supported by the peer.
                                   wildcards>
        } => {
                success = <yes or no>
+               matches = <number of matched SAs>
                errmsg = <error string on failure>
        }
 
@@ -462,11 +480,12 @@ Load a certificate into the daemon.
 Load a private key into the daemon.
 
        {
-               type = <private key type, RSA|ECDSA>
+               type = <private key type, rsa|ecdsa|bliss|any>
                data = <PEM or DER encoded key data>
        } => {
                success = <yes or no>
                errmsg = <error string on failure>
+               id = <hex-encoded SHA-1 key identifier of the public key on success>
        }
 
 ### unload-key() ###
@@ -511,11 +530,11 @@ on the key identifier derived from the public key).
 
 ### load-shared() ###
 
-Load a shared IKE PSK, EAP or XAuth secret into the daemon.
+Load a shared IKE PSK, EAP, XAuth or NTLM secret into the daemon.
 
        {
                id = <optional unique identifier of this shared key>
-               type = <shared key type, IKE|EAP|XAUTH>
+               type = <shared key type, IKE|EAP|XAUTH|NTLM>
                data = <raw shared key data>
                owners = [
                        <list of shared key owner identities>
@@ -527,8 +546,8 @@ Load a shared IKE PSK, EAP or XAuth secret into the daemon.
 
 ### unload-shared() ###
 
-Unload a previously loaded shared IKE PSK, EAP or XAuth secret by its unique
-identifier.
+Unload a previously loaded shared IKE PSK, EAP, XAuth or NTLM secret by its
+unique identifier.
 
        {
                id = <unique identifier of the shared key to unload>
@@ -663,6 +682,35 @@ List currently loaded algorithms and their implementation.
                }
        }
 
+### get-counters() ###
+
+List global or connection-specific counters for several IKE events.
+
+       {
+               name = <optional connection name, omit for global counters>
+               all = <yes to get counters for all connections, name is ignored>
+       } => {
+               counters = {
+                       <name|empty for global counters> = {
+                               <pairs of counter name and 64-bit counter value>
+                       }
+               }
+               success = <yes or no>
+               errmsg = <error string on failure>
+       }
+
+### reset-counters() ###
+
+Reset global or connection-specific IKE event counters.
+
+       {
+               name = <optional connection name, omit for global counters>
+               all = <yes to reset counters for all connections, name is ignored>
+       } => {
+               success = <yes or no>
+               errmsg = <error string on failure>
+       }
+
 ## Server-issued events ##
 
 Based on the packet layer, the vici plugin raises event messages using named