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