CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
rapid7

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

GitHub Repository: rapid7/metasploit-framework
Path: blob/master/external/source/exploits/CVE-2017-13861/sha256.h
Views: 11779
1
/*********************************************************************
2
* Filename: sha256.h
3
* Author: Brad Conte (brad AT bradconte.com)
4
* Copyright:
5
* Disclaimer: This code is presented "as is" without any guarantees.
6
* Details: Defines the API for the corresponding SHA1 implementation.
7
*********************************************************************/
8
9
#ifndef SHA256_H
10
#define SHA256_H
11
12
/*************************** HEADER FILES ***************************/
13
#include <stddef.h>
14
15
/****************************** MACROS ******************************/
16
#define SHA256_BLOCK_SIZE 32 // SHA256 outputs a 32 byte digest
17
18
/**************************** DATA TYPES ****************************/
19
typedef unsigned char BYTE; // 8-bit byte
20
typedef unsigned int WORD; // 32-bit word, change to "long" for 16-bit machines
21
22
typedef struct {
23
BYTE data[64];
24
WORD datalen;
25
unsigned long long bitlen;
26
WORD state[8];
27
} SHA256_CTX;
28
29
/*********************** FUNCTION DECLARATIONS **********************/
30
void sha256_init(SHA256_CTX *ctx);
31
void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len);
32
void sha256_final(SHA256_CTX *ctx, BYTE hash[]);
33
34
#endif // SHA256_H
35