Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* ************************************************************************
  #
  #  DivConq
  #
  #  http://divconq.com/
  #
  #  Copyright:
  #    Copyright 2014 eTimeline, LLC. All rights reserved.
  #
 #  License:
 #    See the license.txt file in the project's top-level directory for details.
 #
 #  Authors:
 #    * Andy White
 #
 ************************************************************************ */
 package divconq.bus.net;
 
 
 
 
 public final class SslContextFactory {
     static protected SSLContext ServerContext = null;
     static protected SSLContext ClientContext = null;
 
     static public void init(XElement config) {
     	if (config == null)
     		return;
         
         BusTrustManager tm = new BusTrustManager();
         tm.init(config);
         
         TrustManager[] trustManagers = new TrustManager[] { tm };
     	
     	XElement sslconfig = config.selectFirst("SslContext");
     	
     	if (sslconfig != null) {
 	        String algorithm = sslconfig.getAttribute("Algorithm""SunX509");
 	        String protocol = sslconfig.getAttribute("Protocol""TLSv1.2");
 	        
 	        String jksfile = sslconfig.getAttribute("File");
 	        String jkspass = null;
 	        
 	        ISettingsObfuscator ob = ..getClock().getObfuscator();
 	        
 	        if (ob != null)
 	        	jkspass = ob.decryptHexToString(sslconfig.getAttribute("Password"));	
 	        
 	        if (jkspass == null)
 	        	jkspass = sslconfig.getAttribute("Password");
 	        
 	        if (StringUtil.isNotEmpty(jksfile))
 		        try {
 		        	// load keystore
 		            KeyStore ks = KeyStore.getInstance("JKS");
 		            ks.load(new FileInputStream(jksfile), jkspass.toCharArray());
 		
 		            KeyManagerFactory kmf = KeyManagerFactory.getInstance(algorithm);
 		            kmf.init(ksjkspass.toCharArray());
 		
 		            // init server context
 		            SSLContext serverContext = SSLContext.getInstance(protocol);
 		            serverContext.init(kmf.getKeyManagers(), trustManagersnull);
 		            
 		            . = serverContext;
 		            
 		            // init client context
 		            SSLContext clientContext = SSLContext.getInstance(protocol);
 		            clientContext.init(kmf.getKeyManagers(), trustManagersnull);
 		            
 		            . = clientContext;
 		        } 
 		        catch (Exception x) {
 		        	// TODO
 		            throw new Error("Failed to initialize the SSLContext"x);
 		        }
     	}
     }
 
     public static SSLContext getServerContext() {
         return .;
     }
 
 	public static SSLEngine getServerEngine() {
         engine.setUseClientMode(false);
         engine.setWantClientAuth(true);
         
         ..harden(engine);
        
		return engine;
	}
    public static SSLContext getClientContext() {
        return .;
    }
	public static SSLEngine getClientEngine() {
        engine.setUseClientMode(true);
        
        ..harden(engine);
        
        return engine;
	}
    private SslContextFactory() {
    }
New to GrepCode? Check out our FAQ X