7Pass Remake Alpha

I’m glad to let you know that the first preview of 7Pass Remake is now available for download from the Windows Phone Store. Those having subscribed to the Beta program will receive an email soon, with the same content as below. Just in case any Beta participant not receiving the email, you can also install using the link: http://bit.ly/7passremake. Please note that this link will only work for those joined at Beta program before today. Those missing this preview can also subscribe to be included in next preview.

Collage

Preview version notes

  • This version cannot save changes yet. Even though the UI shows that you can change the database, there’s no place in this version to save your database yet.
  • This version does not lock your database automatically.
  • This version will be removed when the next preview/final version is released.
  • Please do not use it for important data.

What’s implemented

  • New user interface.
  • Add database from any location: SD card, OneDrive, or other apps that provides file picking service.
  • Tap on database’s icon to perform actions: clear cached encryption key, delete.
    Easy to use password generator.
  • Better UI for using a keyfile.
  • Filter app bar button to quickly search for entries. Also reveal option to show only entry or groups.
  • Quick password reveal: slide entry’s title to the right to quickly view password.
    Supports referenced fields.
  • Share app bar button to share title, username and password without revealing password.
    Better support for long entry notes.
  • Supports open and share attachments
  • Better fields support.

Experimental feature

  • Web browser
    • Can only try to fill in automatically at the moment. Buttons to fill in data do not work yet.
    • Independent browser: launch browser from groups list to browse to any site and 7Pass tries to automatically match the page’s title to an entry and automatically fill in username and password. However, this matching does not work as expected yet.

Missing features planned for final version

  • Auto lock database.
  • Create local database, from within the app.
  • Associate with KDBX file extension to quickly add databases from other sources.
  • Create new entry from password generator.

Moq Setup and ignore all arguments

I’m a happy fan of Moq. However, it’s sometimes annoying when the parameters do not matter, such as:

mock
    .Setup(x => x.Method(It.IsAny<Type>(), It.IsAny<AnotherType>(), It.IsAny<YetAnotherType>())
    .Return(value);

So I’ve made an extension method so that the parameters will be ignored, so you can write:

mock
    .SetupIgnoreArgs(x => x.Method(null, null, null)
    .Return(value);

The code is available at Gist.

7Pass idea: destruct password

I have an idea for 7Pass that I need to put it here so I won’t forget: destruct password. Remember the UK police detained Glenn Greenward and forced him to provide them his passwords? That’s just ridiculous, yet the UK court even later decided that it’s legal for the UK police to do so.  This is a clear violation of human rights, but let’s not talk about politics here.

I’d want 7Pass to have a feature to allow user to enter a password that will destroy all databases already registered in 7Pass. The idea is simple: have a special password that if entered by user, 7Pass just pretend that it’s mad and delete the database plus any other preferences, cache, etc… everything. In order for this to not be suspicious, 7Pass certainly will have to have the feature after if user enters a password wrong, let’s say 5 times repeatedly, the database will be removed from the app. The destruct password (configured by user) will simply make 7Pass shows “wrong password too many time, database deleted” immediately. You can always blame the UK police for playing with your phone.

I’m not sure about the capability of file picking in Windows Phone 8.1, but I’d want 7Pass to first overwrite the local cache with random data first, before deleting it, to ensure no recovery attempt is possible, and, if possible, send a file with random data to the source of the database file, to ensure and 3rd party app, or your phone, or the SD card that provided 7Pass with the original database file will also overwrite it with the random data, effectively destroy every possible source for recovery of your passwords.

If my KeePass database is destroyed, I’ll lose almost everything as I never remember any password. KeePass generates my passwords, and you should be that “forgetful” too; otherwise, you’re not using KeePass to its usefulness. UK police can then hack into my brain and not able to find anything, because they toyed with my phone, damn it, don’t touch it.

7Pass Remake progress

I’ve made some good progress on 7Pass Remake, a total remake of 7Pass specifically for Windows 8.1 Store and Windows Phone 8.1. The source code is now available on GitHub. I don’t expect any pull request yet at the moment, as it’s still in development progress.

The introduction of Windows Phone 8.1, specifically Universal is a big step forward. The main pain point for me is solved in Windows Phone 8.1: it’s now possible to open a file from your phone, SD card or even another app. I have not been able to open a document from OneDrive so far on my phone, but I believe OneDrive will be a file picker when Windows Phone 8.1 is finally released to end users. 7Pass Remake will not longer handle synchronization, but it leave it to 3rd party app instead. User first open 7Pass, pick a file from any source, and 7Pass will keep a local cache of the database, but will check with the source on every start to see if there is update, and will update the database automatically. DropBox and SkyDrive in old 7Pass will be replaced by DropBox and OneDrive apps, Web will be replaced by downloading the database to your phone using your browser, I believe some one will develop an app for WebDAV as well.

Another issue is data encryption. “Remember password” in old 7Pass required the decrypted database XML to be stored on the phone. Windows Phone 8.1 now provides data protection, just like on desktop, so that the data can be encrypted and decrypted only by a specific app + user + phone combination. This allows the decrypted database to be cached safely on the phone, with a simple encryption that cannot be decrypted easily by others.

Technically, development with Universal app is also greatly improved. Unit tests can now be executed using Resharper unit test runner. NCrunch should also be able to run the test, but since my NCrunch license expired, it could not use the latest version of NCrunch that support xUnit 2, which support universal app. Caliburn Micro is godsend, the app development is so much easier with it, simple code, great conventions, great structure.

I’m currently concentrating on Windows Phone experience, but I’d want to release Windows 8.1 Store app as well. I plan to have only free version of 7Pass Remake, and use in-app purchase as the optional “I like this” donation solution, to avoid the confusion between paid and free version.

Let’s start with preview of the UI that I have so far:

Started 7Pass, tap on “add” button to pick a database file. Your database will need to have “.kdbx” extension.

Initial.Screen

Tap on SD card to pick a file from SD card.

Open.Database

There’s our database. Tap on it to select.

Picked database file is added to 7Pass. 7Pass do not check for update at the moment, but when released, 7Pass will check for updates to the database file and synchronize it. Tap on database to open it.

Database.Added

Enter password to open database. There’s also the “keyfile” button in the app bar to pick a keyfile from any source (phone, SD card, or another app). 7Pass do not cache the file, for security purpose.

Master.Password

Groups and entries are displayed, normal stuff, nothing special.

Groups

Scroll down to see our entry, there’s our new feature: button to toggle password. I often find that I used 7Pass mostly to view the password, much more frequent than actually editing it. I’ll want to see both username and password, so let’s tap on the show password button on the right.

Entry

 

 

 

Password is now shown in place where title used to be. Tap again to how password. Password is shown using “Courier New” font, which better suits password nature than standard fonts, and the font size also size to fit the screen.

Entry.Toggle

Another entry, to show the sizing of password, put your phone to horizontal will certainly gives it more space, meaning easier to read password.

Entry.Toggle.AutoSize

There you have it, my progress so far on 7Pass. Development on Windows Phone 8.1 is amazing, and I hope to release 7Pass remake as soon as possible.

Your feedback required: Recovery of database files

There are quite a few users affected by these 2 issues:

  • Change to SkyDrive authentication breaks the synchronization and user has unsynchronized changes.
  • Or synchronization not working for some reason.

I’ll need to provide user a way to get the database file out of their phone. Emailing the database is certainly an option, but the SDK doesn’t provide a way for 7Pass to attach the database file to an email, thus, it’s not possible directly.

I’ve then looked into encoding the database file as text to send as email. I have no clue how much data can the SDK handle (I’ve got bad feedback regarding 10MB DB file limit, imagine > 10MB binary encoded to text) or possible cases when filters on the mail server may screw up the encoding.

The most straightforward approach that I can find is to use a file sharing service. In case you really need to get your database out of 7Pass and have no alternative, you can choose to allow 7Pass to upload your database file to a cloud service and provide you with an URL to download to your preferred device. This approach does comes with concerns though:

  1. With the controversial over NSA spying, I have no faith in any provider, so this approach is doomed from the very beginning.
  2. I’d prefer to use a 3rd party service that already have proven track record of honouring user’s privacy and anonymous. I don’t know of any yet, so your input is greatly appreciated.
  3. The alternative is to deploy an Azure service that I have control, so it’s designed for 7Pass, which should be easier. However, by “having control”, it also raise concern of users whether I will collect their database files. This is a valid concern and I myself greatly try to avoid this. Moreover, I have no clue how to make sure Microsoft won’t keep a backup of your database file.

My bottom of my heart, I’d suggest the users with unsycnhronized changes try to manually synchronize the database, rather having to take this hard approach.

Users, please voice your feedback in comment section of this post.

PS: FYI, the planned 7Pass version for WP8 will use a different approach of synchronization, so this only applies to current version of 7Pass, meaning it’s only a temporary service.

 

7Pass 3.6 released

7Pass 3.6 is now available globally for Windows Phone 7.5 or later (WP8).

What’s new

  • Removed .doc renaming since it’s no longer required.
  • Switched to SkyDrive OAuth 2.0.
  • Added file limit of 10MB. You will now no longer able to add new KeePass databases that is larger than 10MB. 7Pass cannot reliably handle large databases so it’s better to prevent user from adding it in the first place than fail to process it later.
  • Updated url for Box.net WebDAV.
  • Fixed issue with cases when folder names are not displayed in WebDAV.

All users of 7Pass are recommended to upgrade to this version as Microsoft is going to retire the old SkyDrive authentication, and we have less than 30 days before the old authentication will be blocked, meaning users will no longer able to add new database from SkyDrive, or synchronize database to SkyDrive with older versions of 7Pass.

What’s next

7Pass for Windows Store (7Pass RT) is in development, and I plan to have 7Pass for Windows Phone 8 after that.

7Pass planning

It’s been sometime that this blog was not updated. I really appreciate that feedback has been very strong even in these uncertain moments.

I’ve received lots of feedback and ideas, suggestions for the next version of 7Pass. I’m not going to abandon 7Pass, it’s just not the moment yet for the next version:

  • Windows Store application (for Windows 8): KeePass 2.x is working exceptionally well with Windows 8 on Intel CPU, so I don’t see any reason to port 7Pass to Windows Store yet. Unless Windows RT is final and comes up with some reason that KeePass 2.x cannot be used on it, then I’ll consider porting 7Pass to Windows Store.
  • Windows Phone:
    • Current 7Pass has reached its limitation, which adding new features and fixing issues has became tedious.
    • Windows Phone 7: There will definitely the next version for Windows Phone 7 Mango users, which I am one myself.
    • Windows Phone 8: SDK information has been very limited. It’s not a good time for a new version of 7Pass at the moment. The framework is supposed to be easier to develop. SkyDrive seems to no longer restrict file extensions.
    • I would want to wait and see how the Windows Phone 8 turns out to be. Let’s see how Clipboard handling, browser sand-boxing, SkyDrive integration, task parallel suport, etc… There are lots of things I’d want to see before deciding which approach should I do for 7Pass vNext.

I hope the Windows Phone 8 will be available soon, and look forward another amazing trip with Windows Phone development.

Thank you all again for constantly remind me that you care. You are all amazing.