예제 #1
0
 /**
  * verify Identity.identityEquals(Identity) return true, only if names and public keys are equal
  */
 public void testIdentityEquals() throws Exception {
   String name = "nnn";
   PublicKey pk = new PublicKeyStub("aaa", "fff", new byte[] {1, 2, 3, 4, 5});
   Identity i = new IdentityStub(name);
   i.setPublicKey(pk);
   Object[] value = {
     // null, Boolean.FALSE,
     // new Object(), Boolean.FALSE,
     new IdentityStub("111"),
     Boolean.FALSE,
     new IdentityStub(name),
     Boolean.FALSE,
     new IdentityStub(name, IdentityScope.getSystemScope()),
     Boolean.FALSE,
     i,
     Boolean.TRUE,
     new IdentityStub(name, pk),
     Boolean.TRUE
   };
   for (int k = 0; k < value.length; k += 2) {
     assertEquals(value[k + 1], new Boolean(i.identityEquals((Identity) value[k])));
     if (Boolean.TRUE.equals(value[k + 1])) assertEquals(i.hashCode(), value[k].hashCode());
   }
   Identity i2 = IdentityScope.getSystemScope().getIdentity(name);
   i2.setPublicKey(pk);
   assertTrue(i.identityEquals(i2));
 }
예제 #2
0
 /** verify Identity.getPublicKey() returns public key */
 public void testGetPublicKey() throws Exception {
   Identity i = new IdentityStub("testGetPublicKey");
   assertNull(i.getPublicKey());
   PublicKey pk = new PublicKeyStub("kkk", "Identity.testGetPublicKey", null);
   i.setPublicKey(pk);
   assertSame(pk, i.getPublicKey());
 }
예제 #3
0
 /** verify Identity.setPublicKey() throws KeyManagementException if key is invalid */
 public void testSetPublicKey2() throws Exception {
   Identity i2 = new IdentityStub("testSetPublicKey2_2", IdentityScope.getSystemScope());
   new PublicKeyStub("kkk", "testSetPublicKey2", new byte[] {1, 2, 3, 4, 5});
   try {
     i2.setPublicKey(null);
     // fail("KeyManagementException should be thrown - key is null");
   } catch (KeyManagementException ok) {
   }
 }
예제 #4
0
  /** verify Identity.setPublicKey() removes old key and all identity's certificates */
  public void testSetPublicKey4() throws Exception {
    Identity i = new IdentityStub("testSetPublicKey4");
    PublicKeyStub pk1 = new PublicKeyStub("kkk", "Identity.testSetPublicKey4", null);
    CertificateStub c1 = new CertificateStub("fff", null, null, pk1);
    CertificateStub c2 = new CertificateStub("zzz", null, null, pk1);
    i.addCertificate(c1);
    i.addCertificate(c2);
    assertEquals(2, i.certificates().length);
    assertSame(pk1, i.getPublicKey());

    PublicKeyStub pk2 = new PublicKeyStub("zzz", "Identity.testSetPublicKey4", null);
    i.setPublicKey(pk2);
    assertSame(pk2, i.getPublicKey());
    assertEquals(0, i.certificates().length);
  }
예제 #5
0
 /**
  * verify addCertificate(Certificate certificate) adds a certificate for this identity. If the
  * identity has a public key, the public key in the certificate must be the same
  */
 public void testAddCertificate1() throws Exception {
   Identity i = new IdentityStub("iii");
   PublicKeyStub pk1 = new PublicKeyStub("kkk", "fff", new byte[] {1, 2, 3, 4, 5});
   i.setPublicKey(pk1);
   // try with the same key
   CertificateStub c1 = new CertificateStub("fff", null, null, pk1);
   i.addCertificate(c1);
   assertSame(c1, i.certificates()[0]);
   // try Certificate with different key
   try {
     i.addCertificate(
         new CertificateStub(
             "ccc", null, null, new PublicKeyStub("k2", "fff", new byte[] {6, 7, 8, 9, 0})));
     fail("KeyManagementException should be thrown");
   } catch (KeyManagementException ok) {
   }
 }