FirebirdSQL logo

RSA_PUBLIC()

Доступно в

DSQL, PSQL

Синтаксис
RSA_PUBLIC (private-key)
Table 1. Параметры функции RSA_PUBLIC
Параметр Описание

private-key

RSA закрытый ключ.

Тип возвращаемого результата:

VARBINARY

Функция RSA_PUBLIC возвращает RSA открытый ключ для заданного RSA закрытого ключа.Оба ключа должны быть в PKCS#1 формате.

Example 1. Использование функции RSA_PUBLIC

Закрытый ключ должен быть инициализирован ранее см.пример в RSA_PRIVATE

select rdb$set_context('USER_SESSION', 'public_key',
    rsa_public(rdb$get_context('USER_SESSION', 'private_key')))
from rdb$database;

RSA_ENCRYPT()

Доступно в

DSQL, PSQL

Синтаксис
RSA_ENCRYPT (<data> KEY <public_key> [LPARAM <tag>] [HASH <hash>])

<hash> ::= { MD5 | SHA1 | SHA256 | SHA512 }
Table 1. Параметры функции RSA_ENCRYPT
Параметр Описание

data

Данные (строка или BLOB) для шифрования.

public_key

Открытый RSA ключ, который возвращает функция RSA_PUBLIC.

tag

Дополнительный системный тег, который можно применять для определения того, какая система закодировала сообщение.Значением по умолчанию является NULL.

hash

Алгоритм хеширования.По умолчанию SHA256.

Тип возвращаемого результата:

VARBINARY

Заполняет данные, используя заполнение OAEP, и шифрует их, используя открытый ключ RSA.Обычно используется для шифрования коротких симметричных ключей, которые затем используются в блочных шифрах для шифрования сообщения.

Example 1. Использование функции RSA_ENCRYPT

Открытый ключ должен быть инициализирован ранее см.пример в [fblangref-scalarfuncs-rsa_public]

select rdb$set_context('USER_SESSION', 'msg',
    rsa_encrypt('Some message' key rdb$get_context('USER_SESSION', 'public_key')))
from rdb$database;

RSA_DECRYPT()

Доступно в

DSQL, PSQL

Синтаксис
RSA_DECRYPT (<data> KEY <private_key> [LPARAM <tag>] [HASH <hash>])

<hash> ::= { MD5 | SHA1 | SHA256 | SHA512 }
Table 1. Параметры функции RSA_DECRYPT
Параметр Описание

data

Данные (строка или BLOB) для дешифрования.

private_key

Закрытый RSA ключ, который возвращает функция RSA_PRIVATE.

tag

Дополнительный системный тег.Должно быть тем же самым значением, которое передавалось RSA_ENCRYPT.Если оно не совпадает с тем, который использовался во время кодирования, эта функция не расшифровывает пакет.Значением по умолчанию является NULL.

hash

Алгоритм хеширования.По умолчанию SHA256.

Тип возвращаемого результата:

VARCHAR

Расшифровывает с использованием закрытого ключа RSA, и удаляет OAEP дополненные данные.

Example 1. Использование функции RSA_DECRYPT

Закрытый ключ должен быть инициализирован ранее см. пример в [fblangref-scalarfuncs-rsa_private].Данные для расшифровки используются из примера в [fblangref-scalarfuncs-rsa_encrypt].

select RSA_DECRYPT(rdb$get_context('USER_SESSION', 'msg')
    key rdb$get_context('USER_SESSION', 'private_key'))
from RDB$DATABASE;

RSA_SIGN_HASH()

Доступно в

DSQL, PSQL

Синтаксис
RSA_SIGN_HASH (<data> KEY <private_key> [HASH <hash>] [SALT_LENGTH <length>])

<hash> ::= { MD5 | SHA1 | SHA256 | SHA512 }
Table 1. Параметры функции RSA_SIGN_HASH
Параметр Описание

data

Данные (строка или BLOB) для кодирования.

private_key

Закрытый RSA ключ, который возвращает функция RSA_PRIVATE.

hash

Алгоритм хеширования.По умолчанию SHA256.

length

Указывает на длину желаемой соли и, как правило, должен быть небольшим.Хорошее значение от 8 до 16.

Тип возвращаемого результата:

VARBINARY

Выполняет PSS-кодирование дайджеста сообщения для подписи и подписывает его с использованием закрытого ключа RSA.Возвращает подпись сообщения.

Example 1. Использование функции RSA_SIGN_HASH

Закрытый ключ должен быть инициализирован ранее см.пример в [fblangref-scalarfuncs-rsa_private].

select rdb$set_context('USER_SESSION', 'msg',
    rsa_sign_hash(crypt_hash('Test message' using sha256)
                  key rdb$get_context('USER_SESSION', 'private_key')))
from rdb$database;