1 /* 2 * Copyright (c) 2015-2016,2019-2020 Yubico AB 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above 13 * copyright notice, this list of conditions and the following 14 * disclaimer in the documentation and/or other materials provided 15 * with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * 29 */ 30 #ifndef YUBICO_PIV_TOOL_TOKEN_H 31 #define YUBICO_PIV_TOOL_TOKEN_H 32 33 #include "pkcs11y.h" 34 #include "obj_types.h" 35 #include "ykpiv.h" 36 37 CK_RV get_token_model(ykpiv_state *state, CK_UTF8CHAR_PTR str, CK_ULONG len); 38 CK_RV get_token_serial(ykpiv_state *state, CK_CHAR_PTR str, CK_ULONG len); 39 CK_RV get_token_version(ykpiv_state *state, CK_VERSION_PTR version); 40 CK_RV get_token_label(ykpiv_state *state, CK_CHAR_PTR str, CK_ULONG len); 41 42 CK_RV get_token_mechanism_list(CK_MECHANISM_TYPE_PTR mec, CK_ULONG_PTR num); 43 CK_RV get_token_mechanism_info(CK_MECHANISM_TYPE mec, CK_MECHANISM_INFO_PTR info); 44 45 CK_RV get_token_object_ids(const piv_obj_id_t **obj, CK_ULONG *num); 46 CK_RV token_change_pin(ykpiv_state *state, CK_USER_TYPE user_type, CK_UTF8CHAR_PTR pOldPin, CK_ULONG ulOldLen, 47 CK_UTF8CHAR_PTR pNewPin, CK_ULONG ulNewLen); 48 49 CK_RV token_login(ykpiv_state *state, CK_USER_TYPE user, CK_UTF8CHAR_PTR pin, CK_ULONG pin_len); 50 CK_RV token_generate_key(ykpiv_state *state, CK_BYTE algorithm, CK_BYTE key, CK_BYTE_PTR cert_data, CK_ULONG_PTR cert_len); 51 CK_RV token_import_cert(ykpiv_state *state, CK_ULONG cert_id, CK_BYTE_PTR in, CK_ULONG in_len); 52 CK_RV token_import_private_key(ykpiv_state *state, CK_BYTE key_id, 53 CK_BYTE_PTR p, CK_ULONG p_len, 54 CK_BYTE_PTR q, CK_ULONG q_len, 55 CK_BYTE_PTR dp, CK_ULONG dp_len, 56 CK_BYTE_PTR dq, CK_ULONG dq_len, 57 CK_BYTE_PTR qinv, CK_ULONG qinv_len, 58 CK_BYTE_PTR ec_data, CK_ULONG ec_data_len); 59 CK_RV token_delete_cert(ykpiv_state *state, CK_ULONG cert_id); 60 61 #endif //YUBICO_PIV_TOOL_TOKEN_H 62