linux/include/linux/cryptouser.h
<<
>>
Prefs
   1/*
   2 * Crypto user configuration API.
   3 *
   4 * Copyright (C) 2011 secunet Security Networks AG
   5 * Copyright (C) 2011 Steffen Klassert <steffen.klassert@secunet.com>
   6 *
   7 * This program is free software; you can redistribute it and/or modify it
   8 * under the terms and conditions of the GNU General Public License,
   9 * version 2, as published by the Free Software Foundation.
  10 *
  11 * This program is distributed in the hope it will be useful, but WITHOUT
  12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  14 * more details.
  15 *
  16 * You should have received a copy of the GNU General Public License along with
  17 * this program; if not, write to the Free Software Foundation, Inc.,
  18 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
  19 */
  20
  21/* Netlink configuration messages.  */
  22enum {
  23        CRYPTO_MSG_BASE = 0x10,
  24        CRYPTO_MSG_NEWALG = 0x10,
  25        CRYPTO_MSG_DELALG,
  26        CRYPTO_MSG_UPDATEALG,
  27        CRYPTO_MSG_GETALG,
  28        __CRYPTO_MSG_MAX
  29};
  30#define CRYPTO_MSG_MAX (__CRYPTO_MSG_MAX - 1)
  31#define CRYPTO_NR_MSGTYPES (CRYPTO_MSG_MAX + 1 - CRYPTO_MSG_BASE)
  32
  33#define CRYPTO_MAX_NAME CRYPTO_MAX_ALG_NAME
  34
  35/* Netlink message attributes.  */
  36enum crypto_attr_type_t {
  37        CRYPTOCFGA_UNSPEC,
  38        CRYPTOCFGA_PRIORITY_VAL,        /* __u32 */
  39        CRYPTOCFGA_REPORT_LARVAL,       /* struct crypto_report_larval */
  40        CRYPTOCFGA_REPORT_HASH,         /* struct crypto_report_hash */
  41        CRYPTOCFGA_REPORT_BLKCIPHER,    /* struct crypto_report_blkcipher */
  42        CRYPTOCFGA_REPORT_AEAD,         /* struct crypto_report_aead */
  43        CRYPTOCFGA_REPORT_COMPRESS,     /* struct crypto_report_comp */
  44        CRYPTOCFGA_REPORT_RNG,          /* struct crypto_report_rng */
  45        CRYPTOCFGA_REPORT_CIPHER,       /* struct crypto_report_cipher */
  46        __CRYPTOCFGA_MAX
  47
  48#define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1)
  49};
  50
  51struct crypto_user_alg {
  52        char cru_name[CRYPTO_MAX_ALG_NAME];
  53        char cru_driver_name[CRYPTO_MAX_ALG_NAME];
  54        char cru_module_name[CRYPTO_MAX_ALG_NAME];
  55        __u32 cru_type;
  56        __u32 cru_mask;
  57        __u32 cru_refcnt;
  58        __u32 cru_flags;
  59};
  60
  61struct crypto_report_larval {
  62        char type[CRYPTO_MAX_NAME];
  63};
  64
  65struct crypto_report_hash {
  66        char type[CRYPTO_MAX_NAME];
  67        unsigned int blocksize;
  68        unsigned int digestsize;
  69};
  70
  71struct crypto_report_cipher {
  72        char type[CRYPTO_MAX_ALG_NAME];
  73        unsigned int blocksize;
  74        unsigned int min_keysize;
  75        unsigned int max_keysize;
  76};
  77
  78struct crypto_report_blkcipher {
  79        char type[CRYPTO_MAX_NAME];
  80        char geniv[CRYPTO_MAX_NAME];
  81        unsigned int blocksize;
  82        unsigned int min_keysize;
  83        unsigned int max_keysize;
  84        unsigned int ivsize;
  85};
  86
  87struct crypto_report_aead {
  88        char type[CRYPTO_MAX_NAME];
  89        char geniv[CRYPTO_MAX_NAME];
  90        unsigned int blocksize;
  91        unsigned int maxauthsize;
  92        unsigned int ivsize;
  93};
  94
  95struct crypto_report_comp {
  96        char type[CRYPTO_MAX_NAME];
  97};
  98
  99struct crypto_report_rng {
 100        char type[CRYPTO_MAX_NAME];
 101        unsigned int seedsize;
 102};
 103
 104#define CRYPTO_REPORT_MAXSIZE (sizeof(struct crypto_user_alg) + \
 105                               sizeof(struct crypto_report_blkcipher))
 106
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.