{"id":15040933,"url":"https://github.com/airgap-it/cordova-plugin-airgap-secure-storage","last_synced_at":"2025-04-14T19:33:48.273Z","repository":{"id":57207703,"uuid":"144718609","full_name":"airgap-it/cordova-plugin-airgap-secure-storage","owner":"airgap-it","description":"Cordova Secure Storage Plugin for Android \u0026 iOS.","archived":false,"fork":false,"pushed_at":"2022-03-24T07:55:03.000Z","size":441,"stargazers_count":2,"open_issues_count":6,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-28T07:51:15.138Z","etag":null,"topics":["android","cordova-plugin","ios","secure-storage"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/airgap-it.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-14T12:41:41.000Z","updated_at":"2022-03-24T07:52:32.000Z","dependencies_parsed_at":"2022-09-11T05:30:38.172Z","dependency_job_id":null,"html_url":"https://github.com/airgap-it/cordova-plugin-airgap-secure-storage","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airgap-it%2Fcordova-plugin-airgap-secure-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airgap-it%2Fcordova-plugin-airgap-secure-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airgap-it%2Fcordova-plugin-airgap-secure-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airgap-it%2Fcordova-plugin-airgap-secure-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/airgap-it","download_url":"https://codeload.github.com/airgap-it/cordova-plugin-airgap-secure-storage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248946343,"owners_count":21187491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","cordova-plugin","ios","secure-storage"],"created_at":"2024-09-24T20:45:18.056Z","updated_at":"2025-04-14T19:33:48.230Z","avatar_url":"https://github.com/airgap-it.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AirGap Secure Storage - Cordova Plugin\n\n## Installation\nInstall the plugin simply using npm:\n\n```\nnpm install cordova-plugin-airgap-secure-storage --save\n```\n\nMake sure the plugin is added in your cordova `config.xml` as follows:\n\n```\n\u003cplugin name=\"cordova-plugin-airgap-secure-storage\" spec=\"0.1.5\" /\u003e\n```\n\n### iOS\n\nIn order to use Face ID, this plugins requires the following usage description:\n\n* `NSFaceIDUsageDescription` describes the reason why the app needs access to the secure storage. \n\nTo add this entry into the `info.plist`, you can use the `edit-config` tag in the `config.xml` like this:\n\n```\n\u003cedit-config target=\"NSFaceIDUsageDescription\" file=\"*-Info.plist\" mode=\"merge\"\u003e\n    \u003cstring\u003eFace ID is needed to save your keys to the secure storage.\u003c/string\u003e\n\u003c/edit-config\u003e\n```\n\n## Pre-Requisites Android / iOS\nTo work, SecureStorage requires a secure lock-screen setup, either secured by a PIN / Pattern or Fingerprint. Otherwise, the keystore cannot be used to safely store data.\n\n### Android Version Support\nVersions below Android 4.3 (API Version 18) are not supported by this plugin.\n\n| Version        | Fingerprint / Biometric           | Paranoia Mode (additional Encryption)  | Lockscreen Setup (PIN) | \n| ------------- |-------------:| -----:| -----:|\n| \u003e= Android 6.0 M (23)      | ✅ | Optional | Required |\n| \u003e= Android 4.3 (18)      | ❌ |   Required | Required |\n\n\n## Usage\nThe plugin provides a global variable as any cordova plugin does, to create a new instance call it as follows:\n\n```\nconst secureStorage = new window.SecureStorage(\"secure-storage-alias\", false)\n```\n\nYou need to init() the SecureStorage instance in order to set it up properly if necessary.\n\n```\nsecureStorage.init(() =\u003e {\n    // successful setup\n}), (error) =\u003e {\n    // setup failed\n})\n```\n\nThen, the plugin provides the following functionalities:\n\n```\nsecureStorage.isDeviceSecure(key, value, () =\u003e {}, (error) =\u003e {})\nsecureStorage.secureDevice(key, value, () =\u003e {}, (error) =\u003e {})\n\nsecureStorage.setItem(key, value, () =\u003e {}, (error) =\u003e {})\nsecureStorage.getItem(key, (value) =\u003e {}, (error) =\u003e {})\nsecureStorage.removeItem(key, () =\u003e {}, (error) =\u003e {})\nsecureStorage.removeAll(key, () =\u003e {}, (error) =\u003e {})\n```\n\nEverything else is handled by the device.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairgap-it%2Fcordova-plugin-airgap-secure-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fairgap-it%2Fcordova-plugin-airgap-secure-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairgap-it%2Fcordova-plugin-airgap-secure-storage/lists"}