diff options
Diffstat (limited to 'crypto/src/cms/CMSUtils.cs')
-rw-r--r-- | crypto/src/cms/CMSUtils.cs | 55 |
1 files changed, 39 insertions, 16 deletions
diff --git a/crypto/src/cms/CMSUtils.cs b/crypto/src/cms/CMSUtils.cs index 1e3a5734f..5124dce94 100644 --- a/crypto/src/cms/CMSUtils.cs +++ b/crypto/src/cms/CMSUtils.cs @@ -71,15 +71,9 @@ namespace Org.BouncyCastle.Cms } } - internal static byte[] StreamToByteArray(Stream inStream) - { - return Streams.ReadAll(inStream); - } + internal static byte[] StreamToByteArray(Stream inStream) => Streams.ReadAll(inStream); - internal static byte[] StreamToByteArray(Stream inStream, int limit) - { - return Streams.ReadAllLimited(inStream, limit); - } + internal static byte[] StreamToByteArray(Stream inStream, int limit) => Streams.ReadAllLimited(inStream, limit); internal static List<Asn1TaggedObject> GetAttributeCertificatesFromStore( IStore<X509V2AttributeCertificate> attrCertStore) @@ -155,34 +149,63 @@ namespace Org.BouncyCastle.Cms return result; } + // TODO Clean up this method (which is not present in bc-java) + internal static void AddDigestAlgs(Asn1EncodableVector digestAlgs, SignerInformation signer, + DefaultDigestAlgorithmIdentifierFinder dgstAlgFinder) + { + var helper = CmsSignedHelper.Instance; + digestAlgs.Add(helper.FixDigestAlgID(signer.DigestAlgorithmID, dgstAlgFinder)); + SignerInformationStore counterSignaturesStore = signer.GetCounterSignatures(); + foreach (var counterSigner in counterSignaturesStore) + { + digestAlgs.Add(helper.FixDigestAlgID(counterSigner.DigestAlgorithmID, dgstAlgFinder)); + } + } + + internal static void AddDigestAlgs(ISet<AlgorithmIdentifier> digestAlgs, SignerInformation signer, + DefaultDigestAlgorithmIdentifierFinder dgstAlgFinder) + { + var helper = CmsSignedHelper.Instance; + digestAlgs.Add(helper.FixDigestAlgID(signer.DigestAlgorithmID, dgstAlgFinder)); + SignerInformationStore counterSignaturesStore = signer.GetCounterSignatures(); + foreach (var counterSigner in counterSignaturesStore) + { + digestAlgs.Add(helper.FixDigestAlgID(counterSigner.DigestAlgorithmID, dgstAlgFinder)); + } + } + + internal static Asn1Set ConvertToDLSet(ISet<AlgorithmIdentifier> digestAlgs) + { + Asn1EncodableVector v = new Asn1EncodableVector(digestAlgs.Count); + foreach (var digestAlg in digestAlgs) + { + v.Add(digestAlg); + } + return DLSet.FromVector(v); + } + internal static Asn1Set CreateBerSetFromList(IEnumerable<Asn1Encodable> elements) { Asn1EncodableVector v = new Asn1EncodableVector(); - foreach (Asn1Encodable element in elements) { v.Add(element); } - return BerSet.FromVector(v); } internal static Asn1Set CreateDerSetFromList(IEnumerable<Asn1Encodable> elements) { Asn1EncodableVector v = new Asn1EncodableVector(); - foreach (Asn1Encodable element in elements) { v.Add(element); } - return DerSet.FromVector(v); } - internal static TbsCertificateStructure GetTbsCertificateStructure(X509Certificate cert) - { - return cert.CertificateStructure.TbsCertificate; - } + internal static TbsCertificateStructure GetTbsCertificateStructure(X509Certificate cert) => + cert.CertificateStructure.TbsCertificate; internal static IssuerAndSerialNumber GetIssuerAndSerialNumber(X509Certificate cert) { |