Partilhar via


CryptographyClient Classe

  • java.lang.Object
    • com.azure.security.keyvault.keys.cryptography.CryptographyClient

public class CryptographyClient

O CryptographyClient fornece métodos síncronos para executar operações criptográficas usando chaves assimétricas e simétricas. O cliente dá suporte a criptografar, descriptografar, encapsular chave, desembrulhar chave, assinar e verificar operações usando a chave configurada.

Introdução

Para interagir com o serviço de Key Vault do Azure, você precisará criar uma instância da CryptographyClient classe, uma URL do cofre e um objeto de credencial.

Os exemplos mostrados neste documento usam um objeto de credencial chamado DefaultAzureCredential para autenticação, que é apropriado para a maioria dos cenários, incluindo ambientes locais de desenvolvimento e produção. Além disso, recomendamos usar uma identidade gerenciada para autenticação em ambientes de produção. Você pode encontrar mais informações sobre diferentes maneiras de autenticação e seus tipos de credencial correspondentes na documentação da Identidade do Azure".

Exemplo: Construir cliente de criptografia síncrona

O exemplo de código a seguir demonstra a criação de um CryptographyClient, usando o CryptographyClientBuilder para configurá-lo.

CryptographyClient cryptographyClient = new CryptographyClientBuilder()
     .keyIdentifier("<your-key-id>")
     .credential(new DefaultAzureCredentialBuilder().build())
     .buildClient();
JsonWebKey jsonWebKey = new JsonWebKey().setId("SampleJsonWebKey");
 CryptographyClient cryptographyClient = new CryptographyClientBuilder()
     .jsonWebKey(jsonWebKey)
     .buildClient();

Criptografar Dados

O CryptographyClient pode ser usado para criptografar dados.

Exemplo de código:

O exemplo de código a seguir demonstra como criptografar dados de forma síncrona usando a encrypt(EncryptionAlgorithm algorithm, byte[] plaintext) API.

byte[] plaintext = new byte[100];
 new Random(0x1234567L).nextBytes(plaintext);

 EncryptResult encryptResult = cryptographyClient.encrypt(EncryptionAlgorithm.RSA_OAEP, plaintext);

 System.out.printf("Received encrypted content of length: %d, with algorithm: %s.%n",
     encryptResult.getCipherText().length, encryptResult.getAlgorithm());

Nota: Para o exemplo assíncrono, consulte CryptographyAsyncClient.


Descriptografar dados

O CryptographyClient pode ser usado para descriptografar dados.

Exemplo de código:

O exemplo de código a seguir demonstra como descriptografar dados de forma síncrona usando a decrypt(EncryptionAlgorithm algorithm, byte[] ciphertext) API.

byte[] ciphertext = new byte[100];
 new Random(0x1234567L).nextBytes(ciphertext);

 DecryptResult decryptResult = cryptographyClient.decrypt(EncryptionAlgorithm.RSA_OAEP, ciphertext);

 System.out.printf("Received decrypted content of length: %d.%n", decryptResult.getPlainText().length);

Nota: Para o exemplo assíncrono, consulte CryptographyAsyncClient.

Resumo do método

Modificador e tipo Método e descrição
DecryptResult decrypt(DecryptParameters decryptParameters, Context context)

Descriptografa um único bloco de dados criptografados usando a chave configurada e o algoritmo especificado.

DecryptResult decrypt(EncryptionAlgorithm algorithm, byte[] ciphertext)

Descriptografa um único bloco de dados criptografados usando a chave configurada e o algoritmo especificado.

DecryptResult decrypt(EncryptionAlgorithm algorithm, byte[] ciphertext, Context context)

Descriptografa um único bloco de dados criptografados usando a chave configurada e o algoritmo especificado.

EncryptResult encrypt(EncryptParameters encryptParameters, Context context)

Criptografa uma sequência arbitrária de bytes usando a chave configurada.

EncryptResult encrypt(EncryptionAlgorithm algorithm, byte[] plaintext)

Criptografa uma sequência arbitrária de bytes usando a chave configurada.

EncryptResult encrypt(EncryptionAlgorithm algorithm, byte[] plaintext, Context context)

Criptografa uma sequência arbitrária de bytes usando a chave configurada.

KeyVaultKey getKey()

Obtém a parte pública da chave configurada.

Response<KeyVaultKey> getKeyWithResponse(Context context)

Obtém a parte pública da chave configurada.

SignResult sign(SignatureAlgorithm algorithm, byte[] digest)

Cria uma assinatura de um resumo usando a chave configurada.

SignResult sign(SignatureAlgorithm algorithm, byte[] digest, Context context)

Cria uma assinatura de um resumo usando a chave configurada.

SignResult signData(SignatureAlgorithm algorithm, byte[] data)

Cria uma assinatura dos dados brutos usando a chave configurada.

SignResult signData(SignatureAlgorithm algorithm, byte[] data, Context context)

Cria uma assinatura com base nos dados brutos usando a chave configurada.

UnwrapResult unwrapKey(KeyWrapAlgorithm algorithm, byte[] encryptedKey)

Desencapsular uma chave simétrica usando a chave configurada que foi usada inicialmente para encapsular essa chave.

UnwrapResult unwrapKey(KeyWrapAlgorithm algorithm, byte[] encryptedKey, Context context)

Desencapsular uma chave simétrica usando a chave configurada que foi usada inicialmente para encapsular essa chave.

VerifyResult verify(SignatureAlgorithm algorithm, byte[] digest, byte[] signature)

Verifica uma assinatura usando a chave configurada.

VerifyResult verify(SignatureAlgorithm algorithm, byte[] digest, byte[] signature, Context context)

Verifica uma assinatura usando a chave configurada.

VerifyResult verifyData(SignatureAlgorithm algorithm, byte[] data, byte[] signature)

Verifica uma assinatura em relação aos dados brutos usando a chave configurada.

VerifyResult verifyData(SignatureAlgorithm algorithm, byte[] data, byte[] signature, Context context)

Verifica uma assinatura em relação aos dados brutos usando a chave configurada.

WrapResult wrapKey(KeyWrapAlgorithm algorithm, byte[] key)

Encapsula uma chave simétrica usando a chave configurada.

WrapResult wrapKey(KeyWrapAlgorithm algorithm, byte[] key, Context context)

Encapsula uma chave simétrica usando a chave configurada.

Métodos herdados de java.lang.Object

Detalhes do método

decrypt

public DecryptResult decrypt(DecryptParameters decryptParameters, Context context)

Descriptografa um único bloco de dados criptografados usando a chave configurada e o algoritmo especificado. Observe que apenas um único bloco de dados pode ser descriptografado, o tamanho desse bloco depende da chave de destino e do algoritmo a ser usado. Há suporte para a operação de descriptografia para chaves assimétricas e simétricas. Essa operação requer a keys/decrypt permissão para operações não locais.

O EncryptionAlgorithm indica o tipo de algoritmo a ser usado para descriptografar o conteúdo criptografado especificado. Os valores possíveis para chaves assimétricas incluem: RSA1_5e RSA_OAEP_256RSA_OAEP . Os valores possíveis para chaves simétricas incluem: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, , A256CBCPADA256CBC_HS512 e A256GCM.

Exemplos de código

Descriptografa o conteúdo criptografado imprime os detalhes do conteúdo descriptografado quando uma resposta é recebida.

byte[] myCiphertext = new byte[100];
 new Random(0x1234567L).nextBytes(myCiphertext);
 byte[] iv = {
     (byte) 0x1a, (byte) 0xf3, (byte) 0x8c, (byte) 0x2d, (byte) 0xc2, (byte) 0xb9, (byte) 0x6f, (byte) 0xfd,
     (byte) 0xd8, (byte) 0x66, (byte) 0x94, (byte) 0x09, (byte) 0x23, (byte) 0x41, (byte) 0xbc, (byte) 0x04
 };

 DecryptParameters decryptParameters = DecryptParameters.createA128CbcParameters(myCiphertext, iv);
 DecryptResult decryptedResult = cryptographyClient.decrypt(decryptParameters, new Context("key1", "value1"));

 System.out.printf("Received decrypted content of length: %d.%n", decryptedResult.getPlainText().length);

Parameters:

decryptParameters - Os parâmetros a serem usados na operação de descriptografia. A Microsoft recomenda que você não use CBC sem primeiro garantir a integridade do texto cifrado usando um HMAC, por exemplo. Confira Vulnerabilidades de tempo com descriptografia simétrica do modo CBC usando o preenchimento para obter mais informações.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

O DecryptResult cujo getPlainText() contém o conteúdo descriptografado.

decrypt

public DecryptResult decrypt(EncryptionAlgorithm algorithm, byte[] ciphertext)

Descriptografa um único bloco de dados criptografados usando a chave configurada e o algoritmo especificado. Observe que apenas um único bloco de dados pode ser descriptografado, o tamanho desse bloco depende da chave de destino e do algoritmo a ser usado. Há suporte para a operação de descriptografia para chaves assimétricas e simétricas. Essa operação requer a keys/decrypt permissão para operações não locais.

O EncryptionAlgorithm indica o tipo de algoritmo a ser usado para descriptografar o conteúdo criptografado especificado. Os valores possíveis para chaves assimétricas incluem: RSA1_5e RSA_OAEP_256RSA_OAEP . Os valores possíveis para chaves simétricas incluem: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, , A256CBCPADA256CBC_HS512 e A256GCM.

Exemplos de código

Descriptografa o conteúdo criptografado imprime os detalhes do conteúdo descriptografado quando uma resposta é recebida.

byte[] ciphertext = new byte[100];
 new Random(0x1234567L).nextBytes(ciphertext);

 DecryptResult decryptResult = cryptographyClient.decrypt(EncryptionAlgorithm.RSA_OAEP, ciphertext);

 System.out.printf("Received decrypted content of length: %d.%n", decryptResult.getPlainText().length);

Parameters:

algorithm - O algoritmo a ser usado para descriptografia.
ciphertext - O conteúdo a ser descriptografado. A Microsoft recomenda que você não use CBC sem primeiro garantir a integridade do texto cifrado usando um HMAC, por exemplo. Confira Vulnerabilidades de tempo com descriptografia simétrica do modo CBC usando o preenchimento para obter mais informações.

Returns:

O DecryptResult cujo getPlainText() contém o conteúdo descriptografado.

decrypt

public DecryptResult decrypt(EncryptionAlgorithm algorithm, byte[] ciphertext, Context context)

Descriptografa um único bloco de dados criptografados usando a chave configurada e o algoritmo especificado. Observe que apenas um único bloco de dados pode ser descriptografado, o tamanho desse bloco depende da chave de destino e do algoritmo a ser usado. Há suporte para a operação de descriptografia para chaves assimétricas e simétricas. Essa operação requer a keys/decrypt permissão para operações não locais.

O EncryptionAlgorithm indica o tipo de algoritmo a ser usado para descriptografar o conteúdo criptografado especificado. Os valores possíveis para chaves assimétricas incluem: RSA1_5e RSA_OAEP_256RSA_OAEP . Os valores possíveis para chaves simétricas incluem: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, , A256CBCPADA256CBC_HS512 e A256GCM.

Exemplos de código

Descriptografa o conteúdo criptografado imprime os detalhes do conteúdo descriptografado quando uma resposta é recebida.

byte[] ciphertextToDecrypt = new byte[100];
 new Random(0x1234567L).nextBytes(ciphertextToDecrypt);

 DecryptResult decryptionResult = cryptographyClient.decrypt(EncryptionAlgorithm.RSA_OAEP, ciphertextToDecrypt,
     new Context("key1", "value1"));

 System.out.printf("Received decrypted content of length: %d.%n", decryptionResult.getPlainText().length);

Parameters:

algorithm - O algoritmo a ser usado para descriptografia.
ciphertext - O conteúdo a ser descriptografado. A Microsoft recomenda que você não use CBC sem primeiro garantir a integridade do texto cifrado usando um HMAC, por exemplo. Confira Vulnerabilidades de tempo com descriptografia simétrica do modo CBC usando o preenchimento para obter mais informações.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

O DecryptResult cujo getPlainText() contém o conteúdo descriptografado.

encrypt

public EncryptResult encrypt(EncryptParameters encryptParameters, Context context)

Criptografa uma sequência arbitrária de bytes usando a chave configurada. Observe que a operação de criptografia dá suporte apenas a um único bloco de dados, cujo tamanho depende da chave de destino e do algoritmo de criptografia a ser usado. A operação de criptografia tem suporte para chaves simétricas e chaves assimétricas. No caso de chaves assimétricas, a parte pública da chave é usada para criptografia. Essa operação requer a keys/encrypt permissão para operações não locais.

O EncryptionAlgorithm indica o tipo de algoritmo a ser usado para criptografar o especificado plaintext. Os valores possíveis para chaves assimétricas incluem: RSA1_5e RSA_OAEP_256RSA_OAEP . Os valores possíveis para chaves simétricas incluem: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, , A256CBCPADA256CBC_HS512 e A256GCM.

Exemplos de código

Criptografa o conteúdo imprime os detalhes do conteúdo criptografado quando uma resposta é recebida.

byte[] myPlaintext = new byte[100];
 new Random(0x1234567L).nextBytes(myPlaintext);
 byte[] iv = {
     (byte) 0x1a, (byte) 0xf3, (byte) 0x8c, (byte) 0x2d, (byte) 0xc2, (byte) 0xb9, (byte) 0x6f, (byte) 0xfd,
     (byte) 0xd8, (byte) 0x66, (byte) 0x94, (byte) 0x09, (byte) 0x23, (byte) 0x41, (byte) 0xbc, (byte) 0x04
 };

 EncryptParameters encryptParameters = EncryptParameters.createA128CbcParameters(myPlaintext, iv);
 EncryptResult encryptedResult = cryptographyClient.encrypt(encryptParameters, new Context("key1", "value1"));

 System.out.printf("Received encrypted content of length: %d, with algorithm: %s.%n",
     encryptedResult.getCipherText().length, encryptedResult.getAlgorithm());

Parameters:

encryptParameters - Os parâmetros a serem usados na operação de criptografia.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

O EncryptResult cujo getCipherText() contém o conteúdo criptografado.

encrypt

public EncryptResult encrypt(EncryptionAlgorithm algorithm, byte[] plaintext)

Criptografa uma sequência arbitrária de bytes usando a chave configurada. Observe que a operação de criptografia dá suporte apenas a um único bloco de dados, cujo tamanho depende da chave de destino e do algoritmo de criptografia a ser usado. A operação de criptografia tem suporte para chaves simétricas e chaves assimétricas. No caso de chaves assimétricas, a parte pública da chave é usada para criptografia. Essa operação requer a keys/encrypt permissão para operações não locais.

O EncryptionAlgorithm indica o tipo de algoritmo a ser usado para criptografar o especificado plaintext. Os valores possíveis para chaves assimétricas incluem: RSA1_5e RSA_OAEP_256RSA_OAEP . Os valores possíveis para chaves simétricas incluem: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, , A256CBCPADA256CBC_HS512 e A256GCM.

Exemplos de código

Criptografa o conteúdo e imprime os detalhes do conteúdo criptografado quando uma resposta é recebida.

byte[] plaintext = new byte[100];
 new Random(0x1234567L).nextBytes(plaintext);

 EncryptResult encryptResult = cryptographyClient.encrypt(EncryptionAlgorithm.RSA_OAEP, plaintext);

 System.out.printf("Received encrypted content of length: %d, with algorithm: %s.%n",
     encryptResult.getCipherText().length, encryptResult.getAlgorithm());

Parameters:

algorithm - O algoritmo a ser usado para criptografia.
plaintext - O conteúdo a ser criptografado.

Returns:

O EncryptResult cujo getCipherText() contém o conteúdo criptografado.

encrypt

public EncryptResult encrypt(EncryptionAlgorithm algorithm, byte[] plaintext, Context context)

Criptografa uma sequência arbitrária de bytes usando a chave configurada. Observe que a operação de criptografia dá suporte apenas a um único bloco de dados, cujo tamanho depende da chave de destino e do algoritmo de criptografia a ser usado. A operação de criptografia tem suporte para chaves simétricas e chaves assimétricas. No caso de chaves assimétricas, a parte pública da chave é usada para criptografia. Essa operação requer a keys/encrypt permissão para operações não locais.

O EncryptionAlgorithm indica o tipo de algoritmo a ser usado para criptografar o especificado plaintext. Os valores possíveis para chaves assimétricas incluem: RSA1_5e RSA_OAEP_256RSA_OAEP . Os valores possíveis para chaves simétricas incluem: A128CBC, A128CBCPAD, A128CBC_HS256, A128GCM, A192CBC, A192CBCPAD, A192CBC_HS384, A192GCM, A256CBC, , A256CBCPADA256CBC_HS512 e A256GCM.

Exemplos de código

Criptografa o conteúdo imprime os detalhes do conteúdo criptografado quando uma resposta é recebida.

byte[] plaintextToEncrypt = new byte[100];
 new Random(0x1234567L).nextBytes(plaintextToEncrypt);

 EncryptResult encryptionResult = cryptographyClient.encrypt(EncryptionAlgorithm.RSA_OAEP, plaintextToEncrypt,
     new Context("key1", "value1"));

 System.out.printf("Received encrypted content of length: %d, with algorithm: %s.%n",
     encryptionResult.getCipherText().length, encryptionResult.getAlgorithm());

Parameters:

algorithm - O algoritmo a ser usado para criptografia.
plaintext - O conteúdo a ser criptografado.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

O EncryptResult cujo getCipherText() contém o conteúdo criptografado.

getKey

public KeyVaultKey getKey()

Obtém a parte pública da chave configurada. A operação get key é aplicável a todos os tipos de chave e requer a keys/get permissão para operações não locais.

Exemplos de código

Obtém a chave configurada no cliente e imprime os detalhes de chave retornados quando uma resposta é recebida.

KeyVaultKey key = cryptographyClient.getKey();

 System.out.printf("Key returned with name: %s and id: %s.%n", key.getName(), key.getId());

Returns:

Um Mono que contém o solicitado KeyVaultKey.

getKeyWithResponse

public Response getKeyWithResponse(Context context)

Obtém a parte pública da chave configurada. A operação get key é aplicável a todos os tipos de chave e requer a keys/get permissão para operações não locais.

Exemplos de código

Obtém a chave configurada no cliente e imprime os detalhes de chave retornados quando uma resposta é recebida.

KeyVaultKey keyWithVersion = cryptographyClient.getKeyWithResponse(new Context("key1", "value1")).getValue();

 System.out.printf("Key is returned with name: %s and id %s.%n", keyWithVersion.getName(),
     keyWithVersion.getId());

Parameters:

context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

Um Mono que contém um Response<T> cujo value contém o solicitado KeyVaultKey.

sign

public SignResult sign(SignatureAlgorithm algorithm, byte[] digest)

Cria uma assinatura de um resumo usando a chave configurada. A operação de sinal dá suporte a chaves assimétricas e simétricas. Essa operação requer a keys/sign permissão para operações não locais.

O SignatureAlgorithm indica o tipo de algoritmo a ser usado para criar a assinatura a partir do resumo. Os valores possíveis incluem: ES256, , , ES512, ES256K, PS256, RS384RS512, RS256, RS384, e RS512ES384.

Exemplos de código

O resumo imprime os detalhes da assinatura quando uma resposta é recebida.

byte[] data = new byte[100];
 new Random(0x1234567L).nextBytes(data);
 MessageDigest md = MessageDigest.getInstance("SHA-256");
 md.update(data);
 byte[] digest = md.digest();

 SignResult signResult = cryptographyClient.sign(SignatureAlgorithm.ES256, digest);

 System.out.printf("Received signature of length: %d, with algorithm: %s.%n", signResult.getSignature().length,
     signResult.getAlgorithm());

Parameters:

algorithm - O algoritmo a ser usado para assinatura.
digest - O conteúdo do qual a assinatura deve ser criada.

Returns:

Um SignResult cujo getSignature() contém a assinatura criada.

sign

public SignResult sign(SignatureAlgorithm algorithm, byte[] digest, Context context)

Cria uma assinatura de um resumo usando a chave configurada. A operação de sinal dá suporte a chaves assimétricas e simétricas. Essa operação requer a keys/sign permissão para operações não locais.

O SignatureAlgorithm indica o tipo de algoritmo a ser usado para criar a assinatura a partir do resumo. Os valores possíveis incluem: ES256, , , ES512, ES256K, PS256, RS384RS512, RS256, RS384, e RS512ES384.

Exemplos de código

O resumo imprime os detalhes da assinatura quando uma resposta é recebida.

byte[] dataToVerify = new byte[100];
 new Random(0x1234567L).nextBytes(dataToVerify);
 MessageDigest myMessageDigest = MessageDigest.getInstance("SHA-256");
 myMessageDigest.update(dataToVerify);
 byte[] digestContent = myMessageDigest.digest();

 SignResult signResponse = cryptographyClient.sign(SignatureAlgorithm.ES256, digestContent,
     new Context("key1", "value1"));

 System.out.printf("Received signature of length: %d, with algorithm: %s.%n", signResponse.getSignature().length,
     signResponse.getAlgorithm());

Parameters:

algorithm - O algoritmo a ser usado para assinatura.
digest - O conteúdo do qual a assinatura deve ser criada.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

Um SignResult cujo getSignature() contém a assinatura criada.

signData

public SignResult signData(SignatureAlgorithm algorithm, byte[] data)

Cria uma assinatura dos dados brutos usando a chave configurada. A operação de dados de sinal dá suporte a chaves assimétricas e simétricas. Essa operação requer a keys/sign permissão para operações não locais.

O SignatureAlgorithm indica o tipo de algoritmo a ser usado para assinar o resumo. Os valores possíveis incluem: ES256, , , ES512, ES256K, PS256, RS384RS512, RS256, RS384, e RS512ES384.

Exemplos de código

Assina os dados brutos imprime os detalhes da assinatura quando uma resposta é recebida.

byte[] data = new byte[100];
 new Random(0x1234567L).nextBytes(data);

 SignResult signResult = cryptographyClient.sign(SignatureAlgorithm.ES256, data);

 System.out.printf("Received signature of length: %d, with algorithm: %s.%n", signResult.getSignature().length,
     signResult.getAlgorithm());

Parameters:

algorithm - O algoritmo a ser usado para assinatura.
data - O conteúdo do qual a assinatura deve ser criada.

Returns:

Um SignResult cujo getSignature() contém a assinatura criada.

signData

public SignResult signData(SignatureAlgorithm algorithm, byte[] data, Context context)

Cria uma assinatura dos dados brutos usando a chave configurada. A operação de dados de sinal dá suporte a chaves assimétricas e simétricas. Essa operação requer a keys/sign permissão para operações não locais.

O SignatureAlgorithm indica o tipo de algoritmo a ser usado para assinar o resumo. Os valores possíveis incluem: ES256, ES384, ES512, ES256K, PS256, RS384, RS512RS256, RS384, e RS512.

Exemplos de código

Assina os dados brutos imprime os detalhes da assinatura quando uma resposta é recebida.

byte[] plainTextData = new byte[100];
 new Random(0x1234567L).nextBytes(plainTextData);

 SignResult signingResult = cryptographyClient.sign(SignatureAlgorithm.ES256, plainTextData);

 System.out.printf("Received signature of length: %d, with algorithm: %s.%n",
     signingResult.getSignature().length, new Context("key1", "value1"));

Parameters:

algorithm - O algoritmo a ser usado para assinatura.
data - O conteúdo do qual a assinatura deve ser criada.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

Um SignResult cujo getSignature() contém a assinatura criada.

unwrapKey

public UnwrapResult unwrapKey(KeyWrapAlgorithm algorithm, byte[] encryptedKey)

Desencapsular uma chave simétrica usando a chave configurada que foi usada inicialmente para encapsular essa chave. Essa operação é o inverso da operação de encapsulamento. A operação de desencapsular dá suporte a chaves assimétricas e simétricas para desencapsular. Essa operação requer a keys/unwrapKey permissão para operações não locais.

O KeyWrapAlgorithm indica o tipo de algoritmo a ser usado para desencapsular o conteúdo da chave criptografada especificado. Os valores possíveis para chaves assimétricas incluem: RSA1_5e RSA_OAEP_256RSA_OAEP . Os valores possíveis para chaves simétricas incluem: A128KWe A192KWA256KW.

Exemplos de código

Desencapsular o conteúdo da chave imprime os detalhes da chave desencapsular quando uma resposta é recebida.

byte[] keyContent = new byte[100];
 new Random(0x1234567L).nextBytes(keyContent);

 WrapResult wrapKeyResult = cryptographyClient.wrapKey(KeyWrapAlgorithm.RSA_OAEP, keyContent,
     new Context("key1", "value1"));
 UnwrapResult unwrapResult = cryptographyClient.unwrapKey(KeyWrapAlgorithm.RSA_OAEP,
     wrapKeyResult.getEncryptedKey());

 System.out.printf("Received key of length %d", unwrapResult.getKey().length);

Parameters:

algorithm - O algoritmo de criptografia a ser usado para encapsular a chave.
encryptedKey - O conteúdo da chave criptografada a ser desencapsular.

Returns:

Um UnwrapResult cujo getKey() contém o resultado da chave desencapsulada.

unwrapKey

public UnwrapResult unwrapKey(KeyWrapAlgorithm algorithm, byte[] encryptedKey, Context context)

Desencapsular uma chave simétrica usando a chave configurada que foi usada inicialmente para encapsular essa chave. Essa operação é o inverso da operação de encapsulamento. A operação de desencapsular dá suporte a chaves assimétricas e simétricas para desencapsular. Essa operação requer a keys/unwrapKey permissão para operações não locais.

O KeyWrapAlgorithm indica o tipo de algoritmo a ser usado para desencapsular o conteúdo da chave criptografada especificado. Os valores possíveis para chaves assimétricas incluem: RSA1_5e RSA_OAEP_256RSA_OAEP . Os valores possíveis para chaves simétricas incluem: A128KWe A192KWA256KW.

Exemplos de código

Desencapsular o conteúdo da chave imprime os detalhes da chave desencapsular quando uma resposta é recebida.

byte[] keyContentToWrap = new byte[100];
 new Random(0x1234567L).nextBytes(keyContentToWrap);
 Context context = new Context("key1", "value1");

 WrapResult wrapKeyContentResult =
     cryptographyClient.wrapKey(KeyWrapAlgorithm.RSA_OAEP, keyContentToWrap, context);
 UnwrapResult unwrapKeyResponse =
     cryptographyClient.unwrapKey(KeyWrapAlgorithm.RSA_OAEP, wrapKeyContentResult.getEncryptedKey(), context);

 System.out.printf("Received key of length %d", unwrapKeyResponse.getKey().length);

Parameters:

algorithm - O algoritmo de criptografia a ser usado para encapsular a chave.
encryptedKey - O conteúdo da chave criptografada a ser desencapsular.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

Um UnwrapResult cujo getKey() contém o resultado da chave desencapsulada.

verify

public VerifyResult verify(SignatureAlgorithm algorithm, byte[] digest, byte[] signature)

Verifica uma assinatura usando a chave configurada. A operação de verificação dá suporte a chaves simétricas e chaves assimétricas. No caso de chaves assimétricas, a parte pública da chave é usada para verificar a assinatura. Essa operação requer a keys/verify permissão para operações não locais.

O SignatureAlgorithm indica o tipo de algoritmo a ser usado para verificar a assinatura. Os valores possíveis incluem: ES256, ES384, ES512, ES256K, PS256, RS384, RS512RS256, RS384, e RS512.

Exemplos de código

Verifica a assinatura em relação ao resumo especificado imprime os detalhes de verificação quando uma resposta é recebida.

byte[] myData = new byte[100];
 new Random(0x1234567L).nextBytes(myData);
 MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
 messageDigest.update(myData);
 byte[] myDigest = messageDigest.digest();

 // A signature can be obtained from the SignResult returned by the CryptographyClient.sign() operation.
 VerifyResult verifyResult = cryptographyClient.verify(SignatureAlgorithm.ES256, myDigest, signature);

 System.out.printf("Verification status: %s.%n", verifyResult.isValid());

Parameters:

algorithm - O algoritmo a ser usado para assinatura.
digest - O conteúdo do qual a assinatura foi criada.
signature - A assinatura a ser verificada.

Returns:

verify

public VerifyResult verify(SignatureAlgorithm algorithm, byte[] digest, byte[] signature, Context context)

Verifica uma assinatura usando a chave configurada. A operação de verificação dá suporte a chaves simétricas e chaves assimétricas. No caso de chaves assimétricas, a parte pública da chave é usada para verificar a assinatura. Essa operação requer a keys/verify permissão para operações não locais.

O SignatureAlgorithm indica o tipo de algoritmo a ser usado para verificar a assinatura. Os valores possíveis incluem: ES256, ES384, ES512, ES256K, PS256, RS384, RS512RS256, RS384, e RS512.

Exemplos de código

Verifica a assinatura em relação ao resumo especificado imprime os detalhes de verificação quando uma resposta é recebida.

byte[] dataBytes = new byte[100];
 new Random(0x1234567L).nextBytes(dataBytes);
 MessageDigest msgDigest = MessageDigest.getInstance("SHA-256");
 msgDigest.update(dataBytes);
 byte[] digestBytes = msgDigest.digest();

 // A signature can be obtained from the SignResult returned by the CryptographyClient.sign() operation.
 VerifyResult verifyResponse = cryptographyClient.verify(SignatureAlgorithm.ES256, digestBytes, signatureBytes,
     new Context("key1", "value1"));

 System.out.printf("Verification status: %s.%n", verifyResponse.isValid());

Parameters:

algorithm - O algoritmo a ser usado para assinatura.
digest - O conteúdo do qual a assinatura foi criada.
signature - A assinatura a ser verificada.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

verifyData

public VerifyResult verifyData(SignatureAlgorithm algorithm, byte[] data, byte[] signature)

Verifica uma assinatura em relação aos dados brutos usando a chave configurada. A operação de verificação dá suporte a chaves simétricas e chaves assimétricas. No caso de chaves assimétricas, a parte pública da chave é usada para verificar a assinatura. Essa operação requer a keys/verify permissão para operações não locais.

O SignatureAlgorithm indica o tipo de algoritmo a ser usado para verificar a assinatura. Os valores possíveis incluem: ES256, ES384, ES512, ES256K, PS256, RS384, RS512RS256, RS384, e RS512.

Exemplos de código

Verifica se a assinatura nos dados brutos imprime os detalhes da verificação quando uma resposta é recebida.

byte[] myData = new byte[100];
 new Random(0x1234567L).nextBytes(myData);

 // A signature can be obtained from the SignResult returned by the CryptographyClient.sign() operation.
 VerifyResult verifyResult = cryptographyClient.verify(SignatureAlgorithm.ES256, myData, signature);

 System.out.printf("Verification status: %s.%n", verifyResult.isValid());

Parameters:

algorithm - O algoritmo a ser usado para assinatura.
data - O conteúdo bruto em relação ao qual a assinatura deve ser verificada.
signature - A assinatura a ser verificada.

Returns:

verifyData

public VerifyResult verifyData(SignatureAlgorithm algorithm, byte[] data, byte[] signature, Context context)

Verifica uma assinatura em relação aos dados brutos usando a chave configurada. A operação de verificação dá suporte a chaves simétricas e chaves assimétricas. No caso de chaves assimétricas, a parte pública da chave é usada para verificar a assinatura. Essa operação requer a keys/verify permissão para operações não locais.

O SignatureAlgorithm indica o tipo de algoritmo a ser usado para verificar a assinatura. Os valores possíveis incluem: ES256, ES384, ES512, ES256K, PS256, RS384, RS512RS256, RS384, e RS512.

Exemplos de código

Verifica se a assinatura nos dados brutos imprime os detalhes da verificação quando uma resposta é recebida.

byte[] dataToVerify = new byte[100];
 new Random(0x1234567L).nextBytes(dataToVerify);

 // A signature can be obtained from the SignResult returned by the CryptographyClient.sign() operation.
 VerifyResult verificationResult = cryptographyClient.verify(SignatureAlgorithm.ES256, dataToVerify,
     mySignature, new Context("key1", "value1"));

 System.out.printf("Verification status: %s.%n", verificationResult.isValid());

Parameters:

algorithm - O algoritmo a ser usado para assinatura.
data - O conteúdo bruto em relação ao qual a assinatura deve ser verificada.
signature - A assinatura a ser verificada.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

wrapKey

public WrapResult wrapKey(KeyWrapAlgorithm algorithm, byte[] key)

Encapsula uma chave simétrica usando a chave configurada. A operação de encapsulamento dá suporte ao encapsulamento de uma chave simétrica com chaves simétricas e assimétricas. Essa operação requer a keys/wrapKey permissão para operações não locais.

O KeyWrapAlgorithm indica o tipo de algoritmo a ser usado para encapsular o conteúdo da chave especificado. Os valores possíveis incluem: RSA1_5e RSA_OAEPRSA_OAEP_256. Os valores possíveis para chaves simétricas incluem: A128KWe A192KWA256KW.

Exemplos de código

Encapsula o conteúdo da chave imprime os detalhes da chave encapsulada quando uma resposta é recebida.

byte[] key = new byte[100];
 new Random(0x1234567L).nextBytes(key);

 WrapResult wrapResult = cryptographyClient.wrapKey(KeyWrapAlgorithm.RSA_OAEP, key);

 System.out.printf("Received encrypted key of length: %d, with algorithm: %s.%n",
     wrapResult.getEncryptedKey().length, wrapResult.getAlgorithm());

Parameters:

algorithm - O algoritmo de criptografia a ser usado para encapsular a chave.
key - O conteúdo da chave a ser encapsulado.

Returns:

O WrapResult cujo getEncryptedKey() contém o resultado da chave encapsulada.

wrapKey

public WrapResult wrapKey(KeyWrapAlgorithm algorithm, byte[] key, Context context)

Encapsula uma chave simétrica usando a chave configurada. A operação de encapsulamento dá suporte ao encapsulamento de uma chave simétrica com chaves simétricas e assimétricas. Essa operação requer a keys/wrapKey permissão para operações não locais.

O KeyWrapAlgorithm indica o tipo de algoritmo a ser usado para encapsular o conteúdo da chave especificado. Os valores possíveis incluem: RSA1_5e RSA_OAEPRSA_OAEP_256. Os valores possíveis para chaves simétricas incluem: A128KWe A192KWA256KW.

Exemplos de código

Encapsula o conteúdo da chave imprime os detalhes da chave encapsulada quando uma resposta é recebida.

byte[] keyToWrap = new byte[100];
 new Random(0x1234567L).nextBytes(keyToWrap);

 WrapResult keyWrapResult = cryptographyClient.wrapKey(KeyWrapAlgorithm.RSA_OAEP, keyToWrap,
     new Context("key1", "value1"));

 System.out.printf("Received encrypted key of length: %d, with algorithm: %s.%n",
     keyWrapResult.getEncryptedKey().length, keyWrapResult.getAlgorithm());

Parameters:

algorithm - O algoritmo de criptografia a ser usado para encapsular a chave.
key - O conteúdo da chave a ser encapsulado.
context - Contexto adicional que é passado pelo HttpPipeline durante a chamada de serviço.

Returns:

O WrapResult cujo getEncryptedKey() contém o resultado da chave encapsulada.

Aplica-se a