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