Skip to content

Commit 2ac09d5

Browse files
committed
Add leak summary, Fix field modifiier.
1 parent 10c29e7 commit 2ac09d5

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

CryptoMemoryStream/IO/CryptoMemoryStream.cs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class CryptoMemoryStream : MemoryStream
1616
{
1717
private ICryptoTransform cryptor;
1818

19-
private AesCryptoServiceProvider aesManaged = new AesCryptoServiceProvider
19+
private readonly AesCryptoServiceProvider aesManaged = new AesCryptoServiceProvider
2020
{
2121
Padding = PaddingMode.None,
2222
Mode = CipherMode.ECB
@@ -26,7 +26,8 @@ public class CryptoMemoryStream : MemoryStream
2626
/// 지정된 바이트 배열을 기반으로 하는 CryptoMemoryStream 클래스의 크기 조정이 불가능한 새 인스턴스를 초기화합니다.
2727
/// </summary>
2828
/// <param name="buffer">현재 스트림을 만들 부호 없는 바이트의 배열입니다.</param>
29-
/// /// <param name="key">암호화 및 복호화에 사용되는 키 값입니다.</param>
29+
/// <param name="key">암호화 및 복호화에 사용되는 키 값입니다.</param>
30+
/// <param name="initializeVector">암호화 및 복호화에 사용될 초기화 벡터입니다.</param>
3031
public CryptoMemoryStream(byte[] buffer, byte[] key, byte[] initializeVector) : base(buffer)
3132
{
3233
InitializeCryptor(key, initializeVector);
@@ -37,6 +38,7 @@ public CryptoMemoryStream(byte[] buffer, byte[] key, byte[] initializeVector) :
3738
/// </summary>
3839
/// <param name="size">내부 배열의 초기 크기(바이트)입니다.</param>
3940
/// <param name="key">암호화 및 복호화에 사용되는 키 값입니다.</param>
41+
/// <param name="initializeVector">암호화 및 복호화에 사용될 초기화 벡터입니다.</param>
4042
public CryptoMemoryStream(int size, byte[] key, byte[] initializeVector) : base(size)
4143
{
4244
InitializeCryptor(key, initializeVector);
@@ -46,6 +48,7 @@ public CryptoMemoryStream(int size, byte[] key, byte[] initializeVector) : base(
4648
/// 0으로 초기화된 확장명 가능한 용량을 사용하여 CryptoMemoryStream 클래스의 새 인스턴스를 초기화합니다.
4749
/// </summary>
4850
/// <param name="key">암호화 및 복호화에 사용되는 키 값입니다.</param>
51+
/// <param name="initializeVector">암호화 및 복호화에 사용될 초기화 벡터입니다.</param>
4952
public CryptoMemoryStream(byte[] key, byte[] initializeVector) : base()
5053
{
5154
InitializeCryptor(key, initializeVector);
@@ -137,8 +140,6 @@ public override void Close()
137140
base.Close();
138141
}
139142

140-
141-
142143
private void CTRCryptor(byte[] buffer, int count)
143144
{
144145
Queue<byte> xorMask = new Queue<byte>();
@@ -166,13 +167,21 @@ private void CTRCryptor(byte[] buffer, int count)
166167
}
167168
}
168169

170+
/// <summary>
171+
/// CryptoMemoryStream 에 사용되는 관리되지 않는 리소스를 제거하고, 필요에 따라 관리되는 리소스를 해제합니다.
172+
/// </summary>
173+
/// <param name="disposing"></param>
169174
protected override void Dispose(bool disposing)
170175
{
171176
base.Dispose(disposing);
172177
aesManaged.Dispose();
173178
cryptor.Dispose();
174179
}
175180

181+
/// <summary>
182+
/// 현재 위치에서 현재 스트림에 바이트를 암호화 하여 씁니다.
183+
/// </summary>
184+
/// <param name="value"></param>
176185
public override void WriteByte(byte value)
177186
{
178187
Write(new byte[] { value }, 0, 1);

0 commit comments

Comments
 (0)