== Signing
    $ yubico-piv-tool -a verify-pin --sign -s <slot> [ -H <hash algorithm> -A <key algorithm> -P <PIN code> -i <input data file> -o <signature file> ]

=== Description
Signs input data

The signing operation requires verifying the PIN code or the fingerprint if the YubiKey supports Bio verification.
Use `-a verify-pin` to verify the PIN and `-a verify-bio` for fingerprint verification.

=== Parameters

|===================================
|Parameter         | Required | Optional | Description | Possible values | Default value
|sign              | X | | Sign data | |

|-s, --slot        | X | | What key slot to operate on | 9a, 9c, 9d, 9e, 82, 83, 84, 85, 86, 87, 88, 89,
                                                          8a, 8b, 8c, 8d, 8e, 8f, 90, 91, 92, 93, 94, 95, f9 |
|-A, --algorithm   | | X | Signing key algorithm | RSA1024, RSA2048, RSA3072 (Requires YubiKey 5.7 or higher), RSA4096 (Requires YubiKey 5.7 or higher), ECCP256, ECCP384, ED25519 (Requires YubiKey 5.7 or higher) | RSA2048
|-H, --hash        | | X | Hash to use for signatures | SHA1, SHA256, SHA384, SHA512 | SHA256
|-P, --pin         | | X | Pin/puk code for verification, if omitted pin/puk will be asked for | |
|-i, --input       | | X | Filename to use as input. If left out, input will be read from Stdin | None or file name | Stdin
|-o, --output      | | X | Filename to use as output. If left out, output will be printed to Stdout | None or file name | Stdout
|===================================

=== Examples

    $ yubico-piv-tool -a verify-pin --sign -s 9c -H SHA512 -A RSA2048 -i data.txt -o data.sig
    Enter PIN:
    Successfully verified PIN.
    Signature successful!

    $ openssl dgst -sha512 -verify pubkey.pem -signature data.sig data.txt
    Verified OK