Registering and Unregistering a Provider (ArkTS)
From API version 22, huksExternalCrypto provides the APIs for registering and unregistering a Provider.
Registering a Provider
How to Develop
-
Construct registration parameters. You need to pass HUKS_EXT_CRYPTO_TAG_ABILITY_NAME.
-
Call registerProvider.
Development Cases
import { huksExternalCrypto } from '@kit.UniversalKeystoreKit';
import { BusinessError } from '@kit.BasicServicesKit';
function StringToUint8Array(str: string) {
let arr: number[] = [];
for (let i = 0, j = str.length; i < j; ++i) {
arr.push(str.charCodeAt(i));
}
return new Uint8Array(arr);
}
async function registerProvider(): Promise<void> {
try {
/* 1. Construct registration parameters. */
const providerName = "testProvider";
const extProperties: Array<huksExternalCrypto.HuksExternalCryptoParam> = [
{
tag: huksExternalCrypto.HuksExternalCryptoTag.HUKS_EXT_CRYPTO_TAG_ABILITY_NAME,
value: StringToUint8Array("CryptoExtension")
}
];
/* 2. Call registerProvider. */
await huksExternalCrypto.registerProvider(providerName, extProperties)
.then(() => {
console.info(`promise: registerProvider success`);
}).catch((error: BusinessError) => {
console.error(`promise: registerProvider failed, errCode : ${error.code}, errMsg : ${error.message}`);
});
} catch (error) {
console.error(`promise: registerProvider input arg invalid`);
}
}
async function TestRegisterProvider() {
await registerProvider();
}
Unregistering a Provider
How to Develop
-
Construct unregistration parameters. To unregister a single ability, you need to pass HUKS_EXT_CRYPTO_TAG_ABILITY_NAME. This parameter does not need to be passed for batch unregistration.
-
Call unregisterProvider.
Single unregistration
import { huksExternalCrypto } from '@kit.UniversalKeystoreKit';
import { BusinessError } from '@kit.BasicServicesKit';
function StringToUint8Array(str: string) {
let arr: number[] = [];
for (let i = 0, j = str.length; i < j; ++i) {
arr.push(str.charCodeAt(i));
}
return new Uint8Array(arr);
}
async function unregisterProvider(): Promise<void> {
try {
/* 1. Construct unregistration parameters. */
const providerName = "testProvider";
const extProperties: Array<huksExternalCrypto.HuksExternalCryptoParam> = [
{
tag: huksExternalCrypto.HuksExternalCryptoTag.HUKS_EXT_CRYPTO_TAG_ABILITY_NAME,
value: StringToUint8Array("CryptoExtension")
}
];
/* 2. Call unregisterProvider. */
await huksExternalCrypto.unregisterProvider(providerName, extProperties)
.then(() => {
console.info(`promise: unregisterProvider success`);
}).catch((error: BusinessError) => {
console.error(`promise: unregisterProvider failed, errCode : ${error.code}, errMsg : ${error.message}`);
});
} catch (error) {
console.error(`promise: unregisterProvider input arg invalid`);
}
}
async function TestRegisterProvider() {
await unregisterProvider();
}
Batch unregistration
import { huksExternalCrypto } from '@kit.UniversalKeystoreKit';
import { BusinessError } from '@kit.BasicServicesKit';
async function unregisterProvider(): Promise<void> {
try {
/* 1. Construct unregistration parameters. */
const providerName = "testProvider";
const extProperties: Array<huksExternalCrypto.HuksExternalCryptoParam> = [];
/* 2. Call unregisterProvider. */
await huksExternalCrypto.unregisterProvider(providerName, extProperties)
.then(() => {
console.info(`promise: unregisterProvider success`);
}).catch((error: BusinessError) => {
console.error(`promise: unregisterProvider failed, errCode : ${error.code}, errMsg : ${error.message}`);
});
} catch (error) {
console.error(`promise: unregisterProvider input arg invalid`);
}
}
async function TestRegisterProvider() {
await unregisterProvider();
}
你可能感兴趣的鸿蒙文章
openharmony 鸿蒙 huks-key-import-overview
openharmony 鸿蒙 huks-signing-signature-verification-arkts
openharmony 鸿蒙 huks-hmac-arkts
openharmony 鸿蒙 huks-key-agreement-overview
openharmony 鸿蒙 huks-as-user-sys
openharmony 鸿蒙 huks-delete-key-ndk