Коммит af144d8e создал по автору Моисеенко Андрей Алексеевич's avatar Моисеенко Андрей Алексеевич
Просмотр файлов

~

владелец af1df895
......@@ -65,6 +65,7 @@
#include "temp.h"
//#define KUZNECHIK_DEBUG
#define KUZNECHIK_BYTE_S // no g++ bug
//#include <stdio.h>
......@@ -101,9 +102,8 @@ const unsigned char CChipherKuznechik::Pi[256] =
};
// Таблица обратного нелинейного преобразования
//const
unsigned char CChipherKuznechik::Pi_reverse[256] = {};
/*
//unsigned char CChipherKuznechik::Pi_reverse[256] = {};
const unsigned char CChipherKuznechik::Pi_reverse[256] =
{
0xA5, 0x2D, 0x32, 0x8F, 0x0E, 0x30, 0x38, 0xC0, 0x54, 0xE6, 0x9E, 0x39, 0x55, 0x7E, 0x52, 0x91,
0x64, 0x03, 0x57, 0x5A, 0x1C, 0x60, 0x07, 0x18, 0x21, 0x72, 0xA8, 0xD1, 0x29, 0xC6, 0xA4, 0x3F,
......@@ -122,7 +122,6 @@ unsigned char CChipherKuznechik::Pi_reverse[256] = {};
0x90, 0xD0, 0x24, 0x34, 0xCB, 0xED, 0xF4, 0xCE, 0x99, 0x10, 0x44, 0x40, 0x92, 0x3A, 0x01, 0x26,
0x12, 0x1A, 0x48, 0x68, 0xF5, 0x81, 0x8B, 0xC7, 0xD6, 0x20, 0x0A, 0x08, 0x00, 0x4C, 0xD7, 0x74
};
*/
unsigned short * CChipherKuznechik::Pi2 = nullptr;
unsigned short * CChipherKuznechik::Pi2_reverse = nullptr;
......@@ -166,6 +165,7 @@ void CChipherKuznechik::ClearRoundKeys() noexcept
void CChipherKuznechik::CreateTables() noexcept
{
#ifndef KUZNECHIK_BYTE_S
if (!Pi_reverse[0xff])
{
for (int i = 0; i < 0x100; i++)
......@@ -228,12 +228,13 @@ void CChipherKuznechik::CreateTables() noexcept
#endif
}
}
#endif
}
// Функция S
void CChipherKuznechik::S(_uqword* in_out) noexcept
{
#if 0
#ifdef KUZNECHIK_BYTE_S
// Переход к представлению в байтах
unsigned char *b = (unsigned char*)in_out;
for (int i = 0; i < KUZNECHIK_BLOCK_SIZE; i++)
......@@ -254,7 +255,8 @@ void CChipherKuznechik::S(_uqword* in_out) noexcept
// Обратная функция S
void CChipherKuznechik::S_reverse(_uqword* in_out) noexcept
{
#if 0
#ifdef KUZNECHIK_BYTE_S
// no gcc bug
// Переход к представлению в байтах
unsigned char *b = (unsigned char*)in_out;
for (int i = 0; i < KUZNECHIK_BLOCK_SIZE; i++)
......@@ -284,6 +286,8 @@ void CChipherKuznechik::S_reverse(_uqword* in_out) noexcept
{
printf("[%04x] = %04x , != %04x\n", ww, w[i], ((unsigned short*)b16)[i]);
}
#else
// gcc bug
#endif
}
#endif
......
......@@ -132,8 +132,8 @@ protected:
chunk round_keys[10];
// Таблица прямого нелинейного преобразования согластно ГОСТ 34.12-2015
static const unsigned char Pi[256];//, Pi_reverse[256];
static unsigned char Pi_reverse[256];
static const unsigned char Pi[256], Pi_reverse[256];
//static unsigned char Pi_reverse[256];
static unsigned short *Pi2, *Pi2_reverse;
static const unsigned char linear_vector[16];
static const unsigned char StaticKey[32];
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать