#
# Copyright 2015-2018 Yubico AB
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

option "action" a "Action to perform" values="benchmark",
                                             "blink-device",
                                             "create-otp-aead",
                                             "decrypt-aesccm",
                                             "decrypt-aescbc",
                                             "decrypt-aesecb",
                                             "decrypt-oaep",
                                             "decrypt-otp",
                                             "decrypt-pkcs1v15",
                                             "delete-object",
                                             "derive-ecdh",
                                             "encrypt-aesccm",
                                             "encrypt-aescbc",
                                             "encrypt-aesecb",
                                             "generate-asymmetric-key",
                                             "generate-csr",
                                             "generate-hmac-key",
                                             "generate-otp-aead-key",
                                             "generate-wrap-key",
                                             "generate-symmetric-key",
                                             "get-device-info",
                                             "get-logs",
                                             "get-object-info",
                                             "get-opaque",
                                             "get-option",
                                             "get-pseudo-random",
                                             "get-public-key",
                                             "get-storage-info",
                                             "get-template",
                                             "get-wrapped",
                                             "get-rsa-wrapped",
                                             "get-rsa-wrapped-key",
                                             "get-device-pubkey",
                                             "list-objects",
                                             "put-asymmetric-key",
                                             "put-authentication-key",
                                             "put-hmac-key",
                                             "put-opaque",
                                             "put-option",
                                             "put-otp-aead-key",
                                             "put-symmetric-key",
                                             "put-template",
                                             "put-wrap-key",
                                             "put-rsa-wrapkey",
                                             "put-public-wrapkey",
                                             "put-wrapped",
                                             "put-rsa-wrapped",
                                             "put-rsa-wrapped-key",
                                             "randomize-otp-aead",
                                             "reset",
                                             "set-log-index",
                                             "sign-attestation-certificate",
                                             "sign-ecdsa",
                                             "sign-eddsa",
                                             "sign-hmac",
                                             "sign-pkcs1v15",
                                             "sign-pss",
                                             "sign-ssh-certificate" enum optional multiple
option "password" p "Authentication password" string optional
option "authkey" - "Authentication key" short optional default="1"
option "object-id" i "Object ID" short optional default="0"
option "label" l "Object label" string optional default=""
option "domains" d "Object domains" string optional default="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16"
option "capabilities" c "Capabilities for an object" string optional default="0"
option "object-type" t "Object type" string optional default="any"
option "ykhsmauth-label" y "Credential label on YubiKey (implicitly enables ykhsmauth)" string optional
option "ykhsmauth-reader" r "Only use a matching YubiKey reader name" string optional default=""

option "delegated" - "Delegated capabilities" string optional default="0"
option "new-password" - "New authentication password" string optional
option "algorithm" A "Operation algorithm" string optional default="any"
option "oaep" - "OAEP algorithm. Used primarily with asymmetric wrap" string optional default="rsa-oaep-sha256"
option "mgf1" - "MGF1 algorithm. Used primarily with asymmetric wrap" string optional default="mgf1-sha256"
option "nonce" - "OTP nonce" int optional
option "iv" - "An initialization vector as a hexadecimal string" string optional
option "count" - "Number of bytes to request" int optional default="256"
option "duration" - "Blink duration in seconds" int optional default="10"
option "wrap-id" - "Wrap key ID" short optional
option "include-seed" - "Include seed when exporting an ED25519 key under wrap" flag off
option "template-id" - "Template ID" short optional
option "attestation-id" - "Attestation ID" short optional
option "log-index" - "Log index" int optional
option "opt-name" - "Device option name" string optional
option "opt-value" - "Device option value" string optional
option "with-compression" - "Compress a X509Certificate before importing it into the device or detect compressed certificates when listing objects" flag off
option "subject" S "The subject to use for certificate request. The subject must be written as: /CN=host.example.com/OU=test/O=example.com/" string optional

option "in" - "Input data (filename)" string optional default="-"
option "out" - "Output data (filename)" string optional default="-"
option "informat" - "Input format" values="default","base64","binary","PEM","password","hex","ASCII" enum optional default="default"
option "outformat" - "Input and output format" values="default","base64","binary","PEM","hex","ASCII" enum optional default="default"

#option "enc-key" e "Encryption key to use" string optional default="404142434445464748494a4b4c4d4e4f"
#option "mac-key" m "Mac key to use" string optional default="404142434445464748494a4b4c4d4e4f"

option "config-file" f "Configuration file to read" string optional default=""
option "connector" C "List of connectors to use" string optional multiple
option "cacert" - "HTTPS cacert for connector" string optional
option "cert" - "HTTPS client certificate to authenticate with" string optional
option "key" - "HTTPS client certificate key" string optional
option "proxy" - "Proxy server to use for connector" string optional
option "noproxy" - "Comma separated list of hosts ignore proxy for" string optional
option "verbose" v "Print more information" int optional default="0"
option "pre-connect" P "Connect immediately in interactive mode" flag off

option "device-pubkey" - "List of device public keys allowed for asymmetric authentication" string optional multiple
