Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros
BasicSymmetricCipher.cs
Go to the documentation of this file.
1using System;
2
4
5internal abstract class BasicSymmetricCipher : IDisposable
6{
7 public int BlockSizeInBytes { get; private set; }
8
9 public int PaddingSizeInBytes { get; private set; }
10
11 protected byte[] IV { get; private set; }
12
13 protected BasicSymmetricCipher(byte[] iv, int blockSizeInBytes, int paddingSizeInBytes)
14 {
15 IV = iv;
16 BlockSizeInBytes = blockSizeInBytes;
17 PaddingSizeInBytes = ((paddingSizeInBytes > 0) ? paddingSizeInBytes : blockSizeInBytes);
18 }
19
20 public abstract int Transform(ReadOnlySpan<byte> input, Span<byte> output);
21
22 public abstract int TransformFinal(ReadOnlySpan<byte> input, Span<byte> output);
23
24 public void Dispose()
25 {
26 Dispose(disposing: true);
27 GC.SuppressFinalize(this);
28 }
29
30 protected virtual void Dispose(bool disposing)
31 {
32 if (disposing && IV != null)
33 {
34 Array.Clear(IV);
35 IV = null;
36 }
37 }
38}
BasicSymmetricCipher(byte[] iv, int blockSizeInBytes, int paddingSizeInBytes)
int TransformFinal(ReadOnlySpan< byte > input, Span< byte > output)
int Transform(ReadOnlySpan< byte > input, Span< byte > output)
static unsafe void Clear(Array array)
Definition Array.cs:755
static void SuppressFinalize(object obj)
Definition GC.cs:202
Definition GC.cs:8