Java org.bouncycastle.crypto.fips.FipsOperationError:模块校验和失败:输入
我有一个示例代码,其中我刚刚用公钥解密了一个数据,得到了“org.bounchycastle.crypto.fips.FipsOperationError:Module checksum failed:entry”错误 当我试图创建Cipher实例时,它抛出异常Java org.bouncycastle.crypto.fips.FipsOperationError:模块校验和失败:输入,java,encryption,cryptography,cypher,bouncycastle,Java,Encryption,Cryptography,Cypher,Bouncycastle,我有一个示例代码,其中我刚刚用公钥解密了一个数据,得到了“org.bounchycastle.crypto.fips.FipsOperationError:Module checksum failed:entry”错误 当我试图创建Cipher实例时,它抛出异常 private static boolean checkHashPadding(PublicKey key, byte[] signature) { if(key.getAlgorithm().equalsIgnore
private static boolean checkHashPadding(PublicKey key, byte[]
signature) {
if(key.getAlgorithm().equalsIgnoreCase("RSA")) {
try {
// Unencrypt the data to get the hash (as in PKCS#1 format)
Cipher c = Cipher.getInstance("RSA/NONE/PKCS1Padding", new
BouncyCastleFipsProvider()); // -- IT is Failing here
c.init(Cipher.DECRYPT_MODE, key);
byte[] hashDER = c.doFinal(signature);
System.out.println(hashDER);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
return true;
}
主要功能:
公共静态void main(字符串s[]{
}
添加堆栈跟踪:
Exception in thread "main"
org.bouncycastle.crypto.fips.FipsOperationError: Module checksum
failed: entry
at org.bouncycastle.crypto.fips.FipsStatus.checksumValidate(Unknown
Source)
at org.bouncycastle.crypto.fips.FipsStatus.isReady(Unknown Source)
at
org.bouncycastle.crypto.CryptoServicesRegistrar.getDefaultMode(Unknown
Source)
at org.bouncycastle.crypto.CryptoServicesRegistrar.<clinit>(Unknown
Source)
at org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.<init>
(Unknown Source)
at org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.<init>
将引发异常:
bc fips source.jar
。当我在eclipse中将其从构建路径中删除时,我的示例代码开始工作如果您需要FIPS,请确保您使用的bc FIPS jar与从bc下载的完全相同,没有任何更改;如果你不需要FIPS(99%的用户不需要),就不要使用它(在这种情况下,你不需要Oracle/Sun/OpenJDK中的BC provider用于RSA签名,但CMS确实需要BC,所以你也可以使用它)。我需要FIPS jar,我仍然在使用一个,它显示错误。NPE意味着你有一个截断的jar文件,请再次下载。下载页面上也有SHA1和SHA256校验和,所以请对照它们检查文件。我下载了校验和,但它与jar的META-INF/HMAC.SHA256中的校验和不匹配。即使在我再次下载JAR时,校验和也是不同的。@AmritRaj您指的是BC-FJA 1.0.1中已经修复的缺陷,该缺陷上周刚刚获得认证。您使用的是1.0.1吗?一般来说,不应该将source.jar添加到类路径中。您可以在IDE中引用它们,但它们不应该出现在类路径本身中。
Exception in thread "main"
org.bouncycastle.crypto.fips.FipsOperationError: Module checksum
failed: entry
at org.bouncycastle.crypto.fips.FipsStatus.checksumValidate(Unknown
Source)
at org.bouncycastle.crypto.fips.FipsStatus.isReady(Unknown Source)
at
org.bouncycastle.crypto.CryptoServicesRegistrar.getDefaultMode(Unknown
Source)
at org.bouncycastle.crypto.CryptoServicesRegistrar.<clinit>(Unknown
Source)
at org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.<init>
(Unknown Source)
at org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.<init>
Caused by: java.lang.NullPointerException: entry
at java.util.zip.ZipFile.getInputStream(ZipFile.java:342)
at java.util.jar.JarFile.getInputStream(JarFile.java:412)
... 9 more