brintos

brintos / linux-shallow public Read only

0
0
Text · 5.7 KiB · 20a6c0f Raw
214 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/*3 * Crypto user configuration API.4 *5 * Copyright (C) 2011 secunet Security Networks AG6 * Copyright (C) 2011 Steffen Klassert <steffen.klassert@secunet.com>7 *8 * This program is free software; you can redistribute it and/or modify it9 * under the terms and conditions of the GNU General Public License,10 * version 2, as published by the Free Software Foundation.11 *12 * This program is distributed in the hope it will be useful, but WITHOUT13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or14 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for15 * more details.16 *17 * You should have received a copy of the GNU General Public License along with18 * this program; if not, write to the Free Software Foundation, Inc.,19 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.20 */21 22#ifndef _UAPI_LINUX_CRYPTOUSER_H23#define _UAPI_LINUX_CRYPTOUSER_H24 25#include <linux/types.h>26 27/* Netlink configuration messages.  */28enum {29	CRYPTO_MSG_BASE = 0x10,30	CRYPTO_MSG_NEWALG = 0x10,31	CRYPTO_MSG_DELALG,32	CRYPTO_MSG_UPDATEALG,33	CRYPTO_MSG_GETALG,34	CRYPTO_MSG_DELRNG,35	CRYPTO_MSG_GETSTAT, /* No longer supported, do not use. */36	__CRYPTO_MSG_MAX37};38#define CRYPTO_MSG_MAX (__CRYPTO_MSG_MAX - 1)39#define CRYPTO_NR_MSGTYPES (CRYPTO_MSG_MAX + 1 - CRYPTO_MSG_BASE)40 41#define CRYPTO_MAX_NAME 6442 43/* Netlink message attributes.  */44enum crypto_attr_type_t {45	CRYPTOCFGA_UNSPEC,46	CRYPTOCFGA_PRIORITY_VAL,	/* __u32 */47	CRYPTOCFGA_REPORT_LARVAL,	/* struct crypto_report_larval */48	CRYPTOCFGA_REPORT_HASH,		/* struct crypto_report_hash */49	CRYPTOCFGA_REPORT_BLKCIPHER,	/* struct crypto_report_blkcipher */50	CRYPTOCFGA_REPORT_AEAD,		/* struct crypto_report_aead */51	CRYPTOCFGA_REPORT_COMPRESS,	/* struct crypto_report_comp */52	CRYPTOCFGA_REPORT_RNG,		/* struct crypto_report_rng */53	CRYPTOCFGA_REPORT_CIPHER,	/* struct crypto_report_cipher */54	CRYPTOCFGA_REPORT_AKCIPHER,	/* struct crypto_report_akcipher */55	CRYPTOCFGA_REPORT_KPP,		/* struct crypto_report_kpp */56	CRYPTOCFGA_REPORT_ACOMP,	/* struct crypto_report_acomp */57	CRYPTOCFGA_STAT_LARVAL,		/* No longer supported, do not use. */58	CRYPTOCFGA_STAT_HASH,		/* No longer supported, do not use. */59	CRYPTOCFGA_STAT_BLKCIPHER,	/* No longer supported, do not use. */60	CRYPTOCFGA_STAT_AEAD,		/* No longer supported, do not use. */61	CRYPTOCFGA_STAT_COMPRESS,	/* No longer supported, do not use. */62	CRYPTOCFGA_STAT_RNG,		/* No longer supported, do not use. */63	CRYPTOCFGA_STAT_CIPHER,		/* No longer supported, do not use. */64	CRYPTOCFGA_STAT_AKCIPHER,	/* No longer supported, do not use. */65	CRYPTOCFGA_STAT_KPP,		/* No longer supported, do not use. */66	CRYPTOCFGA_STAT_ACOMP,		/* No longer supported, do not use. */67	__CRYPTOCFGA_MAX68 69#define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1)70};71 72struct crypto_user_alg {73	char cru_name[CRYPTO_MAX_NAME];74	char cru_driver_name[CRYPTO_MAX_NAME];75	char cru_module_name[CRYPTO_MAX_NAME];76	__u32 cru_type;77	__u32 cru_mask;78	__u32 cru_refcnt;79	__u32 cru_flags;80};81 82/* No longer supported, do not use. */83struct crypto_stat_aead {84	char type[CRYPTO_MAX_NAME];85	__u64 stat_encrypt_cnt;86	__u64 stat_encrypt_tlen;87	__u64 stat_decrypt_cnt;88	__u64 stat_decrypt_tlen;89	__u64 stat_err_cnt;90};91 92/* No longer supported, do not use. */93struct crypto_stat_akcipher {94	char type[CRYPTO_MAX_NAME];95	__u64 stat_encrypt_cnt;96	__u64 stat_encrypt_tlen;97	__u64 stat_decrypt_cnt;98	__u64 stat_decrypt_tlen;99	__u64 stat_verify_cnt;100	__u64 stat_sign_cnt;101	__u64 stat_err_cnt;102};103 104/* No longer supported, do not use. */105struct crypto_stat_cipher {106	char type[CRYPTO_MAX_NAME];107	__u64 stat_encrypt_cnt;108	__u64 stat_encrypt_tlen;109	__u64 stat_decrypt_cnt;110	__u64 stat_decrypt_tlen;111	__u64 stat_err_cnt;112};113 114/* No longer supported, do not use. */115struct crypto_stat_compress {116	char type[CRYPTO_MAX_NAME];117	__u64 stat_compress_cnt;118	__u64 stat_compress_tlen;119	__u64 stat_decompress_cnt;120	__u64 stat_decompress_tlen;121	__u64 stat_err_cnt;122};123 124/* No longer supported, do not use. */125struct crypto_stat_hash {126	char type[CRYPTO_MAX_NAME];127	__u64 stat_hash_cnt;128	__u64 stat_hash_tlen;129	__u64 stat_err_cnt;130};131 132/* No longer supported, do not use. */133struct crypto_stat_kpp {134	char type[CRYPTO_MAX_NAME];135	__u64 stat_setsecret_cnt;136	__u64 stat_generate_public_key_cnt;137	__u64 stat_compute_shared_secret_cnt;138	__u64 stat_err_cnt;139};140 141/* No longer supported, do not use. */142struct crypto_stat_rng {143	char type[CRYPTO_MAX_NAME];144	__u64 stat_generate_cnt;145	__u64 stat_generate_tlen;146	__u64 stat_seed_cnt;147	__u64 stat_err_cnt;148};149 150/* No longer supported, do not use. */151struct crypto_stat_larval {152	char type[CRYPTO_MAX_NAME];153};154 155struct crypto_report_larval {156	char type[CRYPTO_MAX_NAME];157};158 159struct crypto_report_hash {160	char type[CRYPTO_MAX_NAME];161	unsigned int blocksize;162	unsigned int digestsize;163};164 165struct crypto_report_cipher {166	char type[CRYPTO_MAX_NAME];167	unsigned int blocksize;168	unsigned int min_keysize;169	unsigned int max_keysize;170};171 172struct crypto_report_blkcipher {173	char type[CRYPTO_MAX_NAME];174	char geniv[CRYPTO_MAX_NAME];175	unsigned int blocksize;176	unsigned int min_keysize;177	unsigned int max_keysize;178	unsigned int ivsize;179};180 181struct crypto_report_aead {182	char type[CRYPTO_MAX_NAME];183	char geniv[CRYPTO_MAX_NAME];184	unsigned int blocksize;185	unsigned int maxauthsize;186	unsigned int ivsize;187};188 189struct crypto_report_comp {190	char type[CRYPTO_MAX_NAME];191};192 193struct crypto_report_rng {194	char type[CRYPTO_MAX_NAME];195	unsigned int seedsize;196};197 198struct crypto_report_akcipher {199	char type[CRYPTO_MAX_NAME];200};201 202struct crypto_report_kpp {203	char type[CRYPTO_MAX_NAME];204};205 206struct crypto_report_acomp {207	char type[CRYPTO_MAX_NAME];208};209 210#define CRYPTO_REPORT_MAXSIZE (sizeof(struct crypto_user_alg) + \211			       sizeof(struct crypto_report_blkcipher))212 213#endif /* _UAPI_LINUX_CRYPTOUSER_H */214