

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pustaka PKCS \$111 untuk SDK AWS CloudHSM Klien 3
<a name="pkcs11-v3-library"></a>

PKCS \$111 adalah standar untuk melakukan operasi kriptografi pada modul keamanan perangkat keras (HSM) di. AWS CloudHSM

Untuk informasi tentang bootstrap, lihat. [Menghubungkan ke cluster](cluster-connect.md)

**Topics**
+ [Instal pustaka PKCS \$111](install-pkcs11-v3.md)
+ [Otentikasi ke pustaka PKCS \$111](pkcs11-v3-pin.md)
+ [Tipe kunci](pkcs11-v3-key-types.md)
+ [Mekanisme](pkcs11-v3-mechanisms.md)
+ [Operasi API](pkcs11-v3-apis.md)
+ [Atribut kunci](pkcs11-v3-attributes.md)
+ [Sampel Kode](pkcs11-v3-samples.md)

# Instal pustaka PKCS \$111 untuk AWS CloudHSM Client SDK 3
<a name="install-pkcs11-v3"></a>

Topik ini memberikan petunjuk untuk menginstal pustaka PKCS \$111 untuk seri versi AWS CloudHSM Client SDK 3. [Untuk informasi selengkapnya tentang pustaka SDK Klien atau PKCS \$111, lihat [Menggunakan pustaka SDK Klien](use-hsm.md) dan PKCS \$111.](pkcs11-library.md)

## Prasyarat untuk Klien SDK 3
<a name="pkcs11-library-prerequisites"></a>

Pustaka PKCS \$111 membutuhkan klien. AWS CloudHSM 

Jika Anda belum menginstal dan mengkonfigurasi AWS CloudHSM klien, lakukan itu sekarang dengan mengikuti langkah-langkah di[Instal klien (Linux)](cmu-install-and-configure-client-linux.md). Setelah Anda menginstal dan mengatur konfigurasi klien, gunakan perintah berikut untuk memulainya. 

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

```
$ sudo start cloudhsm-client
```

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

```
$ sudo systemctl start cloudhsm-client
```

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

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ CentOS 8 ]

```
$ sudo systemctl start cloudhsm-client
```

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

```
$ sudo systemctl start cloudhsm-client
```

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

```
$ sudo systemctl start cloudhsm-client
```

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

```
$ sudo systemctl start cloudhsm-client
```

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

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ Ubuntu 20.04 LTS ]

```
$ sudo systemctl start cloudhsm-client
```

------

## Instal pustaka PKCS \$111 untuk Client SDK 3
<a name="install-pkcs11-library"></a>

Perintah berikut mengunduh dan memasang pustaka PKCS \$111.

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

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-pkcs11-latest.el6.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-pkcs11-latest.el6.x86_64.rpm
```

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

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-pkcs11-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-pkcs11-latest.el7.x86_64.rpm
```

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

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-pkcs11-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-pkcs11-latest.el7.x86_64.rpm
```

------
#### [ CentOS 8 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-pkcs11-latest.el8.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-pkcs11-latest.el8.x86_64.rpm
```

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

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-pkcs11-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-pkcs11-latest.el7.x86_64.rpm
```

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

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-pkcs11-latest.el8.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-pkcs11-latest.el8.x86_64.rpm
```

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

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client-pkcs11_latest_amd64.deb
```

```
$ sudo apt install ./cloudhsm-client-pkcs11_latest_amd64.deb
```

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

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-client-pkcs11_latest_u18.04_amd64.deb
```

```
$ sudo apt install ./cloudhsm-client-pkcs11_latest_u18.04_amd64.deb
```

------
+ Jika instans EC2 tempat Anda menginstal pustaka PKCS \$111 tidak memiliki komponen lain dari SDK Klien 3 yang diinstal, Anda harus bootstrap SDK Klien 3. Anda hanya perlu melakukan ini sekali pada setiap contoh dengan komponen dari SDK Klien 3.
+ Anda dapat menemukan berkas pustaka PKCS \$111 di lokasi berikut:

  Linux biner, skrip konfigurasi, sertifikat, dan berkas log:

  ```
  /opt/cloudhsm/lib
  ```

# Mengautentikasi ke pustaka PKCS \$111 untuk AWS CloudHSM SDK Klien 3
<a name="pkcs11-v3-pin"></a>

Saat Anda menggunakan pustaka PKCS \$111, aplikasi Anda berjalan sebagai [pengguna kripto (CU)](manage-hsm-users.md) tertentu di dalam Anda HSMs . AWS CloudHSM Aplikasi Anda dapat melihat dan mengelola hanya kunci yang CU miliki dan bagikan. Anda dapat menggunakan CU yang ada di HSMs atau membuat CU baru. Untuk informasi tentang pengelolaan CUs, lihat Mengelola pengguna [HSM dengan CloudHSM CLI dan Mengelola pengguna HSM dengan CloudHSM](manage-hsm-users-chsm-cli.md) [Management Utility (CMU](manage-hsm-users-cmu.md)).

Untuk menentukan CU ke pustaka PKCS \$111, gunakan parameter pin dari PKCS \$111 [Fungsi C\$1Login](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html#_Toc385057915). Untuk AWS CloudHSM, parameter pin memiliki format berikut:

```
<CU_user_name>:<password>
```

Sebagai contoh, perintah berikut menetapkan pin pustaka PKCS \$111 ke CU dengan nama pengguna `CryptoUser` dan kata sandi `CUPassword123!`.

```
CryptoUser:CUPassword123!
```

# Tipe kunci yang didukung untuk pustaka PKCS \$111 untuk SDK AWS CloudHSM Klien 3
<a name="pkcs11-v3-key-types"></a>

Pustaka PKCS \$111 mendukung tipe kunci berikut dengan AWS CloudHSM Client SDK 3.


****  

| Tipe Kunci | Deskripsi | 
| --- | --- | 
| RSA | Hasilkan 2048-bit sampai 4096-bit kunci RSA, dengan penambahan 256 bit. | 
| EC | Hasilkan kunci dengan kurva secp224r1 (P-224), secp256r1 (P-256), secp256k1 (Blockchain), secp384r1 (P-384), dan secp521r1 (P-521). | 
| AES | Hasilkan kunci AES 128, 192, dan 256-bit.  | 
| DES3 (Tiga DES) | Hasilkan kunci 192-bit DES3 . Lihat catatan [1](#pkcs11-v3-key-note) di bawah untuk perubahan yang akan datang. | 
| GENERIC\$1SECRET | Hasilkan 1 sampai 64 byte rahasia generik. | 
+ [1] Sesuai dengan panduan NIST, ini tidak diizinkan untuk cluster dalam mode FIPS setelah 2023. Untuk cluster dalam mode non-FIPS, masih diperbolehkan setelah 2023. Lihat [Kepatuhan FIPS 140: Penutupan Mekanisme 2024](compliance-dep-notif.md#compliance-dep-notif-1) untuk detail.

# Mekanisme yang didukung untuk AWS CloudHSM Klien SDK 3
<a name="pkcs11-v3-mechanisms"></a>

Pustaka PKCS \$111 mendukung algoritme berikut untuk AWS CloudHSM Client SDK 3:
+ **Enkripsi dan dekripsi** — AES-CBC, AES-CTR, AES-ECB, AES-GCM, -CBC, -ECB, RSA-OAEP, dan RSA-PKCS DES3 DES3
+ **Tanda tangani dan verifikasi**- RSA, HMAC, dan ECDSA; dengan dan tanpa hashing
+ **Hash/digest** — SHA1,,, SHA224, dan SHA256 SHA384 SHA512
+ **Bungkus kunci**— Bungkus Kunci AES,[4](#pkcs11-v3-mech4)AES-GCM, RSA-AES, dan RSA-OAEP
+ **Derivasi kunci** — ECDH, -108 CTR KDF [5](#pkcs11-v3-mech5) SP800

## Tabel mekanisme-fungsi perpustakaan PKCS \$111
<a name="pkcs11-v3-mech-function"></a>

Pustaka PKCS \$111 sesuai dengan spesifikasi PKCS \$111 versi 2.40. Untuk memanggil fitur kriptografi menggunakan PKCS \$111, panggil fungsi dengan mekanisme tertentu. Tabel berikut merangkum kombinasi fungsi dan mekanisme yang didukung oleh AWS CloudHSM.

**Menafsirkan tabel mekanisme-fungsi PKCS \$111 yang didukung**  
Tanda ✔ menunjukkan bahwa AWS CloudHSM mendukung mekanisme untuk fungsi tersebut. Kami tidak mendukung semua fungsi yang mungkin tercantum dalam spesifikasi PKCS \$111. Tanda ✖ menunjukkan bahwa AWS CloudHSM belum mendukung mekanisme untuk fungsi yang diberikan, meskipun standar PKCS \$111 mengizinkannya. Sel kosong menunjukkan bahwa standar PKCS \$111 tidak mendukung mekanisme fungsi tertentu.


**Mekanisme dan fungsi pustaka PKCS \$111 yang didukung**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

**Anotasi mekanisme**
+ [1] Operasi satu bagian saja.
+ [2] Mekanisme secara fungsional identik dengan mekanisme `CKM_RSA_PKCS_KEY_PAIR_GEN`, tetapi menawarkan jaminan lebih kuat untuk pembuatan `p` dan `q`.
+ [3.1] AWS CloudHSM mendekati hashing secara berbeda berdasarkan SDK Klien. Untuk Client SDK 3, tempat kita melakukan hashing tergantung pada ukuran data dan apakah Anda menggunakan bagian tunggal atau operasi multi\$1bagian.

  **Operasi satu bagian di SDK Klien 3**

  Tabel 3.1 mencantumkan ukuran kumpulan data maksimum untuk setiap mekanisme untuk SDK Klien 3. Seluruh hash dikomputasi di dalam HSM. Tidak ada dukungan untuk ukuran data yang lebih besar dari 16 KB.  
**Tabel 3.1, Ukuran set data maksimum untuk operasi satu bagian**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

  **Operasi multipart Klien SDK 3**

  Dukungan untuk ukuran data lebih besar dari 16 KB, tetapi ukuran data menentukan tempat hashing berlangsung. Penyangga data kurang dari 16 KB di-hash dalam HSM. Penyangga antara 16 KB dan ukuran data maksimum untuk sistem Anda di-hash secara lokal dalam perangkat lunak. *Ingat*: Fungsi hash tidak memerlukan rahasia kriptografi, sehingga Anda dapat dengan aman melakukan komputasi pada mereka di luar HSM.
+ [3.2] AWS CloudHSM mendekati hashing secara berbeda berdasarkan SDK Klien. Untuk Client SDK 3, tempat kita melakukan hashing tergantung pada ukuran data dan apakah Anda menggunakan bagian tunggal atau operasi multi\$1bagian.

  **Operasi satu bagian Klien SDK 3**

  Tabel 3.2 mencantumkan ukuran kumpulan data maksimum untuk setiap mekanisme untuk SDK Klien 3. Tidak ada dukungan untuk ukuran data yang lebih besar dari 16 KB.  
**Tabel 3.2, Ukuran set data maksimum untuk operasi satu bagian**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

  **Operasi multipart Klien SDK 3**

  Dukungan untuk ukuran data lebih besar dari 16 KB, tetapi ukuran data menentukan tempat hashing berlangsung. Penyangga data kurang dari 16 KB di-hash dalam HSM. Penyangga antara 16 KB dan ukuran data maksimum untuk sistem Anda di-hash secara lokal dalam perangkat lunak. *Ingat*: Fungsi hash tidak memerlukan rahasia kriptografi, sehingga Anda dapat dengan aman melakukan komputasi pada mereka di luar HSM.
+ [3.3] Ketika beroperasi pada data dengan menggunakan salah satu mekanisme berikut, jika penyangga data melebihi ukuran data maksimum, hasil operasi dalam kesalahan. Untuk mekanisme ini, semua pemrosesan data harus terjadi di dalam HSM. Tabel berikut mencantumkan set ukuran data maksimum untuk setiap mekanisme:  
**Tabel 3.3, Ukuran set data maksimum**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)
+ [4] Saat melakukan enkripsi AES-GCM, HSM tidak menerima data vektor inisialisasi (IV) dari aplikasi. Anda harus menggunakan IV yang dihasilkannya. IV 12-byte yang disediakan oleh HSM ditulis ke dalam referensi memori yang ditunjukkan oleh elemen pIV dari parameter `CK_GCM_PARAMS` struktur yang Anda suplai. Untuk mencegah kebingungan pengguna, PKCS \$111 SDK di versi 1.1.1 dan sebelumnya memastikan bahwa pIV menunjuk ke penyangga yang dinolkan ketika enkripsi AES-GCM diinisialisasi.
+ [5] **Klien SDK 3 saja**. Mekanisme diimplementasikan untuk mendukung kasus pembongkaran SSL/TLS dan dijalankan hanya sebagian di dalam HSM. Sebelum menggunakan mekanisme ini, lihat “Masalah: Derivasi kunci ECDH dijalankan hanya sebagian di dalam HSM” di. [Masalah yang diketahui untuk pustaka PKCS \$111 untuk AWS CloudHSMMasalah yang diketahui untuk pustaka PKCS \$111](ki-pkcs11-sdk.md) `CKM_ECDH1_DERIVE`tidak mendukung kurva secp521r1 (P-521).
+ [6] `CK_MECHANISM_TYPE` dan `CK_RSA_PKCS_MGF_TYPE` berikut didukung sebagai `CK_RSA_PKCS_OAEP_PARAMS` untuk `CKM_RSA_PKCS_OAEP`:
  + `CKM_SHA_1` menggunakan `CKG_MGF1_SHA1`
  + `CKM_SHA224` menggunakan `CKG_MGF1_SHA224`
  + `CKM_SHA256` menggunakan `CKG_MGF1_SHA256`
  + `CKM_SHA384` menggunakan `CKM_MGF1_SHA384`
  + `CKM_SHA512` menggunakan `CKM_MGF1_SHA512`
+ [7.1] Mekanisme yang ditentukan vendor. Untuk menggunakan mekanisme yang ditetapkan vendor CloudHSM, aplikasi PKCS \$111 harus menyertakan `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` selama kompilasi. 

  `CKM_CLOUDHSM_AES_GCM`: Mekanisme kepemilikan ini adalah alternatif pemrograman yang lebih aman untuk `CKM_AES_GCM` standar. Ini menambahkan IV yang dihasilkan oleh HSM untuk ciphertext, bukan menuliskannya kembali ke dalam struktur `CK_GCM_PARAMS` yang disediakan selama inisialisasi cipher. Anda dapat menggunakan mekanisme ini dengan fungsi `C_Encrypt`, `C_WrapKey`, `C_Decrypt`, dan `C_UnwrapKey`. Bila menggunakan mekanisme ini, variabel pIV di struk `CK_GCM_PARAMS` harus diatur ke `NULL`. Bila menggunakan mekanisme ini dengan `C_Decrypt` dan `C_UnwrapKey`, IV diharapkan akan ditambahkan ke ciphertext yang sedang dibuka.

  `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`: Bungkus Kunci AES dengan Padding PKCS \$15

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`: Bungkus Kunci AES dengan Padding Nol

  Untuk informasi tambahan mengenai pembungkus kunci AES, lihat Pembungkus Kunci [AES.](manage-aes-key-wrapping.md) 
+ [8] Sesuai dengan panduan NIST, ini tidak diizinkan untuk cluster dalam mode FIPS setelah 2023. Untuk cluster dalam mode non-FIPS, masih diperbolehkan setelah 2023. Lihat [Kepatuhan FIPS 140: Penutupan Mekanisme 2024](compliance-dep-notif.md#compliance-dep-notif-1) untuk detail.

# Operasi API yang didukung untuk AWS CloudHSM Client SDK 3
<a name="pkcs11-v3-apis"></a>

Pustaka PKCS \$111 mendukung operasi API PKCS \$111 berikut untuk AWS CloudHSM Client SDK 3.
+ `C_CloseAllSessions`
+ `C_CloseSession`
+ `C_CreateObject`
+ `C_Decrypt`
+ `C_DecryptFinal`
+ `C_DecryptInit`
+ `C_DecryptUpdate`
+ `C_DeriveKey`
+ `C_DestroyObject`
+ `C_Digest`
+ `C_DigestFinal`
+ `C_DigestInit`
+ `C_DigestUpdate`
+ `C_Encrypt`
+ `C_EncryptFinal`
+ `C_EncryptInit`
+ `C_EncryptUpdate`
+ `C_Finalize`
+ `C_FindObjects`
+ `C_FindObjectsFinal`
+ `C_FindObjectsInit`
+ `C_GenerateKey`
+ `C_GenerateKeyPair`
+ `C_GenerateRandom`
+ `C_GetAttributeValue`
+ `C_GetFunctionList`
+ `C_GetInfo`
+ `C_GetMechanismInfo`
+ `C_GetMechanismList`
+ `C_GetSessionInfo`
+ `C_GetSlotInfo`
+ `C_GetSlotList`
+ `C_GetTokenInfo`
+ `C_Initialize`
+ `C_Login`
+ `C_Logout`
+ `C_OpenSession`
+ `C_Sign`
+ `C_SignFinal`
+ `C_SignInit`
+ `C_SignRecover`(Hanya dukungan SDK 3 Klien)
+ `C_SignRecoverInit`(Hanya dukungan SDK 3 Klien)
+ `C_SignUpdate`
+ `C_UnWrapKey`
+ `C_Verify`
+ `C_VerifyFinal`
+ `C_VerifyInit`
+ `C_VerifyRecover`(Hanya dukungan SDK 3 Klien)
+ `C_VerifyRecoverInit`(Hanya dukungan SDK 3 Klien)
+ `C_VerifyUpdate`
+ `C_WrapKey`

# Atribut kunci di pustaka PKCS \$111 untuk SDK AWS CloudHSM Klien 3
<a name="pkcs11-v3-attributes"></a>

Objek kunci bisa berupa kunci publik, pribadi, atau rahasia. Tindakan diizinkan pada objek kunci ditentukan melalui atribut. Atribut didefinisikan ketika objek kunci dibuat. Saat Anda menggunakan pustaka PKCS \$111 untuk AWS CloudHSM, kami menetapkan nilai default seperti yang ditentukan oleh standar PKCS \$111.

AWS CloudHSM tidak mendukung semua atribut yang tercantum dalam spesifikasi PKCS \$111. Kami patuh dengan spesifikasi untuk semua atribut yang kami dukung. Atribut ini tercantum dalam tabel masing-masing.

Fungsi kriptografi seperti `C_CreateObject`, `C_GenerateKey`, `C_GenerateKeyPair`, `C_UnwrapKey`, dan `C_DeriveKey` yang membuat, memodifikasi, atau menyalin objek mengambil templat atribut sebagai salah satu parameternya. Untuk informasi lebih lanjut tentang melewatkan templat atribut selama pembuatan objek, lihat sampel [Hasilkan kunci melalui pustaka PKCS \$111](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/generate).

Topik berikut memberikan informasi selengkapnya tentang atribut AWS CloudHSM kunci untuk SDK Klien 3.

**Topics**
+ [Tabel atribut](pkcs11-v3-attributes-interpreting.md)
+ [Memodifikasi atribut](pkcs11-v3-modify-attr.md)
+ [Menafsirkan kode kesalahan pustaka PKCS \$111 untuk AWS CloudHSM SDK Klien 3](pkcs11-v3-attr-errors.md)

# Tabel atribut pustaka PKCS \$111 untuk SDK AWS CloudHSM Klien 3
<a name="pkcs11-v3-attributes-interpreting"></a>

Tabel pustaka PKCS \$111 untuk AWS CloudHSM Client SDK 3 berisi daftar atribut yang berbeda menurut jenis kunci. Ini menunjukkan apakah atribut yang diberikan didukung untuk jenis kunci tertentu saat menggunakan fungsi kriptografi tertentu dengan AWS CloudHSM.

**Legenda:**
+ ✔ menunjukkan bahwa CloudHSM mendukung atribut untuk jenis kunci tertentu.
+ ✖ menunjukkan bahwa CloudHSM tidak mendukung atribut untuk jenis kunci tertentu.
+ R menunjukkan bahwa nilai atribut diatur ke hanya-baca untuk jenis kunci tertentu.
+ S menunjukkan bahwa atribut tidak dapat dibaca oleh `GetAttributeValue` karena sensitif.
+ Sel kosong di kolom Nilai Default menunjukkan bahwa tidak ada nilai default tertentu yang ditetapkan untuk atribut.

## GenerateKeyPair
<a name="pkcs11-v3-generatekeypair"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-attributes-interpreting.html)

## GenerateKey
<a name="pkcs11-v3-generatekey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-attributes-interpreting.html)

## CreateObject
<a name="pkcs11-v3-createobject"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-attributes-interpreting.html)

## UnwrapKey
<a name="pkcs11-v3-unwrapkey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-attributes-interpreting.html)

## DeriveKey
<a name="pkcs11-v3-derivekey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-attributes-interpreting.html)

## GetAttributeValue
<a name="pkcs11-v3-getattributevalue"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-attributes-interpreting.html)

**Anotasi atribut**
+ [1] Atribut ini sebagian didukung oleh firmware dan harus secara eksplisit diatur hanya ke nilai default.
+ [2] Atribut wajib.
+ [3] **Klien SDK 3 saja**. `CKA_SIGN_RECOVER`Atribut berasal dari `CKA_SIGN` atribut. Jika sedang diatur, itu hanya dapat diatur ke nilai yang sama yang ditetapkan untuk `CKA_SIGN`. Jika tidak diatur, itu menurunkan nilai default dari `CKA_SIGN`. Karena CloudHSM hanya mendukung mekanisme tanda tangan dipulihkan berbasis RSA, atribut ini saat ini hanya berlaku untuk kunci publik RSA.
+ [4] **Klien SDK 3 saja**. `CKA_VERIFY_RECOVER`Atribut berasal dari `CKA_VERIFY` atribut. Jika sedang diatur, itu hanya dapat diatur ke nilai yang sama yang ditetapkan untuk `CKA_VERIFY`. Jika tidak diatur, itu menurunkan nilai default dari `CKA_VERIFY`. Karena CloudHSM hanya mendukung mekanisme tanda tangan dipulihkan berbasis RSA, atribut ini saat ini hanya berlaku untuk kunci publik RSA.

# Memodifikasi atribut pustaka PKCS \$111 untuk AWS CloudHSM SDK Klien 3
<a name="pkcs11-v3-modify-attr"></a>

Beberapa atribut dari suatu objek dapat dimodifikasi setelah objek dibuat, sedangkan beberapa objek tidak bisa. Untuk mengubah atribut, gunakan perintah [setAttribute](cloudhsm_mgmt_util-setAttribute.md) dari cloudhsm\$1mgmt\$1util. Anda juga dapat memperoleh daftar atribut dan konstanta yang mewakilinya dengan menggunakan perintah [listAttribute](cloudhsm_mgmt_util-listAttributes.md) dari cloudhsm\$1mgmt\$1util.

Daftar berikut menampilkan atribut yang diizinkan untuk modifikasi setelah pembuatan objek:
+ `CKA_LABEL`
+ `CKA_TOKEN`
**catatan**  
Modifikasi hanya diperbolehkan untuk mengubah kunci sesi menjadi kunci token. Gunakan perintah [setAttribute](key_mgmt_util-setAttribute.md) dari key\$1mgmt\$1util untuk mengubah nilai atribut.
+ `CKA_ENCRYPT`
+ `CKA_DECRYPT`
+ `CKA_SIGN`
+ `CKA_VERIFY`
+ `CKA_WRAP`
+ `CKA_UNWRAP`
+ `CKA_LABEL`
+ `CKA_SENSITIVE`
+ `CKA_DERIVE`
**catatan**  
Atribut ini mendukung derivasi kunci. Kunci harus `False` untuk semua kunci publik dan tidak dapat diatur ke `True`. Untuk kunci rahasia dan kunci privat EC, kunci dapat diatur ke `True` atau `False`.
+ `CKA_TRUSTED`
**catatan**  
Atribut ini dapat diatur ke `True` atau `False` oleh Petugas Kripto (CO) saja.
+ `CKA_WRAP_WITH_TRUSTED`
**catatan**  
Terapkan atribut ini ke kunci data yang dapat diekspor untuk menentukan bahwa Anda hanya dapat membungkus kunci ini dengan kunci yang ditandai sebagai `CKA_TRUSTED`. Setelah Anda mengatur `CKA_WRAP_WITH_TRUSTED` menjadi true (benar), atribut menjadi hanya-baca dan Anda tidak dapat mengubah atau menghapus atribut.

# Menafsirkan kode kesalahan pustaka PKCS \$111 untuk AWS CloudHSM SDK Klien 3
<a name="pkcs11-v3-attr-errors"></a>

Menentukan dalam template atribut pustaka PKCS \$111 yang tidak didukung oleh kunci tertentu menghasilkan kesalahan. Tabel berikut berisi kode galat yang dihasilkan ketika Anda melanggar spesifikasi:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cloudhsm/latest/userguide/pkcs11-v3-attr-errors.html)

# Contoh kode untuk pustaka PKCS \$111 untuk SDK AWS CloudHSM Klien 3
<a name="pkcs11-v3-samples"></a>

Contoh kode GitHub menunjukkan kepada Anda cara menyelesaikan tugas dasar menggunakan pustaka PKCS \$111 untuk. AWS CloudHSM

## Contoh prasyarat kode
<a name="pkcs11-v3-samples-prereqs"></a>

Sebelum menjalankan sampel, lakukan langkah-langkah berikut untuk mengatur lingkungan Anda:
+ Instal dan konfigurasikan [pustaka PKCS \$111](install-pkcs11-v3.md) untuk Client SDK 3.
+ Siapkan [pengguna kriptografi (CU)](manage-hsm-users.md). Aplikasi Anda menggunakan akun HSM ini untuk menjalankan sampel kode pada HSM.

## Sampel Kode
<a name="pkcs11-v3-samples-code"></a>

Sampel Kode untuk Perpustakaan Perangkat AWS CloudHSM Lunak untuk PKCS \$111 tersedia di. [GitHub](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples) Repositori ini mencakup contoh tentang bagaimana melakukan operasi umum menggunakan PKCS \$111 termasuk enkripsi, dekripsi, penandatanganan, dan verifikasi.
+ [Hasilkan kunci (AES, RSA, EC)](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/generate)
+ [Daftar atribut kunci](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/attributes/)
+ [Enkripsi dan dekripsi data dengan AES GCM](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/encrypt/aes_gcm.c)
+ [Enkripsi dan dekripsi data dengan AES\$1CTR](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/encrypt/aes_ctr.c) 
+ [Enkripsi dan dekripsi data dengan 3DES](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/encrypt/des_ecb.c) 
+ [Tanda tangani dan verifikasi data dengan RSA](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/sign/rsa_sign.c)
+ [Turunkan kunci menggunakan HMAC KDF](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/derivation/hmac_kdf.c)
+ [Bungkus dan buka kunci dengan AES menggunakan padding PKCS \$15](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_wrapping.c)
+ [Bungkus dan buka kunci dengan AES tanpa padding](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_no_padding_wrapping.c)
+ [Bungkus dan buka kunci dengan AES menggunakan bantalan nol](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_zero_padding_wrapping.c)
+ [Bungkus dan buka kunci dengan AES-GCM](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/wrapping/aes_gcm_wrapping.c)
+ [Bungkus dan buka kunci dengan RSA](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/rsa_wrapping.c)