io.gatling.recorder.internal.bouncycastle.its.jcajce.JcaITSExplicitCertificateBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gatling-recorder-bc-shaded Show documentation
Show all versions of gatling-recorder-bc-shaded Show documentation
Shaded BouncyCastle for Gatling Recorder
package io.gatling.recorder.internal.bouncycastle.its.jcajce;
import java.security.Provider;
import java.security.interfaces.ECPublicKey;
import io.gatling.recorder.internal.bouncycastle.its.ITSCertificate;
import io.gatling.recorder.internal.bouncycastle.its.ITSExplicitCertificateBuilder;
import io.gatling.recorder.internal.bouncycastle.its.ITSPublicEncryptionKey;
import io.gatling.recorder.internal.bouncycastle.its.operator.ITSContentSigner;
import io.gatling.recorder.internal.bouncycastle.jcajce.util.DefaultJcaJceHelper;
import io.gatling.recorder.internal.bouncycastle.jcajce.util.JcaJceHelper;
import io.gatling.recorder.internal.bouncycastle.jcajce.util.NamedJcaJceHelper;
import io.gatling.recorder.internal.bouncycastle.jcajce.util.ProviderJcaJceHelper;
import io.gatling.recorder.internal.bouncycastle.oer.its.ieee1609dot2.CertificateId;
import io.gatling.recorder.internal.bouncycastle.oer.its.ieee1609dot2.ToBeSignedCertificate;
public class JcaITSExplicitCertificateBuilder
extends ITSExplicitCertificateBuilder
{
private JcaJceHelper helper;
/**
* Base constructor for an ITS certificate.
*
* @param signer the content signer to be used to generate the signature validating the certificate.
* @param tbsCertificate
*/
public JcaITSExplicitCertificateBuilder(ITSContentSigner signer, ToBeSignedCertificate.Builder tbsCertificate)
{
this(signer, tbsCertificate, new DefaultJcaJceHelper());
}
private JcaITSExplicitCertificateBuilder(ITSContentSigner signer, ToBeSignedCertificate.Builder tbsCertificate, JcaJceHelper helper)
{
super(signer, tbsCertificate);
this.helper = helper;
}
public JcaITSExplicitCertificateBuilder setProvider(Provider provider)
{
this.helper = new ProviderJcaJceHelper(provider);
return this;
}
public JcaITSExplicitCertificateBuilder setProvider(String providerName)
{
this.helper = new NamedJcaJceHelper(providerName);
return this;
}
public ITSCertificate build(
CertificateId certificateId,
ECPublicKey verificationKey)
{
return build(certificateId, verificationKey, null);
}
public ITSCertificate build(
CertificateId certificateId,
ECPublicKey verificationKey,
ECPublicKey encryptionKey)
{
ITSPublicEncryptionKey publicEncryptionKey = null;
if (encryptionKey != null)
{
publicEncryptionKey = new JceITSPublicEncryptionKey(encryptionKey, helper);
}
return super.build(certificateId, new JcaITSPublicVerificationKey(verificationKey, helper), publicEncryptionKey);
}
}