CryptographyClient class
Klien yang digunakan untuk melakukan operasi kriptografi pada kunci Azure Key vault atau lokal JsonWebKey.
Konstruktor
| Cryptography |
Membuat instans baru klien Kriptografi untuk kunci yang diberikan dalam mode lokal. Contoh penggunaan:
|
| Cryptography |
Membuat instans baru klien Kriptografi untuk kunci yang diberikan Contoh penggunaan:
|
Properti
| keyID | ID kunci yang digunakan untuk melakukan operasi kriptografi untuk klien. |
| vault |
URL dasar ke vault. Jika JsonWebKey lokal digunakan vaultUrl akan kosong. |
Metode
| decrypt(Decrypt |
Mendekripsi ciphertext yang diberikan dengan parameter dekripsi yang ditentukan. Tergantung pada algoritma yang digunakan dalam parameter dekripsi, kumpulan parameter dekripsi yang mungkin akan berubah. Microsoft menyarankan Anda tidak menggunakan CBC tanpa terlebih dahulu memastikan integritas ciphertext menggunakan, misalnya, HMAC. Lihat https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode untuk informasi selengkapnya. Contoh penggunaan:
|
| decrypt(string, Uint8Array, Decrypt |
Mendekripsi ciphertext yang diberikan dengan algoritma kriptografi yang ditentukan Contoh penggunaan:
Microsoft menyarankan Anda tidak menggunakan CBC tanpa terlebih dahulu memastikan integritas ciphertext menggunakan, misalnya, HMAC. Lihat https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode untuk informasi selengkapnya. |
| encrypt(Encrypt |
Mengenkripsi teks biasa yang diberikan dengan parameter enkripsi yang ditentukan. Bergantung pada algoritma yang diatur dalam parameter enkripsi, kumpulan parameter enkripsi yang mungkin akan berubah. Contoh penggunaan:
|
| encrypt(string, Uint8Array, Encrypt |
Mengenkripsi teks biasa yang diberikan dengan algoritma kriptografi yang ditentukan Contoh penggunaan:
|
| sign(string, Uint8Array, Sign |
Menandatangani hash pesan secara kriptografi Contoh penggunaan:
|
| sign |
Menandatangani blok data secara kriptografis Contoh penggunaan:
|
| unwrap |
Membuka bungkus kunci yang dibungkus yang diberikan menggunakan algoritma kriptografi yang ditentukan Contoh penggunaan:
|
| verify(string, Uint8Array, Uint8Array, Verify |
Memverifikasi hash pesan yang ditandatangani Contoh penggunaan:
|
| verify |
Memverifikasi blok data yang ditandatangani Contoh penggunaan:
|
| wrap |
Membungkus kunci yang diberikan menggunakan algoritma kriptografi yang ditentukan Contoh penggunaan:
|
Detail Konstruktor
CryptographyClient(JsonWebKey)
Membuat instans baru klien Kriptografi untuk kunci yang diberikan dalam mode lokal.
Contoh penggunaan:
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
JsonWebKey untuk digunakan selama operasi kriptografi.
CryptographyClient(string | KeyVaultKey, TokenCredential, CryptographyClientOptions)
Membuat instans baru klien Kriptografi untuk kunci yang diberikan
Contoh penggunaan:
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
Kunci yang digunakan selama tugas kriptografi. Anda juga dapat meneruskan pengidentifikasi kunci yaitu url-nya di sini.
- credential
- TokenCredential
Objek yang mengimplementasikan antarmuka TokenCredential yang digunakan untuk mengautentikasi permintaan ke layanan. Gunakan paket @azure/identity untuk membuat kredensial yang sesuai dengan kebutuhan Anda.
- pipelineOptions
- CryptographyClientOptions
Opsi alur yang digunakan untuk mengonfigurasi permintaan API Key Vault. Hilangkan parameter ini untuk menggunakan konfigurasi alur default.
Detail Properti
keyID
ID kunci yang digunakan untuk melakukan operasi kriptografi untuk klien.
undefined | string keyID
Nilai Properti
undefined | string
vaultUrl
URL dasar ke vault. Jika JsonWebKey lokal digunakan vaultUrl akan kosong.
string vaultUrl
Nilai Properti
string
Detail Metode
decrypt(DecryptParameters, DecryptOptions)
Mendekripsi ciphertext yang diberikan dengan parameter dekripsi yang ditentukan. Tergantung pada algoritma yang digunakan dalam parameter dekripsi, kumpulan parameter dekripsi yang mungkin akan berubah.
Microsoft menyarankan Anda tidak menggunakan CBC tanpa terlebih dahulu memastikan integritas ciphertext menggunakan, misalnya, HMAC. Lihat https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode untuk informasi selengkapnya.
Contoh penggunaan:
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
Parameter dekripsi.
- options
- DecryptOptions
Opsi tambahan.
Mengembalikan
Promise<DecryptResult>
decrypt(string, Uint8Array, DecryptOptions)
Peringatan
API ini sudah tidak digunakan lagi.
Use decrypt({ algorithm, ciphertext }, options) instead.
Mendekripsi ciphertext yang diberikan dengan algoritma kriptografi yang ditentukan
Contoh penggunaan:
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 menyarankan Anda tidak menggunakan CBC tanpa terlebih dahulu memastikan integritas ciphertext menggunakan, misalnya, HMAC. Lihat https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode untuk informasi selengkapnya.
function decrypt(algorithm: string, ciphertext: Uint8Array, options?: DecryptOptions): Promise<DecryptResult>
Parameter
- algorithm
-
string
Algoritma yang akan digunakan.
- ciphertext
-
Uint8Array
Teks yang akan didekripsi.
- options
- DecryptOptions
Opsi tambahan.
Mengembalikan
Promise<DecryptResult>
encrypt(EncryptParameters, EncryptOptions)
Mengenkripsi teks biasa yang diberikan dengan parameter enkripsi yang ditentukan. Bergantung pada algoritma yang diatur dalam parameter enkripsi, kumpulan parameter enkripsi yang mungkin akan berubah.
Contoh penggunaan:
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
Parameter enkripsi, di-keyed pada algoritma enkripsi yang dipilih.
- options
- EncryptOptions
Opsi tambahan.
Mengembalikan
Promise<EncryptResult>
encrypt(string, Uint8Array, EncryptOptions)
Peringatan
API ini sudah tidak digunakan lagi.
Use encrypt({ algorithm, plaintext }, options) instead.
Mengenkripsi teks biasa yang diberikan dengan algoritma kriptografi yang ditentukan
Contoh penggunaan:
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
Algoritma yang akan digunakan.
- plaintext
-
Uint8Array
Teks yang akan dienkripsi.
- options
- EncryptOptions
Opsi tambahan.
Mengembalikan
Promise<EncryptResult>
sign(string, Uint8Array, SignOptions)
Menandatangani hash pesan secara kriptografi
Contoh penggunaan:
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
Algoritma penandatanganan yang akan digunakan.
- digest
-
Uint8Array
Hash data yang akan ditandatangani.
- options
- SignOptions
Opsi tambahan.
Mengembalikan
Promise<SignResult>
signData(string, Uint8Array, SignOptions)
Menandatangani blok data secara kriptografis
Contoh penggunaan:
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
Algoritma penandatanganan yang akan digunakan.
- data
-
Uint8Array
Data yang akan ditandatangani.
- options
- SignOptions
Opsi tambahan.
Mengembalikan
Promise<SignResult>
unwrapKey(KeyWrapAlgorithm, Uint8Array, UnwrapKeyOptions)
Membuka bungkus kunci yang dibungkus yang diberikan menggunakan algoritma kriptografi yang ditentukan
Contoh penggunaan:
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
Algoritma dekripsi yang digunakan untuk membuka bungkus kunci.
- encryptedKey
-
Uint8Array
Kunci terenkripsi untuk membuka bungkus.
- options
- UnwrapKeyOptions
Opsi tambahan.
Mengembalikan
Promise<UnwrapResult>
verify(string, Uint8Array, Uint8Array, VerifyOptions)
Memverifikasi hash pesan yang ditandatangani
Contoh penggunaan:
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
Algoritma penandatanganan yang digunakan untuk memverifikasi.
- digest
-
Uint8Array
Hash untuk memverifikasi.
- signature
-
Uint8Array
Tanda tangan untuk memverifikasi hash terhadap.
- options
- VerifyOptions
Opsi tambahan.
Mengembalikan
Promise<VerifyResult>
verifyData(string, Uint8Array, Uint8Array, VerifyOptions)
Memverifikasi blok data yang ditandatangani
Contoh penggunaan:
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
Algoritma yang digunakan untuk memverifikasi dengan.
- data
-
Uint8Array
Blok data yang ditandatangani untuk diverifikasi.
- signature
-
Uint8Array
Tanda tangan untuk memverifikasi blok.
- options
- VerifyOptions
Opsi tambahan.
Mengembalikan
Promise<VerifyResult>
wrapKey(KeyWrapAlgorithm, Uint8Array, WrapKeyOptions)
Membungkus kunci yang diberikan menggunakan algoritma kriptografi yang ditentukan
Contoh penggunaan:
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
Algoritma enkripsi yang digunakan untuk membungkus kunci yang diberikan.
- key
-
Uint8Array
Kunci untuk membungkus.
- options
- WrapKeyOptions
Opsi tambahan.
Mengembalikan
Promise<WrapResult>