

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

# Atribut kunci Java yang didukung untuk AWS CloudHSM SDK Klien 5
<a name="java-lib-attributes_5"></a>

Topik ini memberikan informasi tentang atribut kunci Java yang didukung untuk AWS CloudHSM Client SDK 5. Topik ini menjelaskan cara menggunakan ekstensi eksklusif untuk penyedia JCE untuk menetapkan atribut kunci. Gunakan ekstensi ini untuk mengatur atribut kunci yang didukung dan nilai-nilainya selama operasi ini:
+ Pembuatan kunci
+ Impor kunci

Untuk contoh cara menggunakan atribut kunci, lihat[Contoh kode untuk AWS CloudHSM perpustakaan perangkat lunak untuk Java untuk Client SDK 5](java-samples.md).

**Topics**
+ [Memahami atribut](#java-understanding-attributes_5)
+ [Atribut yang didukung](#java-attributes_5)
+ [Mengatur atribut untuk kunci](#java-setting-attributes_5)

## Memahami atribut
<a name="java-understanding-attributes_5"></a>

Gunakan atribut kunci untuk menentukan tindakan apa yang diizinkan pada objek kunci, termasuk kunci publik, pribadi, atau rahasia. Atribut dan nilai kunci ditentukan selama operasi pembuatan objek kunci. 

Java Cryptography Extension (JCE) tidak menentukan bagaimana Anda harus menetapkan nilai pada atribut kunci, sehingga sebagian besar tindakan diizinkan secara default. Sebaliknya, PKCS \# 11 standar menentukan satu set lengkap atribut dengan default lebih ketat. Dimulai dengan penyedia JCE 3.1, AWS CloudHSM menyediakan ekstensi eksklusif yang memungkinkan Anda menetapkan nilai yang lebih ketat untuk atribut yang umum digunakan. 

## Atribut yang didukung
<a name="java-attributes_5"></a>

Anda dapat mengatur nilai untuk atribut yang tercantum dalam tabel berikut. Sebagai praktik terbaik, tetapkan hanya nilai untuk atribut yang ingin Anda buat ketat. Jika Anda tidak menentukan nilai, AWS CloudHSM gunakan nilai default yang ditentukan dalam tabel di bawah ini. Sel kosong di kolom Nilai Default menunjukkan bahwa tidak ada nilai default tertentu yang ditetapkan untuk atribut.



<table>
<thead>
  <tr><th>Atribut</th><th colspan="3">Nilai Default</th><th>Catatan</th></tr>
  <tr><th></th><th>Kunci simetris</th><th>Kunci Publik dalam Pasangan Kunci</th><th>Kunci Privat dalam Pasangan Kunci</th><th></th></tr>
</thead>
<tbody>
  <tr><td><code>DECRYPT</code></td><td><code>TRUE</code></td><td></td><td><code>TRUE</code><a href="#java-attr-note-eddsa">1</a></td><td>Benar menunjukkan Anda dapat menggunakan kunci untuk mendekripsi penyangga apa pun. Anda biasanya menyetel ini ke FALSE untuk kunci yang WRAP-nya disetel ke true. </td></tr>
  <tr><td><code>DERIVE</code></td><td></td><td></td><td></td><td>Memungkinkan kunci digunakan untuk mendapatkan kunci lain.</td></tr>
  <tr><td><code>ENCRYPT</code></td><td><code>TRUE</code></td><td><code>TRUE</code><a href="#java-attr-note-eddsa">1</a></td><td></td><td>Benar menunjukkan Anda dapat menggunakan kunci untuk mengenkripsi penyangga apa pun.</td></tr>
  <tr><td><code>EXTRACTABLE</code></td><td><code>TRUE</code></td><td></td><td><code>TRUE</code></td><td>Benar menunjukkan Anda dapat mengekspor kunci ini keluar dari HSM.</td></tr>
  <tr><td><code>ID</code></td><td><code></code></td><td></td><td><code></code></td><td>Nilai yang ditentukan pengguna yang digunakan untuk mengidentifikasi kunci.</td></tr>
  <tr><td><code>KEY_TYPE</code></td><td></td><td></td><td></td><td>Digunakan untuk mengidentifikasi jenis kunci (AES, DeSede, rahasia umum, EC, RSA, atau). ML-DSA</td></tr>
  <tr><td><code>LABEL</code></td><td> </td><td></td><td></td><td>String yang ditentukan pengguna memungkinkan Anda untuk dengan mudah mengidentifikasi kunci pada HSM Anda. Untuk mengikuti praktik terbaik, gunakan label unik untuk setiap tombol sehingga lebih mudah ditemukan nanti.</td></tr>
  <tr><td><code>LOCAL</code></td><td></td><td></td><td></td><td>Menunjukkan kunci yang dihasilkan oleh HSM.</td></tr>
  <tr><td><code>MLDSA_ALGORITHM</code></td><td></td><td></td><td></td><td>Menentukan set ML-DSA parameter yang digunakan untuk ML-DSA pembuatan pasangan kunci. Nilai yang valid: ML-DSA-44, ML-DSA-65, dan ML-DSA-87.</td></tr>
  <tr><td><code>OBJECT_CLASS</code></td><td></td><td></td><td></td><td>Digunakan untuk mengidentifikasi Kelas Objek dari kunci (SecretKey, PublicKey atau PrivateKey).</td></tr>
  <tr><td><code>PRIVATE</code></td><td><code>TRUE</code></td><td><code>TRUE</code></td><td><code>TRUE</code></td><td>Benar menunjukkan bahwa pengguna tidak dapat mengakses kunci sampai pengguna diautentikasi. Untuk kejelasan, pengguna tidak dapat mengakses kunci apa pun AWS CloudHSM sampai kunci tersebut diautentikasi, bahkan jika atribut ini disetel ke FALSE.</td></tr>
  <tr><td><code>SIGN</code></td><td><code>TRUE</code></td><td></td><td><code>TRUE</code></td><td>Benar menunjukkan Anda dapat menggunakan kunci untuk menandatangani digest pesan. Hal ini umumnya diatur ke FALSE untuk kunci publik dan kunci privat yang telah Anda arsipkan.</td></tr>
  <tr><td><code>SIZE</code></td><td></td><td></td><td></td><td>Atribut yang menentukan ukuran kunci. Untuk detail selengkapnya tentang ukuran kunci yang didukung, lihat Mekanisme yang <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/java-lib-supported_5.html#java-keys_5"> didukung untuk SDK Klien 5</a>.</td></tr>
  <tr><td><code>TOKEN</code></td><td><code>FALSE</code></td><td><code>FALSE</code></td><td><code>FALSE</code></td><td>Kunci permanen yang direplikasi di semua HSM di klaster dan termasuk dalam cadangan. TOKEN = FALSE menyiratkan kunci sementara yang secara otomatis dihapus ketika koneksi ke HSM rusak atau keluar.</td></tr>
  <tr><td><code>UNWRAP</code></td><td><code>TRUE</code></td><td></td><td><code>TRUE</code><a href="#java-attr-note-eddsa">1</a></td><td>Benar menunjukkan Anda dapat menggunakan kunci untuk membungkus kunci lain.</td></tr>
  <tr><td><code>VERIFY</code></td><td><code>TRUE</code></td><td><code>TRUE</code></td><td></td><td>Benar menunjukkan Anda dapat menggunakan kunci untuk menandatangani digest pesan. Hal ini umumnya diatur ke FALSE untuk kunci privat.</td></tr>
  <tr><td><code>WRAP</code></td><td><code>TRUE</code></td><td><code>TRUE</code><a href="#java-attr-note-eddsa">1</a></td><td></td><td>Benar menunjukkan Anda dapat menggunakan kunci untuk membungkus kunci lain. Anda biasanya akan mengatur ini ke FALSE untuk kunci privat.</td></tr>
  <tr><td><code>WRAP_WITH_TRUSTED</code></td><td><code>FALSE</code></td><td></td><td><code>FALSE</code></td><td>Benar menunjukkan kunci hanya dapat dibungkus dan dibuka dengan kunci yang memiliki <code>TRUSTED</code> atribut disetel ke true. Setelah kunci diset <code>WRAP_WITH_TRUSTED</code> el ke true, atribut itu hanya baca dan tidak dapat disetel ke false. Untuk membaca tentang pembungkus kepercayaan, lihat <a href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_using_trusted_keys_control_key_wrap.html"> Menggunakan kunci tepercaya untuk mengontrol pembong </a> karan kunci.</td></tr>
</tbody>
</table>


[1] Untuk kunci Ed25519, ENCRYPT, WRAP, DECRYPT, dan UNWRAP tidak berfungsi. Kunci Ed25519 hanya untuk penandatanganan dan tidak mendukung operasi enkripsi atau pembungkus. Saat mengimpor kunci Ed25519, atribut ini diatur ke FALSE.

**catatan**  
Anda mendapatkan dukungan yang lebih luas untuk atribut di pustaka PKCS \#11. Untuk informasi lebih lanjut, lihat [Atribut PKCS \#11 yang Didukung](pkcs11-attributes.md).

## Mengatur atribut untuk kunci
<a name="java-setting-attributes_5"></a>

`KeyAttributesMap`adalah Map-like objek Java, yang dapat Anda gunakan untuk mengatur nilai atribut untuk objek kunci. Metode untuk fungsi `KeyAttributesMap` yang mirip dengan metode yang digunakan untuk manipulasi peta Java. 

Untuk mengatur nilai kustom pada atribut, Anda memiliki dua opsi:
+ Gunakan metode yang tercantum dalam tabel berikut
+ Gunakan pola pembangun yang ditunjukkan kemudian dalam dokumen ini

Atribut peta objek mendukung metode berikut untuk mengatur atribut:



| Operasi | Nilai Pengembalian | Metode `KeyAttributesMap` | 
| --- | --- | --- | 
| Dapatkan nilai atribut kunci untuk kunci yang ada | Obyek (berisi nilai) atau nol | **get**(keyAttribute) | 
| Isi nilai satu atribut kunci  | Nilai sebelumnya terkait dengan atribut kunci, atau nol jika tidak ada pemetaan untuk atribut kunci | **put**(keyAttribute, value) | 
| Isi nilai untuk beberapa atribut kunci | N/A | **PutAll ** (kunciAttributesMap) | 
| Hapus pasangan nilai kunci dari peta atribut | Nilai sebelumnya terkait dengan atribut kunci, atau *nol* jika tidak ada pemetaan untuk atribut kunci | **remove**(keyAttribute) | 

**catatan**  
Setiap atribut yang tidak secara eksplisit Anda tentukan diatur ke default yang tercantum dalam tabel sebelumnya di [Atribut yang didukung](#java-attributes_5). 

### Mengatur atribut untuk pasangan kunci
<a name="java-setting-attributes-key-pair"></a>

Gunakan kelas Java `KeyPairAttributesMap` untuk menangani atribut kunci untuk pasangan kunci. `KeyPairAttributesMap` merangkum dua objek `KeyAttributesMap`; satu untuk kunci publik dan satu untuk kunci privat.

Untuk mengatur atribut individu untuk kunci publik dan kunci privat secara terpisah, Anda dapat menggunakan metode `put()` pada objek peta `KeyAttributes` yang terkait untuk kunci itu. Gunakan metode `getPublic()` untuk mengambil peta atribut untuk kunci publik, dan gunakan `getPrivate()` untuk mengambil peta atribut untuk kunci privat. Isi nilai dari beberapa atribut kunci bersama-sama untuk kedua pasangan kunci publik dan privat menggunakan `putAll()` dengan peta atribut pasangan kunci sebagai argumen.