package com.easysocket.config; 
 | 
  
 | 
import javax.net.ssl.KeyManager; 
 | 
import javax.net.ssl.SSLSocketFactory; 
 | 
import javax.net.ssl.TrustManager; 
 | 
  
 | 
/** 
 | 
 * socket的ssl配置 
 | 
 */ 
 | 
  
 | 
public class SocketSSLConfig { 
 | 
    /** 
 | 
     * 安全协议名称(缺省为SSL) 
 | 
     */ 
 | 
    private String mProtocol; 
 | 
    /** 
 | 
     * 信任证书管理器(缺省为X509) 
 | 
     */ 
 | 
    private TrustManager[] mTrustManagers; 
 | 
    /** 
 | 
     * 证书秘钥管理器(缺省为null) 
 | 
     */ 
 | 
    private KeyManager[] mKeyManagers; 
 | 
    /** 
 | 
     * 自定义SSLFactory(缺省为null) 
 | 
     */ 
 | 
    private SSLSocketFactory mCustomSSLFactory; 
 | 
  
 | 
    private SocketSSLConfig() { 
 | 
  
 | 
    } 
 | 
  
 | 
    public static class Builder { 
 | 
  
 | 
        private SocketSSLConfig mConfig; 
 | 
  
 | 
        public Builder() { 
 | 
            mConfig = new SocketSSLConfig(); 
 | 
        } 
 | 
  
 | 
        public Builder setProtocol(String protocol) { 
 | 
            mConfig.mProtocol = protocol; 
 | 
            return this; 
 | 
        } 
 | 
  
 | 
        public Builder setTrustManagers(TrustManager[] trustManagers) { 
 | 
            mConfig.mTrustManagers = trustManagers; 
 | 
            return this; 
 | 
        } 
 | 
  
 | 
        public Builder setKeyManagers(KeyManager[] keyManagers) { 
 | 
            mConfig.mKeyManagers = keyManagers; 
 | 
            return this; 
 | 
        } 
 | 
  
 | 
        public Builder setCustomSSLFactory(SSLSocketFactory customSSLFactory) { 
 | 
            mConfig.mCustomSSLFactory = customSSLFactory; 
 | 
            return this; 
 | 
        } 
 | 
  
 | 
        public SocketSSLConfig build() { 
 | 
            return mConfig; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public KeyManager[] getKeyManagers() { 
 | 
        return mKeyManagers; 
 | 
    } 
 | 
  
 | 
    public String getProtocol() { 
 | 
        return mProtocol; 
 | 
    } 
 | 
  
 | 
    public TrustManager[] getTrustManagers() { 
 | 
        return mTrustManagers; 
 | 
    } 
 | 
  
 | 
    public SSLSocketFactory getCustomSSLFactory() { 
 | 
        return mCustomSSLFactory; 
 | 
    } 
 | 
} 
 |