Chinaunix首页 | 论坛 | 博客
  • 博客访问: 929155
  • 博文数量: 201
  • 博客积分: 8078
  • 博客等级: 中将
  • 技术积分: 2162
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-20 17:22
文章分类

全部博文(201)

文章存档

2013年(3)

2012年(11)

2011年(34)

2010年(25)

2009年(51)

2008年(77)

分类: LINUX

2011-08-19 13:13:03

from:
经过修改,测试的确可以在android上使用。

折腾了两天,终于知道android上使用NIO的SSL的(也就是SSLEngine)的关键了。
关键的代码如下
   String[] cipherSuites = sslEngine.getSupportedCipherSuites();
            Set enabledSuites = new HashSet();
            for (String cipherSuite : cipherSuites)
                       enabledSuites.add(cipherSuite);
            sslEngine.setEnabledCipherSuites((String[]) enabledSuites
                            .toArray(new String[enabledSuites.size()]));
在这里作个笔记,同时也分享给在搞android的需要的同学。

如果不加入这几行代码的话,那么会在握手的时候抛异常:javax.net.ssl.SSLException: Error occured in delegated至于在考虑校验服务器的证书的情况下,如何处理 TrustManager,可以使用一下两种方式之一:
1、最最简单的办法。
sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, null, null);

2、使用网上提供的别人写的EasyX509TrustManager的类。
sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, new TrustManager[] {new EasyX509TrustManager(null)}, null);

两个用起来感觉是一样的,如果想深入的话就自己去搞吧。

阅读(2420) | 评论(0) | 转发(0) |
0

上一篇:常见的UPNP操作

下一篇:一只死去的鸟儿

给主人留下些什么吧!~~