RTEMS
6.1-rc1
cpukit
include
sha256.h
Go to the documentation of this file.
1
/*-
2
* Copyright 2005 Colin Percival
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
*
14
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24
* SUCH DAMAGE.
25
*
26
* $FreeBSD$
27
*/
28
29
#ifndef _SHA256_H_
30
#define _SHA256_H_
31
32
#ifndef _KERNEL
33
#include <sys/types.h>
34
#endif
35
36
#define SHA256_BLOCK_LENGTH 64
37
#define SHA256_DIGEST_LENGTH 32
38
#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1)
39
40
typedef
struct
SHA256Context
{
41
uint32_t state[8];
42
uint64_t count;
43
uint8_t buf[SHA256_BLOCK_LENGTH];
44
}
SHA256_CTX
;
45
46
__BEGIN_DECLS
47
48
void
SHA256_Init(
SHA256_CTX
*);
49
void
SHA256_Update(
SHA256_CTX
*,
const
void
*,
size_t
);
50
void
SHA256_Final(
unsigned
char
[__min_size(SHA256_DIGEST_LENGTH)],
51
SHA256_CTX
*);
52
#ifndef _KERNEL
53
char
*SHA256_End(
SHA256_CTX
*,
char
*);
54
char
*SHA256_Data(
const
void
*,
unsigned
int
,
char
*);
55
char
*SHA256_File(
const
char
*,
char
*);
56
char
*SHA256_FileChunk(
const
char
*,
char
*, off_t, off_t);
57
#endif
58
__END_DECLS
59
60
#endif
/* !_SHA256_H_ */
SHA256Context
Definition:
sha256.h:40
Generated by
1.9.4