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

◆ Transform() [2/2]

override int Internal.Cryptography.BasicSymmetricCipherBCrypt.Transform ( ReadOnlySpan< byte > input,
Span< byte > output )
inline

Definition at line 48 of file BasicSymmetricCipherBCrypt.cs.

49 {
50 int num = 0;
51 if (input.Overlaps(output, out var elementOffset) && elementOffset != 0)
52 {
54 try
55 {
56 num = BCryptTransform(input, array);
57 array.AsSpan(0, num).CopyTo(output);
58 }
59 finally
60 {
62 }
63 }
64 else
65 {
66 num = BCryptTransform(input, output);
67 }
68 if (num != input.Length)
69 {
71 }
72 return num;
73 int BCryptTransform(ReadOnlySpan<byte> input, Span<byte> output)
74 {
75 if (!_encrypting)
76 {
77 return global::Interop.BCrypt.BCryptDecrypt(_hKey, input, _currentIv, output);
78 }
79 return global::Interop.BCrypt.BCryptEncrypt(_hKey, input, _currentIv, output);
80 }
81 }
static string Cryptography_UnexpectedTransformTruncation
Definition SR.cs:158
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
int Length
Definition Span.cs:70

References Internal.Cryptography.BasicSymmetricCipherBCrypt._currentIv, Internal.Cryptography.BasicSymmetricCipherBCrypt._encrypting, Internal.Cryptography.BasicSymmetricCipherBCrypt._hKey, System.array, System.SR.Cryptography_UnexpectedTransformTruncation, System.input, System.Span< T >.Length, System.Security.Cryptography.CryptoPool.Rent(), and System.Security.Cryptography.CryptoPool.Return().