Encryptr
https://spideroak.com/solutions/encryptr
Encryptr is a zero-knowledge, cloud-based e-wallet / password manager powered by Crypton.
Encryptr keeps it simple. It has three types of data it can store. Passwords, Credit Card numbers and general key/value pairs. It can easily be expanded to include other default entry types.
It is currently working on Android, iOS, and the Desktop – thanks to NW.js.
Requirements
- Node and npm - http://nodejs.org/
- Node package manager for the Cordova CLI and Grunt
- Cordova CLI - https://github.com/apache/cordova-cli/
- Cordova / PhoneGap command line interface
npm install -g cordova
- Grunt - http://gruntjs.com/
- Build tool for minimising, running and tests
npm install -g grunt-cli
- PhantomJS - http://phantomjs.org/ Version: 1.9.7-15
- Headless webkit for running tests
- Cordova-icon and Cordova-splash - https://github.com/AlexDisler/cordova-icon/ and https://github.com/AlexDisler/cordova-splash/
npm install -g cordova-icon
andnpm install -g cordova-splash
Getting started
- clone the project
- cd into the project folder
- With commands:
npm install
to install node_modules and js/css components (npm install
will also runbower install
).cordova platform add ios
and/orcordova platform add android
cordova-icon && cordova-splash
- With script:
- iOS:
./build.sh ios
- Android:
./build.sh android
- Desktop:
./build.sh desktop
- iOS:
Build Encryptr
- iOS:
./build.sh ios
- Android:
./build.sh android
- Desktop:
./build.sh desktop
- All platforms:
./build.sh desktop ios android
First test
To make sure everything is set up from the above, run your first tests:
grunt test
See the output for the steps taken to produce the working test rig. Most of the steps have grunt
commands you can use to do them individually.
Workflow
JavaScript files are in src
. They are kept out of the www tree so that they can be linted without trying to lint the concatenated and minified versions. However, the index.html should have a script tag only for the JavaScript files in either components
(managed by Bower) or www/js
.
Building and testing the project is normally done via the Grunt tasks below.
Grunt tasks
We use grunt
commands to do most of the project operations, like:
-
running the app:
- ios:
grunt debug:ios
- Android:
grunt debug:android
- ios:
-
testing:
grunt test
-
linting the sources:
grunt jshint
-
concatenating the sources:
grunt concat
-
compiling the templates:
grunt dot
See the steps taken for grunt test
and grunt debug:XXX
for the various operations needed to constitute the working app, and look at Gruntfile.js for the whole repertoire.
Cryptography Notice
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.