The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/opencrypto/xform_auth.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $FreeBSD$       */
    2 /*      $OpenBSD: xform.h,v 1.8 2001/08/28 12:20:43 ben Exp $   */
    3 
    4 /*-
    5  * The author of this code is Angelos D. Keromytis (angelos@cis.upenn.edu)
    6  *
    7  * This code was written by Angelos D. Keromytis in Athens, Greece, in
    8  * February 2000. Network Security Technologies Inc. (NSTI) kindly
    9  * supported the development of this code.
   10  *
   11  * Copyright (c) 2000 Angelos D. Keromytis
   12  * Copyright (c) 2014 The FreeBSD Foundation
   13  * All rights reserved.
   14  *
   15  * Portions of this software were developed by John-Mark Gurney
   16  * under sponsorship of the FreeBSD Foundation and
   17  * Rubicon Communications, LLC (Netgate).
   18  *
   19  * Permission to use, copy, and modify this software without fee
   20  * is hereby granted, provided that this entire notice is included in
   21  * all source code copies of any software which is or includes a copy or
   22  * modification of this software. 
   23  *
   24  * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
   25  * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY
   26  * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
   27  * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
   28  * PURPOSE.
   29  */
   30 
   31 #ifndef _CRYPTO_XFORM_AUTH_H_
   32 #define _CRYPTO_XFORM_AUTH_H_
   33 
   34 #include <sys/types.h>
   35 
   36 #include <crypto/sha1.h>
   37 #include <crypto/sha2/sha224.h>
   38 #include <crypto/sha2/sha256.h>
   39 #include <crypto/sha2/sha384.h>
   40 #include <crypto/sha2/sha512.h>
   41 #include <opencrypto/rmd160.h>
   42 #include <opencrypto/gmac.h>
   43 #include <opencrypto/cbc_mac.h>
   44 
   45 #include <opencrypto/cryptodev.h>
   46 
   47 /* XXX use a define common with other hash stuff ! */
   48 #define AH_ALEN_MAX     64      /* max authenticator hash length */
   49 
   50 /* Declarations */
   51 struct auth_hash {
   52         int type;
   53         const char *name;
   54         uint16_t keysize;
   55         uint16_t hashsize; 
   56         uint16_t ctxsize;
   57         uint16_t blocksize;
   58         void (*Init) (void *);
   59         void (*Setkey) (void *, const uint8_t *, u_int);
   60         void (*Reinit) (void *, const uint8_t *, u_int);
   61         int  (*Update) (void *, const void *, u_int);
   62         void (*Final) (uint8_t *, void *);
   63 };
   64 
   65 extern const struct auth_hash auth_hash_null;
   66 extern const struct auth_hash auth_hash_hmac_sha1;
   67 extern const struct auth_hash auth_hash_hmac_ripemd_160;
   68 extern const struct auth_hash auth_hash_hmac_sha2_224;
   69 extern const struct auth_hash auth_hash_hmac_sha2_256;
   70 extern const struct auth_hash auth_hash_hmac_sha2_384;
   71 extern const struct auth_hash auth_hash_hmac_sha2_512;
   72 extern const struct auth_hash auth_hash_ripemd_160;
   73 extern const struct auth_hash auth_hash_sha1;
   74 extern const struct auth_hash auth_hash_sha2_224;
   75 extern const struct auth_hash auth_hash_sha2_256;
   76 extern const struct auth_hash auth_hash_sha2_384;
   77 extern const struct auth_hash auth_hash_sha2_512;
   78 extern const struct auth_hash auth_hash_nist_gmac_aes_128;
   79 extern const struct auth_hash auth_hash_nist_gmac_aes_192;
   80 extern const struct auth_hash auth_hash_nist_gmac_aes_256;
   81 extern const struct auth_hash auth_hash_blake2b;
   82 extern const struct auth_hash auth_hash_blake2s;
   83 extern const struct auth_hash auth_hash_poly1305;
   84 extern const struct auth_hash auth_hash_ccm_cbc_mac_128;
   85 extern const struct auth_hash auth_hash_ccm_cbc_mac_192;
   86 extern const struct auth_hash auth_hash_ccm_cbc_mac_256;
   87 
   88 union authctx {
   89         SHA1_CTX sha1ctx;
   90         RMD160_CTX rmd160ctx;
   91         SHA224_CTX sha224ctx;
   92         SHA256_CTX sha256ctx;
   93         SHA384_CTX sha384ctx;
   94         SHA512_CTX sha512ctx;
   95         struct aes_gmac_ctx aes_gmac_ctx;
   96         struct aes_cbc_mac_ctx aes_cbc_mac_ctx;
   97 };
   98 
   99 #endif /* _CRYPTO_XFORM_AUTH_H_ */

Cache object: 49e5e8eaea7c4bd7a2e0b9d18bf08880


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.