- Timestamp:
- Feb 7, 2019, 8:36:33 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_tinet_ecnl_arm/trunk/wolfssl-3.12.2/wolfssl/wolfcrypt/sha512.h
r352 r372 1 1 /* sha512.h 2 2 * 3 * Copyright (C) 2006-201 7wolfSSL Inc.3 * Copyright (C) 2006-2018 wolfSSL Inc. 4 4 * 5 5 * This file is part of wolfSSL. … … 20 20 */ 21 21 22 /*! 23 \file wolfssl/wolfcrypt/sha512.h 24 */ 25 22 26 23 27 #ifndef WOLF_CRYPT_SHA512_H … … 26 30 #include <wolfssl/wolfcrypt/types.h> 27 31 28 #if def WOLFSSL_SHA51232 #if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384) 29 33 30 /* for fips @wc_fips */ 31 #ifdef HAVE_FIPS 34 #if defined(HAVE_FIPS) && \ 35 defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2) 36 #include <wolfssl/wolfcrypt/fips.h> 37 #endif /* HAVE_FIPS_VERSION >= 2 */ 38 39 #if defined(HAVE_FIPS) && \ 40 (!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2)) 41 #ifdef WOLFSSL_SHA512 32 42 #define wc_Sha512 Sha512 33 43 #define WC_SHA512 SHA512 … … 35 45 #define WC_SHA512_DIGEST_SIZE SHA512_DIGEST_SIZE 36 46 #define WC_SHA512_PAD_SIZE SHA512_PAD_SIZE 47 #endif /* WOLFSSL_SHA512 */ 37 48 #ifdef WOLFSSL_SHA384 38 49 #define wc_Sha384 Sha384 … … 47 58 #define CYASSL_SHA384 48 59 #endif 60 /* for fips @wc_fips */ 49 61 #include <cyassl/ctaocrypt/sha512.h> 50 62 #endif … … 54 66 #endif 55 67 56 #ifndef HAVE_FIPS /* avoid redefinition of structs */ 68 /* avoid redefinition of structs */ 69 #if !defined(HAVE_FIPS) || \ 70 (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2)) 57 71 58 72 #ifdef WOLFSSL_ASYNC_CRYPT … … 60 74 #endif 61 75 62 #ifndef NO_OLD_WC_NAMES 76 #if defined(_MSC_VER) 77 #define SHA512_NOINLINE __declspec(noinline) 78 #elif defined(__GNUC__) 79 #define SHA512_NOINLINE __attribute__((noinline)) 80 #else 81 #define SHA512_NOINLINE 82 #endif 83 84 #ifdef WOLFSSL_SHA512 85 86 #if !defined(NO_OLD_SHA_NAMES) 87 #define SHA512 WC_SHA512 88 #endif 89 90 #if !defined(NO_OLD_WC_NAMES) 63 91 #define Sha512 wc_Sha512 64 #define SHA512 WC_SHA51265 92 #define SHA512_BLOCK_SIZE WC_SHA512_BLOCK_SIZE 66 93 #define SHA512_DIGEST_SIZE WC_SHA512_DIGEST_SIZE … … 68 95 #endif 69 96 97 #endif /* WOLFSSL_SHA512 */ 98 70 99 /* in bytes */ 71 100 enum { 72 WC_SHA512 = 4, /* hash type unique */ 101 #ifdef WOLFSSL_SHA512 102 WC_SHA512 = WC_HASH_TYPE_SHA512, 103 #endif 73 104 WC_SHA512_BLOCK_SIZE = 128, 74 105 WC_SHA512_DIGEST_SIZE = 64, … … 77 108 78 109 110 #ifdef WOLFSSL_IMX6_CAAM 111 #include "wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h" 112 #else 79 113 /* wc_Sha512 digest */ 80 114 typedef struct wc_Sha512 { 115 word64 digest[WC_SHA512_DIGEST_SIZE / sizeof(word64)]; 116 word64 buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64)]; 81 117 word32 buffLen; /* in bytes */ 82 118 word64 loLen; /* length in bytes */ 83 119 word64 hiLen; /* length in bytes */ 84 word64 digest[WC_SHA512_DIGEST_SIZE / sizeof(word64)];85 word64 buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64)];86 120 void* heap; 121 #ifdef USE_INTEL_SPEEDUP 122 const byte* data; 123 #endif 87 124 #ifdef WOLFSSL_ASYNC_CRYPT 88 125 WC_ASYNC_DEV asyncDev; 89 126 #endif /* WOLFSSL_ASYNC_CRYPT */ 127 #ifdef WOLFSSL_SMALL_STACK_CACHE 128 word64* W; 129 #endif 90 130 } wc_Sha512; 131 #endif 91 132 92 133 #endif /* HAVE_FIPS */ 134 135 #ifdef WOLFSSL_SHA512 93 136 94 137 WOLFSSL_API int wc_InitSha512(wc_Sha512*); 95 138 WOLFSSL_API int wc_InitSha512_ex(wc_Sha512*, void*, int); 96 139 WOLFSSL_API int wc_Sha512Update(wc_Sha512*, const byte*, word32); 140 WOLFSSL_API int wc_Sha512FinalRaw(wc_Sha512*, byte*); 97 141 WOLFSSL_API int wc_Sha512Final(wc_Sha512*, byte*); 98 142 WOLFSSL_API void wc_Sha512Free(wc_Sha512*); … … 101 145 WOLFSSL_API int wc_Sha512Copy(wc_Sha512* src, wc_Sha512* dst); 102 146 147 #endif /* WOLFSSL_SHA512 */ 148 103 149 #if defined(WOLFSSL_SHA384) 104 150 105 #ifndef HAVE_FIPS /* avoid redefinition of structs */ 151 /* avoid redefinition of structs */ 152 #if !defined(HAVE_FIPS) || \ 153 (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2)) 106 154 107 #ifndef NO_OLD_WC_NAMES 155 #if !defined(NO_OLD_SHA_NAMES) 156 #define SHA384 WC_SHA384 157 #endif 158 159 #if !defined(NO_OLD_WC_NAMES) 108 160 #define Sha384 wc_Sha384 109 #define SHA384 WC_SHA384110 161 #define SHA384_BLOCK_SIZE WC_SHA384_BLOCK_SIZE 111 162 #define SHA384_DIGEST_SIZE WC_SHA384_DIGEST_SIZE … … 115 166 /* in bytes */ 116 167 enum { 117 WC_SHA384 = 5, /* hash type unique */168 WC_SHA384 = WC_HASH_TYPE_SHA384, 118 169 WC_SHA384_BLOCK_SIZE = WC_SHA512_BLOCK_SIZE, 119 170 WC_SHA384_DIGEST_SIZE = 48, 120 171 WC_SHA384_PAD_SIZE = WC_SHA512_PAD_SIZE 121 172 }; 173 122 174 123 175 typedef wc_Sha512 wc_Sha384; … … 127 179 WOLFSSL_API int wc_InitSha384_ex(wc_Sha384*, void*, int); 128 180 WOLFSSL_API int wc_Sha384Update(wc_Sha384*, const byte*, word32); 181 WOLFSSL_API int wc_Sha384FinalRaw(wc_Sha384*, byte*); 129 182 WOLFSSL_API int wc_Sha384Final(wc_Sha384*, byte*); 130 183 WOLFSSL_API void wc_Sha384Free(wc_Sha384*); … … 139 192 #endif 140 193 141 #endif /* WOLFSSL_SHA512 */194 #endif /* WOLFSSL_SHA512 || WOLFSSL_SHA384 */ 142 195 #endif /* WOLF_CRYPT_SHA512_H */ 143 196
Note:
See TracChangeset
for help on using the changeset viewer.