问题描述
Android AWS SDK中没有用于KMS加密的方法。
在服务器端,我们使用KMSEncryptionMaterialsProvider
创建AmazonS3EncryptionClient
对象,但是此类在Android SDK中不可用。
我尝试在Android项目中使用Java SDK,但发生了异常
码:
KMSEncryptionMaterialsProvider materialProvider = new KMSEncryptionMaterialsProvider(kms_cmk_id);
encryptionClient = new AmazonS3EncryptionClient(new ProfileCredentialsProvider(), materialProvider,
new CryptoConfiguration())
.withRegion(Region.getRegion(Regions.US_WEST_2));
例外
原因:java.lang.ClassNotFoundException:在路径:DexPathList上找不到类“ javax.management.MBeanServerFactory”
1楼
对的,这是可能的。 我给您三个选择,但是所有这些都需要使您的手更脏一点。
选项1:您可以派生自己的KMS加密材料提供程序实现。 即使该特定类(以及可能的某些依赖项)在AWS Android SDK中不存在,您仍可以在SDK上使用所需的接口: 。 可以基于此实现自己的提供程序。
选项2:使用Android SDK中提供的KMS客户端从KMS检索您自己的加密材料,然后将传递给S3客户端。
选项3:自己处理加密/解密。 从技术上讲,您可以使用KMS客户端检索加密材料,然后按照上的KMS指南对数据进行加密/解密。 如果您对密码学感到满意,请这样做。