Share via


CryptographyClient class

Azure Key Vault 키 또는 로컬 JsonWebKey에서 암호화 작업을 수행하는 데 사용되는 클라이언트입니다.

생성자

CryptographyClient(JsonWebKey_2)

로컬 모드에서 지정된 키에 대한 Cryptography 클라이언트의 새 인스턴스를 생성합니다.

사용 예제:

import { CryptographyClient } from "@azure/keyvault-keys";

const jsonWebKey: JsonWebKey = {
  // ...
};
const client = new CryptographyClient(jsonWebKey);
CryptographyClient(string | KeyVaultKey, TokenCredential, CryptographyClientOptions)

지정된 키에 대한 Cryptography 클라이언트의 새 인스턴스를 생성합니다.

예제 사용법:

import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { DefaultAzureCredential } from "@azure/identity";

let vaultUrl = `https://<MY KEYVAULT HERE>.vault.azure.net`;
let credentials = new DefaultAzureCredential();

let keyClient = new KeyClient(vaultUrl, credentials);
let keyVaultKey = await keyClient.getKey("MyKey");

let client = new CryptographyClient(keyVaultKey.id, credentials);
// or
let client = new CryptographyClient(keyVaultKey, credentials);

속성

keyID

클라이언트에 대한 암호화 작업을 수행하는 데 사용되는 키의 ID입니다.

vaultUrl

자격 증명 모음의 기본 URL입니다. 로컬 JsonWebKey 가 사용되는 경우 vaultUrl은 비어 있습니다.

메서드

decrypt(DecryptParameters, DecryptOptions)

지정된 암호 해독 매개 변수를 사용하여 지정된 암호 텍스트를 해독합니다. 암호 해독 매개 변수에 사용되는 알고리즘에 따라 가능한 암호 해독 매개 변수 집합이 변경됩니다.

Microsoft는 먼저 HMAC를 사용하여 암호 텍스트의 무결성을 보장하지 않고 CBC를 사용하지 않는 것이 좋습니다. 자세한 내용은 https://docs.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode 을 참조하세요.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.decrypt({ algorithm: "RSA1_5", ciphertext: encryptedBuffer });
let result = await client.decrypt({ algorithm: "A256GCM", iv: ivFromEncryptResult, authenticationTag: tagFromEncryptResult });
decrypt(string, Uint8Array, DecryptOptions)

지정된 암호화 알고리즘을 사용하여 지정된 암호화의 암호를 해독합니다.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.decrypt("RSA1_5", encryptedBuffer);

Microsoft는 먼저 HMAC를 사용하여 암호 텍스트의 무결성을 보장하지 않고 CBC를 사용하지 않는 것이 좋습니다. 자세한 내용은 https://docs.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode 을 참조하세요.

encrypt(EncryptParameters, EncryptOptions)

지정된 암호화 매개 변수를 사용하여 지정된 일반 텍스트를 암호화합니다. 암호화 매개 변수에 설정된 알고리즘에 따라 가능한 암호화 매개 변수 집합이 변경됩니다.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.encrypt({ algorithm: "RSA1_5", plaintext: Buffer.from("My Message")});
let result = await client.encrypt({ algorithm: "A256GCM", plaintext: Buffer.from("My Message"), additionalAuthenticatedData: Buffer.from("My authenticated data")});
encrypt(string, Uint8Array, EncryptOptions)

지정된 암호화 알고리즘을 사용하여 지정된 일반 텍스트를 암호화합니다.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.encrypt("RSA1_5", Buffer.from("My Message"));
sign(string, Uint8Array, SignOptions)

메시지 다이제스트에 암호화 서명

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.sign("RS256", digest);
signData(string, Uint8Array, SignOptions)

데이터 블록에 암호화 서명

사용 예제:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.signData("RS256", message);
unwrapKey(KeyWrapAlgorithm, Uint8Array, UnwrapKeyOptions)

지정된 암호화 알고리즘을 사용하여 지정된 래핑된 키 래핑 해제

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.unwrapKey("RSA1_5", keyToUnwrap);
verify(string, Uint8Array, Uint8Array, VerifyOptions)

서명된 메시지 다이제스트 확인

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.verify("RS256", signedDigest, signature);
verifyData(string, Uint8Array, Uint8Array, VerifyOptions)

서명된 데이터 블록 확인

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.verifyData("RS256", signedMessage, signature);
wrapKey(KeyWrapAlgorithm, Uint8Array, WrapKeyOptions)

지정된 암호화 알고리즘을 사용하여 지정된 키를 래핑합니다.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.wrapKey("RSA1_5", keyToWrap);

생성자 세부 정보

CryptographyClient(JsonWebKey_2)

로컬 모드에서 지정된 키에 대한 Cryptography 클라이언트의 새 인스턴스를 생성합니다.

사용 예제:

import { CryptographyClient } from "@azure/keyvault-keys";

const jsonWebKey: JsonWebKey = {
  // ...
};
const client = new CryptographyClient(jsonWebKey);
new CryptographyClient(key: JsonWebKey_2)

매개 변수

key
JsonWebKey

암호화 작업 중에 사용할 JsonWebKey입니다.

CryptographyClient(string | KeyVaultKey, TokenCredential, CryptographyClientOptions)

지정된 키에 대한 Cryptography 클라이언트의 새 인스턴스를 생성합니다.

예제 사용법:

import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { DefaultAzureCredential } from "@azure/identity";

let vaultUrl = `https://<MY KEYVAULT HERE>.vault.azure.net`;
let credentials = new DefaultAzureCredential();

let keyClient = new KeyClient(vaultUrl, credentials);
let keyVaultKey = await keyClient.getKey("MyKey");

let client = new CryptographyClient(keyVaultKey.id, credentials);
// or
let client = new CryptographyClient(keyVaultKey, credentials);
new CryptographyClient(key: string | KeyVaultKey, credential: TokenCredential, pipelineOptions?: CryptographyClientOptions)

매개 변수

key

string | KeyVaultKey

암호화 작업 중에 사용할 키입니다. 키의 식별자(예: URL)를 여기에 전달할 수도 있습니다.

credential
TokenCredential

서비스에 대한 TokenCredential 요청을 인증하는 데 사용되는 인터페이스를 구현하는 개체입니다. @azure/identity 패키지를 사용하여 요구 사항에 맞는 자격 증명을 만듭니다.

pipelineOptions
CryptographyClientOptions

Key Vault API 요청을 구성하는 데 사용되는 파이프라인 옵션입니다. 기본 파이프라인 구성을 사용하려면 이 매개 변수를 생략합니다.

속성 세부 정보

keyID

클라이언트에 대한 암호화 작업을 수행하는 데 사용되는 키의 ID입니다.

undefined | string keyID

속성 값

undefined | string

vaultUrl

자격 증명 모음의 기본 URL입니다. 로컬 JsonWebKey 가 사용되는 경우 vaultUrl은 비어 있습니다.

string vaultUrl

속성 값

string

메서드 세부 정보

decrypt(DecryptParameters, DecryptOptions)

지정된 암호 해독 매개 변수를 사용하여 지정된 암호 텍스트를 해독합니다. 암호 해독 매개 변수에 사용되는 알고리즘에 따라 가능한 암호 해독 매개 변수 집합이 변경됩니다.

Microsoft는 먼저 HMAC를 사용하여 암호 텍스트의 무결성을 보장하지 않고 CBC를 사용하지 않는 것이 좋습니다. 자세한 내용은 https://docs.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode 을 참조하세요.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.decrypt({ algorithm: "RSA1_5", ciphertext: encryptedBuffer });
let result = await client.decrypt({ algorithm: "A256GCM", iv: ivFromEncryptResult, authenticationTag: tagFromEncryptResult });
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.

지정된 암호화 알고리즘을 사용하여 지정된 암호화의 암호를 해독합니다.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.decrypt("RSA1_5", encryptedBuffer);

Microsoft는 먼저 HMAC를 사용하여 암호 텍스트의 무결성을 보장하지 않고 CBC를 사용하지 않는 것이 좋습니다. 자세한 내용은 https://docs.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)

지정된 암호화 매개 변수를 사용하여 지정된 일반 텍스트를 암호화합니다. 암호화 매개 변수에 설정된 알고리즘에 따라 가능한 암호화 매개 변수 집합이 변경됩니다.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.encrypt({ algorithm: "RSA1_5", plaintext: Buffer.from("My Message")});
let result = await client.encrypt({ algorithm: "A256GCM", plaintext: Buffer.from("My Message"), additionalAuthenticatedData: Buffer.from("My authenticated data")});
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.

지정된 암호화 알고리즘을 사용하여 지정된 일반 텍스트를 암호화합니다.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.encrypt("RSA1_5", Buffer.from("My Message"));
function encrypt(algorithm: string, plaintext: Uint8Array, options?: EncryptOptions): Promise<EncryptResult>

매개 변수

algorithm

string

사용할 알고리즘입니다.

plaintext

Uint8Array

암호화할 텍스트입니다.

options
EncryptOptions

추가 옵션입니다.

반환

Promise<EncryptResult>

sign(string, Uint8Array, SignOptions)

메시지 다이제스트에 암호화 서명

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.sign("RS256", digest);
function sign(algorithm: string, digest: Uint8Array, options?: SignOptions): Promise<SignResult>

매개 변수

algorithm

string

사용할 서명 알고리즘입니다.

digest

Uint8Array

서명할 데이터의 다이제스트입니다.

options
SignOptions

추가 옵션입니다.

반환

Promise<SignResult>

signData(string, Uint8Array, SignOptions)

데이터 블록에 암호화 서명

사용 예제:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.signData("RS256", message);
function signData(algorithm: string, data: Uint8Array, options?: SignOptions): Promise<SignResult>

매개 변수

algorithm

string

사용할 서명 알고리즘입니다.

data

Uint8Array

서명할 데이터입니다.

options
SignOptions

추가 옵션입니다.

반환

Promise<SignResult>

unwrapKey(KeyWrapAlgorithm, Uint8Array, UnwrapKeyOptions)

지정된 암호화 알고리즘을 사용하여 지정된 래핑된 키 래핑 해제

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.unwrapKey("RSA1_5", keyToUnwrap);
function unwrapKey(algorithm: KeyWrapAlgorithm, encryptedKey: Uint8Array, options?: UnwrapKeyOptions): Promise<UnwrapResult>

매개 변수

algorithm
KeyWrapAlgorithm

키를 래프 해제하는 데 사용할 암호 해독 알고리즘입니다.

encryptedKey

Uint8Array

래프 해제할 암호화된 키입니다.

options
UnwrapKeyOptions

추가 옵션입니다.

반환

Promise<UnwrapResult>

verify(string, Uint8Array, Uint8Array, VerifyOptions)

서명된 메시지 다이제스트 확인

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.verify("RS256", signedDigest, signature);
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)

서명된 데이터 블록 확인

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.verifyData("RS256", signedMessage, signature);
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)

지정된 암호화 알고리즘을 사용하여 지정된 키를 래핑합니다.

예제 사용법:

let client = new CryptographyClient(keyVaultKey, credentials);
let result = await client.wrapKey("RSA1_5", keyToWrap);
function wrapKey(algorithm: KeyWrapAlgorithm, key: Uint8Array, options?: WrapKeyOptions): Promise<WrapResult>

매개 변수

algorithm
KeyWrapAlgorithm

지정된 키를 래핑하는 데 사용할 암호화 알고리즘입니다.

key

Uint8Array

래핑할 키입니다.

options
WrapKeyOptions

추가 옵션입니다.

반환

Promise<WrapResult>