Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/ossl_sha.h
39564 views
1
/*
2
* Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
3
*
4
* Licensed under the OpenSSL license (the "License"). You may not use
5
* this file except in compliance with the License. You can obtain a copy
6
* in the file LICENSE in the source distribution or at
7
* https://www.openssl.org/source/license.html
8
*/
9
10
#ifndef __OSSL_SHA_H__
11
#define __OSSL_SHA_H__
12
13
/*
14
* This is always included last which permits the namespace hacks below
15
* to work.
16
*/
17
#define SHA256_CTX OSSL_SHA256_CTX
18
#define SHA512_CTX OSSL_SHA512_CTX
19
20
/* From include/openssl/sha.h */
21
# define SHA_LONG unsigned int
22
23
# define SHA_LBLOCK 16
24
# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a
25
* contiguous array of 32 bit wide
26
* big-endian values. */
27
28
typedef struct SHAstate_st {
29
SHA_LONG h0, h1, h2, h3, h4;
30
SHA_LONG Nl, Nh;
31
SHA_LONG data[SHA_LBLOCK];
32
unsigned int num;
33
} SHA_CTX;
34
35
# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a
36
* contiguous array of 32 bit wide
37
* big-endian values. */
38
39
typedef struct SHA256state_st {
40
SHA_LONG h[8];
41
SHA_LONG Nl, Nh;
42
SHA_LONG data[SHA_LBLOCK];
43
unsigned int num, md_len;
44
} SHA256_CTX;
45
46
/*
47
* SHA-512 treats input data as a
48
* contiguous array of 64 bit
49
* wide big-endian values.
50
*/
51
# define SHA512_CBLOCK (SHA_LBLOCK*8)
52
53
# define SHA_LONG64 unsigned long long
54
# define U64(C) C##ULL
55
56
typedef struct SHA512state_st {
57
SHA_LONG64 h[8];
58
SHA_LONG64 Nl, Nh;
59
union {
60
SHA_LONG64 d[SHA_LBLOCK];
61
unsigned char p[SHA512_CBLOCK];
62
} u;
63
unsigned int num, md_len;
64
} SHA512_CTX;
65
66
#endif /* !__OSSL_SHA_H__ */
67
68