xref: /openbsd-src/usr.bin/signify/crypto_api.c (revision bdb222f4ca3bca68429c72651d9c940bca622e46)
1*bdb222f4Stedu /* $OpenBSD: crypto_api.c,v 1.1 2014/01/08 03:59:46 tedu Exp $ */
2*bdb222f4Stedu /*
3*bdb222f4Stedu  * Public domain. Author: Ted Unangst <tedu@openbsd.org>
4*bdb222f4Stedu  * API compatible reimplementation of functions from nacl
5*bdb222f4Stedu  */
6*bdb222f4Stedu #include <sys/types.h>
7*bdb222f4Stedu 
8*bdb222f4Stedu #include <string.h>
9*bdb222f4Stedu #include <sha2.h>
10*bdb222f4Stedu 
11*bdb222f4Stedu #include "crypto_api.h"
12*bdb222f4Stedu 
13*bdb222f4Stedu int
crypto_hash_sha512(unsigned char * out,const unsigned char * in,unsigned long long inlen)14*bdb222f4Stedu crypto_hash_sha512(unsigned char *out, const unsigned char *in,
15*bdb222f4Stedu     unsigned long long inlen)
16*bdb222f4Stedu {
17*bdb222f4Stedu 	SHA2_CTX ctx;
18*bdb222f4Stedu 
19*bdb222f4Stedu 	SHA512Init(&ctx);
20*bdb222f4Stedu 	SHA512Update(&ctx, in, inlen);
21*bdb222f4Stedu 	SHA512Final(out, &ctx);
22*bdb222f4Stedu 	return 0;
23*bdb222f4Stedu }
24*bdb222f4Stedu 
25*bdb222f4Stedu int
crypto_verify_32(const unsigned char * x,const unsigned char * y)26*bdb222f4Stedu crypto_verify_32(const unsigned char *x, const unsigned char *y)
27*bdb222f4Stedu {
28*bdb222f4Stedu 	return timingsafe_bcmp(x, y, 32) ? -1 : 0;
29*bdb222f4Stedu }
30