xref: /qemu/crypto/cipherpriv.h (revision 75c800780919e389e6c272d84b31a33ec348ff79)
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