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#include <openssl/sha.h> 19#include <openssl/opensslv.h> 20 21#include "internal/cryptlib.h" 22 23unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md) 24 { 25 SHA512_CTX c; 26 static unsigned char m[SHA384_DIGEST_LENGTH]; 27 28 if (md == NULL) md=m; 29 SHA384_Init(&c); 30 SHA384_Update(&c, d, n); 31 SHA384_Final(md, &c); 32 OPENSSL_cleanse(&c, sizeof(c)); 33 return(md); 34 } 35 36unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md) 37 { 38 SHA512_CTX c; 39 static unsigned char m[SHA512_DIGEST_LENGTH]; 40 41 if (md == NULL) md=m; 42 SHA512_Init(&c); 43 SHA512_Update(&c,d,n); 44 SHA512_Final(md,&c); 45 OPENSSL_cleanse(&c,sizeof(c)); 46 return(md); 47 } 48