13089Swyllys /* 23089Swyllys * CDDL HEADER START 33089Swyllys * 43089Swyllys * The contents of this file are subject to the terms of the 53089Swyllys * Common Development and Distribution License (the "License"). 63089Swyllys * You may not use this file except in compliance with the License. 73089Swyllys * 83089Swyllys * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 93089Swyllys * or http://www.opensolaris.org/os/licensing. 103089Swyllys * See the License for the specific language governing permissions 113089Swyllys * and limitations under the License. 123089Swyllys * 133089Swyllys * When distributing Covered Code, include this CDDL HEADER in each 143089Swyllys * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 153089Swyllys * If applicable, add the following below this CDDL HEADER, with the 163089Swyllys * fields enclosed by brackets "[]" replaced with your own identifying 173089Swyllys * information: Portions Copyright [yyyy] [name of copyright owner] 183089Swyllys * 193089Swyllys * CDDL HEADER END 203089Swyllys */ 213089Swyllys /* 223408Swyllys * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 233089Swyllys * Use is subject to license terms. 243089Swyllys * 253089Swyllys * 263089Swyllys * Constant definitions and function prototypes for the KMF library. 273089Swyllys * Commonly used data types are defined in "kmftypes.h". 283089Swyllys */ 293089Swyllys 303089Swyllys #ifndef _KMFAPI_H 313089Swyllys #define _KMFAPI_H 323089Swyllys 333089Swyllys #pragma ident "%Z%%M% %I% %E% SMI" 343089Swyllys 353089Swyllys #include <kmftypes.h> 363089Swyllys #include <security/cryptoki.h> 373089Swyllys 383089Swyllys #ifdef __cplusplus 393089Swyllys extern "C" { 403089Swyllys #endif 413089Swyllys 423089Swyllys /* 433089Swyllys * Setup operations. 443089Swyllys */ 455051Swyllys extern KMF_RETURN kmf_initialize(KMF_HANDLE_T *, char *, char *); 465051Swyllys extern KMF_RETURN kmf_configure_keystore(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 475051Swyllys extern KMF_RETURN kmf_finalize(KMF_HANDLE_T); 483089Swyllys 493089Swyllys /* 503089Swyllys * Key operations. 513089Swyllys */ 525051Swyllys extern KMF_RETURN kmf_create_keypair(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 533089Swyllys 545051Swyllys extern KMF_RETURN kmf_delete_key_from_keystore(KMF_HANDLE_T, int, 555051Swyllys KMF_ATTRIBUTE *); 563089Swyllys 575051Swyllys extern KMF_RETURN kmf_find_key(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 583089Swyllys 595051Swyllys extern KMF_RETURN kmf_find_prikey_by_cert(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 603089Swyllys 615051Swyllys extern KMF_RETURN kmf_store_key(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 623089Swyllys 635051Swyllys extern KMF_RETURN kmf_create_sym_key(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 643089Swyllys 655051Swyllys extern KMF_RETURN kmf_get_sym_key_value(KMF_HANDLE_T, KMF_KEY_HANDLE *, 663089Swyllys KMF_RAW_SYM_KEY *); 673089Swyllys 683089Swyllys /* 693089Swyllys * Certificate operations. 703089Swyllys */ 715051Swyllys extern KMF_RETURN kmf_find_cert(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 725051Swyllys 735051Swyllys extern KMF_RETURN kmf_encode_cert_record(KMF_X509_CERTIFICATE *, KMF_DATA *); 745051Swyllys 755051Swyllys extern KMF_RETURN kmf_import_cert(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 765051Swyllys 775051Swyllys extern KMF_RETURN kmf_store_cert(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 785051Swyllys 795051Swyllys extern KMF_RETURN kmf_delete_cert_from_keystore(KMF_HANDLE_T, int, 805051Swyllys KMF_ATTRIBUTE *); 815051Swyllys 825051Swyllys extern KMF_RETURN kmf_validate_cert(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 835051Swyllys 845051Swyllys extern KMF_RETURN kmf_create_cert_file(const KMF_DATA *, KMF_ENCODE_FORMAT, 855051Swyllys char *); 865051Swyllys 875051Swyllys extern KMF_RETURN kmf_download_cert(KMF_HANDLE_T, char *, char *, int, 885051Swyllys unsigned int, char *, KMF_ENCODE_FORMAT *); 895051Swyllys 905051Swyllys extern KMF_RETURN kmf_is_cert_file(KMF_HANDLE_T, char *, KMF_ENCODE_FORMAT *); 915051Swyllys 925051Swyllys extern KMF_RETURN kmf_check_cert_date(KMF_HANDLE_T, const KMF_DATA *); 935051Swyllys 945051Swyllys /* 955051Swyllys * Crypto operations with key or cert. 965051Swyllys */ 975051Swyllys extern KMF_RETURN kmf_encrypt(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 985051Swyllys extern KMF_RETURN kmf_decrypt(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 995051Swyllys extern KMF_RETURN kmf_sign_cert(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1005051Swyllys extern KMF_RETURN kmf_sign_data(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1015051Swyllys extern KMF_RETURN kmf_verify_cert(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1025051Swyllys extern KMF_RETURN kmf_verify_data(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1035051Swyllys 1045051Swyllys /* 1055051Swyllys * CRL operations. 1065051Swyllys */ 1075051Swyllys extern KMF_RETURN kmf_import_crl(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1085051Swyllys extern KMF_RETURN kmf_delete_crl(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1095051Swyllys extern KMF_RETURN kmf_list_crl(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1105051Swyllys extern KMF_RETURN kmf_find_crl(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1115051Swyllys extern KMF_RETURN kmf_find_cert_in_crl(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 1125051Swyllys extern KMF_RETURN kmf_verify_crl_file(KMF_HANDLE_T, char *, KMF_DATA *); 1135051Swyllys extern KMF_RETURN kmf_check_crl_date(KMF_HANDLE_T, char *); 1145051Swyllys extern KMF_RETURN kmf_download_crl(KMF_HANDLE_T, char *, char *, 1155051Swyllys int, unsigned int, char *, KMF_ENCODE_FORMAT *); 1165051Swyllys extern KMF_RETURN kmf_is_crl_file(KMF_HANDLE_T, char *, KMF_ENCODE_FORMAT *); 1175051Swyllys 1185051Swyllys /* 1195051Swyllys * CSR operations. 1205051Swyllys */ 1215051Swyllys extern KMF_RETURN kmf_create_csr_file(KMF_DATA *, KMF_ENCODE_FORMAT, char *); 1225051Swyllys extern KMF_RETURN kmf_set_csr_pubkey(KMF_HANDLE_T, 1235051Swyllys KMF_KEY_HANDLE *, KMF_CSR_DATA *); 1245051Swyllys extern KMF_RETURN kmf_set_csr_version(KMF_CSR_DATA *, uint32_t); 1255051Swyllys extern KMF_RETURN kmf_set_csr_subject(KMF_CSR_DATA *, KMF_X509_NAME *); 1265051Swyllys extern KMF_RETURN kmf_set_csr_extn(KMF_CSR_DATA *, KMF_X509_EXTENSION *); 1275051Swyllys extern KMF_RETURN kmf_set_csr_sig_alg(KMF_CSR_DATA *, KMF_ALGORITHM_INDEX); 1285051Swyllys extern KMF_RETURN kmf_set_csr_subject_altname(KMF_CSR_DATA *, char *, 1295051Swyllys int, KMF_GENERALNAMECHOICES); 1305051Swyllys extern KMF_RETURN kmf_set_csr_ku(KMF_CSR_DATA *, int, uint16_t); 1315051Swyllys extern KMF_RETURN kmf_sign_csr(KMF_HANDLE_T, const KMF_CSR_DATA *, 1325051Swyllys KMF_KEY_HANDLE *, KMF_DATA *); 1335051Swyllys 1345051Swyllys /* 1355051Swyllys * GetCert operations. 1365051Swyllys */ 1375051Swyllys extern KMF_RETURN kmf_get_cert_extn(const KMF_DATA *, KMF_OID *, 1385051Swyllys KMF_X509_EXTENSION *); 1395051Swyllys 1405051Swyllys extern KMF_RETURN kmf_get_cert_extns(const KMF_DATA *, KMF_FLAG_CERT_EXTN, 1415051Swyllys KMF_X509_EXTENSION **, int *); 1425051Swyllys 1435051Swyllys extern KMF_RETURN kmf_get_cert_ku(const KMF_DATA *, KMF_X509EXT_KEY_USAGE *); 1445051Swyllys 1455051Swyllys extern KMF_RETURN kmf_get_cert_eku(const KMF_DATA *, KMF_X509EXT_EKU *); 1465051Swyllys 1475051Swyllys extern KMF_RETURN kmf_get_cert_basic_constraint(const KMF_DATA *, 1485051Swyllys KMF_BOOL *, KMF_X509EXT_BASICCONSTRAINTS *); 1495051Swyllys 1505051Swyllys extern KMF_RETURN kmf_get_cert_policies(const KMF_DATA *, 1515051Swyllys KMF_BOOL *, KMF_X509EXT_CERT_POLICIES *); 1525051Swyllys 1535051Swyllys extern KMF_RETURN kmf_get_cert_auth_info_access(const KMF_DATA *, 1545051Swyllys KMF_X509EXT_AUTHINFOACCESS *); 1555051Swyllys 1565051Swyllys extern KMF_RETURN kmf_get_cert_crl_dist_pts(const KMF_DATA *, 1575051Swyllys KMF_X509EXT_CRLDISTPOINTS *); 1585051Swyllys 1595051Swyllys extern KMF_RETURN kmf_get_cert_version_str(KMF_HANDLE_T, const KMF_DATA *, 1605051Swyllys char **); 1615051Swyllys 1625051Swyllys extern KMF_RETURN kmf_get_cert_subject_str(KMF_HANDLE_T, const KMF_DATA *, 1635051Swyllys char **); 1645051Swyllys 1655051Swyllys extern KMF_RETURN kmf_get_cert_issuer_str(KMF_HANDLE_T, const KMF_DATA *, 1665051Swyllys char **); 1675051Swyllys 1685051Swyllys extern KMF_RETURN kmf_get_cert_serial_str(KMF_HANDLE_T, const KMF_DATA *, 1695051Swyllys char **); 1705051Swyllys 1715051Swyllys extern KMF_RETURN kmf_get_cert_start_date_str(KMF_HANDLE_T, const KMF_DATA *, 1725051Swyllys char **); 1735051Swyllys 1745051Swyllys extern KMF_RETURN kmf_get_cert_end_date_str(KMF_HANDLE_T, const KMF_DATA *, 1755051Swyllys char **); 1765051Swyllys 1775051Swyllys extern KMF_RETURN kmf_get_cert_pubkey_alg_str(KMF_HANDLE_T, const KMF_DATA *, 1785051Swyllys char **); 1795051Swyllys 1805051Swyllys extern KMF_RETURN kmf_get_cert_sig_alg_str(KMF_HANDLE_T, const KMF_DATA *, 1815051Swyllys char **); 1825051Swyllys 1835051Swyllys extern KMF_RETURN kmf_get_cert_pubkey_str(KMF_HANDLE_T, const KMF_DATA *, 1845051Swyllys char **); 1855051Swyllys 1865051Swyllys extern KMF_RETURN kmf_get_cert_email_str(KMF_HANDLE_T, const KMF_DATA *, 1875051Swyllys char **); 1885051Swyllys 1895051Swyllys extern KMF_RETURN kmf_get_cert_extn_str(KMF_HANDLE_T, const KMF_DATA *, 1905051Swyllys KMF_PRINTABLE_ITEM, char **); 1915051Swyllys 1925051Swyllys extern KMF_RETURN kmf_get_cert_id_data(const KMF_DATA *, KMF_DATA *); 1935051Swyllys 1945051Swyllys extern KMF_RETURN kmf_get_cert_id_str(const KMF_DATA *, char **); 1955051Swyllys 1965051Swyllys extern KMF_RETURN kmf_get_cert_validity(const KMF_DATA *, time_t *, time_t *); 1975051Swyllys 1985051Swyllys 1995051Swyllys /* 2005051Swyllys * SetCert operations 2015051Swyllys */ 2025051Swyllys extern KMF_RETURN kmf_set_cert_pubkey(KMF_HANDLE_T, KMF_KEY_HANDLE *, 2035051Swyllys KMF_X509_CERTIFICATE *); 2045051Swyllys 2055051Swyllys extern KMF_RETURN kmf_set_cert_subject(KMF_X509_CERTIFICATE *, 2065051Swyllys KMF_X509_NAME *); 2075051Swyllys 2085051Swyllys extern KMF_RETURN kmf_set_cert_ku(KMF_X509_CERTIFICATE *, int, uint16_t); 2095051Swyllys 2105051Swyllys extern KMF_RETURN kmf_set_cert_issuer(KMF_X509_CERTIFICATE *, 2115051Swyllys KMF_X509_NAME *); 2125051Swyllys 2135051Swyllys extern KMF_RETURN kmf_set_cert_sig_alg(KMF_X509_CERTIFICATE *, 2145051Swyllys KMF_ALGORITHM_INDEX); 2155051Swyllys 2165051Swyllys extern KMF_RETURN kmf_set_cert_validity(KMF_X509_CERTIFICATE *, 2175051Swyllys time_t, uint32_t); 2185051Swyllys 2195051Swyllys extern KMF_RETURN kmf_set_cert_serial(KMF_X509_CERTIFICATE *, 2205051Swyllys KMF_BIGINT *); 2215051Swyllys 2225051Swyllys extern KMF_RETURN kmf_set_cert_version(KMF_X509_CERTIFICATE *, uint32_t); 2235051Swyllys 2245051Swyllys extern KMF_RETURN kmf_set_cert_issuer_altname(KMF_X509_CERTIFICATE *, 2255051Swyllys int, KMF_GENERALNAMECHOICES, char *); 2265051Swyllys 2275051Swyllys extern KMF_RETURN kmf_set_cert_subject_altname(KMF_X509_CERTIFICATE *, 2285051Swyllys int, KMF_GENERALNAMECHOICES, char *); 2295051Swyllys 2305051Swyllys extern KMF_RETURN kmf_add_cert_eku(KMF_X509_CERTIFICATE *, KMF_OID *, int); 2315051Swyllys 2325051Swyllys extern KMF_RETURN kmf_set_cert_extn(KMF_X509_CERTIFICATE *, 2335051Swyllys KMF_X509_EXTENSION *); 2345051Swyllys 2355051Swyllys extern KMF_RETURN kmf_set_cert_basic_constraint(KMF_X509_CERTIFICATE *, 2365051Swyllys KMF_BOOL, KMF_X509EXT_BASICCONSTRAINTS *); 2375051Swyllys 2385051Swyllys 2395051Swyllys /* 2405051Swyllys * PK12 operations 2415051Swyllys */ 2425051Swyllys extern KMF_RETURN kmf_export_pk12(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 2435051Swyllys 2445051Swyllys extern KMF_RETURN kmf_build_pk12(KMF_HANDLE_T, int, KMF_X509_DER_CERT *, 2455051Swyllys int, KMF_KEY_HANDLE *, KMF_CREDENTIAL *, char *); 2465051Swyllys 2475051Swyllys extern KMF_RETURN kmf_import_objects(KMF_HANDLE_T, char *, KMF_CREDENTIAL *, 248*5536Swyllys KMF_X509_DER_CERT **, int *, KMF_RAW_KEY_DATA **, int *); 2495051Swyllys 2505051Swyllys /* 2515051Swyllys * OCSP operations 2525051Swyllys */ 2535051Swyllys extern KMF_RETURN kmf_get_ocsp_for_cert(KMF_HANDLE_T, KMF_DATA *, KMF_DATA *, 2545051Swyllys KMF_DATA *); 2555051Swyllys 2565051Swyllys extern KMF_RETURN kmf_create_ocsp_request(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 2575051Swyllys 2585051Swyllys extern KMF_RETURN kmf_get_encoded_ocsp_response(KMF_HANDLE_T, char *, 2595051Swyllys char *, int, char *, int, char *, unsigned int); 2605051Swyllys 2615051Swyllys extern KMF_RETURN kmf_get_ocsp_status_for_cert(KMF_HANDLE_T, int, 2625051Swyllys KMF_ATTRIBUTE *); 2635051Swyllys 2645051Swyllys /* 2655051Swyllys * Policy Operations 2665051Swyllys */ 2675051Swyllys extern KMF_RETURN kmf_set_policy(KMF_HANDLE_T, char *, char *); 2685051Swyllys 2695051Swyllys /* 2705051Swyllys * Error handling. 2715051Swyllys */ 2725051Swyllys extern KMF_RETURN kmf_get_plugin_error_str(KMF_HANDLE_T, char **); 2735051Swyllys extern KMF_RETURN kmf_get_kmf_error_str(KMF_RETURN, char **); 2745051Swyllys 2755051Swyllys /* 2765051Swyllys * Miscellaneous 2775051Swyllys */ 2785051Swyllys extern KMF_RETURN kmf_dn_parser(char *, KMF_X509_NAME *); 2795051Swyllys extern KMF_RETURN kmf_read_input_file(KMF_HANDLE_T, char *, KMF_DATA *); 2805051Swyllys extern KMF_RETURN kmf_der_to_pem(KMF_OBJECT_TYPE, unsigned char *, 2815051Swyllys int, unsigned char **, int *); 2825051Swyllys extern KMF_RETURN kmf_pem_to_der(unsigned char *, int, unsigned char **, int *); 2835051Swyllys extern char *kmf_oid_to_string(KMF_OID *); 2845051Swyllys extern KMF_RETURN kmf_string_to_oid(char *, KMF_OID *); 2855051Swyllys extern int kmf_compare_rdns(KMF_X509_NAME *, KMF_X509_NAME *); 2865051Swyllys extern KMF_RETURN kmf_get_file_format(char *, KMF_ENCODE_FORMAT *); 2875051Swyllys extern uint32_t kmf_string_to_ku(char *); 2885051Swyllys extern char *kmf_ku_to_string(uint32_t); 2895051Swyllys extern KMF_RETURN kmf_hexstr_to_bytes(unsigned char *, unsigned char **, 2905051Swyllys size_t *); 2915051Swyllys 2925051Swyllys #define KMF_CompareRDNs kmf_compare_rdns 2935051Swyllys 2945051Swyllys /* 2955051Swyllys * Memory cleanup operations 2965051Swyllys */ 2975051Swyllys extern void kmf_free_dn(KMF_X509_NAME *); 2985051Swyllys extern void kmf_free_kmf_cert(KMF_HANDLE_T, KMF_X509_DER_CERT *); 2995051Swyllys extern void kmf_free_data(KMF_DATA *); 3005051Swyllys extern void kmf_free_algoid(KMF_X509_ALGORITHM_IDENTIFIER *); 3015051Swyllys extern void kmf_free_extn(KMF_X509_EXTENSION *); 3025051Swyllys extern void kmf_free_tbs_csr(KMF_TBS_CSR *); 3035051Swyllys extern void kmf_free_signed_csr(KMF_CSR_DATA *); 3045051Swyllys extern void kmf_free_tbs_cert(KMF_X509_TBS_CERT *); 3055051Swyllys extern void kmf_free_signed_cert(KMF_X509_CERTIFICATE *); 3065051Swyllys extern void kmf_free_str(char *); 3075051Swyllys extern void kmf_free_eku(KMF_X509EXT_EKU *); 3085051Swyllys extern void kmf_free_spki(KMF_X509_SPKI *); 3095051Swyllys extern void kmf_free_kmf_key(KMF_HANDLE_T, KMF_KEY_HANDLE *); 3105051Swyllys extern void kmf_free_bigint(KMF_BIGINT *); 3115051Swyllys extern void kmf_free_raw_key(KMF_RAW_KEY_DATA *); 3125051Swyllys extern void kmf_free_raw_sym_key(KMF_RAW_SYM_KEY *); 3135051Swyllys extern void kmf_free_crl_dist_pts(KMF_X509EXT_CRLDISTPOINTS *); 3145051Swyllys 3155051Swyllys /* APIs for PKCS#11 token */ 3165051Swyllys extern KMF_RETURN kmf_pk11_token_lookup(KMF_HANDLE_T, char *, CK_SLOT_ID *); 3175051Swyllys extern KMF_RETURN kmf_set_token_pin(KMF_HANDLE_T, int, KMF_ATTRIBUTE *); 3185051Swyllys extern CK_SESSION_HANDLE kmf_get_pk11_handle(KMF_HANDLE_T); 3195051Swyllys 3205051Swyllys /* 3215051Swyllys * Attribute management routines. 3225051Swyllys */ 3235051Swyllys int kmf_find_attr(KMF_ATTR_TYPE, KMF_ATTRIBUTE *, int); 3245051Swyllys void *kmf_get_attr_ptr(KMF_ATTR_TYPE, KMF_ATTRIBUTE *, int); 3255051Swyllys KMF_RETURN kmf_get_attr(KMF_ATTR_TYPE, KMF_ATTRIBUTE *, int, void *, 3265051Swyllys uint32_t *); 3275051Swyllys KMF_RETURN kmf_get_string_attr(KMF_ATTR_TYPE, KMF_ATTRIBUTE *, int, char **); 3285051Swyllys KMF_RETURN kmf_set_attr(KMF_ATTRIBUTE *, int, KMF_ATTR_TYPE, void *, uint32_t); 3295051Swyllys void kmf_set_attr_at_index(KMF_ATTRIBUTE *, int, KMF_ATTR_TYPE, 3305051Swyllys void *, uint32_t); 3315051Swyllys 3325051Swyllys /* 3335051Swyllys * Legacy support only - do not use these APIs - they can be removed at any 3345051Swyllys * time. 3355051Swyllys */ 3365051Swyllys extern KMF_RETURN KMF_ConfigureKeystore(KMF_HANDLE_T, KMF_CONFIG_PARAMS *); 3375051Swyllys extern KMF_RETURN KMF_CreateCSRFile(KMF_DATA *, KMF_ENCODE_FORMAT, char *); 3385051Swyllys extern KMF_RETURN KMF_CreateKeypair(KMF_HANDLE_T, 3395051Swyllys KMF_CREATEKEYPAIR_PARAMS *, KMF_KEY_HANDLE *, KMF_KEY_HANDLE *); 3405051Swyllys extern KMF_RETURN KMF_DNParser(char *, KMF_X509_NAME *); 3415051Swyllys extern KMF_RETURN KMF_Finalize(KMF_HANDLE_T); 3423089Swyllys extern KMF_RETURN KMF_FindCert(KMF_HANDLE_T, KMF_FINDCERT_PARAMS *, 3433089Swyllys KMF_X509_DER_CERT *, uint32_t *); 3445051Swyllys extern KMF_RETURN KMF_FindKey(KMF_HANDLE_T, KMF_FINDKEY_PARAMS *, 3455051Swyllys KMF_KEY_HANDLE *, uint32_t *); 3465051Swyllys extern void KMF_FreeData(KMF_DATA *); 3475051Swyllys extern void KMF_FreeKMFCert(KMF_HANDLE_T, KMF_X509_DER_CERT *); 3485051Swyllys extern void KMF_FreeKMFKey(KMF_HANDLE_T, KMF_KEY_HANDLE *); 3495051Swyllys extern void KMF_FreeSignedCSR(KMF_CSR_DATA *); 3505051Swyllys extern KMF_RETURN KMF_GetCertIDString(const KMF_DATA *, char **); 3515051Swyllys extern KMF_RETURN KMF_GetCertIssuerNameString(KMF_HANDLE_T, 3525051Swyllys const KMF_DATA *, char **); 3535051Swyllys extern KMF_RETURN KMF_GetCertSubjectNameString(KMF_HANDLE_T, 3545051Swyllys const KMF_DATA *, char **); 3555051Swyllys extern KMF_RETURN KMF_GetKMFErrorString(KMF_RETURN, char **); 3565051Swyllys extern KMF_RETURN KMF_Initialize(KMF_HANDLE_T *, char *, char *); 3575051Swyllys extern KMF_RETURN KMF_ReadInputFile(KMF_HANDLE_T, char *, KMF_DATA *); 3585051Swyllys extern KMF_RETURN KMF_SetCSRPubKey(KMF_HANDLE_T, KMF_KEY_HANDLE *, 3595051Swyllys KMF_CSR_DATA *); 3605051Swyllys extern KMF_RETURN KMF_SetCSRSignatureAlgorithm(KMF_CSR_DATA *, 3615051Swyllys KMF_ALGORITHM_INDEX); 3625051Swyllys extern KMF_RETURN KMF_SetCSRSubjectName(KMF_CSR_DATA *, KMF_X509_NAME *); 3635051Swyllys extern KMF_RETURN KMF_SetCSRVersion(KMF_CSR_DATA *, uint32_t); 3645051Swyllys extern KMF_RETURN KMF_SignCSR(KMF_HANDLE_T, const KMF_CSR_DATA *, 3653089Swyllys KMF_KEY_HANDLE *, KMF_DATA *); 3665051Swyllys extern KMF_RETURN KMF_SignDataWithKey(KMF_HANDLE_T, KMF_KEY_HANDLE *, 3675051Swyllys KMF_OID *, KMF_DATA *, KMF_DATA *); 3683089Swyllys extern KMF_RETURN KMF_VerifyCertWithCert(KMF_HANDLE_T, const KMF_DATA *, 3693089Swyllys const KMF_DATA *); 3703754Swyllys extern KMF_RETURN KMF_VerifyDataWithCert(KMF_HANDLE_T, 3713754Swyllys KMF_KEYSTORE_TYPE, KMF_ALGORITHM_INDEX, KMF_DATA *, KMF_DATA *, 3723089Swyllys const KMF_DATA *); 3733089Swyllys 3743089Swyllys #ifdef __cplusplus 3753089Swyllys } 3763089Swyllys #endif 3773089Swyllys #endif /* _KMFAPI_H */ 378