update crypto docs

This commit is contained in:
dagger 2026-08-22 17:47:59 +07:00
parent c65b9ae385
commit 5391be4b8a
2 changed files with 33 additions and 42 deletions

View file

@ -1,14 +1,6 @@
# Библиотека *crypto*
Библиотека предоставляет основные криптографические функции для модов
TLS и HTTP в нее не входят. Эти протоколы используют crypto для тяжелых
вычислений
Все бинарные значения передаются обычными Lua строками. Это касается ключей,
подписей, хешей и зашифрованных данных. Строки могут содержать нулевые байты
Текущая версия API находится в `crypto.API_VERSION`
Библиотека предоставляет основные криптографические функции
## Хеширование
@ -83,9 +75,6 @@ crypto.rsa_pss_verify(hash: str, modulus: str, exponent: str,
Модуль и экспонента RSA передаются в big endian. Значение `salt_length = -1`
использует размер хеша
Генерации RSA ключей в библиотеке нет. Для новых ключей проще использовать
Ed25519
## Обмен ключами
```lua
@ -124,8 +113,7 @@ AES GCM принимает ключи размером 16 или 32 байта
ChaCha20 Poly1305 использует ключ размером 32 байта и nonce размером 12 байт
В конец зашифрованных данных добавляется тег размером 16 байт. При неверном
теге функция расшифровки ничего не возвращает
В конец зашифрованных данных добавляется тег размером 16 байт
Нельзя повторно использовать один nonce с тем же ключом
@ -149,8 +137,7 @@ crypto.features() -> table
Для хранения паролей следует использовать scrypt или PBKDF2 со случайной
солью. Обычный SHA256 для паролей не подходит
`features` возвращает версию OpenSSL и список доступных возможностей. Это
можно использовать если мод запускается на разных сборках движка
`features` возвращает версию OpenSSL и список доступных возможностей
Неверная подпись возвращает `false, "invalid_signature"`