init commit
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using Org.BouncyCastle.Asn1;
|
||||
using Org.BouncyCastle.Asn1.Cms;
|
||||
using Org.BouncyCastle.Asn1.X509;
|
||||
using Org.BouncyCastle.Security.Certificates;
|
||||
using Org.BouncyCastle.Utilities;
|
||||
using Org.BouncyCastle.Utilities.IO;
|
||||
using Org.BouncyCastle.X509;
|
||||
using Org.BouncyCastle.X509.Store;
|
||||
|
||||
namespace Org.BouncyCastle.Cms;
|
||||
|
||||
internal class CmsUtilities
|
||||
{
|
||||
internal static int MaximumMemory
|
||||
{
|
||||
get
|
||||
{
|
||||
long num = 2147483647L;
|
||||
if (num > int.MaxValue)
|
||||
{
|
||||
return int.MaxValue;
|
||||
}
|
||||
return (int)num;
|
||||
}
|
||||
}
|
||||
|
||||
internal static ContentInfo ReadContentInfo(byte[] input)
|
||||
{
|
||||
return ReadContentInfo(new Asn1InputStream(input));
|
||||
}
|
||||
|
||||
internal static ContentInfo ReadContentInfo(Stream input)
|
||||
{
|
||||
return ReadContentInfo(new Asn1InputStream(input, MaximumMemory));
|
||||
}
|
||||
|
||||
private static ContentInfo ReadContentInfo(Asn1InputStream aIn)
|
||||
{
|
||||
try
|
||||
{
|
||||
return ContentInfo.GetInstance(aIn.ReadObject());
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
throw new CmsException("IOException reading content.", e);
|
||||
}
|
||||
catch (InvalidCastException e2)
|
||||
{
|
||||
throw new CmsException("Malformed content.", e2);
|
||||
}
|
||||
catch (ArgumentException e3)
|
||||
{
|
||||
throw new CmsException("Malformed content.", e3);
|
||||
}
|
||||
}
|
||||
|
||||
public static byte[] StreamToByteArray(Stream inStream)
|
||||
{
|
||||
return Streams.ReadAll(inStream);
|
||||
}
|
||||
|
||||
public static byte[] StreamToByteArray(Stream inStream, int limit)
|
||||
{
|
||||
return Streams.ReadAllLimited(inStream, limit);
|
||||
}
|
||||
|
||||
public static IList GetCertificatesFromStore(IX509Store certStore)
|
||||
{
|
||||
try
|
||||
{
|
||||
IList list = Platform.CreateArrayList();
|
||||
if (certStore != null)
|
||||
{
|
||||
foreach (X509Certificate match in certStore.GetMatches(null))
|
||||
{
|
||||
list.Add(X509CertificateStructure.GetInstance(Asn1Object.FromByteArray(match.GetEncoded())));
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
catch (CertificateEncodingException e)
|
||||
{
|
||||
throw new CmsException("error encoding certs", e);
|
||||
}
|
||||
catch (Exception e2)
|
||||
{
|
||||
throw new CmsException("error processing certs", e2);
|
||||
}
|
||||
}
|
||||
|
||||
public static IList GetCrlsFromStore(IX509Store crlStore)
|
||||
{
|
||||
try
|
||||
{
|
||||
IList list = Platform.CreateArrayList();
|
||||
if (crlStore != null)
|
||||
{
|
||||
foreach (X509Crl match in crlStore.GetMatches(null))
|
||||
{
|
||||
list.Add(CertificateList.GetInstance(Asn1Object.FromByteArray(match.GetEncoded())));
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
catch (CrlException e)
|
||||
{
|
||||
throw new CmsException("error encoding crls", e);
|
||||
}
|
||||
catch (Exception e2)
|
||||
{
|
||||
throw new CmsException("error processing crls", e2);
|
||||
}
|
||||
}
|
||||
|
||||
public static Asn1Set CreateBerSetFromList(IList berObjects)
|
||||
{
|
||||
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector();
|
||||
foreach (Asn1Encodable berObject in berObjects)
|
||||
{
|
||||
asn1EncodableVector.Add(berObject);
|
||||
}
|
||||
return new BerSet(asn1EncodableVector);
|
||||
}
|
||||
|
||||
public static Asn1Set CreateDerSetFromList(IList derObjects)
|
||||
{
|
||||
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector();
|
||||
foreach (Asn1Encodable derObject in derObjects)
|
||||
{
|
||||
asn1EncodableVector.Add(derObject);
|
||||
}
|
||||
return new DerSet(asn1EncodableVector);
|
||||
}
|
||||
|
||||
internal static Stream CreateBerOctetOutputStream(Stream s, int tagNo, bool isExplicit, int bufferSize)
|
||||
{
|
||||
BerOctetStringGenerator berOctetStringGenerator = new BerOctetStringGenerator(s, tagNo, isExplicit);
|
||||
return berOctetStringGenerator.GetOctetOutputStream(bufferSize);
|
||||
}
|
||||
|
||||
internal static TbsCertificateStructure GetTbsCertificateStructure(X509Certificate cert)
|
||||
{
|
||||
return TbsCertificateStructure.GetInstance(Asn1Object.FromByteArray(cert.GetTbsCertificate()));
|
||||
}
|
||||
|
||||
internal static IssuerAndSerialNumber GetIssuerAndSerialNumber(X509Certificate cert)
|
||||
{
|
||||
TbsCertificateStructure tbsCertificateStructure = GetTbsCertificateStructure(cert);
|
||||
return new IssuerAndSerialNumber(tbsCertificateStructure.Issuer, tbsCertificateStructure.SerialNumber.Value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user