Move ull-byte-conversions to separate utils file
This commit is contained in:
parent
b9b84b9f9e
commit
fe252b8093
6
Makefile
6
Makefile
@ -1,9 +1,9 @@
|
|||||||
CC = /usr/bin/gcc
|
CC = /usr/bin/gcc
|
||||||
CFLAGS = -Wall -g -O3 -Wextra -Wpedantic
|
CFLAGS = -Wall -g -O3 -Wextra -Wpedantic
|
||||||
LDLIBS = -lcrypto
|
LDLIBS = -lcrypto
|
||||||
|
|
||||||
SOURCES = params.c hash.c fips202.c hash_address.c randombytes.c wots.c xmss.c xmss_core.c xmss_commons.c
|
SOURCES = params.c hash.c fips202.c hash_address.c randombytes.c wots.c xmss.c xmss_core.c xmss_commons.c utils.c
|
||||||
HEADERS = params.h hash.h fips202.h hash_address.h randombytes.h wots.h xmss.h xmss_core.h xmss_commons.h
|
HEADERS = params.h hash.h fips202.h hash_address.h randombytes.h wots.h xmss.h xmss_core.h xmss_commons.h utils.h
|
||||||
|
|
||||||
SOURCES_FAST = $(subst xmss_core.c,xmss_core_fast.c,$(SOURCES))
|
SOURCES_FAST = $(subst xmss_core.c,xmss_core_fast.c,$(SOURCES))
|
||||||
HEADERS_FAST = $(subst xmss_core.c,xmss_core_fast.c,$(HEADERS))
|
HEADERS_FAST = $(subst xmss_core.c,xmss_core_fast.c,$(HEADERS))
|
||||||
|
2
hash.c
2
hash.c
@ -3,7 +3,7 @@
|
|||||||
#include <openssl/sha.h>
|
#include <openssl/sha.h>
|
||||||
|
|
||||||
#include "hash_address.h"
|
#include "hash_address.h"
|
||||||
#include "xmss_commons.h"
|
#include "utils.h"
|
||||||
#include "params.h"
|
#include "params.h"
|
||||||
#include "hash.h"
|
#include "hash.h"
|
||||||
#include "fips202.h"
|
#include "fips202.h"
|
||||||
|
30
utils.c
Normal file
30
utils.c
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#include "utils.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the value of 'in' to 'outlen' bytes in big-endian byte order.
|
||||||
|
*/
|
||||||
|
void ull_to_bytes(unsigned char *out, unsigned int outlen,
|
||||||
|
unsigned long long in)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* Iterate over out in decreasing order, for big-endianness. */
|
||||||
|
for (i = outlen - 1; i >= 0; i--) {
|
||||||
|
out[i] = in & 0xff;
|
||||||
|
in = in >> 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the inlen bytes in 'in' from big-endian byte order to an integer.
|
||||||
|
*/
|
||||||
|
unsigned long long bytes_to_ull(const unsigned char *in, unsigned int inlen)
|
||||||
|
{
|
||||||
|
unsigned long long retval = 0;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
for (i = 0; i < inlen; i++) {
|
||||||
|
retval |= ((unsigned long long)in[i]) << (8*(inlen - 1 - i));
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
15
utils.h
Normal file
15
utils.h
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#ifndef XMSS_UTILS_H
|
||||||
|
#define XMSS_UTILS_H
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the value of 'in' to 'outlen' bytes in big-endian byte order.
|
||||||
|
*/
|
||||||
|
void ull_to_bytes(unsigned char *out, unsigned int outlen,
|
||||||
|
unsigned long long in);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the inlen bytes in 'in' from big-endian byte order to an integer.
|
||||||
|
*/
|
||||||
|
unsigned long long bytes_to_ull(const unsigned char *in, unsigned int inlen);
|
||||||
|
|
||||||
|
#endif
|
2
wots.c
2
wots.c
@ -1,7 +1,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "xmss_commons.h"
|
#include "utils.h"
|
||||||
#include "hash.h"
|
#include "hash.h"
|
||||||
#include "wots.h"
|
#include "wots.h"
|
||||||
#include "hash_address.h"
|
#include "hash_address.h"
|
||||||
|
@ -6,37 +6,9 @@
|
|||||||
#include "hash_address.h"
|
#include "hash_address.h"
|
||||||
#include "params.h"
|
#include "params.h"
|
||||||
#include "wots.h"
|
#include "wots.h"
|
||||||
|
#include "utils.h"
|
||||||
#include "xmss_commons.h"
|
#include "xmss_commons.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts the value of 'in' to 'outlen' bytes in big-endian byte order.
|
|
||||||
*/
|
|
||||||
void ull_to_bytes(unsigned char *out, unsigned int outlen,
|
|
||||||
unsigned long long in)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* Iterate over out in decreasing order, for big-endianness. */
|
|
||||||
for (i = outlen - 1; i >= 0; i--) {
|
|
||||||
out[i] = in & 0xff;
|
|
||||||
in = in >> 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts the inlen bytes in 'in' from big-endian byte order to an integer.
|
|
||||||
*/
|
|
||||||
unsigned long long bytes_to_ull(const unsigned char *in, unsigned int inlen)
|
|
||||||
{
|
|
||||||
unsigned long long retval = 0;
|
|
||||||
unsigned int i;
|
|
||||||
|
|
||||||
for (i = 0; i < inlen; i++) {
|
|
||||||
retval |= ((unsigned long long)in[i]) << (8*(inlen - 1 - i));
|
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Computes the leaf at a given address. First generates the WOTS key pair,
|
* Computes the leaf at a given address. First generates the WOTS key pair,
|
||||||
* then computes leaf using l_tree. As this happens position independent, we
|
* then computes leaf using l_tree. As this happens position independent, we
|
||||||
|
@ -4,17 +4,6 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "params.h"
|
#include "params.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts the value of 'in' to 'len' bytes in big-endian byte order.
|
|
||||||
*/
|
|
||||||
void ull_to_bytes(unsigned char *out, unsigned int outlen,
|
|
||||||
unsigned long long in);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts the inlen bytes in 'in' from big-endian byte order to an integer.
|
|
||||||
*/
|
|
||||||
unsigned long long bytes_to_ull(const unsigned char *in, unsigned int inlen);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Computes the leaf at a given address. First generates the WOTS key pair,
|
* Computes the leaf at a given address. First generates the WOTS key pair,
|
||||||
* then computes leaf using l_tree. As this happens position independent, we
|
* then computes leaf using l_tree. As this happens position independent, we
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "params.h"
|
#include "params.h"
|
||||||
#include "randombytes.h"
|
#include "randombytes.h"
|
||||||
#include "wots.h"
|
#include "wots.h"
|
||||||
|
#include "utils.h"
|
||||||
#include "xmss_commons.h"
|
#include "xmss_commons.h"
|
||||||
#include "xmss_core.h"
|
#include "xmss_core.h"
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "params.h"
|
#include "params.h"
|
||||||
#include "randombytes.h"
|
#include "randombytes.h"
|
||||||
#include "wots.h"
|
#include "wots.h"
|
||||||
|
#include "utils.h"
|
||||||
#include "xmss_commons.h"
|
#include "xmss_commons.h"
|
||||||
#include "xmss_core.h"
|
#include "xmss_core.h"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user