Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
sha224.h
Go to the documentation of this file.
1
/*-
2
* Copyright 2005 Colin Percival
3
* Copyright 2013 Christian Mehlis & René Kijewski
4
* Copyright 2016 Martin Landsmann <martin.landsmann@haw-hamburg.de>
5
* Copyright 2016 OTA keys S.A.
6
* Copyright 2020 HAW Hamburg
7
* All rights reserved.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* 2. Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28
* SUCH DAMAGE.
29
*
30
* $FreeBSD: src/lib/libmd/sha256.h,v 1.1.2.1 2005/06/24 13:32:25 cperciva Exp $
31
*/
32
33
50
#ifndef HASHES_SHA224_H
51
#define HASHES_SHA224_H
52
53
#include <
inttypes.h
>
54
#include <stddef.h>
55
56
#include "
hashes/sha2xx_common.h
"
57
58
#ifdef __cplusplus
59
extern
"C"
{
60
#endif
61
65
#define SHA224_DIGEST_LENGTH (28)
66
70
#define SHA224_INTERNAL_BLOCK_SIZE (64)
71
75
typedef
sha2xx_context_t
sha224_context_t
;
76
82
void
sha224_init
(
sha224_context_t
*ctx);
83
91
static
inline
void
sha224_update
(
sha224_context_t
*ctx,
const
void
*data,
size_t
len)
92
{
93
sha2xx_update
(ctx, data, len);
94
}
95
103
static
inline
void
sha224_final
(
sha224_context_t
*ctx,
void
*digest)
104
{
105
sha2xx_final
(ctx, digest,
SHA224_DIGEST_LENGTH
);
106
}
107
118
void
*
sha224
(
const
void
*data,
size_t
len,
void
*digest);
119
120
#ifdef __cplusplus
121
}
122
#endif
123
125
#endif
/* HASHES_SHA224_H */
sha224_context_t
sha2xx_context_t sha224_context_t
Context for cipher operations based on sha224.
Definition:
sha224.h:75
sha224_final
static void sha224_final(sha224_context_t *ctx, void *digest)
SHA-224 finalization.
Definition:
sha224.h:103
sha2xx_common.h
Common definitions for the SHA-224/256 hash functions.
SHA224_DIGEST_LENGTH
#define SHA224_DIGEST_LENGTH
Length of SHA224 digests in bytes.
Definition:
sha224.h:65
sha224
void * sha224(const void *data, size_t len, void *digest)
A wrapper function to simplify the generation of a hash, this is useful for generating sha224 for one...
sha2xx_update
void sha2xx_update(sha2xx_context_t *ctx, const void *data, size_t len)
Add bytes into the hash.
sha2xx_final
void sha2xx_final(sha2xx_context_t *ctx, void *digest, size_t dig_len)
SHA-2XX finalization.
sha224_init
void sha224_init(sha224_context_t *ctx)
SHA-224 initialization.
sha224_update
static void sha224_update(sha224_context_t *ctx, const void *data, size_t len)
Add bytes into the hash.
Definition:
sha224.h:91
inttypes.h
Adds include for missing inttype definitions.
sha2xx_context_t
Structure to hold the SHA-2XX context.
Definition:
sha2xx_common.h:63
Generated on Tue Nov 24 2020 19:46:52 by
1.8.17