forked from hiveuprss/swift-hive
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
24 changed files
with
458 additions
and
722 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,8 @@ | ||
#ifndef CRYPTO_H__ | ||
#define CRYPTO_H__ | ||
#ifndef __CRYPTO_H__ | ||
#define __CRYPTO_H__ | ||
|
||
#include "../base58.h" | ||
#include "base58.h" | ||
#include "ripemd160.h" | ||
#include "sha2.h" | ||
|
||
#endif | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#ifndef __RIPEMD160_H__ | ||
#define __RIPEMD160_H__ | ||
|
||
#include <stdint.h> | ||
|
||
#define RIPEMD160_BLOCK_LENGTH 64 | ||
#define RIPEMD160_DIGEST_LENGTH 20 | ||
|
||
typedef struct _RIPEMD160_CTX { | ||
uint32_t total[2]; /*!< number of bytes processed */ | ||
uint32_t state[5]; /*!< intermediate digest state */ | ||
uint8_t buffer[RIPEMD160_BLOCK_LENGTH]; /*!< data block being processed */ | ||
} RIPEMD160_CTX; | ||
|
||
void ripemd160_Init(RIPEMD160_CTX *ctx); | ||
void ripemd160_Update(RIPEMD160_CTX *ctx, const uint8_t *input, uint32_t ilen); | ||
void ripemd160_Final(RIPEMD160_CTX *ctx, | ||
uint8_t output[RIPEMD160_DIGEST_LENGTH]); | ||
void ripemd160(const uint8_t *msg, uint32_t msg_len, | ||
uint8_t hash[RIPEMD160_DIGEST_LENGTH]); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,66 @@ | ||
#ifndef __STDC_WANT_LIB_EXT1__ | ||
#define __STDC_WANT_LIB_EXT1__ 1 // C11's bounds-checking interface. | ||
#endif | ||
#include <string.h> | ||
|
||
void memzero(void *s, size_t n) | ||
{ | ||
memset(s, 0, n); | ||
#ifdef _WIN32 | ||
#include <Windows.h> | ||
#endif | ||
|
||
#ifdef __unix__ | ||
#include <strings.h> | ||
#include <sys/param.h> | ||
#endif | ||
|
||
// C11's bounds-checking interface. | ||
#if defined(__STDC_LIB_EXT1__) | ||
#define HAVE_MEMSET_S 1 | ||
#endif | ||
|
||
// GNU C Library version 2.25 or later. | ||
#if defined(__GLIBC__) && \ | ||
(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 25)) | ||
#define HAVE_EXPLICIT_BZERO 1 | ||
#endif | ||
|
||
// Newlib | ||
#if defined(__NEWLIB__) | ||
#define HAVE_EXPLICIT_BZERO 1 | ||
#endif | ||
|
||
// FreeBSD version 11.0 or later. | ||
#if defined(__FreeBSD__) && __FreeBSD_version >= 1100037 | ||
#define HAVE_EXPLICIT_BZERO 1 | ||
#endif | ||
|
||
// OpenBSD version 5.5 or later. | ||
#if defined(__OpenBSD__) && OpenBSD >= 201405 | ||
#define HAVE_EXPLICIT_BZERO 1 | ||
#endif | ||
|
||
// NetBSD version 7.2 or later. | ||
#if defined(__NetBSD__) && __NetBSD_Version__ >= 702000000 | ||
#define HAVE_EXPLICIT_MEMSET 1 | ||
#endif | ||
|
||
// Adapted from | ||
// https://github.com/jedisct1/libsodium/blob/1647f0d53ae0e370378a9195477e3df0a792408f/src/libsodium/sodium/utils.c#L102-L130 | ||
|
||
void memzero(void *const pnt, const size_t len) { | ||
#ifdef _WIN32 | ||
SecureZeroMemory(pnt, len); | ||
#elif defined(HAVE_MEMSET_S) | ||
memset_s(pnt, (rsize_t)len, 0, (rsize_t)len); | ||
#elif defined(HAVE_EXPLICIT_BZERO) | ||
explicit_bzero(pnt, len); | ||
#elif defined(HAVE_EXPLICIT_MEMSET) | ||
explicit_memset(pnt, 0, len); | ||
#else | ||
volatile unsigned char *volatile pnt_ = (volatile unsigned char *volatile)pnt; | ||
size_t i = (size_t)0U; | ||
|
||
while (i < len) { | ||
pnt_[i++] = 0U; | ||
} | ||
#endif | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,6 @@ | |
|
||
#include <stddef.h> | ||
|
||
void memzero(void *s, size_t n); | ||
void memzero(void* const pnt, const size_t len); | ||
|
||
#endif |
Oops, something went wrong.