Fix missing Dispose(s) of BcpgOutputStream
3 files changed, 33 insertions, 34 deletions
diff --git a/crypto/src/bcpg/ContainedPacket.cs b/crypto/src/bcpg/ContainedPacket.cs
index e8f387ca4..ca39fd985 100644
--- a/crypto/src/bcpg/ContainedPacket.cs
+++ b/crypto/src/bcpg/ContainedPacket.cs
@@ -10,11 +10,11 @@ namespace Org.BouncyCastle.Bcpg
public byte[] GetEncoded()
{
MemoryStream bOut = new MemoryStream();
- BcpgOutputStream pOut = new BcpgOutputStream(bOut);
-
- pOut.WritePacket(this);
-
- return bOut.ToArray();
+ using (var pOut = new BcpgOutputStream(bOut))
+ {
+ pOut.WritePacket(this);
+ }
+ return bOut.ToArray();
}
public abstract void Encode(BcpgOutputStream bcpgOut);
diff --git a/crypto/src/bcpg/PublicKeyPacket.cs b/crypto/src/bcpg/PublicKeyPacket.cs
index 89177ce84..639d5595c 100644
--- a/crypto/src/bcpg/PublicKeyPacket.cs
+++ b/crypto/src/bcpg/PublicKeyPacket.cs
@@ -98,20 +98,19 @@ namespace Org.BouncyCastle.Bcpg
public virtual byte[] GetEncodedContents()
{
MemoryStream bOut = new MemoryStream();
- BcpgOutputStream pOut = new BcpgOutputStream(bOut);
-
- pOut.WriteByte((byte) version);
- pOut.WriteInt((int) time);
-
- if (version <= 3)
+ using (var pOut = new BcpgOutputStream(bOut))
{
- pOut.WriteShort((short) validDays);
- }
-
- pOut.WriteByte((byte) algorithm);
+ pOut.WriteByte((byte)version);
+ pOut.WriteInt((int)time);
- pOut.WriteObject((BcpgObject)key);
+ if (version <= 3)
+ {
+ pOut.WriteShort((short)validDays);
+ }
+ pOut.WriteByte((byte)algorithm);
+ pOut.WriteObject((BcpgObject)key);
+ }
return bOut.ToArray();
}
diff --git a/crypto/src/bcpg/SecretKeyPacket.cs b/crypto/src/bcpg/SecretKeyPacket.cs
index 1bc684a69..9b9ae93a4 100644
--- a/crypto/src/bcpg/SecretKeyPacket.cs
+++ b/crypto/src/bcpg/SecretKeyPacket.cs
@@ -1,5 +1,6 @@
using System;
using System.IO;
+using System.Linq;
using Org.BouncyCastle.Utilities;
@@ -136,28 +137,27 @@ namespace Org.BouncyCastle.Bcpg
public byte[] GetEncodedContents()
{
MemoryStream bOut = new MemoryStream();
- BcpgOutputStream pOut = new BcpgOutputStream(bOut);
-
- pOut.Write(pubKeyPacket.GetEncodedContents());
-
- pOut.WriteByte((byte) s2kUsage);
-
- if (s2kUsage == UsageChecksum || s2kUsage == UsageSha1)
+ using (var pOut = new BcpgOutputStream(bOut))
{
- pOut.WriteByte((byte) encAlgorithm);
- pOut.WriteObject(s2k);
- }
+ pOut.Write(pubKeyPacket.GetEncodedContents());
+ pOut.WriteByte((byte)s2kUsage);
- if (iv != null)
- {
- pOut.Write(iv);
- }
+ if (s2kUsage == UsageChecksum || s2kUsage == UsageSha1)
+ {
+ pOut.WriteByte((byte)encAlgorithm);
+ pOut.WriteObject(s2k);
+ }
- if (secKeyData != null && secKeyData.Length > 0)
- {
- pOut.Write(secKeyData);
- }
+ if (iv != null)
+ {
+ pOut.Write(iv);
+ }
+ if (secKeyData != null && secKeyData.Length > 0)
+ {
+ pOut.Write(secKeyData);
+ }
+ }
return bOut.ToArray();
}
|