CONTENT
  • CHANGES
Szukaj
counter

#top libsockgnutls


Narzędzia Sieciowe >> libnet - library network protocols >> libsockgnutls - library network connections over Transport Layer Security

RFC 2246 - The TLS Protocol Version 1.0
RFC 3943 - Transport Layer Security (TLS) Protocol Compression Using Lempel-Ziv-Stac (LZS)
RFC 4346 - The Transport Layer Security (TLS) Protocol Version 1.1
RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2
RFC 5746 - Transport Layer Security (TLS) Renegotiation Indication Extension
RFC 7568 - Deprecating Secure Sockets Layer Version 3.0

#top Predefined Constants


#top GTLSOPT_***


Definicja stałych GTLSOPT_*** znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Definicja stałych GTLSOPT_*** jest następująca:
#define GTLSOPT_OPTIONSNULL       0x00
#define GTLSOPT_X509CAFILE        0x01
#define GTLSOPT_X509CRLFILE       0x02
#define GTLSOPT_X509CRTFILE       0x04
#define GTLSOPT_X509KEYFILE       0x08
#define GTLSOPT_PROTOTYPE         0x0F
#define GTLSOPT_STARTTLSMODE      0x10
#define GTLSOPT_DISABLEEXTENSIONS 0x11
#define GTLSOPT_DISABLEPRIORITIES 0x12
#define GTLSOPT_FINGERPRINT       0x14
#define GTLSOPT_RECORD_MAX_SIZE   0x18



#top Datatypes / MACROS


#top enum gtls_proto_type


Definicja typu enum gtls_proto_type znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Definicja typu enum gtls_proto_type jest następująca:
enum gtls_proto_type {
	gtls_proto_auto,
	gtls_proto_sslv3x,
	gtls_proto_tlsv10,
	gtls_proto_tlsv11,
	gtls_proto_tlsv12,
	gtls_proto_tlsv13,
	gtls_proto_dtlsv09,
	gtls_proto_dtlsv10,
	gtls_proto_dtlsv12,
	gtls_proto_NULL
} gtls_proto_type; /* type of secure protocol to use. */



#top enum gtls_starttls_mode


Definicja typu enum gtls_starttls_mode znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Definicja typu enum gtls_starttls_mode jest następująca:
enum gtls_starttls_mode {
	gtls_starttls_server=GNUTLS_SERVER,
	gtls_starttls_client=GNUTLS_CLIENT
} gtls_starttls_mode; /* kind type of secure protocol: server or client */



#top gnutls_session_t


Definicja struktury gnutls_session_t znajduje się w pliku nagłówkowym gnutls.h.
Definicja struktury gnutls_session_t jest następująca:
typedef struct gnutls_session_int *gnutls_session_t;



#top size_t


Definicja typu size_t znajduje się w pliku nagłówkowym /usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h.
Definicja typu size_t jest następująca:
/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
#if defined (_STDDEF_H) || defined (__need_size_t)
#ifndef __size_t__  /* BeOS */
#ifndef __SIZE_T__  /* Cray Unicos/Mk */
#ifndef _SIZE_T /* in case <sys/types.h> has defined it. */
#ifndef _SYS_SIZE_T_H
#ifndef _T_SIZE_
#ifndef _T_SIZE
#ifndef __SIZE_T
#ifndef _SIZE_T_
#ifndef _BSD_SIZE_T_
#ifndef _SIZE_T_DEFINED_
#ifndef _SIZE_T_DEFINED
#ifndef _BSD_SIZE_T_DEFINED_    /* Darwin */
#ifndef _SIZE_T_DECLARED    /* FreeBSD 5 */
#ifndef ___int_size_t_h
#ifndef _GCC_SIZE_T
#ifndef _SIZET_
#ifndef __size_t
#define __size_t__  /* BeOS */
#define __SIZE_T__  /* Cray Unicos/Mk */
#define _SIZE_T
#define _SYS_SIZE_T_H
#define _T_SIZE_
#define _T_SIZE
#define __SIZE_T
#define _SIZE_T_
#define _BSD_SIZE_T_
#define _SIZE_T_DEFINED_
#define _SIZE_T_DEFINED
#define _BSD_SIZE_T_DEFINED_    /* Darwin */
#define _SIZE_T_DECLARED    /* FreeBSD 5 */
#define ___int_size_t_h
#define _GCC_SIZE_T
#define _SIZET_
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
/* __size_t is a typedef on FreeBSD 5!, must not trash it. */
#else
#define __size_t
#endif
#ifndef __SIZE_TYPE__
#define __SIZE_TYPE__ long unsigned int
#endif
#if !(defined (__GNUG__) && defined (size_t))
typedef __SIZE_TYPE__ size_t;
#ifdef __BEOS__
typedef long ssize_t;
#endif /* __BEOS__ */
#endif /* !(defined (__GNUG__) && defined (size_t)) */
#endif /* __size_t */
#endif /* _SIZET_ */
#endif /* _GCC_SIZE_T */
#endif /* ___int_size_t_h */
#endif /* _SIZE_T_DECLARED */
#endif /* _BSD_SIZE_T_DEFINED_ */
#endif /* _SIZE_T_DEFINED */
#endif /* _SIZE_T_DEFINED_ */
#endif /* _BSD_SIZE_T_ */
#endif /* _SIZE_T_ */
#endif /* __SIZE_T */
#endif /* _T_SIZE */
#endif /* _T_SIZE_ */
#endif /* _SYS_SIZE_T_H */
#endif /* _SIZE_T */
#endif /* __SIZE_T__ */
#endif /* __size_t__ */
#undef  __need_size_t
#endif /* _STDDEF_H or __need_size_t.  */



#top SOCKET


Definicja typu SOCKET znajduje się w pliku nagłówkowym netutils/libnet/libsocknet.h.
Definicja typu SOCKET jest następująca:
#if defined(__WIN32__) || defined(WIN32) || defined(_WIN32)
/*typedef u_int SOCKET;*/
/*
C:/Dev-CPP/bin/../lib/gcc/mingw32/3.4.2/../../../../include/winsock.h:32: error:
  conflicting types for 'SOCKET'
../../libinc/datatypes.h:33: error: previous declaration of 'SOCKET' was here
*/
#else
typedef int SOCKET;
#endif



#top struct gnutls_session_int


Definicja struktury struct gnutls_session_int znajduje się w pliku nagłówkowym lib/gnutls_int.h.
Definicja struktury struct gnutls_session_int jest następująca:
struct gnutls_session_int
{
  security_parameters_st security_parameters;
  cipher_specs_st cipher_specs;
  conn_stat_st connection_state;
  internals_st internals;
  gnutls_key_st key;
};



#top struct TLS_CTX_ST


Definicja struktury struct TLS_CTX_ST znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Definicja struktury struct TLS_CTX_ST jest następująca:
typedef struct TLS_CTX_ST {
	const char *x509_cafile;
	const char *x509_crlfile;
	const char *x509_crtfile;
	const char *x509_keyfile;
	int options;
	enum gtls_proto_type opt_proto_type;
	enum gtls_starttls_mode opt_starttls_mode;
	
	int tlscode;
	int trusted_crts_count;
	int trusted_crls_count;
	
	int record_max_size;
	gnutls_srp_client_credentials_t srp_cred;
	gnutls_psk_client_credentials_t psk_cred;
	gnutls_anon_client_credentials_t anon_cred;
	gnutls_certificate_credentials_t xcred;
} TLS_CTX;



#top TLS_CTX


Definicja struktury TLS_CTX znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Definicja struktury TLS_CTX jest następująca:
typedef struct TLS_CTX_ST {
[...]
} TLS_CTX;



#top Functions


#top gnutls_ctx_open


Deklaracja funkcji gnutls_ctx_open() znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_ctx_open() jest następująca:
SELECT ALL
/**
 * @name   gnutls_ctx_open()
 * @desc   gnutls_ctx_open()
 * @param  void
 * @return struct:TLS_CTX_ST *ssl_ctx
 */
struct TLS_CTX_ST *gnutls_ctx_open();

Funkcja gnutls_ctx_open()

Argumenty:
Funkcja nie przyjmuje żadnych argumentów.

Zwracana wartość:
struct TLS_CTX_ST * - wskaźnik do zaalokowanej pamięci na strukturę zawierającą niezbędne informacje do utworzenia bezpiecznego połączenia (lub NULL w przypadku wystąpienia błędu),



#top gnutls_ctx_optset


Deklaracja funkcji gnutls_ctx_optset() znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_ctx_optset() jest następująca:
SELECT ALL
/**
 * @name   gnutls_ctx_optset()
 * @desc   gnutls_ctx_optset()
 * @param  struct:TLS_CTX_ST *ssl_ctx
 * @param  const:int          optcmd
 * @param  const:void        *optval
 * @return int
 */
int gnutls_ctx_optset(struct TLS_CTX_ST *ssl_ctx, const int optcmd, const void *optval);

Funkcja gnutls_ctx_optset()

Argumenty:
struct TLS_CTX_ST *ssl_ctx -
const int optcmd -
const void *optval -

Zwracana wartość:
int -



#top gnutls_ctx_init


Deklaracja funkcji gnutls_ctx_init() znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_ctx_init() jest następująca:
SELECT ALL
/**
 * @name   gnutls_ctx_init()
 * @desc   gnutls_ctx_init()
 * @param  struct:TLS_CTX_ST *ssl_ctx
 * @return int
 */
int gnutls_ctx_init(struct TLS_CTX_ST *ssl_ctx);

Funkcja gnutls_ctx_init()

Argumenty:
struct TLS_CTX_ST *ssl_ctx -

Zwracana wartość:
int -



#top gnutls_ctx_free


Deklaracja funkcji gnutls_ctx_free() znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_ctx_free() jest następująca:
SELECT ALL
/**
 * @name   gnutls_ctx_free()
 * @desc   gnutls_ctx_free()
 * @param  struct:TLS_CTX_ST *ssl_ctx
 * @return void
 */
void gnutls_ctx_free(struct TLS_CTX_ST *ssl_ctx);

Funkcja gnutls_ctx_free()

Argumenty:
struct TLS_CTX_ST *ssl_ctx -

Zwracana wartość:
Funkcja nie zwraca żadnej wartości.



#top gnutls_starttls


Deklaracja funkcji gnutls_starttls() znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_starttls() jest następująca:
SELECT ALL
/**
 * @name   gnutls_starttls()
 * @desc   gnutls_starttls()
 * @param  const :SOCKET     *osock
 * @param  struct:TLS_CTX_ST *ssl_ctx
 * @param  const:char        *hostname
 * @return gnutls_session_t   ssl
 */
gnutls_session_t gnutls_starttls(const SOCKET *osock, struct TLS_CTX_ST *ssl_ctx, const char *hostname);

Funkcja gnutls_starttls()

Argumenty:
const SOCKET *osock -
struct TLS_CTX_ST *ssl_ctx -
const char *hostname -

Zwracana wartość:
gnutls_session_t -



#top gnutls_tls_info_print


Deklaracja funkcji gnutls_tls_info_print() znajduje się w pliku nagłówkowym netutils/libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_tls_info_print() jest następująca:
SELECT ALL
/**
 * @name   gnutls_tls_info_print()
 * @desc   gnutls_tls_info_print()
 * @param  const:char      *self
 * @param  gnutls_session_t ssl
 * @return void
 */
void gnutls_tls_info_print(const char *self, gnutls_session_t ssl);

Funkcja gnutls_tls_info_print()

Argumenty:
const char *self -
gnutls_session_t ssl -

Zwracana wartość:
Funkcja nie zwraca żadnej wartości.



#top gnutls_cert_check


Deklaracja funkcji gnutls_cert_check() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_cert_check() jest następująca:
SELECT ALL
/**
 * @name   gnutls_cert_check()
 * @desc   gnutls_cert_check()
 * @param  gnutls_session_t ssl
 * @param  const:char      *ipname
 * @return int              result
 */
int gnutls_cert_check(gnutls_session_t ssl, const char *ipname);

Funkcja gnutls_cert_check()

Argumenty:
gnutls_session_t ssl -
const char *ipname -

Zwracana wartość:
int -



#top gnutls_cert_verify_print


Deklaracja funkcji gnutls_cert_verify_print() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_cert_verify_print() jest następująca:
SELECT ALL
/**
 * @name   gnutls_cert_verify_print()
 * @desc   gnutls_cert_verify_print()
 * @param  const:char      *self
 * @param  gnutls_session_t ssl
 * @param  const:char      *ipname
 * @param  const:int        opt_cert_verify
 * @param  const:int        verbose
 * @return int              verify
 */
int gnutls_cert_verify_print(const char *self, gnutls_session_t ssl, const char *ipname, const int opt_cert_verify, const int verbose);

Funkcja gnutls_cert_verify_print()

Argumenty:
const char *self -
gnutls_session_t ssl -
const char *ipname -
const int opt_cert_verify -
const int verbose -

Zwracana wartość:
int -



#top gnutls_cert_info_print


Deklaracja funkcji gnutls_cert_info_print() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_cert_info_print() jest następująca:
SELECT ALL
/**
 * @name   gnutls_cert_info_print()
 * @desc   gnutls_cert_info_print()
 * @param  const:char      *self
 * @param  gnutls_session_t ssl
 * @return void
 */
void gnutls_cert_info_print(const char *self, gnutls_session_t ssl);

Funkcja gnutls_cert_info_print()

Argumenty:
const char *self -
gnutls_session_t ssl -

Zwracana wartość:
Funkcja nie zwraca żadnej wartości.



#top gnutls_cert_show


Deklaracja funkcji gnutls_cert_show() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_cert_show() jest następująca:
SELECT ALL
/**
 * @name   gnutls_cert_show()
 * @desc   gnutls_cert_show()
 * @param  const:char      *self
 * @param  gnutls_session_t ssl
 * @return void
 */
void gnutls_cert_show(const char *self, gnutls_session_t ssl);

Funkcja gnutls_cert_show()

Argumenty:
const char *self -
gnutls_session_t ssl -

Zwracana wartość:
Funkcja nie zwraca żadnej wartości.



#top gnutls_send


Deklaracja funkcji gnutls_send() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_send() jest następująca:
SELECT ALL
/**
 * @name   gnutls_send()
 * @desc   gnutls_send()
 * @param  gnutls_session_t ssl
 * @param  const:char      *buffdata
 * @param  const:size_t     buffsize
 * @param  const:double     timeosock
 * @return int              datasend
 */
int gnutls_send(gnutls_session_t ssl, const char *buffsend, const size_t buffsize, const double timeosock);

Funkcja gnutls_send() do systemu zdalnego będącego drugą stroną połączenia dla deskryptora przekazanego w argumencie ssl wysyła (zapisuje) dane przekazane w argumencie buffdata (ilość danych do wysłania podana jest w argumencie buffsize) ograniczonego czasem trwania podanego w argumencie timeosock. W pierwszej kolejności sprawdzany jest deskryptor gniazda szyfrowanego czy jest różny od NULL, jeśli nie jest to zwracany jest ujemny kod błędu informujący o nieprawidłowym deskryptorze gniazda szyfrowanego. W następnej kolejności sprawdzany jest limit czasu na wysłanie danych przekazany w argumencie timeosock, jeśli nie jest on większy od zera (jest mniejszy lub równy zeru) to zwracany jest ujemny kod błędu informujący o przekroczeniu czasu oczekiwania na wysłanie danych (w czasie mniejszym lub równy zeru, nie jest możliwe wysłanie danych z sukcesem). Następnie w pętli powtarzanie jest wysyłanie danych aż wszystkie przekazane dane nie zostaną wysłane w podanym czasie. Dla uproszczenia i ujednolicenia wysyłanie odbywa się poprzez wywołanie funkcji gnutls_onesend() w której odbywa się właściwe wysyłanie danych z użyciem funkcji z biblioteki do obsługi szyfrowanych połączeń. Powyższy krok powtarzany jest w pętli aż wszystkie przekazane dane zostaną wysłane w czasie krótszym niż podany. W przypadku gdy wszyskie przekazane dane zostały wysłane w czasie mniejszym niż podany to zwracana jest wartość dodatnia informująca o ilości wysłanych danych (będzie zgodna z ilością podaną w argumencie buffsize), w przeciwnym przypadku (lub również w przypadku przekroczenia podanego limitu czasu na wysyłanie danych, ale bez błedu podczas wysyłania) zwracany jest ujemny kod błędu informujący o przekroczeniu limitu czasu na wysyłanie danych lub informujący o innym błędzie, który wystąpił podczas wysyłania.

Argumenty:
gnutls_session_t ssl -
const char *buffsend -
const size_t buffsize -
const double timeosock -

Zwracana wartość:
int -



#top gnutls_onesend


Deklaracja funkcji gnutls_onesend() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_onesend() jest następująca:
SELECT ALL
/**
 * @name   gnutls_onesend()
 * @desc   gnutls_onesend()
 * @param  gnutls_session_t ssl
 * @param  const:char      *buffdata
 * @param  const:size_t     buffsize
 * @param  const:double     timeosock
 * @return int              result
 */
int gnutls_onesend(gnutls_session_t ssl, const char *buffsend, const size_t buffsize, const double timeosock);

Funkcja socktls_onesend() do systemu zdalnego będącego drugą stroną połączenia dla deskryptora przekazanego w argumencie ssl wysyła (zapisuje) dane przekazane w argumencie buffdata (ilość danych do wysłania podana jest w argumencie buffsize) ograniczonego czasem trwania podanego w argumencie timeosock. W pierwszej kolejności sprawdzany jest deskryptor gniazda szyfrowanego czy jest różny od NULL, jeśli nie jest to zwracany jest ujemny kod błędu informujący o nieprawidłowym deskryptorze gniazda szyfrowanego. W następnej kolejności sprawdzany jest limit czasu na wysłanie danych przekazany w argumencie timeosock, jeśli nie jest on większy od zera (jest mniejszy lub równy zeru) to zwracany jest ujemny kod błędu informujący o przekroczeniu czasu oczekiwania na wysłanie danych (w czasie mniejszym lub równy zeru, nie jest możliwe wysłanie danych z sukcesem). Następnie realizowane jest wysyłanie danych. Przed wysłaniem danych wywoływana jest funkcja select(), która wykonuje sprawdzenie czy deskryptor gniazda sieciowego jest gotowy do zapisu (wysyłania) danych. Następnie jeśli funkcja zwróci informację, że co najmniej jeden deskryptor jest gotowy do wykonywania zapisu to realizowany jest właściwy proces wysyłania danych za pomocą funkcji gnutls_record_send() (gnutls_record_send(), gnutls_record_send()). W przypadku gdy przekazane dane zostały wysłane to zwracana jest wartość dodatnia informująca o ilości wysłanych danych (może być mniejsza niż z ilość podana w argumencie buffsize, toteż aby wszystkie dane zostały wysłane należy używać socktls_send(), niniejsza funkcja umożliwia lepszą kontrolę nad wysyłaniem danych), w przeciwnym przypadku (lub również w przypadku przekroczenia podanego limitu czasu na wysyłanie danych, ale bez błedu podczas wysyłania) zwracany jest ujemny kod błędu informujący o przekroczeniu limitu czasu na wysyłanie danych lub informujący o innym błędzie, który wystąpił podczas wysyłania.

Argumenty:
gnutls_session_t ssl -
const char *buffsend -
const size_t buffsize -
const double timeosock -

Zwracana wartość:
int -



#top gnutls_recv


Deklaracja funkcji gnutls_recv() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_recv() jest następująca:
SELECT ALL
/**
 * @name   gnutls_recv()
 * @desc   gnutls_recv()
 * @param  gnutls_session_t ssl
 * @param  char            *buffdata
 * @param  const:size_t     buffsize
 * @param  const:double     timeosock
 * @return int              datarecv
 */
int gnutls_recv(gnutls_session_t ssl, char *buffrecv, const size_t buffsize, const double timeosock);

Funkcja gnutls_recv()

Argumenty:
gnutls_session_t ssl -
char *buffrecv -
const size_t buffsize -
const double timeosock -

Zwracana wartość:
int -



#top gnutls_onerecv


Deklaracja funkcji gnutls_onerecv() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_onerecv() jest następująca:
SELECT ALL
/**
 * @name   gnutls_onerecv()
 * @desc   gnutls_onerecv()
 * @param  gnutls_session_t ssl
 * @param  char            *buffdata
 * @param  const:size_t     buffsize
 * @param  const:double     timeosock
 * @return int              result
 */
int gnutls_onerecv(gnutls_session_t ssl, char *buffrecv, const size_t buffsize, const double timeosock);

Funkcja gnutls_onerecv()

Argumenty:
gnutls_session_t ssl -
char *buffrecv -
const size_t buffsize -
const double timeosock -

Zwracana wartość:
int -



#top gnutls_linerecv


Deklaracja funkcji gnutls_linerecv() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_linerecv() jest następująca:
SELECT ALL
/**
 * @name   gnutls_linerecv()
 * @desc   gnutls_linerecv()
 * @param  gnutls_session_t ssl
 * @param  char            *buffdata
 * @param  const:size_t     buffsize
 * @param  const:double     timeosock
 * @return int              linesize
 */
int gnutls_linerecv(gnutls_session_t ssl, char *buffrecv, const size_t buffsize, const double timeosock);

Funkcja gnutls_linerecv()

Argumenty:
gnutls_session_t ssl -
char *buffrecv -
const size_t buffsize -
const double timeosock -

Zwracana wartość:
int -



#top gnutls_close


Deklaracja funkcji gnutls_close() znajduje się w pliku nagłówkowym libnet/libsock-gnutls.h.
Deklaracja funkcji gnutls_close() jest następująca:
SELECT ALL
/**
 * @name   gnutls_close()
 * @desc   gnutls_close()
 * @param  gnutls_session_t ssl
 * @return int              result
 */
int gnutls_close(gnutls_session_t ssl);

Funkcja gnutls_close()

Argumenty:
gnutls_session_t ssl -

Zwracana wartość:
int -
































Zmodyfikowany ostatnio: 2019/05/21 17:25:28 (6 lat temu), textsize: 26,4 kB, htmlsize: 50,3 kB

Zapraszam do komentowania, zgłaszania sugestii, propozycji, własnych przykładów, ...
Dodaj komentarzKomentarze użytkowników