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