cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

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
     30struct 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
     41struct 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
     51struct 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
     62struct 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
     73int qcrypto_tls_creds_get_path(QCryptoTLSCreds *creds,
     74                               const char *filename,
     75                               bool required,
     76                               char **cred,
     77                               Error **errp);
     78
     79int 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 */