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

◆ UncheckedTransformFinalBlock() [6/6]

unsafe override int Internal.Cryptography.UniversalCryptoDecryptor.UncheckedTransformFinalBlock ( ReadOnlySpan< byte > inputBuffer,
Span< byte > outputBuffer )
inlineprotected

Definition at line 59 of file UniversalCryptoDecryptor.cs.

60 {
61 if (inputBuffer.Length % base.PaddingSizeBytes != 0)
62 {
64 }
65 byte[] array = null;
66 int num = 0;
67 try
68 {
69 Span<byte> span;
71 if (_heldoverCipher == null)
72 {
73 num = inputBuffer.Length;
75 span = array.AsSpan(0, inputBuffer.Length);
76 input = inputBuffer;
77 }
78 else
79 {
80 num = _heldoverCipher.Length + inputBuffer.Length;
82 span = array.AsSpan(0, num);
83 _heldoverCipher.AsSpan().CopyTo(span);
84 inputBuffer.CopyTo(span.Slice(_heldoverCipher.Length));
85 input = span;
86 }
87 int num2 = 0;
88 fixed (byte* ptr = span)
89 {
90 Span<byte> span2 = span[..base.BasicSymmetricCipher.TransformFinal(input, span)];
91 if (span2.Length > 0)
92 {
93 num2 = GetPaddingLength(span2);
94 span2.Slice(0, num2).CopyTo(outputBuffer);
95 }
96 }
97 Reset();
98 return num2;
99 }
100 finally
101 {
102 if (array != null)
103 {
105 }
106 }
107 }
static string Cryptography_PartialBlock
Definition SR.cs:124
Definition SR.cs:7
static void Return(byte[] array, int clearSize=-1)
Definition CryptoPool.cs:12
static byte[] Rent(int minimumLength)
Definition CryptoPool.cs:7
void CopyTo(Span< T > destination)
Span< T > Slice(int start)
Definition Span.cs:271
int Length
Definition Span.cs:70

References Internal.Cryptography.UniversalCryptoDecryptor._heldoverCipher, System.array, System.ReadOnlySpan< T >.CopyTo(), System.SR.Cryptography_PartialBlock, Internal.Cryptography.UniversalCryptoDecryptor.GetPaddingLength(), System.input, System.ReadOnlySpan< T >.Length, System.Span< T >.Length, System.Security.Cryptography.CryptoPool.Rent(), Internal.Cryptography.UniversalCryptoDecryptor.Reset(), System.Security.Cryptography.CryptoPool.Return(), and System.Span< T >.Slice().