Cisco Cisco 3365 Mobility Services Engine Developer's Guide

Page of 224
C
ISCO 
MSE
 
API
 
S
PECI FICATI ON 
G
UI DE 
 
C
ONTEXT 
A
W ARE 
S
ERVICE  OF 
MSE,
 
R
ELEASE 
7.4
.
       
P
A G E  
217
  O F  
227  
 
    return; 
 
 
X509Certificate cert = chain[k]; 
 
String alias = host + "-" + (k + 1); 
 
ks.setCertificateEntry(alias, cert); 
 
OutputStream out = new FileOutputStream("jssecacerts"); 
 
ks.store(out, passphrase); 
 
out.close(); 
 
System.out.println(); 
 
System.out.println(cert); 
 
System.out.println(); 
 
System.out.println("Added certificate to keystore 'jssecacerts' using alias '" 
 
 
+ alias + "'"); 
    } 
    private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray(); 
    private static String toHexString(byte[] bytes)  
    { 
 
StringBuilder sb = new StringBuilder(bytes.length * 3); 
 
for (int b : bytes) { 
 
    b &= 0xff; 
 
    sb.append(HEXDIGITS[b >> 4]); 
 
    sb.append(HEXDIGITS[b & 15]); 
 
    sb.append(' '); 
 
 
return sb.toString(); 
    } 
 
    private static class SavingTrustManager implements X509TrustManager  
    {  private final X509TrustManager tm; 
 
private X509Certificate[] chain; 
 
SavingTrustManager(X509TrustManager tm) { 
 
    this.tm = tm; 
 
 
public X509Certificate[] getAcceptedIssuers() { 
 
    throw new UnsupportedOperationException(); 
 
 
public void checkClientTrusted(X509Certificate[] chain, String authType) 
 
throws CertificateException { 
 
    throw new UnsupportedOperationException(); 
 
 
public void checkServerTrusted(X509Certificate[] chain, String authType) 
 
throws CertificateException { 
 
    this.chain = chain; 
 
    tm.checkServerTrusted(chain, authType); 
 
    }