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