Xuyi Wang / wolfSSL

Dependents:   OS

Committer:
wolfSSL
Date:
Thu Apr 28 00:56:55 2016 +0000
Revision:
3:6f956bdb3073
wolfSSL 3.9.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolfSSL 3:6f956bdb3073 1 /* sha.h for openssl */
wolfSSL 3:6f956bdb3073 2
wolfSSL 3:6f956bdb3073 3
wolfSSL 3:6f956bdb3073 4 #ifndef WOLFSSL_SHA_H_
wolfSSL 3:6f956bdb3073 5 #define WOLFSSL_SHA_H_
wolfSSL 3:6f956bdb3073 6
wolfSSL 3:6f956bdb3073 7 #include <wolfssl/wolfcrypt/settings.h>
wolfSSL 3:6f956bdb3073 8
wolfSSL 3:6f956bdb3073 9 #ifdef WOLFSSL_PREFIX
wolfSSL 3:6f956bdb3073 10 #include "prefix_sha.h"
wolfSSL 3:6f956bdb3073 11 #endif
wolfSSL 3:6f956bdb3073 12
wolfSSL 3:6f956bdb3073 13 #ifdef __cplusplus
wolfSSL 3:6f956bdb3073 14 extern "C" {
wolfSSL 3:6f956bdb3073 15 #endif
wolfSSL 3:6f956bdb3073 16
wolfSSL 3:6f956bdb3073 17
wolfSSL 3:6f956bdb3073 18 typedef struct WOLFSSL_SHA_CTX {
wolfSSL 3:6f956bdb3073 19 int holder[24]; /* big enough to hold wolfcrypt sha, but check on init */
wolfSSL 3:6f956bdb3073 20 } WOLFSSL_SHA_CTX;
wolfSSL 3:6f956bdb3073 21
wolfSSL 3:6f956bdb3073 22 WOLFSSL_API void wolfSSL_SHA_Init(WOLFSSL_SHA_CTX*);
wolfSSL 3:6f956bdb3073 23 WOLFSSL_API void wolfSSL_SHA_Update(WOLFSSL_SHA_CTX*, const void*, unsigned long);
wolfSSL 3:6f956bdb3073 24 WOLFSSL_API void wolfSSL_SHA_Final(unsigned char*, WOLFSSL_SHA_CTX*);
wolfSSL 3:6f956bdb3073 25
wolfSSL 3:6f956bdb3073 26 /* SHA1 points to above, shouldn't use SHA0 ever */
wolfSSL 3:6f956bdb3073 27 WOLFSSL_API void wolfSSL_SHA1_Init(WOLFSSL_SHA_CTX*);
wolfSSL 3:6f956bdb3073 28 WOLFSSL_API void wolfSSL_SHA1_Update(WOLFSSL_SHA_CTX*, const void*, unsigned long);
wolfSSL 3:6f956bdb3073 29 WOLFSSL_API void wolfSSL_SHA1_Final(unsigned char*, WOLFSSL_SHA_CTX*);
wolfSSL 3:6f956bdb3073 30
wolfSSL 3:6f956bdb3073 31 enum {
wolfSSL 3:6f956bdb3073 32 SHA_DIGEST_LENGTH = 20
wolfSSL 3:6f956bdb3073 33 };
wolfSSL 3:6f956bdb3073 34
wolfSSL 3:6f956bdb3073 35
wolfSSL 3:6f956bdb3073 36 typedef WOLFSSL_SHA_CTX SHA_CTX;
wolfSSL 3:6f956bdb3073 37
wolfSSL 3:6f956bdb3073 38 #define SHA_Init wolfSSL_SHA_Init
wolfSSL 3:6f956bdb3073 39 #define SHA_Update wolfSSL_SHA_Update
wolfSSL 3:6f956bdb3073 40 #define SHA_Final wolfSSL_SHA_Final
wolfSSL 3:6f956bdb3073 41
wolfSSL 3:6f956bdb3073 42 #define SHA1_Init wolfSSL_SHA1_Init
wolfSSL 3:6f956bdb3073 43 #define SHA1_Update wolfSSL_SHA1_Update
wolfSSL 3:6f956bdb3073 44 #define SHA1_Final wolfSSL_SHA1_Final
wolfSSL 3:6f956bdb3073 45
wolfSSL 3:6f956bdb3073 46
wolfSSL 3:6f956bdb3073 47 typedef struct WOLFSSL_SHA256_CTX {
wolfSSL 3:6f956bdb3073 48 int holder[28]; /* big enough to hold wolfcrypt sha, but check on init */
wolfSSL 3:6f956bdb3073 49 } WOLFSSL_SHA256_CTX;
wolfSSL 3:6f956bdb3073 50
wolfSSL 3:6f956bdb3073 51 WOLFSSL_API void wolfSSL_SHA256_Init(WOLFSSL_SHA256_CTX*);
wolfSSL 3:6f956bdb3073 52 WOLFSSL_API void wolfSSL_SHA256_Update(WOLFSSL_SHA256_CTX*, const void*,
wolfSSL 3:6f956bdb3073 53 unsigned long);
wolfSSL 3:6f956bdb3073 54 WOLFSSL_API void wolfSSL_SHA256_Final(unsigned char*, WOLFSSL_SHA256_CTX*);
wolfSSL 3:6f956bdb3073 55
wolfSSL 3:6f956bdb3073 56 enum {
wolfSSL 3:6f956bdb3073 57 SHA256_DIGEST_LENGTH = 32
wolfSSL 3:6f956bdb3073 58 };
wolfSSL 3:6f956bdb3073 59
wolfSSL 3:6f956bdb3073 60
wolfSSL 3:6f956bdb3073 61 typedef WOLFSSL_SHA256_CTX SHA256_CTX;
wolfSSL 3:6f956bdb3073 62
wolfSSL 3:6f956bdb3073 63 #define SHA256_Init wolfSSL_SHA256_Init
wolfSSL 3:6f956bdb3073 64 #define SHA256_Update wolfSSL_SHA256_Update
wolfSSL 3:6f956bdb3073 65 #define SHA256_Final wolfSSL_SHA256_Final
wolfSSL 3:6f956bdb3073 66
wolfSSL 3:6f956bdb3073 67
wolfSSL 3:6f956bdb3073 68 #ifdef WOLFSSL_SHA384
wolfSSL 3:6f956bdb3073 69
wolfSSL 3:6f956bdb3073 70 typedef struct WOLFSSL_SHA384_CTX {
wolfSSL 3:6f956bdb3073 71 long long holder[32]; /* big enough, but check on init */
wolfSSL 3:6f956bdb3073 72 } WOLFSSL_SHA384_CTX;
wolfSSL 3:6f956bdb3073 73
wolfSSL 3:6f956bdb3073 74 WOLFSSL_API void wolfSSL_SHA384_Init(WOLFSSL_SHA384_CTX*);
wolfSSL 3:6f956bdb3073 75 WOLFSSL_API void wolfSSL_SHA384_Update(WOLFSSL_SHA384_CTX*, const void*,
wolfSSL 3:6f956bdb3073 76 unsigned long);
wolfSSL 3:6f956bdb3073 77 WOLFSSL_API void wolfSSL_SHA384_Final(unsigned char*, WOLFSSL_SHA384_CTX*);
wolfSSL 3:6f956bdb3073 78
wolfSSL 3:6f956bdb3073 79 enum {
wolfSSL 3:6f956bdb3073 80 SHA384_DIGEST_LENGTH = 48
wolfSSL 3:6f956bdb3073 81 };
wolfSSL 3:6f956bdb3073 82
wolfSSL 3:6f956bdb3073 83
wolfSSL 3:6f956bdb3073 84 typedef WOLFSSL_SHA384_CTX SHA384_CTX;
wolfSSL 3:6f956bdb3073 85
wolfSSL 3:6f956bdb3073 86 #define SHA384_Init wolfSSL_SHA384_Init
wolfSSL 3:6f956bdb3073 87 #define SHA384_Update wolfSSL_SHA384_Update
wolfSSL 3:6f956bdb3073 88 #define SHA384_Final wolfSSL_SHA384_Final
wolfSSL 3:6f956bdb3073 89
wolfSSL 3:6f956bdb3073 90 #endif /* WOLFSSL_SHA384 */
wolfSSL 3:6f956bdb3073 91
wolfSSL 3:6f956bdb3073 92 #ifdef WOLFSSL_SHA512
wolfSSL 3:6f956bdb3073 93
wolfSSL 3:6f956bdb3073 94 typedef struct WOLFSSL_SHA512_CTX {
wolfSSL 3:6f956bdb3073 95 long long holder[36]; /* big enough, but check on init */
wolfSSL 3:6f956bdb3073 96 } WOLFSSL_SHA512_CTX;
wolfSSL 3:6f956bdb3073 97
wolfSSL 3:6f956bdb3073 98 WOLFSSL_API void wolfSSL_SHA512_Init(WOLFSSL_SHA512_CTX*);
wolfSSL 3:6f956bdb3073 99 WOLFSSL_API void wolfSSL_SHA512_Update(WOLFSSL_SHA512_CTX*, const void*,
wolfSSL 3:6f956bdb3073 100 unsigned long);
wolfSSL 3:6f956bdb3073 101 WOLFSSL_API void wolfSSL_SHA512_Final(unsigned char*, WOLFSSL_SHA512_CTX*);
wolfSSL 3:6f956bdb3073 102
wolfSSL 3:6f956bdb3073 103 enum {
wolfSSL 3:6f956bdb3073 104 SHA512_DIGEST_LENGTH = 64
wolfSSL 3:6f956bdb3073 105 };
wolfSSL 3:6f956bdb3073 106
wolfSSL 3:6f956bdb3073 107
wolfSSL 3:6f956bdb3073 108 typedef WOLFSSL_SHA512_CTX SHA512_CTX;
wolfSSL 3:6f956bdb3073 109
wolfSSL 3:6f956bdb3073 110 #define SHA512_Init wolfSSL_SHA512_Init
wolfSSL 3:6f956bdb3073 111 #define SHA512_Update wolfSSL_SHA512_Update
wolfSSL 3:6f956bdb3073 112 #define SHA512_Final wolfSSL_SHA512_Final
wolfSSL 3:6f956bdb3073 113
wolfSSL 3:6f956bdb3073 114 #endif /* WOLFSSL_SHA512 */
wolfSSL 3:6f956bdb3073 115
wolfSSL 3:6f956bdb3073 116
wolfSSL 3:6f956bdb3073 117
wolfSSL 3:6f956bdb3073 118
wolfSSL 3:6f956bdb3073 119 #ifdef __cplusplus
wolfSSL 3:6f956bdb3073 120 } /* extern "C" */
wolfSSL 3:6f956bdb3073 121 #endif
wolfSSL 3:6f956bdb3073 122
wolfSSL 3:6f956bdb3073 123
wolfSSL 3:6f956bdb3073 124 #endif /* WOLFSSL_SHA_H_ */
wolfSSL 3:6f956bdb3073 125
wolfSSL 3:6f956bdb3073 126