PIP 5.6.1
Platform-Independent Primitives
Открытые члены | Открытые статические члены | Полный список членов класса
Класс PICrypt

Класс для шифрования и дешифрования данных. Подробнее...

#include <picrypt.h>

Открытые члены

 PICrypt ()
 Конструктор, генерирующий случайный ключ.
 
 ~PICrypt ()
 Деструктор.
 
bool setKey (const PIByteArray &key)
 Установить ключ "key", размер ключа должен быть равен sizeKey().
 
bool setKey (const PIString &secret)
 Генерировать и установить ключ из ключевой фразы "secret".
 
PIByteArray key ()
 Возвращает текущий ключ.
 
PIByteArray crypt (const PIByteArray &data)
 Зашифровать данные "data", размер результата увеличится на sizeCrypt().
 
PIByteArray decrypt (const PIByteArray &crypt_data, bool *ok=0)
 Расшифровать данные "crypt_data".
 
PIByteArray signMessage (const PIByteArray &data, const PIByteArray &secret_key)
 Вычислить цифровую подпись для данных.
 
bool verifySign (const PIByteArray &data, const PIByteArray &signature, const PIByteArray &public_key)
 Проверить цифровую подпись подписанного сообщения.
 
PIByteArray crypt (const PIByteArray &data, const PIByteArray &public_key, const PIByteArray &secret_key)
 Зашифровать данные "data".
 
PIByteArray decrypt (const PIByteArray &crypt_data, const PIByteArray &public_key, const PIByteArray &secret_key, bool *ok=0)
 Расшифровать данные "crypt_data".
 

Открытые статические члены

static PIByteArray crypt (const PIByteArray &data, PIByteArray key)
 Зашифровать данные "data" ключом "key", размер результата увеличится на sizeCrypt().
 
static PIByteArray decrypt (const PIByteArray &crypt_data, PIByteArray key, bool *ok=0)
 Расшифровать данные "crypt_data" ключом "key".
 
static PIByteArray hash (PIString secret)
 Генерировать хэш из ключевой фразы "secret", может использоваться в качестве ключа для шифрования.
 
static PIByteArray hash (const PIByteArray &data)
 Генерировать хэш из массива байт.
 
static PIByteArray hash (const PIByteArray &data, const unsigned char *key, size_t keylen)
 Генерировать хэш из массива байт с использованием предоставленного ключа.
 
static size_t sizeHash ()
 Возвращает размер хэша.
 
static ullong shorthash (const PIString &s, PIByteArray key=PIByteArray())
 Генерировать короткий хэш из строки "s", может использоваться для хэш-таблиц.
 
static PIByteArray generateKey ()
 Генерировать случайный ключ.
 
static PIByteArray generateRandomBuff (int size)
 Генерировать случайный буфер.
 
static size_t sizeKey ()
 Возвращает размер ключа.
 
static size_t sizeCrypt ()
 Возвращает размер, который будет добавлен к размеру данных в процессе шифрования.
 
static bool generateSignKeys (PIByteArray &public_key, PIByteArray &secret_key)
 Функция случайным образом генерирует секретный ключ и соответствующий ему открытый ключ для цифровой подписи.
 
static bool generateSignKeys (PIByteArray &public_key, PIByteArray &secret_key, const PIByteArray &seed)
 Функция генерирует секретный ключ из входных данных и соответствующий ему открытый ключ для цифровой подписи.
 
static PIByteArray extractSignPublicKey (const PIByteArray &secret_key)
 Функция извлекает открытый ключ для подписи из секретного ключа для подписи.
 
static bool generateKeypair (PIByteArray &public_key, PIByteArray &secret_key)
 Функция случайным образом генерирует секретный ключ и соответствующий ему открытый ключ для аутентифицированного шифрования.
 
static bool generateKeypair (PIByteArray &public_key, PIByteArray &secret_key, const PIByteArray &seed)
 Функция генерирует секретный ключ из входных данных и соответствующий ему открытый ключ для аутентифицированного шифрования.
 
static PIByteArray passwordHash (PIString password, const PIByteArray &seed)
 Генерировать хэш пароля из "password".
 
static PIString version ()
 Возвращает версию libsodium.
 

Подробное описание

Класс для шифрования и дешифрования данных.

Класс, предоставляющий криптографические операции с использованием библиотеки libsodium, включая шифрование, дешифрование, хэширование и цифровые подписи. Поддерживаются операции как на основе экземпляра класса, так и на основе статических методов.

Заметки
Требуется инициализация библиотеки libsodium. Все методы потокобезопасны при использовании различных ключей.