aboutsummaryrefslogtreecommitdiffstats
path: root/module/os/freebsd/spl/sha512t.h
blob: 703867fc02880de880365adbf12734d0a569fa04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 * Copyright (c) 2015 Allan Jude <allanjude@FreeBSD.org>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * $FreeBSD$
 */

#ifndef _SHA512T_H_
#define	_SHA512T_H_

#include "sha512.h"

#ifndef _KERNEL
#include <sys/types.h>
#endif

#define	SHA512_224_DIGEST_LENGTH	28
#define	SHA512_224_DIGEST_STRING_LENGTH	(SHA512_224_DIGEST_LENGTH * 2 + 1)
#define	SHA512_256_DIGEST_LENGTH	32
#define	SHA512_256_DIGEST_STRING_LENGTH	(SHA512_256_DIGEST_LENGTH * 2 + 1)

__BEGIN_DECLS

/* Ensure libmd symbols do not clash with libcrypto */
#ifndef SHA512_224_Init
#define	SHA512_224_Init		_libmd_SHA512_224_Init
#endif
#ifndef SHA512_224_Update
#define	SHA512_224_Update	_libmd_SHA512_224_Update
#endif
#ifndef SHA512_224_Final
#define	SHA512_224_Final	_libmd_SHA512_224_Final
#endif
#ifndef SHA512_224_End
#define	SHA512_224_End		_libmd_SHA512_224_End
#endif
#ifndef SHA512_224_Fd
#define	SHA512_224_Fd		_libmd_SHA512_224_Fd
#endif
#ifndef SHA512_224_FdChunk
#define	SHA512_224_FdChunk	_libmd_SHA512_224_FdChunk
#endif
#ifndef SHA512_224_File
#define	SHA512_224_File		_libmd_SHA512_224_File
#endif
#ifndef SHA512_224_FileChunk
#define	SHA512_224_FileChunk	_libmd_SHA512_224_FileChunk
#endif
#ifndef SHA512_224_Data
#define	SHA512_224_Data		_libmd_SHA512_224_Data
#endif

#ifndef SHA512_224_Transform
#define	SHA512_224_Transform	_libmd_SHA512_224_Transform
#endif
#ifndef SHA512_224_version
#define	SHA512_224_version	_libmd_SHA512_224_version
#endif

#ifndef SHA512_256_Init
#define	SHA512_256_Init		_libmd_SHA512_256_Init
#endif
#ifndef SHA512_256_Update
#define	SHA512_256_Update	_libmd_SHA512_256_Update
#endif
#ifndef SHA512_256_Final
#define	SHA512_256_Final	_libmd_SHA512_256_Final
#endif
#ifndef SHA512_256_End
#define	SHA512_256_End		_libmd_SHA512_256_End
#endif
#ifndef SHA512_256_Fd
#define	SHA512_256_Fd		_libmd_SHA512_256_Fd
#endif
#ifndef SHA512_256_FdChunk
#define	SHA512_256_FdChunk	_libmd_SHA512_256_FdChunk
#endif
#ifndef SHA512_256_File
#define	SHA512_256_File		_libmd_SHA512_256_File
#endif
#ifndef SHA512_256_FileChunk
#define	SHA512_256_FileChunk	_libmd_SHA512_256_FileChunk
#endif
#ifndef SHA512_256_Data
#define	SHA512_256_Data		_libmd_SHA512_256_Data
#endif

#ifndef SHA512_256_Transform
#define	SHA512_256_Transform	_libmd_SHA512_256_Transform
#endif
#ifndef SHA512_256_version
#define	SHA512_256_version	_libmd_SHA512_256_version
#endif

void	SHA512_224_Init(SHA512_CTX *);
void	SHA512_224_Update(SHA512_CTX *, const void *, size_t);
void	SHA512_224_Final(unsigned char [__min_size(SHA512_224_DIGEST_LENGTH)],
    SHA512_CTX *);
#ifndef _KERNEL
char   *SHA512_224_End(SHA512_CTX *, char *);
char   *SHA512_224_Data(const void *, unsigned int, char *);
char   *SHA512_224_Fd(int, char *);
char   *SHA512_224_FdChunk(int, char *, off_t, off_t);
char   *SHA512_224_File(const char *, char *);
char   *SHA512_224_FileChunk(const char *, char *, off_t, off_t);
#endif
void	SHA512_256_Init(SHA512_CTX *);
void	SHA512_256_Update(SHA512_CTX *, const void *, size_t);
void	SHA512_256_Final(unsigned char [__min_size(SHA512_256_DIGEST_LENGTH)],
    SHA512_CTX *);
#ifndef _KERNEL
char   *SHA512_256_End(SHA512_CTX *, char *);
char   *SHA512_256_Data(const void *, unsigned int, char *);
char   *SHA512_256_Fd(int, char *);
char   *SHA512_256_FdChunk(int, char *, off_t, off_t);
char   *SHA512_256_File(const char *, char *);
char   *SHA512_256_FileChunk(const char *, char *, off_t, off_t);
#endif

__END_DECLS

#endif /* !_SHA512T_H_ */