1300903Sallanjude/*-
2300903Sallanjude * Copyright (c) 2015 Allan Jude <allanjude@FreeBSD.org>
3300903Sallanjude * All rights reserved.
4300903Sallanjude *
5300903Sallanjude * Redistribution and use in source and binary forms, with or without
6300903Sallanjude * modification, are permitted provided that the following conditions
7300903Sallanjude * are met:
8300903Sallanjude * 1. Redistributions of source code must retain the above copyright
9300903Sallanjude *    notice, this list of conditions and the following disclaimer.
10300903Sallanjude * 2. Redistributions in binary form must reproduce the above copyright
11300903Sallanjude *    notice, this list of conditions and the following disclaimer in the
12300903Sallanjude *    documentation and/or other materials provided with the distribution.
13300903Sallanjude *
14300903Sallanjude * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15300903Sallanjude * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16300903Sallanjude * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17300903Sallanjude * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18300903Sallanjude * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19300903Sallanjude * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20300903Sallanjude * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21300903Sallanjude * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22300903Sallanjude * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23300903Sallanjude * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24300903Sallanjude * SUCH DAMAGE.
25300903Sallanjude *
26300903Sallanjude * $FreeBSD: releng/11.0/sys/crypto/sha2/sha512t.h 300903 2016-05-28 16:06:07Z allanjude $
27300903Sallanjude */
28300903Sallanjude
29300903Sallanjude#ifndef _SHA512T_H_
30300903Sallanjude#define _SHA512T_H_
31300903Sallanjude
32300903Sallanjude#include "sha512.h"
33300903Sallanjude
34300903Sallanjude#ifndef _KERNEL
35300903Sallanjude#include <sys/types.h>
36300903Sallanjude#endif
37300903Sallanjude
38300903Sallanjude#define SHA512_224_DIGEST_LENGTH	28
39300903Sallanjude#define SHA512_224_DIGEST_STRING_LENGTH	(SHA512_224_DIGEST_LENGTH * 2 + 1)
40300903Sallanjude#define SHA512_256_DIGEST_LENGTH	32
41300903Sallanjude#define SHA512_256_DIGEST_STRING_LENGTH	(SHA512_256_DIGEST_LENGTH * 2 + 1)
42300903Sallanjude
43300903Sallanjude__BEGIN_DECLS
44300903Sallanjude
45300903Sallanjude/* Ensure libmd symbols do not clash with libcrypto */
46300903Sallanjude#ifndef SHA512_224_Init
47300903Sallanjude#define SHA512_224_Init		_libmd_SHA512_224_Init
48300903Sallanjude#endif
49300903Sallanjude#ifndef SHA512_224_Update
50300903Sallanjude#define SHA512_224_Update	_libmd_SHA512_224_Update
51300903Sallanjude#endif
52300903Sallanjude#ifndef SHA512_224_Final
53300903Sallanjude#define SHA512_224_Final	_libmd_SHA512_224_Final
54300903Sallanjude#endif
55300903Sallanjude#ifndef SHA512_224_End
56300903Sallanjude#define SHA512_224_End		_libmd_SHA512_224_End
57300903Sallanjude#endif
58300903Sallanjude#ifndef SHA512_224_File
59300903Sallanjude#define SHA512_224_File		_libmd_SHA512_224_File
60300903Sallanjude#endif
61300903Sallanjude#ifndef SHA512_224_FileChunk
62300903Sallanjude#define SHA512_224_FileChunk	_libmd_SHA512_224_FileChunk
63300903Sallanjude#endif
64300903Sallanjude#ifndef SHA512_224_Data
65300903Sallanjude#define SHA512_224_Data		_libmd_SHA512_224_Data
66300903Sallanjude#endif
67300903Sallanjude
68300903Sallanjude#ifndef SHA512_224_Transform
69300903Sallanjude#define SHA512_224_Transform	_libmd_SHA512_224_Transform
70300903Sallanjude#endif
71300903Sallanjude#ifndef SHA512_224_version
72300903Sallanjude#define SHA512_224_version	_libmd_SHA512_224_version
73300903Sallanjude#endif
74300903Sallanjude
75300903Sallanjude#ifndef SHA512_256_Init
76300903Sallanjude#define SHA512_256_Init		_libmd_SHA512_256_Init
77300903Sallanjude#endif
78300903Sallanjude#ifndef SHA512_256_Update
79300903Sallanjude#define SHA512_256_Update	_libmd_SHA512_256_Update
80300903Sallanjude#endif
81300903Sallanjude#ifndef SHA512_256_Final
82300903Sallanjude#define SHA512_256_Final	_libmd_SHA512_256_Final
83300903Sallanjude#endif
84300903Sallanjude#ifndef SHA512_256_End
85300903Sallanjude#define SHA512_256_End		_libmd_SHA512_256_End
86300903Sallanjude#endif
87300903Sallanjude#ifndef SHA512_256_File
88300903Sallanjude#define SHA512_256_File		_libmd_SHA512_256_File
89300903Sallanjude#endif
90300903Sallanjude#ifndef SHA512_256_FileChunk
91300903Sallanjude#define SHA512_256_FileChunk	_libmd_SHA512_256_FileChunk
92300903Sallanjude#endif
93300903Sallanjude#ifndef SHA512_256_Data
94300903Sallanjude#define SHA512_256_Data		_libmd_SHA512_256_Data
95300903Sallanjude#endif
96300903Sallanjude
97300903Sallanjude#ifndef SHA512_256_Transform
98300903Sallanjude#define SHA512_256_Transform	_libmd_SHA512_256_Transform
99300903Sallanjude#endif
100300903Sallanjude#ifndef SHA512_256_version
101300903Sallanjude#define SHA512_256_version	_libmd_SHA512_256_version
102300903Sallanjude#endif
103300903Sallanjude
104300903Sallanjudevoid	SHA512_224_Init(SHA512_CTX *);
105300903Sallanjudevoid	SHA512_224_Update(SHA512_CTX *, const void *, size_t);
106300903Sallanjudevoid	SHA512_224_Final(unsigned char [static SHA512_224_DIGEST_LENGTH], SHA512_CTX *);
107300903Sallanjude#ifndef _KERNEL
108300903Sallanjudechar   *SHA512_224_End(SHA512_CTX *, char *);
109300903Sallanjudechar   *SHA512_224_Data(const void *, unsigned int, char *);
110300903Sallanjudechar   *SHA512_224_File(const char *, char *);
111300903Sallanjudechar   *SHA512_224_FileChunk(const char *, char *, off_t, off_t);
112300903Sallanjude#endif
113300903Sallanjudevoid	SHA512_256_Init(SHA512_CTX *);
114300903Sallanjudevoid	SHA512_256_Update(SHA512_CTX *, const void *, size_t);
115300903Sallanjudevoid	SHA512_256_Final(unsigned char [static SHA512_256_DIGEST_LENGTH], SHA512_CTX *);
116300903Sallanjude#ifndef _KERNEL
117300903Sallanjudechar   *SHA512_256_End(SHA512_CTX *, char *);
118300903Sallanjudechar   *SHA512_256_Data(const void *, unsigned int, char *);
119300903Sallanjudechar   *SHA512_256_File(const char *, char *);
120300903Sallanjudechar   *SHA512_256_FileChunk(const char *, char *, off_t, off_t);
121300903Sallanjude#endif
122300903Sallanjude
123300903Sallanjude__END_DECLS
124300903Sallanjude
125300903Sallanjude#endif /* !_SHA512T_H_ */
126