

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

# 使用 CloudHSM CLI 生成非对称密钥
<a name="cloudhsm-cli-generate-asymmetric-keys"></a>

使用中列出的命令**[CloudHSM CLI 中的 generate-asymmetric-pair类别](cloudhsm_cli-key-generate-asymmetric-pair.md)**为 AWS CloudHSM 集群生成非对称密钥对。

## 生成 RSA 密钥
<a name="cloudhsm-cli-generate-asymmetric-rsa"></a>

使用 **key generate-asymmetric-pair rsa** 命令生成 RSA 密钥对。要查看所有可用的选项，请使用 **help key generate-asymmetric-pair rsa** 命令。

**Example**  
以下示例生成 RSA 2048 位密钥对。  

```
aws-cloudhsm > key generate-asymmetric-pair rsa \
    --public-exponent 65537 \
    --modulus-size-bits 2048 \
    --public-label rsa-public-example \
    --private-label rsa-private-example
```

### 参数
<a name="cloudhsm-cli-generate-asymmetric-rsa-args"></a>

***<PUBLIC\$1LABEL>***  
为公有密钥指定用户定义的标签。  
是否必需：是

***<PRIVATE\$1LABEL>***  
为私有密钥指定用户定义的标签。  
是否必需：是

***<MODULUS\$1SIZE\$1BITS>***  
指定模数的长度 (以位为单位)。最小值为 2048。  
是否必需：是

***<PUBLIC\$1EXPONENT>***  
指定公有指数。此值必须为大于或等于 65537 的奇数。  
是否必需：是

***<PUBLIC\$1KEY\$1ATTRIBUTES>***  
指定一个以空格分隔的密钥属性列表，以 `KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE`（例如 `sign=true`）的形式为生成的 RSA 公有密钥进行设置。  
有关支持的 AWS CloudHSM 密钥属性的列表，请参阅[CloudHSM CLI 的密钥属性](cloudhsm_cli-key-attributes.md)。  
必需：否

***<SESSION>***  
创建仅在当前会话中存在的密钥。会话结束后，密钥无法恢复。如果您只需要一个短暂的密钥，例如用于加密然后快速解密另一个密钥的包装密钥，请使用此参数。对于会话结束后可能需要解密的加密数据，切勿使用会话密钥。  
要将会话密钥更改为永久（令牌）密钥，请使用 [key set-attribute](cloudhsm_cli-key-set-attribute.md)。  
默认情况下，生成密钥时，它们就是 persistent/token 密钥。使用 <SESSION> 更改此设置，确保使用此参数生成的密钥是会话/临时密钥  
必需：否

### 生成 EC (椭圆曲线加密) 密钥对
<a name="cloudhsm-cli-generate-asymmetric-ec"></a>

使用 **key generate-asymmetric-pair ec** 命令生成 EC 密钥对。要查看所有可用选项（包括受支持的椭圆曲线的列表），请使用 **help key generate-asymmetric-pair ec** 命令。

**Example**  
以下示例使用 Secp384r1 椭圆曲线生成一个 EC 密钥对。  

```
aws-cloudhsm > key generate-asymmetric-pair ec \
    --curve secp384r1 \
    --public-label ec-public-example \
    --private-label ec-private-example
```

#### 参数
<a name="cloudhsm-cli-generate-asymmetric-ec-args"></a>

***<PUBLIC\$1LABEL>***  
为公有密钥指定用户定义的标签。对于 Client SDK 5.11 及更高版本，`label` 允许的最大大小为 127 个字符。Client SDK 5.10 及更低版本的字符数限制为 126 个。  
是否必需：是

***<PRIVATE\$1LABEL>***  
为私有密钥指定用户定义的标签。对于 Client SDK 5.11 及更高版本，`label` 允许的最大大小为 127 个字符。Client SDK 5.10 及更低版本的字符数限制为 126 个。  
是否必需：是

***<CURVE>***  
指定椭圆曲线的标识符。  

有效值：
+ prime256v1
+ secp256r1
+ secp224r1
+ secp384r1
+ secp256k1
+ secp521r1
+ ed25519（仅在非 FIPS 模式下的 hsm2m.medium 实例上支持）
是否必需：是

***<PUBLIC\$1KEY\$1ATTRIBUTES>***  
以 `KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE`（例如 `verify=true`）的形式指定要为生成的 EC 公有密钥设置的以空格分隔的密钥属性列表。  
有关支持的 AWS CloudHSM 密钥属性的列表，请参阅[CloudHSM CLI 的密钥属性](cloudhsm_cli-key-attributes.md)。  
必需：否

***<PRIVATE\$1KEY\$1ATTRIBUTES>***  
以 `KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE`（例如 `sign=true`）的形式指定要为生成的 EC 私有密钥设置的以空格分隔的密钥属性列表。  
有关支持的 AWS CloudHSM 密钥属性的列表，请参阅[CloudHSM CLI 的密钥属性](cloudhsm_cli-key-attributes.md)。  
必需：否

***<SESSION>***  
创建仅在当前会话中存在的密钥。会话结束后，密钥无法恢复。如果您只需要一个短暂的密钥，例如用于加密然后快速解密另一个密钥的包装密钥，请使用此参数。对于会话结束后可能需要解密的加密数据，切勿使用会话密钥。  
要将会话密钥更改为永久（令牌）密钥，请使用 [key set-attribute](cloudhsm_cli-key-set-attribute.md)。  
默认情况下，生成的密钥是永久（令牌）密钥。传入 <SESSION> 会改变这一点，确保使用此参数生成的密钥是会话（临时）密钥。  
必需：否