

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将你的 AWS CloudHSM PKCS \#11 库从客户端 SDK 3 迁移到客户端 SDK 5
<a name="pkcs11-migrate-to-sdk-5"></a>

使用本主题将您的 AWS CloudHSM [PKCS \#11 库](pkcs11-library.md)从客户端 SDK 3 迁移到客户端 SDK 5。有关迁移的好处，请参阅 [AWS CloudHSM 客户端 SDK 的好处 5](client-sdk-5-benefits.md)。

在中 AWS CloudHSM，客户应用程序使用 AWS CloudHSM 客户端软件开发套件 (SDK) 执行加密操作。Client SDK 5 是主要 SDK，它不断添加新功能和平台支持。

要查看所有提供程序的迁移说明，请参阅[从 AWS CloudHSM 客户端 SDK 3 迁移到客户端 SDK 5](client-sdk-migration.md)。

## 通过解决重大更改做好准备
<a name="w2aac25c19c15b9"></a>

查看这些重大更改，并在开发环境中相应地更新您的应用程序。

### 包装机制已更改
<a name="w2aac25c19c15b9b5"></a>


****  

| Client SDK 3 机制 | 等效 Client SDK 5 机制 | 
| --- | --- | 
| `CKM_AES_KEY_WRAP` | `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD` | 
| `CKM_AES_KEY_WRAP_PAD` | `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD` | 
| `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD` | `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD` | 
| `CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD` | `CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD` | 
| `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD` | `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD` | 

### ECDH
<a name="w2aac25c19c15b9b7"></a>

在 Client SDK 3 中，您可以使用 ECDH 并指定 KDF。此功能目前在 Client SDK 5 中不可用。如果您的应用程序需要此功能，请联系[支持人员](https://support.console.aws.amazon.com/support/home#/)。

### 密钥句柄现在是特定于会话的
<a name="w2aac25c19c15b9b9"></a>

要在客户端软件开发工具包 5 中成功使用密钥句柄，您必须每次运行应用程序时均获得密钥句柄。如果您希望现有应用程序在不同的会话中使用相同的密钥句柄，则您必须修改代码以在每次运行应用程序时获得密钥句柄。有关检索密钥句柄的信息，请参阅[此 AWS CloudHSM PKCS \#11 示例](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/find_objects/find_objects.c)。此更改符合 [PKCS \#11 2.40 规范](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html#_Toc416959689)。

## 迁移到 Client SDK 5
<a name="w2aac25c19c15c11"></a>

按照本节中的说明从 Client SDK 3 迁移到 Client SDK 5。

**注意**  
Client SDK 5 当前不支持 Amazon Linux、Ubuntu 16.04、Ubuntu 18.04、CentOS 6、CentOS 8 和 RHEL 6。如果您当前正在将其中一个平台与 Client SDK 3 结合使用，则在迁移到 Client SDK 5 时，您需要选择其他平台。

1. 卸载适用于 Client SDK 3 的 PKCS \#11 库。

------
#### [ Amazon Linux 2 ]

   ```
   $ sudo yum remove cloudhsm-client-pkcs11
   ```

------
#### [ CentOS 7 ]

   ```
   $ sudo yum remove cloudhsm-client-pkcs11
   ```

------
#### [ RHEL 7 ]

   ```
   $ sudo yum remove cloudhsm-client-pkcs11
   ```

------
#### [ RHEL 8 ]

   ```
   $ sudo yum remove cloudhsm-client-pkcs11
   ```

------
#### [ Ubuntu 16.04 LTS ]

   ```
   $ sudo apt remove cloudhsm-client-pkcs11
   ```

------
#### [ Ubuntu 18.04 LTS ]

   ```
   $ sudo apt remove cloudhsm-client-pkcs11
   ```

------

1. 停止 Client SDK 3 的客户端进程守护程序。

------
#### [ Amazon Linux 2 ]

   ```
   $ sudo service cloudhsm-client stop
   ```

------
#### [ CentOS 7 ]

   ```
   $ sudo service cloudhsm-client stop
   ```

------
#### [ RHEL 7 ]

   ```
   $ sudo service cloudhsm-client stop
   ```

------
#### [ RHEL 8 ]

   ```
   $ sudo service cloudhsm-client stop
   ```

------
#### [ Ubuntu 16.04 LTS ]

   ```
   $ sudo systemctl stop cloudhsm-client
   ```

------
#### [ Ubuntu 18.04 LTS ]

   ```
   $ sudo systemctl stop cloudhsm-client
   ```

------

1. 卸载 Client SDK 3 的客户端进程守护程序。

------
#### [ Amazon Linux 2 ]

   ```
   $ sudo yum remove cloudhsm-client
   ```

------
#### [ CentOS 7 ]

   ```
   $ sudo yum remove cloudhsm-client
   ```

------
#### [ RHEL 7 ]

   ```
   $ sudo yum remove cloudhsm-client
   ```

------
#### [ RHEL 8 ]

   ```
   $ sudo yum remove cloudhsm-client
   ```

------
#### [ Ubuntu 16.04 LTS ]

   ```
   $ sudo apt remove cloudhsm-client
   ```

------
#### [ Ubuntu 18.04 LTS ]

   ```
   $ sudo apt remove cloudhsm-client
   ```

------
**注意**  
需要再次启用自定义配置。

1. 按照 [为 AWS CloudHSM 客户端 SDK 5 安装 PKCS \#11 库](pkcs11-library-install.md) 中的步骤安装 Client SDK PKCS \#11 库。

1. Client SDK 5 引入了一种新的配置文件格式和命令行引导工具。要引导您的 Client SDK 5 PKCS \#11 库，请按照 [引导客户端软件开发工具包](cluster-connect.md#connect-how-to) 下的用户指南中列出的说明进行操作。

1. 在您的开发环境中，测试您的应用程序。在最终迁移之前，更新现有代码以解决重大更改。

## 相关主题
<a name="pkcs11-migrate-to-sdk-5-seealso"></a>
+ [的最佳实践 AWS CloudHSM](best-practices.md)