CONTENT
  • CHANGES
Szukaj
counter

#top libsocktls


Narzędzia Sieciowe >> libnet - library network protocols >> libsocktls - 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 SOCKTLSOPT_***


Definicja typu SOCKTLSOPT_*** znajduje się w pliku nagłówkowym netutils/libnet/libsocktls.h.
Definicja typu SOCKTLSOPT_*** jest następująca:
#if defined(HAVE_GNUTLS1)||defined(HAVE_GNUTLS2)||defined(HAVE_GNUTLS3)||defined(HAVE_GNUTLS36)
#define SOCKTLSOPT_OPTIONSNULL       GTLSOPT_OPTIONSNULL
#define SOCKTLSOPT_X509TYPE          GTLSOPT_X509TYPE
#define SOCKTLSOPT_X509CAFILE        GTLSOPT_X509CAFILE
#define SOCKTLSOPT_X509CRLFILE       GTLSOPT_X509CRLFILE
#define SOCKTLSOPT_X509CRTFILE       GTLSOPT_X509CRTFILE
#define SOCKTLSOPT_X509KEYFILE       GTLSOPT_X509KEYFILE
#define SOCKTLSOPT_STARTTLSMODE      GTLSOPT_STARTTLSMODE
#define SOCKTLSOPT_PROTOTYPE         GTLSOPT_PROTOTYPE
/* int options*/
#define SOCKTLSOPT_DISABLEEXTENSIONS GTLSOPT_DISABLEEXTENSIONS
#endif

#if defined(HAVE_OPENSSL098)||defined(HAVE_OPENSSL100)||defined(HAVE_OPENSSL101)||defined(HAVE_OPENSSL102)
#define SOCKTLSOPT_OPTIONSNULL       OSSLOPT_OPTIONSNULL
#define SOCKTLSOPT_X509TYPE          OSSLOPT_X509TYPE
#define SOCKTLSOPT_X509CAFILE        OSSLOPT_X509CAFILE
#define SOCKTLSOPT_X509CRLFILE       OSSLOPT_X509CRLFILE
#define SOCKTLSOPT_X509CRTFILE       OSSLOPT_X509CRTFILE
#define SOCKTLSOPT_X509KEYFILE       OSSLOPT_X509KEYFILE
#define SOCKTLSOPT_STARTTLSMODE      OSSLOPT_STARTTLSMODE
#define SOCKTLSOPT_PROTOTYPE         OSSLOPT_PROTOTYPE
/* int options*/
#define SOCKTLSOPT_DISABLEEXTENSIONS OSSLOPT_DISABLEEXTENSIONS
#endif

#if defined(HAVE_POLARSSL132)
#define SOCKTLSOPT_OPTIONSNULL       PSSLOPT_OPTIONSNULL
#define SOCKTLSOPT_X509TYPE          PSSLOPT_X509TYPE
#define SOCKTLSOPT_X509CAFILE        PSSLOPT_X509CAFILE
#define SOCKTLSOPT_X509CRLFILE       PSSLOPT_X509CRLFILE
#define SOCKTLSOPT_X509CRTFILE       PSSLOPT_X509CRTFILE
#define SOCKTLSOPT_X509KEYFILE       PSSLOPT_X509KEYFILE
#define SOCKTLSOPT_STARTTLSMODE      PSSLOPT_STARTTLSMODE
#define SOCKTLSOPT_PROTOTYPE         PSSLOPT_PROTOTYPE
/* int options*/
#define SOCKTLSOPT_DISABLEEXTENSIONS PSSLOPT_DISABLEEXTENSIONS
#endif

#if defined(HAVE_WOLFSSL380)
#define SOCKTLSOPT_OPTIONSNULL       WSSLOPT_OPTIONSNULL
#define SOCKTLSOPT_X509TYPE          WSSLOPT_X509TYPE
#define SOCKTLSOPT_X509CAFILE        WSSLOPT_X509CAFILE
#define SOCKTLSOPT_X509CRLFILE       WSSLOPT_X509CRLFILE
#define SOCKTLSOPT_X509CRTFILE       WSSLOPT_X509CRTFILE
#define SOCKTLSOPT_X509KEYFILE       WSSLOPT_X509KEYFILE
#define SOCKTLSOPT_STARTTLSMODE      WSSLOPT_STARTTLSMODE
#define SOCKTLSOPT_PROTOTYPE         WSSLOPT_PROTOTYPE
/* int options*/
#define SOCKTLSOPT_DISABLEEXTENSIONS WSSLOPT_DISABLEEXTENSIONS
#endif



#top Datatypes / MACROS


#top enum tlse_starttls_mode


Definicja typu enum tlse_starttls_mode znajduje się w pliku nagłówkowym netutils/libnet/libsocktls.h.
Definicja typu enum tlse_starttls_mode jest następująca:
enum tlse_starttls_mode {
	tlse_starttls_server=1,
	tlse_starttls_client=2
} tlse_starttls_mode; /* kind type of secure protocol: server or client */



#top enum tlse_proto_type


Definicja typu enum tlse_proto_type znajduje się w pliku nagłówkowym netutils/libnet/libsocktls.h.
Definicja typu enum tlse_proto_type jest następująca:
enum tlse_proto_type {
	tlse_secure_auto,
	tlse_secure_sslv3x,
	tlse_secure_tlsv10,
	tlse_secure_tlsv11,
	tlse_secure_tlsv12,
	tlse_secure_tlsv13,
	tlse_secure_dtlsv09,
	tlse_secure_dtlsv10,
	tlse_secure_dtlsv12,
	tlse_secure_NULL
} tlse_proto_type; /* type of secure protocol to use. */



#top socktls_session_t


Definicja struktury socktls_session_t znajduje się w pliku nagłówkowym netutils/libnet/libsocktls.h.
Definicja struktury socktls_session_t jest następująca:
typedef void* socktls_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 SOCKTLS_CTX_ST


Definicja struktury struct SOCKTLS_CTX_ST znajduje się w pliku nagłówkowym netutils/libnet/libsocktls.h.
Definicja struktury struct SOCKTLS_CTX_ST jest następująca:
typedef struct SOCKTLS_CTX_ST SOCKTLS_CTX;



#top SOCKTLS_CTX


Definicja struktury SOCKTLS_CTX znajduje się w pliku nagłówkowym netutils/libnet/libsocktls.h.
Definicja struktury SOCKTLS_CTX jest następująca:
typedef struct SOCKTLS_CTX_ST SOCKTLS_CTX;



#top Functions


#top socktls_ctx_open


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

Funkcja socktls_ctx_open() w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_ctx_open(), openssl_ctx_open(), polarssl_ctx_open(), wolfssl_ctx_open() wykonującej niezbędne kroki związane inicjalizacją struktury zawierającą niezbędne informacje do utworzenia bezpiecznego połączenia. Funkcja socktls_ctx_open() zwraca wskaźnik do struktury struct SOCKTLS_CTX_ST lub NULL w przypadku wystąpienia błędu.

Argumenty:
Funkcja nie przyjmuje żadnych argumentów.

Zwracana wartość:
struct SOCKTLS_CTX_ST * - wskaźnik do struktury (lub NULL w przypadku wystąpienia błędu),



#top socktls_ctx_optset


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

Funkcja socktls_ctx_optset() w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_ctx_optset(), openssl_ctx_optset(), polarssl_ctx_optset(), wolfssl_ctx_optset() wykonującej niezbędne kroki związane z ustawieniem określonych parametrem optcmd właściwości dla szyfrowanych połączeń TLS/SSL.

Argumenty:
struct SOCKTLS_CTX_ST *ssl_ctx - wskaźnik do struktury zawierającej niezbędne informacje do utworzenia bezpiecznego połączenia,
const int optcmd - parametr określający ustawianą właściwość, dostępne są następujące parametry:
  • SOCKTLSOPT_OPTIONSNULL - parametr, który nic nie ustawia,
  • SOCKTLSOPT_X509CAFILE - parametr pozwalajacy ustawić ścieżkę do pliku z listą zaufanych certyfikatów głównych CA (Głównego Urzędu Certyfikacji, Certificate Authorities)
  • SOCKTLSOPT_X509CRLFILE - parametr pozwalajacy ustawić ścieżkę do pliku z listą unieważnionych certyfikatów
  • SOCKTLSOPT_X509CRTFILE - parametr pozwalajacy ustawić ścieżkę do pliku z certyfikatem publicznym,
  • SOCKTLSOPT_X509KEYFILE - parametr pozwalajacy ustawić ścieżkę do pliku z kluczem prywatnym,
  • SOCKTLSOPT_STARTTLSMODE - parametr pozwalajacy ustawić rodzaj operacji dla szyfrowanych połączeń TLS/SSL (inicjowanie połączenia, akceptowanie połączenia, w parametrze *optval należy przekazać wskaźnik do typu enum tlse_starttls_mode),
  • SOCKTLSOPT_PROTOTYPE - parametr pozwalajacy ustawić używaną wersję protokółu szyfrowanych połączeń TLS/SSL (w parametrze *optval należy przekazać wskaźnik do typu enum tlse_proto_type),
  • SOCKTLSOPT_DISABLEEXTENSIONS - parametr pozwalajacy ustawić / wyłączyć rozszerzenia (dodatkowe domyślne opcje) przy nawiązywaniu szyfrowanego połączenia,
const void *optval - parametr zawierający wskaźnik pod którym znajduje się wartość dla ustawianego, wybranego powyższą opcją właściwość,

Zwracana wartość:
int - status ustawienia właściwości,



#top socktls_ctx_init


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

Funkcja socktls_ctx_init() w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_ctx_init(), openssl_ctx_init(), polarssl_ctx_init(), wolfssl_ctx_init() wykonującej niezbędne kroki związane z właściwą inicjalizacją biblioteki do obsługi połączeń szyfrowanych TLS/SSL. W przypadku sukcesu zwracana jest dodatnia wartość (większa od zera). W przypadku nie powodzenia dowolnego z kroków wyświetlany jest komunikat błędu na standardowym strumieniu błędów (stderr) informujący o przyczynie niepowodzenia wykonania danej operacji, a w przypadku, gdy nie powiodła się opracja, której zakończenie się sukcesem jest niezbędne, aby było możliwie nawiązanie bezpiecznego połączenia zwracana jest ujemna wartość (mniejsza od zera).

Argumenty:
struct SOCKTLS_CTX_ST *ssl_ctx - wskaźnik do struktury zawierającej niezbędne informacje do utworzenia bezpiecznego połączenia,

Zwracana wartość:
int - status inicjalizacji biblioteki do obsługi połączeń szyfrowanych,



#top socktls_ctx_free


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

Funkcja socktls_ctx_free() w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_ctx_free(), openssl_ctx_free(), polarssl_ctx_free(), wolfssl_ctx_free() wykonującej niezbędne kroki związane de-inicjalizacją biblioteki oraz zwolnieniem zaalokowanych zasobów. Funkcja socktls_ctx_free() wykonuje operacje odwrotne do operacji wykonywanych przez funkcje gnutls_ctx_open(), openssl_ctx_open(), polarssl_ctx_open(), wolfssl_ctx_open() oraz gnutls_ctx_init(), openssl_ctx_init(), polarssl_ctx_init(), wolfssl_ctx_init().

Argumenty:
struct SOCKTLS_CTX_ST *ssl_ctx - wskaźnik do struktury zawierającej niezbędne informacje do utworzenia bezpiecznego połączenia,

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



#top socktls_starttls


Deklaracja funkcji socktls_starttls() znajduje się w pliku nagłówkowym netutils/libnet/libsocktls.h.
Deklaracja funkcji socktls_starttls() jest następująca:
SELECT ALL
/**
 * @name   socktls_starttls()
 * @desc   socktls_starttls()
 * @param  const :SOCKET         *osock
 * @param  struct:SOCKTLS_CTX_ST *ssl_ctx
 * @param  const:char            *iptname
 * @return socktls_session_t      ssl
 */
socktls_session_t socktls_starttls(const SOCKET *osock, struct SOCKTLS_CTX_ST *ssl_ctx, const char *ipname);

Funkcja socktls_starttls()w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_starttls(), openssl_starttls(), polarssl_starttls(), wolfssl_starttls() wykonującej niezbędne kroki związane z nawiązywaniem połączenia szyfrowanego TLS/SSL. W zależności od ustawionego trybu opcją SOCKTLSOPT_STARTTLSMODE biblioteka wysyła pakiet "client hello" message wraz ze stosownymi informacjami (Protocol, Cipher List, Compression, Extension), w odpowiedzi na który biblioteka odbiera pakiet "server hello" wraz ze stosowymi informacjami zależnymi od wysłanych (Protocol, Cipher List, Compression, Extension). Odbierany jest również certyfikat z serwera, na podstawie którego możliwe jest dokonanie weryfikacji, czy połączenie jest nawiązane do właściwego serwera. W przypadku sukcesu zwracany jest deskryptor gniazda szyfrowanego (wskaźnik do deskryptora gniazda szyfrowanego), w przeciwnym przypadku zwracana jest wartość NULL.

Argumenty:
const SOCKET *osock - wskaźnik do deskryptora gniazda sieciowego z nawiązanym połączeniem,
struct SOCKTLS_CTX_ST *ssl_ctx - wskaźnik do struktury zawierającej niezbędne informacje do utworzenia bezpiecznego połączenia,
const char *ipname - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający nazwę serwera, z którym następuje połączenie (niezbędne dla obsługi rozszerzenia TLS SNI - Server Name Indication),

Zwracana wartość:
socktls_session_t - deskryptor gniazda szyfrowanego (wskaźnik do deskryptora gniazda szyfrowanego) lub NULL w przypadku wystąpienia błędu,



#top socktls_tls_info_print


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

Funkcja socktls_tls_info_print() wyświetla informacje dotyczące nawiązanego połączenia szyfrowanego. W zależności od używanej biblioteki do obsługi szyfrowanych połączeń ilość wyświetlanych informacji może być różna. Przede wszystkim wyświetlane są następujące informacje:

Argumenty:
const char *self - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający
socktls_session_t ssl - deskryptor gniazda szyfrowanego (wskaźnik do deskryptora gniazda szyfrowanego),

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

Funkcja wyświetla informacje analogiczne do poniższych (dla ciągu znaków "httprecv: " przekazanego w argumencie self):
httprecv: TLS:LAYER: Description: (TLS1.2-PKIX)-(ECDHE-RSA-SECP256R1)-(AES-256-GCM)-(AEAD)
httprecv: TLS:LAYER: Session ID: 83:BB:69:08:80:98:3C:91:38:6A:3A:A6:7F:E2:29:C0:C0:6A:CC:96:44:40:5F:FC:79:A7:CE:8F:DC:66:A4:C0
httprecv: TLS:LAYER: Ephemeral EC Diffie-Hellman parameters
httprecv: TLS:LAYER:  Using curve: SECP256R1
httprecv: TLS:LAYER:  Curve size: 256 bits
httprecv: TLS:LAYER: Version: TLS1.2
httprecv: TLS:LAYER: Cipher Suite: ECDHE_RSA_AES_256_GCM_SHA384
httprecv: TLS:LAYER: Key Exchange: ECDHE-RSA
httprecv: TLS:LAYER: Cipher: AES-256-GCM
httprecv: TLS:LAYER: MAC: AEAD
httprecv: TLS:LAYER: Compression: NULL
httprecv: TLS:LAYER: Server Signature: RSA-SHA256
httprecv: TLS:LAYER: Channel binding 'tls-unique': f8a94f6c1c61c0474daa3566



#top socktls_cert_check


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

Funkcja socktls_cert_check() wywołuje funkcję socktls_cert_verify_print() z argumentami opt_cert_verify ustawionym na wartość 0 i verbose ustawionym na wartość 1, czyli wywołanie funkcji socktls_cert_check(ssl,ipname); jest równoważne do wywołania funkcji socktls_cert_verify_print(ssl,ipname,0,1);. Istotne jest tutaj zwrócenie wartości pozwalającej określić, czy nawiązano zaufane połączenie. Weryfikacja odebranego certyfikatu odbywa się głównie poprzez sprawdzenie następujących warunków:
  • czy otrzymany certyfikat został podpisany przez jeden z certyfikatów znajdujących się na liście zaufanych certyfikatów głównych CA (Głównego Urzędu Certyfikacji, Certificate Authorities),
  • czy otrzymany certyfikat jest prawidłowy dla nazwy przekazanej w argumencie ipname,
  • czy otrzymany certyfikat jest ważny, czyli czy bieżąca data i godzina znajduje się w zakresie dat ważności certyfikatu,

Argumenty:
socktls_session_t ssl - deskryptor gniazda szyfrowanego (wskaźnik do deskryptora gniazda szyfrowanego),
const char *ipname - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający nazwę serwera, z którym nawiązano szyfrowane połączenie,

Zwracana wartość:
int - status weryfikacji certyfikatu, gdy certyfikat jest zaufany zwracana jest wartość zero, w przeciwnym razie zwracana jest wartość niezerowa,



#top socktls_cert_verify_print


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

Funkcja socktls_cert_verify_print() wyświetla informacje na podstawie których wykonywana jest weryfikacja certyfikatu. Istotne jest tutaj wyświetlenie informacji pozwalającej określić, czy nawiązano zaufane połączenie. Weryfikacja odebranego certyfikatu odbywa się głównie poprzez sprawdzenie następujących warunków:
  • czy otrzymany certyfikat został podpisany przez jeden z certyfikatów znajdujących się na liście zaufanych certyfikatów głównych CA (Głównego Urzędu Certyfikacji, Certificate Authorities),
  • czy otrzymany certyfikat jest prawidłowy dla nazwy przekazanej w argumencie ipname,
  • czy otrzymany certyfikat jest ważny, czyli czy bieżąca data i godzina znajduje się w zakresie dat ważności certyfikatu,

Argumenty:
const char *self - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający
socktls_session_t ssl - deskryptor gniazda szyfrowanego (wskaźnik do deskryptora gniazda szyfrowanego),
const char *ipname - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający nazwę serwera, z którym nawiązano szyfrowane połączenie,
const int opt_cert_verify - argument określający czy certyfikat ma zostać weryfikowany, dla wartości różnej od zera zwracana jest wartość pozwalajaca określić czy certyfikat jest zaufany, dla wartości zero zwracana jest wartość wskazujący, że certyfikat jest zaufany,
const int verbose - argument określający czy podczas weryfikacji certyfikatu informacje o właściwościach certyfikatu na podstawie których certyfikat jest weryfikowany są wyświetlane na standardowym strumieniu wyjścia,

Zwracana wartość:
int - status weryfikacji certyfikatu, gdy certyfikat jest zaufany zwracana jest wartość zero, w przeciwnym razie zwracana jest wartość niezerowa,

Funkcja wyświetla informacje analogiczne do poniższych (dla ciągu znaków "httprecv: " przekazanego w argumencie self):
httprecv: CERT:VERIFY: Peer's certificate issuer is unknown
httprecv: CERT:VERIFY: Peer's certificate is NOT signed by Trusted Root Certification Authorities
httprecv: CERT[0]:VERIFY: The hostname in the certificate match 'www.gnutls.org'
httprecv: CERT[0]:VERIFY: Issuer : C=US,O=Let's Encrypt,CN=Let's Encrypt Authority X3
httprecv: CERT[0]:VERIFY: Subject: CN=gnutls.org
httprecv: CERT[0]:VERIFY: CERT:DATE:OK   Validity: Not Before: 2019/04/20 01:55:41
httprecv: CERT[0]:VERIFY: CERT:DATE:OK   Validity: Not After : 2019/07/19 01:55:41
httprecv: CERT[0]:VERIFY: CERT:DATE:OK   Validity: Cert expire after 35 [d] (3085562 [s]))
httprecv: CERT[0]:VERIFY: X509v3 Subject Alternative Name: (not critical)
httprecv: CERT[0]:VERIFY:      DNSname: gnutls.org, DNSname: www.gnutls.org,



#top socktls_cert_info_print


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

Funkcja socktls_cert_info_print() wyświetla informacje związane z odebranym certyfikatem, wyświetlane informacje są m.in.:
  • wersja certyfikatu,
  • numer seryjny certyfikatu,
  • sygnatura certyfikatu,
  • wystawca certyfikatu (Issuer),
  • podmiot certyfikatu (Subject),
  • daty określające ważność certyfikatu,
  • informacje dotyczące klucza plublicznego certyfikatu,
  • inne rozszerzenia certyfikatu jeśli są dostępne,

Argumenty:
const char *self - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający
socktls_session_t ssl - deskryptor gniazda szyfrowanego (wskaźnik do deskryptora gniazda szyfrowanego),

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

Funkcja wyświetla informacje analogiczne do poniższych (dla ciągu znaków "httprecv: " przekazanego w argumencie self):
httprecv: CERT[0]:X.509: Version: 3
httprecv: CERT[0]:X.509: Serial Number (hex): 04:DB:87:11:9A:6B:08:F1:42:F9:42:72:BB:65:5E:AE:B6:B6
httprecv: CERT[0]:X.509: Signature Algorithm: RSA-SHA256
httprecv: CERT[0]:X.509: Issuer : C=US,O=Let's Encrypt,CN=Let's Encrypt Authority X3
httprecv: CERT[0]:X.509: Subject: CN=gnutls.org
httprecv: CERT[0]:X.509: Validity: Not Before: 2019/04/20 01:55:41
httprecv: CERT[0]:X.509: Validity: Not After : 2019/07/19 01:55:41
httprecv: CERT[0]:X.509: Subject Public Key Info: Public Key Algorithm: RSA (2048 bits)
httprecv: CERT[0]:X.509: Extensions: Subject Alternative Name: (not critical) DNSname: gnutls.org
httprecv: CERT[0]:X.509: Extensions: Subject Alternative Name: (not critical) DNSname: www.gnutls.org
httprecv: CERT[0]:X.509: Extensions: Basic Constraints: (critical) CA:FALSE
httprecv: CERT[0]:X.509: Extensions: Key usage: (critical) Digital signature.
httprecv: CERT[0]:X.509: Extensions: Key usage: (critical) Key encipherment.
httprecv: CERT[0]:X.509: Extensions: Key purpose OIDs:(not critical) TLS WWW Server.
httprecv: CERT[0]:X.509: Extensions: Key purpose OIDs:(not critical) TLS WWW Client.
httprecv: CERT[0]:X.509: Extensions: Other Information: MD5 fingerprint:   e9e0f00d61710890f3e5b7bb8802e8ad
httprecv: CERT[0]:X.509: Extensions: Other Information: SHA-1 fingerprint: 9a43d7fb37a85fd58db4ad5c4d48c3d50231ba2f
httprecv: CERT[0]:X.509: Extensions: Other Information: Public Key Id:     44c1ad8984d10bf4be6baff36c26033691cb2a5e



#top socktls_cert_show


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

Funkcja socktls_cert_show() wyświetla certyfikatu w postaci (w formacie PEM, czyli zakodowany w base64 The Base16, Base32, and Base64 Data Encodings).

Argumenty:
const char *self - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający
socktls_session_t ssl - deskryptor gniazda szyfrowanego (wskaźnik do deskryptora gniazda szyfrowanego),

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

Funkcja wyświetla informacje analogiczne do poniższych (dla ciągu znaków "httprecv: " przekazanego w argumencie self):
httprecv: Issuer : C=US,O=Let's Encrypt,CN=Let's Encrypt Authority X3
httprecv: Subject: CN=gnutls.org
-----BEGIN CERTIFICATE-----
MIIFXTCCBEWgAwIBAgISBNuHEZprCPFC+UJyu2Verra2MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xOTA0MTkyMzU1NDFaFw0x
OTA3MTgyMzU1NDFaMBUxEzARBgNVBAMTCmdudXRscy5vcmcwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDK1abVvbVsD7Ybi61xs4tPiOD5D/SR7dZYc0bH
/OAunYLAxRdXTUokLD8nWnVijeSf+GGBnmcy5Mr3TkaXilK323c41RuXjoxWD5A4
PHVQ/4++hYd0nsgQoRT2zZyZernsW1rv3kDXZRI/zw09hWJ2sjmJH7J4ol26VDJ6
uOUTfpA4mBBlgRqktZWTmZFkDG/uzLq5eazWiDd0pzQt2xIIC4Xn9fzz97hDF4Ia
sD7j8OqjF1vELKG3qeiZ5ZGRtlZLfl9t/4ZTcKVYdiMGsNe+qbRfu747VP7DMWlx
eLxfvk9tjlnsAYCViuqqmFsbD2l0mvAc6vzUucXMZN+OraKBAgMBAAGjggJwMIIC
bDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFFsv1I+aXMhgeehavic4cjJz+jzRMB8G
A1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAu
BggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0Lm9yZzAv
BggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNyeXB0Lm9yZy8w
JQYDVR0RBB4wHIIKZ251dGxzLm9yZ4IOd3d3LmdudXRscy5vcmcwTAYDVR0gBEUw
QzAIBgZngQwBAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDov
L2Nwcy5sZXRzZW5jcnlwdC5vcmcwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgDi
aUuuJujpQAnohhu2O4PUPuf+dIj7pI8okwGd3fHb/gAAAWo4PeUnAAAEAwBHMEUC
IQDhatM99bO7KKa6WKlvHMsoPiab/9HVC4ukJi4fhs/TxwIgedfQLFVYNW/YJTQ6
hQhlM00wTCTkklHo5oIx71SVA+IAdwBj8tvN6DvMLM8LcoQnV2szpI1hd4+9daY4
scdoVEvYjQAAAWo4PeUWAAAEAwBIMEYCIQDdG9deP2B/u01bKcIvSxGq32EOuh5/
+L6tTtAMJ7gA5wIhAOZYSNJAHUhTIo34NzNLVucdh+F5G+wu1+BKvAi6CPgOMA0G
CSqGSIb3DQEBCwUAA4IBAQCFuHaVhrBMP3rW4XCAoNBb6YV9IDC2pjrwnriM9vqZ
fLY1Kwn9fj3pUdwkTRYZAKzpaQRB5VCIDiYobsAHrwdqXbJrLD5ZSB+WQ3Mftgx9
5JOPP7bmzgADe9mo4kh6w8Wuuk9y6eZeVR/78EpK/S49DfWCSZJlM2Lc5C40W7zg
3glF4TvwfAQe2T/KC8DpxgxQHeP0XDOuJOC4bKNjoxGrKP7R4iHmjrbezicX7W6X
zvx4tVeghy6Zp4kRiuOoIgrS2TYS1cXt3m2kAZOkqvWv7HGhNJ1pdkMYp5qhvHSQ
C7PO9jTI5c9dL9Br3DxRWZ2mDdKvDw6ebjgdBOefbvum
-----END CERTIFICATE-----



#top socktls_send


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

Funkcja socktls_send() w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_send(), openssl_send(), polarssl_send(), wolfssl_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 przypadku gdy wszystkie 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:
socktls_session_t ssl - deskryptor gniazda szyfrowanego
const char *buffsend - wskaźnik do bufora z danymi do wysłania
const size_t buffsize - ilość danych do wysłania
const double timeosock - limit czasu na wysyłanie danych

Zwracana wartość:
int - wynik (status) wysyłania danych (dodatnia wartość oznacza ilość wysłanych danych, ujemna wartość oznacza kod błedu informujący o przyczynie braku możliwości wysłania danych)



#top socktls_onesend


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

Funkcja socktls_onesend() w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_onesend(), openssl_onesend(), polarssl_onesend(), wolfssl_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 przypadku przekazane dane zostały wysłane w czasie mniejszym niż podany to zwracana jest wartość dodatnia informująca o ilości wysłanych danych (może być mniejsza niż podana 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:
socktls_session_t ssl - deskryptor gniazda szyfrowanego
const char *buffsend - wskaźnik do bufora z danymi do wysłania
const size_t buffsize - ilość danych do wysłania
const double timeosock - limit czasu na wysyłanie danych

Zwracana wartość:
int - wynik (status) wysyłania danych (dodatnia wartość oznacza ilość wysłanych danych, ujemna wartość oznacza kod błedu informujący o przyczynie braku możliwości wysłania danych)



#top socktls_recv


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

Funkcja socktls_recv() w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_recv(), openssl_recv(), polarssl_recv(), wolfssl_recv() od systemu zdalnego będącego drugą stroną połączenia dla deskryptora przekazanego w argumencie ssl odbierane (odczytywane) dane umieszcza w argumencie buffdata (ilość danych do odebrania podana jest w argumencie buffsize, dokładnie taka ilość danych musi zostać odebrana, aby funkcja zakończyła działanie z sukcesem lub mniejsza jeśli nie ma więcej danych do odebrania) ograniczonego czasem trwania podanego w argumencie timeosock. W przypadku gdy dane zostały odebrane 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:
socktls_session_t ssl - deskryptor gniazda szyfrowanego
char *buffrecv - wskaźnik do bufora na dane do odebrania
const size_t buffsize - maksymalna ilość danych do odebrania
const double timeosock - limit czasu na odbieranie danych

Zwracana wartość:
int - wynik (status) odbierania danych (dodatnia wartość oznacza ilość odebranych danych, ujemna wartość oznacza kod błedu informujący o przyczynie braku możliwości odebrania danych),



#top socktls_onerecv


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

Funkcja socktls_onerecv() w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_onerecv(), openssl_onerecv(), polarssl_onerecv(), wolfssl_onerecv() od systemu zdalnego będącego drugą stroną połączenia dla deskryptora przekazanego w argumencie ssl odbierane (odczytywane) dane umieszcza w argumencie buffdata (odebrana ilość danych może być niż przekazana w argumencie buffsize, który określa maksymalną ilość danych do odebrania) ograniczonego czasem trwania podanego w argumencie timeosock. W przypadku gdy dane zostały odebrane w czasie mniejszym niż podany to zwracana jest wartość dodatnia informująca o ilości wysłanych danych (może być mniejsza niż podana 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:
socktls_session_t ssl - deskryptor gniazda szyfrowanego
char *buffrecv - wskaźnik do bufora na dane do odebrania
const size_t buffsize - maksymalna ilość danych do odebrania
const double timeosock - limit czasu na odbieranie danych

Zwracana wartość:
int - wynik (status) odbierania danych (dodatnia wartość oznacza ilość odebranych danych, ujemna wartość oznacza kod błedu informujący o przyczynie braku możliwości odebrania danych),



#top socktls_linerecv


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

Funkcja socktls_linerecv() podobnie jak funkcja socktls_recv() od systemu zdalnego będącego drugą stroną połączenia dla deskryptora przekazanego w argumencie ssl odbierane (odczytywane) dane umieszcza w argumencie buffdata (maksymalna ilość danych do odebrania podana jest w argumencie buffsize) ograniczonego czasem trwania podanego w argumencie timeosock. W odróżnieniu od funkcji socktls_recv() nie odbiera wymaganej argumentem buffsize ilości danych tylko taką ilość danych, w której ostatni znak (bajt) jest znakiem nowej linii (0x0A) lub maksymalną ilość danych określoną argumentem buffsize w przypadku gdy podano zbyt małej wielkości bufor aby móc pobrać niezbędną ilość danych wraz z ostatnim znakiem (bajtem) nowej linii (0x0A). W takim przypadku możliwe jest kontynuowanie odczytu danych aż do znaku (bajtu) nowej linii (0x0A) poprzez ponowne wywołanie tej funkcji. W przypadku gdy dane o ilości w której ostatni znak (bajt) jest znakiem nowej linii (0x0A) lecz nie większej niż określonej w argumencie buffsize zostały odebrane w czasie mniejszym niż podany to zwracana jest wartość dodatnia informująca o ilości odebranych danych, w przeciwnym przypadku (lub również w przypadku przekroczenia podanego limitu czasu na odbieranie danych) zwracany jest ujemny kod błędu informujący o przekroczeniu limitu czasu na odbieranie danych lub informujący o innym błędzie, który wystąpił podczas odbierania.

Argumenty:
socktls_session_t ssl - deskryptor gniazda szyfrowanego
char *buffrecv - wskaźnik do bufora na dane do odebrania
const size_t buffsize - maksymalna ilość danych do odebrania
const double timeosock - limit czasu na odbieranie danych

Zwracana wartość:
int - wynik (status) odbierania danych (dodatnia wartość oznacza ilość odebranych danych, ujemna wartość oznacza kod błedu informujący o przyczynie braku możliwości odebrania danych),



#top socktls_close


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

Funkcja socktls_close()w zależności od użytej biblioteki do obsługi połączeń szyfrowanych TLS/SSL wywołuje funkcję o analogicznej nazwie gnutls_close(), openssl_close(), polarssl_close(), wolfssl_close() dla systemu zdalnego będącego drugą stroną połączenia dla deskryptora przekazanego w argumencie ssl zamyka połączenie wysyłając pakiet "close notify" informujący zdalny system o chęci zakończenia połączenia.

Argumenty:
socktls_session_t ssl - deskryptor gniazda szyfrowanego

Zwracana wartość:
int -
































Zmodyfikowany ostatnio: 2019/06/13 14:04:59 (5 lat temu), textsize: 48,7 kB, htmlsize: 73,0 kB

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