【问题标题】:Android Spongy Castle Gradle dependenciesAndroid Spongy Castle Gradle 依赖项
【发布时间】:2024-04-13 17:55:02
【问题描述】:

我是密码学新手。我想使用 Spongy Castle 加密(AES)文件并将其写入磁盘。我是否需要 .gradle 文件中的所有四 (4) 个依赖项?

compile 'com.madgag.spongycastle:core:1.51.0.0'
compile 'com.madgag.spongycastle:prov:1.51.0.0'
compile 'com.madgag.spongycastle:pkix:1.51.0.0'
compile 'com.madgag.spongycastle:pg:1.51.0.0'

【问题讨论】:

    标签: android gradle spongycastle


    【解决方案1】:

    pgpkix 都依赖于 prov,而 prov 又依赖于 core,因此这足以将所有四个 jar 添加到您的项目中。

    compile 'com.madgag.spongycastle:bcpkix-jdk15on:<version>'
    compile 'com.madgag.spongycastle:bcpg-jdk15on:<version>'
    

    但是你需要pkix 和pg 吗?一个包含 PKIX、CMS、EAC、TSP、PKCS、OCSP、CMP 和 CRMF 的 API,另一个包含 OpenPGP API。您应该只包含您实际需要的那个。

    最后,除非您有 非常好的理由,否则您应该使用最新版本的 SpongyCastle - 而不仅仅是您从另一个 * 答案复制粘贴的版本。你可以在 Maven Central 上找到latest version

    【讨论】:

    • 名称已更改。您将需要使用 bcpkix-jdk15on 代替 pkix 和 bcpg-jdk15on 代替 pg,即分别编译 'com.madgag.spongycastle:bcpkix-jdk15on:'。编译 'com.madgag.spongycastle:bcpg-jdk15on:'
    • 添加 bcpkix-jdk15on 就足够了,因为它依赖于 prov 和 core?所以不需要显式添加prov和core依赖?
    • 不,它们应该已经是 bcpkix 或 bcpg 的依赖项,并且会被 maven 或 gradle 自动包含在您的项目中