Cisco Cisco 3350 Mobility Services Engine Guide Du Développeur

Page de 224
                   
C
ISCO 
MSE
 
API
 
S
PECI FICATI ON 
G
UIDE 
 
C
ONTEXT 
A
W ARE 
S
ERVICE OF 
MSE,
 
R
EL EASE 
7.4
.
                                   
P
A G E  
216
  O F  
227  
 
 
SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);
 
context.init(null, new TrustManager[] {tm}, null); 
 
SSLSocketFactory factory = context.getSocketFactory(); 
 
System.out.println("Opening connection to " + host + ":" + port + "...");
 
SSLSocket socket = (SSLSocket)factory.createSocket(host, port);
 
socket.setSoTimeout(10000); 
 
try { 
 
    System.out.println("Starting SSL handshake..."); 
 
    socket.startHandshake(); 
 
    socket.close(); 
 
    System.out.println(); 
 
    System.out.println("No errors, certificate is already trusted"); 
 
} catch (SSLException e) { 
 
    System.out.println(); 
 
    e.printStackTrace(System.out); 
 
 
X509Certificate[] chain = tm.chain; 
 
if (chain == null) { 
 
    System.out.println("Could not obtain server certificate chain"); 
 
    return; 
 
 
BufferedReader reader = 
 
 
new BufferedReader(new InputStreamReader(System.in)); 
 
System.out.println(); 
 
System.out.println("Server sent " + chain.length + " certificate(s):"); 
 
System.out.println(); 
 
MessageDigest sha1 = MessageDigest.getInstance("SHA1"); 
 
MessageDigest md5 = MessageDigest.getInstance("MD5"); 
 
for (int i = 0; i < chain.length; i++)  
        { 
 
    X509Certificate cert = chain[i]; 
 
    System.out.println (" " + (i + 1) + " Subject " + cert.getSubjectDN()); 
 
    System.out.println("   Issuer  " + cert.getIssuerDN()); 
 
    sha1.update(cert.getEncoded()); 
 
    System.out.println("   sha1    " + toHexString(sha1.digest())); 
 
    md5.update(cert.getEncoded()); 
 
    System.out.println("   md5     " + toHexString(md5.digest())); 
 
    System.out.println(); 
 
       System.out.println("Enter certificate to add to trusted keystore or 'q' to quit: 
[1]"); 
 
String line = reader.readLine().trim(); 
 
int k; 
 
try { 
 
    k = (line.length() == 0) ? 0 : Integer.parseInt(line) - 1; 
 
} catch (NumberFormatException e) { 
 
    System.out.println("KeyStore not changed");