![]() |
![]() |
![]() |
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
);
|
|
|
|
|
|
|
|
|
|
|
|
Returns : |
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.
|