

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

# 使用 KMU 导出私 AWS CloudHSM 钥
<a name="key_mgmt_util-exportPrivateKey"></a>

使用 AWS CloudHSM key\$1mgmt\$1util 中的**exportPrivateKey**命令将非对称私钥从硬件安全模块 (HSM) 导出到文件中。HSM 不允许以明文形式直接导出密钥。该命令使用您指定的 AES 包装私钥，解密包装后的字节，然后将明文私钥复制到文件中。

**exportPrivateKey** 命令不会从 HSM 中删除此密钥，不会更改其[密钥属性](key-attribute-table.md)，也不会阻止您将密钥用于将来的加密操作。您可以多次导出相同的密钥。

您只能导出 `OBJ_ATTR_EXTRACTABLE` 属性值为 `1` 的私有密钥。必须指定具有 `OBJ_ATTR_WRAP` 和 `OBJ_ATTR_DECRYPT` 属性值 `1` 的 AES 包装密钥。要查找密钥的属性，请使用 [**getAttribute**](key_mgmt_util-getAttribute.md) 命令。

在运行任何 key\$1mgmt\$1util 命令之前，您必须[启动 key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) 并以加密用户（CU）身份[登录](key_mgmt_util-log-in.md)到 HSM。

## 语法
<a name="exportPrivateKey-syntax"></a>

```
exportPrivateKey -h

exportPrivateKey -k <private-key-handle>
                 -w <wrapping-key-handle>
                 -out <key-file>
                 [-m <wrapping-mechanism>]
                 [-wk <wrapping-key-file>]
```

## 示例
<a name="exportPrivateKey-examples"></a>

此示例显示了如何使用 **exportPrivateKey** 将私有密钥导出 HSM。

**Example ：导出私有密钥**  
此命令使用具有 `16` 句柄的包装密钥，将具有 `15` 句柄的私有密钥导出到名为 `exportKey.pem` 的 PEM 文件。当该命令成功时，**exportPrivateKey** 将返回成功消息。  

```
Command: exportPrivateKey -k 15 -w 16 -out exportKey.pem

Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

PEM formatted private key is written to exportKey.pem
```

## 参数
<a name="exportPrivateKey-parameters"></a>

此命令采用以下参数。

**`-h`**  
显示该命令的命令行帮助。  
是否必需：是

**`-k`**  
指定要导出的私有密钥的密钥句柄。  
是否必需：是

**`-w`**  
指定包装密钥的密钥句柄。此参数为必需参数。要查找密钥句柄，请使用 [**findKey**](key_mgmt_util-findKey.md) 命令。  
要确定密钥是否可用作包装密钥，请使用 [**getAttribute**](key_mgmt_util-getAttribute.md) 获取 `OBJ_ATTR_WRAP` 属性 (262) 的值。要创建包装密钥，请使用 [**genSymKey**](key_mgmt_util-genSymKey.md) 创建 AES 密钥（类型 31）。  
如果您使用 `-wk` 参数指定外部解开包装密钥，则 `-w` 包装密钥用于在导出过程中包装密钥而不是将其解开包装。  
是否必需：是

**`-out`**  
指定要将导出的私有密钥写入的文件的名称。  
是否必需：是

**`-m`**  
指定包装机制来包装正在导出的私有密钥。唯一有效值为 `4`，它表示 `NIST_AES_WRAP mechanism.`  
默认值：4 (`NIST_AES_WRAP`)  
必需：否

**`-wk`**  
指定用于解开正在导出的密钥包装的密钥。输入包含明文 AES 密钥的文件的路径和名称。  
当您包含此参数时，**exportPrivateKey** 使用 `-w` 文件中的密钥包装导出的密钥，并使用由 `-wk` 参数指定的密钥对导入的密钥解开包装。  
默认值：使用 `-w` 参数中指定的包装密钥包装和解开包装。  
必需：否

## 相关主题
<a name="exportPrivateKey-seealso"></a>
+ [importPrivateKey](key_mgmt_util-importPrivateKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)