This is a port of cyaSSL 2.7.0.
Dependents: CyaSSL_DTLS_Cellular CyaSSL_DTLS_Ethernet
sha.h
00001 /* sha.h for openssl */ 00002 00003 00004 #ifndef CYASSL_SHA_H_ 00005 #define CYASSL_SHA_H_ 00006 00007 #include <cyassl/ctaocrypt/settings.h> 00008 00009 #ifdef YASSL_PREFIX 00010 #include "prefix_sha.h" 00011 #endif 00012 00013 #ifdef __cplusplus 00014 extern "C" { 00015 #endif 00016 00017 00018 typedef struct CYASSL_SHA_CTX { 00019 int holder[24]; /* big enough to hold ctaocrypt sha, but check on init */ 00020 } CYASSL_SHA_CTX; 00021 00022 CYASSL_API void CyaSSL_SHA_Init(CYASSL_SHA_CTX*); 00023 CYASSL_API void CyaSSL_SHA_Update(CYASSL_SHA_CTX*, const void*, unsigned long); 00024 CYASSL_API void CyaSSL_SHA_Final(unsigned char*, CYASSL_SHA_CTX*); 00025 00026 /* SHA1 points to above, shouldn't use SHA0 ever */ 00027 CYASSL_API void CyaSSL_SHA1_Init(CYASSL_SHA_CTX*); 00028 CYASSL_API void CyaSSL_SHA1_Update(CYASSL_SHA_CTX*, const void*, unsigned long); 00029 CYASSL_API void CyaSSL_SHA1_Final(unsigned char*, CYASSL_SHA_CTX*); 00030 00031 enum { 00032 SHA_DIGEST_LENGTH = 20 00033 }; 00034 00035 00036 typedef CYASSL_SHA_CTX SHA_CTX; 00037 00038 #define SHA_Init CyaSSL_SHA_Init 00039 #define SHA_Update CyaSSL_SHA_Update 00040 #define SHA_Final CyaSSL_SHA_Final 00041 00042 #define SHA1_Init CyaSSL_SHA1_Init 00043 #define SHA1_Update CyaSSL_SHA1_Update 00044 #define SHA1_Final CyaSSL_SHA1_Final 00045 00046 00047 typedef struct CYASSL_SHA256_CTX { 00048 int holder[28]; /* big enough to hold ctaocrypt sha, but check on init */ 00049 } CYASSL_SHA256_CTX; 00050 00051 CYASSL_API void CyaSSL_SHA256_Init(CYASSL_SHA256_CTX*); 00052 CYASSL_API void CyaSSL_SHA256_Update(CYASSL_SHA256_CTX*, const void*, 00053 unsigned long); 00054 CYASSL_API void CyaSSL_SHA256_Final(unsigned char*, CYASSL_SHA256_CTX*); 00055 00056 enum { 00057 SHA256_DIGEST_LENGTH = 32 00058 }; 00059 00060 00061 typedef CYASSL_SHA256_CTX SHA256_CTX; 00062 00063 #define SHA256_Init CyaSSL_SHA256_Init 00064 #define SHA256_Update CyaSSL_SHA256_Update 00065 #define SHA256_Final CyaSSL_SHA256_Final 00066 00067 00068 #ifdef CYASSL_SHA384 00069 00070 typedef struct CYASSL_SHA384_CTX { 00071 long long holder[32]; /* big enough, but check on init */ 00072 } CYASSL_SHA384_CTX; 00073 00074 CYASSL_API void CyaSSL_SHA384_Init(CYASSL_SHA384_CTX*); 00075 CYASSL_API void CyaSSL_SHA384_Update(CYASSL_SHA384_CTX*, const void*, 00076 unsigned long); 00077 CYASSL_API void CyaSSL_SHA384_Final(unsigned char*, CYASSL_SHA384_CTX*); 00078 00079 enum { 00080 SHA384_DIGEST_LENGTH = 48 00081 }; 00082 00083 00084 typedef CYASSL_SHA384_CTX SHA384_CTX; 00085 00086 #define SHA384_Init CyaSSL_SHA384_Init 00087 #define SHA384_Update CyaSSL_SHA384_Update 00088 #define SHA384_Final CyaSSL_SHA384_Final 00089 00090 #endif /* CYASSL_SHA384 */ 00091 00092 #ifdef CYASSL_SHA512 00093 00094 typedef struct CYASSL_SHA512_CTX { 00095 long long holder[36]; /* big enough, but check on init */ 00096 } CYASSL_SHA512_CTX; 00097 00098 CYASSL_API void CyaSSL_SHA512_Init(CYASSL_SHA512_CTX*); 00099 CYASSL_API void CyaSSL_SHA512_Update(CYASSL_SHA512_CTX*, const void*, 00100 unsigned long); 00101 CYASSL_API void CyaSSL_SHA512_Final(unsigned char*, CYASSL_SHA512_CTX*); 00102 00103 enum { 00104 SHA512_DIGEST_LENGTH = 64 00105 }; 00106 00107 00108 typedef CYASSL_SHA512_CTX SHA512_CTX; 00109 00110 #define SHA512_Init CyaSSL_SHA512_Init 00111 #define SHA512_Update CyaSSL_SHA512_Update 00112 #define SHA512_Final CyaSSL_SHA512_Final 00113 00114 #endif /* CYASSL_SHA512 */ 00115 00116 00117 00118 00119 #ifdef __cplusplus 00120 } /* extern "C" */ 00121 #endif 00122 00123 00124 #endif /* CYASSL_SHA_H_ */ 00125
Generated on Tue Jul 12 2022 20:44:51 by 1.7.2