core: Explain in gpgme.h that most stucts are read-only.

--

It is common that developers look up only the header file and do not
read the manual.  These comments should make it clear that most
structures in gpgme.h are read-only and may only be allocated by
gpgme.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2017-02-02 10:13:36 +01:00
parent d19bea52af
commit 0ceeb2948c
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B

View File

@ -394,6 +394,9 @@ typedef unsigned int gpgme_export_mode_t;
typedef unsigned int gpgme_sig_notation_flags_t; typedef unsigned int gpgme_sig_notation_flags_t;
/* An object to hold information about notation data. This structure
* shall be considered read-only and an application must not allocate
* such a structure on its own. */
struct _gpgme_sig_notation struct _gpgme_sig_notation
{ {
struct _gpgme_sig_notation *next; struct _gpgme_sig_notation *next;
@ -431,7 +434,9 @@ typedef struct _gpgme_sig_notation *gpgme_sig_notation_t;
* Public structures. * Public structures.
*/ */
/* The engine information structure. */ /* The engine information structure.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_engine_info struct _gpgme_engine_info
{ {
struct _gpgme_engine_info *next; struct _gpgme_engine_info *next;
@ -454,7 +459,9 @@ struct _gpgme_engine_info
typedef struct _gpgme_engine_info *gpgme_engine_info_t; typedef struct _gpgme_engine_info *gpgme_engine_info_t;
/* An object with TOFU information. */ /* An object with TOFU information.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_tofu_info struct _gpgme_tofu_info
{ {
struct _gpgme_tofu_info *next; struct _gpgme_tofu_info *next;
@ -491,7 +498,9 @@ struct _gpgme_tofu_info
typedef struct _gpgme_tofu_info *gpgme_tofu_info_t; typedef struct _gpgme_tofu_info *gpgme_tofu_info_t;
/* A subkey from a key. */ /* A subkey from a key.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_subkey struct _gpgme_subkey
{ {
struct _gpgme_subkey *next; struct _gpgme_subkey *next;
@ -565,7 +574,9 @@ struct _gpgme_subkey
typedef struct _gpgme_subkey *gpgme_subkey_t; typedef struct _gpgme_subkey *gpgme_subkey_t;
/* A signature on a user ID. */ /* A signature on a user ID.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_key_sig struct _gpgme_key_sig
{ {
struct _gpgme_key_sig *next; struct _gpgme_key_sig *next;
@ -634,7 +645,9 @@ struct _gpgme_key_sig
typedef struct _gpgme_key_sig *gpgme_key_sig_t; typedef struct _gpgme_key_sig *gpgme_key_sig_t;
/* An user ID from a key. */ /* An user ID from a key.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_user_id struct _gpgme_user_id
{ {
struct _gpgme_user_id *next; struct _gpgme_user_id *next;
@ -681,7 +694,9 @@ struct _gpgme_user_id
typedef struct _gpgme_user_id *gpgme_user_id_t; typedef struct _gpgme_user_id *gpgme_user_id_t;
/* A key from the keyring. */ /* A key from the keyring.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_key struct _gpgme_key
{ {
/* Internal to GPGME, do not use. */ /* Internal to GPGME, do not use. */
@ -762,7 +777,9 @@ struct _gpgme_key
typedef struct _gpgme_key *gpgme_key_t; typedef struct _gpgme_key *gpgme_key_t;
/* An invalid key object. */ /* An invalid key object.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_invalid_key struct _gpgme_invalid_key
{ {
struct _gpgme_invalid_key *next; struct _gpgme_invalid_key *next;
@ -1196,6 +1213,9 @@ void gpgme_key_release (gpgme_key_t key);
* Encryption. * Encryption.
*/ */
/* An object to return results from an encryption operation.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_encrypt_result struct _gpgme_op_encrypt_result
{ {
/* The list of invalid recipients. */ /* The list of invalid recipients. */
@ -1244,6 +1264,9 @@ gpgme_error_t gpgme_op_encrypt_sign (gpgme_ctx_t ctx, gpgme_key_t recp[],
* Decryption. * Decryption.
*/ */
/* An object to hold information about a recipient.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_recipient struct _gpgme_recipient
{ {
struct _gpgme_recipient *next; struct _gpgme_recipient *next;
@ -1262,6 +1285,9 @@ struct _gpgme_recipient
}; };
typedef struct _gpgme_recipient *gpgme_recipient_t; typedef struct _gpgme_recipient *gpgme_recipient_t;
/* An object to return results from a decryption operation.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_decrypt_result struct _gpgme_op_decrypt_result
{ {
char *unsupported_algorithm; char *unsupported_algorithm;
@ -1307,6 +1333,9 @@ gpgme_error_t gpgme_op_decrypt_verify (gpgme_ctx_t ctx, gpgme_data_t cipher,
* Signing. * Signing.
*/ */
/* An object with signatures data.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_new_signature struct _gpgme_new_signature
{ {
struct _gpgme_new_signature *next; struct _gpgme_new_signature *next;
@ -1342,6 +1371,10 @@ struct _gpgme_new_signature
}; };
typedef struct _gpgme_new_signature *gpgme_new_signature_t; typedef struct _gpgme_new_signature *gpgme_new_signature_t;
/* An object to return results from a signing operation.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_sign_result struct _gpgme_op_sign_result
{ {
/* The list of invalid signers. */ /* The list of invalid signers. */
@ -1385,6 +1418,9 @@ typedef enum
gpgme_sigsum_t; gpgme_sigsum_t;
/* An object to hold the verification status of a signature.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_signature struct _gpgme_signature
{ {
struct _gpgme_signature *next; struct _gpgme_signature *next;
@ -1437,6 +1473,9 @@ struct _gpgme_signature
}; };
typedef struct _gpgme_signature *gpgme_signature_t; typedef struct _gpgme_signature *gpgme_signature_t;
/* An object to return the results of a verify operation.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_verify_result struct _gpgme_op_verify_result
{ {
gpgme_signature_t signatures; gpgme_signature_t signatures;
@ -1470,6 +1509,9 @@ gpgme_error_t gpgme_op_verify (gpgme_ctx_t ctx, gpgme_data_t sig,
#define GPGME_IMPORT_SECRET 16 /* The key contained a secret key. */ #define GPGME_IMPORT_SECRET 16 /* The key contained a secret key. */
/* An object to hold results for one imported key.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_import_status struct _gpgme_import_status
{ {
struct _gpgme_import_status *next; struct _gpgme_import_status *next;
@ -1488,7 +1530,9 @@ struct _gpgme_import_status
}; };
typedef struct _gpgme_import_status *gpgme_import_status_t; typedef struct _gpgme_import_status *gpgme_import_status_t;
/* Import result object. */ /* Import result object.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_import_result struct _gpgme_op_import_result
{ {
/* Number of considered keys. */ /* Number of considered keys. */
@ -1594,6 +1638,9 @@ gpgme_error_t gpgme_op_export_keys (gpgme_ctx_t ctx,
#define GPGME_CREATE_WANTSEC (1 << 11) /* Return the secret key. */ #define GPGME_CREATE_WANTSEC (1 << 11) /* Return the secret key. */
#define GPGME_CREATE_FORCE (1 << 12) /* Force creation. */ #define GPGME_CREATE_FORCE (1 << 12) /* Force creation. */
/* An object to return result from a key generation.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_genkey_result struct _gpgme_op_genkey_result
{ {
/* A primary key was generated. */ /* A primary key was generated. */
@ -1750,6 +1797,9 @@ gpgme_error_t gpgme_op_tofu_policy (gpgme_ctx_t ctx,
* Key listing * Key listing
*/ */
/* An object to return results from a key listing operation.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_keylist_result struct _gpgme_op_keylist_result
{ {
unsigned int truncated : 1; unsigned int truncated : 1;
@ -1790,6 +1840,9 @@ gpgme_error_t gpgme_op_passwd (gpgme_ctx_t ctx, gpgme_key_t key,
* Trust items and operations. * Trust items and operations.
*/ */
/* An object to hold data of a trust item.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_trust_item struct _gpgme_trust_item
{ {
/* Internal to GPGME, do not use. */ /* Internal to GPGME, do not use. */
@ -1924,6 +1977,9 @@ gpgme_error_t gpgme_op_assuan_transact_ext (gpgme_ctx_t ctx,
* Crypto container support. * Crypto container support.
*/ */
/* An object to return results from a VFS mount operation.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_vfs_mount_result struct _gpgme_op_vfs_mount_result
{ {
char *mount_dir; char *mount_dir;
@ -2112,7 +2168,9 @@ gpgme_error_t gpgme_op_conf_load (gpgme_ctx_t ctx, gpgme_conf_comp_t *conf_p);
gpgme_error_t gpgme_op_conf_save (gpgme_ctx_t ctx, gpgme_conf_comp_t comp); gpgme_error_t gpgme_op_conf_save (gpgme_ctx_t ctx, gpgme_conf_comp_t comp);
/* Information about software versions. */ /* Information about software versions.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
typedef struct _gpgme_op_query_swdb_result typedef struct _gpgme_op_query_swdb_result
{ {
/* RFU */ /* RFU */
@ -2528,7 +2586,9 @@ int gpgme_trust_item_get_int_attr (gpgme_trust_item_t item, _gpgme_attr_t what,
const void *reserved, int idx) const void *reserved, int idx)
_GPGME_DEPRECATED(0,4); _GPGME_DEPRECATED(0,4);
/* Compat. */ /* Compat.
* This structure shall be considered read-only and an application
* must not allocate such a structure on its own. */
struct _gpgme_op_assuan_result struct _gpgme_op_assuan_result
{ {
/* Deprecated. Use the second value in a DONE event or the /* Deprecated. Use the second value in a DONE event or the