@Test public void testNotSigned() throws Exception { Capsule c1 = new Capsule(); c1.setPublicData("hello", "world", "I'm", "the coffer"); Capsule c2 = new Capsule(); c2.setPublicData("hello", "world", "I'm", "the coffer"); assertEquals(c1, c2); Capsule c4 = new Capsule(c1.pack(), null); assertFalse(c1.isSigned()); assertEquals(c1, c4); assertNotSame(c1, c4); }
@Test public void testPartiallySigned() throws Exception { Capsule c1 = new Capsule(); c1.setPublicData("hello", "world", "I'm", "the coffer"); PrivateKey k1 = TestKeys.privateKey(0); PrivateKey k2 = TestKeys.privateKey(1); c1.addSigners(k1, k2); // Let's remove one signature byte[] packed = c1.pack(); Binder b = Boss.unpack(packed); ArrayList<Binder> ss = b.getBinders("signatures"); ss.remove(0); b.put("signatures", ss); packed = Boss.pack(b); // Now it is only partially signed Capsule c3 = new Capsule(packed, null, true, false); assertFalse(c3.isSigned()); assertTrue(c3.isPartiallySigned()); }
@Test public void testSigned() throws Exception { Capsule c1 = new Capsule(); c1.setPublicData("hello", "world", "I'm", "the coffer"); PrivateKey k1 = TestKeys.privateKey(0); PrivateKey k2 = TestKeys.privateKey(1); c1.addSigners(k1, k2); Capsule c2 = new Capsule(); c2.setPublicData("hello", "world", "I'm", "the coffer"); byte[] packed = c1.pack(); Capsule c4 = new Capsule(packed, null); assertEquals(c1, c4); assertTrue(c4.isSigned()); assertFalse(c4.isPartiallySigned()); Collection<AbstractKey> signers = c4.getSigningKeys(); assertEquals(2, signers.size()); assertTrue(signers.contains(k1.getPublicKey())); assertTrue(signers.contains(k2.getPublicKey())); packed[0x456]--; exception.expect(Capsule.BadSignatureException.class); c4 = new Capsule(packed, null); }
Capsule c4 = new Capsule(packed, null); assertEquals(c1, c4); assertTrue(c4.isSigned()); assertFalse(c4.isPartiallySigned());