当前位置: 代码迷 >> Android >> 我可以将AWS KMS加密用于Android中的客户端加密吗?
  详细解决方案

我可以将AWS KMS加密用于Android中的客户端加密吗?

热度:13   发布时间:2023-08-04 10:56:35.0

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:您可以派生自己的KMS加密材料提供程序实现。 即使该特定类(以及可能的某些依赖项)在AWS Android SDK中不存在,您仍可以在SDK上使用所需的接口: 。 可以基于此实现自己的提供程序。

选项2:使用Android SDK中提供的KMS客户端从KMS检索您自己的加密材料,然后将传递给S3客户端。

选项3:自己处理加密/解密。 从技术上讲,您可以使用KMS客户端检索加密材料,然后按照上的KMS指南对数据进行加密/解密。 如果您对密码学感到满意,请这样做。

  相关解决方案