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