harmony 鸿蒙HuksTypeApi

2025-06-12 浏览 (1)

HuksTypeApi

Overview

Defines the macros, enums, structs, and error codes used by OpenHarmony Universal KeyStore (HUKS) functions.

System capability: SystemCapability.Security.Huks

Since: 9

Summary

File

NameDescription
native_huks_type.hDefines the enums, structs, and macros used in the HUKS functions.

Structs

NameDescription
struct  OH_Huks_ResultDefines the struct of the returned data, including a status code and related description.
struct  OH_Huks_BlobDefines the struct of a binary large object (BLOB).
struct  OH_Huks_ParamDefines the struct of the parameters in a parameter set.
struct  OH_Huks_ParamSetDefines the struct of a parameter set.
struct  OH_Huks_CertChainDefines the struct of a certificate chain.
struct  OH_Huks_KeyInfoDefines the struct of key information.
struct  OH_Huks_PubKeyInfoDefines the struct of the public key information.
struct  OH_Huks_KeyMaterialRsaDefines the struct of a Rivest-Shamir-Adleman (RSA) key.
struct  OH_Huks_KeyMaterialEccDefines the struct of an Elliptic Curve Cryptography (ECC) key.
struct  OH_Huks_KeyMaterialDsaDefines the struct of a DSA key.
struct  OH_Huks_KeyMaterialDhDefines the struct of a Diffie-Hellman (DH) key.
struct  OH_Huks_KeyMaterial25519Defines the struct of a 25519 key.
struct  OH_Huks_KeyAliasSetDefines a key alias set.

Macros

NameValue
OH_HUKS_AE_TAG_LEN16
OH_HUKS_BITS_PER_BYTE8
OH_HUKS_MAX_KEY_SIZE2048
OH_HUKS_AE_NONCE_LEN12
OH_HUKS_MAX_KEY_ALIAS_LEN64
OH_HUKS_MAX_PROCESS_NAME_LEN50
OH_HUKS_MAX_RANDOM_LEN1024
OH_HUKS_SIGNATURE_MIN_SIZE64
OH_HUKS_MAX_OUT_BLOB_SIZE(5 * 1024 * 1024)
OH_HUKS_WRAPPED_FORMAT_MAX_SIZE(1024 * 1024)
OH_HUKS_IMPORT_WRAPPED_KEY_TOTAL_BLOBS10
TOKEN_CHALLENGE_LEN32
SHA256_SIGN_LEN32
TOKEN_SIZE32
MAX_AUTH_TIMEOUT_SECOND60
SECURE_SIGN_VERSION0x01000001

Enums

NameDescription
OH_Huks_KeyPurpose {
OH_HUKS_KEY_PURPOSE_ENCRYPT = 1,
OH_HUKS_KEY_PURPOSE_DECRYPT = 2,
OH_HUKS_KEY_PURPOSE_SIGN = 4,
OH_HUKS_KEY_PURPOSE_VERIFY = 8,
OH_HUKS_KEY_PURPOSE_DERIVE = 16,
OH_HUKS_KEY_PURPOSE_WRAP = 32,
OH_HUKS_KEY_PURPOSE_UNWRAP = 64,
OH_HUKS_KEY_PURPOSE_MAC = 128,
OH_HUKS_KEY_PURPOSE_AGREE = 256
}
Enumerates the key purposes.
OH_Huks_KeyDigest {
OH_HUKS_DIGEST_NONE = 0,
OH_HUKS_DIGEST_MD5 = 1,
OH_HUKS_DIGEST_SM3 = 2,
OH_HUKS_DIGEST_SHA1 = 10,
OH_HUKS_DIGEST_SHA224 = 11,
OH_HUKS_DIGEST_SHA256 = 12,
OH_HUKS_DIGEST_SHA384 = 13,
OH_HUKS_DIGEST_SHA512 = 14
}
Enumerates the digest algorithms.
OH_Huks_KeyPadding {
OH_HUKS_PADDING_NONE = 0,
OH_HUKS_PADDING_OAEP = 1,
OH_HUKS_PADDING_PSS = 2,
OH_HUKS_PADDING_PKCS1_V1_5 = 3,
OH_HUKS_PADDING_PKCS5 = 4,
OH_HUKS_PADDING_PKCS7 = 5
}
Enumerates the padding algorithms.
OH_Huks_CipherMode {
OH_HUKS_MODE_ECB = 1,
OH_HUKS_MODE_CBC = 2,
OH_HUKS_MODE_CTR = 3,
OH_HUKS_MODE_OFB = 4,
OH_HUKS_MODE_CFB = 5,
OH_HUKS_MODE_CCM = 31,
OH_HUKS_MODE_GCM = 32
}
Enumerates the cipher modes.
OH_Huks_KeySize {
OH_HUKS_RSA_KEY_SIZE_512 = 512,
OH_HUKS_RSA_KEY_SIZE_768 = 768,
OH_HUKS_RSA_KEY_SIZE_1024 = 1024,
OH_HUKS_RSA_KEY_SIZE_2048 = 2048,
OH_HUKS_RSA_KEY_SIZE_3072 = 3072,
OH_HUKS_RSA_KEY_SIZE_4096 = 4096,
OH_HUKS_ECC_KEY_SIZE_224 = 224,
OH_HUKS_ECC_KEY_SIZE_256 = 256,
OH_HUKS_ECC_KEY_SIZE_384 = 384,
OH_HUKS_ECC_KEY_SIZE_521 = 521,
OH_HUKS_AES_KEY_SIZE_128 = 128,
OH_HUKS_AES_KEY_SIZE_192 = 192,
OH_HUKS_AES_KEY_SIZE_256 = 256,
OH_HUKS_AES_KEY_SIZE_512 = 512,
OH_HUKS_CURVE25519_KEY_SIZE_256 = 256,
OH_HUKS_DH_KEY_SIZE_2048 = 2048,
OH_HUKS_DH_KEY_SIZE_3072 = 3072,
OH_HUKS_DH_KEY_SIZE_4096 = 4096,
OH_HUKS_SM2_KEY_SIZE_256 = 256,
OH_HUKS_SM4_KEY_SIZE_128 = 128
}
Enumerates key sizes of different algorithms.
OH_Huks_KeyAlg {
OH_HUKS_ALG_RSA = 1,
OH_HUKS_ALG_ECC = 2,
OH_HUKS_ALG_DSA = 3,
OH_HUKS_ALG_AES = 20,
OH_HUKS_ALG_HMAC = 50,
OH_HUKS_ALG_HKDF = 51,
OH_HUKS_ALG_PBKDF2 = 52,
OH_HUKS_ALG_ECDH = 100,
OH_HUKS_ALG_X25519 = 101,
OH_HUKS_ALG_ED25519 = 102,
OH_HUKS_ALG_DH = 103,
OH_HUKS_ALG_SM2 = 150,
OH_HUKS_ALG_SM3 = 151,
OH_HUKS_ALG_SM4 = 152
}
Enumerates the algorithms for keys.
OH_Huks_AlgSuite {
OH_HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDING = 1,
OH_HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING = 2
}
Enumerates the algorithm suites that can be used for importing of a key in cipher text.
OH_Huks_KeyGenerateType {
OH_HUKS_KEY_GENERATE_TYPE_DEFAULT = 0,
OH_HUKS_KEY_GENERATE_TYPE_DERIVE = 1,
OH_HUKS_KEY_GENERATE_TYPE_AGREE = 2
}
Enumerates the types of the key generated.
OH_Huks_KeyFlag {
OH_HUKS_KEY_FLAG_IMPORT_KEY = 1,
OH_HUKS_KEY_FLAG_GENERATE_KEY = 2,
OH_HUKS_KEY_FLAG_AGREE_KEY = 3,
OH_HUKS_KEY_FLAG_DERIVE_KEY = 4 }
Enumerates the key generation types.
OH_Huks_KeyStorageType {
OH_HUKS_STORAGE_TEMP = 0,
OH_HUKS_STORAGE_PERSISTENT = 1,
OH_HUKS_STORAGE_ONLY_USED_IN_HUKS = 2,
OH_HUKS_STORAGE_KEY_EXPORT_ALLOWED = 3
}
Enumerates the key storage types.
OH_Huks_ImportKeyType {
OH_HUKS_KEY_TYPE_PUBLIC_KEY = 0,
OH_HUKS_KEY_TYPE_PRIVATE_KEY = 1,
OH_HUKS_KEY_TYPE_KEY_PAIR = 2
}
Enumerates the types of the key to import. By default, a public key is imported. This field is not required when a symmetric key is imported.
OH_Huks_RsaPssSaltLenType {
OH_HUKS_RSA_PSS_SALT_LEN_DIGEST = 0,
OH_HUKS_RSA_PSS_SALT_LEN_MAX = 1
}
Enumerates the formats in which a key is stored.
OH_Huks_ErrCode {
OH_HUKS_SUCCESS = 0,
OH_HUKS_ERR_CODE_PERMISSION_FAIL = 201, OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT = 401,
OH_HUKS_ERR_CODE_NOT_SUPPORTED_API = 801,
OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED = 12000001,
OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT = 12000002,
OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT = 12000003,
OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL = 12000004,
OH_HUKS_ERR_CODE_COMMUNICATION_FAIL = 12000005,
OH_HUKS_ERR_CODE_CRYPTO_FAIL = 12000006,
OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED = 12000007,
OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED = 12000008,
OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT = 12000009,
OH_HUKS_ERR_CODE_SESSION_LIMIT = 12000010, OH_HUKS_ERR_CODE_ITEM_NOT_EXIST = 12000011,
OH_HUKS_ERR_CODE_INTERNAL_ERROR = 12000012,
OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST = 12000013,
OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORY = 12000014,
OH_HUKS_ERR_CODE_CALL_SERVICE_FAILED = 12000015,
OH_HUKS_ERR_CODE_DEVICE_PASSWORD_UNSET = 12000016
}
Enumerates error codes.
OH_Huks_TagType {
OH_HUKS_TAG_TYPE_INVALID = 0 << 28,
OH_HUKS_TAG_TYPE_INT = 1 << 28,
OH_HUKS_TAG_TYPE_UINT = 2 << 28,
OH_HUKS_TAG_TYPE_ULONG = 3 << 28,
OH_HUKS_TAG_TYPE_BOOL = 4 << 28,
OH_HUKS_TAG_TYPE_BYTES = 5 << 28
}
Enumerates the mask values of the parameter type in a parameter set.
OH_Huks_UserAuthType {
OH_HUKS_USER_AUTH_TYPE_FINGERPRINT = 1 << 0,
OH_HUKS_USER_AUTH_TYPE_FACE = 1 << 1,
OH_HUKS_USER_AUTH_TYPE_PIN = 1 << 2
}
Enumerates the user authentication types in key access control.
OH_Huks_UserAuthMode {
OH_HUKS_USER_AUTH_MODE_LOCAL = 0,
OH_HUKS_USER_AUTH_MODE_COAUTH = 1, }
Enumerates the user authentication modes in key access control.
OH_Huks_AuthAccessType {
OH_HUKS_AUTH_ACCESS_INVALID_CLEAR_PASSWORD = 1 << 0,
OH_HUKS_AUTH_ACCESS_INVALID_NEW_BIO_ENROLL = 1 << 1,
OH_HUKS_AUTH_ACCESS_ALWAYS_VALID = 1 << 2
}
Enumerates the rules for invalidating a key.
OH_Huks_AuthStorageLevel {
OH_HUKS_AUTH_STORAGE_LEVEL_DE = 0,
OH_HUKS_AUTH_STORAGE_LEVEL_CE = 1,
OH_HUKS_AUTH_STORAGE_LEVEL_ECE = 2
}
Enumerates the security levels for storing the key generated or imported.
OH_Huks_ChallengeType {
OH_HUKS_CHALLENGE_TYPE_NORMAL = 0,
OH_HUKS_CHALLENGE_TYPE_CUSTOM = 1,
OH_HUKS_CHALLENGE_TYPE_NONE = 2
}
Enumerates the types of the challenge generated when a key is used.
OH_Huks_ChallengePosition {
OH_HUKS_CHALLENGE_POS_0 = 0,
OH_HUKS_CHALLENGE_POS_1,
OH_HUKS_CHALLENGE_POS_2,
OH_HUKS_CHALLENGE_POS_3
}
Enumerates the positions of the 8-byte valid value in a custom challenge generated.
OH_Huks_SecureSignType {
OH_HUKS_SECURE_SIGN_WITH_AUTHINFO = 1
}
Enumerates the signature types of the key generated or imported.
OH_Huks_Tag {
OH_HUKS_TAG_ALGORITHM = OH_HUKS_TAG_TYPE_UINT |1,
OH_HUKS_TAG_PURPOSE = OH_HUKS_TAG_TYPE_UINT |2,
OH_HUKS_TAG_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT |3,
OH_HUKS_TAG_DIGEST = OH_HUKS_TAG_TYPE_UINT |4,
OH_HUKS_TAG_PADDING = OH_HUKS_TAG_TYPE_UINT |5,
OH_HUKS_TAG_BLOCK_MODE = OH_HUKS_TAG_TYPE_UINT |6,
OH_HUKS_TAG_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT |7,
OH_HUKS_TAG_ASSOCIATED_DATA = OH_HUKS_TAG_TYPE_BYTES |8,
OH_HUKS_TAG_NONCE = OH_HUKS_TAG_TYPE_BYTES |9,
OH_HUKS_TAG_IV = OH_HUKS_TAG_TYPE_BYTES |10,
OH_HUKS_TAG_INFO = OH_HUKS_TAG_TYPE_BYTES |11,
OH_HUKS_TAG_SALT = OH_HUKS_TAG_TYPE_BYTES |12,
OH_HUKS_TAG_ITERATION = OH_HUKS_TAG_TYPE_UINT |14,
OH_HUKS_TAG_KEY_GENERATE_TYPE = OH_HUKS_TAG_TYPE_UINT |15,
OH_HUKS_TAG_AGREE_ALG = OH_HUKS_TAG_TYPE_UINT |19,
OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL |20,
OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES |21,
OH_HUKS_TAG_AGREE_PUBLIC_KEY = OH_HUKS_TAG_TYPE_BYTES |22,
OH_HUKS_TAG_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES |23,
OH_HUKS_TAG_DERIVE_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT |24,
OH_HUKS_TAG_IMPORT_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT |25,
OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE = OH_HUKS_TAG_TYPE_UINT |26,
OH_HUKS_TAG_DERIVED_AGREED_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT |29,
OH_HUKS_TAG_RSA_PSS_SALT_LEN_TYPE = OH_HUKS_TAG_TYPE_UINT |30,
OH_HUKS_TAG_ALL_USERS = OH_HUKS_TAG_TYPE_BOOL |301,
OH_HUKS_TAG_USER_ID = OH_HUKS_TAG_TYPE_UINT |302,
OH_HUKS_TAG_NO_AUTH_REQUIRED = OH_HUKS_TAG_TYPE_BOOL |303,
OH_HUKS_TAG_USER_AUTH_TYPE = OH_HUKS_TAG_TYPE_UINT |304,
OH_HUKS_TAG_AUTH_TIMEOUT = OH_HUKS_TAG_TYPE_UINT |305,
OH_HUKS_TAG_AUTH_TOKEN = OH_HUKS_TAG_TYPE_BYTES |306,
OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPE = OH_HUKS_TAG_TYPE_UINT |307,
OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE = OH_HUKS_TAG_TYPE_UINT |308,
OH_HUKS_TAG_CHALLENGE_TYPE = OH_HUKS_TAG_TYPE_UINT |309,
OH_HUKS_TAG_CHALLENGE_POS = OH_HUKS_TAG_TYPE_UINT |310,
OH_HUKS_TAG_KEY_AUTH_PURPOSE = OH_HUKS_TAG_TYPE_UINT |311,
OH_HUKS_TAG_AUTH_STORAGE_LEVEL = OH_HUKS_TAG_TYPE_UINT |316,
OH_HUKS_TAG_USER_AUTH_MODE = OH_HUKS_TAG_TYPE_UINT |319,
OH_HUKS_TAG_ATTESTATION_CHALLENGE = OH_HUKS_TAG_TYPE_BYTES |501,
OH_HUKS_TAG_ATTESTATION_APPLICATION_ID = OH_HUKS_TAG_TYPE_BYTES |502,
OH_HUKS_TAG_ATTESTATION_ID_ALIAS = OH_HUKS_TAG_TYPE_BYTES |511,
OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO = OH_HUKS_TAG_TYPE_BYTES |514,
OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFO = OH_HUKS_TAG_TYPE_BYTES |515,
OH_HUKS_TAG_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL |1001,
OH_HUKS_TAG_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT |1002,
OH_HUKS_TAG_IS_ALLOWED_WRAP = OH_HUKS_TAG_TYPE_BOOL |1003,
OH_HUKS_TAG_KEY_WRAP_TYPE = OH_HUKS_TAG_TYPE_UINT |1004,
OH_HUKS_TAG_KEY_AUTH_ID = OH_HUKS_TAG_TYPE_BYTES |1005,
OH_HUKS_TAG_KEY_ROLE = OH_HUKS_TAG_TYPE_UINT |1006,
OH_HUKS_TAG_KEY_FLAG = OH_HUKS_TAG_TYPE_UINT |1007,
OH_HUKS_TAG_IS_ASYNCHRONIZED = OH_HUKS_TAG_TYPE_UINT |1008,
OH_HUKS_TAG_KEY_DOMAIN = OH_HUKS_TAG_TYPE_UINT |1011,
OH_HUKS_TAG_IS_DEVICE_PASSWORD_SET = OH_HUKS_TAG_TYPE_BOOL |1012,
OH_HUKS_TAG_AE_TAG = OH_HUKS_TAG_TYPE_BYTES |10009,
OH_HUKS_TAG_SYMMETRIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES |20001,
OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES |20002,
OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES |20003
}
Enumerates the tags contained in a parameter set.

Enum Description

OH_Huks_AlgSuite

enum OH_Huks_AlgSuite

Description

Enumerates the algorithm suites that can be used for importing of a key in ciphertext.

Since: 9

ValueDescription
OH_HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDINGKey material in Length-Value format, using X25519 for key agreement and AES-256-GCM for encryption and decryption:
OH_HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDINGKey material in Length-Value format, using ECDH-p256 for key agreement and AES-256-GCM for encryption and decryption:

OH_Huks_AuthAccessType

enum OH_Huks_AuthAccessType

Description

Enumerates the rules for invalidating a key.

Since: 9

ValueDescription
OH_HUKS_AUTH_ACCESS_INVALID_CLEAR_PASSWORDThe key becomes invalid after the password is cleared.
OH_HUKS_AUTH_ACCESS_INVALID_NEW_BIO_ENROLLThe key becomes invalid after a new biometric feature is enrolled.
OH_HUKS_AUTH_ACCESS_ALWAYS_VALIDThe key is always valid.
Since: 11

OH_Huks_AuthStorageLevel

enum OH_Huks_AuthStorageLevel

Description

Enumerates the security levels for storing the key generated or imported.

Since: 11

ValueDescription
OH_HUKS_AUTH_STORAGE_LEVEL_DEThe key can be accessed only after the device is started.
OH_HUKS_AUTH_STORAGE_LEVEL_CEThe key can be accessed only after the first unlock of the device.
OH_HUKS_AUTH_STORAGE_LEVEL_ECEThe key can be accessed only when the device is unlocked.

OH_Huks_ChallengePosition

enum OH_Huks_ChallengePosition

Description

Enumerates the positions of the 8-byte valid value in a custom challenge generated.

Since: 9

ValueDescription
OH_HUKS_CHALLENGE_POS_0Bytes 0 to 7.
OH_HUKS_CHALLENGE_POS_1Bytes 8 to 15.
OH_HUKS_CHALLENGE_POS_2Bytes 16 to 23.
OH_HUKS_CHALLENGE_POS_3Bytes 24 to 31.

OH_Huks_ChallengeType

enum OH_Huks_ChallengeType

Description

Enumerates the types of the challenge generated when a key is used.

Since: 9

See

OH_Huks_ChallengePosition

ValueDescription
OH_HUKS_CHALLENGE_TYPE_NORMALNormal challenge, which is of 32 bytes by default.
OH_HUKS_CHALLENGE_TYPE_CUSTOMCustom challenge, which supports one-time authentication for multiple keys. The valid value of a custom challenge is of 8 bytes.
OH_HUKS_CHALLENGE_TYPE_NONEChallenge is not required.

OH_Huks_CipherMode

enum OH_Huks_CipherMode

Description

Enumerates the cipher modes.

Since: 9

ValueDescription
OH_HUKS_MODE_ECBElectronic Code Block (ECB) mode.
OH_HUKS_MODE_CBCCipher Block Chaining (CBC) mode.
OH_HUKS_MODE_CTRCounter (CTR) mode.
OH_HUKS_MODE_OFBOutput Feedback (OFB) mode.
OH_HUKS_MODE_CFBOutput Feedback (OFB) mode.
Since: 12
OH_HUKS_MODE_CCMCounter with CBC-MAC (CCM) mode.
OH_HUKS_MODE_GCMGalois/Counter (GCM) mode.

OH_Huks_ErrCode

enum OH_Huks_ErrCode

Description

Enumerates the error codes.

Since: 9

ValueDescription
OH_HUKS_SUCCESSSuccess.
OH_HUKS_ERR_CODE_PERMISSION_FAILPermission verification failed.
OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENTInvalid parameter (universal).
OH_HUKS_ERR_CODE_NOT_SUPPORTED_APIThe API is not supported.
OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTEDThe feature is not supported.
OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENTKey algorithm parameters are missing.
OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENTInvalid key algorithm parameter.
OH_HUKS_ERR_CODE_FILE_OPERATION_FAILFile operation failed.
OH_HUKS_ERR_CODE_COMMUNICATION_FAILThe process communication failed.
OH_HUKS_ERR_CODE_CRYPTO_FAILCrypto operation failed.
OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATEDFailed to access the key because the key has expired.
OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILEDFailed to access the key because the authentication has failed.
OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUTKey access timed out.
OH_HUKS_ERR_CODE_SESSION_LIMITThe number of key operation sessions has reached the limit.
OH_HUKS_ERR_CODE_ITEM_NOT_EXISTThe entity does not exist.
OH_HUKS_ERR_CODE_INTERNAL_ERRORInternal error.
OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXISTThe authentication credential does not exist.
OH_HUKS_ERR_CODE_INSUFFICIENT_MEMORYInsufficient memory.
OH_HUKS_ERR_CODE_CALL_SERVICE_FAILEDFailed to invoke the service.
OH_HUKS_ERR_CODE_DEVICE_PASSWORD_UNSETThe lock screen password required is not set.
Since: 11

OH_Huks_ImportKeyType

enum OH_Huks_ImportKeyType

Description

Enumerates the types of the key to import. By default, a public key is imported. This field is not required when a symmetric key is imported.

Since: 9

ValueDescription
OH_HUKS_KEY_TYPE_PUBLIC_KEYPublic key.
OH_HUKS_KEY_TYPE_PRIVATE_KEYPrivate key.
OH_HUKS_KEY_TYPE_KEY_PAIRPublic and private key pair.

OH_Huks_KeyAlg

enum OH_Huks_KeyAlg

Description

Enumerates the algorithms for keys.

Since: 9

ValueDescription
OH_HUKS_ALG_RSARSA.
OH_HUKS_ALG_ECCECC.
OH_HUKS_ALG_DSADSA.
OH_HUKS_ALG_AESAdvanced Encryption Standard (AES).
OH_HUKS_ALG_HMACHMAC algorithm.
OH_HUKS_ALG_HKDFHKDF.
OH_HUKS_ALG_PBKDF2PBKDF2.
OH_HUKS_ALG_ECDHECDH.
OH_HUKS_ALG_X25519X25519.
OH_HUKS_ALG_ED25519Ed25519.
OH_HUKS_ALG_DHDH.
OH_HUKS_ALG_SM2ShangMi2 (SM2).
OH_HUKS_ALG_SM3SM3.
OH_HUKS_ALG_SM4SM4.

OH_Huks_KeyDigest

enum OH_Huks_KeyDigest

Description

Enumerates the digest algorithms.

Since: 9

ValueDescription
OH_HUKS_DIGEST_NONENo digest algorithm.
OH_HUKS_DIGEST_MD5MD5.
OH_HUKS_DIGEST_SM3SM3.
OH_HUKS_DIGEST_SHA1SHA-1.
OH_HUKS_DIGEST_SHA224SHA-224.
OH_HUKS_DIGEST_SHA256SHA-256.
OH_HUKS_DIGEST_SHA384SHA-384.
OH_HUKS_DIGEST_SHA512SHA-512.

OH_Huks_KeyFlag

enum OH_Huks_KeyFlag

Description

Enumerates the key generation types.

Since: 9

ValueDescription
OH_HUKS_KEY_FLAG_IMPORT_KEYImport a public key using a function.
OH_HUKS_KEY_FLAG_GENERATE_KEYGenerate a key by using a function.
OH_HUKS_KEY_FLAG_AGREE_KEYGenerate a key by using a key agreement function.
OH_HUKS_KEY_FLAG_DERIVE_KEYDerive a key by using a function.

OH_Huks_KeyGenerateType

enum OH_Huks_KeyGenerateType

Description

Enumerates the types of the key generated.

Since: 9

ValueDescription
OH_HUKS_KEY_GENERATE_TYPE_DEFAULTKey generated by default.
OH_HUKS_KEY_GENERATE_TYPE_DERIVEDerived key.
OH_HUKS_KEY_GENERATE_TYPE_AGREEKey generated by key agreement.

OH_Huks_KeyPadding

enum OH_Huks_KeyPadding

Description

Enumerates the padding algorithms.

Since: 9

ValueDescription
OH_HUKS_PADDING_NONENo padding algorithm.
OH_HUKS_PADDING_OAEPOptimal Asymmetric Encryption Padding (OAEP).
OH_HUKS_PADDING_PSSProbabilistic Signature Scheme (PSS).
OH_HUKS_PADDING_PKCS1_V1_5Public Key Cryptography Standards (PKCS) #1 v1.5.
OH_HUKS_PADDING_PKCS5PKCS #5.
OH_HUKS_PADDING_PKCS7PKCS #7.

OH_Huks_KeyPurpose

enum OH_Huks_KeyPurpose

Description

Enumerates the key purposes.

Since: 9

ValueDescription
OH_HUKS_KEY_PURPOSE_ENCRYPTUsed to encrypt the plaintext.
OH_HUKS_KEY_PURPOSE_DECRYPTUsed to decrypt the cipher text.
OH_HUKS_KEY_PURPOSE_SIGNUsed for signing.
OH_HUKS_KEY_PURPOSE_VERIFYUsed to verify the signature.
OH_HUKS_KEY_PURPOSE_DERIVEUsed to derive a key.
OH_HUKS_KEY_PURPOSE_WRAPUsed for exporting a key in ciphertext.
OH_HUKS_KEY_PURPOSE_UNWRAPUsed for importing a key in ciphertext.
OH_HUKS_KEY_PURPOSE_MACUsed to generate a message authentication code (MAC).
OH_HUKS_KEY_PURPOSE_AGREEUsed for key agreement.

OH_Huks_KeySize

enum OH_Huks_KeySize

Description

Enumerates the key sizes of different algorithms.

Since: 9

ValueDescription
OH_HUKS_RSA_KEY_SIZE_512RSA key of 512 bits.
OH_HUKS_RSA_KEY_SIZE_768RSA key of 768 bits.
OH_HUKS_RSA_KEY_SIZE_1024RSA key of 1024 bits.
OH_HUKS_RSA_KEY_SIZE_2048RSA key of 2048 bits.
OH_HUKS_RSA_KEY_SIZE_3072RSA key of 3072 bits.
OH_HUKS_RSA_KEY_SIZE_4096RSA key of 4096 bits.
OH_HUKS_ECC_KEY_SIZE_224ECC key of 224 bits.
OH_HUKS_ECC_KEY_SIZE_256ECC key of 256 bits.
OH_HUKS_ECC_KEY_SIZE_384ECC key of 384 bits.
OH_HUKS_ECC_KEY_SIZE_521ECC key of 521 bits.
OH_HUKS_AES_KEY_SIZE_128AES key of 128 bits.
OH_HUKS_AES_KEY_SIZE_192AES key of 192 bits.
OH_HUKS_AES_KEY_SIZE_256AES key of 256 bits.
OH_HUKS_AES_KEY_SIZE_512AES key of 512 bits.
OH_HUKS_CURVE25519_KEY_SIZE_256Curve25519 key of 256 bits.
OH_HUKS_DH_KEY_SIZE_2048DH key of 2048 bits.
OH_HUKS_DH_KEY_SIZE_3072DH key of 3072 bits.
OH_HUKS_DH_KEY_SIZE_4096DH key of 4096 bits.
OH_HUKS_SM2_KEY_SIZE_256SM2 key of 256 bits.
OH_HUKS_SM4_KEY_SIZE_128SM4 key of 128 bits.

OH_Huks_KeyStorageType

enum OH_Huks_KeyStorageType

Description

Enumerates the key storage types.

Since: 9

ValueDescription
OH_HUKS_STORAGE_TEMPReturn the key to the service via the API.
OH_HUKS_STORAGE_PERSISTENTStore the key in HUKS.
OH_HUKS_STORAGE_ONLY_USED_IN_HUKSStore the key generated from key derivation or key agreement in HUKS.
OH_HUKS_STORAGE_KEY_EXPORT_ALLOWEDReturn the key generated from key derivation or key agreement to the service.

OH_Huks_RsaPssSaltLenType

enum OH_Huks_RsaPssSaltLenType

Description

Enumerates the formats in which a key is stored.

Since: 10

ValueDescription
OH_HUKS_RSA_PSS_SALT_LEN_DIGESTThe salt length is set to the digest length.
OH_HUKS_RSA_PSS_SALT_LEN_MAXThe salt length is set to the maximum length.

OH_Huks_SecureSignType

enum OH_Huks_SecureSignType

Description

Enumerates the signature types of the key generated or imported.

Since: 9

ValueDescription
OH_HUKS_SECURE_SIGN_WITH_AUTHINFOThe signature carries authentication information. This field is specified when a key is generated or imported. When the key is used for signing, the data will be added with the authentication information and then be signed.

OH_Huks_Tag

enum OH_Huks_Tag

Description

Enumerates the tags used in a parameter set.

Since: 9

ValueDescription
OH_HUKS_TAG_ALGORITHMTags 1 to 200.
Algorithm type.
OH_HUKS_TAG_PURPOSEKey purpose.
OH_HUKS_TAG_KEY_SIZEKey length.
OH_HUKS_TAG_DIGESTDigest algorithm.
OH_HUKS_TAG_PADDINGPadding algorithm.
OH_HUKS_TAG_BLOCK_MODECipher mode.
OH_HUKS_TAG_KEY_TYPEKey type.
OH_HUKS_TAG_ASSOCIATED_DATAAssociated authentication data.
OH_HUKS_TAG_NONCEField for key encryption and decryption.
OH_HUKS_TAG_IVInitialized vector (IV).
OH_HUKS_TAG_INFOInformation generated during key derivation.
OH_HUKS_TAG_SALTSalt value used for key derivation.
OH_HUKS_TAG_ITERATIONNumber of iterations for key derivation.
OH_HUKS_TAG_KEY_GENERATE_TYPEType of the generated key. For details, see OH_Huks_KeyGenerateType.
OH_HUKS_TAG_AGREE_ALGAlgorithm used in key agreement.
OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIASAlias of the public key used for key agreement.
OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIASAlias of the private key used for key agreement.
OH_HUKS_TAG_AGREE_PUBLIC_KEYPublic key used for key agreement.
OH_HUKS_TAG_KEY_ALIASKey alias.
OH_HUKS_TAG_DERIVE_KEY_SIZESize of the derived key.
OH_HUKS_TAG_IMPORT_KEY_TYPEType of the key to import. For details, see {@link OH_Huks_ImportKeyType}.
OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITEAlgorithm suite used for importing a key in ciphertext.
OH_HUKS_TAG_DERIVED_AGREED_KEY_STORAGE_FLAGStorage type of the derived key or key produced after key agreement. It is a value of OH_Huks_KeyStorageType.
OH_HUKS_TAG_RSA_PSS_SALT_LEN_TYPESalt length type when the PSS padding mode is used with the RSA algorithm.
OH_HUKS_TAG_ALL_USERSTags related to key access control and authentication: 300 to 500.
All users in multi-user scenarios.
OH_HUKS_TAG_USER_IDMulti-user ID.
OH_HUKS_TAG_NO_AUTH_REQUIREDWhether key access control is required.
OH_HUKS_TAG_USER_AUTH_TYPEUser authentication type in key access control.
OH_HUKS_TAG_AUTH_TIMEOUTTimeout duration for key access.
OH_HUKS_TAG_AUTH_TOKENAuthentication token for the key.
OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPEKey access control type, which must be set together with the user authentication type. It is a value of OH_Huks_AuthAccessType.
OH_HUKS_TAG_KEY_SECURE_SIGN_TYPESignature type of the key generated or imported.
OH_HUKS_TAG_CHALLENGE_TYPEChallenge type, which is a value of OH_Huks_ChallengeType.
OH_HUKS_TAG_CHALLENGE_POSPosition of the 8-byte valid value in a custom challenge. For details, see OH_Huks_ChallengePosition.
OH_HUKS_TAG_USER_AUTH_MODEUser authentication mode in key access control. For details, see OH_Huks_UserAuthMode.
Since: 12
OH_HUKS_TAG_KEY_AUTH_PURPOSEType of the key authentication purpose.
OH_HUKS_TAG_AUTH_STORAGE_LEVELSecurity levels for storing the key. For details, see OH_Huks_AuthStorageLevel.
Since: 11
OH_HUKS_TAG_ATTESTATION_CHALLENGEKey attestation tags: 501 to 600.
Challenge value used for key attestation.
OH_HUKS_TAG_ATTESTATION_APPLICATION_IDID of the application, to which the key belongs, in key attestation.
OH_HUKS_TAG_ATTESTATION_ID_ALIASKey alias.
OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFOSecurity level used in key attestation.
OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFOVersion information used in key attestation.
OH_HUKS_TAG_IS_KEY_ALIASReserved tags: 601 to 1000.
Extended tags: 1001 to 9999.
Whether the key alias is used.
OH_HUKS_TAG_KEY_STORAGE_FLAGKey storage mode. For details, see OH_Huks_KeyStorageType.
OH_HUKS_TAG_IS_ALLOWED_WRAPWhether to allow the key to be wrapped.
OH_HUKS_TAG_KEY_WRAP_TYPEKey wrap type.
OH_HUKS_TAG_KEY_AUTH_IDAuthentication ID.
OH_HUKS_TAG_KEY_ROLERole of the key.
OH_HUKS_TAG_KEY_FLAGKey flag. For details, see OH_Huks_KeyFlag.
OH_HUKS_TAG_IS_ASYNCHRONIZEDWhether the invocation is asynchronous.
OH_HUKS_TAG_KEY_DOMAINKey domain.
OH_HUKS_TAG_IS_DEVICE_PASSWORD_SETWhether the key is accessible only when the user sets a lock screen password. True indicates that the key can be generated and used only when a password is set.
Since: 11
OH_HUKS_TAG_AE_TAGAEAD in GCM mode.
OH_HUKS_TAG_SYMMETRIC_KEY_DATAReserved tags: 11000 to 12000.
Reserved tags: 20001 - N.
Symmetric key data.
OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATAPublic key data of the asymmetric key pair.
OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATAPrivate key data of the asymmetric key pair.

OH_Huks_TagType

enum OH_Huks_TagType

Description

Enumerates the mask values of the parameter type in a parameter set.

Since: 9

See

OH_Huks_Param

ValueDescription
OH_HUKS_TAG_TYPE_INVALIDInvalid tag type.
OH_HUKS_TAG_TYPE_INTint32_t.
OH_HUKS_TAG_TYPE_UINTuin32_t.
OH_HUKS_TAG_TYPE_ULONGuin64_t.
OH_HUKS_TAG_TYPE_BOOLBoolean.
OH_HUKS_TAG_TYPE_BYTESOH_Huks_Blob.

OH_Huks_UserAuthType

enum OH_Huks_UserAuthType

Description

Enumerates the user authentication types in key access control.

Since: 9

ValueDescription
OH_HUKS_USER_AUTH_TYPE_FINGERPRINTFingerprint authentication.
OH_HUKS_USER_AUTH_TYPE_FACEFacial authentication.
OH_HUKS_USER_AUTH_TYPE_PINPIN authentication.

OH_Huks_UserAuthMode

enum OH_Huks_UserAuthMode

Description

Enumerates the user authentication modes in key access control.

Since: 12

ValueDescription
OH_HUKS_USER_AUTH_MODE_LOCALLocal authentication.
HUKS_USER_AUTH_MODE_COAUTHCross-device collaborative authentication.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Universal Keystore Kit (Key Management Service)

harmony 鸿蒙HuksKeyApi

harmony 鸿蒙HuksParamSetApi

harmony 鸿蒙OH_Huks_Blob

harmony 鸿蒙OH_Huks_CertChain

harmony 鸿蒙OH_Huks_KeyAliasSet

harmony 鸿蒙OH_Huks_KeyInfo

harmony 鸿蒙OH_Huks_KeyMaterial25519

harmony 鸿蒙OH_Huks_KeyMaterialDh

harmony 鸿蒙OH_Huks_KeyMaterialDsa

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/VolIm6