{"id":18853715,"url":"https://github.com/rwynn/llave","last_synced_at":"2025-04-14T10:24:09.482Z","repository":{"id":23586967,"uuid":"99397696","full_name":"rwynn/llave","owner":"rwynn","description":"Desktop and mobile interfaces for the Ironclad password manager","archived":false,"fork":false,"pushed_at":"2022-11-10T21:00:34.000Z","size":17295,"stargazers_count":6,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-10T20:08:30.520Z","etag":null,"topics":["cordova","electron","ironclad","password-manager","react","webcrypto"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rwynn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-05T03:57:09.000Z","updated_at":"2020-07-07T17:37:04.000Z","dependencies_parsed_at":"2022-08-24T14:09:33.621Z","dependency_job_id":null,"html_url":"https://github.com/rwynn/llave","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwynn%2Fllave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwynn%2Fllave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwynn%2Fllave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwynn%2Fllave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rwynn","download_url":"https://codeload.github.com/rwynn/llave/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248860749,"owners_count":21173496,"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":["cordova","electron","ironclad","password-manager","react","webcrypto"],"created_at":"2024-11-08T03:45:24.148Z","updated_at":"2025-04-14T10:24:09.449Z","avatar_url":"https://github.com/rwynn.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# llave\n\nllave provides [Electron](https://electron.atom.io/) and [Cordova](https://cordova.apache.org/) \nbased UIs for the [Ironclad](https://github.com/dmulholland/ironclad) password manager.\n\n\u003cimg src=\"https://raw.githubusercontent.com/rwynn/llave/master/screens/entries.png\"/\u003e\n\n## llave design\n\nllave allows you to have as many encrypted database files as you like.  Databases are encrypted using industry-standard\ncryptographic protocols.  Databases are regular files on your device.  Databases are accessed using the \nhost platform's native file chooser allowing you to load files from any location supported by the chooser: local or remote.\n\nIf you would like to sync encrypted password databases between multiple devices you can use any avenue supported by your platform such\nas iCloud, Google Drive, Dropbox, OneDrive, microSD, etc. llave does not provide storage for your database files. You control where the database files\nare stored.  \n\nllave for the desktop allows you to export the unencrypted contents of your password databases. Unecrypted database files\nare plain JSON text.  \n\n## llave for the desktop\n\nOn the desktop llave runs as an Electron application.  In this environment llave communicates with the Ironclad binary to\nprovide read/write access to your encrypted password databases.  \n\n### using llave on the desktop\n\nYou can install llave for the desktop using the following procedure:\n\n* Download and extract the latest llave `llave.zip` file from the [llave Releases](https://github.com/rwynn/llave/releases) page.\n\n* Download and extract the Electron 6.0.12 release for your platform from the [Electron 6.0.12 Release](https://github.com/electron/electron/releases/tag/v6.0.12) page.\n\n* Copy both the llave `app.esar` file and `app.esar.unpacked` folder from `llave.zip` to the following location:\n\nOn macOS (you will need to right click Electron.app and `Show Package Contents`):\n\n    electron/Electron.app/Contents/Resources\n\nOn Windows and Linux:\n\n    electron/resources\n    \nYou are now ready to run llave.\n\nYou can do so by double clicking `electron`, `Electron`, or `electron.exe` from the electron folder.\n\n### packaging llave for the desktop\n\n* Clone the llave repository and install nodejs.\n\n* Run `npm install` to install dependencies\n\n* Run `npm run package` to create an `app.esar` file and an `app.esar.unpacked` directory in the build folder\n\n* Follow the steps in `using llave on the desktop` substituting your own app.esar file and app.esar.unpacked folder for the ones in step 3. \n\n## llave for your mobile device\n\nOn mobile llave runs as an Apache Cordova application.  In this environment llave provides a read-only view of your\npassword databases.  It uses the [Web Cryptography API](https://www.w3.org/TR/WebCryptoAPI/) provided by your mobile\nbrowser to decrypt the password database. Your mobile browser will need to support the Web Cryptography API - \nspecifically `window.crypto` and `window.crypto.subtle` without prefixes like msCrypto or webkitCrypto.\n\n### packaging llave for mobile\n\n* Clone the llave repository and install nodejs.\n\n* Run `npm install` to install dependencies\n\n* Run `npm run package` to create a `cordova/www` directory in the build folder\n\n* Refer to the Getting Started instructions at [Apache Cordova](https://cordova.apache.org/) to create and run a project.\n\n* Copy the contents of the `cordova/www` directory from the llave build folder to the `www` directory in your Cordova project and re-run the project.\n\n* Follow the instructions on the Cordova website for building and deploying a signed mobile application from your project.\n\n### emulating llave for mobile\n\nIf you simply want to emulate the llave for mobile application for local testing in your browser \nwithout creating a full blown mobile app with Cordova then you can do the following:\n\n* Clone the llave repository and install nodejs.\n\n* Run `npm install` to install dependencies\n\n* Run `npm run package` to create a `web` directory in the build folder\n\n* Copy the contents of the `web` directory to a web server and load in your browser\n\n## developing llave\n\n* Git clone the llave repository and install nodejs.\n\n* Run `npm install` from the root llave folder.\n\n* Run `npm run chmod` to ensure the ironclad binaries are executable.\n\n* Run `node server.js` to start Webpack.\n\n* In another terminal window run `npm start` to start Electron.\n\n* The web/mobile version is also now available from your browser at `http://localhost:8080/web`.\n\nYou are now running llave in development mode.\n\nChanges made to the React application will cause Webpack to rebuild llave.\n\n## credits\n\nspecial thanks to the following:\n\n* [react-electron-starter](https://github.com/alanbsmith/react-electron-starter)\n\n* [ironclad](https://github.com/dmulholland/ironclad) of course\n\n* My Spanish teachers\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frwynn%2Fllave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frwynn%2Fllave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frwynn%2Fllave/lists"}