Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pkix/src/main/java/org/bouncycastle/cert/path')
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/CertPath.java80
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/CertPathUtils.java21
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidation.java11
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationContext.java61
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationException.java24
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationResult.java66
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationResultBuilder.java14
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/validations/BasicConstraintsValidation.java103
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/validations/CRLValidation.java78
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/validations/CertificatePoliciesValidation.java146
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/validations/CertificatePoliciesValidationBuilder.java35
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/validations/KeyUsageValidation.java63
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/validations/ParentCertIssuedValidation.java127
-rw-r--r--pkix/src/main/java/org/bouncycastle/cert/path/validations/ValidationUtils.java11
14 files changed, 0 insertions, 840 deletions
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/CertPath.java b/pkix/src/main/java/org/bouncycastle/cert/path/CertPath.java
deleted file mode 100644
index f91b3a81..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/CertPath.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.bouncycastle.cert.path;
-
-import org.bouncycastle.cert.X509CertificateHolder;
-
-public class CertPath
-{
- private final X509CertificateHolder[] certificates;
-
- public CertPath(X509CertificateHolder[] certificates)
- {
- this.certificates = copyArray(certificates);
- }
-
- public X509CertificateHolder[] getCertificates()
- {
- return copyArray(certificates);
- }
-
- public CertPathValidationResult validate(CertPathValidation[] ruleSet)
- {
- CertPathValidationContext context = new CertPathValidationContext(CertPathUtils.getCriticalExtensionsOIDs(certificates));
-
- for (int i = 0; i != ruleSet.length; i++)
- {
- for (int j = certificates.length - 1; j >= 0; j--)
- {
- try
- {
- context.setIsEndEntity(j == 0);
- ruleSet[i].validate(context, certificates[j]);
- }
- catch (CertPathValidationException e)
- { // TODO: introduce object to hold (i and e)
- return new CertPathValidationResult(context, j, i, e);
- }
- }
- }
-
- return new CertPathValidationResult(context);
- }
-
- public CertPathValidationResult evaluate(CertPathValidation[] ruleSet)
- {
- CertPathValidationContext context = new CertPathValidationContext(CertPathUtils.getCriticalExtensionsOIDs(certificates));
-
- CertPathValidationResultBuilder builder = new CertPathValidationResultBuilder();
-
- for (int i = 0; i != ruleSet.length; i++)
- {
- for (int j = certificates.length - 1; j >= 0; j--)
- {
- try
- {
- context.setIsEndEntity(j == 0);
- ruleSet[i].validate(context, certificates[j]);
- }
- catch (CertPathValidationException e)
- {
- builder.addException(e);
- }
- }
- }
-
- return builder.build();
- }
-
- private X509CertificateHolder[] copyArray(X509CertificateHolder[] array)
- {
- X509CertificateHolder[] rv = new X509CertificateHolder[array.length];
-
- System.arraycopy(array, 0, rv, 0, rv.length);
-
- return rv;
- }
-
- public int length()
- {
- return certificates.length;
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathUtils.java b/pkix/src/main/java/org/bouncycastle/cert/path/CertPathUtils.java
deleted file mode 100644
index 4811a3d8..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathUtils.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.bouncycastle.cert.path;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.bouncycastle.cert.X509CertificateHolder;
-
-class CertPathUtils
-{
- static Set getCriticalExtensionsOIDs(X509CertificateHolder[] certificates)
- {
- Set criticalExtensions = new HashSet();
-
- for (int i = 0; i != certificates.length; i++)
- {
- criticalExtensions.addAll(certificates[i].getCriticalExtensionOIDs());
- }
-
- return criticalExtensions;
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidation.java b/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidation.java
deleted file mode 100644
index 2704fe64..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidation.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.bouncycastle.cert.path;
-
-import org.bouncycastle.cert.X509CertificateHolder;
-import org.bouncycastle.util.Memoable;
-
-public interface CertPathValidation
- extends Memoable
-{
- public void validate(CertPathValidationContext context, X509CertificateHolder certificate)
- throws CertPathValidationException;
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationContext.java b/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationContext.java
deleted file mode 100644
index 6a4b0ec2..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationContext.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.bouncycastle.cert.path;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.util.Memoable;
-
-public class CertPathValidationContext
- implements Memoable
-{
- private Set criticalExtensions;
-
- private Set handledExtensions = new HashSet();
- private boolean endEntity;
- private int index;
-
- public CertPathValidationContext(Set criticalExtensionsOIDs)
- {
- this.criticalExtensions = criticalExtensionsOIDs;
- }
-
- public void addHandledExtension(ASN1ObjectIdentifier extensionIdentifier)
- {
- this.handledExtensions.add(extensionIdentifier);
- }
-
- public void setIsEndEntity(boolean isEndEntity)
- {
- this.endEntity = isEndEntity;
- }
-
- public Set getUnhandledCriticalExtensionOIDs()
- {
- Set rv = new HashSet(criticalExtensions);
-
- rv.removeAll(handledExtensions);
-
- return rv;
- }
-
- /**
- * Returns true if the current certificate is the end-entity certificate.
- *
- * @return if current cert end-entity, false otherwise.
- */
- public boolean isEndEntity()
- {
- return endEntity;
- }
-
- public Memoable copy()
- {
- return null; //To change body of implemented methods use File | Settings | File Templates.
- }
-
- public void reset(Memoable other)
- {
- //To change body of implemented methods use File | Settings | File Templates.
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationException.java b/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationException.java
deleted file mode 100644
index 958f2d0c..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationException.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.bouncycastle.cert.path;
-
-public class CertPathValidationException
- extends Exception
-{
- private final Exception cause;
-
- public CertPathValidationException(String msg)
- {
- this(msg, null);
- }
-
- public CertPathValidationException(String msg, Exception cause)
- {
- super(msg);
-
- this.cause = cause;
- }
-
- public Throwable getCause()
- {
- return cause;
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationResult.java b/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationResult.java
deleted file mode 100644
index facefb45..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationResult.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.bouncycastle.cert.path;
-
-import java.util.Collections;
-import java.util.Set;
-
-public class CertPathValidationResult
-{
- private final boolean isValid;
- private final CertPathValidationException cause;
- private final Set unhandledCriticalExtensionOIDs;
-
- private int[] certIndexes;
-
- public CertPathValidationResult(CertPathValidationContext context)
- {
- this.unhandledCriticalExtensionOIDs = Collections.unmodifiableSet(context.getUnhandledCriticalExtensionOIDs());
- this.isValid = this.unhandledCriticalExtensionOIDs.isEmpty();
- cause = null;
- }
-
- public CertPathValidationResult(CertPathValidationContext context, int certIndex, int ruleIndex, CertPathValidationException cause)
- {
- this.unhandledCriticalExtensionOIDs = Collections.unmodifiableSet(context.getUnhandledCriticalExtensionOIDs());
- this.isValid = false;
- this.cause = cause;
- }
-
- public CertPathValidationResult(CertPathValidationContext context, int[] certIndexes, int[] ruleIndexes, CertPathValidationException[] cause)
- {
- // TODO
- this.unhandledCriticalExtensionOIDs = Collections.unmodifiableSet(context.getUnhandledCriticalExtensionOIDs());
- this.isValid = false;
- this.cause = cause[0];
- this.certIndexes = certIndexes;
- }
-
- public boolean isValid()
- {
- return isValid;
- }
-
- public Exception getCause()
- {
- if (cause != null)
- {
- return cause;
- }
-
- if (!unhandledCriticalExtensionOIDs.isEmpty())
- {
- return new CertPathValidationException("Unhandled Critical Extensions");
- }
-
- return null;
- }
-
- public Set getUnhandledCriticalExtensionOIDs()
- {
- return unhandledCriticalExtensionOIDs;
- }
-
- public boolean isDetailed()
- {
- return this.certIndexes != null;
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationResultBuilder.java b/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationResultBuilder.java
deleted file mode 100644
index 9e813396..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/CertPathValidationResultBuilder.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.bouncycastle.cert.path;
-
-class CertPathValidationResultBuilder
-{
- public CertPathValidationResult build()
- {
- return new CertPathValidationResult(null, 0, 0, null);
- }
-
- public void addException(CertPathValidationException exception)
- {
- //To change body of created methods use File | Settings | File Templates.
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/validations/BasicConstraintsValidation.java b/pkix/src/main/java/org/bouncycastle/cert/path/validations/BasicConstraintsValidation.java
deleted file mode 100644
index db4f8527..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/validations/BasicConstraintsValidation.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.bouncycastle.cert.path.validations;
-
-import java.math.BigInteger;
-
-import org.bouncycastle.asn1.x509.BasicConstraints;
-import org.bouncycastle.asn1.x509.Extension;
-import org.bouncycastle.cert.X509CertificateHolder;
-import org.bouncycastle.cert.path.CertPathValidation;
-import org.bouncycastle.cert.path.CertPathValidationContext;
-import org.bouncycastle.cert.path.CertPathValidationException;
-import org.bouncycastle.util.Memoable;
-
-public class BasicConstraintsValidation
- implements CertPathValidation
-{
- private boolean isMandatory;
- private BasicConstraints bc;
- private int maxPathLength;
-
- public BasicConstraintsValidation()
- {
- this(true);
- }
-
- public BasicConstraintsValidation(boolean isMandatory)
- {
- this.isMandatory = isMandatory;
- }
-
- public void validate(CertPathValidationContext context, X509CertificateHolder certificate)
- throws CertPathValidationException
- {
- if (maxPathLength < 0)
- {
- throw new CertPathValidationException("BasicConstraints path length exceeded");
- }
-
- context.addHandledExtension(Extension.basicConstraints);
-
- BasicConstraints certBC = BasicConstraints.fromExtensions(certificate.getExtensions());
-
- if (certBC != null)
- {
- if (bc != null)
- {
- if (certBC.isCA())
- {
- BigInteger pathLengthConstraint = certBC.getPathLenConstraint();
-
- if (pathLengthConstraint != null)
- {
- int plc = pathLengthConstraint.intValue();
-
- if (plc < maxPathLength)
- {
- maxPathLength = plc;
- bc = certBC;
- }
- }
- }
- }
- else
- {
- bc = certBC;
- if (certBC.isCA())
- {
- maxPathLength = certBC.getPathLenConstraint().intValue();
- }
- }
- }
- else
- {
- if (bc != null)
- {
- maxPathLength--;
- }
- }
-
- if (isMandatory && bc == null)
- {
- throw new CertPathValidationException("BasicConstraints not present in path");
- }
- }
-
- public Memoable copy()
- {
- BasicConstraintsValidation v = new BasicConstraintsValidation(isMandatory);
-
- v.bc = this.bc;
- v.maxPathLength = this.maxPathLength;
-
- return v;
- }
-
- public void reset(Memoable other)
- {
- BasicConstraintsValidation v = (BasicConstraintsValidation)other;
-
- this.isMandatory = v.isMandatory;
- this.bc = v.bc;
- this.maxPathLength = v.maxPathLength;
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/validations/CRLValidation.java b/pkix/src/main/java/org/bouncycastle/cert/path/validations/CRLValidation.java
deleted file mode 100644
index c44b7c0d..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/validations/CRLValidation.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.bouncycastle.cert.path.validations;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.bouncycastle.asn1.x500.X500Name;
-import org.bouncycastle.cert.X509CRLHolder;
-import org.bouncycastle.cert.X509CertificateHolder;
-import org.bouncycastle.cert.path.CertPathValidation;
-import org.bouncycastle.cert.path.CertPathValidationContext;
-import org.bouncycastle.cert.path.CertPathValidationException;
-import org.bouncycastle.util.Memoable;
-import org.bouncycastle.util.Selector;
-import org.bouncycastle.util.Store;
-
-public class CRLValidation
- implements CertPathValidation
-{
- private Store crls;
- private X500Name workingIssuerName;
-
- public CRLValidation(X500Name trustAnchorName, Store crls)
- {
- this.workingIssuerName = trustAnchorName;
- this.crls = crls;
- }
-
- public void validate(CertPathValidationContext context, X509CertificateHolder certificate)
- throws CertPathValidationException
- {
- // TODO: add handling of delta CRLs
- Collection matches = crls.getMatches(new Selector()
- {
- public boolean match(Object obj)
- {
- X509CRLHolder crl = (X509CRLHolder)obj;
-
- return (crl.getIssuer().equals(workingIssuerName));
- }
-
- public Object clone()
- {
- return this;
- }
- });
-
- if (matches.isEmpty())
- {
- throw new CertPathValidationException("CRL for " + workingIssuerName + " not found");
- }
-
- for (Iterator it = matches.iterator(); it.hasNext();)
- {
- X509CRLHolder crl = (X509CRLHolder)it.next();
-
- // TODO: not quite right!
- if (crl.getRevokedCertificate(certificate.getSerialNumber()) != null)
- {
- throw new CertPathValidationException("Certificate revoked");
- }
- }
-
- this.workingIssuerName = certificate.getSubject();
- }
-
- public Memoable copy()
- {
- return new CRLValidation(workingIssuerName, crls);
- }
-
- public void reset(Memoable other)
- {
- CRLValidation v = (CRLValidation)other;
-
- this.workingIssuerName = v.workingIssuerName;
- this.crls = v.crls;
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/validations/CertificatePoliciesValidation.java b/pkix/src/main/java/org/bouncycastle/cert/path/validations/CertificatePoliciesValidation.java
deleted file mode 100644
index ebaf9897..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/validations/CertificatePoliciesValidation.java
+++ /dev/null
@@ -1,146 +0,0 @@
-package org.bouncycastle.cert.path.validations;
-
-import java.math.BigInteger;
-
-import org.bouncycastle.asn1.ASN1Integer;
-import org.bouncycastle.asn1.x509.Extension;
-import org.bouncycastle.asn1.x509.PolicyConstraints;
-import org.bouncycastle.cert.X509CertificateHolder;
-import org.bouncycastle.cert.path.CertPathValidation;
-import org.bouncycastle.cert.path.CertPathValidationContext;
-import org.bouncycastle.cert.path.CertPathValidationException;
-import org.bouncycastle.util.Memoable;
-
-public class CertificatePoliciesValidation
- implements CertPathValidation
-{
- private int explicitPolicy;
- private int policyMapping;
- private int inhibitAnyPolicy;
-
- CertificatePoliciesValidation(int pathLength)
- {
- this(pathLength, false, false, false);
- }
-
- CertificatePoliciesValidation(int pathLength, boolean isExplicitPolicyRequired, boolean isAnyPolicyInhibited, boolean isPolicyMappingInhibited)
- {
- //
- // (d)
- //
-
- if (isExplicitPolicyRequired)
- {
- explicitPolicy = 0;
- }
- else
- {
- explicitPolicy = pathLength + 1;
- }
-
- //
- // (e)
- //
- if (isAnyPolicyInhibited)
- {
- inhibitAnyPolicy = 0;
- }
- else
- {
- inhibitAnyPolicy = pathLength + 1;
- }
-
- //
- // (f)
- //
- if (isPolicyMappingInhibited)
- {
- policyMapping = 0;
- }
- else
- {
- policyMapping = pathLength + 1;
- }
- }
-
- public void validate(CertPathValidationContext context, X509CertificateHolder certificate)
- throws CertPathValidationException
- {
- context.addHandledExtension(Extension.policyConstraints);
- context.addHandledExtension(Extension.inhibitAnyPolicy);
-
- if (!context.isEndEntity())
- {
- if (!ValidationUtils.isSelfIssued(certificate))
- {
- //
- // H (1), (2), (3)
- //
- explicitPolicy = countDown(explicitPolicy);
- policyMapping = countDown(policyMapping);
- inhibitAnyPolicy = countDown(inhibitAnyPolicy);
-
- //
- // I (1), (2)
- //
- PolicyConstraints policyConstraints = PolicyConstraints.fromExtensions(certificate.getExtensions());
-
- if (policyConstraints != null)
- {
- BigInteger requireExplicitPolicyMapping = policyConstraints.getRequireExplicitPolicyMapping();
- if (requireExplicitPolicyMapping != null)
- {
- if (requireExplicitPolicyMapping.intValue() < explicitPolicy)
- {
- explicitPolicy = requireExplicitPolicyMapping.intValue();
- }
- }
-
- BigInteger inhibitPolicyMapping = policyConstraints.getInhibitPolicyMapping();
- if (inhibitPolicyMapping != null)
- {
- if (inhibitPolicyMapping.intValue() < policyMapping)
- {
- policyMapping = inhibitPolicyMapping.intValue();
- }
- }
- }
-
- //
- // J
- //
- Extension ext = certificate.getExtension(Extension.inhibitAnyPolicy);
-
- if (ext != null)
- {
- int extValue = ASN1Integer.getInstance(ext.getParsedValue()).getValue().intValue();
-
- if (extValue < inhibitAnyPolicy)
- {
- inhibitAnyPolicy = extValue;
- }
- }
- }
- }
- }
-
- private int countDown(int policyCounter)
- {
- if (policyCounter != 0)
- {
- return policyCounter - 1;
- }
-
- return 0;
- }
-
- public Memoable copy()
- {
- return new CertificatePoliciesValidation(0); // TODO:
- }
-
- public void reset(Memoable other)
- {
- CertificatePoliciesValidation v = (CertificatePoliciesValidation)other; // TODO:
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/validations/CertificatePoliciesValidationBuilder.java b/pkix/src/main/java/org/bouncycastle/cert/path/validations/CertificatePoliciesValidationBuilder.java
deleted file mode 100644
index 74b622e1..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/validations/CertificatePoliciesValidationBuilder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.bouncycastle.cert.path.validations;
-
-import org.bouncycastle.cert.path.CertPath;
-
-public class CertificatePoliciesValidationBuilder
-{
- private boolean isExplicitPolicyRequired;
- private boolean isAnyPolicyInhibited;
- private boolean isPolicyMappingInhibited;
-
- public void setAnyPolicyInhibited(boolean anyPolicyInhibited)
- {
- isAnyPolicyInhibited = anyPolicyInhibited;
- }
-
- public void setExplicitPolicyRequired(boolean explicitPolicyRequired)
- {
- isExplicitPolicyRequired = explicitPolicyRequired;
- }
-
- public void setPolicyMappingInhibited(boolean policyMappingInhibited)
- {
- isPolicyMappingInhibited = policyMappingInhibited;
- }
-
- public CertificatePoliciesValidation build(int pathLen)
- {
- return new CertificatePoliciesValidation(pathLen, isExplicitPolicyRequired, isAnyPolicyInhibited, isPolicyMappingInhibited);
- }
-
- public CertificatePoliciesValidation build(CertPath path)
- {
- return build(path.length());
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/validations/KeyUsageValidation.java b/pkix/src/main/java/org/bouncycastle/cert/path/validations/KeyUsageValidation.java
deleted file mode 100644
index 5d9adc82..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/validations/KeyUsageValidation.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.bouncycastle.cert.path.validations;
-
-import org.bouncycastle.asn1.x509.Extension;
-import org.bouncycastle.asn1.x509.KeyUsage;
-import org.bouncycastle.cert.X509CertificateHolder;
-import org.bouncycastle.cert.path.CertPathValidation;
-import org.bouncycastle.cert.path.CertPathValidationContext;
-import org.bouncycastle.cert.path.CertPathValidationException;
-import org.bouncycastle.util.Memoable;
-
-public class KeyUsageValidation
- implements CertPathValidation
-{
- private boolean isMandatory;
-
- public KeyUsageValidation()
- {
- this(true);
- }
-
- public KeyUsageValidation(boolean isMandatory)
- {
- this.isMandatory = isMandatory;
- }
-
- public void validate(CertPathValidationContext context, X509CertificateHolder certificate)
- throws CertPathValidationException
- {
- context.addHandledExtension(Extension.keyUsage);
-
- if (!context.isEndEntity())
- {
- KeyUsage usage = KeyUsage.fromExtensions(certificate.getExtensions());
-
- if (usage != null)
- {
- if (!usage.hasUsages(KeyUsage.keyCertSign))
- {
- throw new CertPathValidationException("Issuer certificate KeyUsage extension does not permit key signing");
- }
- }
- else
- {
- if (isMandatory)
- {
- throw new CertPathValidationException("KeyUsage extension not present in CA certificate");
- }
- }
- }
- }
-
- public Memoable copy()
- {
- return new KeyUsageValidation(isMandatory);
- }
-
- public void reset(Memoable other)
- {
- KeyUsageValidation v = (KeyUsageValidation)other;
-
- this.isMandatory = v.isMandatory;
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/validations/ParentCertIssuedValidation.java b/pkix/src/main/java/org/bouncycastle/cert/path/validations/ParentCertIssuedValidation.java
deleted file mode 100644
index a21ad1c4..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/validations/ParentCertIssuedValidation.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package org.bouncycastle.cert.path.validations;
-
-import java.io.IOException;
-
-import org.bouncycastle.asn1.ASN1Encodable;
-import org.bouncycastle.asn1.ASN1Null;
-import org.bouncycastle.asn1.x500.X500Name;
-import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
-import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
-import org.bouncycastle.cert.CertException;
-import org.bouncycastle.cert.X509CertificateHolder;
-import org.bouncycastle.cert.X509ContentVerifierProviderBuilder;
-import org.bouncycastle.cert.path.CertPathValidation;
-import org.bouncycastle.cert.path.CertPathValidationContext;
-import org.bouncycastle.cert.path.CertPathValidationException;
-import org.bouncycastle.operator.OperatorCreationException;
-import org.bouncycastle.util.Memoable;
-
-public class ParentCertIssuedValidation
- implements CertPathValidation
-{
- private X509ContentVerifierProviderBuilder contentVerifierProvider;
-
- private X500Name workingIssuerName;
- private SubjectPublicKeyInfo workingPublicKey;
- private AlgorithmIdentifier workingAlgId;
-
- public ParentCertIssuedValidation(X509ContentVerifierProviderBuilder contentVerifierProvider)
- {
- this.contentVerifierProvider = contentVerifierProvider;
- }
-
- public void validate(CertPathValidationContext context, X509CertificateHolder certificate)
- throws CertPathValidationException
- {
- if (workingIssuerName != null)
- {
- if (!workingIssuerName.equals(certificate.getIssuer()))
- {
- throw new CertPathValidationException("Certificate issue does not match parent");
- }
- }
-
- if (workingPublicKey != null)
- {
- try
- {
- SubjectPublicKeyInfo validatingKeyInfo;
-
- if (workingPublicKey.getAlgorithm().equals(workingAlgId))
- {
- validatingKeyInfo = workingPublicKey;
- }
- else
- {
- validatingKeyInfo = new SubjectPublicKeyInfo(workingAlgId, workingPublicKey.parsePublicKey());
- }
-
- if (!certificate.isSignatureValid(contentVerifierProvider.build(validatingKeyInfo)))
- {
- throw new CertPathValidationException("Certificate signature not for public key in parent");
- }
- }
- catch (OperatorCreationException e)
- {
- throw new CertPathValidationException("Unable to create verifier: " + e.getMessage(), e);
- }
- catch (CertException e)
- {
- throw new CertPathValidationException("Unable to validate signature: " + e.getMessage(), e);
- }
- catch (IOException e)
- {
- throw new CertPathValidationException("Unable to build public key: " + e.getMessage(), e);
- }
- }
-
- workingIssuerName = certificate.getSubject();
- workingPublicKey = certificate.getSubjectPublicKeyInfo();
-
- if (workingAlgId != null)
- {
- // check for inherited parameters
- if (workingPublicKey.getAlgorithm().getAlgorithm().equals(workingAlgId.getAlgorithm()))
- {
- if (!isNull(workingPublicKey.getAlgorithm().getParameters()))
- {
- workingAlgId = workingPublicKey.getAlgorithm();
- }
- }
- else
- {
- workingAlgId = workingPublicKey.getAlgorithm();
- }
- }
- else
- {
- workingAlgId = workingPublicKey.getAlgorithm();
- }
- }
-
- private boolean isNull(ASN1Encodable obj)
- {
- return obj == null || obj instanceof ASN1Null;
- }
-
- public Memoable copy()
- {
- ParentCertIssuedValidation v = new ParentCertIssuedValidation(contentVerifierProvider);
-
- v.workingAlgId = this.workingAlgId;
- v.workingIssuerName = this.workingIssuerName;
- v.workingPublicKey = this.workingPublicKey;
-
- return v;
- }
-
- public void reset(Memoable other)
- {
- ParentCertIssuedValidation v = (ParentCertIssuedValidation)other;
-
- this.contentVerifierProvider = v.contentVerifierProvider;
- this.workingAlgId = v.workingAlgId;
- this.workingIssuerName = v.workingIssuerName;
- this.workingPublicKey = v.workingPublicKey;
- }
-}
diff --git a/pkix/src/main/java/org/bouncycastle/cert/path/validations/ValidationUtils.java b/pkix/src/main/java/org/bouncycastle/cert/path/validations/ValidationUtils.java
deleted file mode 100644
index 2a587065..00000000
--- a/pkix/src/main/java/org/bouncycastle/cert/path/validations/ValidationUtils.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.bouncycastle.cert.path.validations;
-
-import org.bouncycastle.cert.X509CertificateHolder;
-
-class ValidationUtils
-{
- static boolean isSelfIssued(X509CertificateHolder cert)
- {
- return cert.getSubject().equals(cert.getIssuer());
- }
-}