io.gatling.recorder.internal.bouncycastle.cert.cmp.CertificateStatus Maven / Gradle / Ivy
package io.gatling.recorder.internal.bouncycastle.cert.cmp;
import java.math.BigInteger;
import io.gatling.recorder.internal.bouncycastle.asn1.cmp.CMPCertificate;
import io.gatling.recorder.internal.bouncycastle.asn1.cmp.CertStatus;
import io.gatling.recorder.internal.bouncycastle.asn1.cmp.PKIStatusInfo;
import io.gatling.recorder.internal.bouncycastle.asn1.x509.AlgorithmIdentifier;
import io.gatling.recorder.internal.bouncycastle.cert.X509CertificateHolder;
import io.gatling.recorder.internal.bouncycastle.operator.DigestAlgorithmIdentifierFinder;
import io.gatling.recorder.internal.bouncycastle.operator.DigestCalculator;
import io.gatling.recorder.internal.bouncycastle.operator.DigestCalculatorProvider;
import io.gatling.recorder.internal.bouncycastle.operator.OperatorCreationException;
import io.gatling.recorder.internal.bouncycastle.util.Arrays;
public class CertificateStatus
{
private DigestAlgorithmIdentifierFinder digestAlgFinder;
private CertStatus certStatus;
CertificateStatus(DigestAlgorithmIdentifierFinder digestAlgFinder, CertStatus certStatus)
{
this.digestAlgFinder = digestAlgFinder;
this.certStatus = certStatus;
}
public PKIStatusInfo getStatusInfo()
{
return certStatus.getStatusInfo();
}
public BigInteger getCertRequestID()
{
return certStatus.getCertReqId().getValue();
}
public boolean isVerified(X509CertificateHolder certHolder, DigestCalculatorProvider digesterProvider)
throws CMPException
{
return isVerified(new CMPCertificate(certHolder.toASN1Structure()), certHolder.getSignatureAlgorithm(),
digesterProvider);
}
public boolean isVerified(CMPCertificate cmpCert, AlgorithmIdentifier signatureAlgorithm,
DigestCalculatorProvider digesterProvider)
throws CMPException
{
byte[] certHash = CMPUtil.calculateCertHash(cmpCert, signatureAlgorithm, digesterProvider, digestAlgFinder);
return Arrays.constantTimeAreEqual(certStatus.getCertHash().getOctets(), certHash);
}
}