14a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin/* 24a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * Copyright (C) 2015 The Android Open Source Project 34a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * 44a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * Licensed under the Apache License, Version 2.0 (the "License"); 54a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * you may not use this file except in compliance with the License. 64a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * You may obtain a copy of the License at 74a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * 84a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * http://www.apache.org/licenses/LICENSE-2.0 94a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * 104a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * Unless required by applicable law or agreed to in writing, software 114a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * distributed under the License is distributed on an "AS IS" BASIS, 124a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * See the License for the specific language governing permissions and 144a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * limitations under the License. 154a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin */ 164a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin 174a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubinpackage android.security.keystore; 184a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin 194a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubinimport java.security.PrivateKey; 204a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubinimport java.security.interfaces.ECKey; 214a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubinimport java.security.spec.ECParameterSpec; 224a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin 234a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin/** 244a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * EC private key (instance of {@link PrivateKey} and {@link ECKey}) backed by keystore. 254a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * 264a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin * @hide 274a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin */ 284a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubinpublic class AndroidKeyStoreECPrivateKey extends AndroidKeyStorePrivateKey implements ECKey { 294a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin private final ECParameterSpec mParams; 304a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin 313876b1be27e3aefde9a72eb2e4f856e94fc5f946Alex Klyubin public AndroidKeyStoreECPrivateKey(String alias, int uid, ECParameterSpec params) { 323876b1be27e3aefde9a72eb2e4f856e94fc5f946Alex Klyubin super(alias, uid, KeyProperties.KEY_ALGORITHM_EC); 334a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin mParams = params; 344a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin } 354a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin 364a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin @Override 374a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin public ECParameterSpec getParams() { 384a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin return mParams; 394a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin } 404a0ff7ca984d29bd34b02e54441957cad65e8b53Alex Klyubin} 41