init commit
This commit is contained in:
@@ -0,0 +1,457 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Org.BouncyCastle.Utilities;
|
||||
using Org.BouncyCastle.Utilities.Collections;
|
||||
using Org.BouncyCastle.Utilities.Date;
|
||||
using Org.BouncyCastle.X509.Store;
|
||||
|
||||
namespace Org.BouncyCastle.Pkix;
|
||||
|
||||
public class PkixParameters
|
||||
{
|
||||
public const int PkixValidityModel = 0;
|
||||
|
||||
public const int ChainValidityModel = 1;
|
||||
|
||||
private ISet trustAnchors;
|
||||
|
||||
private DateTimeObject date;
|
||||
|
||||
private IList certPathCheckers;
|
||||
|
||||
private bool revocationEnabled = true;
|
||||
|
||||
private ISet initialPolicies;
|
||||
|
||||
private bool explicitPolicyRequired = false;
|
||||
|
||||
private bool anyPolicyInhibited = false;
|
||||
|
||||
private bool policyMappingInhibited = false;
|
||||
|
||||
private bool policyQualifiersRejected = true;
|
||||
|
||||
private IX509Selector certSelector;
|
||||
|
||||
private IList stores;
|
||||
|
||||
private IX509Selector selector;
|
||||
|
||||
private bool additionalLocationsEnabled;
|
||||
|
||||
private IList additionalStores;
|
||||
|
||||
private ISet trustedACIssuers;
|
||||
|
||||
private ISet necessaryACAttributes;
|
||||
|
||||
private ISet prohibitedACAttributes;
|
||||
|
||||
private ISet attrCertCheckers;
|
||||
|
||||
private int validityModel = 0;
|
||||
|
||||
private bool useDeltas = false;
|
||||
|
||||
public virtual bool IsRevocationEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return revocationEnabled;
|
||||
}
|
||||
set
|
||||
{
|
||||
revocationEnabled = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsExplicitPolicyRequired
|
||||
{
|
||||
get
|
||||
{
|
||||
return explicitPolicyRequired;
|
||||
}
|
||||
set
|
||||
{
|
||||
explicitPolicyRequired = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsAnyPolicyInhibited
|
||||
{
|
||||
get
|
||||
{
|
||||
return anyPolicyInhibited;
|
||||
}
|
||||
set
|
||||
{
|
||||
anyPolicyInhibited = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsPolicyMappingInhibited
|
||||
{
|
||||
get
|
||||
{
|
||||
return policyMappingInhibited;
|
||||
}
|
||||
set
|
||||
{
|
||||
policyMappingInhibited = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsPolicyQualifiersRejected
|
||||
{
|
||||
get
|
||||
{
|
||||
return policyQualifiersRejected;
|
||||
}
|
||||
set
|
||||
{
|
||||
policyQualifiersRejected = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual DateTimeObject Date
|
||||
{
|
||||
get
|
||||
{
|
||||
return date;
|
||||
}
|
||||
set
|
||||
{
|
||||
date = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsUseDeltasEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return useDeltas;
|
||||
}
|
||||
set
|
||||
{
|
||||
useDeltas = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual int ValidityModel
|
||||
{
|
||||
get
|
||||
{
|
||||
return validityModel;
|
||||
}
|
||||
set
|
||||
{
|
||||
validityModel = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsAdditionalLocationsEnabled => additionalLocationsEnabled;
|
||||
|
||||
public PkixParameters(ISet trustAnchors)
|
||||
{
|
||||
SetTrustAnchors(trustAnchors);
|
||||
initialPolicies = new HashSet();
|
||||
certPathCheckers = Platform.CreateArrayList();
|
||||
stores = Platform.CreateArrayList();
|
||||
additionalStores = Platform.CreateArrayList();
|
||||
trustedACIssuers = new HashSet();
|
||||
necessaryACAttributes = new HashSet();
|
||||
prohibitedACAttributes = new HashSet();
|
||||
attrCertCheckers = new HashSet();
|
||||
}
|
||||
|
||||
public virtual ISet GetTrustAnchors()
|
||||
{
|
||||
return new HashSet(trustAnchors);
|
||||
}
|
||||
|
||||
public virtual void SetTrustAnchors(ISet tas)
|
||||
{
|
||||
if (tas == null)
|
||||
{
|
||||
throw new ArgumentNullException("value");
|
||||
}
|
||||
if (tas.IsEmpty)
|
||||
{
|
||||
throw new ArgumentException("non-empty set required", "value");
|
||||
}
|
||||
trustAnchors = new HashSet();
|
||||
foreach (TrustAnchor ta in tas)
|
||||
{
|
||||
if (ta != null)
|
||||
{
|
||||
trustAnchors.Add(ta);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual X509CertStoreSelector GetTargetCertConstraints()
|
||||
{
|
||||
if (certSelector == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return (X509CertStoreSelector)certSelector.Clone();
|
||||
}
|
||||
|
||||
public virtual void SetTargetCertConstraints(IX509Selector selector)
|
||||
{
|
||||
if (selector == null)
|
||||
{
|
||||
certSelector = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
certSelector = (IX509Selector)selector.Clone();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual ISet GetInitialPolicies()
|
||||
{
|
||||
ISet s = initialPolicies;
|
||||
if (initialPolicies == null)
|
||||
{
|
||||
s = new HashSet();
|
||||
}
|
||||
return new HashSet(s);
|
||||
}
|
||||
|
||||
public virtual void SetInitialPolicies(ISet initialPolicies)
|
||||
{
|
||||
this.initialPolicies = new HashSet();
|
||||
if (initialPolicies == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
foreach (string initialPolicy in initialPolicies)
|
||||
{
|
||||
if (initialPolicy != null)
|
||||
{
|
||||
this.initialPolicies.Add(initialPolicy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void SetCertPathCheckers(IList checkers)
|
||||
{
|
||||
certPathCheckers = Platform.CreateArrayList();
|
||||
if (checkers == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
foreach (PkixCertPathChecker checker in checkers)
|
||||
{
|
||||
certPathCheckers.Add(checker.Clone());
|
||||
}
|
||||
}
|
||||
|
||||
public virtual IList GetCertPathCheckers()
|
||||
{
|
||||
IList list = Platform.CreateArrayList();
|
||||
foreach (PkixCertPathChecker certPathChecker in certPathCheckers)
|
||||
{
|
||||
list.Add(certPathChecker.Clone());
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public virtual void AddCertPathChecker(PkixCertPathChecker checker)
|
||||
{
|
||||
if (checker != null)
|
||||
{
|
||||
certPathCheckers.Add(checker.Clone());
|
||||
}
|
||||
}
|
||||
|
||||
public virtual object Clone()
|
||||
{
|
||||
PkixParameters pkixParameters = new PkixParameters(GetTrustAnchors());
|
||||
pkixParameters.SetParams(this);
|
||||
return pkixParameters;
|
||||
}
|
||||
|
||||
protected virtual void SetParams(PkixParameters parameters)
|
||||
{
|
||||
Date = parameters.Date;
|
||||
SetCertPathCheckers(parameters.GetCertPathCheckers());
|
||||
IsAnyPolicyInhibited = parameters.IsAnyPolicyInhibited;
|
||||
IsExplicitPolicyRequired = parameters.IsExplicitPolicyRequired;
|
||||
IsPolicyMappingInhibited = parameters.IsPolicyMappingInhibited;
|
||||
IsRevocationEnabled = parameters.IsRevocationEnabled;
|
||||
SetInitialPolicies(parameters.GetInitialPolicies());
|
||||
IsPolicyQualifiersRejected = parameters.IsPolicyQualifiersRejected;
|
||||
SetTargetCertConstraints(parameters.GetTargetCertConstraints());
|
||||
SetTrustAnchors(parameters.GetTrustAnchors());
|
||||
validityModel = parameters.validityModel;
|
||||
useDeltas = parameters.useDeltas;
|
||||
additionalLocationsEnabled = parameters.additionalLocationsEnabled;
|
||||
selector = ((parameters.selector == null) ? null : ((IX509Selector)parameters.selector.Clone()));
|
||||
stores = Platform.CreateArrayList(parameters.stores);
|
||||
additionalStores = Platform.CreateArrayList(parameters.additionalStores);
|
||||
trustedACIssuers = new HashSet(parameters.trustedACIssuers);
|
||||
prohibitedACAttributes = new HashSet(parameters.prohibitedACAttributes);
|
||||
necessaryACAttributes = new HashSet(parameters.necessaryACAttributes);
|
||||
attrCertCheckers = new HashSet(parameters.attrCertCheckers);
|
||||
}
|
||||
|
||||
public virtual void SetStores(IList stores)
|
||||
{
|
||||
if (stores == null)
|
||||
{
|
||||
this.stores = Platform.CreateArrayList();
|
||||
return;
|
||||
}
|
||||
foreach (object store in stores)
|
||||
{
|
||||
if (!(store is IX509Store))
|
||||
{
|
||||
throw new InvalidCastException("All elements of list must be of type " + typeof(IX509Store).FullName);
|
||||
}
|
||||
}
|
||||
this.stores = Platform.CreateArrayList(stores);
|
||||
}
|
||||
|
||||
public virtual void AddStore(IX509Store store)
|
||||
{
|
||||
if (store != null)
|
||||
{
|
||||
stores.Add(store);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void AddAdditionalStore(IX509Store store)
|
||||
{
|
||||
if (store != null)
|
||||
{
|
||||
additionalStores.Add(store);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual IList GetAdditionalStores()
|
||||
{
|
||||
return Platform.CreateArrayList(additionalStores);
|
||||
}
|
||||
|
||||
public virtual IList GetStores()
|
||||
{
|
||||
return Platform.CreateArrayList(stores);
|
||||
}
|
||||
|
||||
public virtual void SetAdditionalLocationsEnabled(bool enabled)
|
||||
{
|
||||
additionalLocationsEnabled = enabled;
|
||||
}
|
||||
|
||||
public virtual IX509Selector GetTargetConstraints()
|
||||
{
|
||||
if (selector != null)
|
||||
{
|
||||
return (IX509Selector)selector.Clone();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual void SetTargetConstraints(IX509Selector selector)
|
||||
{
|
||||
if (selector != null)
|
||||
{
|
||||
this.selector = (IX509Selector)selector.Clone();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.selector = null;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual ISet GetTrustedACIssuers()
|
||||
{
|
||||
return new HashSet(trustedACIssuers);
|
||||
}
|
||||
|
||||
public virtual void SetTrustedACIssuers(ISet trustedACIssuers)
|
||||
{
|
||||
if (trustedACIssuers == null)
|
||||
{
|
||||
this.trustedACIssuers = new HashSet();
|
||||
return;
|
||||
}
|
||||
foreach (object trustedACIssuer in trustedACIssuers)
|
||||
{
|
||||
if (!(trustedACIssuer is TrustAnchor))
|
||||
{
|
||||
throw new InvalidCastException("All elements of set must be of type " + typeof(TrustAnchor).FullName + ".");
|
||||
}
|
||||
}
|
||||
this.trustedACIssuers = new HashSet(trustedACIssuers);
|
||||
}
|
||||
|
||||
public virtual ISet GetNecessaryACAttributes()
|
||||
{
|
||||
return new HashSet(necessaryACAttributes);
|
||||
}
|
||||
|
||||
public virtual void SetNecessaryACAttributes(ISet necessaryACAttributes)
|
||||
{
|
||||
if (necessaryACAttributes == null)
|
||||
{
|
||||
this.necessaryACAttributes = new HashSet();
|
||||
return;
|
||||
}
|
||||
foreach (object necessaryACAttribute in necessaryACAttributes)
|
||||
{
|
||||
if (!(necessaryACAttribute is string))
|
||||
{
|
||||
throw new InvalidCastException("All elements of set must be of type string.");
|
||||
}
|
||||
}
|
||||
this.necessaryACAttributes = new HashSet(necessaryACAttributes);
|
||||
}
|
||||
|
||||
public virtual ISet GetProhibitedACAttributes()
|
||||
{
|
||||
return new HashSet(prohibitedACAttributes);
|
||||
}
|
||||
|
||||
public virtual void SetProhibitedACAttributes(ISet prohibitedACAttributes)
|
||||
{
|
||||
if (prohibitedACAttributes == null)
|
||||
{
|
||||
this.prohibitedACAttributes = new HashSet();
|
||||
return;
|
||||
}
|
||||
foreach (object prohibitedACAttribute in prohibitedACAttributes)
|
||||
{
|
||||
if (!(prohibitedACAttribute is string))
|
||||
{
|
||||
throw new InvalidCastException("All elements of set must be of type string.");
|
||||
}
|
||||
}
|
||||
this.prohibitedACAttributes = new HashSet(prohibitedACAttributes);
|
||||
}
|
||||
|
||||
public virtual ISet GetAttrCertCheckers()
|
||||
{
|
||||
return new HashSet(attrCertCheckers);
|
||||
}
|
||||
|
||||
public virtual void SetAttrCertCheckers(ISet attrCertCheckers)
|
||||
{
|
||||
if (attrCertCheckers == null)
|
||||
{
|
||||
this.attrCertCheckers = new HashSet();
|
||||
return;
|
||||
}
|
||||
foreach (object attrCertChecker in attrCertCheckers)
|
||||
{
|
||||
if (!(attrCertChecker is PkixAttrCertChecker))
|
||||
{
|
||||
throw new InvalidCastException("All elements of set must be of type " + typeof(PkixAttrCertChecker).FullName + ".");
|
||||
}
|
||||
}
|
||||
this.attrCertCheckers = new HashSet(attrCertCheckers);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user