1e41f4b71Sopenharmony_ci# Key Agreement Overview and Algorithm Specifications
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ciGenerally, keys cannot be directly transmitted between devices. Key agreement allows two or more parties to jointly establish a shared key in a non-secure environment. During key agreement, only the public key is transmitted, and the private key is still stored on the device, which ensures data security and confidentiality.
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ciFor the key agreement between two devices, each device generates an asymmetric key and uses the public key of the peer device and its own private key to agree on a shared key.
8e41f4b71Sopenharmony_ci> **NOTE**<br>
9e41f4b71Sopenharmony_ci> The mini-system devices do not support key agreement.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Supported Algorithms
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ciThe following table lists the supported key agreement specifications.
14e41f4b71Sopenharmony_ci<!--Del-->
15e41f4b71Sopenharmony_ciThe key management service specifications include mandatory specifications and optional specifications. Mandatory specifications are algorithm specifications that must be supported. Optional specifications can be used based on actual situation. Before using the optional specifications, refer to the documents provided by the vendor to ensure that the specifications are supported.
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci**You are advised to use mandatory specifications in your development for compatibility purposes.**
18e41f4b71Sopenharmony_ci<!--DelEnd-->
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci| Algorithm| Description| API Version| <!--DelCol4-->Mandatory|
21e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
22e41f4b71Sopenharmony_ci| ECDH | The key type must be ECC.| 8+ | Yes|
23e41f4b71Sopenharmony_ci| DH | - | 8+ | Yes|
24e41f4b71Sopenharmony_ci| X25519 | - | 8+ | Yes|
25