1e41f4b71Sopenharmony_ci# Exporting a Key (ArkTS) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ciThis topic walks you through on how to export the public key of a persistently stored asymmetric key. Currently, HUKS supports export of the ECC, RSA, Ed25519, X25519, and SM2 public keys. 5e41f4b71Sopenharmony_ci>**NOTE**<br> 6e41f4b71Sopenharmony_ci> The mini-system devices support export of only the RSA public keys. 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## How to Develop 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci1. Set the key alias (**keyAlias**), which cannot exceed 128 bytes. 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci2. Use [exportKeyItem](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksexportkeyitem9) to export the key based on the specified **keyAlias** and **options**. 14e41f4b71Sopenharmony_ci **options** is a reserved parameter and is left empty currently. 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci3. In the [HuksReturnResult](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksreturnresult9) object returned, the public key is in the **outData** field in the DER format defined in X.509. For details about the format, see [Public Key Material Format](huks-concepts.md#public-key-material-format). 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci```ts 19e41f4b71Sopenharmony_ciimport { huks } from '@kit.UniversalKeystoreKit'; 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci/* 1. Set the key alias. */ 22e41f4b71Sopenharmony_cilet keyAlias = 'keyAlias'; 23e41f4b71Sopenharmony_ci/* Leave options empty. */ 24e41f4b71Sopenharmony_cilet emptyOptions: huks.HuksOptions = { 25e41f4b71Sopenharmony_ci properties: [] 26e41f4b71Sopenharmony_ci}; 27e41f4b71Sopenharmony_citry { 28e41f4b71Sopenharmony_ci /* 2. Export the key. */ 29e41f4b71Sopenharmony_ci huks.exportKeyItem(keyAlias, emptyOptions, (error, data) => { 30e41f4b71Sopenharmony_ci if (error) { 31e41f4b71Sopenharmony_ci console.error(`callback: exportKeyItem failed, ` + error); 32e41f4b71Sopenharmony_ci } else { 33e41f4b71Sopenharmony_ci console.info(`callback: exportKeyItem success, data = ${JSON.stringify(data)}`); 34e41f4b71Sopenharmony_ci } 35e41f4b71Sopenharmony_ci }); 36e41f4b71Sopenharmony_ci} catch (error) { 37e41f4b71Sopenharmony_ci console.error(`callback: exportKeyItem input arg invalid, ` + JSON.stringify(error)); 38e41f4b71Sopenharmony_ci} 39e41f4b71Sopenharmony_ci``` 40