Search in sources :

Example 11 with KbsData

use of org.whispersystems.signalservice.api.kbs.KbsData in project Signal-Android by WhisperSystems.

the class HashedPinKbsDataTest method vectors_createNewKbsData.

@Test
public void vectors_createNewKbsData() throws IOException {
    for (KbsTestVector vector : getKbsTestVectorList()) {
        HashedPin hashedPin = HashedPin.fromArgon2Hash(vector.getArgon2Hash());
        KbsData kbsData = hashedPin.createNewKbsData(MasterKey.createNew(mockRandom(vector.getMasterKey())));
        assertArrayEquals(vector.getMasterKey(), kbsData.getMasterKey().serialize());
        assertArrayEquals(vector.getIvAndCipher(), kbsData.getCipherText());
        assertArrayEquals(vector.getKbsAccessKey(), kbsData.getKbsAccessKey());
        assertEquals(vector.getRegistrationLock(), kbsData.getMasterKey().deriveRegistrationLock());
    }
}
Also used : KbsTestVector(org.thoughtcrime.securesms.registration.v2.testdata.KbsTestVector) KbsData(org.whispersystems.signalservice.api.kbs.KbsData) HashedPin(org.whispersystems.signalservice.api.kbs.HashedPin) Test(org.junit.Test)

Example 12 with KbsData

use of org.whispersystems.signalservice.api.kbs.KbsData in project Signal-Android by signalapp.

the class PinHashing_hashPin_Test method argon2_hashed_pin_another_password.

@Test
public void argon2_hashed_pin_another_password() throws IOException {
    String pin = "anotherpassword";
    byte[] backupId = Hex.fromStringCondensed("202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f");
    MasterKey masterKey = new MasterKey(Hex.fromStringCondensed("88a787415a2ecd79da0d1016a82a27c5c695c9a19b88b0aa1d35683280aa9a67"));
    HashedPin hashedPin = PinHashing.hashPin(pin, () -> backupId);
    KbsData kbsData = hashedPin.createNewKbsData(masterKey);
    assertArrayEquals(hashedPin.getKbsAccessKey(), kbsData.getKbsAccessKey());
    assertArrayEquals(Hex.fromStringCondensed("301d9dd1e96f20ce51083f67d3298fd37b97525de8324d5e12ed2d407d3d927b"), kbsData.getKbsAccessKey());
    assertArrayEquals(Hex.fromStringCondensed("9d9b05402ea39c17ff1c9298c8a0e86784a352aa02a74943bf8bcf07ec0f4b574a5b786ad0182c8d308d9eb06538b8c9"), kbsData.getCipherText());
    assertEquals(masterKey, kbsData.getMasterKey());
    String localPinHash = PinHashing.localPinHash(pin);
    assertTrue(PinHashing.verifyLocalPinHash(localPinHash, pin));
}
Also used : KbsData(org.whispersystems.signalservice.api.kbs.KbsData) MasterKey(org.whispersystems.signalservice.api.kbs.MasterKey) HashedPin(org.whispersystems.signalservice.api.kbs.HashedPin) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)12 HashedPin (org.whispersystems.signalservice.api.kbs.HashedPin)12 KbsData (org.whispersystems.signalservice.api.kbs.KbsData)12 MasterKey (org.whispersystems.signalservice.api.kbs.MasterKey)8 KbsTestVector (org.thoughtcrime.securesms.registration.v2.testdata.KbsTestVector)4