Difference between revisions of "Python-cellframe"
Line 61: | Line 61: | ||
=== libdap-python-crypto === | === libdap-python-crypto === | ||
− | Эта библиотека является обёрткой над libdap-crypto. И предоставляет доступ к функциям libdap-crypto, через объект типа Crypto. А так же предоставляет объекты типа | + | Эта библиотека является обёрткой над libdap-crypto. И предоставляет доступ к функциям libdap-crypto, через объект типа Crypto. А так же предоставляет объекты типа CryptoKeyType и CryptoDataType. |
==== Типы объектов ==== | ==== Типы объектов ==== | ||
===== CryptoKey ===== | ===== CryptoKey ===== | ||
Объект типа CryptoKey - хранит в себе ключ шифрование/дешифровки, по сути является обёрткой для структуры dap_enc_key библиотеки libdap-crypto. Соответственно данный объект необходим и используется для работы алгоритмов шифрования/дешифровки. | Объект типа CryptoKey - хранит в себе ключ шифрование/дешифровки, по сути является обёрткой для структуры dap_enc_key библиотеки libdap-crypto. Соответственно данный объект необходим и используется для работы алгоритмов шифрования/дешифровки. | ||
− | ===== | + | ===== CryptoKeyType ===== |
− | Объект типа | + | Объект типа CryptoKeyType - является аналогам обычного enum. И предоставляет функции для получения значений их перечисление dap_enc_key_type. |
Поэтому все функции, которые он предоставляет являются статическими, возвращают числовое значение и не принимают аргументов. | Поэтому все функции, которые он предоставляет являются статическими, возвращают числовое значение и не принимают аргументов. | ||
Line 112: | Line 112: | ||
|} | |} | ||
− | ===== | + | ===== CryptoDataType ===== |
− | Объект типа | + | Объект типа CryptoDataType - является аналогам обычного enum. И предоставляет функции для получения значений их перечисление dap_enc_data_type. |
Поэтому все функции, которые он предоставляет являются статическими, возвращают числовое значение и не принимают аргументов. | Поэтому все функции, которые он предоставляет являются статическими, возвращают числовое значение и не принимают аргументов. | ||
Line 160: | Line 160: | ||
**encryptOAESFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция кодирует входные данные и возвращает объект типа bytes, который содержит закодированные данные с помощью алгоритма OAES. | **encryptOAESFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция кодирует входные данные и возвращает объект типа bytes, который содержит закодированные данные с помощью алгоритма OAES. | ||
**decryptOAESFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция декодирует входные данные и возвращает объект типа bytes, который содержит декодированные данные с помощью алгоритма OAES. | **decryptOAESFast - Данная функция принимает четыре аргумента: объект типа CryptoKey - ключ шифрования, объект типа bytes - входные данные, числовое значение - кол-во элементов в исходном объекте bytes, числовое значение - кол-во элементов в выходном объекте bytes. Данная функция декодирует входные данные и возвращает объект типа bytes, который содержит декодированные данные с помощью алгоритма OAES. | ||
+ | === libdap-server-core-python === | ||
+ | libdap-server-core-python - это враппинг библиотеки libdap-server-core. Так же библиотека предоставляет некоторые объекты DapServer, Events и EventsSocket. | ||
+ | ==== Типы объектов ==== | ||
+ | ===== DapServer ===== | ||
+ | Объект типа DapServer хранит в себе переменную типа dap_server_t и обеспечивает её передачу к другим функциям, которые взаимодействуют с ней. | ||
+ | ===== Events ===== | ||
+ | Объект типа Events хранит в себе переменную типа dap_events_t, и предоставляет следующие функции | ||
+ | *start - Данная функция не принимает ни каких параметров. Задача функции инициализировать и подготовить Events. Данная функция является обёрткой над функцией dap_events_start | ||
+ | *wait - Данная функция не принимает ни каких параметров. Задача функции начать ожидание событие. Данная функция является обёрткой над функцией dap_events_wait | ||
+ | *killSocket - Данная функция принимает один параметр, объект типа EventsSocket. Задача данной функции является уничтожение сокета. Данная функция является обёрткой для функции dap_events_kill_socket. | ||
+ | *removeAndDeleteSocket - Данная функция принимает два параметра: объект типа EventsSocket, переменную логического типа которая если истина, то наследники будут сохранены. Данная функция является обёрткой для функции dap_events_socket_remove_and_delete. | ||
+ | ===== EventsSocket ===== | ||
+ | Объект типа EventsSocket хранит в себе переменную типа dap_events_socket_t , и предоставляет следующие функции | ||
+ | *createAfter - Данная функция не принимает ни каких параметров, является обёрткой для функции dap_events_socket_create_after | ||
+ | *find - Данная функция принимает два параметра: число - номер сокета и объект Events, функция присваивает текущему объекту, найденный. Данная функция является обёрткой для функции dap_events_socket_find | ||
+ | *setReadable | ||
+ | *setWritable | ||
+ | *write | ||
+ | *writeF | ||
+ | *read | ||
+ | *delete | ||
+ | *shringBufIn | ||
+ | ==== Функции ==== | ||
+ | libdap-server-core-python предоставляет объект ServerCore для доступа к основным функциям: | ||
+ | *loop - Данная функция принимает один параметр: объект типа DapServer. Данная функция запускает цикл прослушивание сервера. | ||
+ | *listen - Данная функция принимает три параметра: строку - адрес сервера, число - порт, число - тип сервера. Данная функция создаёт экземпляр DapServer и начните прослушивать TCP-порт с выбранным адресом. |
Revision as of 16:31, 17 September 2019
Contents
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. А так же предоставляет объекты типа CryptoKeyType и CryptoDataType.
Типы объектов
CryptoKey
Объект типа CryptoKey - хранит в себе ключ шифрование/дешифровки, по сути является обёрткой для структуры dap_enc_key библиотеки libdap-crypto. Соответственно данный объект необходим и используется для работы алгоритмов шифрования/дешифровки.
CryptoKeyType
Объект типа CryptoKeyType - является аналогам обычного 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 |
CryptoDataType
Объект типа CryptoDataType - является аналогам обычного 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.
libdap-server-core-python
libdap-server-core-python - это враппинг библиотеки libdap-server-core. Так же библиотека предоставляет некоторые объекты DapServer, Events и EventsSocket.
Типы объектов
DapServer
Объект типа DapServer хранит в себе переменную типа dap_server_t и обеспечивает её передачу к другим функциям, которые взаимодействуют с ней.
Events
Объект типа Events хранит в себе переменную типа dap_events_t, и предоставляет следующие функции
- start - Данная функция не принимает ни каких параметров. Задача функции инициализировать и подготовить Events. Данная функция является обёрткой над функцией dap_events_start
- wait - Данная функция не принимает ни каких параметров. Задача функции начать ожидание событие. Данная функция является обёрткой над функцией dap_events_wait
- killSocket - Данная функция принимает один параметр, объект типа EventsSocket. Задача данной функции является уничтожение сокета. Данная функция является обёрткой для функции dap_events_kill_socket.
- removeAndDeleteSocket - Данная функция принимает два параметра: объект типа EventsSocket, переменную логического типа которая если истина, то наследники будут сохранены. Данная функция является обёрткой для функции dap_events_socket_remove_and_delete.
EventsSocket
Объект типа EventsSocket хранит в себе переменную типа dap_events_socket_t , и предоставляет следующие функции
- createAfter - Данная функция не принимает ни каких параметров, является обёрткой для функции dap_events_socket_create_after
- find - Данная функция принимает два параметра: число - номер сокета и объект Events, функция присваивает текущему объекту, найденный. Данная функция является обёрткой для функции dap_events_socket_find
- setReadable
- setWritable
- write
- writeF
- read
- delete
- shringBufIn
Функции
libdap-server-core-python предоставляет объект ServerCore для доступа к основным функциям:
- loop - Данная функция принимает один параметр: объект типа DapServer. Данная функция запускает цикл прослушивание сервера.
- listen - Данная функция принимает три параметра: строку - адрес сервера, число - порт, число - тип сервера. Данная функция создаёт экземпляр DapServer и начните прослушивать TCP-порт с выбранным адресом.