1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.security.tests.java.security; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayInputStream; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.InputStream; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.OutputStream; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.UnsupportedEncodingException; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Identity; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.IdentityScope; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.KeyManagementException; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.KeyPairGenerator; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Principal; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.PublicKey; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.CertificateFactory; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.cert.X509Certificate; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.security.tests.java.security.IdentityScope2Test.IdentityScopeSubclass; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class Identity2Test extends junit.framework.TestCase { 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static PublicKey pubKey; 388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static { 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pubKey = KeyPairGenerator.getInstance("DSA").genKeyPair().getPublic(); 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (Exception e) { 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(e.toString()); 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static class CertificateImpl implements java.security.Certificate { 488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath X509Certificate cert; 508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public CertificateImpl(X509Certificate cert) { 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath this.cert = cert; 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public Principal getGuarantor() { 568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return cert.getIssuerDN(); 578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void encode(OutputStream out) { 608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void decode(InputStream in) { 638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public String toString() { 668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return ""; 678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public String toString(boolean b) { 708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return ""; 718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public String getFormat() { 748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return cert.getType(); 758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public Principal getPrincipal() { 788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return cert.getSubjectDN(); 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public PublicKey getPublicKey() { 828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return cert.getPublicKey(); 838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String certificate = "-----BEGIN CERTIFICATE-----\n" 878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "MIICZTCCAdICBQL3AAC2MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMSAw\n" 888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJl\n" 898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "IFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NzAyMjAwMDAwMDBa\n" 908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "Fw05ODAyMjAyMzU5NTlaMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZv\n" 918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "cm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMR8wHQYDVQQKExZTdW4gTWljcm9zeXN0\n" 928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "ZW1zLCBJbmMuMSEwHwYDVQQLExhUZXN0IGFuZCBFdmFsdWF0aW9uIE9ubHkxGjAY\n" 938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "BgNVBAMTEWFyZ29uLmVuZy5zdW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\n" 948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "iQKBgQCofmdY+PiUWN01FOzEewf+GaG+lFf132UpzATmYJkA4AEA/juW7jSi+LJk\n" 958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "wJKi5GO4RyZoyimAL/5yIWDV6l1KlvxyKslr0REhMBaD/3Z3EsLTTEf5gVrQS6sT\n" 968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "WMoSZAyzB39kFfsB6oUXNtV8+UKKxSxKbxvhQn267PeCz5VX2QIDAQABMA0GCSqG\n" 978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "SIb3DQEBAgUAA34AXl3at6luiV/7I9MN5CXYoPJYI8Bcdc1hBagJvTMcmlqL2uOZ\n" 988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "H9T5hNMEL9Tk6aI7yZPXcw/xI2K6pOR/FrMp0UwJmdxX7ljV6ZtUZf7pY492UqwC\n" 998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "1777XQ9UEZyrKJvF5ntleeO0ayBqLGVKCWzWZX9YsXCpv47FNLZbupE=\n" 1008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "-----END CERTIFICATE-----\n"; 1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath ByteArrayInputStream certArray; 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String certificate2 = "-----BEGIN CERTIFICATE-----\n" 1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "MIICZzCCAdCgAwIBAgIBGzANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJVUzEY\n" 1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "MBYGA1UEChMPVS5TLiBHb3Zlcm5tZW50MQwwCgYDVQQLEwNEb0QxDDAKBgNVBAsT\n" 1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "A1BLSTEcMBoGA1UEAxMTRG9EIFBLSSBNZWQgUm9vdCBDQTAeFw05ODA4MDMyMjAy\n" 1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "MjlaFw0wODA4MDQyMjAyMjlaMGExCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9VLlMu\n" 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "IEdvdmVybm1lbnQxDDAKBgNVBAsTA0RvRDEMMAoGA1UECxMDUEtJMRwwGgYDVQQD\n" 1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "ExNEb0QgUEtJIE1lZCBSb290IENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" 1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "gQDbrM/J9FrJSX+zxFUbsI9Vw5QbguVBIa95rwW/0M8+sM0r5gd+DY6iubm6wnXk\n" 1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "CSvbfQlFEDSKr4WYeeGp+d9WlDnQdtDFLdA45tCi5SHjnW+hGAmZnld0rz6wQekF\n" 1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "5xQaa5A6wjhMlLOjbh27zyscrorMJ1O5FBOWnEHcRv6xqQIDAQABoy8wLTAdBgNV\n" 1148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "HQ4EFgQUVrmYR6m9701cHQ3r5kXyG7zsCN0wDAYDVR0TBAUwAwEB/zANBgkqhkiG\n" 1158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "9w0BAQUFAAOBgQDVX1Y0YqC7vekeZjVxtyuC8Mnxbrz6D109AX07LEIRzNYzwZ0w\n" 1168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "MTImSp9sEzWW+3FueBIU7AxGys2O7X0qmN3zgszPfSiocBuQuXIYQctJhKjF5KVc\n" 1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "VGQRYYlt+myhl2vy6yPzEVCjiKwMEb1Spu0irCf+lFW2hsdjvmSQMtZvOw==\n" 1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "-----END CERTIFICATE-----\n"; 1198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath ByteArrayInputStream certArray2; 1218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath { 1238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath certArray = new ByteArrayInputStream(certificate 1258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .getBytes("UTF-8")); 1268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath certArray2 = new ByteArrayInputStream(certificate2 1278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .getBytes("UTF-8")); 1288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (UnsupportedEncodingException e) { 1298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throw new RuntimeException(e.getMessage()); 1308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static class IdentitySubclass extends Identity { 1348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public IdentitySubclass() { 1358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super(); 1368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public IdentitySubclass(String name) { 1398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super(name); 1408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public IdentitySubclass(String name, IdentityScope scope) 1438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath throws KeyManagementException { 1448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super(name, scope); 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 1498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#Identity() 1508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_Constructor() { 1528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentitySubclass(); 1538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 1568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#Identity(java.lang.String) 1578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_ConstructorLjava_lang_String() { 1598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentitySubclass("test"); 1608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 1638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#Identity(java.lang.String, 1648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath *java.security.IdentityScope) 1658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_ConstructorLjava_lang_StringLjava_security_IdentityScope() throws Exception { 1678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentitySubclass("test", new IdentityScopeSubclass()); 1688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 1718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#getScope() 1728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_getScope() throws Exception { 1748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentityScope scope = new IdentityScopeSubclass(); 1758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", scope); 1768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentityScope returnedScope = sub.getScope(); 1778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Wrong Scope returned", scope, returnedScope); 1788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 1818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#getPublicKey() 1828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_getPublicKey() throws Exception { 1848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", 1858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentityScopeSubclass()); 1868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.setPublicKey(pubKey); 1878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath PublicKey returnedPubKey = sub.getPublicKey(); 1888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Wrong PublicKey returned", pubKey, returnedPubKey); 1898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 1928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#getName() 1938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_getName() throws Exception { 1958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String name = "test"; 1968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass(name, 1978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentityScopeSubclass()); 1988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Wrong Name returned", name, sub.getName()); 1998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 2028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#getInfo() 2038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_getInfo() throws Exception { 2058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String info = "This is the general information."; 2068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", 2078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentityScopeSubclass()); 2088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.setInfo(info); 2098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Wrong Info returned", info, sub.getInfo()); 2108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 2138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#certificates() 2148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_certificates() throws Exception { 2168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", 2178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentityScopeSubclass()); 2188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateFactory cf = CertificateFactory.getInstance("X.509"); 2198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath X509Certificate cert[] = new X509Certificate[1]; 2208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath cert[0] = (X509Certificate) cf.generateCertificate(certArray); 2218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.setPublicKey(cert[0].getPublicKey()); 2228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateImpl certImpl = new CertificateImpl(cert[0]); 2238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.addCertificate(certImpl); 2248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath java.security.Certificate[] certs = sub.certificates(); 2258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Certificate not contained in the identity", 2268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath certs[0], certImpl); 2278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 2308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#addCertificate(java.security.Certificate) 2318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_addCertificateLjava_security_Certificate() throws Exception { 2338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", 2348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentityScopeSubclass()); 2358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateFactory cf = CertificateFactory.getInstance("X.509"); 2368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath X509Certificate cert[] = new X509Certificate[1]; 2378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath cert[0] = (X509Certificate) cf.generateCertificate(certArray); 2388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.setPublicKey(cert[0].getPublicKey()); 2398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateImpl certImpl = new CertificateImpl(cert[0]); 2408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.addCertificate(certImpl); 2418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 2448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#removeCertificate(java.security.Certificate) 2458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_removeCertificateLjava_security_Certificate() throws Exception { 2478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", 2488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentityScopeSubclass()); 2498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateFactory cf = CertificateFactory.getInstance("X.509"); 2508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath X509Certificate cert[] = new X509Certificate[1]; 2518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath cert[0] = (X509Certificate) cf.generateCertificate(certArray); 2528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.setPublicKey(cert[0].getPublicKey()); 2538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateImpl certImpl = new CertificateImpl(cert[0]); 2548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.addCertificate(certImpl); 2558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.removeCertificate(certImpl); 2568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath java.security.Certificate[] certs = sub.certificates(); 2578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("Certificate not removed", 0, certs.length); 2588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 2618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#equals(java.lang.Object) 2628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_equalsLjava_lang_Object() throws Exception { 2648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", 2658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentityScopeSubclass()); 2668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateFactory cf = CertificateFactory.getInstance("X.509"); 2678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath X509Certificate cert[] = new X509Certificate[1]; 2688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath cert[0] = (X509Certificate) cf.generateCertificate(certArray); 2698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.setPublicKey(cert[0].getPublicKey()); 2708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateImpl certImpl = new CertificateImpl(cert[0]); 2718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.addCertificate(certImpl); 2728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub2 = new IdentitySubclass("test", 2738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath new IdentityScopeSubclass()); 2748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("the two Identity objects are not equal", sub2, sub); 2758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 2788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#identityEquals(java.security.Identity) 2798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_identityEqualsLjava_security_Identity() throws Exception { 2818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", null); 2828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateFactory cf = CertificateFactory.getInstance("X.509"); 2838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath X509Certificate cert[] = new X509Certificate[1]; 2848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath cert[0] = (X509Certificate) cf.generateCertificate(certArray); 2858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.setPublicKey(cert[0].getPublicKey()); 2868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CertificateImpl certImpl = new CertificateImpl(cert[0]); 2878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub.addCertificate(certImpl); 2888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub2 = new IdentitySubclass("test", null); 2898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub2.setPublicKey(cert[0].getPublicKey()); 2908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("the two Identity objects are not identity-equal", 2918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sub2, sub); 2928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 2958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#toString() 2968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_toString() throws Exception { 2988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", null); 2998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNotNull(sub.toString()); 3008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue("The String returned is not valid", sub.toString() 3018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .length() > 0); 3028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // Regression for HARMONY-1566 3038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNotNull(new IdentitySubclass().toString()); 3048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 3078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#toString(boolean) 3088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 3098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_toStringZ() throws Exception { 3108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", null); 3118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNotNull(sub.toString(true)); 3128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue("The String returned is not valid", sub.toString(true) 3138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .length() > 0); 3148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 3178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.security.Identity#hashCode() 3188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 3198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void test_hashCode() throws Exception { 3208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub = new IdentitySubclass("test", null); 3218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath IdentitySubclass sub2 = new IdentitySubclass("test", null); 3228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("The 2 hash codes are not equal", sub.hashCode(), sub2 3238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .hashCode()); 3248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 326