mobile/android/tests/background/junit3/src/fxa/TestBrowserIDKeyPairGeneration.java

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 package org.mozilla.gecko.background.fxa;
     6 import java.security.GeneralSecurityException;
     8 import org.mozilla.gecko.background.helpers.AndroidSyncTestCase;
     9 import org.mozilla.gecko.browserid.BrowserIDKeyPair;
    10 import org.mozilla.gecko.browserid.DSACryptoImplementation;
    11 import org.mozilla.gecko.browserid.JSONWebTokenUtils;
    12 import org.mozilla.gecko.browserid.RSACryptoImplementation;
    13 import org.mozilla.gecko.browserid.SigningPrivateKey;
    14 import org.mozilla.gecko.browserid.VerifyingPublicKey;
    15 import org.mozilla.gecko.sync.ExtendedJSONObject;
    16 import org.mozilla.gecko.sync.Utils;
    18 public class TestBrowserIDKeyPairGeneration extends AndroidSyncTestCase {
    19   public void doTestEncodeDecode(BrowserIDKeyPair keyPair) throws Exception {
    20     SigningPrivateKey privateKey = keyPair.getPrivate();
    21     VerifyingPublicKey publicKey = keyPair.getPublic();
    23     ExtendedJSONObject o = new ExtendedJSONObject();
    24     o.put("key", Utils.generateGuid());
    26     String token = JSONWebTokenUtils.encode(o.toJSONString(), privateKey);
    27     assertNotNull(token);
    29     String payload = JSONWebTokenUtils.decode(token, publicKey);
    30     assertEquals(o.toJSONString(), payload);
    32     try {
    33       JSONWebTokenUtils.decode(token + "x", publicKey);
    34       fail("Expected exception.");
    35     } catch (GeneralSecurityException e) {
    36       // Do nothing.
    37     }
    38   }
    40   public void testEncodeDecodeSuccessRSA() throws Exception {
    41     doTestEncodeDecode(RSACryptoImplementation.generateKeyPair(1024));
    42     doTestEncodeDecode(RSACryptoImplementation.generateKeyPair(2048));
    43   }
    45   public void testEncodeDecodeSuccessDSA() throws Exception {
    46     doTestEncodeDecode(DSACryptoImplementation.generateKeyPair(512));
    47     doTestEncodeDecode(DSACryptoImplementation.generateKeyPair(1024));
    48   }
    49 }

mercurial