diff options
Diffstat (limited to 'plugins/Kuzne4ikCrypt/src/GOST/block_chipher.cpp')
-rw-r--r-- | plugins/Kuzne4ikCrypt/src/GOST/block_chipher.cpp | 168 |
1 files changed, 84 insertions, 84 deletions
diff --git a/plugins/Kuzne4ikCrypt/src/GOST/block_chipher.cpp b/plugins/Kuzne4ikCrypt/src/GOST/block_chipher.cpp index 3606af3a26..9ac26c8072 100644 --- a/plugins/Kuzne4ikCrypt/src/GOST/block_chipher.cpp +++ b/plugins/Kuzne4ikCrypt/src/GOST/block_chipher.cpp @@ -1,5 +1,5 @@ /** @file
-* @brief
+* @brief Реализация режимов работы блочных алгоритмов
*
* @copyright InfoTeCS. All rights reserved.
*/
@@ -12,150 +12,150 @@ #include "28147_14.h"
#include "block_chipher.h"
-/** @brief */
+/** @brief определение внутреннего ассерта */
#define INFOTECS_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]
-/** @brief "" */
+/** @brief размер тестовых данных для алгоритма "кузнечик" */
#define textLen14 sizeof(kSeltTestGost14PlainText)/sizeof(kSeltTestGost14PlainText[0])
-/** @brief 28147-89 */
+/** @brief размер тестовых данных для алгоритма 28147-89 */
#define textLen89 sizeof(kSeltTestGost89PlainText)/sizeof(kSeltTestGost89PlainText[0])
-/** @brief "" */
+/** @brief Признак алгоритма "Кузнечик" */
const unsigned char kAlg14 = 1;
-/** @brief 28147-89 */
+/** @brief Признак алгоритма 28147-89 */
const unsigned char kAlg89 = 2;
-/** @brief */
+/** @brief указатель на функцию шифрования */
typedef int (DLL_IMPORT *pEncrypt)(unsigned char* plainText, unsigned char* chipherText, unsigned char* keys);
-/** @brief */
+/** @brief указатель на функцию расшифрования */
typedef int (DLL_IMPORT *pDecrypt)(unsigned char* chipherText, unsigned char* plainText, unsigned char* keys);
-/** @brief ECB */
+/** @brief Функция самотестирования режима ECB */
static int SelfTestGost14Ecb();
-/** @brief ECB */
+/** @brief Функция самотестирования режима ECB */
static int SelfTestGost89Ecb();
-/** @brief CRT */
+/** @brief Функция самотестирования режима CRT */
static int SelfTestGost14Crt();
-/** @brief CRT */
+/** @brief Функция самотестирования режима CRT */
static int SelfTestGost89Crt();
-/** @brief OFB */
+/** @brief Функция самотестирования режима OFB */
static int SelfTestGost14Ofb();
-/** @brief OFB */
+/** @brief Функция самотестирования режима OFB */
static int SelfTestGost89Ofb();
-/** @brief CBC */
+/** @brief Функция самотестирования режима CBC */
static int SelfTestGost14Cbc();
-/** @brief CBC */
+/** @brief Функция самотестирования режима CBC */
static int SelfTestGost89Cbc();
-/** @brief CFB */
+/** @brief Функция самотестирования режима CFB */
static int SelfTestGost14Cfb();
-/** @brief CFB */
+/** @brief Функция самотестирования режима CFB */
static int SelfTestGost89Cfb();
-/** @brief */
+/** @brief Функция самотестирования режима имитовставки */
static int SelfTestGost14Imit();
-/** @brief */
+/** @brief Функция самотестирования режима имитовставки */
static int SelfTestGost89Imit();
-/** @brief 1 */
+/** @brief Сдвиг влево на 1 бит */
static void ShifttLeftOne(unsigned char *r, size_t length);
-/** @brief ECB */
+/** @brief Контекст ECB */
typedef struct
{
- unsigned char Alg; /**< */
- unsigned char* Keys; /**< */
- unsigned int BlockLen; /**< */
- pEncrypt EncryptFunc; /**< */
- pDecrypt DecryptFunc; /**< */
+ unsigned char Alg; /**< идентификатор алгоритма */
+ unsigned char* Keys; /**< ключ */
+ unsigned int BlockLen; /**< размер блока */
+ pEncrypt EncryptFunc; /**< функция шифрования */
+ pDecrypt DecryptFunc; /**< функция расшифрования */
} Context_ecb;
-/** @brief CRT */
+/** @brief Контекст CRT */
typedef struct
{
- unsigned char Alg; /**< */
- unsigned char* Counter; /**< */
- unsigned char* Keys; /**< */
- size_t S; /**< */
- size_t BlockLen; /**< */
- pEncrypt EncryptFunc; /**< */
- unsigned char *tmpblock; /**< */
+ unsigned char Alg; /**< идентификатор алгоритма */
+ unsigned char* Counter; /**< счетчик */
+ unsigned char* Keys; /**< ключ */
+ size_t S; /**< размер синхропосылки */
+ size_t BlockLen; /**< размер блока */
+ pEncrypt EncryptFunc; /**< функция шифрования */
+ unsigned char *tmpblock; /**< временный блок */
} Context_crt;
-/** @brief OFB */
+/** @brief Контекст OFB */
typedef struct
{
- unsigned char Alg; /**< */
- unsigned char* IV; /**< */
- unsigned char* Keys; /**< */
- size_t M; /**< */
- size_t S; /**< S */
- size_t BlockLen; /**< */
- pEncrypt EncryptFunc; /**< */
- pDecrypt DecryptFunc; /**< */
- unsigned char *tmpblock; /**< */
- unsigned char* nextIV; /**< */
+ unsigned char Alg; /**< идентификатор алгоритма */
+ unsigned char* IV; /**< синхропосылка */
+ unsigned char* Keys; /**< ключ */
+ size_t M; /**< размер синхрпосылки */
+ size_t S; /**< параметр S */
+ size_t BlockLen; /**< размер блока */
+ pEncrypt EncryptFunc; /**< функция шифрования */
+ pDecrypt DecryptFunc; /**< функция расшифрования */
+ unsigned char *tmpblock; /**< временный блок */
+ unsigned char* nextIV; /**< синхропосылка для следующего блока */
} Context_ofb;
-/** @brief CFB */
+/** @brief Контекст CFB */
typedef struct
{
- unsigned char Alg; /**< */
- unsigned char* IV; /**< */
- unsigned char* Keys; /**< */
- size_t M; /**< */
- size_t S; /**< S */
- size_t BlockLen; /**< */
- pEncrypt EncryptFunc; /**< */
- pDecrypt DecryptFunc; /**< */
- unsigned char *tmpblock; /**< */
- unsigned char* nextIV; /**< */
+ unsigned char Alg; /**< идентификатор алгоритма */
+ unsigned char* IV; /**< синхропосылка */
+ unsigned char* Keys; /**< ключ */
+ size_t M; /**< размер синхрпосылки */
+ size_t S; /**< параметр S */
+ size_t BlockLen; /**< размер блока */
+ pEncrypt EncryptFunc; /**< функция шифрования */
+ pDecrypt DecryptFunc; /**< функция расшифрования */
+ unsigned char *tmpblock; /**< временный блок */
+ unsigned char* nextIV; /**< синхропосылка для следующего блока */
} Context_cfb;
-/** @brief CBC */
+/** @brief Контекст CBC */
typedef struct
{
- unsigned char Alg; /**< */
- unsigned char* IV; /**< */
- unsigned char* Keys; /**< */
- size_t BlockLen; /**< */
- size_t M; /**< */
- pEncrypt EncryptFunc; /**< */
- pDecrypt DecryptFunc; /**< */
- unsigned char* nextIV; /**< */
- unsigned char* tempIV; /**< */
- unsigned char *tmpblock; /**< */
+ unsigned char Alg; /**< идентификатор алгоритма */
+ unsigned char* IV; /**< синхропосылка */
+ unsigned char* Keys; /**< ключ */
+ size_t BlockLen; /**< размер блока */
+ size_t M; /**< размер синхрпосылки */
+ pEncrypt EncryptFunc; /**< функция шифрования */
+ pDecrypt DecryptFunc; /**< функция расшифрования */
+ unsigned char* nextIV; /**< синхропосылка для следующего блока */
+ unsigned char* tempIV; /**< для временного хранения значения синхропосылки */
+ unsigned char *tmpblock; /**< временный блок */
} Context_cbc;
-/** @brief */
+/** @brief Контекст имитовставки */
typedef struct
{
- unsigned char Alg; /**< */
- unsigned char* Keys; /**< */
- unsigned char* K1; /**< K1 */
- unsigned char* K2; /**< K2 */
- unsigned char* B; /**< B */
- unsigned char* R; /**< R */
- unsigned char* C; /**< C */
- unsigned char* LastBlock; /**< */
- size_t S; /**< S */
- size_t BlockLen; /**< */
- size_t LastBlockSize; /**< */
- int isFistBlock; /**< */
- pEncrypt EncryptFunc; /**< */
- unsigned char *tmpblock; /**< */
- unsigned char *resimit; /**< */
+ unsigned char Alg; /**< идентификатор алгоритма */
+ unsigned char* Keys; /**< ключ */
+ unsigned char* K1; /**< вспомогательный параметр K1 */
+ unsigned char* K2; /**< вспомогательный параметр K2 */
+ unsigned char* B; /**< вспомогательный параметр B */
+ unsigned char* R; /**< вспомогательный параметр R */
+ unsigned char* C; /**< вспомогательный параметр C */
+ unsigned char* LastBlock; /**< предыдущий блок */
+ size_t S; /**< параметр S */
+ size_t BlockLen; /**< размер блока */
+ size_t LastBlockSize; /**< размер предыдущего блока */
+ int isFistBlock; /**< идентификатор первого блока */
+ pEncrypt EncryptFunc; /**< функция шифрования */
+ unsigned char *tmpblock; /**< временный блок */
+ unsigned char *resimit; /**< имитовставка */
} Context_imit;
static int init_ecb_14_impl(unsigned char *key, void* ctx)
|