Package com.browserup.bup.mitm.manager
Class ImpersonatingMitmManager
- java.lang.Object
-
- com.browserup.bup.mitm.manager.ImpersonatingMitmManager
-
- All Implemented Interfaces:
org.littleshoot.proxy.MitmManager
public class ImpersonatingMitmManager extends java.lang.Object implements org.littleshoot.proxy.MitmManagerAnMitmManagerthat will create SSLEngines for clients that present impersonated certificates for upstream servers. The impersonated certificates will be signed using the certificate and private key specified in anrootCertificateSource. The impersonated server certificates will be created by thesecurityProviderToolbased on theCertificateInforeturned by thecertificateInfoGenerator.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classImpersonatingMitmManager.BuilderA Builder forImpersonatingMitmManagers.
-
Constructor Summary
Constructors Constructor Description ImpersonatingMitmManager(CertificateAndKeySource rootCertificateSource, KeyGenerator serverKeyGenerator, java.lang.String serverMessageDigest, TrustSource trustSource, int sslContextCacheConcurrencyLevel, long cacheExpirationIntervalMs, SecurityProviderTool securityProviderTool, CertificateInfoGenerator certificateInfoGenerator, java.util.Collection<java.lang.String> serverCipherSuites, java.util.Collection<java.lang.String> clientCipherSuites)Creates a new ImpersonatingMitmManager.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ImpersonatingMitmManager.Builderbuilder()Convenience method to return a newImpersonatingMitmManager.Builderinstance default default values: aRootCertificateGeneratorthat dynamically generates an RSA root certificate and RSA server certificates.static ImpersonatingMitmManager.BuilderbuilderWithECC()Convenience method to return a newImpersonatingMitmManager.Builderinstance that will dynamically create EC root certificates and EC server certificates, but otherwise uses default values.javax.net.ssl.SSLEngineclientSslEngineFor(io.netty.handler.codec.http.HttpRequest httpRequest, javax.net.ssl.SSLSession sslSession)CertificateGenerationStatisticsgetStatistics()Returns basic certificate generation statistics for this MitmManager.javax.net.ssl.SSLEngineserverSslEngine()javax.net.ssl.SSLEngineserverSslEngine(java.lang.String peerHost, int peerPort)
-
-
-
Constructor Detail
-
ImpersonatingMitmManager
public ImpersonatingMitmManager(CertificateAndKeySource rootCertificateSource, KeyGenerator serverKeyGenerator, java.lang.String serverMessageDigest, TrustSource trustSource, int sslContextCacheConcurrencyLevel, long cacheExpirationIntervalMs, SecurityProviderTool securityProviderTool, CertificateInfoGenerator certificateInfoGenerator, java.util.Collection<java.lang.String> serverCipherSuites, java.util.Collection<java.lang.String> clientCipherSuites)
Creates a new ImpersonatingMitmManager. In general, useImpersonatingMitmManager.Builderto construct new instances.- Parameters:
cacheExpirationIntervalMs- cacheExpirationIntervalMscertificateInfoGenerator- certificateInfoGeneratorclientCipherSuites- clientCipherSuitesrootCertificateSource- rootCertificateSourcesecurityProviderTool- securityProviderToolserverCipherSuites- serverCipherSuitesserverKeyGenerator- serverKeyGeneratorserverMessageDigest- serverMessageDigestsslContextCacheConcurrencyLevel- sslContextCacheConcurrencyLeveltrustSource- trustSource
-
-
Method Detail
-
serverSslEngine
public javax.net.ssl.SSLEngine serverSslEngine()
- Specified by:
serverSslEnginein interfaceorg.littleshoot.proxy.MitmManager
-
serverSslEngine
public javax.net.ssl.SSLEngine serverSslEngine(java.lang.String peerHost, int peerPort)- Specified by:
serverSslEnginein interfaceorg.littleshoot.proxy.MitmManager
-
clientSslEngineFor
public javax.net.ssl.SSLEngine clientSslEngineFor(io.netty.handler.codec.http.HttpRequest httpRequest, javax.net.ssl.SSLSession sslSession)- Specified by:
clientSslEngineForin interfaceorg.littleshoot.proxy.MitmManager
-
getStatistics
public CertificateGenerationStatistics getStatistics()
Returns basic certificate generation statistics for this MitmManager.- Returns:
- CertificateGenerationStatistics
-
builder
public static ImpersonatingMitmManager.Builder builder()
Convenience method to return a newImpersonatingMitmManager.Builderinstance default default values: aRootCertificateGeneratorthat dynamically generates an RSA root certificate and RSA server certificates.- Returns:
- Builder
-
builderWithECC
public static ImpersonatingMitmManager.Builder builderWithECC()
Convenience method to return a newImpersonatingMitmManager.Builderinstance that will dynamically create EC root certificates and EC server certificates, but otherwise uses default values.- Returns:
- Builder
-
-