Prevent VLA in Haraka

This commit is contained in:
Joost Rijneveld 2019-04-24 12:52:02 +02:00
rodzic 908329e0e8
commit 821916bc98
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: A4FE39CF49CBC553
12 zmienionych plików z 168 dodań i 168 usunięć

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA128FROBUST_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA128FROBUST_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA128FROBUST_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA128FROBUST_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA128FSIMPLE_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA128FSIMPLE_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA128FSIMPLE_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA128FSIMPLE_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA128SROBUST_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA128SROBUST_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA128SROBUST_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA128SROBUST_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA128SSIMPLE_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA128SSIMPLE_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA128SSIMPLE_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA128SSIMPLE_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA192FROBUST_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA192FROBUST_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA192FROBUST_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA192FROBUST_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA192FSIMPLE_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA192FSIMPLE_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA192FSIMPLE_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA192FSIMPLE_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA192SROBUST_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA192SROBUST_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA192SROBUST_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA192SROBUST_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA192SSIMPLE_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA192SSIMPLE_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA192SSIMPLE_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA192SSIMPLE_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA256FROBUST_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA256FROBUST_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA256FROBUST_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA256FROBUST_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA256FSIMPLE_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA256FSIMPLE_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA256FSIMPLE_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA256FSIMPLE_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA256SROBUST_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA256SROBUST_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA256SROBUST_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA256SROBUST_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}

Wyświetl plik

@ -688,41 +688,41 @@ void PQCLEAN_SPHINCSHARAKA256SSIMPLE_CLEAN_tweak_constants(
}
}
static void haraka_S_absorb(unsigned char *s, unsigned int r,
static void haraka_S_absorb(unsigned char *s,
const unsigned char *m, unsigned long long mlen,
unsigned char p) {
unsigned long long i;
unsigned char t[r];
unsigned char t[HARAKAS_RATE];
while (mlen >= r) {
while (mlen >= HARAKAS_RATE) {
/* XOR block to state */
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= m[i];
}
PQCLEAN_SPHINCSHARAKA256SSIMPLE_CLEAN_haraka512_perm(s, s);
mlen -= r;
m += r;
mlen -= HARAKAS_RATE;
m += HARAKAS_RATE;
}
for (i = 0; i < r; ++i) {
for (i = 0; i < HARAKAS_RATE; ++i) {
t[i] = 0;
}
for (i = 0; i < mlen; ++i) {
t[i] = m[i];
}
t[i] = p;
t[r - 1] |= 128;
for (i = 0; i < r; ++i) {
t[HARAKAS_RATE - 1] |= 128;
for (i = 0; i < HARAKAS_RATE; ++i) {
s[i] ^= t[i];
}
}
static void haraka_S_squeezeblocks(unsigned char *h, unsigned long long nblocks,
unsigned char *s, unsigned int r) {
unsigned char *s) {
while (nblocks > 0) {
PQCLEAN_SPHINCSHARAKA256SSIMPLE_CLEAN_haraka512_perm(s, s);
memcpy(h, s, HARAKAS_RATE);
h += r;
h += HARAKAS_RATE;
nblocks--;
}
}
@ -801,13 +801,13 @@ void PQCLEAN_SPHINCSHARAKA256SSIMPLE_CLEAN_haraka_S(unsigned char *out, unsigned
for (i = 0; i < 64; i++) {
s[i] = 0;
}
haraka_S_absorb(s, 32, in, inlen, 0x1F);
haraka_S_absorb(s, in, inlen, 0x1F);
haraka_S_squeezeblocks(out, outlen / 32, s, 32);
haraka_S_squeezeblocks(out, outlen / 32, s);
out += (outlen / 32) * 32;
if (outlen % 32) {
haraka_S_squeezeblocks(d, 1, s, 32);
haraka_S_squeezeblocks(d, 1, s);
for (i = 0; i < outlen % 32; i++) {
out[i] = d[i];
}