Криптографические функции GnuTLS
- Функция: gnutls-digests
-
Эта функция возвращает список алгоритмов хеширования GnuTLS.
Каждый элемент имеет ключ, представляющий алгоритм, за которым следует список (plist) с внутренней информацией об алгоритме. Список (plist) будет содержать
:type gnutls-digest-algorithmи также будет содержать ключ:digest-algorithm-length 64для указания размера результирующего хеша в байтах.Существует параллелизм имен между алгоритмами MAC и хеширования GnuTLS, но они являются разными внутренними сущностями и не должны смешиваться.
- Функция: gnutls-hash-digest digest-method input
-
Параметр digest-method может представлять собой весь список (plist) из
gnutls-digests, или просто ключ символа, или строку с именем этого символа.Параметр input может быть задан как буфер или строка или другими способами (см. Формат входных данных для криптографии GnuTLS).
В случае ошибки функция возвращает
nil, а в случае невалидных digest-method или input - генерирует ошибку Lisp. В случае успеха возвращает список, содержащий двоичную строку (результат) и используемый IV.
- Функция: gnutls-macs
-
Эта функция возвращает список алгоритмов MAC GnuTLS.
Каждый элемент имеет ключ, представляющий алгоритм, за которым следует список (plist) с внутренней информацией об алгоритме. Список (plist) будет содержать
:type gnutls-mac-algorithmи также будет содержать ключи:mac-algorithm-length:mac-algorithm-keysize:mac-algorithm-noncesizeдля указания размера полученного хеша, ключа и nonce соответственно (в байтах).Nonce в настоящее время не используется, и только некоторые MAC его поддерживают.
Существует параллелизм имен между алгоритмами MAC и хеширования GnuTLS, но они являются разными внутренними сущностями и не должны смешиваться.
- Функция: gnutls-hash-mac hash-method key input
-
Параметр hash-method может представлять собой весь список (plist) из
gnutls-macs, или просто ключ символа, или строку с именем этого символа.Параметр key может быть задан как буфер или строка или другими способами (см. Формат входных данных для криптографии GnuTLS). Ключ key будет очищен после использования, если он является строкой.
Параметр input может быть задан как буфер или строка или другими способами (см. Формат входных данных для криптографии GnuTLS).
В случае ошибки функция возвращает
nil, а в случае невалидных hash-method, key или input - генерирует ошибку Lisp.В случае успеха возвращает список, содержащий двоичную строку (результат) и используемый IV.
- Функция: gnutls-ciphers
-
Эта функция возвращает список шифров GnuTLS.
Каждый элемент имеет ключ, представляющий шифр, за которым следует список (plist) с внутренней информацией об алгоритме. Список (plist) будет содержать
:type gnutls-symmetric-cipherи также будет содержать ключи:cipher-aead-capableустановленные вnilилиtдля указания поддержки AEAD; и:cipher-tagsize:cipher-blocksize:cipher-keysize:cipher-ivsizeдля указания размера тега, размера блока результирующих данных, размера ключа и IV (в байтах) соответственно.
- Функция: gnutls-symmetric-encrypt cipher key iv input &optional aead_auth
-
Параметр cipher может представлять собой весь список (plist) из
gnutls-ciphers, или просто ключ символа, или строку с именем этого символа.Параметр key может быть задан как буфер или строка или другими способами (см. Формат входных данных для криптографии GnuTLS). Ключ key будет очищен после использования, если он является строкой.
Параметры iv, input и необязательный aead_auth могут быть заданы как буфер или строка или другими способами (см. Формат входных данных для криптографии GnuTLS).
aead_auth проверяется только с AEAD-шифрами, то есть шифрами, чья plist содержит
:cipher-aead-capable t. В противном случае он игнорируется.В случае ошибки функция возвращает
nil, а в случае невалидных cipher, key, iv или input, или если aead_auth был указан с AEAD-шифром и был невалидным, - генерирует ошибку Lisp.В случае успеха возвращает список, содержащий двоичную строку (результат) и используемый IV.
- Функция: gnutls-symmetric-decrypt cipher key iv input &optional aead_auth
-
Параметр cipher может представлять собой весь список (plist) из
gnutls-ciphers, или просто ключ символа, или строку с именем этого символа.Параметр key может быть задан как буфер или строка или другими способами (см. Формат входных данных для криптографии GnuTLS). Ключ key будет очищен после использования, если он является строкой.
Параметры iv, input и необязательный aead_auth могут быть заданы как буфер или строка или другими способами (см. Формат входных данных для криптографии GnuTLS).
aead_auth проверяется только с AEAD-шифрами, то есть шифрами, чья plist содержит
:cipher-aead-capable t. В противном случае он игнорируется.В случае ошибки дешифрования функция возвращает
nil, а в случае невалидных cipher, key, iv или input, или если aead_auth был указан с AEAD-шифром и был невалидным, - генерирует ошибку Lisp.В случае успеха возвращает список, содержащий двоичную строку (результат) и используемый IV.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/GnuTLS-Cryptographic-Functions.html