1 /* SPDX-License-Identifier: GPL-2.0-or-later * 1 2 /* 3 * Crypto engine API 4 * 5 * Copyright (c) 2016 Baolin Wang <baolin.wang 6 */ 7 #ifndef _CRYPTO_ENGINE_H 8 #define _CRYPTO_ENGINE_H 9 10 #include <crypto/aead.h> 11 #include <crypto/akcipher.h> 12 #include <crypto/hash.h> 13 #include <crypto/kpp.h> 14 #include <crypto/skcipher.h> 15 #include <linux/types.h> 16 17 struct crypto_engine; 18 struct device; 19 20 /* 21 * struct crypto_engine_op - crypto hardware e 22 * @do_one_request: do encryption for current 23 */ 24 struct crypto_engine_op { 25 int (*do_one_request)(struct crypto_en 26 void *areq); 27 }; 28 29 struct aead_engine_alg { 30 struct aead_alg base; 31 struct crypto_engine_op op; 32 }; 33 34 struct ahash_engine_alg { 35 struct ahash_alg base; 36 struct crypto_engine_op op; 37 }; 38 39 struct akcipher_engine_alg { 40 struct akcipher_alg base; 41 struct crypto_engine_op op; 42 }; 43 44 struct kpp_engine_alg { 45 struct kpp_alg base; 46 struct crypto_engine_op op; 47 }; 48 49 struct skcipher_engine_alg { 50 struct skcipher_alg base; 51 struct crypto_engine_op op; 52 }; 53 54 int crypto_transfer_aead_request_to_engine(str 55 str 56 int crypto_transfer_akcipher_request_to_engine 57 58 int crypto_transfer_hash_request_to_engine(str 59 60 int crypto_transfer_kpp_request_to_engine(stru 61 stru 62 int crypto_transfer_skcipher_request_to_engine 63 64 void crypto_finalize_aead_request(struct crypt 65 struct aead_ 66 void crypto_finalize_akcipher_request(struct c 67 struct a 68 void crypto_finalize_hash_request(struct crypt 69 struct ahash 70 void crypto_finalize_kpp_request(struct crypto 71 struct kpp_re 72 void crypto_finalize_skcipher_request(struct c 73 struct s 74 int crypto_engine_start(struct crypto_engine * 75 int crypto_engine_stop(struct crypto_engine *e 76 struct crypto_engine *crypto_engine_alloc_init 77 struct crypto_engine *crypto_engine_alloc_init 78 79 80 81 void crypto_engine_exit(struct crypto_engine * 82 83 int crypto_engine_register_aead(struct aead_en 84 void crypto_engine_unregister_aead(struct aead 85 int crypto_engine_register_aeads(struct aead_e 86 void crypto_engine_unregister_aeads(struct aea 87 88 int crypto_engine_register_ahash(struct ahash_ 89 void crypto_engine_unregister_ahash(struct aha 90 int crypto_engine_register_ahashes(struct ahas 91 void crypto_engine_unregister_ahashes(struct a 92 int coun 93 94 int crypto_engine_register_akcipher(struct akc 95 void crypto_engine_unregister_akcipher(struct 96 97 int crypto_engine_register_kpp(struct kpp_engi 98 void crypto_engine_unregister_kpp(struct kpp_e 99 100 int crypto_engine_register_skcipher(struct skc 101 void crypto_engine_unregister_skcipher(struct 102 int crypto_engine_register_skciphers(struct sk 103 int count 104 void crypto_engine_unregister_skciphers(struct 105 int co 106 107 #endif /* _CRYPTO_ENGINE_H */ 108
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.