diff --git a/interfaces/innerkits/napi/include/user_auth_helper.h b/interfaces/innerkits/napi/include/user_auth_helper.h old mode 100755 new mode 100644 index 9b67031..119eaf8 --- a/interfaces/innerkits/napi/include/user_auth_helper.h +++ b/interfaces/innerkits/napi/include/user_auth_helper.h @@ -21,13 +21,57 @@ namespace OHOS { namespace UserIAM { namespace UserAuth { +enum AuthMethod { + PIN_ONLY = 0xF, + FACE_ONLY = 0xF0 +}; + +enum Module { + FACE_AUTH = 1 +}; + +enum FaceTipsCode { + FACE_AUTH_TIP_TOO_BRIGHT = 1, + FACE_AUTH_TIP_TOO_DARK = 2, + FACE_AUTH_TIP_TOO_CLOSE = 3, + FACE_AUTH_TIP_TOO_FAR = 4, + FACE_AUTH_TIP_TOO_HIGH = 5, + FACE_AUTH_TIP_TOO_LOW = 6, + FACE_AUTH_TIP_TOO_RIGHT = 7, + FACE_AUTH_TIP_TOO_LEFT = 8, + FACE_AUTH_TIP_TOO_MUCH_MOTION = 9, + FACE_AUTH_TIP_POOR_GAZE = 10, + FACE_AUTH_TIP_NOT_DETECTED = 11, +}; + +enum FingerprintTips { + FINGERPRINT_TIP_GOOD = 0, + FINGERPRINT_TIP_IMAGER_DIRTY = 1, + FINGERPRINT_TIP_INSUFFICIENT = 2, + FINGERPRINT_TIP_PARTIAL = 3, + FINGERPRINT_TIP_TOO_FAST = 4, + FINGERPRINT_TIP_TOO_SLOW = 5 +}; + +napi_value AuthTypeConstructor(napi_env env); +napi_value AuthSubTypeConstructor(napi_env env); +napi_value AuthTrustLevelConstructor(napi_env env); +napi_value GetPropertyTypeConstructor(napi_env env); +napi_value SetPropertyTypeConstructor(napi_env env); +napi_value AuthMethodConstructor(napi_env env); +napi_value ModuleConstructor(napi_env env); +napi_value ResultCodeConstructor(napi_env env); +napi_value FaceTipsCodeConstructor(napi_env env); +napi_value FingerprintTipsConstructor(napi_env env); /** * @brief Napi initialization * * @param env * @param exports */ -void Init(napi_env env, napi_value exports); +napi_value UserAuthInit(napi_env env, napi_value exports); + +napi_value EnumExport(napi_env env, napi_value exports); /** * @brief Get the Ctor object diff --git a/interfaces/innerkits/napi/src/user_auth_helper.cpp b/interfaces/innerkits/napi/src/user_auth_helper.cpp index c53db77..4a8edc9 100644 --- a/interfaces/innerkits/napi/src/user_auth_helper.cpp +++ b/interfaces/innerkits/napi/src/user_auth_helper.cpp @@ -196,13 +196,224 @@ napi_value CancelAuth(napi_env env, napi_callback_info info) return userAuthImpl->CancelAuth(env, info); } +napi_value AuthTypeConstructor(napi_env env) +{ + napi_value authType = nullptr; + napi_value pin = nullptr; + napi_value face = nullptr; + NAPI_CALL(env, napi_create_object(env, &authType)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthType::PIN, &pin)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthType::FACE, &face)); + NAPI_CALL(env, napi_set_named_property(env, authType, "PIN", pin)); + NAPI_CALL(env, napi_set_named_property(env, authType, "FACE", face)); + return authType; +} + +napi_value AuthSubTypeConstructor(napi_env env) +{ + napi_value authSubType = nullptr; + napi_value pinSix = nullptr; + napi_value pinNumber = nullptr; + napi_value pinMixed = nullptr; + napi_value face2d = nullptr; + napi_value face3d = nullptr; + NAPI_CALL(env, napi_create_object(env, &authSubType)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthSubType::PIN_SIX, &pinSix)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthSubType::PIN_NUMBER, &pinNumber)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthSubType::PIN_MIXED, &pinMixed)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthSubType::FACE_2D, &face2d)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthSubType::FACE_3D, &face3d)); + NAPI_CALL(env, napi_set_named_property(env, authSubType, "PIN_SIX", pinSix)); + NAPI_CALL(env, napi_set_named_property(env, authSubType, "PIN_NUMBER", pinNumber)); + NAPI_CALL(env, napi_set_named_property(env, authSubType, "PIN_MIXED", pinMixed)); + NAPI_CALL(env, napi_set_named_property(env, authSubType, "FACE_2D", face2d)); + NAPI_CALL(env, napi_set_named_property(env, authSubType, "FACE_3D", face3d)); + return authSubType; +} + +napi_value AuthTrustLevelConstructor(napi_env env) +{ + napi_value authTrustLevel = nullptr; + napi_value atl1 = nullptr; + napi_value atl2 = nullptr; + napi_value atl3 = nullptr; + napi_value atl4 = nullptr; + NAPI_CALL(env, napi_create_object(env, &authTrustLevel)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthTurstLevel::ATL1, &atl1)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthTurstLevel::ATL2, &atl2)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthTurstLevel::ATL3, &atl3)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)AuthTurstLevel::ATL4, &atl4)); + NAPI_CALL(env, napi_set_named_property(env, authTrustLevel, "ATL1", atl1)); + NAPI_CALL(env, napi_set_named_property(env, authTrustLevel, "ATL2", atl2)); + NAPI_CALL(env, napi_set_named_property(env, authTrustLevel, "ATL3", atl3)); + NAPI_CALL(env, napi_set_named_property(env, authTrustLevel, "ATL4", atl4)); + return authTrustLevel; +} + +napi_value GetPropertyTypeConstructor(napi_env env) +{ + napi_value getPropertyType = nullptr; + napi_value authSubType = nullptr; + napi_value remainTimes = nullptr; + napi_value freezingTime = nullptr; + NAPI_CALL(env, napi_create_object(env, &getPropertyType)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)GetPropertyType::AUTH_SUB_TYPE, &authSubType)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)GetPropertyType::REMAIN_TIMES, &remainTimes)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)GetPropertyType::FREEZING_TIME, &freezingTime)); + NAPI_CALL(env, napi_set_named_property(env, getPropertyType, "AUTH_SUB_TYPE", authSubType)); + NAPI_CALL(env, napi_set_named_property(env, getPropertyType, "REMAIN_TIMES", remainTimes)); + NAPI_CALL(env, napi_set_named_property(env, getPropertyType, "FREEZING_TIME", freezingTime)); + return getPropertyType; +} + +napi_value SetPropertyTypeConstructor(napi_env env) +{ + napi_value setPropertyType = nullptr; + napi_value initAlgorithm = nullptr; + NAPI_CALL(env, napi_create_object(env, &setPropertyType)); + NAPI_CALL(env, napi_create_int32(env, (int32_t)SetPropertyType::INIT_ALGORITHM, &initAlgorithm)); + NAPI_CALL(env, napi_set_named_property(env, setPropertyType, "INIT_ALGORITHM", initAlgorithm)); + return setPropertyType; +} + +napi_value AuthMethodConstructor(napi_env env) +{ + napi_value authMethod = nullptr; + napi_value pinOnly = nullptr; + napi_value faceOnly = nullptr; + NAPI_CALL(env, napi_create_object(env, &authMethod)); + NAPI_CALL(env, napi_create_int32(env, AuthMethod::PIN_ONLY, &pinOnly)); + NAPI_CALL(env, napi_create_int32(env, AuthMethod::FACE_ONLY, &faceOnly)); + NAPI_CALL(env, napi_set_named_property(env, authMethod, "PIN_ONLY", pinOnly)); + NAPI_CALL(env, napi_set_named_property(env, authMethod, "FACE_ONLY", faceOnly)); + return authMethod; +} + +napi_value ModuleConstructor(napi_env env) +{ + napi_value module = nullptr; + napi_value faceAuth = nullptr; + NAPI_CALL(env, napi_create_object(env, &module)); + NAPI_CALL(env, napi_create_int32(env, Module::FACE_AUTH, &faceAuth)); + NAPI_CALL(env, napi_set_named_property(env, module, "FACE_AUTH", faceAuth)); + return module; +} + +napi_value ResultCodeConstructor(napi_env env) +{ + napi_value resultCode = nullptr; + napi_value success = nullptr; + napi_value fail = nullptr; + napi_value generalError = nullptr; + napi_value canceled = nullptr; + napi_value timeout = nullptr; + napi_value typeNotSupport = nullptr; + napi_value trustLevelNotSupport = nullptr; + napi_value busy = nullptr; + napi_value invalidParameters = nullptr; + napi_value locked = nullptr; + napi_value notEnrolled = nullptr; + NAPI_CALL(env, napi_create_object(env, &resultCode)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::SUCCESS, &success)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::FAIL, &fail)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::GENERAL_ERROR, &generalError)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::CANCELED, &canceled)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::TIMEOUT, &timeout)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::TYPE_NOT_SUPPORT, &typeNotSupport)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::TRUST_LEVEL_NOT_SUPPORT, &trustLevelNotSupport)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::BUSY, &busy)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::INVALID_PARAMETERS, &invalidParameters)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::LOCKED, &locked)); + NAPI_CALL(env, napi_create_int32(env, ResultCode::NOT_ENROLLED, ¬Enrolled)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "SUCCESS", success)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "FAIL", fail)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "GENERAL_ERROR", generalError)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "CANCELED", canceled)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "TIMEOUT", timeout)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "TYPE_NOT_SUPPORT", typeNotSupport)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "TRUST_LEVEL_NOT_SUPPORT", trustLevelNotSupport)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "BUSY", busy)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "INVALID_PARAMETERS", invalidParameters)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "LOCKED", locked)); + NAPI_CALL(env, napi_set_named_property(env, resultCode, "NOT_ENROLLED", notEnrolled)); + return resultCode; +} + +napi_value FaceTipsCodeConstructor(napi_env env) +{ + napi_value faceTipsCode = nullptr; + napi_value faceAuthTipTooBright = nullptr; + napi_value faceAuthTipTooDark = nullptr; + napi_value faceAuthTipTooClose = nullptr; + napi_value faceAuthTipTooFar = nullptr; + napi_value faceAuthTipTooHigh = nullptr; + napi_value faceAuthTipTooLow = nullptr; + napi_value faceAuthTipTooRight = nullptr; + napi_value faceAuthTipTooLeft = nullptr; + napi_value faceAuthTipTooMuchMotion = nullptr; + napi_value faceAuthTipPoorGaze = nullptr; + napi_value faceAuthTipNotDetected = nullptr; + NAPI_CALL(env, napi_create_object(env, &faceTipsCode)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_BRIGHT, &faceAuthTipTooBright)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_DARK, &faceAuthTipTooDark)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_CLOSE, &faceAuthTipTooClose)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_FAR, &faceAuthTipTooFar)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_HIGH, &faceAuthTipTooHigh)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_LOW, &faceAuthTipTooLow)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_RIGHT, &faceAuthTipTooRight)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_LEFT, &faceAuthTipTooLeft)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_TOO_MUCH_MOTION, &faceAuthTipTooMuchMotion)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_POOR_GAZE, &faceAuthTipPoorGaze)); + NAPI_CALL(env, napi_create_int32(env, FaceTipsCode::FACE_AUTH_TIP_NOT_DETECTED, &faceAuthTipNotDetected)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_TOO_BRIGHT", faceAuthTipTooBright)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_TOO_DARK", faceAuthTipTooDark)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_TOO_CLOSE", faceAuthTipTooClose)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_TOO_FAR", faceAuthTipTooFar)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_TOO_HIGH", faceAuthTipTooHigh)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_TOO_LOW", faceAuthTipTooLow)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_TOO_RIGHT", faceAuthTipTooRight)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_TOO_LEFT", faceAuthTipTooLeft)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, + "FACE_AUTH_TIP_TOO_MUCH_MOTION", faceAuthTipTooMuchMotion)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_POOR_GAZE", faceAuthTipPoorGaze)); + NAPI_CALL(env, napi_set_named_property(env, faceTipsCode, "FACE_AUTH_TIP_NOT_DETECTED", faceAuthTipNotDetected)); + return faceTipsCode; +} + +napi_value FingerprintTipsConstructor(napi_env env) +{ + napi_value fingerprintTips = nullptr; + napi_value fingerprintTipGood = nullptr; + napi_value fingerprintTipImagerDirty = nullptr; + napi_value fingerprintTipInsufficient = nullptr; + napi_value fingerprintTipPartial = nullptr; + napi_value fingerprintTipTooFast = nullptr; + napi_value fingerprintTipTooSlow = nullptr; + NAPI_CALL(env, napi_create_object(env, &fingerprintTips)); + NAPI_CALL(env, napi_create_int32(env, FingerprintTips::FINGERPRINT_TIP_GOOD, &fingerprintTipGood)); + NAPI_CALL(env, napi_create_int32(env, FingerprintTips::FINGERPRINT_TIP_IMAGER_DIRTY, &fingerprintTipImagerDirty)); + NAPI_CALL(env, napi_create_int32(env, FingerprintTips::FINGERPRINT_TIP_INSUFFICIENT, &fingerprintTipInsufficient)); + NAPI_CALL(env, napi_create_int32(env, FingerprintTips::FINGERPRINT_TIP_PARTIAL, &fingerprintTipPartial)); + NAPI_CALL(env, napi_create_int32(env, FingerprintTips::FINGERPRINT_TIP_TOO_FAST, &fingerprintTipTooFast)); + NAPI_CALL(env, napi_create_int32(env, FingerprintTips::FINGERPRINT_TIP_TOO_SLOW, &fingerprintTipTooSlow)); + NAPI_CALL(env, napi_set_named_property(env, fingerprintTips, "FINGERPRINT_TIP_GOOD", fingerprintTipGood)); + NAPI_CALL(env, napi_set_named_property(env, fingerprintTips, + "FINGERPRINT_TIP_IMAGER_DIRTY", fingerprintTipImagerDirty)); + NAPI_CALL(env, napi_set_named_property(env, fingerprintTips, + "FINGERPRINT_TIP_INSUFFICIENT", fingerprintTipInsufficient)); + NAPI_CALL(env, napi_set_named_property(env, fingerprintTips, "FINGERPRINT_TIP_PARTIAL", fingerprintTipPartial)); + NAPI_CALL(env, napi_set_named_property(env, fingerprintTips, "FINGERPRINT_TIP_TOO_FAST", fingerprintTipTooFast)); + NAPI_CALL(env, napi_set_named_property(env, fingerprintTips, "FINGERPRINT_TIP_TOO_SLOW", fingerprintTipTooSlow)); + return fingerprintTips; +} + /** * @brief Napi initialization * * @param env * @param exports */ -void Init(napi_env env, napi_value exports) +napi_value UserAuthInit(napi_env env, napi_value exports) { USERAUTH_HILOGI(MODULE_JS_NAPI, "%{public}s, start.", __func__); napi_status status; @@ -213,13 +424,30 @@ void Init(napi_env env, napi_value exports) status = napi_define_properties(env, exports, sizeof(exportFuncs) / sizeof(*exportFuncs), exportFuncs); if (status != napi_ok) { USERAUTH_HILOGE(MODULE_JS_NAPI, "napi_define_properties faild"); - return; } - status = napi_set_named_property(env, exports, "UserAuth", GetCtor(env)); if (status != napi_ok) { USERAUTH_HILOGE(MODULE_JS_NAPI, "napi_set_named_property faild"); } + return exports; +} + +napi_value EnumExport(napi_env env, napi_value exports) +{ + napi_property_descriptor descriptors[] = { + DECLARE_NAPI_PROPERTY("AuthType", AuthTypeConstructor(env)), + DECLARE_NAPI_PROPERTY("AuthSubType", AuthSubTypeConstructor(env)), + DECLARE_NAPI_PROPERTY("AuthTrustLevel", AuthTrustLevelConstructor(env)), + DECLARE_NAPI_PROPERTY("GetPropertyType", GetPropertyTypeConstructor(env)), + DECLARE_NAPI_PROPERTY("SetPropertyType", SetPropertyTypeConstructor(env)), + DECLARE_NAPI_PROPERTY("AuthMethod", AuthMethodConstructor(env)), + DECLARE_NAPI_PROPERTY("Module", ModuleConstructor(env)), + DECLARE_NAPI_PROPERTY("ResultCode", ResultCodeConstructor(env)), + DECLARE_NAPI_PROPERTY("FaceTipsCode", FaceTipsCodeConstructor(env)), + DECLARE_NAPI_PROPERTY("FingerprintTips", FingerprintTipsConstructor(env)), + }; + napi_define_properties(env, exports, sizeof(descriptors) / sizeof(*descriptors), descriptors); + return exports; } napi_value Constructor(napi_env env, napi_callback_info info) diff --git a/interfaces/innerkits/napi/src/user_auth_impl.cpp b/interfaces/innerkits/napi/src/user_auth_impl.cpp old mode 100755 new mode 100644 index f1d9109..102745e --- a/interfaces/innerkits/napi/src/user_auth_impl.cpp +++ b/interfaces/innerkits/napi/src/user_auth_impl.cpp @@ -610,8 +610,9 @@ napi_value UserAuthImpl::CancelAuth(napi_env env, napi_callback_info info) static napi_value ModuleInit(napi_env env, napi_value exports) { - OHOS::UserIAM::UserAuth::Init(env, exports); - return exports; + napi_value val = UserAuthInit(env, exports); + val = EnumExport(env, val); + return val; } extern "C" __attribute__((constructor)) void RegisterModule(void) {