1/* 2 * Special version of sha512.c that uses the libc SHA512 implementation 3 * of libc. 4 */ 5 6/* crypto/sha/sha512.c */ 7/* ==================================================================== 8 * Copyright (c) 2004 The OpenSSL Project. All rights reserved 9 * according to the OpenSSL license [found in ../../LICENSE]. 10 * ==================================================================== 11 */ 12// #include <openssl/opensslconf.h> 13 14#include <stdlib.h> 15#include <string.h> 16 17#include <openssl/crypto.h> 18#undef OSSL_DEPRECATEDIN_3_0 19#define OSSL_DEPRECATEDIN_3_0 20#include <openssl/sha.h> 21#include <openssl/opensslv.h> 22 23#include "internal/cryptlib.h" 24 25unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md) 26 { 27 SHA512_CTX c; 28 static unsigned char m[SHA384_DIGEST_LENGTH]; 29 30 if (md == NULL) md=m; 31 SHA384_Init(&c); 32 SHA384_Update(&c, d, n); 33 SHA384_Final(md, &c); 34 OPENSSL_cleanse(&c, sizeof(c)); 35 return(md); 36 } 37 38unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md) 39 { 40 SHA512_CTX c; 41 static unsigned char m[SHA512_DIGEST_LENGTH]; 42 43 if (md == NULL) md=m; 44 SHA512_Init(&c); 45 SHA512_Update(&c,d,n); 46 SHA512_Final(md,&c); 47 OPENSSL_cleanse(&c,sizeof(c)); 48 return(md); 49 } 50