Difference between revisions of "Python-cellframe"

From wiki.cellframe.net
Jump to navigation Jump to search
Line 136: Line 136:
 
**encodeBase64 - Данная функция принимает в качестве аргументов два параметра объект типа bytes и число от одного до двух, которое определяет тип кодируемых данных, число так же можно получить с помощью. объекта Crypto.DataType и его функций. Функция возвращает закодированные данные в виде строки.
 
**encodeBase64 - Данная функция принимает в качестве аргументов два параметра объект типа bytes и число от одного до двух, которое определяет тип кодируемых данных, число так же можно получить с помощью. объекта Crypto.DataType и его функций. Функция возвращает закодированные данные в виде строки.
 
**decodeBase64 - Данная функция принимает в качестве аргументов два параметра объект строку и число от одного до двух, которое определяет тип кодируемых данных, число так же можно получить с помощью. объекта Crypto.DataType и его функций. Функция возвращает объект типа bytes, который содержит декодированные данные.
 
**decodeBase64 - Данная функция принимает в качестве аргументов два параметра объект строку и число от одного до двух, которое определяет тип кодируемых данных, число так же можно получить с помощью. объекта Crypto.DataType и его функций. Функция возвращает объект типа bytes, который содержит декодированные данные.
 +
*Для работы с ключами шифрования. Примечание: Для работы с ключами шифрования возможно придётся указывать тип этих ключей. Поэтому рекомендуется ознакомиться с объектом типа [[Python-cellframe#Crypto.KeyType|Crypto.KeyType]].
 +
**newKey - Данная функция принимает в качестве первого параметра, число обозначающая тип генерируемого ключа и возвращает объект типа CryptoKey.
 +
**delKey - Данная функция принимает объект типа CryptoKey и производит удаление ключа, в данной версии библиотеки не актуальна, так как эту работу на себя берёт деструктуор объекта CryptoKey.
 +
**generateNewKey - Данная функция принимает на вход шесть аргументов, число - тип генерируемого ключа, объект типа bytes - kex буфер, размер данного объекта,объект типа bytes - seed, размер данного объекта, размер ключа - по умолчанию указывать 0. Функция генерирует ключ заданного типа, помещает его в объект CryptoKey и возвращает его.
 +
**getEncSizeKey - Данная функция принимает два параметра объект CryptoKey и размер шифруемых данных. Функция возвращает размер зашифрованных данных с помощью алгоритма, к которому относиться этот ключ.
 +
**getDecSizeKey - Данная функция принимает два параметра объект CryptoKey и размер дешифруемых данных. Функция возвращает размер дешифрованных данных с помощью алгоритма, к которому относиться этот ключ.
 
*Для работы с реализацией алгоритмам IAES256
 
*Для работы с реализацией алгоритмам IAES256
 
**newKeyIAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за добавление в него ключа IAES
 
**newKeyIAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за добавление в него ключа IAES
Line 144: Line 150:
 
**encryptIAES256CBCFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция кодирует входные данные и возвращает объект типа bytes, который содержит закодированные данные с помощью алгоритма IAES256.
 
**encryptIAES256CBCFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция кодирует входные данные и возвращает объект типа bytes, который содержит закодированные данные с помощью алгоритма IAES256.
 
**decryptIAES256CBCFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция декодирует входные данные и возвращает объект типа bytes, который содержит декодированные данные с помощью алгоритма IAES256.
 
**decryptIAES256CBCFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция декодирует входные данные и возвращает объект типа bytes, который содержит декодированные данные с помощью алгоритма IAES256.
 +
*Для работы с реализацией алгоритмам OAES
 +
**newKeyOAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за добавление в него ключа OAES
 +
**<span style="color:#858585;">deleteKeyOAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за удаление из него ключа OAES </span>
 +
**generateKeyOAES - Данная функция принимает на вход пять аргументов, объект типа CryptoKey, объект типа bytes, размер данного объекта,объект типа bytes, размер данного объекта. И генерирует ключ типа OAES добавляя его в объект типа CryptoKey. Второй аргумент - это kex буфер. Четвертый seed.
 +
**encodeSizeOAES -  Данная функция принимает на вход один числовой аргумент - размер данных, которые необходимо закодировать. И вычисляет размер, который будет содержать закодированные данные с помощью алгоритма OAES. Соответственно функция возвращает число
 +
**decodeSizeOAES - Данная функция принимает на вход один числовой аргумент - размер данных, которые необходимо декодировать. И вычисляет размер, который будет содержать декодированные данные с помощью алгоритма OAES. Соответственно функция возвращает число
 +
**encryptOAESFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция кодирует входные данные и возвращает объект типа bytes, который содержит закодированные данные с помощью алгоритма OAES.
 +
**decryptOAESFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция декодирует входные данные и возвращает объект типа bytes, который содержит декодированные данные с помощью алгоритма OAES.

Revision as of 16:04, 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, который содержит декодированные данные.
  • Для работы с ключами шифрования. Примечание: Для работы с ключами шифрования возможно придётся указывать тип этих ключей. Поэтому рекомендуется ознакомиться с объектом типа Crypto.KeyType.
    • newKey - Данная функция принимает в качестве первого параметра, число обозначающая тип генерируемого ключа и возвращает объект типа CryptoKey.
    • delKey - Данная функция принимает объект типа CryptoKey и производит удаление ключа, в данной версии библиотеки не актуальна, так как эту работу на себя берёт деструктуор объекта CryptoKey.
    • generateNewKey - Данная функция принимает на вход шесть аргументов, число - тип генерируемого ключа, объект типа bytes - kex буфер, размер данного объекта,объект типа bytes - seed, размер данного объекта, размер ключа - по умолчанию указывать 0. Функция генерирует ключ заданного типа, помещает его в объект CryptoKey и возвращает его.
    • getEncSizeKey - Данная функция принимает два параметра объект CryptoKey и размер шифруемых данных. Функция возвращает размер зашифрованных данных с помощью алгоритма, к которому относиться этот ключ.
    • getDecSizeKey - Данная функция принимает два параметра объект CryptoKey и размер дешифруемых данных. Функция возвращает размер дешифрованных данных с помощью алгоритма, к которому относиться этот ключ.
  • Для работы с реализацией алгоритмам 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.
  • Для работы с реализацией алгоритмам OAES
    • newKeyOAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за добавление в него ключа OAES
    • deleteKeyOAES - Данная функция принимает на вход объект типа CryptoKey и отвечает за удаление из него ключа OAES
    • generateKeyOAES - Данная функция принимает на вход пять аргументов, объект типа CryptoKey, объект типа bytes, размер данного объекта,объект типа bytes, размер данного объекта. И генерирует ключ типа OAES добавляя его в объект типа CryptoKey. Второй аргумент - это kex буфер. Четвертый seed.
    • encodeSizeOAES - Данная функция принимает на вход один числовой аргумент - размер данных, которые необходимо закодировать. И вычисляет размер, который будет содержать закодированные данные с помощью алгоритма OAES. Соответственно функция возвращает число
    • decodeSizeOAES - Данная функция принимает на вход один числовой аргумент - размер данных, которые необходимо декодировать. И вычисляет размер, который будет содержать декодированные данные с помощью алгоритма OAES. Соответственно функция возвращает число
    • encryptOAESFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция кодирует входные данные и возвращает объект типа bytes, который содержит закодированные данные с помощью алгоритма OAES.
    • decryptOAESFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция декодирует входные данные и возвращает объект типа bytes, который содержит декодированные данные с помощью алгоритма OAES.