Java BouncyCastle和AES-GCM

Java BouncyCastle和AES-GCM,java,aes,bouncycastle,Java,Aes,Bouncycastle,我想使用带有BouncyCastle的AES-GCM作为提供者,以便使用解密进行完整性检查。我很好奇当完整性检查失败时会出现什么样的异常。它是否为InvalidCipherTextException 在解密AES-GCM加密blob的上下文中,是否还有其他应处理的异常 我看到轻量级API在中列出了更多的异常,产生的异常实际上是InvalidCipherTextException。这个答案是从Bouncy Castle源代码中提取的,该源代码是公开的(例如,使用匿名访问源存储库) 这在存储库中该文

我想使用带有BouncyCastle的AES-GCM作为提供者,以便使用解密进行完整性检查。我很好奇当完整性检查失败时会出现什么样的异常。它是否为InvalidCipherTextException

在解密AES-GCM加密blob的上下文中,是否还有其他应处理的异常


我看到轻量级API在

中列出了更多的异常,产生的异常实际上是
InvalidCipherTextException
。这个答案是从Bouncy Castle源代码中提取的,该源代码是公开的(例如,使用匿名访问源存储库)


这在存储库中该文件的1.13到1.18版本中似乎相同,请再次检查更高版本。

对于轻量级API,产生的异常实际上是
InvalidCipherTextException
。这个答案是从Bouncy Castle源代码中提取的,该源代码是公开的(例如,使用匿名访问源存储库)


在存储库中该文件的1.13到1.18版本中,这似乎是相同的,请再次检查更高版本。

恐怕我不知道答案,但您可以修改一些位,看看如果检查失败会出现什么异常?您是在尝试使用轻量级API还是JCE提供程序?结果取决于API,我知道提供程序将返回一个
BadPaddingException
,以与Java API兼容,但可能有更具体的原因。恐怕我不知道答案,但是,您可以修改一些位,看看如果检查失败会出现什么异常?您是在尝试使用轻量级API还是JCE提供程序?结果取决于API,我知道提供程序将返回一个
BadPaddingException
,以与Java API兼容,但它可能有更具体的原因。
if (!Arrays.constantTimeAreEqual(this.macBlock, msgMac))
{
    throw new InvalidCipherTextException("mac check in GCM failed");
}