services/sync/tests/unit/test_upgrade_old_sync_key.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/ */
     4 Cu.import("resource://services-sync/constants.js");
     5 Cu.import("resource://services-sync/service.js");
     6 Cu.import("resource://services-sync/util.js");
     7 Cu.import("resource://testing-common/services/sync/utils.js");
     9 // Test upgrade of a dashed old-style sync key.
    10 function run_test() {
    11   const PBKDF2_KEY_BYTES = 16;
    12   initTestLogging("Trace");
    13   ensureLegacyIdentityManager();
    15   let passphrase = "abcde-abcde-abcde-abcde";
    16   do_check_false(Utils.isPassphrase(passphrase));
    18   let normalized = Utils.normalizePassphrase(passphrase);
    19   _("Normalized: " + normalized);
    21   // Still not a modern passphrase...
    22   do_check_false(Utils.isPassphrase(normalized));
    24   // ... but different.
    25   do_check_neq(normalized, passphrase);
    26   do_check_eq(normalized, "abcdeabcdeabcdeabcde");
    28   // Now run through the upgrade.
    29   Service.identity.account = "johndoe";
    30   Service.syncID = "1234567890";
    31   Service.identity.syncKey = normalized; // UI normalizes.
    32   do_check_false(Utils.isPassphrase(Service.identity.syncKey));
    33   Service.upgradeSyncKey(Service.syncID);
    34   let upgraded = Service.identity.syncKey;
    35   _("Upgraded: " + upgraded);
    36   do_check_true(Utils.isPassphrase(upgraded));
    38   // Now let's verify that it's been derived correctly, from the normalized
    39   // version, and the encoded sync ID.
    40   _("Sync ID: " + Service.syncID);
    41   let derivedKeyStr =
    42     Utils.derivePresentableKeyFromPassphrase(normalized,
    43                                              btoa(Service.syncID),
    44                                              PBKDF2_KEY_BYTES, true);
    45   _("Derived: " + derivedKeyStr);
    47   // Success!
    48   do_check_eq(derivedKeyStr, upgraded);
    49 }

mercurial