diff --git a/crypto/src/asn1/DerGeneralizedTime.cs b/crypto/src/asn1/DerGeneralizedTime.cs
index 6700b9016..152596678 100644
--- a/crypto/src/asn1/DerGeneralizedTime.cs
+++ b/crypto/src/asn1/DerGeneralizedTime.cs
@@ -267,7 +267,7 @@ namespace Org.BouncyCastle.Asn1
{
try
{
- style = (DateTimeStyles)Enum.Parse(typeof(DateTimeStyles), "AssumeUniversal");
+ style = (DateTimeStyles)Enums.GetEnumValue(typeof(DateTimeStyles), "AssumeUniversal");
}
catch (Exception)
{
diff --git a/crypto/src/asn1/cmp/CertResponse.cs b/crypto/src/asn1/cmp/CertResponse.cs
index 246b8ce70..80813b8b7 100644
--- a/crypto/src/asn1/cmp/CertResponse.cs
+++ b/crypto/src/asn1/cmp/CertResponse.cs
@@ -107,8 +107,7 @@ namespace Org.BouncyCastle.Asn1.Cmp
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector v = new Asn1EncodableVector(certReqId, status);
- v.AddOptional(certifiedKeyPair);
- v.AddOptional(rspInfo);
+ v.AddOptional(certifiedKeyPair, rspInfo);
return new DerSequence(v);
}
}
diff --git a/crypto/src/asn1/cmp/ErrorMsgContent.cs b/crypto/src/asn1/cmp/ErrorMsgContent.cs
index f4dc584ea..2d6353b65 100644
--- a/crypto/src/asn1/cmp/ErrorMsgContent.cs
+++ b/crypto/src/asn1/cmp/ErrorMsgContent.cs
@@ -86,8 +86,7 @@ namespace Org.BouncyCastle.Asn1.Cmp
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector v = new Asn1EncodableVector(pkiStatusInfo);
- v.AddOptional(errorCode);
- v.AddOptional(errorDetails);
+ v.AddOptional(errorCode, errorDetails);
return new DerSequence(v);
}
}
diff --git a/crypto/src/asn1/crmf/CertReqMsg.cs b/crypto/src/asn1/crmf/CertReqMsg.cs
index 2ca319a57..20fd4179a 100644
--- a/crypto/src/asn1/crmf/CertReqMsg.cs
+++ b/crypto/src/asn1/crmf/CertReqMsg.cs
@@ -98,8 +98,7 @@ namespace Org.BouncyCastle.Asn1.Crmf
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector v = new Asn1EncodableVector(certReq);
- v.AddOptional(popo);
- v.AddOptional(regInfo);
+ v.AddOptional(popo, regInfo);
return new DerSequence(v);
}
}
diff --git a/crypto/src/asn1/util/FilterStream.cs b/crypto/src/asn1/util/FilterStream.cs
index 79aa883d0..0c38c5b6e 100644
--- a/crypto/src/asn1/util/FilterStream.cs
+++ b/crypto/src/asn1/util/FilterStream.cs
@@ -47,6 +47,7 @@ namespace Org.BouncyCastle.Asn1.Utilities
public override void Close()
{
Platform.Dispose(s);
+ base.Close();
}
#endif
public override void Flush()
diff --git a/crypto/src/asn1/x509/AlgorithmIdentifier.cs b/crypto/src/asn1/x509/AlgorithmIdentifier.cs
index c6f4af5bf..00e7ad8bc 100644
--- a/crypto/src/asn1/x509/AlgorithmIdentifier.cs
+++ b/crypto/src/asn1/x509/AlgorithmIdentifier.cs
@@ -5,9 +5,8 @@ namespace Org.BouncyCastle.Asn1.X509
public class AlgorithmIdentifier
: Asn1Encodable
{
- private readonly DerObjectIdentifier objectID;
+ private readonly DerObjectIdentifier algorithm;
private readonly Asn1Encodable parameters;
- private readonly bool parametersDefined;
public static AlgorithmIdentifier GetInstance(
Asn1TaggedObject obj,
@@ -19,39 +18,32 @@ namespace Org.BouncyCastle.Asn1.X509
public static AlgorithmIdentifier GetInstance(
object obj)
{
- if (obj == null || obj is AlgorithmIdentifier)
- return (AlgorithmIdentifier) obj;
-
- // TODO: delete
- if (obj is DerObjectIdentifier)
- return new AlgorithmIdentifier((DerObjectIdentifier) obj);
-
- // TODO: delete
- if (obj is string)
- return new AlgorithmIdentifier((string) obj);
-
+ if (obj == null)
+ return null;
+ if (obj is AlgorithmIdentifier)
+ return (AlgorithmIdentifier)obj;
return new AlgorithmIdentifier(Asn1Sequence.GetInstance(obj));
}
public AlgorithmIdentifier(
- DerObjectIdentifier objectID)
+ DerObjectIdentifier algorithm)
{
- this.objectID = objectID;
+ this.algorithm = algorithm;
}
+ [Obsolete("Use version taking a DerObjectIdentifier")]
public AlgorithmIdentifier(
- string objectID)
+ string algorithm)
{
- this.objectID = new DerObjectIdentifier(objectID);
+ this.algorithm = new DerObjectIdentifier(algorithm);
}
public AlgorithmIdentifier(
- DerObjectIdentifier objectID,
+ DerObjectIdentifier algorithm,
Asn1Encodable parameters)
{
- this.objectID = objectID;
+ this.algorithm = algorithm;
this.parameters = parameters;
- this.parametersDefined = true;
}
internal AlgorithmIdentifier(
@@ -60,13 +52,8 @@ namespace Org.BouncyCastle.Asn1.X509
if (seq.Count < 1 || seq.Count > 2)
throw new ArgumentException("Bad sequence size: " + seq.Count);
- this.objectID = DerObjectIdentifier.GetInstance(seq[0]);
- this.parametersDefined = (seq.Count == 2);
-
- if (parametersDefined)
- {
- this.parameters = seq[1];
- }
+ this.algorithm = DerObjectIdentifier.GetInstance(seq[0]);
+ this.parameters = seq.Count < 2 ? null : seq[1];
}
/// <summary>
@@ -74,18 +61,19 @@ namespace Org.BouncyCastle.Asn1.X509
/// </summary>
public virtual DerObjectIdentifier Algorithm
{
- get { return objectID; }
+ get { return algorithm; }
}
+ [Obsolete("Use 'Algorithm' property instead")]
public virtual DerObjectIdentifier ObjectID
{
- get { return objectID; }
+ get { return algorithm; }
}
/// <summary>
/// Return the parameters structure in the Parameters entry of this identifier.
/// </summary>
- public Asn1Encodable Parameters
+ public virtual Asn1Encodable Parameters
{
get { return parameters; }
}
@@ -100,20 +88,8 @@ namespace Org.BouncyCastle.Asn1.X509
*/
public override Asn1Object ToAsn1Object()
{
- Asn1EncodableVector v = new Asn1EncodableVector(objectID);
-
- if (parametersDefined)
- {
- if (parameters != null)
- {
- v.Add(parameters);
- }
- else
- {
- v.Add(DerNull.Instance);
- }
- }
-
+ Asn1EncodableVector v = new Asn1EncodableVector(algorithm);
+ v.AddOptional(parameters);
return new DerSequence(v);
}
}
diff --git a/crypto/src/cms/CMSAuthenticatedDataStreamGenerator.cs b/crypto/src/cms/CMSAuthenticatedDataStreamGenerator.cs
index f2dc340df..a135cdd11 100644
--- a/crypto/src/cms/CMSAuthenticatedDataStreamGenerator.cs
+++ b/crypto/src/cms/CMSAuthenticatedDataStreamGenerator.cs
@@ -289,6 +289,7 @@ namespace Org.BouncyCastle.Cms
authGen.Close();
cGen.Close();
+ base.Close();
}
#endif
}
diff --git a/crypto/src/crypto/io/CipherStream.cs b/crypto/src/crypto/io/CipherStream.cs
index 4128b70f2..bfce386a7 100644
--- a/crypto/src/crypto/io/CipherStream.cs
+++ b/crypto/src/crypto/io/CipherStream.cs
@@ -227,6 +227,7 @@ namespace Org.BouncyCastle.Crypto.IO
stream.Flush();
}
Platform.Dispose(stream);
+ base.Close();
}
#endif
diff --git a/crypto/src/crypto/io/DigestStream.cs b/crypto/src/crypto/io/DigestStream.cs
index eadd7f684..dce875792 100644
--- a/crypto/src/crypto/io/DigestStream.cs
+++ b/crypto/src/crypto/io/DigestStream.cs
@@ -125,6 +125,7 @@ namespace Org.BouncyCastle.Crypto.IO
public override void Close()
{
Platform.Dispose(stream);
+ base.Close();
}
#endif
diff --git a/crypto/src/crypto/io/MacStream.cs b/crypto/src/crypto/io/MacStream.cs
index 6d306f9c5..d9b8323b5 100644
--- a/crypto/src/crypto/io/MacStream.cs
+++ b/crypto/src/crypto/io/MacStream.cs
@@ -124,6 +124,7 @@ namespace Org.BouncyCastle.Crypto.IO
public override void Close()
{
Platform.Dispose(stream);
+ base.Close();
}
#endif
diff --git a/crypto/src/crypto/io/SignerStream.cs b/crypto/src/crypto/io/SignerStream.cs
index 7a7d8ea82..1e37c8d34 100644
--- a/crypto/src/crypto/io/SignerStream.cs
+++ b/crypto/src/crypto/io/SignerStream.cs
@@ -125,10 +125,11 @@ namespace Org.BouncyCastle.Crypto.IO
public override void Close()
{
Platform.Dispose(stream);
+ base.Close();
}
#endif
- public override void Flush()
+ public override void Flush()
{
stream.Flush();
}
diff --git a/crypto/src/crypto/operators/Asn1Signature.cs b/crypto/src/crypto/operators/Asn1Signature.cs
index 968ee0fad..3a20e4bff 100644
--- a/crypto/src/crypto/operators/Asn1Signature.cs
+++ b/crypto/src/crypto/operators/Asn1Signature.cs
@@ -303,21 +303,7 @@ namespace Org.BouncyCastle.Crypto.Operators
set { throw new NotImplementedException (); }
}
-#if PORTABLE
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- return;
-
- base.Dispose(disposing);
- }
-#else
- public override void Close()
- {
- }
-#endif
-
- public override void Flush()
+ public override void Flush()
{
}
diff --git a/crypto/src/crypto/tls/ByteQueueStream.cs b/crypto/src/crypto/tls/ByteQueueStream.cs
index 1fc8a5d29..249e6099b 100644
--- a/crypto/src/crypto/tls/ByteQueueStream.cs
+++ b/crypto/src/crypto/tls/ByteQueueStream.cs
@@ -33,20 +33,6 @@ namespace Org.BouncyCastle.Crypto.Tls
get { return true; }
}
-#if PORTABLE
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- return;
-
- base.Dispose(disposing);
- }
-#else
- public override void Close()
- {
- }
-#endif
-
public override void Flush()
{
}
diff --git a/crypto/src/crypto/tls/TlsStream.cs b/crypto/src/crypto/tls/TlsStream.cs
index e11091c85..bfd80edf2 100644
--- a/crypto/src/crypto/tls/TlsStream.cs
+++ b/crypto/src/crypto/tls/TlsStream.cs
@@ -41,6 +41,7 @@ namespace Org.BouncyCastle.Crypto.Tls
public override void Close()
{
handler.Close();
+ base.Close();
}
#endif
diff --git a/crypto/src/openpgp/PgpCompressedDataGenerator.cs b/crypto/src/openpgp/PgpCompressedDataGenerator.cs
index 2d20601f0..51b645279 100644
--- a/crypto/src/openpgp/PgpCompressedDataGenerator.cs
+++ b/crypto/src/openpgp/PgpCompressedDataGenerator.cs
@@ -179,6 +179,7 @@ namespace Org.BouncyCastle.Bcpg.OpenPgp
if (disposing)
{
Finish();
+ return;
}
base.Dispose(disposing);
}
@@ -204,6 +205,7 @@ namespace Org.BouncyCastle.Bcpg.OpenPgp
{
Finish();
End();
+ return;
}
base.Dispose(disposing);
}
diff --git a/crypto/src/util/io/BaseInputStream.cs b/crypto/src/util/io/BaseInputStream.cs
index 0a6e19307..a5613d801 100644
--- a/crypto/src/util/io/BaseInputStream.cs
+++ b/crypto/src/util/io/BaseInputStream.cs
@@ -25,6 +25,7 @@ namespace Org.BouncyCastle.Utilities.IO
public override void Close()
{
closed = true;
+ base.Close();
}
#endif
diff --git a/crypto/src/util/io/BaseOutputStream.cs b/crypto/src/util/io/BaseOutputStream.cs
index 0b6daa6a5..a0608d111 100644
--- a/crypto/src/util/io/BaseOutputStream.cs
+++ b/crypto/src/util/io/BaseOutputStream.cs
@@ -25,6 +25,7 @@ namespace Org.BouncyCastle.Utilities.IO
public override void Close()
{
closed = true;
+ base.Close();
}
#endif
diff --git a/crypto/src/util/io/FilterStream.cs b/crypto/src/util/io/FilterStream.cs
index fe359de90..a92dee3e5 100644
--- a/crypto/src/util/io/FilterStream.cs
+++ b/crypto/src/util/io/FilterStream.cs
@@ -42,6 +42,7 @@ namespace Org.BouncyCastle.Utilities.IO
public override void Close()
{
Platform.Dispose(s);
+ base.Close();
}
#endif
public override void Flush()
diff --git a/crypto/src/util/io/TeeInputStream.cs b/crypto/src/util/io/TeeInputStream.cs
index e5fc10157..6996f3fbb 100644
--- a/crypto/src/util/io/TeeInputStream.cs
+++ b/crypto/src/util/io/TeeInputStream.cs
@@ -33,6 +33,7 @@ namespace Org.BouncyCastle.Utilities.IO
{
Platform.Dispose(input);
Platform.Dispose(tee);
+ base.Close();
}
#endif
diff --git a/crypto/src/util/io/TeeOutputStream.cs b/crypto/src/util/io/TeeOutputStream.cs
index 82407d9fa..a6c7fd5b5 100644
--- a/crypto/src/util/io/TeeOutputStream.cs
+++ b/crypto/src/util/io/TeeOutputStream.cs
@@ -33,6 +33,7 @@ namespace Org.BouncyCastle.Utilities.IO
{
Platform.Dispose(output);
Platform.Dispose(tee);
+ base.Close();
}
#endif
diff --git a/crypto/src/util/zlib/ZDeflaterOutputStream.cs b/crypto/src/util/zlib/ZDeflaterOutputStream.cs
index 99a4ebfbe..d0f0bcb8d 100644
--- a/crypto/src/util/zlib/ZDeflaterOutputStream.cs
+++ b/crypto/src/util/zlib/ZDeflaterOutputStream.cs
@@ -164,6 +164,7 @@ namespace Org.BouncyCastle.Utilities.Zlib {
Platform.Dispose(outp);
outp=null;
}
+ base.Close();
}
#endif
}
diff --git a/crypto/src/util/zlib/ZInflaterInputStream.cs b/crypto/src/util/zlib/ZInflaterInputStream.cs
index 0f0999e86..ef742bb00 100644
--- a/crypto/src/util/zlib/ZInflaterInputStream.cs
+++ b/crypto/src/util/zlib/ZInflaterInputStream.cs
@@ -127,6 +127,7 @@ namespace Org.BouncyCastle.Utilities.Zlib {
public override void Close()
{
Platform.Dispose(inp);
+ base.Close();
}
#endif
diff --git a/crypto/src/util/zlib/ZInputStream.cs b/crypto/src/util/zlib/ZInputStream.cs
index ee19af587..4b7351555 100644
--- a/crypto/src/util/zlib/ZInputStream.cs
+++ b/crypto/src/util/zlib/ZInputStream.cs
@@ -98,22 +98,23 @@ namespace Org.BouncyCastle.Utilities.Zlib
{
if (disposing)
{
- if (!closed)
- {
- closed = true;
- Platform.Dispose(input);
- }
+ if (closed)
+ return;
+
+ closed = true;
+ Platform.Dispose(input);
}
base.Dispose(disposing);
}
#else
public override void Close()
{
- if (!closed)
- {
- closed = true;
- Platform.Dispose(input);
- }
+ if (closed)
+ return;
+
+ closed = true;
+ Platform.Dispose(input);
+ base.Close();
}
#endif
diff --git a/crypto/src/util/zlib/ZOutputStream.cs b/crypto/src/util/zlib/ZOutputStream.cs
index ede557135..d9f005f69 100644
--- a/crypto/src/util/zlib/ZOutputStream.cs
+++ b/crypto/src/util/zlib/ZOutputStream.cs
@@ -100,7 +100,7 @@ namespace Org.BouncyCastle.Utilities.Zlib
{
if (disposing)
{
- if (this.closed)
+ if (closed)
return;
DoClose();
@@ -110,10 +110,11 @@ namespace Org.BouncyCastle.Utilities.Zlib
#else
public override void Close()
{
- if (this.closed)
+ if (closed)
return;
DoClose();
+ base.Close();
}
#endif
diff --git a/crypto/src/x509/X509V3CertificateGenerator.cs b/crypto/src/x509/X509V3CertificateGenerator.cs
index 51488bd2a..bc619c37b 100644
--- a/crypto/src/x509/X509V3CertificateGenerator.cs
+++ b/crypto/src/x509/X509V3CertificateGenerator.cs
@@ -1,15 +1,14 @@
using System;
using System.Collections;
-using System.IO;
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Operators;
-using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.Security.Certificates;
+using Org.BouncyCastle.Utilities;
using Org.BouncyCastle.X509.Extension;
namespace Org.BouncyCastle.X509
@@ -318,11 +317,11 @@ namespace Org.BouncyCastle.X509
byte[] encoded = tbsCert.GetDerEncoded();
- streamCalculator.Stream.Write (encoded, 0, encoded.Length);
+ streamCalculator.Stream.Write(encoded, 0, encoded.Length);
- streamCalculator.Stream.Close ();
+ Platform.Dispose(streamCalculator.Stream);
- return GenerateJcaObject(tbsCert, (AlgorithmIdentifier)signatureCalculatorFactory.AlgorithmDetails, ((IBlockResult)streamCalculator.GetResult()).Collect());
+ return GenerateJcaObject(tbsCert, (AlgorithmIdentifier)signatureCalculatorFactory.AlgorithmDetails, ((IBlockResult)streamCalculator.GetResult()).Collect());
}
private X509Certificate GenerateJcaObject(
|