以下代码在Android 4.4上执行时抛出UnsupportedOperationException,但在Android 5和6上运行良好(在设备和模拟器上测试)。在setParameter上引发异常。
Signature signature = Signature.getInstance("SHA256withRSA/PSS", "SC");
PSSParameterSpec spec1 = new PSSParameterSpec("SHA-256", "MGF1", new MGF1ParameterSpec("SHA-256"), 32, 1);
signature.setParameter(spec1);
我使用Spongy Castle是为了能够使用带有RSA/PSS的SHA256。
知道为什么吗?
在android开源项目中,63139号文件记录了这个确切的错误。这适用于5.0以下的任何android版本。具体而言,"私有静态SignatureImpl类的实现(第590行)缺少engineSetParameter实现之一。"有关详细信息,请阅读问题报告。
https://code.google.com/p/android/issues/detail?id=63139