Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
sha.h
00001 /* sha.h for openssl */ 00002 00003 00004 #ifndef WOLFSSL_SHA_H_ 00005 #define WOLFSSL_SHA_H_ 00006 00007 #include <wolfssl/wolfcrypt/settings.h> 00008 00009 #ifdef WOLFSSL_PREFIX 00010 #include "prefix_sha.h" 00011 #endif 00012 00013 #ifdef __cplusplus 00014 extern "C" { 00015 #endif 00016 00017 00018 typedef struct WOLFSSL_SHA_CTX { 00019 int holder[24]; /* big enough to hold wolfcrypt sha, but check on init */ 00020 } WOLFSSL_SHA_CTX; 00021 00022 WOLFSSL_API void wolfSSL_SHA_Init(WOLFSSL_SHA_CTX*); 00023 WOLFSSL_API void wolfSSL_SHA_Update(WOLFSSL_SHA_CTX*, const void*, unsigned long); 00024 WOLFSSL_API void wolfSSL_SHA_Final(unsigned char*, WOLFSSL_SHA_CTX*); 00025 00026 /* SHA1 points to above, shouldn't use SHA0 ever */ 00027 WOLFSSL_API void wolfSSL_SHA1_Init(WOLFSSL_SHA_CTX*); 00028 WOLFSSL_API void wolfSSL_SHA1_Update(WOLFSSL_SHA_CTX*, const void*, unsigned long); 00029 WOLFSSL_API void wolfSSL_SHA1_Final(unsigned char*, WOLFSSL_SHA_CTX*); 00030 00031 enum { 00032 SHA_DIGEST_LENGTH = 20 00033 }; 00034 00035 00036 typedef WOLFSSL_SHA_CTX SHA_CTX; 00037 00038 #define SHA_Init wolfSSL_SHA_Init 00039 #define SHA_Update wolfSSL_SHA_Update 00040 #define SHA_Final wolfSSL_SHA_Final 00041 00042 #define SHA1_Init wolfSSL_SHA1_Init 00043 #define SHA1_Update wolfSSL_SHA1_Update 00044 #define SHA1_Final wolfSSL_SHA1_Final 00045 00046 00047 typedef struct WOLFSSL_SHA256_CTX { 00048 int holder[28]; /* big enough to hold wolfcrypt sha, but check on init */ 00049 } WOLFSSL_SHA256_CTX; 00050 00051 WOLFSSL_API void wolfSSL_SHA256_Init(WOLFSSL_SHA256_CTX*); 00052 WOLFSSL_API void wolfSSL_SHA256_Update(WOLFSSL_SHA256_CTX*, const void*, 00053 unsigned long); 00054 WOLFSSL_API void wolfSSL_SHA256_Final(unsigned char*, WOLFSSL_SHA256_CTX*); 00055 00056 enum { 00057 SHA256_DIGEST_LENGTH = 32 00058 }; 00059 00060 00061 typedef WOLFSSL_SHA256_CTX SHA256_CTX; 00062 00063 #define SHA256_Init wolfSSL_SHA256_Init 00064 #define SHA256_Update wolfSSL_SHA256_Update 00065 #define SHA256_Final wolfSSL_SHA256_Final 00066 00067 00068 #ifdef WOLFSSL_SHA384 00069 00070 typedef struct WOLFSSL_SHA384_CTX { 00071 long long holder[32]; /* big enough, but check on init */ 00072 } WOLFSSL_SHA384_CTX; 00073 00074 WOLFSSL_API void wolfSSL_SHA384_Init(WOLFSSL_SHA384_CTX*); 00075 WOLFSSL_API void wolfSSL_SHA384_Update(WOLFSSL_SHA384_CTX*, const void*, 00076 unsigned long); 00077 WOLFSSL_API void wolfSSL_SHA384_Final(unsigned char*, WOLFSSL_SHA384_CTX*); 00078 00079 enum { 00080 SHA384_DIGEST_LENGTH = 48 00081 }; 00082 00083 00084 typedef WOLFSSL_SHA384_CTX SHA384_CTX; 00085 00086 #define SHA384_Init wolfSSL_SHA384_Init 00087 #define SHA384_Update wolfSSL_SHA384_Update 00088 #define SHA384_Final wolfSSL_SHA384_Final 00089 00090 #endif /* WOLFSSL_SHA384 */ 00091 00092 #ifdef WOLFSSL_SHA512 00093 00094 typedef struct WOLFSSL_SHA512_CTX { 00095 long long holder[36]; /* big enough, but check on init */ 00096 } WOLFSSL_SHA512_CTX; 00097 00098 WOLFSSL_API void wolfSSL_SHA512_Init(WOLFSSL_SHA512_CTX*); 00099 WOLFSSL_API void wolfSSL_SHA512_Update(WOLFSSL_SHA512_CTX*, const void*, 00100 unsigned long); 00101 WOLFSSL_API void wolfSSL_SHA512_Final(unsigned char*, WOLFSSL_SHA512_CTX*); 00102 00103 enum { 00104 SHA512_DIGEST_LENGTH = 64 00105 }; 00106 00107 00108 typedef WOLFSSL_SHA512_CTX SHA512_CTX; 00109 00110 #define SHA512_Init wolfSSL_SHA512_Init 00111 #define SHA512_Update wolfSSL_SHA512_Update 00112 #define SHA512_Final wolfSSL_SHA512_Final 00113 00114 #endif /* WOLFSSL_SHA512 */ 00115 00116 00117 00118 00119 #ifdef __cplusplus 00120 } /* extern "C" */ 00121 #endif 00122 00123 00124 #endif /* WOLFSSL_SHA_H_ */ 00125 00126
Generated on Tue Jul 12 2022 15:55:20 by
1.7.2