cordova-plugin-android-fingerprint-auth
Version:
Cordova plugin to use Android fingerprint authentication API
217 lines (177 loc) • 6.38 kB
TypeScript
export const enum IFingerprintAuthErrors {
BAD_PADDING_EXCEPTION = "BAD_PADDING_EXCEPTION",
CERTIFICATE_EXCEPTION = "CERTIFICATE_EXCEPTION",
FINGERPRINT_CANCELLED = "FINGERPRINT_CANCELLED",
FINGERPRINT_DATA_NOT_DELETED = "FINGERPRINT_DATA_NOT_DELETED",
FINGERPRINT_ERROR = "FINGERPRINT_ERROR",
FINGERPRINT_NOT_AVAILABLE = "FINGERPRINT_NOT_AVAILABLE",
FINGERPRINT_PERMISSION_DENIED = "FINGERPRINT_PERMISSION_DENIED",
FINGERPRINT_PERMISSION_DENIED_SHOW_REQUEST = "FINGERPRINT_PERMISSION_DENIED_SHOW_REQUEST",
ILLEGAL_BLOCK_SIZE_EXCEPTION = "ILLEGAL_BLOCK_SIZE_EXCEPTION",
INIT_CIPHER_FAILED = "INIT_CIPHER_FAILED",
INVALID_ALGORITHM_PARAMETER_EXCEPTION = "INVALID_ALGORITHM_PARAMETER_EXCEPTION",
IO_EXCEPTION = "IO_EXCEPTION",
JSON_EXCEPTION = "JSON_EXCEPTION",
MINIMUM_SDK = "MINIMUM_SDK",
MISSING_ACTION_PARAMETERS = "MISSING_ACTION_PARAMETERS",
MISSING_PARAMETERS = "MISSING_PARAMETERS",
NO_SUCH_ALGORITHM_EXCEPTION = "NO_SUCH_ALGORITHM_EXCEPTION"
}
/**
* The Cordova "FingerprintAuth" plugin
* See {@link https://github.com/mjwheatley/cordova-plugin-android-fingerprint-auth}
*/
interface IFingerprintAuth {
/**
* @description Opens a native dialog fragment to use the device hardware fingerprint scanner
* to authenticate against fingerprints registered for the device.
*
* @param {FingerprintAuthIsAvailableSuccess} successCallback - Success callback.
* @param {string} errorCallback - Error callback.
*/
isAvailable(successCallback, errorCallback): void;
/**
* @description Call encrypt() show the Authentication Dialog.
*
* @param {FingerprintAuthConfig} encryptConfig - Encrypt config.
* @param {FingerprintAuthEncryptSuccess} encryptSuccessCallback - Encrypt success callback.
* @param {IFingerprintAuthErrors} encryptErrorCallback - Encrypt error callback.
*/
encrypt(encryptConfig, encryptSuccessCallback, encryptErrorCallback): void;
/**
* @description Call decrypt() show the Authentication Dialog.
*
* @param {FingerprintAuthConfig} decryptConfig - decryptConfig.
* @param {FingerprintAuthDecryptSuccess} encryptSuccessCallback - Encrypt success callback.
* @param {IFingerprintAuthErrors} encryptErrorCallback - Encrypt error callback.
*/
decrypt(decryptConfig, encryptSuccessCallback, encryptErrorCallback): void;
/**
* @description Call delete() when you want to delete the cipher for the user.
*
* @param {FingerprintDeleteConfig} config
* @param {Object} successCallback - Success callback.
* @param {string} errorCallback - Error callback.
*/
delete(config, successCallback, errorCallback): void;
}
interface FingerprintAuthIsAvailableSuccess {
/**
* @description Fingerprint Authentication Dialog is available for use.
*/
isAvailable: boolean;
/**
* @description Device has hardware fingerprint sensor.
*/
isHardwareDetected: boolean;
/**
* @description Device has any fingerprints enrolled.
*/
hasEnrolledFingerprints: boolean;
}
interface FingerprintAuthEncryptSuccess {
/**
* @description User authenticated using a fingerprint.
*/
withFingerprint: boolean;
/**
* @description User authenticated using backup credentials.
*/
withBackup: boolean;
/**
* @description Will contain the base64 encoded credentials upon successful fingerprint authentication.
*/
token: string;
}
interface FingerprintAuthDecryptSuccess {
/**
* @description User authenticated using a fingerprint.
*/
withFingerprint: boolean;
/**
* @description User authenticated using backup credentials.
*/
withBackup: boolean;
/**
* @description Will contain the decrypted password upon successful fingerprint authentication.
*/
password: string;
}
interface FingerprintAuthConfig {
/**
* @description (REQUIRED) Used as the alias for your app's secret key in the Android Key Store.
* Also used as part of the Shared Preferences key for the cipher userd to encrypt the user credentials.
*/
clientId: string;
/**
* @description Used to create credential string for encrypted token and as alias to retrieve the cipher.
*/
username: string;
/**
* @description Used to create credential string for encrypted token.
*/
password: string;
/**
* @description Data to be decrypted. Required for decrypt().
*/
token: string;
/**
* @description Set to true to remove the "USE BACKUP" button.
*/
disableBackup: boolean;
/**
* @description The device max is 5 attempts. Set this parameter if you want to allow fewer than 5 attempts.
*/
maxAttempts: number;
/**
* @description Change the language displayed on the authentication dialog.
* English: "en_US"
* Italian: "it"
* Spanish: "es"
* Russian: "ru"
* French: "fr"
* Chinese (Simplified):
* "zh_CN"
* "zh_SG"
* Chinese (Traditional):
* "zh"
* "zh_HK"
* "zh_TW"
* "zh_MO"
* Norwegian: "no"
* Portuguese: "pt"
* Japanese: "ja"
* German: "de"
* Thai: "th"
* Arabic: "ar"
*/
locale: string;
/**
* @description Require the user to authenticate with a fingerprint to authorize every use of the key.
* New fingerprint enrollment will invalidate key and require backup authenticate to re-enable the fingerprint authentication dialog.
*/
userAuthRequired: boolean;
/**
* @description Set the title of the fingerprint authentication dialog.
*/
dialogTitle: string;
/**
* @description Set the message of the fingerprint authentication dialog.
*/
dialogMessage: string;
/**
* @description Set the hint displayed by the fingerprint icon on the fingerprint authentication dialog.
*/
dialogHint: string;
}
interface FingerprintDeleteConfig {
/**
* @description Identify which cipher to delete.
*/
username: string;
/**
* @description (REQUIRED) Used as the alias for your key in the Android Key Store.
*/
clientId: string;
}
declare var FingerprintAuth: IFingerprintAuth;