

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 KMU 加密和解密 AWS CloudHSM 檔案
<a name="key_mgmt_util-aesWrapUnwrap"></a>

使用 AWS CloudHSM key\$1mgmt\$1util 中的 **aesWrapUnwrap**命令來加密或解密磁碟上檔案的內容。此命令旨在包裝和取消包裝加密金鑰，但您可以對包含小於 4 KB (4096 個位元組) 資料的任何檔案使用它。

**aesWrapUnwrap** 使用 AES Key Wrap 搭配 PKCS \$15 Padding。它會在 HSM 上使用 AES 金鑰做為包裝或取消包裝金鑰。然後，它會將結果寫入到磁碟上的另一個檔案。

執行任何 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="aesWrapUnwrap-syntax"></a>

```
aesWrapUnwrap -h

aesWrapUnwrap -m <wrap-unwrap mode>
              -f <file-to-wrap-unwrap> 
              -w <wrapping-key-handle>               
              [-i <wrapping-IV>] 
              [-out <output-file>]
```

## 範例
<a name="aesWrapUnwrap-examples"></a>

這些範例示範如何使用 **aesWrapUnwrap** 來加密和解密檔案中的加密金鑰。

**Example ：包裝加密金鑰**  
此命令使用 **aesWrapUnwrap** 來包裝[從 HSM 以純文字匯出](key_mgmt_util-exSymKey.md)的三重 DES 對稱金鑰到 `3DES.key` 檔案。您可以使用類似命令來包裝在檔案中儲存的任何金鑰。  
此命令會使用 `-m` 參數搭配 `1` 值來指出包裝模式。它使用 `-w` 參數來指定 HSM 中的 AES 金鑰 (金鑰控制代碼 `6`) 做為包裝金鑰。它會將產生的包裝金鑰寫入 `3DES.key.wrapped` 檔案。  
輸出顯示命令已成功，而操作使用了預設的 IV，這是慣用的操作。  

```
 Command:  aesWrapUnwrap -f 3DES.key -w 6 -m 1 -out 3DES.key.wrapped

        Warning: IV (-i) is missing.
                 0xA6A6A6A6A6A6A6A6 is considered as default IV
result data:
49 49 E2 D0 11 C1 97 22
17 43 BD E3 4E F4 12 75
8D C1 34 CF 26 10 3A 8D
6D 0A 7B D5 D3 E8 4D C2
79 09 08 61 94 68 51 B7

result written to file 3DES.key.wrapped

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

**Example ：取消包裝加密金鑰**  
此範例示範如何使用 **aesWrapUnwrap** 來將檔案中已包裝 (加密) 的金鑰取消包裝 (解密)。在將金鑰匯入至 HSM 之前，您可能想要執行這類的操作。例如，如果您嘗試使用 [imSymKey](key_mgmt_util-imSymKey.md) 命令來匯入加密金鑰，因為加密金鑰沒有該類型的純文字金鑰所需的格式，則會傳回錯誤。  
此命令會取消包裝 `3DES.key.wrapped` 檔案中的金鑰，並將純文字寫入 `3DES.key.unwrapped` 檔案。此命令會使用 `-m` 參數搭配 `0` 值來指出取消包裝模式。它使用 `-w` 參數來指定 HSM 中的 AES 金鑰 (金鑰控制代碼 `6`) 做為包裝金鑰。它會將產生的包裝金鑰寫入 `3DES.key.unwrapped` 檔案。  

```
 Command:  aesWrapUnwrap -m 0 -f 3DES.key.wrapped -w 6 -out 3DES.key.unwrapped

        Warning: IV (-i) is missing.
                 0xA6A6A6A6A6A6A6A6 is considered as default IV
result data:
14 90 D7 AD D6 E4 F5 FA
A1 95 6F 24 89 79 F3 EE
37 21 E6 54 1F 3B 8D 62

result written to file 3DES.key.unwrapped

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

## Parameters
<a name="aesWrapUnwrap-params"></a>

**-h**  
顯示命令的說明。  
必要：是

**-m**  
指定模式。若要包裝 (加密) 檔案內容，請輸入 `1`；若要取消包裝 (解密) 檔案內容，請輸入 `0`。  
必要：是

**-f**  
指定要包裝的檔案。輸入包含小於 4 KB (4096 個位元組) 資料的檔案。此操作旨在包裝和取消包裝加密金鑰。  
必要：是

**-w**  
指定包裝金鑰。輸入 HSM 上 AES 金鑰的金鑰控制代碼。此為必要參數。若要找出金鑰控制代碼，請使用 [findKey](key_mgmt_util-findKey.md) 命令。  
要建立包裝金鑰，請使用 [genSymKey](key_mgmt_util-genSymKey.md) 以產生 AES 金鑰 (輸入 31)。  
必要：是

**-i**  
指定演算法的替代初始值 (IV)。除非您有需要替代方案的特殊條件，否則請使用預設值。  
預設：`0xA6A6A6A6A6A6A6A6`。預設值是在 [AES 金鑰包裝](https://tools.ietf.org/html/rfc3394)演算法規格中所定義。  
必要：否

**-out**  
指定包含已包裝或取消包裝金鑰之輸出檔的替代名稱。本機目錄中的預設值是 `wrapped_key` (針對包裝操作) 和 `unwrapped_key` (針對取消包裝操作)。  
如果檔案存在，**aesWrapUnwrap** 會覆寫檔案且不會有任何警告。如果命令失敗，**aesWrapUnwrap** 會建立沒有內容的輸出檔。  
預設值：針對包裝：`wrapped_key`。針對取消包裝：`unwrapped_key`。  
必要：否

## 相關主題
<a name="aesWrapUnwrap-seealso"></a>
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)