mirror of
https://github.com/henrydcase/pqc.git
synced 2024-11-29 19:01:22 +00:00
4054af0c42
* Sebastian's HQC merge request * Clean up changes to common infrastructure * Fix Bitmask macro It assumed that ``unsigned long`` was 64 bit * Remove maxlen from nistseedexpander It's a complicated thing to handle because the value is larger than size_t supports on 32-bit platforms * Initialize buffers to help linter * Add Nistseedexpander test * Resolve UB in gf2x.c Some of the shifts could be larger than WORD_SIZE_BITS, ie. larger than the width of uint64_t. This apparently on Intel gets interpreted as the shift mod 64, but on ARM something else happened. * Fix Windows complaints * rename log, exp which appear to be existing functions on MS * Solve endianness problems * remove all spaces before ';' * Fix duplicate consistency * Fix duplicate consistency * Fix complaints by MSVC about narrowing int * Add nistseedexpander.obj to COMMON_OBJECTS_NOPATH * astyle format util.[ch] * add util.h to makefile * Sort includes in util.h * Fix more Windows MSVC complaints Co-authored-by: Sebastian Verschoor <sebastian@zeroknowledge.me> Co-authored-by: Thom Wiggers <thom@thomwiggers.nl>
40 lines
881 B
C
40 lines
881 B
C
#ifndef NISTSEEDEXPANDER_H
|
|
#define NISTSEEDEXPANDER_H
|
|
|
|
//
|
|
// rng.h
|
|
//
|
|
// Created by Bassham, Lawrence E (Fed) on 8/29/17.
|
|
// Copyright © 2017 Bassham, Lawrence E (Fed). All rights reserved.
|
|
// Modified for PQClean by Sebastian Verschoor
|
|
//
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#define NISTSEEDEXPANDER_SEED_LEN 32
|
|
|
|
#define RNG_SUCCESS ( 0)
|
|
#define RNG_BAD_MAXLEN (-1)
|
|
#define RNG_BAD_OUTBUF (-2)
|
|
#define RNG_BAD_REQ_LEN (-3)
|
|
|
|
typedef struct {
|
|
uint8_t buffer[16];
|
|
size_t buffer_pos;
|
|
size_t length_remaining;
|
|
uint8_t key[NISTSEEDEXPANDER_SEED_LEN];
|
|
uint8_t ctr[16];
|
|
} AES_XOF_struct;
|
|
|
|
int
|
|
seedexpander_init(AES_XOF_struct *ctx,
|
|
const uint8_t *seed,
|
|
const uint8_t *diversifier,
|
|
size_t maxlen);
|
|
|
|
int
|
|
seedexpander(AES_XOF_struct *ctx, uint8_t *x, size_t xlen);
|
|
|
|
#endif /* NISTSEEDEXPANDER_H */
|