1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package org.conscrypt; 18 19 import java.io.InputStream; 20 import java.io.OutputStream; 21 import java.security.Key; 22 import java.security.KeyStoreSpi; 23 import java.security.cert.Certificate; 24 import java.util.Collections; 25 import java.util.Date; 26 import java.util.Enumeration; 27 28 /** 29 * A KeyStoreSpi wrapper for the TrustedCertificateStore. 30 */ 31 public final class TrustedCertificateKeyStoreSpi extends KeyStoreSpi { 32 33 private final TrustedCertificateStore store = new TrustedCertificateStore(); 34 35 @Override engineGetKey(String alias, char[] password)36 public Key engineGetKey(String alias, char[] password) { 37 if (alias == null) { 38 throw new NullPointerException("alias == null"); 39 } 40 return null; 41 } 42 43 @Override engineGetCertificateChain(String alias)44 public Certificate[] engineGetCertificateChain(String alias) { 45 if (alias == null) { 46 throw new NullPointerException("alias == null"); 47 } 48 return null; 49 } 50 51 @Override engineGetCertificate(String alias)52 public Certificate engineGetCertificate(String alias) { 53 return store.getCertificate(alias); 54 } 55 56 @Override engineGetCreationDate(String alias)57 public Date engineGetCreationDate(String alias) { 58 return store.getCreationDate(alias); 59 } 60 61 @Override engineSetKeyEntry( String alias, Key key, char[] password, Certificate[] chain)62 public void engineSetKeyEntry( 63 String alias, Key key, char[] password, Certificate[] chain) { 64 throw new UnsupportedOperationException(); 65 } 66 67 @Override engineSetKeyEntry(String alias, byte[] key, Certificate[] chain)68 public void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain) { 69 throw new UnsupportedOperationException(); 70 } 71 72 @Override engineSetCertificateEntry(String alias, Certificate cert)73 public void engineSetCertificateEntry(String alias, Certificate cert) { 74 if (alias == null) { 75 throw new NullPointerException("alias == null"); 76 } 77 throw new UnsupportedOperationException(); 78 } 79 80 @Override engineDeleteEntry(String alias)81 public void engineDeleteEntry(String alias) { 82 throw new UnsupportedOperationException(); 83 } 84 85 @Override engineAliases()86 public Enumeration<String> engineAliases() { 87 return Collections.enumeration(store.aliases()); 88 } 89 90 @Override engineContainsAlias(String alias)91 public boolean engineContainsAlias(String alias) { 92 return store.containsAlias(alias); 93 } 94 95 @Override engineSize()96 public int engineSize() { 97 return store.aliases().size(); 98 } 99 100 @Override engineIsKeyEntry(String alias)101 public boolean engineIsKeyEntry(String alias) { 102 if (alias == null) { 103 throw new NullPointerException("alias == null"); 104 } 105 return false; 106 } 107 108 @Override engineIsCertificateEntry(String alias)109 public boolean engineIsCertificateEntry(String alias) { 110 return engineContainsAlias(alias); 111 } 112 113 @Override engineGetCertificateAlias(Certificate c)114 public String engineGetCertificateAlias(Certificate c) { 115 return store.getCertificateAlias(c); 116 } 117 118 @Override engineStore(OutputStream stream, char[] password)119 public void engineStore(OutputStream stream, char[] password) { 120 throw new UnsupportedOperationException(); 121 } 122 123 @Override engineLoad(InputStream stream, char[] password)124 public void engineLoad(InputStream stream, char[] password) { 125 if (stream != null) { 126 throw new UnsupportedOperationException(); 127 } 128 } 129 } 130