Next: Signature Notation Data, Previous: Selecting Signers, Up: Sign
The
gpgme_sig_mode_t
type is used to specify the desired type of a signature. The following modes are available:
GPGME_SIG_MODE_NORMAL
- A normal signature is made, the output includes the plaintext and the signature.
GPGME_SIG_MODE_DETACH
- A detached signature is made.
GPGME_SIG_MODE_CLEAR
- A clear text signature is made. The ASCII armor and text mode settings of the context are ignored.
The function
gpgme_op_sign
creates a signature for the text in the data object plain and returns it in the data object sig. The type of the signature created is determined by the ASCII armor and text mode attributes set for the context ctx and the requested signature mode mode.After the operation completed successfully, the result can be retrieved with
gpgme_op_sign_result
.If an S/MIME signed message is created using the CMS crypto engine, the number of certificates to include in the message can be specified with
gpgme_set_include_certs
. See Included Certificates.The function returns the error code
GPG_ERR_NO_ERROR
if the signature could be created successfully,GPG_ERR_INV_VALUE
if ctx, plain or sig is not a valid pointer,GPG_ERR_NO_DATA
if the signature could not be created,GPG_ERR_BAD_PASSPHRASE
if the passphrase for the secret key could not be retrieved,GPG_ERR_UNUSABLE_SECKEY
if there are invalid signers, and passes through any errors that are reported by the crypto engine support routines.
The function
gpgme_op_sign_start
initiates agpgme_op_sign
operation. It can be completed by callinggpgme_wait
on the context. See Waiting For Completion.The function returns the error code
GPG_ERR_NO_ERROR
if the operation could be started successfully, andGPG_ERR_INV_VALUE
if ctx, plain or sig is not a valid pointer.
This is a pointer to a structure used to store a part of the result of a
gpgme_op_sign
operation. The structure contains the following members:
gpgme_new_signature_t next
- This is a pointer to the next new signature structure in the linked list, or
NULL
if this is the last element.gpgme_sig_mode_t type
- The type of this signature.
gpgme_pubkey_algo_t
- The public key algorithm used to create this signature.
gpgme_hash_algo_t
- The hash algorithm used to create this signature.
unsigned int sig_class
- The signature class of this signature.
long int timestamp
- The creation timestamp of this signature.
char *fpr
- The fingerprint of the key which was used to create this signature.
This is a pointer to a structure used to store the result of a
gpgme_op_sign
operation. After successfully generating a signature, you can retrieve the pointer to the result withgpgme_op_sign_result
. The structure contains the following members:
gpgme_invalid_key_t invalid_signers
- A linked list with information about all invalid keys for which a signature could not be created.
gpgme_new_signature_t signatures
- A linked list with information about all signatures created.
The function
gpgme_op_sign_result
returns agpgme_sign_result_t
pointer to a structure holding the result of agpgme_op_sign
operation. The pointer is only valid if the last operation on the context was agpgme_op_sign
,gpgme_op_sign_start
,gpgme_op_encrypt_sign
orgpgme_op_encrypt_sign_start
operation. If that operation failed, the function might return aNULL
pointer, The returned pointer is only valid until the next operation is started on the context.