CryptographyClient class
Un client usato per eseguire operazioni di crittografia su una chiave dell'insieme di credenziali delle chiavi di Azure o su un JsonWebKey locale.
Costruttori
| Cryptography |
Costruisce una nuova istanza del client di crittografia per la chiave specificata in modalità locale. Esempio di utilizzo:
|
| Cryptography |
Costruisce una nuova istanza del client di crittografia per la chiave specificata Esempio di utilizzo:
|
Proprietà
| keyID | ID della chiave usata per eseguire operazioni di crittografia per il client. |
| vault |
URL di base dell'insieme di credenziali. Se si usa un JsonWebKey locale viene usato vaultUrl sarà vuoto. |
Metodi
| decrypt(Decrypt |
Decrittografa il testo crittografato specificato con i parametri di decrittografia specificati. A seconda dell'algoritmo usato nei parametri di decrittografia, il set di possibili parametri di decrittografia cambierà. Microsoft consiglia di non usare CBC senza prima garantire l'integrità del testo crittografato usando, ad esempio, un HMAC. Per altre informazioni, vedere https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode. Esempio di utilizzo:
|
| decrypt(string, Uint8Array, Decrypt |
Decrittografa il testo crittografato specificato con l'algoritmo di crittografia specificato Esempio di utilizzo:
Microsoft consiglia di non usare CBC senza prima garantire l'integrità del testo crittografato usando, ad esempio, un HMAC. Per altre informazioni, vedere https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode. |
| encrypt(Encrypt |
Crittografa il testo non crittografato specificato con i parametri di crittografia specificati. A seconda dell'algoritmo impostato nei parametri di crittografia, il set di possibili parametri di crittografia cambierà. Esempio di utilizzo:
|
| encrypt(string, Uint8Array, Encrypt |
Crittografa il testo non crittografato specificato con l'algoritmo di crittografia specificato Esempio di utilizzo:
|
| sign(string, Uint8Array, Sign |
Firmare crittograficamente il digest di un messaggio Esempio di utilizzo:
|
| sign |
Firmare crittograficamente un blocco di dati Esempio di utilizzo:
|
| unwrap |
Annulla il wrapping della chiave di cui è stato eseguito il wrapping usando l'algoritmo di crittografia specificato Esempio di utilizzo:
|
| verify(string, Uint8Array, Uint8Array, Verify |
Verificare il digest del messaggio firmato Esempio di utilizzo:
|
| verify |
Verificare il blocco di dati firmato Esempio di utilizzo:
|
| wrap |
Esegue il wrapping della chiave specificata usando l'algoritmo di crittografia specificato Esempio di utilizzo:
|
Dettagli costruttore
CryptographyClient(JsonWebKey)
Costruisce una nuova istanza del client di crittografia per la chiave specificata in modalità locale.
Esempio di utilizzo:
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)
Parametri
- key
- JsonWebKey
JsonWebKey da usare durante le operazioni di crittografia.
CryptographyClient(string | KeyVaultKey, TokenCredential, CryptographyClientOptions)
Costruisce una nuova istanza del client di crittografia per la chiave specificata
Esempio di utilizzo:
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)
Parametri
- key
-
string | KeyVaultKey
Chiave da usare durante le attività di crittografia. È anche possibile passare l'identificatore della chiave, ad esempio il relativo URL qui.
- credential
- TokenCredential
Oggetto che implementa l'interfaccia TokenCredential utilizzata per autenticare le richieste al servizio. Usare il pacchetto @azure/identity per creare credenziali adatte alle proprie esigenze.
- pipelineOptions
- CryptographyClientOptions
Opzioni della pipeline usate per configurare le richieste API di Key Vault. Omettere questo parametro per usare la configurazione della pipeline predefinita.
Dettagli proprietà
keyID
ID della chiave usata per eseguire operazioni di crittografia per il client.
undefined | string keyID
Valore della proprietà
undefined | string
vaultUrl
URL di base dell'insieme di credenziali. Se si usa un JsonWebKey locale viene usato vaultUrl sarà vuoto.
string vaultUrl
Valore della proprietà
string
Dettagli metodo
decrypt(DecryptParameters, DecryptOptions)
Decrittografa il testo crittografato specificato con i parametri di decrittografia specificati. A seconda dell'algoritmo usato nei parametri di decrittografia, il set di possibili parametri di decrittografia cambierà.
Microsoft consiglia di non usare CBC senza prima garantire l'integrità del testo crittografato usando, ad esempio, un HMAC. Per altre informazioni, vedere https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode.
Esempio di utilizzo:
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>
Parametri
- decryptParameters
- DecryptParameters
Parametri di decrittografia.
- options
- DecryptOptions
Opzioni aggiuntive.
Restituisce
Promise<DecryptResult>
decrypt(string, Uint8Array, DecryptOptions)
Avviso
Questa API è ora deprecata.
Use decrypt({ algorithm, ciphertext }, options) instead.
Decrittografa il testo crittografato specificato con l'algoritmo di crittografia specificato
Esempio di utilizzo:
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 consiglia di non usare CBC senza prima garantire l'integrità del testo crittografato usando, ad esempio, un HMAC. Per altre informazioni, vedere https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode.
function decrypt(algorithm: string, ciphertext: Uint8Array, options?: DecryptOptions): Promise<DecryptResult>
Parametri
- algorithm
-
string
Algoritmo da utilizzare.
- ciphertext
-
Uint8Array
Testo da decrittografare.
- options
- DecryptOptions
Opzioni aggiuntive.
Restituisce
Promise<DecryptResult>
encrypt(EncryptParameters, EncryptOptions)
Crittografa il testo non crittografato specificato con i parametri di crittografia specificati. A seconda dell'algoritmo impostato nei parametri di crittografia, il set di possibili parametri di crittografia cambierà.
Esempio di utilizzo:
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>
Parametri
- encryptParameters
- EncryptParameters
Parametri di crittografia, con chiave nell'algoritmo di crittografia scelto.
- options
- EncryptOptions
Opzioni aggiuntive.
Restituisce
Promise<EncryptResult>
encrypt(string, Uint8Array, EncryptOptions)
Avviso
Questa API è ora deprecata.
Use encrypt({ algorithm, plaintext }, options) instead.
Crittografa il testo non crittografato specificato con l'algoritmo di crittografia specificato
Esempio di utilizzo:
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>
Parametri
- algorithm
-
string
Algoritmo da utilizzare.
- plaintext
-
Uint8Array
Testo da crittografare.
- options
- EncryptOptions
Opzioni aggiuntive.
Restituisce
Promise<EncryptResult>
sign(string, Uint8Array, SignOptions)
Firmare crittograficamente il digest di un messaggio
Esempio di utilizzo:
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>
Parametri
- algorithm
-
string
Algoritmo di firma da utilizzare.
- digest
-
Uint8Array
Digest dei dati da firmare.
- options
- SignOptions
Opzioni aggiuntive.
Restituisce
Promise<SignResult>
signData(string, Uint8Array, SignOptions)
Firmare crittograficamente un blocco di dati
Esempio di utilizzo:
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>
Parametri
- algorithm
-
string
Algoritmo di firma da utilizzare.
- data
-
Uint8Array
Dati da firmare.
- options
- SignOptions
Opzioni aggiuntive.
Restituisce
Promise<SignResult>
unwrapKey(KeyWrapAlgorithm, Uint8Array, UnwrapKeyOptions)
Annulla il wrapping della chiave di cui è stato eseguito il wrapping usando l'algoritmo di crittografia specificato
Esempio di utilizzo:
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>
Parametri
- algorithm
- KeyWrapAlgorithm
Algoritmo di decrittografia da utilizzare per annullare il wrapping della chiave.
- encryptedKey
-
Uint8Array
Chiave crittografata da annullare il wrapping.
- options
- UnwrapKeyOptions
Opzioni aggiuntive.
Restituisce
Promise<UnwrapResult>
verify(string, Uint8Array, Uint8Array, VerifyOptions)
Verificare il digest del messaggio firmato
Esempio di utilizzo:
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>
Parametri
- algorithm
-
string
Algoritmo di firma da usare per la verifica.
- digest
-
Uint8Array
Digest da verificare.
- signature
-
Uint8Array
Firma in base alla quale verificare il digest.
- options
- VerifyOptions
Opzioni aggiuntive.
Restituisce
Promise<VerifyResult>
verifyData(string, Uint8Array, Uint8Array, VerifyOptions)
Verificare il blocco di dati firmato
Esempio di utilizzo:
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>
Parametri
- algorithm
-
string
Algoritmo con cui eseguire la verifica.
- data
-
Uint8Array
Blocco di dati firmato da verificare.
- signature
-
Uint8Array
Firma in base alla quale verificare il blocco.
- options
- VerifyOptions
Opzioni aggiuntive.
Restituisce
Promise<VerifyResult>
wrapKey(KeyWrapAlgorithm, Uint8Array, WrapKeyOptions)
Esegue il wrapping della chiave specificata usando l'algoritmo di crittografia specificato
Esempio di utilizzo:
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>
Parametri
- algorithm
- KeyWrapAlgorithm
Algoritmo di crittografia da usare per eseguire il wrapping della chiave specificata.
- key
-
Uint8Array
Tasto da incapsulare.
- options
- WrapKeyOptions
Opzioni aggiuntive.
Restituisce
Promise<WrapResult>