mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-10 16:54:16 +07:00
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
// https://github.com/B-Con/crypto-algorithms
|
|
// Author: Brad Conte (brad AT bradconte.com)
|
|
// Disclaimer: This code is presented "as is" without any guarantees.
|
|
// Details: Defines the API for the corresponding SHA1 implementation.
|
|
// Copyright: public domain
|
|
|
|
#pragma once
|
|
|
|
#include "arch.h"
|
|
|
|
typedef struct {
|
|
uint32_t state[8];
|
|
uint64_t bits;
|
|
uint32_t len;
|
|
unsigned char buffer[64];
|
|
} mg_sha256_ctx;
|
|
|
|
|
|
void mg_sha256_init(mg_sha256_ctx *);
|
|
void mg_sha256_update(mg_sha256_ctx *, const unsigned char *data, size_t len);
|
|
void mg_sha256_final(unsigned char digest[32], mg_sha256_ctx *);
|
|
void mg_sha256(uint8_t dst[32], uint8_t *data, size_t datasz);
|
|
void mg_hmac_sha256(uint8_t dst[32], uint8_t *key, size_t keysz, uint8_t *data,
|
|
size_t datasz);
|
|
|
|
typedef struct {
|
|
uint64_t state[8];
|
|
uint8_t buffer[128];
|
|
uint64_t bitlen[2];
|
|
uint32_t datalen;
|
|
} mg_sha384_ctx;
|
|
void mg_sha384_init(mg_sha384_ctx *ctx);
|
|
void mg_sha384_update(mg_sha384_ctx *ctx, const uint8_t *data, size_t len);
|
|
void mg_sha384_final(uint8_t digest[48], mg_sha384_ctx *ctx);
|
|
void mg_sha384(uint8_t dst[48], uint8_t *data, size_t datasz);
|
|
|