f4609b896f
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because there is some breakage in the git build related to the netrc credentials helper which someone has taken care of in nixpkgs. The stable channel is not used for anything other than git, so this should be fine. Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
36 lines
894 B
C
36 lines
894 B
C
#ifndef SHA256_GCRYPT_H
|
|
#define SHA256_GCRYPT_H
|
|
|
|
#include <gcrypt.h>
|
|
|
|
#define SHA256_DIGEST_SIZE 32
|
|
|
|
typedef gcry_md_hd_t gcrypt_SHA256_CTX;
|
|
|
|
inline void gcrypt_SHA256_Init(gcrypt_SHA256_CTX *ctx)
|
|
{
|
|
gcry_md_open(ctx, GCRY_MD_SHA256, 0);
|
|
}
|
|
|
|
inline void gcrypt_SHA256_Update(gcrypt_SHA256_CTX *ctx, const void *data, size_t len)
|
|
{
|
|
gcry_md_write(*ctx, data, len);
|
|
}
|
|
|
|
inline void gcrypt_SHA256_Final(unsigned char *digest, gcrypt_SHA256_CTX *ctx)
|
|
{
|
|
memcpy(digest, gcry_md_read(*ctx, GCRY_MD_SHA256), SHA256_DIGEST_SIZE);
|
|
}
|
|
|
|
inline void gcrypt_SHA256_Clone(gcrypt_SHA256_CTX *dst, const gcrypt_SHA256_CTX *src)
|
|
{
|
|
gcry_md_copy(dst, *src);
|
|
}
|
|
|
|
#define platform_SHA256_CTX gcrypt_SHA256_CTX
|
|
#define platform_SHA256_Init gcrypt_SHA256_Init
|
|
#define platform_SHA256_Clone gcrypt_SHA256_Clone
|
|
#define platform_SHA256_Update gcrypt_SHA256_Update
|
|
#define platform_SHA256_Final gcrypt_SHA256_Final
|
|
|
|
#endif
|