org.gudy.azureus2.core3.security.impl
Class SESecurityManagerImpl

java.lang.Object
  extended by org.gudy.azureus2.core3.security.impl.SESecurityManagerImpl

public class SESecurityManagerImpl
extends java.lang.Object


Field Summary
protected  java.util.Map certificate_handlers
           
protected  java.util.List<SECertificateListener> certificate_listeners
           
protected  boolean exit_vm_permitted
           
protected  java.lang.String keystore_name
           
protected static java.lang.String KEYSTORE_TYPE
           
protected  java.util.Map password_handlers
           
protected  CopyOnWriteList password_listeners
           
protected static SESecurityManagerImpl singleton
           
protected  AEMonitor this_mon
           
protected  java.lang.String truststore_name
           
 
Constructor Summary
SESecurityManagerImpl()
           
 
Method Summary
 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)
           
 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)
           
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)
           
 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()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

singleton

protected static final SESecurityManagerImpl singleton

KEYSTORE_TYPE

protected static java.lang.String KEYSTORE_TYPE

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

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

this_mon

protected final AEMonitor this_mon
Constructor Detail

SESecurityManagerImpl

public SESecurityManagerImpl()
Method Detail

getSingleton

public static SESecurityManagerImpl getSingleton()

initialise

public void initialise()

resetTrustStore

public boolean resetTrustStore(boolean test_only)

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

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)