45 lines
909 B
C#
45 lines
909 B
C#
using System;
|
|
using System.Globalization;
|
|
|
|
namespace Org.BouncyCastle.X509.Store
|
|
{
|
|
public sealed class X509StoreFactory
|
|
{
|
|
private X509StoreFactory()
|
|
{
|
|
}
|
|
|
|
public static IX509Store Create(
|
|
string type,
|
|
IX509StoreParameters parameters)
|
|
{
|
|
if (type == null)
|
|
throw new ArgumentNullException("type");
|
|
|
|
string[] parts = type.ToUpper(CultureInfo.InvariantCulture).Split('/');
|
|
|
|
if (parts.Length < 2)
|
|
throw new ArgumentException("type");
|
|
|
|
|
|
switch (parts[0])
|
|
{
|
|
case "ATTRIBUTECERTIFICATE":
|
|
case "CERTIFICATE":
|
|
case "CERTIFICATEPAIR":
|
|
case "CRL":
|
|
{
|
|
if (parts[1] == "COLLECTION")
|
|
{
|
|
X509CollectionStoreParameters p = (X509CollectionStoreParameters) parameters;
|
|
return new X509CollectionStore(p.GetCollection());
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
throw new NoSuchStoreException("X.509 store type '" + type + "' not available.");
|
|
}
|
|
}
|
|
}
|