Skip to content

Commit

Permalink
finish belt-che and fix botp-ocra
Browse files Browse the repository at this point in the history
  • Loading branch information
agievich committed Mar 24, 2020
1 parent 9a0752a commit 69685e1
Show file tree
Hide file tree
Showing 33 changed files with 1,069 additions and 1,052 deletions.
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
root = true

[*]
indent_style = space
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
Expand Down
16 changes: 8 additions & 8 deletions apps/bsum/bsum.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ int bsumUsage()
printf(
"bee2/bsum: STB 34.101.31/77 hashing utility [bee2 version %s]\n"
"Usage:\n"
" bsum [hash_alg] <file_to_hash> <file_to_hash> ...\n"
" bsum [hash_alg] -c <checksum_file>\n"
" bsum [hash_alg] <file_to_hash> <file_to_hash> ...\n"
" bsum [hash_alg] -c <checksum_file>\n"
" hash_alg:\n"
" belt-hash (STB 34.101.31, by default)\n"
" bash32, bash64, ..., bash512 (STB 34.101.77)\n",
" belt-hash (STB 34.101.31, by default)\n"
" bash32, bash64, ..., bash512 (STB 34.101.77)\n",
utilVersion());
return -1;
}
Expand Down Expand Up @@ -148,9 +148,9 @@ int bsumCheck(size_t hid, const char* filename)
return -1;
}
for (; fgets(str, sizeof(str), fp); ++all_lines)
{
{
// проверить строку
str_len = strLen(str);
str_len = strLen(str);
if (str_len < hash_len * 2 + 2 ||
str[2 * hash_len] != ' ' ||
str[2 * hash_len + 1] != ' ' ||
Expand All @@ -177,8 +177,8 @@ int bsumCheck(size_t hid, const char* filename)
continue;
}
printf("%s: OK\n", str + 2 * hash_len + 2);
}
fclose(fp);
}
fclose(fp);
if (bad_lines)
fprintf(stderr, bad_lines == 1 ?
"WARNING: %lu input line (out of %lu) is improperly formatted\n" :
Expand Down
4 changes: 2 additions & 2 deletions include/bee2/core/b64.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ Base64-строка -- это слово в алфавите
- ее длина кратна 4;
- строка может заканчиваться 1 или 2 символами '=', все остальные символы
принадлежат алфавиту enc_table;
- если последний блок строки имеет вид abc=, то в 6-кe битов,
- если последний блок строки имеет вид abc=, то в 6-кe битов,
соответствующих символу c, два младших бита нулевые;
- если последний блок строки имеет вид ab==, то в 6-кe битов,
- если последний блок строки имеет вид ab==, то в 6-кe битов,
соответствующих символу b, четыре младших бита нулевые.
\return Признак корректности.
\safe Функция нерегулярна.
Expand Down
2 changes: 1 addition & 1 deletion include/bee2/core/mem.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ int FAST(memCmp)(const void* buf1, const void* buf2, size_t count);
используется и включена оптимизация компиляции.
*/
void memWipe(
void* buf, /*!< [out] буфер */
void* buf, /*!< [out] буфер */
size_t count /*!< [in] размер буфера */
);

Expand Down
2 changes: 1 addition & 1 deletion include/bee2/core/oid.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ bool_t oidIsValid(
*/
size_t oidToDER(
octet der[], /*!< [out] DER-код */
const char* oid /*!< [in] идентификатор объекта */
const char* oid /*!< [in] идентификатор объекта */
);

/*! \brief DER-декодирование
Expand Down
210 changes: 105 additions & 105 deletions include/bee2/crypto/belt.h

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion include/bee2/crypto/botp.h
Original file line number Diff line number Diff line change
Expand Up @@ -516,4 +516,4 @@ err_t botpOCRAVerify(
} /* extern "C" */
#endif

#endif /* __BEE2_BOTP_H */
#endif /* __BEE2_BOTP_H */
18 changes: 9 additions & 9 deletions src/core/tm.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,19 +80,19 @@ tm_ticks_t tmFreq()

tm_ticks_t tmTicks()
{
register tm_ticks_t x;
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
return x;
register tm_ticks_t x;
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
return x;
}

#else

tm_ticks_t tmTicks()
{
register u32 hi;
register u32 lo;
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
return (tm_ticks_t)lo | (tm_ticks_t)hi << 32;
register u32 hi;
register u32 lo;
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
return (tm_ticks_t)lo | (tm_ticks_t)hi << 32;
}

#endif
Expand All @@ -119,7 +119,7 @@ tm_ticks_t tmFreq()

tm_ticks_t tmTicks()
{
struct timespec ts;
struct timespec ts;
tm_ticks_t ticks;
if (clock_gettime(CLOCK_MONOTONIC, &ts))
return 0;
Expand All @@ -131,7 +131,7 @@ tm_ticks_t tmTicks()

tm_ticks_t tmFreq()
{
struct timespec ts;
struct timespec ts;
tm_ticks_t freq;
if (clock_getres(CLOCK_MONOTONIC, &ts) || ts.tv_sec || !ts.tv_nsec)
return 0;
Expand Down
70 changes: 35 additions & 35 deletions src/crypto/bash/bash_favx512.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,14 +119,14 @@ STORE.
#define N2R MR8(1)

#define bashS(W0,W1,W2, U0,U1,U2)\
U0 = XX8(W0, W1, W2);\
U2 = XX8(W1, SL8(N1L,U0), SR8(N1R,U0));\
U1 = XX8(U2, SL8(M1L,W0), SR8(M1R,W0));\
U2 = XX8(W2, SL8(N2L,U2), SR8(N2R,U2));\
U2 = XX8(U2, SL8(M2L,W2), SR8(M2R,W2));\
W1 = XO8(U1, U0, U2);\
W2 = XA8(U2, U0, U1);\
W0 = XNO8(U0, U2, U1)
U0 = XX8(W0, W1, W2);\
U2 = XX8(W1, SL8(N1L,U0), SR8(N1R,U0));\
U1 = XX8(U2, SL8(M1L,W0), SR8(M1R,W0));\
U2 = XX8(W2, SL8(N2L,U2), SR8(N2R,U2));\
U2 = XX8(U2, SL8(M2L,W2), SR8(M2R,W2));\
W1 = XO8(U1, U0, U2);\
W2 = XA8(U2, U0, U1);\
W0 = XNO8(U0, U2, U1)

/*
*******************************************************************************
Expand All @@ -139,9 +139,9 @@ STORE.
#define PI2 S8(1, 0, 3, 2, 5, 4, 7, 6)

#define bashP(W0,W1,W2)\
W0 = P8(PI0, W0);\
W1 = P8(PI1, W1);\
W2 = P8(PI2, W2)
W0 = P8(PI0, W0);\
W1 = P8(PI1, W1);\
W2 = P8(PI2, W2)

/*
*******************************************************************************
Expand Down Expand Up @@ -202,30 +202,30 @@ STORE.
*/

#define bashF0\
bashR0(1);\
bashR1(2);\
bashR2(3);\
bashR0(4);\
bashR1(5);\
bashR2(6);\
bashR0(7);\
bashR1(8);\
bashR2(9);\
bashR0(10);\
bashR1(11);\
bashR2(12);\
bashR0(13);\
bashR1(14);\
bashR2(15);\
bashR0(16);\
bashR1(17);\
bashR2(18);\
bashR0(19);\
bashR1(20);\
bashR2(21);\
bashR0(22);\
bashR1(23);\
bashR2(24)
bashR0(1);\
bashR1(2);\
bashR2(3);\
bashR0(4);\
bashR1(5);\
bashR2(6);\
bashR0(7);\
bashR1(8);\
bashR2(9);\
bashR0(10);\
bashR1(11);\
bashR2(12);\
bashR0(13);\
bashR1(14);\
bashR2(15);\
bashR0(16);\
bashR1(17);\
bashR2(18);\
bashR0(19);\
bashR1(20);\
bashR2(21);\
bashR0(22);\
bashR1(23);\
bashR2(24)

void bashF(octet block[192], void* stack)
{
Expand Down
2 changes: 1 addition & 1 deletion src/crypto/bash/bash_fsse2.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ static __inline __m128i _mm_set_epi64x(__int64 _I1, __int64 _I0)

#define R2(a,i0,i1)\
P2_02(X2(SL2(i0,a),SR2(64-i0,a)),\
P2_10(X2(SL2(i1,a),SR2(64-i1,a))))
P2_10(X2(SL2(i1,a),SR2(64-i1,a))))

/*
*******************************************************************************
Expand Down
34 changes: 17 additions & 17 deletions src/crypto/belt/belt_bde.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
\project bee2 [cryptographic library]
\author (C) Sergey Agievich [agievich@{bsu.by|gmail.com}]
\created 2018.06.28
\version 2020.03.20
\version 2020.03.24
\license This program is released under the GNU General Public License
version 3. See Copyright Notices in bee2/info.h.
*******************************************************************************
Expand Down Expand Up @@ -39,44 +39,44 @@ size_t beltBDE_keep()
void beltBDEStart(void* state, const octet key[], size_t len,
const octet iv[16])
{
belt_bde_st* s = (belt_bde_st*)state;
belt_bde_st* st = (belt_bde_st*)state;
ASSERT(memIsDisjoint2(iv, 16, state, beltBDE_keep()));
beltKeyExpand2(s->key, key, len);
u32From(s->s, iv, 16);
beltBlockEncr2(s->s, s->key);
beltKeyExpand2(st->key, key, len);
u32From(st->s, iv, 16);
beltBlockEncr2(st->s, st->key);
}

void beltBDEStepE(void* buf, size_t count, void* state)
{
belt_bde_st* s = (belt_bde_st*)state;
belt_bde_st* st = (belt_bde_st*)state;
ASSERT(count % 16 == 0);
ASSERT(memIsDisjoint2(buf, count, state, beltBDE_keep()));
// цикл по блокам
while(count >= 16)
{
beltBlockMulC(s->s);
u32To(s->block, 16, s->s);
beltBlockXor2(buf, s->block);
beltBlockEncr(buf, s->key);
beltBlockXor2(buf, s->block);
beltBlockMulC(st->s);
u32To(st->block, 16, st->s);
beltBlockXor2(buf, st->block);
beltBlockEncr(buf, st->key);
beltBlockXor2(buf, st->block);
buf = (octet*)buf + 16;
count -= 16;
}
}

void beltBDEStepD(void* buf, size_t count, void* state)
{
belt_bde_st* s = (belt_bde_st*)state;
belt_bde_st* st = (belt_bde_st*)state;
ASSERT(count % 16 == 0);
ASSERT(memIsDisjoint2(buf, count, state, beltBDE_keep()));
// цикл по блокам
while(count >= 16)
{
beltBlockMulC(s->s);
u32To(s->block, 16, s->s);
beltBlockXor2(buf, s->block);
beltBlockDecr(buf, s->key);
beltBlockXor2(buf, s->block);
beltBlockMulC(st->s);
u32To(st->block, 16, st->s);
beltBlockXor2(buf, st->block);
beltBlockDecr(buf, st->key);
beltBlockXor2(buf, st->block);
buf = (octet*)buf + 16;
count -= 16;
}
Expand Down
37 changes: 18 additions & 19 deletions src/crypto/belt/belt_cbc.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
\project bee2 [cryptographic library]
\author (C) Sergey Agievich [agievich@{bsu.by|gmail.com}]
\created 2012.12.18
\version 2019.06.26
\version 2020.03.24
\license This program is released under the GNU General Public License
version 3. See Copyright Notices in bee2/info.h.
*******************************************************************************
Expand Down Expand Up @@ -38,59 +38,59 @@ size_t beltCBC_keep()
void beltCBCStart(void* state, const octet key[], size_t len,
const octet iv[16])
{
belt_cbc_st* s = (belt_cbc_st*)state;
belt_cbc_st* st = (belt_cbc_st*)state;
ASSERT(memIsDisjoint2(iv, 16, state, beltCBC_keep()));
beltKeyExpand2(s->key, key, len);
beltBlockCopy(s->block, iv);
beltKeyExpand2(st->key, key, len);
beltBlockCopy(st->block, iv);
}

void beltCBCStepE(void* buf, size_t count, void* state)
{
belt_cbc_st* s = (belt_cbc_st*)state;
belt_cbc_st* st = (belt_cbc_st*)state;
ASSERT(count >= 16);
ASSERT(memIsDisjoint2(buf, count, state, beltCBC_keep()));
// цикл по полным блокам
while(count >= 16)
{
beltBlockXor2(s->block, buf);
beltBlockEncr(s->block, s->key);
beltBlockCopy(buf, s->block);
beltBlockXor2(st->block, buf);
beltBlockEncr(st->block, st->key);
beltBlockCopy(buf, st->block);
buf = (octet*)buf + 16;
count -= 16;
}
// неполный блок? кража блока
if (count)
{
memSwap((octet*)buf - 16, buf, count);
memXor2((octet*)buf - 16, s->block, count);
beltBlockEncr((octet*)buf - 16, s->key);
memXor2((octet*)buf - 16, st->block, count);
beltBlockEncr((octet*)buf - 16, st->key);
}
}

void beltCBCStepD(void* buf, size_t count, void* state)
{
belt_cbc_st* s = (belt_cbc_st*)state;
belt_cbc_st* st = (belt_cbc_st*)state;
ASSERT(count >= 16);
ASSERT(memIsDisjoint2(buf, count, state, beltCBC_keep()));
// цикл по полным блокам
while(count >= 32 || count == 16)
{
beltBlockCopy(s->block2, buf);
beltBlockDecr(buf, s->key);
beltBlockXor2(buf, s->block);
beltBlockCopy(s->block, s->block2);
beltBlockCopy(st->block2, buf);
beltBlockDecr(buf, st->key);
beltBlockXor2(buf, st->block);
beltBlockCopy(st->block, st->block2);
buf = (octet*)buf + 16;
count -= 16;
}
// неполный блок? кража блока
if (count)
{
ASSERT(16 < count && count < 32);
beltBlockDecr(buf, s->key);
beltBlockDecr(buf, st->key);
memSwap(buf, (octet*)buf + 16, count - 16);
memXor2((octet*)buf + 16, buf, count - 16);
beltBlockDecr(buf, s->key);
beltBlockXor2(buf, s->block);
beltBlockDecr(buf, st->key);
beltBlockXor2(buf, st->block);
}
}

Expand Down Expand Up @@ -143,4 +143,3 @@ err_t beltCBCDecr(void* dest, const void* src, size_t count,
blobClose(state);
return ERR_OK;
}

Loading

0 comments on commit 69685e1

Please sign in to comment.