|
gwenhywfar 5.14.1
|
#include "syncio_tls_p.h"#include "i18n_l.h"#include <gwenhywfar/misc.h>#include <gwenhywfar/debug.h>#include <gwenhywfar/gui.h>#include <gwenhywfar/pathmanager.h>#include <gwenhywfar/directory.h>#include <gwenhywfar/gwenhywfar.h>#include <gwenhywfar/text.h>#include <assert.h>#include <errno.h>#include <string.h>#include <stdlib.h>#include <gnutls/gnutls.h>#include <gnutls/x509.h>#include <gcrypt.h>
Go to the source code of this file.
Macros | |
| #define | DISABLE_DEBUGLOG |
Variables | |
| const char * | SYNCIO_TLS_SYSTEM_CERTFILES [] |
| #define DISABLE_DEBUGLOG |
Definition at line 29 of file syncio_tls.c.
| int GWEN_SyncIo_Tls__readFile | ( | const char * | fname, |
| GWEN_BUFFER * | buf ) |
Definition at line 327 of file syncio_tls.c.
References DBG_INFO, GWEN_Buffer_AdjustUsedBytes(), GWEN_Buffer_AllocRoom(), GWEN_Buffer_GetPosPointer(), GWEN_Buffer_IncrementPos(), GWEN_ERROR_IO, GWEN_LOGDOMAIN, and NULL.
Referenced by GWEN_SyncIo_Tls_Prepare().


| int GWEN_SyncIo_Tls_CheckCert | ( | GWEN_SYNCIO * | sio, |
| const GWEN_SSLCERTDESCR * | cert ) |
Definition at line 143 of file syncio_tls.c.
References DBG_ERROR, GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, and GWEN_SyncIo_Tls_Internal_CheckCert().
Referenced by GWEN_SyncIo_Tls_Connect().


| int GWENHYWFAR_CB GWEN_SyncIo_Tls_Connect | ( | GWEN_SYNCIO * | sio | ) |
Definition at line 1311 of file syncio_tls.c.
References DBG_ERROR, DBG_INFO, GWEN_ERROR_NOT_CONNECTED, GWEN_ERROR_SSL, GWEN_ERROR_SSL_SECURITY, GWEN_Gui_ProgressLog(), GWEN_Gui_ProgressLog2(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Error, GWEN_SyncIo_AddFlags(), GWEN_SyncIo_Connect(), GWEN_SyncIo_Disconnect(), GWEN_SYNCIO_FLAGS_PASSIVE, GWEN_SyncIo_GetBaseIo(), GWEN_SyncIo_GetFlags(), GWEN_SyncIo_GetStatus(), GWEN_SyncIo_SetStatus(), GWEN_SyncIo_Status_Connected, GWEN_SyncIo_Status_Disconnected, GWEN_SyncIo_SubFlags(), GWEN_SyncIo_Tls_CheckCert(), GWEN_SYNCIO_TLS_FLAGS_NEED_PEER_CERT, GWEN_SYNCIO_TLS_FLAGS_SECURE, GWEN_SyncIo_Tls_GetPeerCert(), GWEN_SyncIo_Tls_Prepare(), GWEN_SyncIo_Tls_ShowCipherInfo(), GWEN_SyncIo_Tls_UndoPrepare(), GWENHYWFAR_CB, and I18N.
Referenced by GWEN_SyncIo_Tls_new().


| int GWENHYWFAR_CB GWEN_SyncIo_Tls_Disconnect | ( | GWEN_SYNCIO * | sio | ) |
Definition at line 1419 of file syncio_tls.c.
References DBG_ERROR, DBG_INFO, GWEN_ERROR_NOT_CONNECTED, GWEN_ERROR_SSL, GWEN_Gui_ProgressLog2(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Info, GWEN_SyncIo_Disconnect(), GWEN_SyncIo_GetBaseIo(), GWEN_SyncIo_GetStatus(), GWEN_SyncIo_SetStatus(), GWEN_SyncIo_Status_Connected, GWEN_SyncIo_Status_Disconnected, GWEN_SyncIo_Tls_UndoPrepare(), GWENHYWFAR_CB, and I18N.
Referenced by GWEN_SyncIo_Tls_new().


| void GWENHYWFAR_CB GWEN_SyncIo_Tls_FreeData | ( | GWEN_UNUSED void * | bp, |
| void * | p ) |
Definition at line 96 of file syncio_tls.c.
References GWEN_FREE_OBJECT, GWEN_SslCertDescr_free(), GWEN_UNUSED, and GWENHYWFAR_CB.
Referenced by GWEN_SyncIo_Tls_new().


| const char * GWEN_SyncIo_Tls_GetDhParamFile | ( | const GWEN_SYNCIO * | sio | ) |
Definition at line 254 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA.
| const char * GWEN_SyncIo_Tls_GetLocalCertFile | ( | const GWEN_SYNCIO * | sio | ) |
Definition at line 164 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA.
| const char * GWEN_SyncIo_Tls_GetLocalKeyFile | ( | const GWEN_SYNCIO * | sio | ) |
Definition at line 194 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA.
| const char * GWEN_SyncIo_Tls_GetLocalTrustFile | ( | const GWEN_SYNCIO * | sio | ) |
Definition at line 224 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA.
| int GWEN_SyncIo_Tls_GetPeerCert | ( | GWEN_SYNCIO * | sio | ) |
Definition at line 756 of file syncio_tls.c.
References DBG_ERROR, DBG_INFO, DBG_WARN, GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_GetUsedBytes(), GWEN_Buffer_new(), GWEN_Buffer_Reset(), GWEN_DB_Dump(), GWEN_DB_Group_free(), GWEN_DB_Group_new(), GWEN_ERROR_GENERIC, GWEN_ERROR_NO_DATA, GWEN_ERROR_SSL_SECURITY, GWEN_Gui_ProgressLog(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Warning, GWEN_SSL_CERT_FLAGS_BAD_DATA, GWEN_SSL_CERT_FLAGS_BAD_HOSTNAME, GWEN_SSL_CERT_FLAGS_EXPIRED, GWEN_SSL_CERT_FLAGS_INVALID, GWEN_SSL_CERT_FLAGS_NOT_ACTIVE, GWEN_SSL_CERT_FLAGS_OK, GWEN_SSL_CERT_FLAGS_REVOKED, GWEN_SSL_CERT_FLAGS_SIGNER_NOT_FOUND, GWEN_SSL_CERT_FLAGS_SYSTEM, GWEN_SslCertDescr_free(), GWEN_SslCertDescr_new(), GWEN_SslCertDescr_SetCommonName(), GWEN_SslCertDescr_SetCountryName(), GWEN_SslCertDescr_SetFingerPrint(), GWEN_SslCertDescr_SetFingerPrintSha1(), GWEN_SslCertDescr_SetFingerPrintSha512(), GWEN_SslCertDescr_SetIsError(), GWEN_SslCertDescr_SetLocalityName(), GWEN_SslCertDescr_SetNotAfter(), GWEN_SslCertDescr_SetNotBefore(), GWEN_SslCertDescr_SetOrganizationalUnitName(), GWEN_SslCertDescr_SetOrganizationName(), GWEN_SslCertDescr_SetPubKeyExponent(), GWEN_SslCertDescr_SetPubKeyModulus(), GWEN_SslCertDescr_SetStateOrProvinceName(), GWEN_SslCertDescr_SetStatusFlags(), GWEN_SslCertDescr_SetStatusText(), GWEN_SslCertDescr_toDb(), GWEN_SyncIo_GetFlags(), GWEN_SYNCIO_TLS_FLAGS_ALLOW_V1_CA_CRT, GWEN_Text_ToHexBuffer(), GWEN_Time_free(), GWEN_Time_fromSeconds(), I18N, and NULL.
Referenced by GWEN_SyncIo_Tls_Connect().


| GWEN_SSLCERTDESCR * GWEN_SyncIo_Tls_GetPeerCertDescr | ( | const GWEN_SYNCIO * | sio | ) |
Definition at line 314 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA.
| const char * GWEN_SyncIo_Tls_GetRemoteHostName | ( | const GWEN_SYNCIO * | sio | ) |
Definition at line 284 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA.
| GWENHYWFAR_CB int GWEN_SyncIo_Tls_Internal_CheckCert | ( | GWEN_SYNCIO * | sio, |
| const GWEN_SSLCERTDESCR * | cert ) |
Definition at line 128 of file syncio_tls.c.
References DBG_WARN, GWEN_Gui_CheckCert(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, and GWENHYWFAR_CB.
Referenced by GWEN_SyncIo_Tls_CheckCert(), and GWEN_SyncIo_Tls_new().


| GWEN_SYNCIO * GWEN_SyncIo_Tls_new | ( | GWEN_SYNCIO * | baseIo | ) |
Definition at line 72 of file syncio_tls.c.
References GWEN_INHERIT_SETDATA, GWEN_NEW_OBJECT, GWEN_SyncIo_new(), GWEN_SyncIo_SetConnectFn(), GWEN_SyncIo_SetDisconnectFn(), GWEN_SyncIo_SetReadFn(), GWEN_SyncIo_SetWriteFn(), GWEN_SyncIo_Tls_Connect(), GWEN_SyncIo_Tls_Disconnect(), GWEN_SyncIo_Tls_FreeData(), GWEN_SyncIo_Tls_Internal_CheckCert(), GWEN_SyncIo_Tls_Read(), GWEN_SYNCIO_TLS_TYPE, and GWEN_SyncIo_Tls_Write().
Referenced by GWEN_Gui_ExtendSyncIo().


| int GWEN_SyncIo_Tls_Prepare | ( | GWEN_SYNCIO * | sio | ) |
Definition at line 421 of file syncio_tls.c.
References DBG_ERROR, DBG_INFO, DBG_WARN, GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_GetUsedBytes(), GWEN_Buffer_new(), GWEN_Directory_FindFileInPaths(), GWEN_Directory_GetPath(), GWEN_Directory_GetPrefixDirectory(), GWEN_ERROR_GENERIC, GWEN_Gui_ProgressLog(), GWEN_Gui_ProgressLog2(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Info, GWEN_LoggerLevel_Notice, GWEN_PATH_FLAGS_NAMEMUSTEXIST, GWEN_PATH_FLAGS_VARIABLE, GWEN_StringList_AppendString(), GWEN_StringList_free(), GWEN_StringList_new(), GWEN_SYNCIO_FLAGS_PASSIVE, GWEN_SyncIo_GetFlags(), GWEN_SyncIo_Tls__readFile(), GWEN_SYNCIO_TLS_FLAGS_ADD_TRUSTED_CAS, GWEN_SYNCIO_TLS_FLAGS_REQUEST_CERT, GWEN_SyncIo_Tls_Pull(), GWEN_SyncIo_Tls_Push(), I18N, NULL, and SYNCIO_TLS_SYSTEM_CERTFILES.
Referenced by GWEN_SyncIo_Tls_Connect().


| ssize_t GWEN_SyncIo_Tls_Pull | ( | gnutls_transport_ptr_t | p, |
| void * | buf, | ||
| size_t | len ) |
Definition at line 1160 of file syncio_tls.c.
References DBG_INFO, DBG_VERBOUS, GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_SyncIo_GetBaseIo(), and GWEN_SyncIo_Read().
Referenced by GWEN_SyncIo_Tls_Prepare().


| ssize_t GWEN_SyncIo_Tls_Push | ( | gnutls_transport_ptr_t | p, |
| const void * | buf, | ||
| size_t | len ) |
Definition at line 1191 of file syncio_tls.c.
References DBG_INFO, DBG_VERBOUS, GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_SyncIo_GetBaseIo(), and GWEN_SyncIo_Write().
Referenced by GWEN_SyncIo_Tls_Prepare().


| int GWENHYWFAR_CB GWEN_SyncIo_Tls_Read | ( | GWEN_SYNCIO * | sio, |
| uint8_t * | buffer, | ||
| uint32_t | size ) |
Definition at line 1465 of file syncio_tls.c.
References DBG_ERROR, DBG_INFO, GWEN_ERROR_NOT_CONNECTED, GWEN_ERROR_SSL, GWEN_ERROR_SSL_PREMATURE_CLOSE, GWEN_Gui_ProgressLog2(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Error, GWEN_SyncIo_Disconnect(), GWEN_SyncIo_GetBaseIo(), GWEN_SyncIo_GetFlags(), GWEN_SyncIo_GetStatus(), GWEN_SyncIo_SetStatus(), GWEN_SyncIo_Status_Connected, GWEN_SyncIo_Status_Disconnected, GWEN_SYNCIO_TLS_FLAGS_IGN_PREMATURE_CLOSE, GWEN_SyncIo_Tls_UndoPrepare(), GWEN_Text_DumpString(), GWENHYWFAR_CB, and I18N.
Referenced by GWEN_SyncIo_Tls_new().


| GWEN_SIO_TLS_CHECKCERT_FN GWEN_SyncIo_Tls_SetCheckCertFn | ( | GWEN_SYNCIO * | sio, |
| GWEN_SIO_TLS_CHECKCERT_FN | f ) |
Definition at line 112 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA.
| void GWEN_SyncIo_Tls_SetDhParamFile | ( | GWEN_SYNCIO * | sio, |
| const char * | s ) |
Definition at line 267 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA, and NULL.
| void GWEN_SyncIo_Tls_SetLocalCertFile | ( | GWEN_SYNCIO * | sio, |
| const char * | s ) |
Definition at line 177 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA, and NULL.
| void GWEN_SyncIo_Tls_SetLocalKeyFile | ( | GWEN_SYNCIO * | sio, |
| const char * | s ) |
Definition at line 207 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA, and NULL.
| void GWEN_SyncIo_Tls_SetLocalTrustFile | ( | GWEN_SYNCIO * | sio, |
| const char * | s ) |
Definition at line 237 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA, and NULL.
| void GWEN_SyncIo_Tls_SetRemoteHostName | ( | GWEN_SYNCIO * | sio, |
| const char * | s ) |
Definition at line 297 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA, and NULL.
Referenced by GWEN_Gui_ExtendSyncIo().

| void GWEN_SyncIo_Tls_ShowCipherInfo | ( | GWEN_SYNCIO * | sio | ) |
Definition at line 1222 of file syncio_tls.c.
References DBG_NOTICE, GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_GetUsedBytes(), GWEN_Buffer_new(), GWEN_Gui_ProgressLog(), GWEN_Gui_ProgressLog2(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Error, GWEN_LoggerLevel_Info, and I18N.
Referenced by GWEN_SyncIo_Tls_Connect().


| void GWEN_SyncIo_Tls_UndoPrepare | ( | GWEN_SYNCIO * | sio | ) |
Definition at line 739 of file syncio_tls.c.
References GWEN_INHERIT_GETDATA.
Referenced by GWEN_SyncIo_Tls_Connect(), GWEN_SyncIo_Tls_Disconnect(), GWEN_SyncIo_Tls_Read(), and GWEN_SyncIo_Tls_Write().

| int GWENHYWFAR_CB GWEN_SyncIo_Tls_Write | ( | GWEN_SYNCIO * | sio, |
| const uint8_t * | buffer, | ||
| uint32_t | size ) |
Definition at line 1529 of file syncio_tls.c.
References DBG_ERROR, DBG_INFO, GWEN_ERROR_NOT_CONNECTED, GWEN_ERROR_SSL, GWEN_Gui_ProgressLog2(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Error, GWEN_SyncIo_Disconnect(), GWEN_SyncIo_GetBaseIo(), GWEN_SyncIo_GetStatus(), GWEN_SyncIo_SetStatus(), GWEN_SyncIo_Status_Connected, GWEN_SyncIo_Status_Disconnected, GWEN_SyncIo_Tls_UndoPrepare(), GWEN_Text_DumpString(), GWENHYWFAR_CB, and I18N.
Referenced by GWEN_SyncIo_Tls_new().


| const char* SYNCIO_TLS_SYSTEM_CERTFILES[] |
Definition at line 62 of file syncio_tls.c.
Referenced by GWEN_SyncIo_Tls_Prepare().