Spec-Zone.ru › Elisp

Криптографические функции 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API