Next: , Previous: , Up: Top   [Contents][Index]

6 Exchanging Data

A lot of data has to be exchanged between the user and the crypto engine, like plaintext messages, ciphertext, signatures and information about the keys. The technical details about exchanging the data information are completely abstracted by GPGME. The user provides and receives the data via gpgme_data_t objects, regardless of the communication protocol between GPGME and the crypto engine in use.

Data type: gpgme_data_t

The gpgme_data_t type is a handle for a container for generic data, which is used by GPGME to exchange data with the user.

gpgme_data_t objects do not provide notifications on events. It is assumed that read and write operations are blocking until data is available. If this is undesirable, the application must ensure that all GPGME data operations always have data available, for example by using memory buffers or files rather than pipes or sockets. This might be relevant, for example, if the external event loop mechanism is used.

Data type: gpgme_off_t

On POSIX platforms the gpgme_off_t type is an alias for off_t; it may be used interchangeable. On Windows platforms gpgme_off_t is defined as a long (i.e. 32 bit) for 32 bit Windows and as a 64 bit signed integer for 64 bit Windows.

Data type: gpgme_ssize_t

The gpgme_ssize_t type is an alias for ssize_t. It has only been introduced to overcome portability problems pertaining to the declaration of ssize_t by different toolchains.

Next: , Previous: , Up: Top   [Contents][Index]