fixed _gen_ctr_nonce(), reported in #12: invalid ctr comparision did lead to counter underflow

This commit is contained in:
TLINDEN
2015-10-14 19:53:03 +02:00
parent 3a8d8c010f
commit ae5be44182

View File

@@ -708,6 +708,8 @@ uint64_t _get_nonce_ctr(byte *nonce) {
abort(); abort();
} }
fprintf(stderr, "ctr size: %d ", i);
switch(i) { switch(i) {
case 1: case 1:
ctr = nonce[1]; ctr = nonce[1];
@@ -796,12 +798,12 @@ byte *_gen_ctr_nonce(uint64_t ctr) {
m64 = htobe64(ctr); m64 = htobe64(ctr);
memcpy(&nonce[1], &m64, 8); memcpy(&nonce[1], &m64, 8);
} }
else if(ctr < m32 && ctr > m16) { else if(ctr <= m32 && ctr > m16) {
i = 4; i = 4;
m32 = htobe32(ctr); m32 = htobe32(ctr);
memcpy(&nonce[1], &m32, 4); memcpy(&nonce[1], &m32, 4);
} }
else if(ctr < m16 && ctr > m8) { else if(ctr <= m16 && ctr > m8) {
i = 2; i = 2;
m16 = htobe16(ctr); m16 = htobe16(ctr);
memcpy(&nonce[1], &m16, 2); memcpy(&nonce[1], &m16, 2);