| 161 |
163 |
| 162 void ws_sha512_final(WS_SHA256_CTX *ctx, unsigned char *md) { |
164 void ws_sha512_final(WS_SHA256_CTX *ctx, unsigned char *md) { |
| 163 EVP_DigestFinal(*ctx, md, NULL); |
165 EVP_DigestFinal(*ctx, md, NULL); |
| 164 } |
166 } |
| 165 |
167 |
| 166 #endif |
168 #endif // OPENSSL_VERSION_NUMBER < 0x30000000L |
| |
169 |
| |
170 #endif // WS_USE_OPENSSL |
| |
171 |
| |
172 |
| |
173 #ifdef WS_USE_CRYPTO_COMMON |
| |
174 |
| |
175 int ws_sha1_init(WS_SHA1_CTX *ctx) { |
| |
176 CC_SHA1_Init(ctx); |
| |
177 return 0; |
| |
178 } |
| |
179 |
| |
180 void ws_sha1_update(WS_SHA1_CTX *ctx, const char *data, size_t len) { |
| |
181 CC_SHA1_Update(ctx, data, len); |
| |
182 } |
| |
183 |
| |
184 void ws_sha1_final(WS_SHA1_CTX *ctx, unsigned char *buf) { |
| |
185 CC_SHA1_Final(buf, ctx); |
| |
186 } |
| |
187 |
| |
188 int ws_sha256_init(WS_SHA256_CTX *ctx) { |
| |
189 CC_SHA256_Init(ctx); |
| |
190 return 0; |
| |
191 } |
| |
192 |
| |
193 void ws_sha256_update(WS_SHA256_CTX *ctx, const char *data, size_t len) { |
| |
194 CC_SHA256_Update(ctx, data, len); |
| |
195 } |
| |
196 |
| |
197 void ws_sha256_final(WS_SHA256_CTX *ctx, unsigned char *buf) { |
| |
198 CC_SHA256_Final(buf, ctx); |
| |
199 } |
| |
200 |
| |
201 |
| |
202 int ws_sha512_init(WS_SHA512_CTX *ctx) { |
| |
203 CC_SHA512_Init(ctx); |
| |
204 return 0; |
| |
205 } |
| |
206 |
| |
207 void ws_sha512_update(WS_SHA512_CTX *ctx, const char *data, size_t len) { |
| |
208 CC_SHA512_Update(ctx, data, len); |
| |
209 } |
| |
210 |
| |
211 void ws_sha512_final(WS_SHA512_CTX *ctx, unsigned char *buf) { |
| |
212 CC_SHA512_Final(buf, ctx); |
| |
213 } |
| |
214 |
| |
215 #endif // WS_USE_CRYPTO_COMMON |
| |
216 |