

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

# 使用 KM AWS CloudHSM U 按属性搜索密钥
<a name="key_mgmt_util-findKey"></a>

使用 AWS CloudHSM key\_mgmt\_util 中的**findKey**命令按键属性的值搜索密钥。当某个密钥与您设置的所有条件都匹配时，**findKey** 将返回密钥句柄。如果没有参数，**findKey** 将返回您可在 HSM 中使用的所有密钥的密钥句柄。要查找特定密钥的属性值，请使用 [getAttribute](key_mgmt_util-getAttribute.md)。

与所有 key\_mgmt\_util 命令相似，**findKey** 是特定于用户的。它只会返回当前用户可在加密操作中使用的密钥。这包括当前用户拥有的密钥和已与当前用户共享的密钥。

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

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

```
findKey -h 

findKey [-c {{<key class>}}] 
        [-t {{<key type>}}]
        [-l {{<key label>}}] 
        [-id {{<key ID>}}]
        [-sess (0 | 1)] 
        [-u {{<user-ids>}}]
        [-m {{<modulus>}}]
        [-kcv {{<key_check_value>}}]
```

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

这些示例说明了如何使用**findKey**来查找和识别您的密钥 HSMs。

**Example ：查找所有密钥**  
此命令可查找 HSM 中当前用户的所有密钥。输出包括用户拥有和共享的密钥以及中的所有公钥 HSMs。  
要获取具有特定密钥句柄的密钥的属性，请使用 [getAttribute](key_mgmt_util-getAttribute.md)。要确定当前用户是否拥有或共享特定密钥，请在 cloudhsm\_mgmt\_uti [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)l 中使用[getKeyInfo](key_mgmt_util-getKeyInfo.md)或。  

```
Command: findKey

Total number of keys present 13

 number of keys matched from start index 0::12
6, 7, 524296, 9, 262154, 262155, 262156, 262157, 262158, 262159, 262160, 262161, 262162

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

**Example ：按类型、用户和会话查找密钥**  
此命令用于查找当前用户和用户 3 可使用的持久性 AES 密钥。(用户 3 可能能够使用当前用户看不到的其他密钥。)  

```
Command: findKey -t 31 -sess 0 -u 3
```

**Example ：按类别和标签查找密钥**  
此命令可查找具有 `2018-sept` 标签的当前用户的所有公有密钥。  

```
Command: findKey -c 2 -l 2018-sept
```

**Example ：按 Modulus 查找 RSA 密钥**  
此命令可查找当前用户的 RSA 密钥 (类型 0)，该密钥是通过使用 `m4.txt` 文件中的模数创建的。  

```
Command: findKey -t 0 -m m4.txt
```

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

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

**-t**  
查找指定类型的密钥。输入表示密钥类别的常量。例如，要查找 3DES 密钥，请键入 `-t 21`。  
有效值：  
+ 0：[RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem))
+ 1：[DSA](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm)
+ 3：[EC](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography)
+ 16：[GENERIC\_SECRET](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226962)
+ 18: [RC4](https://en.wikipedia.org/wiki/RC4)
+ 21：[三重 DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES)
+ 31：[AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
必需：否

**-c**  
查找指定类别中的密钥。输入表示密钥类别的常量。例如，要查找公有密钥，请键入 `-c 2`。  
每种密钥类型的有效值如下：  
+ 2：公有。此类别包含公有私有密钥对的公有密钥。
+ 3：私有。此类别包含公有私有密钥对的私有密钥。
+ 4：机密。此类别包含所有对称密钥。
必需：否

**-l**  
查找具有指定标签的密钥。键入确切的标签。您不能在 `--l` 值中使用通配符或正则表达式。  
必需：否

**-id**  
查找具有指定 ID 的密钥。键入确切的 ID 字符串。您不能在 `-id` 值中使用通配符或正则表达式。  
必需：否

**-sess**  
按会话状态查找密钥。要查找仅在当前会话中有效的密钥，请键入 `1`。要查找持久性密钥，请键入 `0`。  
必需：否

**-u**  
查找指定用户和当前用户共享的密钥。键入以逗号分隔的 HSM 用户列表 IDs，例如或。`-u 3` `-u 4,7`[要查找 HSM 上的用户，请使用 ListUsers。 IDs](key_mgmt_util-listUsers.md)  
当您指定一个用户 ID 时，**findKey** 将返回该用户的密钥。指定多个用户时 IDs，**findKey**返回所有指定用户均可使用的密钥。  
由于 **findKey** 仅返回当前用户可使用的密钥，`-u` 结果始终与当前用户的部分密钥相同。要获取任何用户拥有或与任何用户共享的所有密钥，加密官员 (COs) 可以[findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)在 cloudhsm\_mgmt\_util 中使用。  
必需：否

**-m**  
查找通过在指定文件中使用 RSA 模数创建的密钥。键入用于存储模数的文件的路径。  
-m 表示包含待匹配 RSA 模块的二进制文件（可选）。  
必需：否

**-kcv**  
查找具有指定密钥检查值的密钥。  
*密钥检查值* (KCV) 是 HSM 导入或生成密钥时所产生密钥的 3 字节哈希值或校验和。您也可以在 HSM 之外计算 KCV，例如导出密钥之后。然后，您可对比 KCV 值，以确认密钥的标识和完整性。若要获取密钥 KCV，请使用 [getAttribute](key_mgmt_util-getAttribute.md)。  
AWS CloudHSM 使用以下标准方法生成密钥检查值：  
+ **对称密钥**：密钥加密零块结果的前 3 个字节。
+ **非对称密钥对**：公钥 SHA-1 哈希值的前 3 个字节。
+ **HMAC 密钥**：目前不支持 HMAC 密钥 KCV。
必需：否

## Output
<a name="findKey-output"></a>

**findKey** 输出列出了匹配的密钥及其密钥句柄的总数。

```
        Command:  findKey
Total number of keys present 10

 number of keys matched from start index 0::9
6, 7, 8, 9, 10, 11, 262156, 262157, 262158, 262159

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

## 相关主题
<a name="findKey-seealso"></a>
+ [findSingleKey](key_mgmt_util-findSingleKey.md)
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)在 cloudhsm\_mgmt\_util
+ [密钥属性引用](key-attribute-table.md)