1*75c80078SLongpeng(Mike) /* 2*75c80078SLongpeng(Mike) * QEMU Crypto cipher driver supports 3*75c80078SLongpeng(Mike) * 4*75c80078SLongpeng(Mike) * Copyright (c) 2017 HUAWEI TECHNOLOGIES CO., LTD. 5*75c80078SLongpeng(Mike) * 6*75c80078SLongpeng(Mike) * Authors: 7*75c80078SLongpeng(Mike) * Longpeng(Mike) <longpeng2@huawei.com> 8*75c80078SLongpeng(Mike) * 9*75c80078SLongpeng(Mike) * This work is licensed under the terms of the GNU GPL, version 2 or 10*75c80078SLongpeng(Mike) * (at your option) any later version. See the COPYING file in the 11*75c80078SLongpeng(Mike) * top-level directory. 12*75c80078SLongpeng(Mike) * 13*75c80078SLongpeng(Mike) */ 14*75c80078SLongpeng(Mike) 15*75c80078SLongpeng(Mike) #ifndef QCRYPTO_CIPHERPRIV_H 16*75c80078SLongpeng(Mike) #define QCRYPTO_CIPHERPRIV_H 17*75c80078SLongpeng(Mike) 18*75c80078SLongpeng(Mike) typedef struct QCryptoCipherDriver QCryptoCipherDriver; 19*75c80078SLongpeng(Mike) 20*75c80078SLongpeng(Mike) struct QCryptoCipherDriver { 21*75c80078SLongpeng(Mike) int (*cipher_encrypt)(QCryptoCipher *cipher, 22*75c80078SLongpeng(Mike) const void *in, 23*75c80078SLongpeng(Mike) void *out, 24*75c80078SLongpeng(Mike) size_t len, 25*75c80078SLongpeng(Mike) Error **errp); 26*75c80078SLongpeng(Mike) 27*75c80078SLongpeng(Mike) int (*cipher_decrypt)(QCryptoCipher *cipher, 28*75c80078SLongpeng(Mike) const void *in, 29*75c80078SLongpeng(Mike) void *out, 30*75c80078SLongpeng(Mike) size_t len, 31*75c80078SLongpeng(Mike) Error **errp); 32*75c80078SLongpeng(Mike) 33*75c80078SLongpeng(Mike) int (*cipher_setiv)(QCryptoCipher *cipher, 34*75c80078SLongpeng(Mike) const uint8_t *iv, size_t niv, 35*75c80078SLongpeng(Mike) Error **errp); 36*75c80078SLongpeng(Mike) 37*75c80078SLongpeng(Mike) void (*cipher_free)(QCryptoCipher *cipher); 38*75c80078SLongpeng(Mike) }; 39*75c80078SLongpeng(Mike) 40*75c80078SLongpeng(Mike) #endif 41