qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

tlscredspriv.h (2327B)


      1 /*
      2  * QEMU crypto TLS credential support private helpers
      3  *
      4  * Copyright (c) 2015 Red Hat, Inc.
      5  *
      6  * This library is free software; you can redistribute it and/or
      7  * modify it under the terms of the GNU Lesser General Public
      8  * License as published by the Free Software Foundation; either
      9  * version 2.1 of the License, or (at your option) any later version.
     10  *
     11  * This library is distributed in the hope that it will be useful,
     12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     14  * Lesser General Public License for more details.
     15  *
     16  * You should have received a copy of the GNU Lesser General Public
     17  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
     18  *
     19  */
     20 
     21 #ifndef QCRYPTO_TLSCREDSPRIV_H
     22 #define QCRYPTO_TLSCREDSPRIV_H
     23 
     24 #include "crypto/tlscreds.h"
     25 
     26 #ifdef CONFIG_GNUTLS
     27 #include <gnutls/gnutls.h>
     28 #endif
     29 
     30 struct QCryptoTLSCreds {
     31     Object parent_obj;
     32     char *dir;
     33     QCryptoTLSCredsEndpoint endpoint;
     34 #ifdef CONFIG_GNUTLS
     35     gnutls_dh_params_t dh_params;
     36 #endif
     37     bool verifyPeer;
     38     char *priority;
     39 };
     40 
     41 struct QCryptoTLSCredsAnon {
     42     QCryptoTLSCreds parent_obj;
     43 #ifdef CONFIG_GNUTLS
     44     union {
     45         gnutls_anon_server_credentials_t server;
     46         gnutls_anon_client_credentials_t client;
     47     } data;
     48 #endif
     49 };
     50 
     51 struct QCryptoTLSCredsPSK {
     52     QCryptoTLSCreds parent_obj;
     53     char *username;
     54 #ifdef CONFIG_GNUTLS
     55     union {
     56         gnutls_psk_server_credentials_t server;
     57         gnutls_psk_client_credentials_t client;
     58     } data;
     59 #endif
     60 };
     61 
     62 struct QCryptoTLSCredsX509 {
     63     QCryptoTLSCreds parent_obj;
     64 #ifdef CONFIG_GNUTLS
     65     gnutls_certificate_credentials_t data;
     66 #endif
     67     bool sanityCheck;
     68     char *passwordid;
     69 };
     70 
     71 #ifdef CONFIG_GNUTLS
     72 
     73 int qcrypto_tls_creds_get_path(QCryptoTLSCreds *creds,
     74                                const char *filename,
     75                                bool required,
     76                                char **cred,
     77                                Error **errp);
     78 
     79 int qcrypto_tls_creds_get_dh_params_file(QCryptoTLSCreds *creds,
     80                                          const char *filename,
     81                                          gnutls_dh_params_t *dh_params,
     82                                          Error **errp);
     83 
     84 #endif
     85 
     86 #endif /* QCRYPTO_TLSCREDSPRIV_H */