예제 #1
0
 /**
  * verify addCertificate(Certificate certificate) adds a certificate for this identity. if the
  * identity does not have a public key, the identity's public key is set to be that specified in
  * the certificate.
  */
 public void testAddCertificate2() throws Exception {
   Identity i = new IdentityStub("iii");
   PublicKeyStub pk1 = new PublicKeyStub("kkk", "fff", null);
   CertificateStub c1 = new CertificateStub("fff", null, null, pk1);
   i.addCertificate(c1);
   assertSame(c1, i.certificates()[0]);
   assertSame(pk1, i.getPublicKey());
 }
예제 #2
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) {
   }
 }
예제 #3
0
 /**
  * verify removeCertificate(Certificate certificate) throws SecurityException if permission is
  * denied
  */
 public void testRemoveCertificate2() throws Exception {
   MySecurityManager sm = new MySecurityManager();
   sm.denied.add(new SecurityPermission("removeIdentityCertificate"));
   Identity i = new IdentityStub("iii");
   i.addCertificate(new CertificateStub("ccc", null, null, null));
   System.setSecurityManager(sm);
   try {
     i.removeCertificate(i.certificates()[0]);
     fail("SecurityException should be thrown");
   } catch (SecurityException ok) {
   } finally {
     System.setSecurityManager(null);
   }
 }
예제 #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 certificates() returns a copy of all certificates for this identity */
 public void testCertificates() throws Exception {
   Identity i = new IdentityStub("iii");
   PublicKeyStub pk1 = new PublicKeyStub("kkk", "fff", null);
   CertificateStub c1 = new CertificateStub("fff", null, null, pk1);
   CertificateStub c2 = new CertificateStub("zzz", null, null, pk1);
   i.addCertificate(c1);
   i.addCertificate(c2);
   Certificate[] s = i.certificates();
   assertEquals(2, s.length);
   assertTrue(c1.equals(s[0]) || c2.equals(s[0]));
   assertTrue(c1.equals(s[1]) || c2.equals(s[1]));
   s[0] = null;
   s[1] = null;
   // check that the copy was modified
   s = i.certificates();
   assertEquals(2, s.length);
   assertTrue(c1.equals(s[0]) || c2.equals(s[0]));
   assertTrue(c1.equals(s[1]) || c2.equals(s[1]));
 }