Difference between revisions of "Python-cellframe"

From wiki.cellframe.net
Jump to navigation Jump to search
(Новая страница: «== python-cellframe == Это библиотека, которая объединяет следующие библиотеки *libdap-python *libdap-crypto-py...»)
 
Line 59: Line 59:
 
*configGetItem - Получает данные из конфигурационного файла, принимает два входных параметра: селектор, ключ.
 
*configGetItem - Получает данные из конфигурационного файла, принимает два входных параметра: селектор, ключ.
 
*configGetItemDefault - Получает данные из конфигурационного файла, принимает два входных параметра: селектор, ключ.
 
*configGetItemDefault - Получает данные из конфигурационного файла, принимает два входных параметра: селектор, ключ.
 +
 +
=== libdap-python-crypto ===
 +
Эта библиотека является обёрткой над libdap-crypto. И предоставляет доступ к функциям libdap-crypto, через объект типа Crypto. А так же предоставляет объекты типа Crypto.KeyType  и Crypto.DataType.
 +
 +
==== Типы объектов ====
 +
===== Crypto.KeyType =====
 +
Объект типа KeyData - является аналогам обычного enum. И предоставляет функции для получения значений их перечисление dap_enc_key_type.
 +
Поэтому все функции, которые он предоставляет являются статическими, возвращают числовое значение и не принимают аргументов.
 +
 +
{| class="wikitable"
 +
|+ Функции
 +
|-
 +
! Название !! Возвращаемое значение
 +
|-
 +
|| DAP_ENC_KEY_TYPE_IAES || 0
 +
|-
 +
|| DAP_ENC_KEY_TYPE_OAES ||1
 +
|-
 +
|| DAP_ENC_KEY_TYPE_RLWE_NEWHOPE || 2
 +
|-
 +
|| DAP_ENC_KEY_TYPE_SIDH_CLN16 || 3
 +
|-
 +
|| DAP_ENC_KEY_TYPE_DEFEO ||4
 +
|-
 +
|| DAP_ENC_KEY_TYPE_MSRLN || 5
 +
|-
 +
|| DAP_ENC_KEY_TYPE_MSRLN16 || 6
 +
|-
 +
|| DAP_ENC_KEY_TYPE_RLWE_BCNS15 || 7
 +
|-
 +
|| DAP_ENC_KEY_TYPE_LWE_FRODO || 8
 +
|-
 +
|| DAP_ENC_KEY_TYPE_SIDH_IQC_REF || 9
 +
|-
 +
|| DAP_ENC_KEY_TYPE_CODE_MCBITS || 10
 +
|-
 +
|| DAP_ENC_KEY_TYPE_NTRU || 11
 +
|-
 +
|| DAP_ENC_KEY_TYPE_MLWE_KYBER || 12
 +
|-
 +
|| DAP_ENC_KEY_TYPE_SIG_PICNIC || 13
 +
|-
 +
|| DAP_ENC_KEY_TYPE_SIG_BLISS || 14
 +
|-
 +
|| DAP_ENC_KEY_TYPE_SIG_TESLA || 15
 +
|-
 +
|| DAP_ENC_KEY_TYPE_SIG_DILITHIUM || 16
 +
|-
 +
|| DAP_ENC_KEY_TYPE_NULL || 0
 +
|}
 +
 +
===== Crypto.DataType =====
 +
Объект типа KeyData - является аналогам обычного enum. И предоставляет функции для получения значений их перечисление dap_enc_data_type.
 +
Поэтому все функции, которые он предоставляет являются статическими, возвращают числовое значение и не принимают аргументов.
 +
 +
{| class="wikitable"
 +
|+ Функции
 +
|-
 +
! Название !! Возвращаемое значение
 +
|-
 +
|| DAP_ENC_DATA_TYPE_RAW || 0
 +
|-
 +
|| DAP_ENC_DATA_TYPE_B64 ||1
 +
|-
 +
|| DAP_ENC_DATA_TYPE_B64_URLSAFE || 2
 +
|}
 +
 +
==== Функции ====
 +
''' Внимание функции отмеченные <span style="color:#858585;">серым</span> цветом не реализованы '''
 +
 +
libdap-python-crypto - предоставляет следующие функции
 +
*Для работы с реализацией алгоритмам Base58
 +
**encodeBase58 - Данная функция принимает в качестве аргумента объект типа bytes, кодирует их алгоритмам Base58 и возвращает строку.
 +
**decodeBase58 - Данная функция принимает в качестве аргумента строку, декодирует её с помощью алгоритма Base58 и возвращает объект типа bytes.
 +
*Для работы с реализацией алгоритмам Base64
 +
**encodeBase64 - Данная функция принимает в качестве аргументов два параметра объект типа bytes и число от одного до двух, которое определяет тип кодируемых данных, число так же можно получить с помощью. объекта Crypto.DataType и его функций. Функция возвращает закодированные данные в виде строки.
 +
**decodeBase64 - Данная функция принимает в качестве аргументов два параметра объект строку и число от одного до двух, которое определяет тип кодируемых данных, число так же можно получить с помощью. объекта Crypto.DataType и его функций. Функция возвращает объект типа bytes, который содержит декодированные данные.
 +
*Для работы с реализацией алгоритмам IAES256
 +
**newKeyIAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за добавление в него ключа IAES
 +
**<span style="color:#858585;">deleteKeyIAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за удаление из него ключа IAES </span>
 +
**generateKeyIAES - Данная функция принимает на вход пять аргументов, объект типа CryptoKey, объект типа bytes, размер данного объекта,объект типа bytes, размер данного объекта. И генерирует ключ типа IAES добавляя его в объект типа CryptoKey. Второй аргумент - это kex буфер. Четвертый seed.
 +
**encodeSizeIAES256 -  Данная функция принимает на вход один числовой аргумент - размер данных, которые необходимо закодировать. И вычисляет размер, который будет содержать закодированные данные с помощью алгоритма IAES256. Соответственно функция возвращает число
 +
**decodeSizeIAES256 - Данная функция принимает на вход один числовой аргумент - размер данных, которые необходимо декодировать. И вычисляет размер, который будет содержать декодированные данные с помощью алгоритма IAES256. Соответственно функция возвращает число
 +
**encryptIAES256CBCFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция кодирует входные данные и возвращает объект типа bytes, который содержит закодированные данные с помощью алгоритма IAES256.
 +
**decryptIAES256CBCFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция декодирует входные данные и возвращает объект типа bytes, который содержит декодированные данные с помощью алгоритма IAES256.

Revision as of 11:35, 11 September 2019

python-cellframe

Это библиотека, которая объединяет следующие библиотеки

  • libdap-python
  • libdap-crypto-python
  • libdap-server-core-python

Также одной из главных задач этого модуля, является инициализация/деинициализация подключаемых библиотек.

Сборка

Инициализация

Инициализация python-cellframe происходит с помощью вызова функции init. В качестве параметра этой функции передаётся строка, которая содержит JSON. JSON обязательно должен содержать:

  • массив с названием modules с перечислением названий модулей, которые нужно инициализировать, данный массив может быть пустым, если необходимо инициализировать только модуль libdap-python
  • объект с названием DAP, который содержит пары ключ значений:
    • config_dir - директория в которой хранятся конфигурационные файлы
    • log_level - отвечает за установку уровня логирования
    • application_name - отвечает за установку названия приложения
    • file_name_log - отвечает за установку названия файла логов

Также JSON должен содержать название модуля и конфигурационную информацию необходимою для инициализации данного модуля.

Внимание! Модуль libdap-python должен пройти инициализацию обязательно, поэтому в JSON необходим объект DAP, а в список модулей его вносить не обязательно

Пример JSON строки, которая инициализирует библиотеку libdap-crypto-python

{
    "modules": ["crypto"],
    "DAP": {
       "config_dir": \""""+os.getcwd()+"""\",
       "log_level": "L_DEBUG",
       "application_name": \""""+app_name+"""\",
       "file_name_log": \""""+app_name+""".text\"
    }
}

libdap-python и python-cellframe

Данные библиотеки являются основой DAP (Deus Applicaions Prototypes). Библиотека libdap-python является обёрткой над библиотекой libdap.

Функции

  • init - Предоставляет python-cellframe и данная функция производит всю работу по инициализации, принимает один параметр JSON строку.
  • deinit - Предоставляет python-cellframe и данная функция производит всю работу по деинициализации, не принимает параметров.
  • setLogLevel - Предоставляет libdap-python данная функция устанавливает уровень логирования, принимает на вход один параметр числовой параметр
  • logIt - Выводит на экран и записывает в файл логов сообщение, принимает два параметра уровень логирования и текст
  • logItDebug - Тоже что и предыдущий только уровень логирования установлен DEBUG (0).
  • logItInfo - Тоже что и предыдущий только уровень логирования установлен INFO (1).
  • logItNotice - Тоже что и предыдущий только уровень логирования установлен NOTICE (2).
  • logItMessage - Тоже что и предыдущий только уровень логирования установлен MSG (3).
  • logItDap - Тоже что и предыдущий только уровень логирования установлен DAP (4).
  • logItWarning - Тоже что и предыдущий только уровень логирования установлен WARNING (5).
  • logItAtt - Тоже что и предыдущий только уровень логирования установлен ATT (6).
  • logItError - Тоже что и предыдущий только уровень логирования установлен ERROR (7).
  • logItCritical - Тоже что и предыдущий только уровень логирования установлен CRITICAL (8).
  • configGetItem - Получает данные из конфигурационного файла, принимает два входных параметра: селектор, ключ.
  • configGetItemDefault - Получает данные из конфигурационного файла, принимает два входных параметра: селектор, ключ.

libdap-python-crypto

Эта библиотека является обёрткой над libdap-crypto. И предоставляет доступ к функциям libdap-crypto, через объект типа Crypto. А так же предоставляет объекты типа Crypto.KeyType и Crypto.DataType.

Типы объектов

Crypto.KeyType

Объект типа KeyData - является аналогам обычного enum. И предоставляет функции для получения значений их перечисление dap_enc_key_type. Поэтому все функции, которые он предоставляет являются статическими, возвращают числовое значение и не принимают аргументов.

Функции
Название Возвращаемое значение
DAP_ENC_KEY_TYPE_IAES 0
DAP_ENC_KEY_TYPE_OAES 1
DAP_ENC_KEY_TYPE_RLWE_NEWHOPE 2
DAP_ENC_KEY_TYPE_SIDH_CLN16 3
DAP_ENC_KEY_TYPE_DEFEO 4
DAP_ENC_KEY_TYPE_MSRLN 5
DAP_ENC_KEY_TYPE_MSRLN16 6
DAP_ENC_KEY_TYPE_RLWE_BCNS15 7
DAP_ENC_KEY_TYPE_LWE_FRODO 8
DAP_ENC_KEY_TYPE_SIDH_IQC_REF 9
DAP_ENC_KEY_TYPE_CODE_MCBITS 10
DAP_ENC_KEY_TYPE_NTRU 11
DAP_ENC_KEY_TYPE_MLWE_KYBER 12
DAP_ENC_KEY_TYPE_SIG_PICNIC 13
DAP_ENC_KEY_TYPE_SIG_BLISS 14
DAP_ENC_KEY_TYPE_SIG_TESLA 15
DAP_ENC_KEY_TYPE_SIG_DILITHIUM 16
DAP_ENC_KEY_TYPE_NULL 0
Crypto.DataType

Объект типа KeyData - является аналогам обычного enum. И предоставляет функции для получения значений их перечисление dap_enc_data_type. Поэтому все функции, которые он предоставляет являются статическими, возвращают числовое значение и не принимают аргументов.

Функции
Название Возвращаемое значение
DAP_ENC_DATA_TYPE_RAW 0
DAP_ENC_DATA_TYPE_B64 1
DAP_ENC_DATA_TYPE_B64_URLSAFE 2

Функции

Внимание функции отмеченные серым цветом не реализованы

libdap-python-crypto - предоставляет следующие функции

  • Для работы с реализацией алгоритмам Base58
    • encodeBase58 - Данная функция принимает в качестве аргумента объект типа bytes, кодирует их алгоритмам Base58 и возвращает строку.
    • decodeBase58 - Данная функция принимает в качестве аргумента строку, декодирует её с помощью алгоритма Base58 и возвращает объект типа bytes.
  • Для работы с реализацией алгоритмам Base64
    • encodeBase64 - Данная функция принимает в качестве аргументов два параметра объект типа bytes и число от одного до двух, которое определяет тип кодируемых данных, число так же можно получить с помощью. объекта Crypto.DataType и его функций. Функция возвращает закодированные данные в виде строки.
    • decodeBase64 - Данная функция принимает в качестве аргументов два параметра объект строку и число от одного до двух, которое определяет тип кодируемых данных, число так же можно получить с помощью. объекта Crypto.DataType и его функций. Функция возвращает объект типа bytes, который содержит декодированные данные.
  • Для работы с реализацией алгоритмам IAES256
    • newKeyIAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за добавление в него ключа IAES
    • deleteKeyIAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за удаление из него ключа IAES
    • generateKeyIAES - Данная функция принимает на вход пять аргументов, объект типа CryptoKey, объект типа bytes, размер данного объекта,объект типа bytes, размер данного объекта. И генерирует ключ типа IAES добавляя его в объект типа CryptoKey. Второй аргумент - это kex буфер. Четвертый seed.
    • encodeSizeIAES256 - Данная функция принимает на вход один числовой аргумент - размер данных, которые необходимо закодировать. И вычисляет размер, который будет содержать закодированные данные с помощью алгоритма IAES256. Соответственно функция возвращает число
    • decodeSizeIAES256 - Данная функция принимает на вход один числовой аргумент - размер данных, которые необходимо декодировать. И вычисляет размер, который будет содержать декодированные данные с помощью алгоритма IAES256. Соответственно функция возвращает число
    • encryptIAES256CBCFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция кодирует входные данные и возвращает объект типа bytes, который содержит закодированные данные с помощью алгоритма IAES256.
    • decryptIAES256CBCFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция декодирует входные данные и возвращает объект типа bytes, который содержит декодированные данные с помощью алгоритма IAES256.