Android上的Netty-InvalidKeyException

Android上的Netty-InvalidKeyException,android,netty,Android,Netty,我想在android上运行netty。它在运行3.2的摩托罗拉Xoom平板电脑上运行良好。但在三星Galaxy S和Galaxy Tab分别运行2.3.6和3.1版时,它总是失败。异常跟踪如下所示。有没有人早些时候面对过这件事。。这方面有什么解决办法吗。。谢谢 Caused by: java.security.InvalidKeyException: The public key in the certificate cannot be used for ENCRYPT_MODE

我想在android上运行netty。它在运行3.2的摩托罗拉Xoom平板电脑上运行良好。但在三星Galaxy S和Galaxy Tab分别运行2.3.6和3.1版时,它总是失败。异常跟踪如下所示。有没有人早些时候面对过这件事。。这方面有什么解决办法吗。。谢谢

Caused by: java.security.InvalidKeyException: The public key in the 
certificate cannot be used for ENCRYPT_MODE 
     at javax.crypto.Cipher.init(Cipher.java:815) 
     at javax.crypto.Cipher.init(Cipher.java:747) 
     at 
org.apache.harmony.xnet.provider.jsse.ClientHandshakeImpl.processServerHelloDone(ClientHandshakeImpl.java: 
418) 

这应该在3.0或更高版本中修复:

根据您给出的行号,您得到了javax/crypto/Cipher.java的旧版本。你应该把它修好

编辑:

如果这不能解决问题,则可能没有启用与服务器兼容的密码套件。您可以使用或查看您的服务器喜欢的密码并启用这些密码。

这与早期版本的Android实现的
Cypher
中的缺陷一致,如果另一方的证书将KeyUsage扩展标志设置为Critical,同时不包括KeyUsage“DataEncryption”然后Android的
密码
实现认为证书无效,并抛出异常,这显然是不正确的行为


我在这附近找到了一个工作:但后来我改进了它并发回:。这让我的代码在安卓2.2上运行。不要被这个链接指向的看似无关的主题所拖累。

到解决方案的链接确实很有帮助。谢谢,太好了!您的方法适用于Android 4.0/4.1。谢谢