CryptographyClient class
Клиент, используемый для выполнения криптографических операций с ключом хранилища ключей Azure или локальным JsonWebKey.
Конструкторы
| Cryptography |
Создает новый экземпляр клиента шифрования для заданного ключа в локальном режиме. Пример использования:
|
| Cryptography |
Создает новый экземпляр клиента шифрования для заданного ключа. Пример использования:
|
Свойства
| keyID | Идентификатор ключа, используемого для выполнения криптографических операций для клиента. |
| vault |
Базовый URL-адрес хранилища. Если локальный JsonWebKey используется vaultUrl, будет пуст. |
Методы
| decrypt(Decrypt |
Расшифровывает заданный шифр с указанными параметрами расшифровки. В зависимости от алгоритма, используемого в параметрах расшифровки, набор возможных параметров расшифровки изменится. Корпорация Майкрософт рекомендует не использовать CBC, не обеспечивая целостность шифра, например HMAC. Дополнительные сведения см. в https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode. Пример использования:
|
| decrypt(string, Uint8Array, Decrypt |
Расшифровывает заданный шифр с помощью указанного алгоритма шифрования Пример использования:
Корпорация Майкрософт рекомендует не использовать CBC, не обеспечивая целостность шифра, например HMAC. Дополнительные сведения см. в https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode. |
| encrypt(Encrypt |
Шифрует заданный открытый текст с указанными параметрами шифрования. В зависимости от набора алгоритмов в параметрах шифрования набор возможных параметров шифрования изменится. Пример использования:
|
| encrypt(string, Uint8Array, Encrypt |
Шифрование заданного открытого текста с помощью указанного алгоритма шифрования Пример использования:
|
| sign(string, Uint8Array, Sign |
Криптографически подписывание дайджеста сообщения Пример использования:
|
| sign |
Криптографически подписывает блок данных Пример использования:
|
| unwrap |
Распаковывает указанный ключ оболочки с помощью указанного алгоритма шифрования Пример использования:
|
| verify(string, Uint8Array, Uint8Array, Verify |
Проверка дайджеста подписанного сообщения Пример использования:
|
| verify |
Проверка подписанного блока данных Пример использования:
|
| wrap |
Оболочка заданного ключа с помощью указанного алгоритма шифрования Пример использования:
|
Сведения о конструкторе
CryptographyClient(JsonWebKey)
Создает новый экземпляр клиента шифрования для заданного ключа в локальном режиме.
Пример использования:
import { CryptographyClient } from "@azure/keyvault-keys";
const jsonWebKey = {
kty: "RSA",
kid: "test-key-123",
use: "sig",
alg: "RS256",
n: new Uint8Array([112, 34, 56, 98, 123, 244, 200, 99]),
e: new Uint8Array([1, 0, 1]),
d: new Uint8Array([45, 67, 89, 23, 144, 200, 76, 233]),
p: new Uint8Array([34, 89, 100, 77, 204, 56, 29, 77]),
q: new Uint8Array([78, 99, 201, 45, 188, 34, 67, 90]),
dp: new Uint8Array([23, 45, 78, 56, 200, 144, 32, 67]),
dq: new Uint8Array([12, 67, 89, 144, 99, 56, 23, 45]),
qi: new Uint8Array([78, 90, 45, 201, 34, 67, 120, 55]),
};
const client = new CryptographyClient(jsonWebKey);
new CryptographyClient(key: JsonWebKey)
Параметры
- key
- JsonWebKey
JsonWebKey для использования во время операций шифрования.
CryptographyClient(string | KeyVaultKey, TokenCredential, CryptographyClientOptions)
Создает новый экземпляр клиента шифрования для заданного ключа.
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
// Create or retrieve a key from the keyvault
const myKey = await client.createKey("MyKey", "RSA");
// Lastly, create our cryptography client and connect to the service
const cryptographyClient = new CryptographyClient(myKey, credential);
new CryptographyClient(key: string | KeyVaultKey, credential: TokenCredential, pipelineOptions?: CryptographyClientOptions)
Параметры
- key
-
string | KeyVaultKey
Ключ, используемый во время задач шифрования. Вы также можете передать идентификатор ключа, т. е. его URL-адрес здесь.
- credential
- TokenCredential
Объект, реализующий интерфейс TokenCredential, используемый для проверки подлинности запросов к службе. Используйте пакет @azure/identity для создания учетных данных, которые соответствуют вашим потребностям.
- pipelineOptions
- CryptographyClientOptions
Параметры конвейера, используемые для настройки запросов API Key Vault. Опустить этот параметр, чтобы использовать конфигурацию конвейера по умолчанию.
Сведения о свойстве
keyID
Идентификатор ключа, используемого для выполнения криптографических операций для клиента.
undefined | string keyID
Значение свойства
undefined | string
vaultUrl
Базовый URL-адрес хранилища. Если локальный JsonWebKey используется vaultUrl, будет пуст.
string vaultUrl
Значение свойства
string
Сведения о методе
decrypt(DecryptParameters, DecryptOptions)
Расшифровывает заданный шифр с указанными параметрами расшифровки. В зависимости от алгоритма, используемого в параметрах расшифровки, набор возможных параметров расшифровки изменится.
Корпорация Майкрософт рекомендует не использовать CBC, не обеспечивая целостность шифра, например HMAC. Дополнительные сведения см. в https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode.
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
const decryptResult = await cryptographyClient.decrypt({
algorithm: "RSA1_5",
ciphertext: encryptResult.result,
});
console.log("decrypt result: ", decryptResult.result.toString());
function decrypt(decryptParameters: DecryptParameters, options?: DecryptOptions): Promise<DecryptResult>
Параметры
- decryptParameters
- DecryptParameters
Параметры расшифровки.
- options
- DecryptOptions
Дополнительные параметры.
Возвращаемое значение
Promise<DecryptResult>
decrypt(string, Uint8Array, DecryptOptions)
Предупреждение
Теперь этот API является нерекомендуемым.
Use decrypt({ algorithm, ciphertext }, options) instead.
Расшифровывает заданный шифр с помощью указанного алгоритма шифрования
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
const decryptResult = await cryptographyClient.decrypt({
algorithm: "RSA1_5",
ciphertext: encryptResult.result,
});
console.log("decrypt result: ", decryptResult.result.toString());
Корпорация Майкрософт рекомендует не использовать CBC, не обеспечивая целостность шифра, например HMAC. Дополнительные сведения см. в https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode.
function decrypt(algorithm: string, ciphertext: Uint8Array, options?: DecryptOptions): Promise<DecryptResult>
Параметры
- algorithm
-
string
Используемый алгоритм.
- ciphertext
-
Uint8Array
Текст для расшифровки.
- options
- DecryptOptions
Дополнительные параметры.
Возвращаемое значение
Promise<DecryptResult>
encrypt(EncryptParameters, EncryptOptions)
Шифрует заданный открытый текст с указанными параметрами шифрования. В зависимости от набора алгоритмов в параметрах шифрования набор возможных параметров шифрования изменится.
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
function encrypt(encryptParameters: EncryptParameters, options?: EncryptOptions): Promise<EncryptResult>
Параметры
- encryptParameters
- EncryptParameters
Параметры шифрования, ключом к выбранному алгоритму шифрования.
- options
- EncryptOptions
Дополнительные параметры.
Возвращаемое значение
Promise<EncryptResult>
encrypt(string, Uint8Array, EncryptOptions)
Предупреждение
Теперь этот API является нерекомендуемым.
Use encrypt({ algorithm, plaintext }, options) instead.
Шифрование заданного открытого текста с помощью указанного алгоритма шифрования
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
function encrypt(algorithm: string, plaintext: Uint8Array, options?: EncryptOptions): Promise<EncryptResult>
Параметры
- algorithm
-
string
Используемый алгоритм.
- plaintext
-
Uint8Array
Текст для шифрования.
- options
- EncryptOptions
Дополнительные параметры.
Возвращаемое значение
Promise<EncryptResult>
sign(string, Uint8Array, SignOptions)
Криптографически подписывание дайджеста сообщения
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "node:crypto";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
let myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const signatureValue = "MySignature";
const hash = createHash("sha256");
const digest = hash.update(signatureValue).digest();
console.log("digest: ", digest);
const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);
function sign(algorithm: string, digest: Uint8Array, options?: SignOptions): Promise<SignResult>
Параметры
- algorithm
-
string
Используемый алгоритм подписи.
- digest
-
Uint8Array
Дайджест данных для подписывания.
- options
- SignOptions
Дополнительные параметры.
Возвращаемое значение
Promise<SignResult>
signData(string, Uint8Array, SignOptions)
Криптографически подписывает блок данных
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const signResult = await cryptographyClient.signData("RS256", Buffer.from("My Message"));
console.log("sign result: ", signResult.result);
function signData(algorithm: string, data: Uint8Array, options?: SignOptions): Promise<SignResult>
Параметры
- algorithm
-
string
Используемый алгоритм подписи.
- data
-
Uint8Array
Данные для подписывания.
- options
- SignOptions
Дополнительные параметры.
Возвращаемое значение
Promise<SignResult>
unwrapKey(KeyWrapAlgorithm, Uint8Array, UnwrapKeyOptions)
Распаковывает указанный ключ оболочки с помощью указанного алгоритма шифрования
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
console.log("wrap result:", wrapResult.result);
const unwrapResult = await cryptographyClient.unwrapKey("RSA-OAEP", wrapResult.result);
console.log("unwrap result: ", unwrapResult.result);
function unwrapKey(algorithm: KeyWrapAlgorithm, encryptedKey: Uint8Array, options?: UnwrapKeyOptions): Promise<UnwrapResult>
Параметры
- algorithm
- KeyWrapAlgorithm
Алгоритм расшифровки, используемый для расшифровки ключа.
- encryptedKey
-
Uint8Array
Зашифрованный ключ для распаковки.
- options
- UnwrapKeyOptions
Дополнительные параметры.
Возвращаемое значение
Promise<UnwrapResult>
verify(string, Uint8Array, Uint8Array, VerifyOptions)
Проверка дайджеста подписанного сообщения
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "node:crypto";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const hash = createHash("sha256");
hash.update("My Message");
const digest = hash.digest();
const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);
const verifyResult = await cryptographyClient.verify("RS256", digest, signResult.result);
console.log("verify result: ", verifyResult.result);
function verify(algorithm: string, digest: Uint8Array, signature: Uint8Array, options?: VerifyOptions): Promise<VerifyResult>
Параметры
- algorithm
-
string
Алгоритм подписывания, используемый для проверки.
- digest
-
Uint8Array
Дайджест для проверки.
- signature
-
Uint8Array
Подпись для проверки дайджеста.
- options
- VerifyOptions
Дополнительные параметры.
Возвращаемое значение
Promise<VerifyResult>
verifyData(string, Uint8Array, Uint8Array, VerifyOptions)
Проверка подписанного блока данных
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const buffer = Buffer.from("My Message");
const signResult = await cryptographyClient.signData("RS256", buffer);
console.log("sign result: ", signResult.result);
const verifyResult = await cryptographyClient.verifyData("RS256", buffer, signResult.result);
console.log("verify result: ", verifyResult.result);
function verifyData(algorithm: string, data: Uint8Array, signature: Uint8Array, options?: VerifyOptions): Promise<VerifyResult>
Параметры
- algorithm
-
string
Алгоритм, используемый для проверки.
- data
-
Uint8Array
Подписанный блок данных для проверки.
- signature
-
Uint8Array
Сигнатура для проверки блокировки.
- options
- VerifyOptions
Дополнительные параметры.
Возвращаемое значение
Promise<VerifyResult>
wrapKey(KeyWrapAlgorithm, Uint8Array, WrapKeyOptions)
Оболочка заданного ключа с помощью указанного алгоритма шифрования
Пример использования:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
console.log("wrap result:", wrapResult.result);
function wrapKey(algorithm: KeyWrapAlgorithm, key: Uint8Array, options?: WrapKeyOptions): Promise<WrapResult>
Параметры
- algorithm
- KeyWrapAlgorithm
Алгоритм шифрования, используемый для упаковки заданного ключа.
- key
-
Uint8Array
Ключ для упаковки.
- options
- WrapKeyOptions
Дополнительные параметры.
Возвращаемое значение
Promise<WrapResult>