Skip to content

Commit 775b5de

Browse files
committed
Initial commit
0 parents  commit 775b5de

11 files changed

Lines changed: 3588 additions & 0 deletions

Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
build:
2+
python3 setup.py build
3+
sudo-install:
4+
sudo python3 setup.py install
5+
clean:
6+
python3 setup.py clean
7+
sudo-clean:
8+
sudo python3 setup.py clean

setup.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from distutils.core import setup, Extension
2+
3+
yescrypt_module = Extension('yescrypt',
4+
sources = ['yescrypt.c'],
5+
extra_compile_args=['-march=native', '-funroll-loops', '-fomit-frame-pointer'],
6+
include_dirs=['.'])
7+
8+
setup (name = 'yescrypt',
9+
version = '1.0',
10+
description = 'Bindings for yescrypt proof of work',
11+
ext_modules = [yescrypt_module])

sha256.h

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*-
2+
* Copyright 2005,2007,2009 Colin Percival
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions
7+
* are met:
8+
* 1. Redistributions of source code must retain the above copyright
9+
* notice, this list of conditions and the following disclaimer.
10+
* 2. Redistributions in binary form must reproduce the above copyright
11+
* notice, this list of conditions and the following disclaimer in the
12+
* documentation and/or other materials provided with the distribution.
13+
*
14+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17+
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24+
* SUCH DAMAGE.
25+
*
26+
* $FreeBSD: src/lib/libmd/sha256.h,v 1.2 2006/01/17 15:35:56 phk Exp $
27+
*/
28+
29+
#ifndef _SHA256_H_
30+
#define _SHA256_H_
31+
32+
#include <sys/types.h>
33+
34+
#include <stdint.h>
35+
36+
typedef struct SHA256Context {
37+
uint32_t state[8];
38+
uint32_t count[2];
39+
unsigned char buf[64];
40+
} SHA256_CTX;
41+
42+
typedef struct HMAC_SHA256Context {
43+
SHA256_CTX ictx;
44+
SHA256_CTX octx;
45+
} HMAC_SHA256_CTX;
46+
47+
static void SHA256_Init(SHA256_CTX *);
48+
static void SHA256_Update(SHA256_CTX *, const void *, size_t);
49+
static void SHA256_Final(unsigned char [32], SHA256_CTX *);
50+
static void HMAC_SHA256_Init(HMAC_SHA256_CTX *, const void *, size_t);
51+
static void HMAC_SHA256_Update(HMAC_SHA256_CTX *, const void *, size_t);
52+
static void HMAC_SHA256_Final(unsigned char [32], HMAC_SHA256_CTX *);
53+
54+
/**
55+
* PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen):
56+
* Compute PBKDF2(passwd, salt, c, dkLen) using HMAC-SHA256 as the PRF, and
57+
* write the output to buf. The value dkLen must be at most 32 * (2^32 - 1).
58+
*/
59+
static void PBKDF2_SHA256(const uint8_t *, size_t, const uint8_t *, size_t,
60+
uint64_t, uint8_t *, size_t);
61+
62+
#endif /* !_SHA256_H_ */

0 commit comments

Comments
 (0)