Просмотр исходного кода

Move ull-byte-conversions to separate utils file

master
Joost Rijneveld 7 лет назад
Родитель
Сommit
fe252b8093
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: A4FE39CF49CBC553
9 измененных файлов: 53 добавлений и 45 удалений
  1. +3
    -3
      Makefile
  2. +1
    -1
      hash.c
  3. +30
    -0
      utils.c
  4. +15
    -0
      utils.h
  5. +1
    -1
      wots.c
  6. +1
    -29
      xmss_commons.c
  7. +0
    -11
      xmss_commons.h
  8. +1
    -0
      xmss_core.c
  9. +1
    -0
      xmss_core_fast.c

+ 3
- 3
Makefile Просмотреть файл

@@ -1,9 +1,9 @@
CC = /usr/bin/gcc
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
HEADERS = params.h hash.h fips202.h hash_address.h randombytes.h wots.h xmss.h xmss_core.h xmss_commons.h
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 utils.h

SOURCES_FAST = $(subst xmss_core.c,xmss_core_fast.c,$(SOURCES))
HEADERS_FAST = $(subst xmss_core.c,xmss_core_fast.c,$(HEADERS))


+ 1
- 1
hash.c Просмотреть файл

@@ -3,7 +3,7 @@
#include <openssl/sha.h>

#include "hash_address.h"
#include "xmss_commons.h"
#include "utils.h"
#include "params.h"
#include "hash.h"
#include "fips202.h"


+ 30
- 0
utils.c Просмотреть файл

@@ -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
- 0
utils.h Просмотреть файл

@@ -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

+ 1
- 1
wots.c Просмотреть файл

@@ -1,7 +1,7 @@
#include <stdint.h>
#include <string.h>

#include "xmss_commons.h"
#include "utils.h"
#include "hash.h"
#include "wots.h"
#include "hash_address.h"


+ 1
- 29
xmss_commons.c Просмотреть файл

@@ -6,37 +6,9 @@
#include "hash_address.h"
#include "params.h"
#include "wots.h"
#include "utils.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,
* then computes leaf using l_tree. As this happens position independent, we


+ 0
- 11
xmss_commons.h Просмотреть файл

@@ -4,17 +4,6 @@
#include <stdint.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,
* then computes leaf using l_tree. As this happens position independent, we


+ 1
- 0
xmss_core.c Просмотреть файл

@@ -7,6 +7,7 @@
#include "params.h"
#include "randombytes.h"
#include "wots.h"
#include "utils.h"
#include "xmss_commons.h"
#include "xmss_core.h"



+ 1
- 0
xmss_core_fast.c Просмотреть файл

@@ -7,6 +7,7 @@
#include "params.h"
#include "randombytes.h"
#include "wots.h"
#include "utils.h"
#include "xmss_commons.h"
#include "xmss_core.h"



Загрузка…
Отмена
Сохранить