harmony 鸿蒙Exporting a Key (C/C++)
Exporting a Key (C/C++)
This 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.
>NOTE
> The mini-system devices support export of only the RSA public keys.
Add the dynamic library in the CMake script.
target_link_libraries(entry PUBLIC libhuks_ndk.z.so)
How to Develop
Set parameters.
- keyAlias: key alias encapsulated in an OH_Huks_Blob struct. The maximum length of the key alias is 128 bytes.
- paramSetIn: This parameter is reserved. Leave it empty.
- key: OH_Huks_Blob object used to hold the key exported. Ensure that there is enough memory for storing the key exported.
Use OH_Huks_GetKeyItemParamSet to obtain key properties.
Check the return value. If the operation is successful, the exported key is in the key field in the DER format defined in X.509. For details about the format, see Public Key Material Format. If the operation fails, an error code is returned.
#include "huks/native_huks_api.h"
#include "huks/native_huks_param.h"
#include <string.h>
static napi_value ExportKey(napi_env env, napi_callback_info info)
{
/* 1. Set the key alias. */
const char *alias = "test_key";
struct OH_Huks_Blob aliasBlob = { .size = (uint32_t)strlen(alias), .data = (uint8_t *)alias };
/* Request the memory for holding the public key to be exported. */
uint8_t *pubKey = (uint8_t *)malloc(512); // Request memory based on the key size.
if (pubKey == nullptr) {
return nullptr;
}
struct OH_Huks_Blob keyBlob = { 256, pubKey };
struct OH_Huks_Result ohResult;
do {
ohResult = OH_Huks_ExportPublicKeyItem(&aliasBlob, nullptr, &keyBlob);
if (ohResult.errorCode != OH_HUKS_SUCCESS) {
break;
}
} while (0);
free(pubKey);
napi_value ret;
napi_create_int32(env, ohResult.errorCode, &ret);
return ret;
}
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Universal Keystore Kit (Key Management Service)
harmony 鸿蒙Specifying the User for Key Operations (for System Applications Only)
harmony 鸿蒙Checking a Key (ArkTS)
harmony 鸿蒙Checking a Key (C/C++)
harmony 鸿蒙Basic Concepts of HUKS
harmony 鸿蒙Deleting a Key (ArkTS)
harmony 鸿蒙Deleting a Key (C/C++)
harmony 鸿蒙Encryption and Decryption (ArkTS)
harmony 鸿蒙Encryption and Decryption (C/C++)
harmony 鸿蒙Encryption and Decryption Overview and Algorithm Specifications
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦