1 /* 2 ** Zabbix 3 ** Copyright (C) 2001-2021 Zabbix SIA 4 ** 5 ** This program is free software; you can redistribute it and/or modify 6 ** it under the terms of the GNU General Public License as published by 7 ** the Free Software Foundation; either version 2 of the License, or 8 ** (at your option) any later version. 9 ** 10 ** This program is distributed in the hope that it will be useful, 11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 ** GNU General Public License for more details. 14 ** 15 ** You should have received a copy of the GNU General Public License 16 ** along with this program; if not, write to the Free Software 17 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 **/ 19 20 #ifndef ZABBIX_TLS_TCP_ACTIVE_H 21 #define ZABBIX_TLS_TCP_ACTIVE_H 22 23 #if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL) 24 typedef struct 25 { 26 const char *psk_identity; 27 size_t psk_identity_len; 28 char issuer[HOST_TLS_ISSUER_LEN_MAX]; 29 char subject[HOST_TLS_SUBJECT_LEN_MAX]; 30 } 31 zbx_tls_conn_attr_t; 32 33 int zbx_tls_get_attr_cert(const zbx_socket_t *s, zbx_tls_conn_attr_t *attr); 34 int zbx_tls_get_attr_psk(const zbx_socket_t *s, zbx_tls_conn_attr_t *attr); 35 int zbx_check_server_issuer_subject(zbx_socket_t *sock, char **error); 36 unsigned int zbx_tls_get_psk_usage(void); 37 #endif 38 39 #endif /* ZABBIX_TLS_TCP_ACTIVE_H */ 40