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

afalgpriv.h (1378B)


      1/*
      2 * QEMU Crypto af_alg support
      3 *
      4 * Copyright (c) 2017 HUAWEI TECHNOLOGIES CO., LTD.
      5 *
      6 * Authors:
      7 *    Longpeng(Mike) <longpeng2@huawei.com>
      8 *
      9 * This work is licensed under the terms of the GNU GPL, version 2 or
     10 * (at your option) any later version.  See the COPYING file in the
     11 * top-level directory.
     12 */
     13
     14#ifndef QCRYPTO_AFALGPRIV_H
     15#define QCRYPTO_AFALGPRIV_H
     16
     17#include <linux/if_alg.h>
     18#include "crypto/cipher.h"
     19
     20#define SALG_TYPE_LEN_MAX 14
     21#define SALG_NAME_LEN_MAX 64
     22
     23#ifndef SOL_ALG
     24#define SOL_ALG 279
     25#endif
     26
     27#define AFALG_TYPE_CIPHER "skcipher"
     28#define AFALG_TYPE_HASH "hash"
     29
     30#define ALG_OPTYPE_LEN 4
     31#define ALG_MSGIV_LEN(len) (sizeof(struct af_alg_iv) + (len))
     32
     33typedef struct QCryptoAFAlg QCryptoAFAlg;
     34
     35struct QCryptoAFAlg {
     36    QCryptoCipher base;
     37
     38    int tfmfd;
     39    int opfd;
     40    struct msghdr *msg;
     41    struct cmsghdr *cmsg;
     42};
     43
     44/**
     45 * qcrypto_afalg_comm_alloc:
     46 * @type: the type of crypto operation
     47 * @name: the name of crypto operation
     48 *
     49 * Allocate a QCryptoAFAlg object and bind itself to
     50 * a AF_ALG socket.
     51 *
     52 * Returns:
     53 *  a new QCryptoAFAlg object, or NULL in error.
     54 */
     55QCryptoAFAlg *
     56qcrypto_afalg_comm_alloc(const char *type, const char *name,
     57                         Error **errp);
     58
     59/**
     60 * afalg_comm_free:
     61 * @afalg: the QCryptoAFAlg object
     62 *
     63 * Free the @afalg.
     64 */
     65void qcrypto_afalg_comm_free(QCryptoAFAlg *afalg);
     66
     67#endif