1f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.apache.harmony.security.tests.java.security; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.InputStream; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.OutputStream; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Certificate; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Identity; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.IdentityScope; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyManagementException; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyPairGenerator; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Principal; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.PublicKey; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertificateFactory; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.X509Certificate; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.tests.java.security.IdentityScope2Test.IdentityScopeSubclass; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project@SuppressWarnings("deprecation") 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class Identity2Test extends junit.framework.TestCase { 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 37003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom private static PublicKey PUB_KEY; 38003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom private static PublicKey getPubKey() throws Exception { 39003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom if (PUB_KEY == null) { 40003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom PUB_KEY = KeyPairGenerator.getInstance("DSA").genKeyPair().getPublic(); 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 42003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom return PUB_KEY; 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 44f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static class CertificateImpl implements java.security.Certificate { 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project X509Certificate cert; 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public CertificateImpl(X509Certificate cert) { 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project this.cert = cert; 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Principal getGuarantor() { 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return cert.getIssuerDN(); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void encode(OutputStream out) { 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void decode(InputStream in) { 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String toString() { 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return ""; 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String toString(boolean b) { 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return ""; 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getFormat() { 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return cert.getType(); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Principal getPrincipal() { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return cert.getSubjectDN(); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public PublicKey getPublicKey() { 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return cert.getPublicKey(); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String certificate = "-----BEGIN CERTIFICATE-----\n" 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "MIICZTCCAdICBQL3AAC2MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMSAw\n" 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJl\n" 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "IFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NzAyMjAwMDAwMDBa\n" 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "Fw05ODAyMjAyMzU5NTlaMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZv\n" 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "cm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMR8wHQYDVQQKExZTdW4gTWljcm9zeXN0\n" 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "ZW1zLCBJbmMuMSEwHwYDVQQLExhUZXN0IGFuZCBFdmFsdWF0aW9uIE9ubHkxGjAY\n" 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "BgNVBAMTEWFyZ29uLmVuZy5zdW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\n" 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "iQKBgQCofmdY+PiUWN01FOzEewf+GaG+lFf132UpzATmYJkA4AEA/juW7jSi+LJk\n" 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "wJKi5GO4RyZoyimAL/5yIWDV6l1KlvxyKslr0REhMBaD/3Z3EsLTTEf5gVrQS6sT\n" 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "WMoSZAyzB39kFfsB6oUXNtV8+UKKxSxKbxvhQn267PeCz5VX2QIDAQABMA0GCSqG\n" 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "SIb3DQEBAgUAA34AXl3at6luiV/7I9MN5CXYoPJYI8Bcdc1hBagJvTMcmlqL2uOZ\n" 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "H9T5hNMEL9Tk6aI7yZPXcw/xI2K6pOR/FrMp0UwJmdxX7ljV6ZtUZf7pY492UqwC\n" 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "1777XQ9UEZyrKJvF5ntleeO0ayBqLGVKCWzWZX9YsXCpv47FNLZbupE=\n" 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "-----END CERTIFICATE-----\n"; 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 100003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom ByteArrayInputStream certArray = new ByteArrayInputStream(certificate.getBytes()); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String certificate2 = "-----BEGIN CERTIFICATE-----\n" 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "MIICZzCCAdCgAwIBAgIBGzANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJVUzEY\n" 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "MBYGA1UEChMPVS5TLiBHb3Zlcm5tZW50MQwwCgYDVQQLEwNEb0QxDDAKBgNVBAsT\n" 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "A1BLSTEcMBoGA1UEAxMTRG9EIFBLSSBNZWQgUm9vdCBDQTAeFw05ODA4MDMyMjAy\n" 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "MjlaFw0wODA4MDQyMjAyMjlaMGExCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9VLlMu\n" 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "IEdvdmVybm1lbnQxDDAKBgNVBAsTA0RvRDEMMAoGA1UECxMDUEtJMRwwGgYDVQQD\n" 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "ExNEb0QgUEtJIE1lZCBSb290IENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "gQDbrM/J9FrJSX+zxFUbsI9Vw5QbguVBIa95rwW/0M8+sM0r5gd+DY6iubm6wnXk\n" 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "CSvbfQlFEDSKr4WYeeGp+d9WlDnQdtDFLdA45tCi5SHjnW+hGAmZnld0rz6wQekF\n" 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "5xQaa5A6wjhMlLOjbh27zyscrorMJ1O5FBOWnEHcRv6xqQIDAQABoy8wLTAdBgNV\n" 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "HQ4EFgQUVrmYR6m9701cHQ3r5kXyG7zsCN0wDAYDVR0TBAUwAwEB/zANBgkqhkiG\n" 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "9w0BAQUFAAOBgQDVX1Y0YqC7vekeZjVxtyuC8Mnxbrz6D109AX07LEIRzNYzwZ0w\n" 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "MTImSp9sEzWW+3FueBIU7AxGys2O7X0qmN3zgszPfSiocBuQuXIYQctJhKjF5KVc\n" 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "VGQRYYlt+myhl2vy6yPzEVCjiKwMEb1Spu0irCf+lFW2hsdjvmSQMtZvOw==\n" 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "-----END CERTIFICATE-----\n"; 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 118003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom ByteArrayInputStream certArray2 = new ByteArrayInputStream(certificate2.getBytes()); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 120f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static class IdentitySubclass extends Identity { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final long serialVersionUID = 1L; 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public IdentitySubclass() { 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public IdentitySubclass(String name) { 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(name); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public IdentitySubclass(String name, IdentityScope scope) 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws KeyManagementException { 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(name, scope); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 139229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#Identity() 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_Constructor() { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new IdentitySubclass(); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 146229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#Identity(java.lang.String) 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_lang_String() { 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] str = {"test", "", null}; 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project IdentitySubclass is; 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < str.length; i++) { 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = new IdentitySubclass(str[i]); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(is); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(is instanceof Identity); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 157003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom fail("Unexpected exception for Identity(java.lang.String) with parameter " 158003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom + str[i]); 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 164229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#Identity(java.lang.String, 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.security.IdentityScope) 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 167003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom public void test_ConstructorLjava_lang_StringLjava_security_IdentityScope() throws Exception { 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String nameNull = null; 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] str = {"test", "", "!@#$%^&*()", "identity name"}; 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project IdentityScopeSubclass iss = new IdentityScopeSubclass("name"); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project IdentitySubclass is; 172f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < str.length; i++) { 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = new IdentitySubclass(str[i], new IdentityScopeSubclass()); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(is); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(is instanceof Identity); 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.println(e); 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception for parameter " + str[i]); 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 183f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = new IdentitySubclass(nameNull, new IdentityScopeSubclass()); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException npe) { 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Incorrect exception " + e + " was thrown"); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 190f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = new IdentitySubclass("test", iss); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = new IdentitySubclass("test", iss); 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("KeyManagementException was not thrown"); 195003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom } catch (KeyManagementException expected) { 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 200229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#getScope() 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getScope() throws Exception { 203003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentityScope scope = new IdentityScopeSubclass(); 204003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", scope); 205003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentityScope returnedScope = sub.getScope(); 206003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("Wrong Scope returned", scope, returnedScope); 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 210229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#getPublicKey() 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getPublicKey() throws Exception { 213003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", 214003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom new IdentityScopeSubclass()); 215003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.setPublicKey(getPubKey()); 216003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom PublicKey returnedPubKey = sub.getPublicKey(); 217003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("Wrong PublicKey returned", getPubKey(), returnedPubKey); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 221229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#getName() 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getName() throws Exception { 224003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom String name = "test"; 225003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass(name, 226003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom new IdentityScopeSubclass()); 227003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("Wrong Name returned", name, sub.getName()); 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 231229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#getInfo() 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getInfo() throws Exception { 234003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom String info = "This is the general information."; 235003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", 236003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom new IdentityScopeSubclass()); 237003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.setInfo(info); 238003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("Wrong Info returned", info, sub.getInfo()); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 242229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#certificates() 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_certificates() throws Exception { 245003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", 246003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom new IdentityScopeSubclass()); 247003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom CertificateFactory cf = CertificateFactory.getInstance("X.509"); 248003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom X509Certificate cert[] = new X509Certificate[1]; 249003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom cert[0] = (X509Certificate) cf.generateCertificate(certArray); 250003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.setPublicKey(cert[0].getPublicKey()); 251003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom CertificateImpl certImpl = new CertificateImpl(cert[0]); 252003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.addCertificate(certImpl); 253003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom java.security.Certificate[] certs = sub.certificates(); 254003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("Certificate not contained in the identity", 255003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom certs[0], certImpl); 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 259229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#removeCertificate(java.security.Certificate) 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 261cff384fb32d139d2bda7c3dc872108fe9d86d6b1Narayan Kamath // AndroidOnly("Spec says: Removing unknown certificates throw an exception. " 262cff384fb32d139d2bda7c3dc872108fe9d86d6b1Narayan Kamath // + "The RI ignores unknown certificates.") 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_removeCertificateLjava_security_Certificate() throws Exception { 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project IdentitySubclass sub = new IdentitySubclass("test", 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new IdentityScopeSubclass()); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project CertificateFactory cf = CertificateFactory.getInstance("X.509"); 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project X509Certificate cert[] = new X509Certificate[1]; 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project cert[0] = (X509Certificate) cf.generateCertificate(certArray); 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.setPublicKey(cert[0].getPublicKey()); 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project CertificateImpl certImpl = new CertificateImpl(cert[0]); 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.addCertificate(certImpl); 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 273fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project try { 274fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project sub.removeCertificate(null); 275fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project fail("Test 1: KeyManagementException expected."); 276003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom } catch (KeyManagementException expected) { 277fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project } 278f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Certificate should not have been removed.", 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1, sub.certificates().length); 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.removeCertificate(certImpl); 282f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Certificate has not been removed.", 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0, sub.certificates().length); 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Removing the same certificate a second time should fail. 286fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project try { 287fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project sub.removeCertificate(certImpl); 288fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project fail("Test 4: KeyManagementException expected."); 289003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom } catch (KeyManagementException expected) { 290fa890109ecc4522f0e07481431c04d4cf6ba16d1The Android Open Source Project } 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 295229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#equals(java.lang.Object) 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_equalsLjava_lang_Object() throws Exception { 298003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", 299003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom new IdentityScopeSubclass()); 300003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom CertificateFactory cf = CertificateFactory.getInstance("X.509"); 301003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom X509Certificate cert[] = new X509Certificate[1]; 302003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom cert[0] = (X509Certificate) cf.generateCertificate(certArray); 303003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.setPublicKey(cert[0].getPublicKey()); 304003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom CertificateImpl certImpl = new CertificateImpl(cert[0]); 305003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.addCertificate(certImpl); 306003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub2 = new IdentitySubclass("test", 307003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom new IdentityScopeSubclass()); 308003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub3 = new IdentitySubclass("identity name", 309003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom new IdentityScopeSubclass()); 310003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("the two Identity objects are not equal", sub2, sub); 311003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals(sub, sub2); 312003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertFalse(sub.equals(sub3)); 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 316229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#identityEquals(java.security.Identity) 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_identityEqualsLjava_security_Identity() throws Exception { 319003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", null); 320003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom CertificateFactory cf = CertificateFactory.getInstance("X.509"); 321003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom X509Certificate cert[] = new X509Certificate[1]; 322003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom cert[0] = (X509Certificate) cf.generateCertificate(certArray); 323003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.setPublicKey(cert[0].getPublicKey()); 324003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom CertificateImpl certImpl = new CertificateImpl(cert[0]); 325003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.addCertificate(certImpl); 326003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub2 = new IdentitySubclass("test", null); 327003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub2.setPublicKey(cert[0].getPublicKey()); 328003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("the two Identity objects are not identity-equal", 329003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub2, sub); 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 333229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#toString() 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_toString() throws Exception { 336003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", null); 337003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertNotNull(sub.toString()); 338003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertTrue("The String returned is not valid", sub.toString().length() > 0); 339003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom // Regression for HARMONY-1566 340003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertNotNull(new IdentitySubclass().toString()); 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 344229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#toString(boolean) 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_toStringZ() throws Exception { 347003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", null); 348003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertNotNull(sub.toString(true)); 349003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertTrue("The String returned is not valid", sub.toString(true).length() > 0); 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 353229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#hashCode() 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_hashCode() throws Exception { 356003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub = new IdentitySubclass("test", null); 357003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom IdentitySubclass sub2 = new IdentitySubclass("test", null); 358003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("The 2 hash codes are not equal", sub.hashCode(), sub2.hashCode()); 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 360f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 362229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#setInfo(String) 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 364003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom public void testSetInfo() throws Exception { 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] info = {"This is the general information.", "test", "", null}; 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project IdentitySubclass sub = new IdentitySubclass("test", new IdentityScopeSubclass()); 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < info.length; i++) { 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sub.setInfo(info[i]); 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Wrong Info returned", info[i], sub.getInfo()); 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception for parameter " + info[i]); 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 376f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 378f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 380229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.security.Identity#setPublicKey(PublicKey key) 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSetPublicKey() throws Exception{ 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project IdentitySubclass sub = new IdentitySubclass("test", 384003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom new IdentityScopeSubclass()); 385003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.setPublicKey(getPubKey()); 386003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom PublicKey returnedPubKey = sub.getPublicKey(); 387003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("Wrong PublicKey returned", getPubKey(), returnedPubKey); 388f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 389003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom sub.setPublicKey(null); 390003f7a4d100cd1527d94bac81a4a3c5a8216c6eeBrian Carlstrom assertEquals("Wrong PublicKey returned", null, sub.getPublicKey()); 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 394