CryptographicEngine.DecryptAndAuthenticate Metodo

Definizione

Decrittografa e autentica i dati. Per altre informazioni e un esempio di codice completo, vedere EncryptedAndAuthenticatedData.

public:
 static IBuffer ^ DecryptAndAuthenticate(CryptographicKey ^ key, IBuffer ^ data, IBuffer ^ nonce, IBuffer ^ authenticationTag, IBuffer ^ authenticatedData);
 static IBuffer DecryptAndAuthenticate(CryptographicKey const& key, IBuffer const& data, IBuffer const& nonce, IBuffer const& authenticationTag, IBuffer const& authenticatedData);
public static IBuffer DecryptAndAuthenticate(CryptographicKey key, IBuffer data, IBuffer nonce, IBuffer authenticationTag, IBuffer authenticatedData);
function decryptAndAuthenticate(key, data, nonce, authenticationTag, authenticatedData)
Public Shared Function DecryptAndAuthenticate (key As CryptographicKey, data As IBuffer, nonce As IBuffer, authenticationTag As IBuffer, authenticatedData As IBuffer) As IBuffer

Parametri

key
CryptographicKey

Chiave simmetrica da usare.

data
IBuffer

Dati da decrittografare e autenticare.

nonce
IBuffer

Nonce da utilizzare. Deve essere lo stesso nonce usato dal metodo EncryptAndAuthenticate .

authenticationTag
IBuffer

Tag di autenticazione.

authenticatedData
IBuffer

Dati autenticati. Può essere Null.

Restituisce

Buffer contenente i dati decrittografati. Se il metodo ha esito negativo, l'autenticazione ha esito negativo; se il metodo ha esito positivo, anche l'autenticazione è riuscita.

Esempio

public void AuthenticatedDecryption(
    String strAlgName,
    CryptographicKey key,
    EncryptedAndAuthenticatedData objEncrypted,
    BinaryStringEncoding encoding,
    IBuffer buffNonce)
{
    // Declare a buffer to contain the decrypted data.
    IBuffer buffDecrypted;

    // Open a SymmetricKeyAlgorithmProvider object for the specified algorithm.
    SymmetricKeyAlgorithmProvider objAlgProv = SymmetricKeyAlgorithmProvider.OpenAlgorithm(strAlgName);

    // The input key must be securely shared between the sender of the encrypted message
    // and the recipient. The nonce must also be shared but does not need to be shared
    // in a secure manner. If the sender encodes the message string to a buffer, the
    // binary encoding method must also be shared with the recipient.
    // The recipient uses the DecryptAndAuthenticate() method as follows to decrypt the 
    // message, authenticate it, and verify that it has not been altered in transit.
    buffDecrypted = CryptographicEngine.DecryptAndAuthenticate(
        key,
        objEncrypted.EncryptedData,
        buffNonce,
        objEncrypted.AuthenticationTag,
        null);

    // Convert the decrypted buffer to a string (for display). If the sender created the
    // original message buffer from a string, the sender must tell the recipient what 
    // BinaryStringEncoding value was used. Here, BinaryStringEncoding.Utf8 is used to
    // convert the message to a buffer before encryption and to convert the decrypted
    // buffer back to the original plaintext.
    String strDecrypted = CryptographicBuffer.ConvertBinaryToString(encoding, buffDecrypted);

}

Commenti

La crittografia autenticata crittografa e autentica il contenuto in un'unica operazione. Un autenticatore, detto anche tag, viene usato durante la crittografia e l'output del processo contiene una coppia di testo crittografato tag. Per altre informazioni, vedere le proprietà AuthenticationTag e EncryptedData . Il processo di decrittografia verifica il testo crittografato sul tag.

È possibile usare un algoritmo di crittografia autenticato dopo aver chiamato il metodo OpenAlgorithm nella classe SymmetricKeyAlgorithmProvider e specificando il nome dell'algoritmo da aprire. I nomi degli algoritmi seguenti sono supportati per la crittografia autenticata e la decrittografia:

Si applica a

Vedi anche