15a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker/* 25a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * Copyright (C) 2015 The Android Open Source Project 35a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * 45a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * Licensed under the Apache License, Version 2.0 (the "License"); 55a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * you may not use this file except in compliance with the License. 65a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * You may obtain a copy of the License at 75a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * 85a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * http://www.apache.org/licenses/LICENSE-2.0 95a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * 105a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * Unless required by applicable law or agreed to in writing, software 115a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * distributed under the License is distributed on an "AS IS" BASIS, 125a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * See the License for the specific language governing permissions and 145a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * limitations under the License. 155a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker */ 165a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker 175a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubakerpackage android.security.net.config; 185a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker 195a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubakerimport android.util.Pair; 205a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubakerimport java.security.KeyStore; 215a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubakerimport java.security.KeyStoreException; 225a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubakerimport java.util.Set; 235a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker 245a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker/** 255a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * {@link ConfigSource} with a single default config based on a {@link KeyStore} and no per domain 265a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker * configs. 275a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker */ 285a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubakerclass KeyStoreConfigSource implements ConfigSource { 295a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker private final NetworkSecurityConfig mConfig; 305a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker 315a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker public KeyStoreConfigSource(KeyStore ks) { 325a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker mConfig = new NetworkSecurityConfig.Builder() 335a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker .addCertificatesEntryRef( 345a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker // Use the KeyStore and do not override pins (of which there are none). 355a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker new CertificatesEntryRef(new KeyStoreCertificateSource(ks), false)) 365a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker .build(); 375a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker } 385a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker 395a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker @Override 405a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker public Set<Pair<Domain, NetworkSecurityConfig>> getPerDomainConfigs() { 415a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker return null; 425a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker } 435a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker 445a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker @Override 455a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker public NetworkSecurityConfig getDefaultConfig() { 465a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker return mConfig; 475a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker } 485a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker} 495a1078f40dd511901c33ccf78be6e2d5081d6637Chad Brubaker 50