public void setPrivateData(Object... keysAndValues) { setPrivateData(new Binder(keysAndValues)); }
@Test public void decryptWithPassword() throws Exception { Capsule c1 = new Capsule(); c1.setPrivateData("Very", "secret materials"); String password = "icodici forever"; c1.addKeys(new KeyInfo(KeyInfo.PRF.HMAC_SHA256, 1000, null, null).derivePassword(password)); c1.addKeys(new KeyInfo(KeyInfo.PRF.HMAC_SHA256, 1000, null, null).derivePassword(password+"12")); byte[] packed = c1.pack(); Capsule c2 = new Capsule(password, packed); assertEquals(c1, c2); exception.expect(Capsule.DecryptionFailedException.class); new Capsule(password + "bad", packed); }
@Test public void testEncrypted() throws Exception { Capsule c1 = new Capsule(); c1.setPrivateData("hello", "world", "I'm", "the coffer"); PrivateKey k1 = TestKeys.privateKey(0); PrivateKey k2 = TestKeys.privateKey(1); SymmetricKey k3 = new SymmetricKey(); SymmetricKey k4 = new SymmetricKey(); c1.addKeys(k1.getPublicKey()); c1.addKeys(k3); byte[] packed = c1.pack(); Capsule c2 = new Capsule(packed, new KRing(k3)); assertEquals(c1, c2); c2 = new Capsule(packed, k1.asKeySource()); assertEquals(c1, c2); exception.expect(Capsule.DecryptionFailedException.class); c2 = new Capsule(packed, new KRing(k2)); assertEquals(c1, c2); }