Package com.biglybt.core.security.impl
Class SESecurityManagerImpl
- java.lang.Object
-
- com.biglybt.core.security.impl.SESecurityManagerImpl
-
public class SESecurityManagerImpl extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
SESecurityManagerImpl.ClientSecurityManager
-
Field Summary
Fields Modifier and Type Field Description private static boolean
auto_decline_certs
private static boolean
auto_install_certs
protected java.util.Map
certificate_handlers
protected java.util.List<SECertificateListener>
certificate_listeners
protected boolean
exit_vm_permitted
private java.lang.reflect.Constructor
hack_constructor
private boolean
hack_constructor_tried
private boolean
initialized
protected java.lang.String
keystore_name
protected static java.lang.String
KEYSTORE_TYPE
private static LogIDs
LOGID
private SESecurityManagerImpl.ClientSecurityManager
my_sec_man
protected java.util.Map
password_handlers
protected CopyOnWriteList
password_listeners
protected static SESecurityManagerImpl
singleton
(package private) java.util.List
stoppable_threads
protected AEMonitor
this_mon
private static java.lang.ThreadLocal
tls
protected java.lang.String
truststore_name
-
Constructor Summary
Constructors Constructor Description SESecurityManagerImpl()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCertificateListener(SECertificateListener l)
protected void
addCertToKeyStore(java.lang.String alias, java.security.Key public_key, java.security.cert.Certificate[] certChain)
protected javax.net.ssl.SSLSocketFactory
addCertToTrustStore(java.lang.String alias, java.security.cert.Certificate cert, boolean update_https_factory)
void
addPasswordListener(SEPasswordListener l)
protected boolean
checkKeyStoreHasEntry()
void
clearPasswords()
java.security.cert.Certificate
createSelfSignedCertificate(java.lang.String alias, java.lang.String cert_dn, int strength)
protected boolean
ensureStoreExists(java.lang.String name)
void
exitVM(int status)
javax.net.ssl.TrustManager[]
getAllTrustingTrustManager()
javax.net.ssl.TrustManager[]
getAllTrustingTrustManager(javax.net.ssl.X509TrustManager delegate)
java.net.PasswordAuthentication
getAuthentication(java.lang.String realm, java.lang.String protocol, java.lang.String host, int port)
java.lang.Class[]
getClassContext()
SEKeyDetails
getKeyDetails(java.lang.String alias)
java.security.KeyStore
getKeyStore()
java.lang.String
getKeystoreName()
java.lang.String
getKeystorePassword()
java.net.PasswordAuthentication
getPasswordAuthentication(java.lang.String realm, java.net.URL tracker)
static SESecurityManagerImpl
getSingleton()
javax.net.ssl.SSLServerSocketFactory
getSSLServerSocketFactory()
javax.net.ssl.SSLSocketFactory
getSSLSocketFactory()
javax.net.ssl.TrustManagerFactory
getTrustManagerFactory()
java.security.KeyStore
getTrustStore()
java.security.KeyStore
getTrustStore(boolean attempt_recovery)
private void
initEmptyTrustStore()
void
initialise()
void
installAuthenticator()
protected void
installSecurityManager()
javax.net.ssl.SSLSocketFactory
installServerCertificates(java.lang.String alias, java.lang.String host, int port)
javax.net.ssl.SSLSocketFactory
installServerCertificates(java.lang.String alias, java.lang.String host, int port, boolean sni_hack)
javax.net.ssl.SSLSocketFactory
installServerCertificates(java.net.URL https_url)
private javax.net.ssl.SSLSocketFactory
installServerCertificates(java.net.URL https_url, boolean sni_hack, boolean dh_hack)
protected java.security.KeyStore
loadKeyStore()
protected java.security.KeyStore
loadKeyStore(javax.net.ssl.KeyManagerFactory keyManagerFactory)
static void
main(java.lang.String[] args)
void
removeCertificateListener(SECertificateListener l)
void
removePasswordListener(SEPasswordListener l)
boolean
resetTrustStore(boolean test_only)
private boolean
resetTrustStore(boolean test_only, boolean recovering)
void
setCertificateHandler(java.net.URL url, SECertificateListener l)
void
setPasswordAuthenticationOutcome(java.lang.String realm, java.net.URL tracker, boolean success)
void
setPasswordHandler(java.net.URL url, SEPasswordListener l)
void
setThreadPasswordHandler(SEPasswordListener l)
void
stopThread(java.lang.Thread t)
void
unsetThreadPasswordHandler()
-
-
-
Field Detail
-
LOGID
private static final LogIDs LOGID
-
singleton
protected static final SESecurityManagerImpl singleton
-
KEYSTORE_TYPE
protected static java.lang.String KEYSTORE_TYPE
-
auto_install_certs
private static boolean auto_install_certs
-
auto_decline_certs
private static boolean auto_decline_certs
-
keystore_name
protected java.lang.String keystore_name
-
truststore_name
protected java.lang.String truststore_name
-
certificate_listeners
protected final java.util.List<SECertificateListener> certificate_listeners
-
password_listeners
protected final CopyOnWriteList password_listeners
-
tls
private static final java.lang.ThreadLocal tls
-
password_handlers
protected final java.util.Map password_handlers
-
certificate_handlers
protected final java.util.Map certificate_handlers
-
exit_vm_permitted
protected boolean exit_vm_permitted
-
my_sec_man
private SESecurityManagerImpl.ClientSecurityManager my_sec_man
-
this_mon
protected final AEMonitor this_mon
-
initialized
private boolean initialized
-
stoppable_threads
final java.util.List stoppable_threads
-
hack_constructor_tried
private boolean hack_constructor_tried
-
hack_constructor
private java.lang.reflect.Constructor hack_constructor
-
-
Method Detail
-
getSingleton
public static SESecurityManagerImpl getSingleton()
-
initialise
public void initialise()
-
initEmptyTrustStore
private void initEmptyTrustStore()
-
resetTrustStore
public boolean resetTrustStore(boolean test_only)
-
resetTrustStore
private boolean resetTrustStore(boolean test_only, boolean recovering)
-
getKeystoreName
public java.lang.String getKeystoreName()
-
getKeystorePassword
public java.lang.String getKeystorePassword()
-
installSecurityManager
protected void installSecurityManager()
-
stopThread
public void stopThread(java.lang.Thread t)
-
exitVM
public void exitVM(int status)
-
installAuthenticator
public void installAuthenticator()
-
getAuthentication
public java.net.PasswordAuthentication getAuthentication(java.lang.String realm, java.lang.String protocol, java.lang.String host, int port)
-
checkKeyStoreHasEntry
protected boolean checkKeyStoreHasEntry()
-
ensureStoreExists
protected boolean ensureStoreExists(java.lang.String name)
-
getKeyStore
public java.security.KeyStore getKeyStore() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getTrustStore
public java.security.KeyStore getTrustStore() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getTrustStore
public java.security.KeyStore getTrustStore(boolean attempt_recovery) throws java.lang.Exception
- Throws:
java.lang.Exception
-
loadKeyStore
protected java.security.KeyStore loadKeyStore() throws java.lang.Exception
- Throws:
java.lang.Exception
-
loadKeyStore
protected java.security.KeyStore loadKeyStore(javax.net.ssl.KeyManagerFactory keyManagerFactory) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getSSLServerSocketFactory
public javax.net.ssl.SSLServerSocketFactory getSSLServerSocketFactory() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getKeyDetails
public SEKeyDetails getKeyDetails(java.lang.String alias) throws java.lang.Exception
- Throws:
java.lang.Exception
-
createSelfSignedCertificate
public java.security.cert.Certificate createSelfSignedCertificate(java.lang.String alias, java.lang.String cert_dn, int strength) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getTrustManagerFactory
public javax.net.ssl.TrustManagerFactory getTrustManagerFactory()
-
getSSLSocketFactory
public javax.net.ssl.SSLSocketFactory getSSLSocketFactory()
-
installServerCertificates
public javax.net.ssl.SSLSocketFactory installServerCertificates(java.net.URL https_url)
-
getAllTrustingTrustManager
public javax.net.ssl.TrustManager[] getAllTrustingTrustManager()
-
getAllTrustingTrustManager
public javax.net.ssl.TrustManager[] getAllTrustingTrustManager(javax.net.ssl.X509TrustManager delegate)
-
installServerCertificates
private javax.net.ssl.SSLSocketFactory installServerCertificates(java.net.URL https_url, boolean sni_hack, boolean dh_hack)
-
installServerCertificates
public javax.net.ssl.SSLSocketFactory installServerCertificates(java.lang.String alias, java.lang.String host, int port)
-
installServerCertificates
public javax.net.ssl.SSLSocketFactory installServerCertificates(java.lang.String alias, java.lang.String host, int port, boolean sni_hack)
-
addCertToKeyStore
protected void addCertToKeyStore(java.lang.String alias, java.security.Key public_key, java.security.cert.Certificate[] certChain) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addCertToTrustStore
protected javax.net.ssl.SSLSocketFactory addCertToTrustStore(java.lang.String alias, java.security.cert.Certificate cert, boolean update_https_factory) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getPasswordAuthentication
public java.net.PasswordAuthentication getPasswordAuthentication(java.lang.String realm, java.net.URL tracker)
-
setPasswordAuthenticationOutcome
public void setPasswordAuthenticationOutcome(java.lang.String realm, java.net.URL tracker, boolean success)
-
addPasswordListener
public void addPasswordListener(SEPasswordListener l)
-
removePasswordListener
public void removePasswordListener(SEPasswordListener l)
-
clearPasswords
public void clearPasswords()
-
setThreadPasswordHandler
public void setThreadPasswordHandler(SEPasswordListener l)
-
unsetThreadPasswordHandler
public void unsetThreadPasswordHandler()
-
setPasswordHandler
public void setPasswordHandler(java.net.URL url, SEPasswordListener l)
-
addCertificateListener
public void addCertificateListener(SECertificateListener l)
-
setCertificateHandler
public void setCertificateHandler(java.net.URL url, SECertificateListener l)
-
removeCertificateListener
public void removeCertificateListener(SECertificateListener l)
-
getClassContext
public java.lang.Class[] getClassContext()
-
main
public static void main(java.lang.String[] args)
-
-