Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DecryptCbc() [2/3]

byte[] System.Security.Cryptography.SymmetricAlgorithm.DecryptCbc ( ReadOnlySpan< byte > ciphertext,
ReadOnlySpan< byte > iv,
PaddingMode paddingMode = PaddingMode::PKCS7 )
inlineinherited

Definition at line 432 of file SymmetricAlgorithm.cs.

433 {
434 CheckPaddingMode(paddingMode);
436 byte[] array = ArrayPool<byte>.Shared.Rent(ciphertext.Length);
437 Span<byte> destination = array.AsSpan(0, ciphertext.Length);
438 if (!TryDecryptCbcCore(ciphertext, iv, destination, paddingMode, out var bytesWritten) || (uint)bytesWritten > destination.Length)
439 {
440 throw new CryptographicException(System.SR.Argument_DestinationTooShort);
441 }
442 byte[] result = destination.Slice(0, bytesWritten).ToArray();
443 CryptographicOperations.ZeroMemory(destination.Slice(0, bytesWritten));
445 return result;
446 }
static ArrayPool< T > Shared
Definition ArrayPool.cs:7
static string Argument_DestinationTooShort
Definition SR.cs:14
Definition SR.cs:7
static void CheckPaddingMode(PaddingMode paddingMode)
void CheckInitializationVectorSize(ReadOnlySpan< byte > iv)
virtual bool TryDecryptCbcCore(ReadOnlySpan< byte > ciphertext, ReadOnlySpan< byte > iv, Span< byte > destination, PaddingMode paddingMode, out int bytesWritten)

References System.SR.Argument_DestinationTooShort, System.array, System.Security.Cryptography.SymmetricAlgorithm.CheckInitializationVectorSize(), System.Security.Cryptography.SymmetricAlgorithm.CheckPaddingMode(), System.destination, System.ReadOnlySpan< T >.Length, System.Buffers.ArrayPool< T >.Shared, System.Security.Cryptography.SymmetricAlgorithm.TryDecryptCbcCore(), and System.Security.Cryptography.CryptographicOperations.ZeroMemory().