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