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 junit.framework.TestCase; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.tests.java.security.AlgorithmParametersTest.MyAlgorithmParameters; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.InputStream; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.OutputStream; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Key; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyPair; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyPairGenerator; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyStore; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyStoreException; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.KeyStoreSpi; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.NoSuchAlgorithmException; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.Provider; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.UnrecoverableKeyException; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.Certificate; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertificateException; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertificateFactory; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Date; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Enumeration; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class KeyStore3Test extends TestCase { 44f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private KeyStore mockKeyStore; 46f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private KeyPair keyPair; 48f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Certificate certificate; 50f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public KeyStore3Test() throws Exception { 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA"); 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project keyPair = keyPairGenerator.generateKeyPair(); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String certificateData = "-----BEGIN CERTIFICATE-----\n" 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "MIICZTCCAdICBQL3AAC2MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMSAw\n" 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJl\n" 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "IFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NzAyMjAwMDAwMDBa\n" 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "Fw05ODAyMjAyMzU5NTlaMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZv\n" 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "cm5pYTESMBAGA1UEBxMJUGFsbyBBbHRvMR8wHQYDVQQKExZTdW4gTWljcm9zeXN0\n" 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "ZW1zLCBJbmMuMSEwHwYDVQQLExhUZXN0IGFuZCBFdmFsdWF0aW9uIE9ubHkxGjAY\n" 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "BgNVBAMTEWFyZ29uLmVuZy5zdW4uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\n" 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "iQKBgQCofmdY+PiUWN01FOzEewf+GaG+lFf132UpzATmYJkA4AEA/juW7jSi+LJk\n" 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "wJKi5GO4RyZoyimAL/5yIWDV6l1KlvxyKslr0REhMBaD/3Z3EsLTTEf5gVrQS6sT\n" 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "WMoSZAyzB39kFfsB6oUXNtV8+UKKxSxKbxvhQn267PeCz5VX2QIDAQABMA0GCSqG\n" 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "SIb3DQEBAgUAA34AXl3at6luiV/7I9MN5CXYoPJYI8Bcdc1hBagJvTMcmlqL2uOZ\n" 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "H9T5hNMEL9Tk6aI7yZPXcw/xI2K6pOR/FrMp0UwJmdxX7ljV6ZtUZf7pY492UqwC\n" 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "1777XQ9UEZyrKJvF5ntleeO0ayBqLGVKCWzWZX9YsXCpv47FNLZbupE=\n" 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "-----END CERTIFICATE-----\n"; 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ByteArrayInputStream certArray = new ByteArrayInputStream( 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project certificateData.getBytes()); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project CertificateFactory cf = CertificateFactory.getInstance("X.509"); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project certificate = cf.generateCertificate(certArray); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 76f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_load() throws Exception { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No exception should be thrown out. 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.load(null); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_store() throws Exception { 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.store(null); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("should throw KeyStoreException: not initialized"); 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (KeyStoreException e) { 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 89f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No exception should be thrown out. 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.load(null, null); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.store(null); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setKeyEntry_null() throws Exception { 96f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes mockKeyStore.load(null, null); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No exception should be thrown out. 98f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes mockKeyStore.setKeyEntry(null, null, null, null); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 100f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setKeyEntry_key_is_null() throws Exception { 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.load(null, null); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No exception should be thrown out. 104f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes mockKeyStore.setKeyEntry("Alias", null, null, new Certificate[]{certificate}); 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 106f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setKeyEntry_key_is_private() throws Exception { 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.load(null, null); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Key key = keyPair.getPrivate(); 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.setKeyEntry("Alias", key, null, null); 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("should throw IllegalArgumentException"); 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 116f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.setKeyEntry("Alias", key, null, 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Certificate[0]); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("should throw IllegalArgumentException"); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 124f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes mockKeyStore.setKeyEntry("Alias", key, null, new Certificate[]{certificate}); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 127f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setKeyEntry_key_is_public() throws Exception 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.load(null, null); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Key key = keyPair.getPublic(); 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.setKeyEntry("Alias1", key, null, null); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.setKeyEntry("Alias2", key, null, 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Certificate[0]); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.setKeyEntry("Alias3", key, null, new Certificate[]{certificate}); 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 137f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setCertificateEntry_null() throws Exception { 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.load(null, null); 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.setCertificateEntry(null, null); 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.setCertificateEntry(null, certificate); 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore.setCertificateEntry("Alias", null); 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 147f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @SuppressWarnings("cast") 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_KeyStore() { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Provider p = new MyProvider(); 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MyKeyStore ks = new MyKeyStore(new MyKeyStoreSpi(), p, "MyKeyStore"); 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(ks); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(ks instanceof KeyStore); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Exception should be not thrown"); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 158f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MyKeyStore ks = new MyKeyStore(null, null, null); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(ks); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(ks instanceof KeyStore); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Exception should be not thrown"); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 168f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mockKeyStore = new MyKeyStore(new MyKeyStoreSpi(), null, "MyKeyStore"); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 173f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static class MyKeyStore extends KeyStore { 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public MyKeyStore(KeyStoreSpi keyStoreSpi, Provider provider, 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String type) { 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(keyStoreSpi, provider, type); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @SuppressWarnings("unused") 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static class MyKeyStoreSpi extends KeyStoreSpi { 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Enumeration<String> engineAliases() { 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean engineContainsAlias(String arg0) { 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void engineDeleteEntry(String arg0) throws KeyStoreException { 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Certificate engineGetCertificate(String arg0) { 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String engineGetCertificateAlias(Certificate arg0) { 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Certificate[] engineGetCertificateChain(String arg0) { 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Date engineGetCreationDate(String arg0) { 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Key engineGetKey(String arg0, char[] arg1) 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws NoSuchAlgorithmException, UnrecoverableKeyException { 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean engineIsCertificateEntry(String arg0) { 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean engineIsKeyEntry(String arg0) { 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void engineLoad(InputStream arg0, char[] arg1) 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws IOException, NoSuchAlgorithmException, 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project CertificateException { 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void engineSetCertificateEntry(String arg0, Certificate arg1) 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws KeyStoreException { 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void engineSetKeyEntry(String arg0, byte[] arg1, 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Certificate[] arg2) throws KeyStoreException { 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void engineSetKeyEntry(String arg0, Key arg1, char[] arg2, 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Certificate[] arg3) throws KeyStoreException { 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return; 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 246f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public int engineSize() { 247f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes return 0; 248f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 249f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 250f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public void engineStore(KeyStore.LoadStoreParameter param){ 251f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes return; 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 254f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public void engineStore(OutputStream arg0, char[] arg1) 255f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes throws IOException, NoSuchAlgorithmException, 256f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes CertificateException { 257f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes return; 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 259f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @SuppressWarnings("serial") 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private class MyProvider extends Provider { 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MyProvider() { 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super("MyProvider", 1.0, "Provider for testing"); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project put("AlgorithmParameters.ABC", MyAlgorithmParameters.class 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getName()); 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MyProvider(String name, double version, String info) { 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(name, version, info); 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 275