{"id":20823219,"url":"https://github.com/pink-room/pink-it-safe-android","last_synced_at":"2026-05-15T23:09:09.272Z","repository":{"id":186286313,"uuid":"619905053","full_name":"pink-room/pink-it-safe-android","owner":"pink-room","description":"[WIP] Toolkit to secure your Android Apps","archived":false,"fork":false,"pushed_at":"2023-04-04T13:19:53.000Z","size":117,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-12T06:42:18.693Z","etag":null,"topics":["android","android-library","kotlin","kotlin-android","kotlin-library","security","security-tools"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pink-room.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-03-27T16:37:33.000Z","updated_at":"2024-09-04T13:30:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"0d4d9d3c-955f-4967-9d71-c321441347f6","html_url":"https://github.com/pink-room/pink-it-safe-android","commit_stats":null,"previous_names":["pink-room/pink-it-safe-android"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pink-room/pink-it-safe-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pink-room%2Fpink-it-safe-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pink-room%2Fpink-it-safe-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pink-room%2Fpink-it-safe-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pink-room%2Fpink-it-safe-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pink-room","download_url":"https://codeload.github.com/pink-room/pink-it-safe-android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pink-room%2Fpink-it-safe-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33082887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T20:25:35.270Z","status":"ssl_error","status_checked_at":"2026-05-15T20:25:34.732Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","android-library","kotlin","kotlin-android","kotlin-library","security","security-tools"],"created_at":"2024-11-17T22:17:41.863Z","updated_at":"2026-05-15T23:09:09.255Z","avatar_url":"https://github.com/pink-room.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pink it Safe\n\nA toolkit to secure your Android applications in a simple and effective way.\n\n-------\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e \u0026bull;\n    \u003ca href=\"#safe-storage\"\u003eSafe Storage\u003c/a\u003e \u0026bull;\n    \u003ca href=\"#biometrics\"\u003eBiometrics\u003c/a\u003e\n\u003c/p\u003e\n\n-------\n\n## Installation\n\n``` groovy\ndependencies {\n    implementation 'dev.pinkroom:pinkitsafe:\u003clatest_version\u003e'\n}\n```\n\n## Safe Storage\n\nThe safe storage tool uses the `EncryptedSharedPreferences` under the wood to save your data in an\nencrypted file using key-value pairs.\n\nTo start using it create a `SafeStorage` instance:\n\n````kotlin\nval safeStorage = SafeStorage(context)\n````\n\nIf you want the storage to be protected by user authentication, like biometrics, use:\n\n````kotlin\nval safeStorage = SafeStorage(context, authenticationRequired = true)\n````\n\nTo save something on it:\n\n````kotlin\nsafeStorage.save(\"secret-key\", \"Go away Mitnick!\")\n````\n\nTo get the value for a given key:\n\n````kotlin\nval secret = safeStorage.get\u003cString\u003e(\"secret-key\")\n````\n\nFinally, to clear all the key-values stored so far:\n\n````kotlin\nsafeStorage.clear()\n````\n\n## Biometrics\n\nIf you protected your `SafeStorage` with user authentication, or if you simply want to control a\nflow in your App using biometrics, you can create an instance of `Biometrics`:\n\n````kotlin\nval biometrics = Biometrics(context)\n````\n\n**Note:** There are 3 ways to instantiate the `Biometrics` class. Using a `Context`, a `Fragment` or\na `FragmentActivity`. If you pass a context, make sure your activity extends the `AppCompatActivity`\nor `FragmentActivity`.\n\nThen, ask the user to authenticate:\n\n````kotlin\nbiometrics.authenticate(\"Authenticate\") {\n    // User was authenticated with success\n}\n````\n\nThe `Biometrics` class is a simple wrapper of the `BiometricPrompt` provided in `androidx`. You can\nvalidate the other parameters received by the `authenticate` function in order to customise the\nprompt or handle errors.\n\n## License\n\n    Copyright 2023 Pink Room, Lda\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpink-room%2Fpink-it-safe-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpink-room%2Fpink-it-safe-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpink-room%2Fpink-it-safe-android/lists"}