diff options
Diffstat (limited to 'plugins/Kuzne4ikCrypt/src/GOST/28147_14.h')
-rw-r--r-- | plugins/Kuzne4ikCrypt/src/GOST/28147_14.h | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/plugins/Kuzne4ikCrypt/src/GOST/28147_14.h b/plugins/Kuzne4ikCrypt/src/GOST/28147_14.h new file mode 100644 index 0000000000..fa6e08cbb2 --- /dev/null +++ b/plugins/Kuzne4ikCrypt/src/GOST/28147_14.h @@ -0,0 +1,172 @@ +/** @file
+ * @brief Объявление функций реализующих преобразования из алгоритма "Кузнечик"
+ *
+ * @copyright InfoTeCS. All rights reserved.
+ */
+
+#ifndef C_28147_14_H
+#define C_28147_14_H
+
+//#include "dll_import.h"
+//#include "callback_print.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @brief Преобразование X
+ *
+ * @param[in] a входной параметр преобразования
+ * @param[in] b входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcX(unsigned char* a, unsigned char* b, unsigned char* outdata);
+
+/** @brief Преобразование S
+ *
+ * @param[in] indata входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcS(unsigned char* indata, unsigned char* outdata);
+
+/** @brief Преобразование обратное к преобразованию S
+ *
+ * @param[in] indata входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcReverseS(unsigned char* indata, unsigned char* outdata);
+
+/** @brief Преобразование R
+ *
+ * @param[in] indata входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcR(unsigned char* indata, unsigned char* outdata);
+
+/** @brief Преобразование обратное к преобразованию R
+ *
+ * @param[in] indata входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcReverseR(unsigned char* indata, unsigned char* outdata);
+
+/** @brief Преобразование L
+ *
+ * @param[in] indata входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcL(unsigned char* indata, unsigned char* outdata);
+
+/** @brief Преобразование обратное к преобразованию L
+ *
+ * @param[in] indata входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcReverseL(unsigned char* indata, unsigned char* outdata);
+
+/** @brief Преобразование LSX
+ *
+ * @param[in] a входной параметр преобразования
+ * @param[in] b входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcLSX(unsigned char* a, unsigned char* b, unsigned char* outdata);
+
+/** @brief Преобразование обратное к преобразованию LSX
+ *
+ * @param[in] a входной параметр преобразования
+ * @param[in] b входной параметр преобразования
+ * @param[out] outdata результат параметр преобразования
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcReverseLSX(unsigned char* a, unsigned char* b, unsigned char* outdata);
+
+/** @brief Преобразование F
+ *
+ * @param[in] inputKey Первый ключ из пары ключей полученной в предедущей итерации
+ * @param[in] inputKeySecond Второй ключ из пары ключей полученной в предедущей итерации
+ * @param[in] iterationConst Итерационная константа
+ * @param[out] outputKey Первый ключ
+ * @param[out] outputKeySecond Второй ключ
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcF(unsigned char* inputKey, unsigned char* inputKeySecond, unsigned char* iterationConst, unsigned char* outputKey, unsigned char* outputKeySecond);
+
+/** @brief Вычисление итерационной константы С
+ *
+ * @param[in] number номер константы
+ * @param[out] output итерационная константа
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int funcC(unsigned char number, unsigned char* outputW);
+
+/** @brief Развертка ключа
+ *
+ * @param[in] masterKey Мастер ключ
+ * @param[out] keys массив развернутых ключей
+ * @param[in] print функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int ExpandKey(unsigned char* masterKey, unsigned char* keys);
+
+/** @brief Выполнение зашифрования блока
+ *
+ * @param[in] plainText Исходный блок
+ * @param[out] chipherText Зашифрованный блок
+ * @param[in] keys Развернутые ключи
+ * @param[in] print функция логирования
+ * @param[in] print_uint функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int Encrypt_14(unsigned char* plainText, unsigned char* chipherText, unsigned char* keys);
+
+/** @brief Выполение расшифрования блока
+ *
+ * @param[in] chipherText Зашифрованный блок
+ * @param[out] plainText Расшифрованный блок
+ * @param[in] keys Развернутые ключи
+ * @param[in] print функция логирования
+ * @param[in] print_uint функция логирования
+ * @return 0 если все преобразование прошло успешно
+ * @return -1 если произошла ошибка
+ */
+int Decrypt_14(unsigned char* chipherText, unsigned char* plainText, unsigned char* keys);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
|