java - 无法在 Android aosp 中解析 org.bouncycastle.cms
问题描述
我正在尝试在 Android 源代码中添加自定义签名验证。我尝试使用 bouncycastle 库中的方法来完成工作。具体来说,我想使用 CMSSignedData 这是一种存储签名值和信息的数据结构来验证签名(例如公钥和算法)。org.bouncycastle.cms 包中的 CMSSignedData,所以我尝试将此包导入我要进行验证的 .java 文件中。但是我收到一个编译错误,说 org.bouncycastle 中的 cms 无法解析。
我检查了位于 ~/aosp/externel/bouncycastle 中的库 bouncycastle,发现有两个子目录:bcprov 和 bcpkix。CMSSignedData 驻留在 bcpkix 中。然后我阅读了这个目录中的 Android.mk,它似乎构建了两个模块:'bouncycastle' 用于 bcprov 下的源代码和 'bouncycastle-bcpkix' 用于 bcpkix。
模块 bouncycastle 从 makefile 中的 bcprov 生成。
从 makefile 中的 bcpkix 生成的模块 bouncycastle-bcpkix
然后我检查了我打算修改的java的makefile。java文件的位置是~/aosp/frameworks/base/core/java/android/util/jar。Android.mk 的路径是~/aosp/frameworks/base。LOCAL_JAVA_LIBRARIES
我看到它在and中添加了“bouncycastle” framework_docs_LOCAL_API_CHECK_JAVA_LIBRARIES
。但在 makefile 中找不到“bouncycastle-bcpkix”。
所以我想问题是~/aosp/frameworks/base/Android.mk 只导入与“bcprov”相关的“bouncycastle”,而我打算使用的 cms 在另一个“bouncycastle-bcpkix”中。因此,我添加了 'bouncycastle-bcpkix',LOCAL_STATIC_JAVA_LIBRARIES
因为它是由include $(BUILD_STATIC_JAVA_LIBRARY)
. 但是编译 aosp 时出现 ninja:dependency cycle 错误。描述的错误
有谁知道发生了什么?导入 org.bouncycastle.cms 的正确方法是什么?
解决方案
推荐阅读
- excel - 什么是excel中的工作簿?
- prometheus - 为什么prometheus pushgateway会抛出400错误?
- android - Jetpack Compose 中的文本布局优先级
- javascript - 对 vue 组件中的表格进行排序
- python - 遍历 df 中的行并根据这些值创建一个新列
- multithreading - STA/MTA 与公寓/空闲线程与 UI 线程/工作线程是什么?为什么改名?
- crc - CRC存储在16位中,有一个额外的值表示未初始化的CRC值?
- amazon-web-services - AWS - 将 TTL 删除的数据从 DynamoDB 存档到 S3
- python - 如何使用 Python 检查 SMTP 服务器是否处于活动状态?
- amazon-web-services - 调用 GetKeyPolicy 操作时出现错误消息 ValidationException