GNU libmicrohttpd
1.0.6
Toggle main menu visibility
Loading...
Searching...
No Matches
sha256.h
Go to the documentation of this file.
1
/*
2
This file is part of libmicrohttpd
3
Copyright (C) 2019-2022 Evgeny Grin (Karlson2k)
4
5
This library is free software; you can redistribute it and/or
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
8
version 2.1 of the License, or (at your option) any later version.
9
10
This library is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
Lesser General Public License for more details.
14
15
You should have received a copy of the GNU Lesser General Public
16
License along with this library.
17
If not, see <http://www.gnu.org/licenses/>.
18
*/
19
25
26
#ifndef MHD_SHA256_H
27
#define MHD_SHA256_H 1
28
29
#include "
mhd_options.h
"
30
#include <stdint.h>
31
#ifdef HAVE_STDDEF_H
32
#include <stddef.h>
/* for size_t */
33
#endif
/* HAVE_STDDEF_H */
34
35
39
#define SHA256_DIGEST_SIZE_WORDS 8
40
44
#define SHA256_WORD_SIZE_BITS 32
45
50
#define SHA256_BYTES_IN_WORD (SHA256_WORD_SIZE_BITS / 8)
51
55
#define SHA256_DIGEST_SIZE (SHA256_DIGEST_SIZE_WORDS * SHA256_BYTES_IN_WORD)
56
60
#define SHA256_DIGEST_STRING_SIZE ((SHA256_DIGEST_SIZE) * 2 + 1)
61
65
#define SHA256_BLOCK_SIZE_BITS 512
66
70
#define SHA256_BLOCK_SIZE (SHA256_BLOCK_SIZE_BITS / 8)
71
75
#define SHA256_BLOCK_SIZE_WORDS (SHA256_BLOCK_SIZE_BITS / SHA256_WORD_SIZE_BITS)
76
77
78
struct
Sha256Ctx
79
{
80
uint32_t
H
[
SHA256_DIGEST_SIZE_WORDS
];
81
uint32_t
buffer
[
SHA256_BLOCK_SIZE_WORDS
];
82
uint64_t
count
;
83
};
84
90
void
91
MHD_SHA256_init
(
struct
Sha256Ctx
*ctx);
92
93
101
void
102
MHD_SHA256_update
(
struct
Sha256Ctx
*ctx,
103
const
uint8_t *
data
,
104
size_t
length);
105
106
113
void
114
MHD_SHA256_finish
(
struct
Sha256Ctx
*ctx,
115
uint8_t digest[
SHA256_DIGEST_SIZE
]);
116
120
#define MHD_SHA256_HAS_FINISH 1
121
122
#endif
/* MHD_SHA256_H */
mhd_options.h
additional automatic macros for MHD_config.h
data
void * data
Definition
microhttpd.h:4030
SHA256_DIGEST_SIZE_WORDS
#define SHA256_DIGEST_SIZE_WORDS
Definition
sha256.h:39
MHD_SHA256_update
void MHD_SHA256_update(struct Sha256Ctx *ctx, const uint8_t *data, size_t length)
Definition
sha256.c:410
MHD_SHA256_init
void MHD_SHA256_init(struct Sha256Ctx *ctx)
Definition
sha256.c:41
SHA256_DIGEST_SIZE
#define SHA256_DIGEST_SIZE
Definition
sha256.h:55
MHD_SHA256_finish
void MHD_SHA256_finish(struct Sha256Ctx *ctx, uint8_t digest[SHA256_DIGEST_SIZE])
Definition
sha256.c:473
SHA256_BLOCK_SIZE_WORDS
#define SHA256_BLOCK_SIZE_WORDS
Definition
sha256.h:75
Sha256Ctx
Definition
sha256.h:79
Sha256Ctx::H
uint32_t H[SHA256_DIGEST_SIZE_WORDS]
Definition
sha256.h:80
Sha256Ctx::count
uint64_t count
Definition
sha256.h:82
Sha256Ctx::buffer
uint32_t buffer[SHA256_BLOCK_SIZE_WORDS]
Definition
sha256.h:81
src
microhttpd
sha256.h
Generated by
1.17.0