summary refs log tree commit diff
path: root/crypto
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2013-11-10 16:55:34 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2013-11-10 16:55:34 +0700
commit867bd8fe661c466e0a38678e4612c08fa4e032e0 (patch)
treed50b3c0024f9e4cda429957e3263890e39e518ec /crypto
parentPort from Java of improvements to DerBoolean and DerEnumerated (diff)
downloadBouncyCastle.NET-ed25519-867bd8fe661c466e0a38678e4612c08fa4e032e0.tar.xz
Don't require there to be any digests, to allow in particular for a certs-only SignedData
Diffstat (limited to 'crypto')
-rw-r--r--crypto/src/cms/CMSSignedDataParser.cs5
-rw-r--r--crypto/test/src/cms/test/SignedDataStreamTest.cs20
2 files changed, 20 insertions, 5 deletions
diff --git a/crypto/src/cms/CMSSignedDataParser.cs b/crypto/src/cms/CMSSignedDataParser.cs
index 35a125196..e5674a4cf 100644
--- a/crypto/src/cms/CMSSignedDataParser.cs
+++ b/crypto/src/cms/CMSSignedDataParser.cs
@@ -170,11 +170,6 @@ namespace Org.BouncyCastle.Cms
 			{
 				throw new CmsException("io exception: " + e.Message, e);
 			}
-
-			if (_digests.Count < 1)
-			{
-				throw new CmsException("no digests could be created for message.");
-			}
 		}
 
 		/**
diff --git a/crypto/test/src/cms/test/SignedDataStreamTest.cs b/crypto/test/src/cms/test/SignedDataStreamTest.cs
index 29b0db8f4..96f3f125d 100644
--- a/crypto/test/src/cms/test/SignedDataStreamTest.cs
+++ b/crypto/test/src/cms/test/SignedDataStreamTest.cs
@@ -1211,5 +1211,25 @@ namespace Org.BouncyCastle.Cms.Tests
 			Assert.AreEqual(SignCert, a[0]);
 			Assert.AreEqual(OrigCert, a[1]);
 		}
+
+        [Test]
+        public void TestCertsOnly()
+        {
+            IList certList = new ArrayList();
+            certList.Add(OrigCert);
+            certList.Add(SignCert);
+
+            IX509Store x509Certs = X509StoreFactory.Create(
+                "Certificate/Collection",
+                new X509CollectionStoreParameters(certList));
+
+            MemoryStream bOut = new MemoryStream();
+
+            CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+            gen.AddCertificates(x509Certs);
+            gen.Open(bOut).Close();
+
+            CheckSigParseable(bOut.ToArray());
+        }
 	}
 }