| GnuTLS API Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
#define GNUTLS_EXTRA_VERSION enum gnutls_ia_apptype_t; int (*gnutls_ia_avp_func) (gnutls_session_t session,void *ptr,const char *last,size_t lastlen,char **next,size_t *nextlen); void gnutls_ia_free_client_credentials (); int gnutls_ia_verify_endphase (gnutls_session_t session,const char *checksum); ssize_t gnutls_ia_send (gnutls_session_t session,const char *data,size_t sizeofdata); ssize_t gnutls_ia_recv (gnutls_session_t session,char *data,size_t sizeofdata); int gnutls_ia_generate_challenge (gnutls_session_t session,size_t buffer_size); int gnutls_register_md5_handler (void); const char * gnutls_extra_check_version (const char *req_version);
typedef enum {
GNUTLS_IA_APPLICATION_PAYLOAD = 0,
GNUTLS_IA_INTERMEDIATE_PHASE_FINISHED = 1,
GNUTLS_IA_FINAL_PHASE_FINISHED = 2
} gnutls_ia_apptype_t;
Enumeration of different certificate encoding formats.
int (*gnutls_ia_avp_func) (gnutls_session_t session,void *ptr,const char *last,size_t lastlen,char **next,size_t *nextlen);
void gnutls_ia_free_client_credentials ();
This structure is complex enough to manipulate directly thus this helper function is provided in order to free (deallocate) it.
|
is a gnutls_ia_client_credentials_t structure. |
int gnutls_ia_verify_endphase (gnutls_session_t session,const char *checksum);
Verify TLS/IA end phase checksum data. If verification fails, the
GNUTLS_A_INNER_APPLICATION_VERIFICATION alert is sent to the other
sie.
This function is called when gnutls_ia_recv() return
GNUTLS_E_WARNING_IA_IPHF_RECEIVED or
GNUTLS_E_WARNING_IA_FPHF_RECEIVED.
|
is a gnutls_session_t structure. |
|
12-byte checksum data, received from gnutls_ia_recv(). |
Returns : |
Return 0 on successful verification, or an error
code. If the checksum verification of the end phase message fails,
GNUTLS_E_IA_VERIFY_FAILED is returned. |
ssize_t gnutls_ia_send (gnutls_session_t session,const char *data,size_t sizeofdata);
Send TLS/IA application payload data. This function has the
similar semantics with send(). The only difference is that it
accepts a GnuTLS session, and uses different error codes.
The TLS/IA protocol is synchronous, so you cannot send more than one packet at a time. The client always send the first packet.
To finish an application phase in the server, use
gnutls_ia_endphase_send(). The client cannot end an application
phase unilaterally; rather, a client is required to respond with an
endphase of its own if gnutls_ia_recv indicates that the server has
sent one.
If the EINTR is returned by the internal push function (the default
is send()} then GNUTLS_E_INTERRUPTED will be returned. If
GNUTLS_E_INTERRUPTED or GNUTLS_E_AGAIN is returned, you must call
this function again, with the same parameters; alternatively you
could provide a NULL pointer for data, and 0 for size.
|
is a gnutls_session_t structure. |
|
contains the data to send |
|
is the length of the data |
Returns : |
The number of bytes sent, or a negative error code. |
ssize_t gnutls_ia_recv (gnutls_session_t session,char *data,size_t sizeofdata);
Receive TLS/IA data. This function has the similar semantics with
recv(). The only difference is that it accepts a GnuTLS session,
and uses different error codes.
If the server attempt to finish an application phase, this function
will return GNUTLS_E_WARNING_IA_IPHF_RECEIVED or
GNUTLS_E_WARNING_IA_FPHF_RECEIVED. The caller should then invoke
gnutls_ia_verify_endphase(), and if it runs the client side, also
send an endphase message of its own using gnutls_ia_endphase_send.
If EINTR is returned by the internal push function (the default is
code{recv()}) then GNUTLS_E_INTERRUPTED will be returned. If
GNUTLS_E_INTERRUPTED or GNUTLS_E_AGAIN is returned, you must call
this function again, with the same parameters; alternatively you
could provide a NULL pointer for data, and 0 for size.
|
is a gnutls_session_t structure. |
|
the buffer that the data will be read into, must hold >= 12 bytes. |
|
the number of requested bytes, must be >= 12. |
Returns : |
The number of bytes received. A negative error code is
returned in case of an error. The
GNUTLS_E_WARNING_IA_IPHF_RECEIVED and
GNUTLS_E_WARNING_IA_FPHF_RECEIVED errors are returned when an
application phase finished message has been sent by the server. |
int gnutls_ia_generate_challenge (gnutls_session_t session,size_t buffer_size);
Generate an application challenge that the client cannot control or predict, based on the TLS/IA inner secret.
|
is a gnutls_session_t structure. |
|
size of output buffer. |
Returns : |
Returns 0 on success, or an negative error code. |
int gnutls_register_md5_handler (void);
Register a non-libgcrypt based MD5 and HMAC-MD5 handler. This is useful if you run Libgcrypt in FIPS-mode. Normally TLS requires use of MD5, so without this you cannot use GnuTLS with libgcrypt in FIPS mode.
Returns : |
GNUTLS_E_SUCCESS on success, otherwise an error. |
Since 2.6.0
const char * gnutls_extra_check_version (const char *req_version);
Check GnuTLS Extra Library version.
See GNUTLS_EXTRA_VERSION for a suitable req_version string.
|
version string to compare with, or NULL. |
Returns : |
Check that the version of the library is at
minimum the one given as a string in req_version and return the
actual version string of the library; return NULL if the
condition is not met. If NULL is passed to this function no
check is done and only the version string is returned. |