• Daniel Lenski's avatar
    enumerate supported VPN protocols via openconnect_get_supported_protocols() · 40802e45
    Daniel Lenski authored
    Add two new public functions:
    * int openconnect_get_supported_protocols(struct oc_vpn_proto **protos)
      Fetches a list of protocols supported by the client.  Each supported
      protocol has a short name (as accepted by the --protocol command-line
      option), pretty name, longer description, and list of flags.
      The return value of the function is the number of protocols supported (or
      negative if an error occurred).
      The flags indicate features that are meaningful for this protocol, to be
      used by tools like the Networkmanager configuration UI. Current flags:
        * OC_PROTO_PROXY: can connect via HTTP or SOCKS proxy
        * OC_PROTO_CSD: supports verification of the client via CSD trojan
        * OC_PROTO_AUTH_CERT: supports authentication by client certificate
        * OC_PROTO_AUTH_OTP: supports authentication by OATH HOTP/TOTP token
        * OC_PROTO_AUTH_STOKEN: supports authentication by RSA SecurID token (stoken)
    * void openconnect_free_supported_protocols(struct oc_vpn_proto *protos)
      Frees the list of protocols fetched by openconnect_get_supported_protocols()
    The description of the "anyconnect" protocol matches the IETF draft
    standard for openconnect VPN (https://tools.ietf.org/html/draft-mavrogiannopoulos-openconnect-00).
    Signed-off-by: default avatarDaniel Lenski <dlenski@gmail.com>
    Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
openconnect.h 26.8 KB