Ignore:
Timestamp:
Feb 7, 2019, 8:36:33 AM (5 years ago)
Author:
coas-nagasima
Message:

wolfsslを3.15.7にバージョンアップ

File:
1 edited

Legend:

Unmodified
Added
Removed
  • asp3_tinet_ecnl_rx/trunk/wolfssl-3.12.2/wolfssl/wolfcrypt/hmac.h

    r337 r372  
    2020 */
    2121
    22 
     22/*!
     23    \file wolfssl/wolfcrypt/hmac.h
     24*/
    2325
    2426#ifndef NO_HMAC
     
    2729#define WOLF_CRYPT_HMAC_H
    2830
    29 #include <wolfssl/wolfcrypt/types.h>
     31#include <wolfssl/wolfcrypt/hash.h>
    3032
    31 #ifndef NO_MD5
    32     #include <wolfssl/wolfcrypt/md5.h>
     33#if defined(HAVE_FIPS) && \
     34        (!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2))
     35/* for fips @wc_fips */
     36    #include <cyassl/ctaocrypt/hmac.h>
     37    #define WC_HMAC_BLOCK_SIZE HMAC_BLOCK_SIZE
    3338#endif
    3439
    35 #ifndef NO_SHA
    36     #include <wolfssl/wolfcrypt/sha.h>
     40
     41#if defined(HAVE_FIPS) && \
     42        defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2)
     43        #include <wolfssl/wolfcrypt/fips.h>
    3744#endif
    38 
    39 #if !defined(NO_SHA256) || defined(WOLFSSL_SHA224)
    40     #include <wolfssl/wolfcrypt/sha256.h>
    41 #endif
    42 
    43 #ifdef WOLFSSL_SHA512
    44     #include <wolfssl/wolfcrypt/sha512.h>
    45 #endif
    46 
    47 #ifdef HAVE_BLAKE2
    48     #include <wolfssl/wolfcrypt/blake2.h>
    49 #endif
    50 
    51 #ifdef HAVE_FIPS
    52 /* for fips */
    53     #include <cyassl/ctaocrypt/hmac.h>
    54 #endif
    55 
    5645
    5746#ifdef __cplusplus
    5847    extern "C" {
    5948#endif
    60 #ifndef HAVE_FIPS
     49
     50/* avoid redefinition of structs */
     51#if !defined(HAVE_FIPS) || \
     52    (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2))
    6153
    6254#ifdef WOLFSSL_ASYNC_CRYPT
    6355    #include <wolfssl/wolfcrypt/async.h>
     56#endif
     57
     58#ifndef NO_OLD_WC_NAMES
     59    #define HMAC_BLOCK_SIZE WC_HMAC_BLOCK_SIZE
    6460#endif
    6561
     
    7268/* If any hash is not enabled, add the ID here. */
    7369#ifdef NO_MD5
    74     WC_MD5     = 0,
     70    WC_MD5     = WC_HASH_TYPE_MD5,
    7571#endif
    7672#ifdef NO_SHA
    77     WC_SHA     = 1,
     73    WC_SHA     = WC_HASH_TYPE_SHA,
    7874#endif
    7975#ifdef NO_SHA256
    80     WC_SHA256  = 2,
     76    WC_SHA256  = WC_HASH_TYPE_SHA256,
    8177#endif
    8278#ifndef WOLFSSL_SHA512
    83     WC_SHA512  = 4,
     79    WC_SHA512  = WC_HASH_TYPE_SHA512,
    8480#endif
    8581#ifndef WOLFSSL_SHA384
    86     WC_SHA384  = 5,
     82    WC_SHA384  = WC_HASH_TYPE_SHA384,
    8783#endif
    8884#ifndef HAVE_BLAKE2
    89     BLAKE2B_ID = 7,
     85    BLAKE2B_ID = WC_HASH_TYPE_BLAKE2B,
    9086#endif
    9187#ifndef WOLFSSL_SHA224
    92     WC_SHA224  = 8,
     88    WC_SHA224  = WC_HASH_TYPE_SHA224,
    9389#endif
    94 
     90#ifndef WOLFSSL_SHA3
     91    WC_SHA3_224 = WC_HASH_TYPE_SHA3_224,
     92    WC_SHA3_256 = WC_HASH_TYPE_SHA3_256,
     93    WC_SHA3_384 = WC_HASH_TYPE_SHA3_384,
     94    WC_SHA3_512 = WC_HASH_TYPE_SHA3_512,
     95#endif
     96};
    9597
    9698/* Select the largest available hash for the buffer size. */
    97 #if defined(WOLFSSL_SHA512)
    98     MAX_DIGEST_SIZE = WC_SHA512_DIGEST_SIZE,
    99     HMAC_BLOCK_SIZE = WC_SHA512_BLOCK_SIZE,
    100 #elif defined(HAVE_BLAKE2)
    101     MAX_DIGEST_SIZE = BLAKE2B_OUTBYTES,
    102     HMAC_BLOCK_SIZE = BLAKE2B_BLOCKBYTES,
    103 #elif defined(WOLFSSL_SHA384)
    104     MAX_DIGEST_SIZE = WC_SHA384_DIGEST_SIZE,
    105     HMAC_BLOCK_SIZE = WC_SHA384_BLOCK_SIZE
    106 #elif !defined(NO_SHA256)
    107     MAX_DIGEST_SIZE = WC_SHA256_DIGEST_SIZE,
    108     HMAC_BLOCK_SIZE = WC_SHA256_BLOCK_SIZE
    109 #elif defined(WOLFSSL_SHA224)
    110     MAX_DIGEST_SIZE = WC_SHA224_DIGEST_SIZE,
    111     HMAC_BLOCK_SIZE = WC_SHA224_BLOCK_SIZE
    112 #elif !defined(NO_SHA)
    113     MAX_DIGEST_SIZE = WC_SHA_DIGEST_SIZE,
    114     HMAC_BLOCK_SIZE = WC_SHA_BLOCK_SIZE,
    115 #elif !defined(NO_MD5)
    116     MAX_DIGEST_SIZE = WC_MD5_DIGEST_SIZE,
    117     HMAC_BLOCK_SIZE = WC_MD5_BLOCK_SIZE,
    118 #else
     99#define WC_HMAC_BLOCK_SIZE WC_MAX_BLOCK_SIZE
     100
     101#if !defined(WOLFSSL_SHA3) && !defined(WOLFSSL_SHA512) && !defined(HAVE_BLAKE2) && \
     102    !defined(WOLFSSL_SHA384) && defined(NO_SHA256) && defined(WOLFSSL_SHA224) && \
     103     defined(NO_SHA) && defined(NO_MD5)
    119104    #error "You have to have some kind of hash if you want to use HMAC."
    120105#endif
    121 };
    122106
    123107
     
    136120    wc_Sha256 sha256;
    137121#endif
    138 #ifdef WOLFSSL_SHA512
    139122#ifdef WOLFSSL_SHA384
    140123    wc_Sha384 sha384;
    141124#endif
     125#ifdef WOLFSSL_SHA512
    142126    wc_Sha512 sha512;
    143127#endif
    144128#ifdef HAVE_BLAKE2
    145129    Blake2b blake2b;
     130#endif
     131#ifdef WOLFSSL_SHA3
     132    wc_Sha3 sha3;
    146133#endif
    147134} Hash;
     
    150137typedef struct Hmac {
    151138    Hash    hash;
    152     word32  ipad[HMAC_BLOCK_SIZE  / sizeof(word32)];  /* same block size all*/
    153     word32  opad[HMAC_BLOCK_SIZE  / sizeof(word32)];
    154     word32  innerHash[MAX_DIGEST_SIZE / sizeof(word32)];
     139    word32  ipad[WC_HMAC_BLOCK_SIZE  / sizeof(word32)];  /* same block size all*/
     140    word32  opad[WC_HMAC_BLOCK_SIZE  / sizeof(word32)];
     141    word32  innerHash[WC_MAX_DIGEST_SIZE / sizeof(word32)];
    155142    void*   heap;                 /* heap hint */
    156143    byte    macType;              /* md5 sha or sha256 */
     
    160147    WC_ASYNC_DEV asyncDev;
    161148    word16       keyLen;          /* hmac key length (key in ipad) */
    162     #ifdef HAVE_CAVIUM
    163         byte*    data;            /* buffered input data for one call */
    164         word16   dataLen;
    165     #endif /* HAVE_CAVIUM */
    166149#endif /* WOLFSSL_ASYNC_CRYPT */
    167150} Hmac;
     
    179162
    180163WOLFSSL_API int wolfSSL_GetHmacMaxSize(void);
     164
     165WOLFSSL_LOCAL int _InitHmac(Hmac* hmac, int type, void* heap);
    181166
    182167#ifdef HAVE_HKDF
Note: See TracChangeset for help on using the changeset viewer.