CryptographyClient class
Ein Client, der zum Ausführen kryptografischer Vorgänge auf einem Azure Key Vault-Schlüssel oder einem lokalen JsonWebKey-verwendet wird.
Konstruktoren
| Cryptography |
Erstellt eine neue Instanz des Kryptografieclients für den angegebenen Schlüssel im lokalen Modus. Beispielverwendung:
|
| Cryptography |
Erstellt eine neue Instanz des Kryptografieclients für den angegebenen Schlüssel. Beispielverwendung:
|
Eigenschaften
| keyID | Die ID des Schlüssels, der zum Ausführen kryptografischer Vorgänge für den Client verwendet wird. |
| vault |
Die Basis-URL zum Tresor. Wenn ein lokaler JsonWebKey- verwendet wird, ist vaultUrl leer. |
Methoden
| decrypt(Decrypt |
Entschlüsselt den angegebenen Chiffretext mit den angegebenen Entschlüsselungsparametern. Je nach dem Algorithmus, der in den Entschlüsselungsparametern verwendet wird, ändert sich der Satz möglicher Entschlüsselungsparameter. Microsoft empfiehlt, CBC nicht zu verwenden, ohne zuerst die Integrität des Chiffretexts zu gewährleisten, z. B. einen HMAC. Weitere Informationen finden Sie unter https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode. Beispielverwendung:
|
| decrypt(string, Uint8Array, Decrypt |
Entschlüsselt den angegebenen Verschlüsselungstext mit dem angegebenen Kryptografiealgorithmus. Beispielverwendung:
Microsoft empfiehlt, CBC nicht zu verwenden, ohne zuerst die Integrität des Chiffretexts zu gewährleisten, z. B. einen HMAC. Weitere Informationen finden Sie unter https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode. |
| encrypt(Encrypt |
Verschlüsselt den angegebenen Klartext mit den angegebenen Verschlüsselungsparametern. Je nach dem Algorithmus, der in den Verschlüsselungsparametern festgelegt ist, ändert sich der Satz möglicher Verschlüsselungsparameter. Beispielverwendung:
|
| encrypt(string, Uint8Array, Encrypt |
Verschlüsselt den angegebenen Klartext mit dem angegebenen Kryptografiealgorithmus Beispielverwendung:
|
| sign(string, Uint8Array, Sign |
Kryptografisch signieren sie den Digest einer Nachricht Beispielverwendung:
|
| sign |
Kryptografisch signieren sie einen Datenblock Beispielverwendung:
|
| unwrap |
Entpackt den angegebenen umschlossenen Schlüssel mithilfe des angegebenen Kryptografiealgorithmus Beispielverwendung:
|
| verify(string, Uint8Array, Uint8Array, Verify |
Überprüfen des Digests für signierte Nachrichten Beispielverwendung:
|
| verify |
Überprüfen des signierten Datenblocks Beispielverwendung:
|
| wrap |
Umschließt den angegebenen Schlüssel mithilfe des angegebenen Kryptografiealgorithmus Beispielverwendung:
|
Details zum Konstruktor
CryptographyClient(JsonWebKey)
Erstellt eine neue Instanz des Kryptografieclients für den angegebenen Schlüssel im lokalen Modus.
Beispielverwendung:
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)
Parameter
- key
- JsonWebKey
Der JsonWebKey, der während Kryptografievorgängen verwendet werden soll.
CryptographyClient(string | KeyVaultKey, TokenCredential, CryptographyClientOptions)
Erstellt eine neue Instanz des Kryptografieclients für den angegebenen Schlüssel.
Beispielverwendung:
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)
Parameter
- key
-
string | KeyVaultKey
Der Schlüssel, der während Kryptografieaufgaben verwendet werden soll. Sie können auch den Bezeichner des Schlüssels übergeben, d. h. dessen URL hier.
- credential
- TokenCredential
Ein Objekt, das die TokenCredential Schnittstelle implementiert, die zum Authentifizieren von Anforderungen an den Dienst verwendet wird. Verwenden Sie das @azure/identity-Paket, um eine Anmeldeinformation zu erstellen, die Ihren Anforderungen entspricht.
- pipelineOptions
- CryptographyClientOptions
Pipelineoptionen zum Konfigurieren von Key Vault-API-Anforderungen. Lassen Sie diesen Parameter aus, um die Standardpipelinekonfiguration zu verwenden.
Details zur Eigenschaft
keyID
Die ID des Schlüssels, der zum Ausführen kryptografischer Vorgänge für den Client verwendet wird.
undefined | string keyID
Eigenschaftswert
undefined | string
vaultUrl
Die Basis-URL zum Tresor. Wenn ein lokaler JsonWebKey- verwendet wird, ist vaultUrl leer.
string vaultUrl
Eigenschaftswert
string
Details zur Methode
decrypt(DecryptParameters, DecryptOptions)
Entschlüsselt den angegebenen Chiffretext mit den angegebenen Entschlüsselungsparametern. Je nach dem Algorithmus, der in den Entschlüsselungsparametern verwendet wird, ändert sich der Satz möglicher Entschlüsselungsparameter.
Microsoft empfiehlt, CBC nicht zu verwenden, ohne zuerst die Integrität des Chiffretexts zu gewährleisten, z. B. einen HMAC. Weitere Informationen finden Sie unter https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode.
Beispielverwendung:
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>
Parameter
- decryptParameters
- DecryptParameters
Die Entschlüsselungsparameter.
- options
- DecryptOptions
Weitere Optionen.
Gibt zurück
Promise<DecryptResult>
decrypt(string, Uint8Array, DecryptOptions)
Warnung
Diese API ist nun veraltet.
Use decrypt({ algorithm, ciphertext }, options) instead.
Entschlüsselt den angegebenen Verschlüsselungstext mit dem angegebenen Kryptografiealgorithmus.
Beispielverwendung:
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());
Microsoft empfiehlt, CBC nicht zu verwenden, ohne zuerst die Integrität des Chiffretexts zu gewährleisten, z. B. einen HMAC. Weitere Informationen finden Sie unter https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode.
function decrypt(algorithm: string, ciphertext: Uint8Array, options?: DecryptOptions): Promise<DecryptResult>
Parameter
- algorithm
-
string
Der zu verwendende Algorithmus.
- ciphertext
-
Uint8Array
Der zu entschlüsselnde Text.
- options
- DecryptOptions
Weitere Optionen.
Gibt zurück
Promise<DecryptResult>
encrypt(EncryptParameters, EncryptOptions)
Verschlüsselt den angegebenen Klartext mit den angegebenen Verschlüsselungsparametern. Je nach dem Algorithmus, der in den Verschlüsselungsparametern festgelegt ist, ändert sich der Satz möglicher Verschlüsselungsparameter.
Beispielverwendung:
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>
Parameter
- encryptParameters
- EncryptParameters
Die Verschlüsselungsparameter, die für den ausgewählten Verschlüsselungsalgorithmus schlüsseliert werden.
- options
- EncryptOptions
Weitere Optionen.
Gibt zurück
Promise<EncryptResult>
encrypt(string, Uint8Array, EncryptOptions)
Warnung
Diese API ist nun veraltet.
Use encrypt({ algorithm, plaintext }, options) instead.
Verschlüsselt den angegebenen Klartext mit dem angegebenen Kryptografiealgorithmus
Beispielverwendung:
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>
Parameter
- algorithm
-
string
Der zu verwendende Algorithmus.
- plaintext
-
Uint8Array
Der zu verschlüsselnde Text.
- options
- EncryptOptions
Weitere Optionen.
Gibt zurück
Promise<EncryptResult>
sign(string, Uint8Array, SignOptions)
Kryptografisch signieren sie den Digest einer Nachricht
Beispielverwendung:
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>
Parameter
- algorithm
-
string
Der zu verwendende Signaturalgorithmus.
- digest
-
Uint8Array
Der Digest der zu signierenden Daten.
- options
- SignOptions
Weitere Optionen.
Gibt zurück
Promise<SignResult>
signData(string, Uint8Array, SignOptions)
Kryptografisch signieren sie einen Datenblock
Beispielverwendung:
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>
Parameter
- algorithm
-
string
Der zu verwendende Signaturalgorithmus.
- data
-
Uint8Array
Die zu signierenden Daten.
- options
- SignOptions
Weitere Optionen.
Gibt zurück
Promise<SignResult>
unwrapKey(KeyWrapAlgorithm, Uint8Array, UnwrapKeyOptions)
Entpackt den angegebenen umschlossenen Schlüssel mithilfe des angegebenen Kryptografiealgorithmus
Beispielverwendung:
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>
Parameter
- algorithm
- KeyWrapAlgorithm
Der Entschlüsselungsalgorithmus, der zum Entschlüsseln des Schlüssels verwendet werden soll.
- encryptedKey
-
Uint8Array
Der verschlüsselte Schlüssel zum Entpacken.
- options
- UnwrapKeyOptions
Weitere Optionen.
Gibt zurück
Promise<UnwrapResult>
verify(string, Uint8Array, Uint8Array, VerifyOptions)
Überprüfen des Digests für signierte Nachrichten
Beispielverwendung:
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>
Parameter
- algorithm
-
string
Der Signaturalgorithmus, mit dem überprüft werden soll.
- digest
-
Uint8Array
Der zu überprüfende Digest.
- signature
-
Uint8Array
Die Signatur, mit der der Digest überprüft werden soll.
- options
- VerifyOptions
Weitere Optionen.
Gibt zurück
Promise<VerifyResult>
verifyData(string, Uint8Array, Uint8Array, VerifyOptions)
Überprüfen des signierten Datenblocks
Beispielverwendung:
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>
Parameter
- algorithm
-
string
Der Algorithmus, mit dem überprüft werden soll.
- data
-
Uint8Array
Der signierte Datenblock, der überprüft werden soll.
- signature
-
Uint8Array
Die Signatur, mit der der Block überprüft werden soll.
- options
- VerifyOptions
Weitere Optionen.
Gibt zurück
Promise<VerifyResult>
wrapKey(KeyWrapAlgorithm, Uint8Array, WrapKeyOptions)
Umschließt den angegebenen Schlüssel mithilfe des angegebenen Kryptografiealgorithmus
Beispielverwendung:
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>
Parameter
- algorithm
- KeyWrapAlgorithm
Der Verschlüsselungsalgorithmus, der zum Umschließen des angegebenen Schlüssels verwendet werden soll.
- key
-
Uint8Array
Der umgebrochene Schlüssel.
- options
- WrapKeyOptions
Weitere Optionen.
Gibt zurück
Promise<WrapResult>