doc/
2002-12-06 Marcus Brinkmann <marcus@g10code.de> * gpgme.texi (Memory Based Data Buffers): New subsection. (File Based Data Buffers): Likewise. (Callback Based Data Buffers): Likewise. (Manipulating Data Buffers): Update interfaces. Add gpgme_data_seek. * gpgme.texi (Engine Version Check): Remove gpgme_chec_engine. gpgme/ 2002-12-06 Marcus Brinkmann <marcus@g10code.de> * data.h (gpgme_data_release_cb): Change return type to void. (gpgme_data_read_cb): Change return type to ssize_t. * data.c (gpgme_data_read): Likewise. * data-stream.c (stream_read): Likewise. * data-fd.c (fd_read): Likewise. * data-mem.c (mem_read): Likewise. (mem_release): Change return type to void. * data-user.c (user_read): Change return type to ssize_t. (user_release): Change return type to void. * data-compat.c (old_user_read): Change return type to ssize_t. * gpgme.h (GpgmeDataReadCb): Likewise. (gpgme_data_read): Likewise. (GpgmeDataSeekCb): Change return type to off_t.
This commit is contained in:
parent
1b495c5140
commit
6a772bd6bc
@ -1,3 +1,12 @@
|
|||||||
|
2002-12-06 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
|
* gpgme.texi (Memory Based Data Buffers): New subsection.
|
||||||
|
(File Based Data Buffers): Likewise.
|
||||||
|
(Callback Based Data Buffers): Likewise.
|
||||||
|
(Manipulating Data Buffers): Update interfaces. Add
|
||||||
|
gpgme_data_seek.
|
||||||
|
* gpgme.texi (Engine Version Check): Remove gpgme_chec_engine.
|
||||||
|
|
||||||
2002-11-21 Marcus Brinkmann <marcus@g10code.de>
|
2002-11-21 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* gpgme.texi (Verify): Document the new interface.
|
* gpgme.texi (Verify): Document the new interface.
|
||||||
|
283
doc/gpgme.texi
283
doc/gpgme.texi
@ -125,6 +125,12 @@ Exchanging Data
|
|||||||
* Destroying Data Buffers:: Releasing data buffers.
|
* Destroying Data Buffers:: Releasing data buffers.
|
||||||
* Manipulating Data Buffers:: Operations on data buffers.
|
* Manipulating Data Buffers:: Operations on data buffers.
|
||||||
|
|
||||||
|
Creating Data Buffers
|
||||||
|
|
||||||
|
* Memory Based Data Buffers:: Creating memory based data buffers.
|
||||||
|
* File Based Data Buffers:: Creating file based data buffers.
|
||||||
|
* Callback Based Data Buffers:: Creating callback based data buffers.
|
||||||
|
|
||||||
Contexts
|
Contexts
|
||||||
|
|
||||||
* Creating Contexts:: Creating new @acronym{GPGME} contexts.
|
* Creating Contexts:: Creating new @acronym{GPGME} contexts.
|
||||||
@ -597,17 +603,6 @@ This function returns @code{GPGME_No_Error} if the engine is available
|
|||||||
and @code{GPGME_Invalid_Engine} if it is not.
|
and @code{GPGME_Invalid_Engine} if it is not.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@deftypefun GpgmeError gpgme_check_engine (void)
|
|
||||||
The function @code{gpgme_check_engine} is equivalent to
|
|
||||||
|
|
||||||
@example
|
|
||||||
gpgme_engine_check_version (GPGME_PROTOCOL_OpenPGP);
|
|
||||||
@end example
|
|
||||||
|
|
||||||
This function is deprecated and provided for backwards compatibility
|
|
||||||
only. It is obsoleted by @code{gpgme_engine_check_version}.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
|
|
||||||
@node Engine Information
|
@node Engine Information
|
||||||
@section Engine Information
|
@section Engine Information
|
||||||
@ -793,7 +788,7 @@ attempted to use it as an output buffer).
|
|||||||
|
|
||||||
@item GPGME_File_Error
|
@item GPGME_File_Error
|
||||||
This value means that a file I/O operation failed. The value of
|
This value means that a file I/O operation failed. The value of
|
||||||
@code{errno} contains the system error value.
|
@var{errno} contains the system error value.
|
||||||
|
|
||||||
@item GPGME_Decryption_Failed
|
@item GPGME_Decryption_Failed
|
||||||
This value indicates that a decryption operation was unsuccessful.
|
This value indicates that a decryption operation was unsuccessful.
|
||||||
@ -871,10 +866,31 @@ data, which is used by @acronym{GPGME} to exchange data with the user.
|
|||||||
@section Creating Data Buffers
|
@section Creating Data Buffers
|
||||||
@cindex data buffer, creation
|
@cindex data buffer, creation
|
||||||
|
|
||||||
|
Data objects can be based on memory, files, or callback functions
|
||||||
|
provided by the user. Not all operations are supported by all
|
||||||
|
objects.
|
||||||
|
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Memory Based Data Buffers:: Creating memory based data buffers.
|
||||||
|
* File Based Data Buffers:: Creating file based data buffers.
|
||||||
|
* Callback Based Data Buffers:: Creating callback based data buffers.
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
@node Memory Based Data Buffers
|
||||||
|
@subsection Memory Based Data Buffers
|
||||||
|
|
||||||
|
Memory based data objects store all data in allocated memory. This is
|
||||||
|
convenient, but only practical for an amount of data that is a
|
||||||
|
fraction of the available physical memory. The data has to be copied
|
||||||
|
from its source and to its destination, which can often be avoided by
|
||||||
|
using one of the other data object
|
||||||
|
|
||||||
@deftypefun GpgmeError gpgme_data_new (@w{GpgmeData *@var{dh}})
|
@deftypefun GpgmeError gpgme_data_new (@w{GpgmeData *@var{dh}})
|
||||||
The function @code{gpgme_data_new} creates a new @code{GpgmeData}
|
The function @code{gpgme_data_new} creates a new @code{GpgmeData}
|
||||||
object and returns a handle for it in @var{dh}. The data object is
|
object and returns a handle for it in @var{dh}. The data object is
|
||||||
initially empty.
|
memory based and initially empty.
|
||||||
|
|
||||||
The function returns @code{GPGME_No_Error} if the data object was
|
The function returns @code{GPGME_No_Error} if the data object was
|
||||||
successfully created, @code{GPGME_Invalid_Value} if @var{dh} is not a
|
successfully created, @code{GPGME_Invalid_Value} if @var{dh} is not a
|
||||||
@ -933,6 +949,138 @@ exactly one of @var{filename} and @var{fp} is not a valid pointer,
|
|||||||
@code{GPGME_Out_Of_Core} if not enough memory is available.
|
@code{GPGME_Out_Of_Core} if not enough memory is available.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
|
||||||
|
@node File Based Data Buffers
|
||||||
|
@subsection File Based Data Buffers
|
||||||
|
|
||||||
|
File based data objects operate directly on file descriptors or
|
||||||
|
streams. Only a small amount of data is stored in core at any time,
|
||||||
|
so the size of the data objects is not limited by @acronym{GPGME}.
|
||||||
|
|
||||||
|
@deftypefun GpgmeError gpgme_data_new_from_fd (@w{GpgmeData *@var{dh}}, @w{int @var{fd}})
|
||||||
|
The function @code{gpgme_data_new_from_fd} creates a new
|
||||||
|
@code{GpgmeData} object and uses the file descriptor @var{fd} to read
|
||||||
|
from (if used as an input data object) and write to (if used as an
|
||||||
|
output data object).
|
||||||
|
|
||||||
|
When using the data object as an input buffer, the function might read
|
||||||
|
a bit more from the file descriptor than is actually needed by the
|
||||||
|
crypto engine in the desired operation because of internal buffering.
|
||||||
|
|
||||||
|
The function returns @code{GPGME_No_Error} if the data object was
|
||||||
|
successfully created, and @code{GPGME_Out_Of_Core} if not enough
|
||||||
|
memory is available.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun GpgmeError gpgme_data_new_from_stream (@w{GpgmeData *@var{dh}}, @w{FILE *@var{stream}})
|
||||||
|
The function @code{gpgme_data_new_from_stream} creates a new
|
||||||
|
@code{GpgmeData} object and uses the I/O stream @var{stream} to read
|
||||||
|
from (if used as an input data object) and write to (if used as an
|
||||||
|
output data object).
|
||||||
|
|
||||||
|
When using the data object as an input buffer, the function might read
|
||||||
|
a bit more from the stream than is actually needed by the crypto
|
||||||
|
engine in the desired operation because of internal buffering.
|
||||||
|
|
||||||
|
The function returns @code{GPGME_No_Error} if the data object was
|
||||||
|
successfully created, and @code{GPGME_Out_Of_Core} if not enough
|
||||||
|
memory is available.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
|
||||||
|
@node Callback Based Data Buffers
|
||||||
|
@subsection Callback Based Data Buffers
|
||||||
|
|
||||||
|
If neither memory nor file based data objects are a good fit for your
|
||||||
|
application, you can implement the functions a data object provides
|
||||||
|
yourself and create a data object from these callback functions.
|
||||||
|
|
||||||
|
@deftp {Data type} {ssize_t (*GpgmeDataReadCb) (@w{void *@var{handle}}, @w{void @var{*buffer}}, @w{size_t @var{size}})}
|
||||||
|
@tindex GpgmeDataReadCb
|
||||||
|
The @code{GpgmeDataReadCb} type is the type of functions which
|
||||||
|
@acronym{GPGME} calls if it wants to read data from a user-implemented
|
||||||
|
data object. The function should read up to @var{size} bytes from the
|
||||||
|
current read position into the space starting at @var{buffer}. The
|
||||||
|
@var{handle} is provided by the user at data object creation time.
|
||||||
|
|
||||||
|
The function should return the number of bytes read, 0 on EOF, and -1
|
||||||
|
on error. If an error occurs, @var{errno} should be set to describe
|
||||||
|
the type of the error.
|
||||||
|
@end deftp
|
||||||
|
|
||||||
|
@deftp {Data type} {ssize_t (*GpgmeDataWriteCb) (@w{void *@var{handle}}, @w{const void @var{*buffer}}, @w{size_t @var{size}})}
|
||||||
|
@tindex GpgmeDataWriteCb
|
||||||
|
The @code{GpgmeDataWriteCb} type is the type of functions which
|
||||||
|
@acronym{GPGME} calls if it wants to write data to a user-implemented
|
||||||
|
data object. The function should write up to @var{size} bytes to the
|
||||||
|
current write position from the space starting at @var{buffer}. The
|
||||||
|
@var{handle} is provided by the user at data object creation time.
|
||||||
|
|
||||||
|
The function should return the number of bytes written, and -1 on
|
||||||
|
error. If an error occurs, @var{errno} should be set to describe the
|
||||||
|
type of the error.
|
||||||
|
@end deftp
|
||||||
|
|
||||||
|
@deftp {Data type} {off_t (*GpgmeDataSeekCb) (@w{void *@var{handle}}, @w{off_t @var{offset}}, @w{int @var{whence}})}
|
||||||
|
@tindex GpgmeDataSeekCb
|
||||||
|
The @code{GpgmeDataSeekCb} type is the type of functions which
|
||||||
|
@acronym{GPGME} calls if it wants to change the current read/write
|
||||||
|
position in a user-implemented data object, just like the @code{lseek}
|
||||||
|
function.
|
||||||
|
|
||||||
|
The function should return the new read/write position, and -1 on
|
||||||
|
error. If an error occurs, @var{errno} should be set to describe the
|
||||||
|
type of the error.
|
||||||
|
@end deftp
|
||||||
|
|
||||||
|
@deftp {Data type} {void (*GpgmeDataReleaseCb) (@w{void *@var{handle}})
|
||||||
|
@tindex GpgmeDataReleaseCb
|
||||||
|
The @code{GpgmeDataReleaseCb} type is the type of functions which
|
||||||
|
@acronym{GPGME} calls if it wants to destroy a user-implemented data
|
||||||
|
object. The @var{handle} is provided by the user at data object
|
||||||
|
creation time.
|
||||||
|
@end deftp
|
||||||
|
|
||||||
|
@deftp {Data type} {struct GpgmeDataCbs}
|
||||||
|
This structure is used to store the data callback interface functions
|
||||||
|
described above. It has the following members:
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item GpgmeDataReadCb read
|
||||||
|
This is the function called by @acronym{GPGME} to read data from the
|
||||||
|
data object. It is only required for input data object.
|
||||||
|
|
||||||
|
@item GpgmeDataReadCb write
|
||||||
|
This is the function called by @acronym{GPGME} to write data to the
|
||||||
|
data object. It is only required for output data object.
|
||||||
|
|
||||||
|
@item GpgmeDataSeekCb seek
|
||||||
|
This is the function called by @acronym{GPGME} to change the current
|
||||||
|
read/write pointer in the data object (if available). It is optional.
|
||||||
|
|
||||||
|
@item GpgmeDataReleaseCb release
|
||||||
|
This is the function called by @acronym{GPGME} to release a data
|
||||||
|
object. It is optional.
|
||||||
|
@end table
|
||||||
|
@end deftp
|
||||||
|
|
||||||
|
@deftypefun GpgmeError gpgme_data_new_from_cbs (@w{GpgmeData *@var{dh}}, @w{struct GpgmeDataCbs *@var{cbs}}, @w{void *@var{handle}})
|
||||||
|
The function @code{gpgme_data_new_from_cbs} creates a new
|
||||||
|
@code{GpgmeData} object and uses the user-provided callback functions
|
||||||
|
to operate on the data object.
|
||||||
|
|
||||||
|
The handle @var{handle} is passed as first argument to the callback
|
||||||
|
functions. This can be used to identify this data object.
|
||||||
|
|
||||||
|
The function returns @code{GPGME_No_Error} if the data object was
|
||||||
|
successfully created, and @code{GPGME_Out_Of_Core} if not enough
|
||||||
|
memory is available.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
The following interface is deprecated and only provided for backward
|
||||||
|
compatibility. Don't use it. It will be removed in a future version
|
||||||
|
of @acronym{GPGME}.
|
||||||
|
|
||||||
@deftypefun GpgmeError gpgme_data_new_with_read_cb (@w{GpgmeData *@var{dh}}, @w{int (*@var{readfunc})} (@w{void *@var{hook}}, @w{char *@var{buffer}}, @w{size_t @var{count}}, @w{size_t *@var{nread}}), @w{void *@var{hook_value}})
|
@deftypefun GpgmeError gpgme_data_new_with_read_cb (@w{GpgmeData *@var{dh}}, @w{int (*@var{readfunc})} (@w{void *@var{hook}}, @w{char *@var{buffer}}, @w{size_t @var{count}}, @w{size_t *@var{nread}}), @w{void *@var{hook_value}})
|
||||||
The function @code{gpgme_data_new_with_read_cb} creates a new
|
The function @code{gpgme_data_new_with_read_cb} creates a new
|
||||||
@code{GpgmeData} object and uses the callback function @var{readfunc}
|
@code{GpgmeData} object and uses the callback function @var{readfunc}
|
||||||
@ -985,80 +1133,75 @@ be returned to the user, the function will return @code{NULL}.
|
|||||||
@section Manipulating Data Buffers
|
@section Manipulating Data Buffers
|
||||||
@cindex data buffere, manipulation
|
@cindex data buffere, manipulation
|
||||||
|
|
||||||
@deftypefun GpgmeError gpgme_data_read (@w{GpgmeData @var{dh}}, @w{void *@var{buffer}}, @w{size_t @var{length}}, @w{size_t *@var{nread}})
|
@deftypefun ssize_t gpgme_data_read (@w{GpgmeData @var{dh}}, @w{void *@var{buffer}}, @w{size_t @var{length}})
|
||||||
The function @code{gpgme_data_read} reads up to @var{length} bytes
|
The function @code{gpgme_data_read} reads up to @var{length} bytes
|
||||||
from the data object with the handle @var{dh} into the space starting
|
from the data object with the handle @var{dh} into the space starting
|
||||||
at @var{buffer}. The actual amount read is returned in @var{nread}.
|
at @var{buffer}.
|
||||||
|
|
||||||
If @var{buffer} is @code{NULL}, the function returns the amount of
|
If no error occurs, the actual amount read is returned. If the end of
|
||||||
bytes available in @var{nread} without changing the read pointer.
|
the data object is reached, the function returns @code{GPGME_EOF} and
|
||||||
This is not supported by all types of data objects. If this function
|
sets @var{nread} to zero.
|
||||||
is not supported, @code{GPGME_Invalid_Type} is returned.
|
|
||||||
|
|
||||||
If the end of the data object is reached, the function returns
|
In all other cases, the function returns -1 and sets @var{errno}.
|
||||||
@code{GPGME_EOF} and sets @var{nread} to zero.
|
|
||||||
|
|
||||||
In all other cases, the function returns @code{GPGME_No_Error} if the
|
|
||||||
operation was successfully performed and @code{GPGME_Invalid_Value} if
|
|
||||||
@var{dh} is not a valid pointer.
|
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@deftypefun GpgmeError gpgme_data_rewind (@w{GpgmeData @var{dh}})
|
@deftypefun ssize_t gpgme_data_write (@w{GpgmeData @var{dh}}, @w{const void *@var{buffer}}, @w{size_t @var{size}})
|
||||||
The function @code{gpgme_data_rewind} resets the read pointer of the
|
The function @code{gpgme_data_write} writes up to @var{size} bytes
|
||||||
data object with the handle @var{dh}, so that a subsequent
|
|
||||||
@code{gpgme_data_read} operation starts at the beginning of the data.
|
|
||||||
|
|
||||||
The function returns @code{GPGME_No_Error} if the operation was
|
|
||||||
successfully performed, @code{GPGME_Not_Implemented} if the operation
|
|
||||||
is not supported (for example, by a read callback function supplied by
|
|
||||||
the user) and @code{GPGME_Invalid_Value} if @var{dh} is not a valid
|
|
||||||
pointer.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@deftypefun GpgmeError gpgme_data_write (@w{GpgmeData @var{dh}}, @w{const void *@var{buffer}}, @w{size_t @var{length}})
|
|
||||||
The function @code{gpgme_data_write} writes @var{length} bytes
|
|
||||||
starting from @var{buffer} into the data object with the handle
|
starting from @var{buffer} into the data object with the handle
|
||||||
@var{dh} at the current write position.
|
@var{dh} at the current write position.
|
||||||
|
|
||||||
The function returns @code{GPGME_No_Error} if the operation was
|
The function returns the number of bytes actually written, or -1 if an
|
||||||
successfully performed, @code{GPGME_Invalid_Value} if @var{dh} or
|
error occurs. If an error occurs, @var{errno} is set.
|
||||||
@var{buffer} is not a valid pointer, @code{GPGME_Invalid_Type} or
|
|
||||||
@code{GPGME_Invalid_Mode} if the data object type does not support
|
|
||||||
writing, and @code{GPGME_Out_Of_Core} if not enough memory is
|
|
||||||
available.
|
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@c
|
/* Set the current position from where the next read or write starts
|
||||||
@c GpgmeDataType
|
in the data object with the handle DH to OFFSET, relativ to
|
||||||
@c
|
WHENCE. */
|
||||||
@deftp {Data type} {enum GpgmeDataType}
|
off_t gpgme_data_seek (GpgmeData dh, off_t offset, int whence);
|
||||||
@tindex GpgmeDataType
|
|
||||||
The @code{GpgmeDataType} type specifies the type of a @code{GpgmeData} object.
|
@deftypefun off_t gpgme_data_seek (@w{GpgmeData @var{dh}}, @w{off_t *@var{offset}}, @w{int @var{whence}})
|
||||||
The following data types are available:
|
The function @code{gpgme_data_seek} changes the current read/write
|
||||||
|
position.
|
||||||
|
|
||||||
|
The @var{whence} argument specifies how the @var{offset} should be
|
||||||
|
interpreted. It must be one of the following symbolic constants:
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item GPGME_DATA_TYPE_NONE
|
@item SEEK_SET
|
||||||
This specifies that the type is not yet determined.
|
Specifies that @var{whence} is a count of characters from the
|
||||||
|
beginning of the data object.
|
||||||
|
|
||||||
@item GPGME_DATA_TYPE_MEM
|
@item SEEK_CUR
|
||||||
This specifies that the data is stored in memory.
|
Specifies that @var{whence} is a count of characters from the current
|
||||||
|
file position. This count may be positive or negative.
|
||||||
|
|
||||||
@item GPGME_DATA_TYPE_FD
|
@item SEEK_END
|
||||||
This type is not implemented.
|
Specifies that @var{whence} is a count of characters from the end of
|
||||||
|
the data object. A negative count specifies a position within the
|
||||||
@item GPGME_DATA_TYPE_FILE
|
current extent of the data object; a positive count specifies a
|
||||||
This type is not implemented.
|
position past the current end. If you set the position past the
|
||||||
|
current end, and actually write data, you will extend the data object
|
||||||
@item GPGME_DATA_TYPE_CB
|
with zeros up to that position.
|
||||||
This type specifies that the data is provided by a callback function
|
|
||||||
implemented by the user.
|
|
||||||
@end table
|
@end table
|
||||||
@end deftp
|
|
||||||
|
|
||||||
@deftypefun GpgmeDataType gpgme_data_get_type (@w{GpgmeData @var{dh}})
|
If successful, the function returns the resulting file position,
|
||||||
The function @code{gpgme_data_get_type} returns the type of the data
|
measured in bytes from the beginning of the data object. You can use
|
||||||
object with the handle @var{dh}. If @var{dh} is not a valid pointer,
|
this feature together with @code{SEEK_CUR} to read the current
|
||||||
@code{GPGME_DATA_TYPE_NONE} is returned.
|
read/write position.
|
||||||
|
|
||||||
|
If the function fails, -1 is returned and @var{errno} is set.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
The following function is deprecated and should not be used. It will
|
||||||
|
be removed in a future version of @acronym{GPGME}.
|
||||||
|
|
||||||
|
@deftypefun GpgmeError gpgme_data_rewind (@w{GpgmeData @var{dh}})
|
||||||
|
The function @code{gpgme_data_rewind} is equivalent to:
|
||||||
|
|
||||||
|
@example
|
||||||
|
return (gpgme_data_seek (dh, 0, SEEK_SET) == -1)
|
||||||
|
? mk_error (File_Error) : 0;
|
||||||
|
@end example
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@c
|
@c
|
||||||
|
@ -1,3 +1,19 @@
|
|||||||
|
2002-12-06 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
|
* data.h (gpgme_data_release_cb): Change return type to void.
|
||||||
|
(gpgme_data_read_cb): Change return type to ssize_t.
|
||||||
|
* data.c (gpgme_data_read): Likewise.
|
||||||
|
* data-stream.c (stream_read): Likewise.
|
||||||
|
* data-fd.c (fd_read): Likewise.
|
||||||
|
* data-mem.c (mem_read): Likewise.
|
||||||
|
(mem_release): Change return type to void.
|
||||||
|
* data-user.c (user_read): Change return type to ssize_t.
|
||||||
|
(user_release): Change return type to void.
|
||||||
|
* data-compat.c (old_user_read): Change return type to ssize_t.
|
||||||
|
* gpgme.h (GpgmeDataReadCb): Likewise.
|
||||||
|
(gpgme_data_read): Likewise.
|
||||||
|
(GpgmeDataSeekCb): Change return type to off_t.
|
||||||
|
|
||||||
2002-12-04 Marcus Brinkmann <marcus@g10code.de>
|
2002-12-04 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* gpgme.h: Add prototype for gpgme_get_key.
|
* gpgme.h: Add prototype for gpgme_get_key.
|
||||||
|
@ -1,22 +1,21 @@
|
|||||||
/* data-mem.c - A memory based data object.
|
/* data-compat.c - Compatibility interfaces for data objects.
|
||||||
* Copyright (C) 2002 g10 Code GmbH
|
Copyright (C) 2002 g10 Code GmbH
|
||||||
*
|
|
||||||
* This file is part of GPGME.
|
This file is part of GPGME.
|
||||||
*
|
|
||||||
* GPGME is free software; you can redistribute it and/or modify
|
GPGME is free software; you can redistribute it and/or modify it
|
||||||
* it under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
(at your option) any later version.
|
||||||
*
|
|
||||||
* GPGME is distributed in the hope that it will be useful,
|
GPGME is distributed in the hope that it will be useful, but
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* GNU General Public License for more details.
|
General Public License for more details.
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
along with GPGME; if not, write to the Free Software Foundation,
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
*/
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
#if HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -134,7 +133,7 @@ gpgme_error_to_errno (GpgmeError err)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static ssize_t
|
||||||
old_user_read (GpgmeData dh, void *buffer, size_t size)
|
old_user_read (GpgmeData dh, void *buffer, size_t size)
|
||||||
{
|
{
|
||||||
size_t amt;
|
size_t amt;
|
||||||
|
@ -1,22 +1,21 @@
|
|||||||
/* data-fd.c - A file descripor based data object.
|
/* data-fd.c - A file descripor based data object.
|
||||||
* Copyright (C) 2002 g10 Code GmbH
|
Copyright (C) 2002 g10 Code GmbH
|
||||||
*
|
|
||||||
* This file is part of GPGME.
|
This file is part of GPGME.
|
||||||
*
|
|
||||||
* GPGME is free software; you can redistribute it and/or modify
|
GPGME is free software; you can redistribute it and/or modify it
|
||||||
* it under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
(at your option) any later version.
|
||||||
*
|
|
||||||
* GPGME is distributed in the hope that it will be useful,
|
GPGME is distributed in the hope that it will be useful, but
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* GNU General Public License for more details.
|
General Public License for more details.
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
along with GPGME; if not, write to the Free Software Foundation,
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
*/
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
#if HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -28,7 +27,7 @@
|
|||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
|
||||||
|
|
||||||
static int
|
static ssize_t
|
||||||
fd_read (GpgmeData dh, void *buffer, size_t size)
|
fd_read (GpgmeData dh, void *buffer, size_t size)
|
||||||
{
|
{
|
||||||
return read (dh->data.fd, buffer, size);
|
return read (dh->data.fd, buffer, size);
|
||||||
|
@ -1,22 +1,21 @@
|
|||||||
/* data-mem.c - A memory based data object.
|
/* data-mem.c - A memory based data object.
|
||||||
* Copyright (C) 2002 g10 Code GmbH
|
Copyright (C) 2002 g10 Code GmbH
|
||||||
*
|
|
||||||
* This file is part of GPGME.
|
This file is part of GPGME.
|
||||||
*
|
|
||||||
* GPGME is free software; you can redistribute it and/or modify
|
GPGME is free software; you can redistribute it and/or modify it
|
||||||
* it under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
(at your option) any later version.
|
||||||
*
|
|
||||||
* GPGME is distributed in the hope that it will be useful,
|
GPGME is distributed in the hope that it will be useful, but
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* GNU General Public License for more details.
|
General Public License for more details.
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
along with GPGME; if not, write to the Free Software Foundation,
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
*/
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
#if HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -31,7 +30,7 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
|
|
||||||
static int
|
static ssize_t
|
||||||
mem_read (GpgmeData dh, void *buffer, size_t size)
|
mem_read (GpgmeData dh, void *buffer, size_t size)
|
||||||
{
|
{
|
||||||
size_t amt = dh->data.mem.length - dh->data.mem.offset;
|
size_t amt = dh->data.mem.length - dh->data.mem.offset;
|
||||||
@ -141,7 +140,7 @@ mem_seek (GpgmeData dh, off_t offset, int whence)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static void
|
||||||
mem_release (GpgmeData dh)
|
mem_release (GpgmeData dh)
|
||||||
{
|
{
|
||||||
if (dh->data.mem.buffer)
|
if (dh->data.mem.buffer)
|
||||||
|
@ -1,22 +1,21 @@
|
|||||||
/* data-stream.c - A memory based data object.
|
/* data-stream.c - A stream based data object.
|
||||||
* Copyright (C) 2002 g10 Code GmbH
|
Copyright (C) 2002 g10 Code GmbH
|
||||||
*
|
|
||||||
* This file is part of GPGME.
|
This file is part of GPGME.
|
||||||
*
|
|
||||||
* GPGME is free software; you can redistribute it and/or modify
|
GPGME is free software; you can redistribute it and/or modify it
|
||||||
* it under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
(at your option) any later version.
|
||||||
*
|
|
||||||
* GPGME is distributed in the hope that it will be useful,
|
GPGME is distributed in the hope that it will be useful, but
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* GNU General Public License for more details.
|
General Public License for more details.
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
along with GPGME; if not, write to the Free Software Foundation,
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
*/
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
#if HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -28,7 +27,7 @@
|
|||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
|
||||||
|
|
||||||
static int
|
static ssize_t
|
||||||
stream_read (GpgmeData dh, void *buffer, size_t size)
|
stream_read (GpgmeData dh, void *buffer, size_t size)
|
||||||
{
|
{
|
||||||
size_t amt = fread (buffer, 1, size, dh->data.stream);
|
size_t amt = fread (buffer, 1, size, dh->data.stream);
|
||||||
|
@ -1,22 +1,21 @@
|
|||||||
/* data-user.c - A user callback based data object.
|
/* data-user.c - A user callback based data object.
|
||||||
* Copyright (C) 2002 g10 Code GmbH
|
Copyright (C) 2002 g10 Code GmbH
|
||||||
*
|
|
||||||
* This file is part of GPGME.
|
This file is part of GPGME.
|
||||||
*
|
|
||||||
* GPGME is free software; you can redistribute it and/or modify
|
GPGME is free software; you can redistribute it and/or modify it
|
||||||
* it under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
(at your option) any later version.
|
||||||
*
|
|
||||||
* GPGME is distributed in the hope that it will be useful,
|
GPGME is distributed in the hope that it will be useful, but
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* GNU General Public License for more details.
|
General Public License for more details.
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
along with GPGME; if not, write to the Free Software Foundation,
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
*/
|
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
#if HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -27,7 +26,7 @@
|
|||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
|
||||||
|
|
||||||
static int
|
static ssize_t
|
||||||
user_read (GpgmeData dh, void *buffer, size_t size)
|
user_read (GpgmeData dh, void *buffer, size_t size)
|
||||||
{
|
{
|
||||||
return (*dh->data.user.cbs->read) (dh->data.user.handle, buffer, size);
|
return (*dh->data.user.cbs->read) (dh->data.user.handle, buffer, size);
|
||||||
@ -48,7 +47,7 @@ user_seek (GpgmeData dh, off_t offset, int whence)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static void
|
||||||
user_release (GpgmeData dh)
|
user_release (GpgmeData dh)
|
||||||
{
|
{
|
||||||
(*dh->data.user.cbs->release) (dh->data.user.handle);
|
(*dh->data.user.cbs->release) (dh->data.user.handle);
|
||||||
|
@ -63,7 +63,7 @@ _gpgme_data_release (GpgmeData dh)
|
|||||||
/* Read up to SIZE bytes into buffer BUFFER from the data object with
|
/* Read up to SIZE bytes into buffer BUFFER from the data object with
|
||||||
the handle DH. Return the number of characters read, 0 on EOF and
|
the handle DH. Return the number of characters read, 0 on EOF and
|
||||||
-1 on error. If an error occurs, errno is set. */
|
-1 on error. If an error occurs, errno is set. */
|
||||||
int
|
ssize_t
|
||||||
gpgme_data_read (GpgmeData dh, void *buffer, size_t size)
|
gpgme_data_read (GpgmeData dh, void *buffer, size_t size)
|
||||||
{
|
{
|
||||||
if (!dh)
|
if (!dh)
|
||||||
|
40
gpgme/data.h
40
gpgme/data.h
@ -1,22 +1,21 @@
|
|||||||
/* data.h - Internal data object abstraction interface.
|
/* data.h - Internal data object abstraction interface.
|
||||||
* Copyright (C) 2002 g10 Code GmbH
|
Copyright (C) 2002 g10 Code GmbH
|
||||||
*
|
|
||||||
* This file is part of GPGME.
|
This file is part of GPGME.
|
||||||
*
|
|
||||||
* GPGME is free software; you can redistribute it and/or modify
|
GPGME is free software; you can redistribute it and/or modify it
|
||||||
* it under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
* (at your option) any later version.
|
(at your option) any later version.
|
||||||
*
|
|
||||||
* GPGME is distributed in the hope that it will be useful,
|
GPGME is distributed in the hope that it will be useful, but
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* GNU General Public License for more details.
|
General Public License for more details.
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
along with GPGME; if not, write to the Free Software Foundation,
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef DATA_H
|
#ifndef DATA_H
|
||||||
#define DATA_H
|
#define DATA_H
|
||||||
@ -34,7 +33,8 @@
|
|||||||
/* Read up to SIZE bytes into buffer BUFFER from the data object with
|
/* Read up to SIZE bytes into buffer BUFFER from the data object with
|
||||||
the handle DH. Return the number of characters read, 0 on EOF and
|
the handle DH. Return the number of characters read, 0 on EOF and
|
||||||
-1 on error. If an error occurs, errno is set. */
|
-1 on error. If an error occurs, errno is set. */
|
||||||
typedef int (*gpgme_data_read_cb) (GpgmeData dh, void *buffer, size_t size);
|
typedef ssize_t (*gpgme_data_read_cb) (GpgmeData dh, void *buffer,
|
||||||
|
size_t size);
|
||||||
|
|
||||||
/* Write up to SIZE bytes from buffer BUFFER to the data object with
|
/* Write up to SIZE bytes from buffer BUFFER to the data object with
|
||||||
the handle DH. Return the number of characters written, or -1 on
|
the handle DH. Return the number of characters written, or -1 on
|
||||||
@ -48,7 +48,7 @@ typedef ssize_t (*gpgme_data_write_cb) (GpgmeData dh, const void *buffer,
|
|||||||
typedef off_t (*gpgme_data_seek_cb) (GpgmeData dh, off_t offset, int whence);
|
typedef off_t (*gpgme_data_seek_cb) (GpgmeData dh, off_t offset, int whence);
|
||||||
|
|
||||||
/* Release the data object with the handle DH. */
|
/* Release the data object with the handle DH. */
|
||||||
typedef int (*gpgme_data_release_cb) (GpgmeData dh);
|
typedef void (*gpgme_data_release_cb) (GpgmeData dh);
|
||||||
|
|
||||||
struct gpgme_data_cbs
|
struct gpgme_data_cbs
|
||||||
{
|
{
|
||||||
|
@ -511,7 +511,7 @@ GpgmeError gpgme_recipients_enum_close (const GpgmeRecipients rset,
|
|||||||
/* Read up to SIZE bytes into buffer BUFFER from the data object with
|
/* Read up to SIZE bytes into buffer BUFFER from the data object with
|
||||||
the handle HANDLE. Return the number of characters read, 0 on EOF
|
the handle HANDLE. Return the number of characters read, 0 on EOF
|
||||||
and -1 on error. If an error occurs, errno is set. */
|
and -1 on error. If an error occurs, errno is set. */
|
||||||
typedef int (*GpgmeDataReadCb) (void *handle, void *buffer, size_t size);
|
typedef ssize_t (*GpgmeDataReadCb) (void *handle, void *buffer, size_t size);
|
||||||
|
|
||||||
/* Write up to SIZE bytes from buffer BUFFER to the data object with
|
/* Write up to SIZE bytes from buffer BUFFER to the data object with
|
||||||
the handle HANDLE. Return the number of characters written, or -1
|
the handle HANDLE. Return the number of characters written, or -1
|
||||||
@ -522,7 +522,7 @@ typedef ssize_t (*GpgmeDataWriteCb) (void *handle, const void *buffer,
|
|||||||
/* Set the current position from where the next read or write starts
|
/* Set the current position from where the next read or write starts
|
||||||
in the data object with the handle HANDLE to OFFSET, relativ to
|
in the data object with the handle HANDLE to OFFSET, relativ to
|
||||||
WHENCE. */
|
WHENCE. */
|
||||||
typedef int (*GpgmeDataSeekCb) (void *handle, off_t offset, int whence);
|
typedef off_t (*GpgmeDataSeekCb) (void *handle, off_t offset, int whence);
|
||||||
|
|
||||||
/* Close the data object with the handle DL. */
|
/* Close the data object with the handle DL. */
|
||||||
typedef void (*GpgmeDataReleaseCb) (void *handle);
|
typedef void (*GpgmeDataReleaseCb) (void *handle);
|
||||||
@ -538,7 +538,7 @@ struct GpgmeDataCbs
|
|||||||
/* Read up to SIZE bytes into buffer BUFFER from the data object with
|
/* Read up to SIZE bytes into buffer BUFFER from the data object with
|
||||||
the handle DH. Return the number of characters read, 0 on EOF and
|
the handle DH. Return the number of characters read, 0 on EOF and
|
||||||
-1 on error. If an error occurs, errno is set. */
|
-1 on error. If an error occurs, errno is set. */
|
||||||
int gpgme_data_read (GpgmeData dh, void *buffer, size_t size);
|
ssize_t gpgme_data_read (GpgmeData dh, void *buffer, size_t size);
|
||||||
|
|
||||||
/* Write up to SIZE bytes from buffer BUFFER to the data object with
|
/* Write up to SIZE bytes from buffer BUFFER to the data object with
|
||||||
the handle DH. Return the number of characters written, or -1 on
|
the handle DH. Return the number of characters written, or -1 on
|
||||||
|
Loading…
Reference in New Issue
Block a user