本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Connect 连接到多个 AWS CloudHSM 集群
每个都CloudHsmProvider
代表与您的集 AWS CloudHSM 群的连接。如果您想与来自同一应用程序的另一个集群通信,则可以使用另一个集群的配置创建另一个 CloudHsmProvider
对象,也可以使用提供程序对象或提供程序名称与另一个集群进行交互,如以下示例所示。
CloudHsmProviderConfig config = CloudHsmProviderConfig.builder() .withCluster( CloudHsmCluster.builder() .withHsmCAFilePath(hsmCAFilePath) .withClusterUniqueIdentifier("CloudHsmCluster1") .withServer(CloudHsmServer.builder().withHostIP(hostName).build()) .build()) .build(); CloudHsmProvider provider1 = new CloudHsmProvider(config); if (Security.getProvider(provider1.getName()) == null) { Security.addProvider(provider1); } CloudHsmProviderConfig config2 = CloudHsmProviderConfig.builder() .withCluster( CloudHsmCluster.builder() .withHsmCAFilePath(hsmCAFilePath2) .withClusterUniqueIdentifier("CloudHsmCluster2") .withServer(CloudHsmServer.builder().withHostIP(hostName2).build()) .build()) .build(); CloudHsmProvider provider2 = new CloudHsmProvider(config2); if (Security.getProvider(provider2.getName()) == null) { Security.addProvider(provider2); }
配置了上面的两个提供程序(均为集群)后,就可以使用提供程序对象或提供程序名称与它们进行交互。
在此演示如何与之交谈的示例的基础上cluster1
,您可以使用以下示例进行AES/GCM/NoPadding操作:
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", provider1);
在同一个应用程序中,要使用提供程序名称在第二个集群上生成“AES”密钥,也可以使用以下示例:
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", provider2.getName());