From 867bd8fe661c466e0a38678e4612c08fa4e032e0 Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Sun, 10 Nov 2013 16:55:34 +0700 Subject: Don't require there to be any digests, to allow in particular for a certs-only SignedData --- crypto/src/cms/CMSSignedDataParser.cs | 5 ----- crypto/test/src/cms/test/SignedDataStreamTest.cs | 20 ++++++++++++++++++++ 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()); + } } } -- cgit 1.4.1