Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ./../../../../../././../usr/include/kmip_types.h
Real path: /usr/include/kmip_types.h
Zurück
/* * Copyright (c) 2014, 2022, Oracle and/or its affiliates. */ #ifndef _KMIP_TYPES_H_ #define _KMIP_TYPES_H_ #ifdef __cplusplus extern "C" { #endif #include <sys/types.h> #define KMIP_TYPE_STRUCT 0x01 /* variable, multiple of 8 bytes */ #define KMIP_TYPE_INT 0x02 /* 32-bit */ #define KMIP_TYPE_LONG 0x03 /* 64-bit */ #define KMIP_TYPE_BIGINT 0x04 /* variable, multiple of 8 bytes */ #define KMIP_TYPE_ENUM 0x05 /* 32-bit */ #define KMIP_TYPE_BOOLEAN 0x06 /* 64-bit */ #define KMIP_TYPE_TEXT_STR 0x07 /* variable */ #define KMIP_TYPE_BYTE_STR 0x08 /* variable */ #define KMIP_TYPE_DATE 0x09 /* 64-bit */ #define KMIP_TYPE_INTERVAL 0x0A /* 32-bit */ /* * Some inner structures could be empty and they should not be sent as a part of * the message. Usually it is decided during encoding, but in some cases like * derive operation it is not simple to decide. Then we need mechanism, how to * pack empty structure, when deeper encoding function does not send anything. * KMIP_TYPE_PACK flag in data type indicates that empty structure should be * removed from the encoded message. */ #define KMIP_TYPE_MASK 0x7f #define KMIP_TYPE_PACK 0x80 /* KMIP Boolean */ #define KMIP_TRUE 0x0000000000000001 #define KMIP_FALSE 0x0000000000000000 #define KMIP_VER_UNDEFINED 0xffffffffu /* * Oasis KMIP Enumeration Definitions */ /* Credential Types */ typedef enum { KMIP_USER = 1, KMIP_DEVICE, /* 1.2 */ KMIP_ATTESTATION } kmip_cred_type_t; /* Key Compression Types */ typedef enum { KMIP_ECPUB_UN = 1, KMIP_ECPUB_PRIME, KMIP_ECPUB_CHAR2, KMIP_ECPUB_HYBRID } kmip_compress_type_t; /* Key Format Types */ typedef enum { KMIP_FMT_RAW = 1, KMIP_FMT_OPAQUE, KMIP_FMT_PKCS1, KMIP_FMT_PKCS8, KMIP_FMT_X509, KMIP_FMT_EC_PRIVATE, KMIP_FMT_TRANSPARENT_SYMMETRIC, KMIP_FMT_TRANSPARENT_DSA_PRIVATE, KMIP_FMT_TRANSPARENT_DSA_PUBLIC, KMIP_FMT_TRANSPARENT_RSA_PRIVATE, KMIP_FMT_TRANSPARENT_RSA_PUBLIC, KMIP_FMT_TRANSPARENT_DH_PRIVATE, KMIP_FMT_TRANSPARENT_DH_PUBLIC, /* 1.2 */ KMIP_FMT_TRANSPARENT_ECDSA_PRIVATE, /* 1.3 deprecated, 2.0 removed */ KMIP_FMT_TRANSPARENT_ECDSA_PUBLIC, /* 1.3 deprecated, 2.0 removed */ KMIP_FMT_TRANSPARENT_ECDH_PRIVATE, /* 1.3 deprecated, 2.0 removed */ KMIP_FMT_TRANSPARENT_ECDH_PUBLIC, /* 1.3 deprecated, 2.0 removed */ KMIP_FMT_TRANSPARENT_ECMQV_PRIVATE, /* 1.3 deprecated, 2.0 removed */ KMIP_FMT_TRANSPARENT_ECMQV_PUBLIC, /* 1.3 deprecated, 2.0 removed */ /* 1.3 */ KMIP_FMT_TRANSPARENT_EC_PRIVATE, KMIP_FMT_TRANSPARENT_EC_PUBLIC, /* 1.4 */ KMIP_FMT_PKCS12 } kmip_key_fmt_t; /* Recommend Curves for ECDSA, ECDH, and ECMQV */ typedef enum { KMIP_P192 = 1, KMIP_K163, KMIP_B163, KMIP_P224, KMIP_K233, KMIP_B233, KMIP_P256, KMIP_K283, KMIP_B283, KMIP_P384, KMIP_K409, KMIP_B409, KMIP_P521, KMIP_K571, KMIP_B571, /* 1.2 */ KMIP_SECP112R1, KMIP_SECP112R2, KMIP_SECP128R1, KMIP_SECP128R2, KMIP_SECP160K1, KMIP_SECP160R1, KMIP_SECP160R2, KMIP_SECP192K1, KMIP_SECP224K1, KMIP_SECP256K1, KMIP_SECT113R1, KMIP_SECT113R2, KMIP_SECT131R1, KMIP_SECT131R2, KMIP_SECT163R1, KMIP_SECT193R1, KMIP_SECT193R2, KMIP_SECT239K1, KMIP_ANSIX9P192V2, KMIP_ANSIX9P192V3, KMIP_ANSIX9P239V1, KMIP_ANSIX9P239V2, KMIP_ANSIX9P239V3, KMIP_ANSIX9C2PNB163V1, KMIP_ANSIX9C2PNB163V2, KMIP_ANSIX9C2PNB163V3, KMIP_ANSIX9C2PNB176V1, KMIP_ANSIX9C2TNB191V1, KMIP_ANSIX9C2TNB191V2, KMIP_ANSIX9C2TNB191V3, KMIP_ANSIX9C2PNB208W1, KMIP_ANSIX9C2TNB239V1, KMIP_ANSIX9C2TNB239V2, KMIP_ANSIX9C2TNB239V3, KMIP_ANSIX9C2PNB272W1, KMIP_ANSIX9C2PNB304W1, KMIP_ANSIX9C2TNB359V1, KMIP_ANSIX9C2PNB368W1, KMIP_ANSIX9C2TNB431R1, KMIP_BRAINPOOLP160R1, KMIP_BRAINPOOLP160T1, KMIP_BRAINPOOLP192R1, KMIP_BRAINPOOLP192T1, KMIP_BRAINPOOLP224R1, KMIP_BRAINPOOLP224T1, KMIP_BRAINPOOLP256R1, KMIP_BRAINPOOLP256T1, KMIP_BRAINPOOLP320R1, KMIP_BRAINPOOLP320T1, KMIP_BRAINPOOLP384R1, KMIP_BRAINPOOLP384T1, KMIP_BRAINPOOLP512R1, KMIP_BRAINPOOLP512T1 } kmip_curve_t; /* Wrapping Methods */ typedef enum { KMIP_WRAP_ENCRYPT = 1, KMIP_WRAP_MAC, KMIP_WRAP_ENCRYPT_THEN_MAC, KMIP_WRAP_MAC_THEN_ENCRYPT, KMIP_WRAP_TR31 } kmip_wrap_method_t; /* Certificate Types */ typedef enum { KMIP_CERT_X509 = 1, KMIP_CERT_PGP /* 1.2 deprecated */ } kmip_cert_type_t; /* Digital Signature Algorithm */ typedef enum { KMIP_MD2_RSA = 1, KMIP_MD5_RSA, KMIP_SHA1_RSA, KMIP_SHA224_RSA, KMIP_SHA256_RSA, KMIP_SHA384_RSA, KMIP_SHA512_RSA, KMIP_RSASSA_PSS, KMIP_DSA_SHA1, KMIP_DSA_SHA224, KMIP_DSA_SHA256, KMIP_ECDSA_SHA1, KMIP_ECDSA_SHA224, KMIP_ECDSA_SHA256, KMIP_ECDSA_SHA384, KMIP_ECDSA_SHA512, /* 1.4 */ KMIP_SHA3_256_RSA_ENCRYPT, KMIP_SHA3_384_RSA_ENCRYPT, KMIP_SHA3_512_RSA_ENCRYPT } kmip_sig_algo_t; /* Split Key Method */ typedef enum { KMIP_XOR = 1, KMIP_POLY_GF_16, /* 2^16 */ KMIP_POLY_PRIME, /* 1.2 */ KMIP_POLY_GF_8 /* 2^8 */ } kmip_split_key_method_t; /* Secret Data Type */ typedef enum { KMIP_PASSWORD = 1, KMIP_SEED } kmip_secret_data_type_t; /* Opaque Data Type */ typedef enum { KMIP_OPAQUE_TYPE_NONE } kmip_opaque_data_type_t; /* Name Type */ typedef enum { KMIP_NAME_TYPE_STRING = 1, KMIP_NAME_TYPE_URI } kmip_name_type_t; /* Object Type Enumeration */ typedef enum { KMIP_OBJ_NONE, KMIP_OBJ_CERTIFICATE, KMIP_OBJ_SYMMETRIC_KEY, KMIP_OBJ_PUBLIC_KEY, KMIP_OBJ_PRIVATE_KEY, KMIP_OBJ_SPLIT_KEY, KMIP_OBJ_TEMPLATE, /* 1.3 deprecated, 2.0 removed */ KMIP_OBJ_SECRET_DATA, KMIP_OBJ_OPAQUE, /* 1.2 */ KMIP_OBJ_PGP_KEY, KMIP_OBJ_TYPE_MAX = KMIP_OBJ_PGP_KEY } kmip_object_type_t; /* Cryptographic Algorithm */ typedef enum { KMIP_CRYPT_DES = 1, KMIP_CRYPT_3DES, KMIP_CRYPT_AES, KMIP_CRYPT_RSA, KMIP_CRYPT_DSA, KMIP_CRYPT_ECDSA, KMIP_CRYPT_HMAC_SHA1, KMIP_CRYPT_HMAC_SHA224, KMIP_CRYPT_HMAC_SHA256, KMIP_CRYPT_HMAC_SHA384, KMIP_CRYPT_HMAC_SHA512, KMIP_CRYPT_HMAC_MD5, KMIP_CRYPT_DH, KMIP_CRYPT_ECDH, KMIP_CRYPT_ECMQV, KMIP_CRYPT_BLOWFISH, KMIP_CRYPT_CAMELLIA, KMIP_CRYPT_CAST5, KMIP_CRYPT_IDEA, KMIP_CRYPT_MARS, KMIP_CRYPT_RC2, KMIP_CRYPT_RC4, KMIP_CRYPT_RC5, KMIP_CRYPT_SKIPJACK, KMIP_CRYPT_TWOFISH, /* 1.2 */ KMIP_CRYPT_EC, /* 1.3 */ KMIP_CRYPT_ONE_TIME_PAD, /* 1.4 */ KMIP_CRYPT_CHACHA20, KMIP_CRYPT_POLY1305, KMIP_CRYPT_CHACHA20POLY1305, KMIP_CRYPT_SHA3_224, KMIP_CRYPT_SHA3_256, KMIP_CRYPT_SHA3_384, KMIP_CRYPT_SHA3_512, KMIP_CRYPT_HMAC_SHA3_224, KMIP_CRYPT_HMAC_SHA3_256, KMIP_CRYPT_HMAC_SHA3_384, KMIP_CRYPT_HMAC_SHA3_512, KMIP_CRYPT_SHAKE_128, KMIP_CRYPT_SHAKE_256 } kmip_crypt_algo_t; /* Block Cipher Mode */ typedef enum { KMIP_CBC = 1, KMIP_ECB, KMIP_PCBC, KMIP_CFB, KMIP_OFB, KMIP_CTR, KMIP_CMAC, KMIP_CCM, KMIP_GCM, KMIP_CBC_MAC, KMIP_XTS, KMIP_AES_WRAP_PAD, KMIP_NIST_WRAP, KMIP_X9102_AESKW, KMIP_X9102_TDKW, KMIP_X9102_AKW1, KMIP_X9102_AKW2, /* 1.4 */ KMIP_AEAD } kmip_cipher_mode_t; /* Padding Method */ typedef enum { KMIP_PAD_NONE = 1, KMIP_PAD_OAEP, KMIP_PAD_PKCS5, KMIP_PAD_SSL3, KMIP_PAD_ZEROS, KMIP_PAD_ANSI_X923, KMIP_PAD_ISO_10126, KMIP_PAD_PKCS1, KMIP_PAD_X931, KMIP_PAD_PSS } kmip_pad_t; /* Hashing Algorithm */ typedef enum { KMIP_HASH_MD2 = 1, KMIP_HASH_MD4, KMIP_ASH_MD5, KMIP_HASH_SHA1, KMIP_HASH_SHA224, KMIP_HASH_SHA256, KMIP_HASH_SHA384, KMIP_HASH_SHA512, KMIP_HASH_RIPEMD_160, KMIP_HASH_TIGER, KMIP_HASH_WHIRLPOOL, /* 1.2 */ KMIP_HASH_SHA_512_224, KMIP_HASH_SHA_512_256, /* 1.4 */ KMIP_HASH_SHA3_224, KMIP_HASH_SHA3_256, KMIP_HASH_SHA3_384, KMIP_HASH_SHA3_512 } kmip_hash_t; /* Key Role Type */ typedef enum { KMIP_BDK = 1, KMIP_CVK, KMIP_DEC, KMIP_MKAC, KMIP_MKSMC, KMIP_MKSMI, KMIP_MKDAC, KMIP_MKDN, KMIP_MKCP, KMIP_MKOTH, KMIP_KEK, KMIP_MAC16609, KMIP_MAC97971, KMIP_MAC97972, KMIP_MAC97973, KMIP_MAC97974, KMIP_MAC97975, KMIP_ZPK, KMIP_PVKIBM, KMIP_PVKPVV, KMIP_PVKOTH, /* 1.4 */ KMIP_DUKPT, KMIP_IV, KMIP_TRKBK } kmip_key_role_t; /* State */ typedef enum { KMIP_PRE_ACTIVE = 1, KMIP_ACTIVE, KMIP_DEACTIVATED, KMIP_COMPROMISED, KMIP_DESTROYED, KMIP_DESTROYED_COMPROMISED } kmip_state_t; /* Revocation Reason Code */ typedef enum { KMIP_RR_UNSPECIFIED = 1, KMIP_KEY_COMPROMISE, KMIP_CA_COMPROMISE, KMIP_AFFILIATION_CHG, KMIP_SUPERSEDED, KMIP_CESSATION_OF_OP, KMIP_PRIV_WITHDRAWN } kmip_revoke_code_t; /* Link Type */ typedef enum { KMIP_LINK_CERTIFICATE = 0x101, KMIP_LINK_PUBLIC_KEY, KMIP_LINK_PRIVATE_KEY, KMIP_LINK_DERIV_BASEOBJ, KMIP_LINK_DERIV_KEY, KMIP_LINK_REPLACEMENT, KMIP_LINK_REPLACED, /* 1.2 */ KMIP_PARENT_LINK, KMIP_CHILD_LINK, KMIP_PREVIOUS_LINK, KMIP_NEXT_LINK, /* 1.4 */ KMIP_PKCS12_CERT_LINK, KMIP_PKCS12_PASS_LINK } kmip_link_type_t; /* Derivation Method */ typedef enum { KMIP_DERIV_PBKDF2 = 1, KMIP_DERIV_HASH, KMIP_DERIV_HMAC, KMIP_DERIV_ENCRYPT, KMIP_DERIV_NIST800_108C, KMIP_DERIV_NIST800_108F, KMIP_DERIV_NIST800_108DPI, /* 1.4 */ KMIP_DERIV_ASYMMETRIC_KEY } kmip_deriv_method_t; /* Certificate Request Type */ typedef enum { KMIP_CRMF = 1, KMIP_PKCS10, KMIP_PEM, KMIP_PGP /* 1.1 deprecated, 2.0 removed */ } kmip_cert_req_type_t; /* Validity Indicator */ typedef enum { KMIP_VALID = 1, KMIP_INVALID, KMIP_UNKNOWN } kmip_validity_t; /* Query Function */ typedef enum { KMIP_OPERATIONS = 1, KMIP_OBJECTS, KMIP_SERVER_INFO, KMIP_APP_NAMESPACE, KMIP_EXTENSION_LIST, KMIP_EXTENSION_MAP, /* 1.2 */ KMIP_ATTESTATION_TYPES, /* 1.3 */ KMIP_RNGS, KMIP_VALIDATIONS, KMIP_PROFILES, KMIP_CAPABILITIES, KMIP_CLIENT_REG_METHS } kmip_query_t; #define KMIP_QUERY_LAST KMIP_CLIENT_REG_METHS /* Cancellation Result */ typedef enum { KMIP_CRES_CANCELED = 1, KMIP_CRES_UNABLE, KMIP_CRES_COMPLETE, KMIP_CRES_FAILED, KMIP_CRES_UNAVAILABLE } kmip_cancel_result_t; /* Put Function */ typedef enum { KMIP_NEW = 1, KMIP_REPLACE } kmip_put_t; /* Operations */ typedef enum { KMIP_OP_NOOP, KMIP_OP_CREATE, KMIP_OP_CREATE_KEYPAIR, KMIP_OP_REGISTER, KMIP_OP_REKEY, KMIP_OP_DERIVE_KEY, KMIP_OP_CERTIFY, KMIP_OP_RECERTIFY, KMIP_OP_LOCATE, KMIP_OP_CHECK, KMIP_OP_GET, KMIP_OP_GET_ATTRS, KMIP_OP_GET_ATTRLIST, KMIP_OP_ADD_ATTR, KMIP_OP_MOD_ATTR, KMIP_OP_DEL_ATTR, KMIP_OP_OBTAIN_LEASE, KMIP_OP_GET_USAGE, KMIP_OP_ACTIVATE, KMIP_OP_REVOKE, KMIP_OP_DESTROY, KMIP_OP_ARCHIVE, KMIP_OP_RECOVER, KMIP_OP_VALIDATE, KMIP_OP_QUERY, KMIP_OP_CANCEL, KMIP_OP_POLL, KMIP_OP_NOTIFY, KMIP_OP_PUT, KMIP_OP_REKEY_KEYPAIR, KMIP_OP_DISCOVER_VERS, /* 1.2 */ KMIP_OP_ENCRYPT, KMIP_OP_DECRYPT, KMIP_OP_SIGN, KMIP_OP_SIGNATURE_VERIFY, KMIP_OP_MAC, KMIP_OP_MAC_VERIFY, KMIP_OP_RNG_RETRIEVE, KMIP_OP_RNG_SEED, KMIP_OP_HASH, KMIP_OP_CREATE_SPLIT_KEY, KMIP_OP_JOIN_SPLIT_KEY, /* 1.4 */ KMIP_OP_IMPORT, KMIP_OP_EXPORT } kmip_op_t; /* Result Status */ typedef enum { KMIP_RESULT_SUCCESS, KMIP_RESULT_FAILED, KMIP_RESULT_PENDING, KMIP_RESULT_UNDONE } kmip_result_status_t; /* Result Reason */ typedef enum { KMIP_REASON_NOTFOUND = 1, KMIP_REASON_RESPONSE_TOOBIG, KMIP_REASON_BADAUTH, KMIP_REASON_INVALID_MSG, KMIP_REASON_OP_NOTSUPP, KMIP_REASON_MISSING_DATA, KMIP_REASON_INVALID_FIELD, KMIP_REASON_FEATURE_NOTSUPP, KMIP_REASON_OP_CANCELED, KMIP_REASON_CRYPTO_FAIL, KMIP_REASON_ILLEGAL_OP, KMIP_REASON_NOPERMISSION, KMIP_REASON_OBJ_ARCHIVED, KMIP_REASON_INDEX_OOB, KMIP_REASON_APPNS_NOTSUPP, KMIP_REASON_KEY_FORMAT_NOTSUPP, KMIP_REASON_KEY_COMP_NOTSUPP, KMIP_REASON_ENCODING_OPT_ERR, /* 1.2 */ KMIP_REASON_KEY_VALUE_NOT_PRESENT, KMIP_REASON_ATTESTATION_REQUIRED, KMIP_REASON_ATTESTATION_FAILED, /* 1.4 */ KMIP_REASON_SENSITIVE, KMIP_REASON_NOT_EXCTRACTABLE, KMIP_REASON_OBJECT_ALREADY_EXISTS, KMIP_REASON_GENERAL_FAILURE = 0x100 } kmip_result_reason_t; /* Batch Error Continuation */ typedef enum { KMIP_BATCH_CONTINUE = 1, KMIP_BATCH_STOP, KMIP_BATCH_UNDO } kmip_batch_err_opt_t; /* Usage Limits Unit */ typedef enum { KMIP_BYTE = 1, KMIP_OBJECT } kmip_usage_limit_unit_t; /* Encoding Option */ typedef enum { KMIP_ENC_NONE = 1, KMIP_ENC_TTLV } kmip_encoding_t; /* Object Group Member */ typedef enum { KMIP_FRESH = 1, KMIP_DEFAULT } kmip_objgrp_member_t; /* Alternative Name (1.2) */ typedef enum { KMIP_UNINTERP_TEXT_STRING = 1, KMIP_URI, KMIP_OBJ_SERIAL_NUMBER, KMIP_EMAIL_ADDRESS, KMIP_DNS_NAME, KMIP_X500_DISTINGUISH_NAME, KMIP_IP_ADDRESS } kmip_alt_name_type_t; /* Key Value Location (1.2) */ typedef enum { KMIP_KVL_UNINTERP_TEXT_STRING = 1, KMIP_KVL_URI } kmip_key_val_location_type_t; /* Attestation (1.2) */ typedef enum { KMIP_TPM_QUOTE = 1, KMIP_TCG_INTEGRITY_REPORT, KMIP_SAML_ASSERTION } kmip_attestation_t; /* Cryptographic Usage Mask */ typedef enum { KMIP_USAGE_SIGN = 0x00000001, KMIP_USAGE_VERIFY = 0x00000002, KMIP_USAGE_ENCRYPT = 0x00000004, KMIP_USAGE_DECRYPT = 0x00000008, KMIP_USAGE_WRAP_KEY = 0x00000010, KMIP_USAGE_UNWRAP_KEY = 0x00000020, KMIP_USAGE_EXPORT = 0x00000040, KMIP_USAGE_MAC_GEN = 0x00000080, KMIP_USAGE_MAC_VERIFY = 0x00000100, KMIP_USAGE_DERIVE_KEY = 0x00000200, KMIP_USAGE_CONTENT_COMMITMENT = 0x00000400, /* 2.0 removed */ KMIP_USAGE_KEY_AGREEMENT = 0x00000800, KMIP_USAGE_CERT_SIGN = 0x00001000, KMIP_USAGE_CRL_SIGN = 0x00002000, KMIP_USAGE_GEN_CRYPTOGRAM = 0x00004000, /* 2.0 removed */ KMIP_USAGE_VALIDATE_CRYPTOGRAM = 0x00008000, /* 2.0 removed */ KMIP_USAGE_TRANSLATE_ENCRYPT = 0x00010000, /* 2.0 removed */ KMIP_USAGE_TRANSLATE_DECRYPT = 0x00020000, /* 2.0 removed */ KMIP_USAGE_TRANSLATE_WRAP = 0x00040000, /* 2.0 removed */ KMIP_USAGE_TRANSLATE_UNWRAP = 0x00080000 /* 2.0 removed */ } kmip_crypto_usage_t; /* Storage Status */ typedef enum { KMIP_STATUS_ONLINE = 1, KMIP_STATUS_ARCHIVE } kmip_storage_status_t; /* RNG Algorithm (1.3) */ typedef enum { KMIP_RNG_UNSPECIFIED = 1, KMIP_RNG_FIPS_1862, KMIP_RNG_DRBG, KMIP_RNG_NRBG, KMIP_RNG_ANSI_X931, KMIP_RNG_ANSI_X962 } kmip_rng_algo_t; /* DRBG Algorithm (1.3) */ typedef enum { KMIP_DRBG_UNSPECIFIED = 1, KMIP_DRBG_DUALEC, KMIP_DRBG_HASH, KMIP_DRBG_HMAC, KMIP_DRBG_CTR } kmip_drbg_algo_t; /* FIPS186 Variation (1.3) */ typedef enum { KMIP_FIPS186_VAR_UNSPECIFIED = 1, KMIP_FIPS186_VAR_GP_XORIGINAL, KMIP_FIPS186_VAR_GP_XCHANGE_NOTICE, KMIP_FIPS186_VAR_XORIGINAL, KMIP_FIPS186_VAR_XCHANGE_NOTICE, KMIP_FIPS186_VAR_KORIGINAL, KMIP_FIPS186_VAR_KCHANGE_NOTICE } kmip_fips186_var_t; /* Validation Authority Type (1.3) */ typedef enum { KMIP_VALIDATION_AUTH_UNSPECIFIED = 1, KMIP_VALIDATION_AUTH_NIST_CMVP, KMIP_VALIDATION_AUTH_COMMON_CRITERIA } kmip_validation_auth_type_t; /* Validation Type (1.3) */ typedef enum { KMIP_VALIDATION_T_UNSPECIFIED = 1, KMIP_VALIDATION_T_HARDWARE, KMIP_VALIDATION_T_SOFTWARE, KMIP_VALIDATION_T_FIRMWARE, /* 1.4 */ KMIP_VALIDATION_T_HYBRID } kmip_validation_type_t; /* Profile Name (1.3) */ typedef enum { KMIP_PROFILE_BASELINE_SERVER_BASIC_12 = 1, KMIP_PROFILE_BASELINE_SERVER_TLS12_12, KMIP_PROFILE_BASELINE_CLIENT_BASIC_12, KMIP_PROFILE_BASELINE_CLIENT_TLS12_12, KMIP_PROFILE_COMPLETE_SERVER_BASIC_12, KMIP_PROFILE_COMPLETE_SERVER_TLS12_12, KMIP_PROFILE_TAPE_LIB_CLIENT_10, KMIP_PROFILE_TAPE_LIB_CLIENT_11, KMIP_PROFILE_TAPE_LIB_CLIENT_12, KMIP_PROFILE_TAPE_LIB_SERVER_10, KMIP_PROFILE_TAPE_LIB_SERVER_11, KMIP_PROFILE_TAPE_LIB_SERVER_12, KMIP_PROFILE_SYMMETRIC_KEY_LIFECYCLE_CLIENT_10, KMIP_PROFILE_SYMMETRIC_KEY_LIFECYCLE_CLIENT_11, KMIP_PROFILE_SYMMETRIC_KEY_LIFECYCLE_CLIENT_12, KMIP_PROFILE_SYMMETRIC_KEY_LIFECYCLE_SERVER_10, KMIP_PROFILE_SYMMETRIC_KEY_LIFECYCLE_SERVER_11, KMIP_PROFILE_SYMMETRIC_KEY_LIFECYCLE_SERVER_12, KMIP_PROFILE_ASYMMETRIC_KEY_LIFECYCLE_CLIENT_10, KMIP_PROFILE_ASYMMETRIC_KEY_LIFECYCLE_CLIENT_11, KMIP_PROFILE_ASYMMETRIC_KEY_LIFECYCLE_CLIENT_12, KMIP_PROFILE_ASYMMETRIC_KEY_LIFECYCLE_SERVER_10, KMIP_PROFILE_ASYMMETRIC_KEY_LIFECYCLE_SERVER_11, KMIP_PROFILE_ASYMMETRIC_KEY_LIFECYCLE_SERVER_12, KMIP_BASIC_CRYPTO_CLIENT_12, KMIP_BASIC_CRYPTO_SERVER_12, KMIP_ADVANCED_CRYPTO_CLIENT_12, KMIP_ADVANCED_CRYPTO_SERVER_12, KMIP_RNG_CRYPTO_CLIENT_12, KMIP_RNG_CRYPTO_SERVER_12, KMIP_BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_10, KMIP_INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_10, KMIP_ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_10, KMIP_BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_11, KMIP_IMTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_11, KMIP_ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_11, KMIP_BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_12, KMIP_IMTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_12, KMIP_ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_12, KMIP_SYMMETRIC_KEY_FOUNDRY_SERVER_10, KMIP_SYMMETRIC_KEY_FOUNDRY_SERVER_11, KMIP_SYMMETRIC_KEY_FOUNDRY_SERVER_12, KMIP_OPAQUE_MANAGED_OBJECT_STORE_CLIENT_10, KMIP_OPAQUE_MANAGED_OBJECT_STORE_CLIENT_11, KMIP_OPAQUE_MANAGED_OBJECT_STORE_CLIENT_12, KMIP_OPAQUE_MANAGED_OBJECT_STORE_SERVER_10, KMIP_OPAQUE_MANAGED_OBJECT_STORE_SERVER_11, KMIP_OPAQUE_MANAGED_OBJECT_STORE_SERVER_12, KMIP_SUITE_B_MINLOS_128_CLIENT_10, KMIP_SUITE_B_MINLOS_128_CLIENT_11, KMIP_SUITE_B_MINLOS_128_CLIENT_12, KMIP_SUITE_B_MINLOS_128_SERVER_10, KMIP_SUITE_B_MINLOS_128_SERVER_11, KMIP_SUITE_B_MINLOS_128_SERVER_12, KMIP_SUITE_B_MINLOS_192_CLIENT_10, KMIP_SUITE_B_MINLOS_192_CLIENT_11, KMIP_SUITE_B_MINLOS_192_CLIENT_12, KMIP_SUITE_B_MINLOS_192_SERVER_10, KMIP_SUITE_B_MINLOS_192_SERVER_11, KMIP_SUITE_B_MINLOS_192_SERVER_12, KMIP_STORAGE_ARRAY_SELF_ECRYPTING_DRIVE_CLIENT_10, KMIP_STORAGE_ARRAY_SELF_ECRYPTING_DRIVE_CLIENT_11, KMIP_STORAGE_ARRAY_SELF_ECRYPTING_DRIVE_CLIENT_12, KMIP_STORAGE_ARRAY_SELF_ECRYPTING_DRIVE_SERVER_10, KMIP_STORAGE_ARRAY_SELF_ECRYPTING_DRIVE_SERVER_11, KMIP_STORAGE_ARRAY_SELF_ECRYPTING_DRIVE_SERVER_12, KMIP_HTTPS_CLIENT_10, KMIP_HTTPS_CLIENT_11, KMIP_HTTPS_CLIENT_12, KMIP_HTTPS_SERVER_10, KMIP_HTTPS_SERVER_11, KMIP_HTTPS_SERVER_12, KMIP_JSON_CLIENT_10, KMIP_JSON_CLIENT_11, KMIP_JSON_CLIENT_12, KMIP_JSON_SERVER_10, KMIP_JSON_SERVER_11, KMIP_JSON_SERVER_12, KMIP_XML_CLIENT_10, KMIP_XML_CLIENT_11, KMIP_XML_CLIENT_12, KMIP_XML_SERVER_10, KMIP_XML_SERVER_11, KMIP_XML_SERVER_12, KMIP_BASELINE_SERVER_BASIC_13, KMIP_BASELINE_SERVER_TLS12_13, KMIP_BASELINE_CLIENT_BASIC_13, KMIP_BASELINE_CLIENT_TLS12_13, KMIP_COMPLETE_SERVER_BASIC_13, KMIP_COMPLETE_SERVER_TLS12_13, KMIP_TAPE_LIB_CLIENT_13, KMIP_TAPE_LIB_SERVER_13, KMIP_SYMMETRIC_KEY_LIFECYCLE_CLIENT_13, KMIP_SYMMETRIC_KEY_LIFECYCLE_SERVER_13, KMIP_ASYMMETRIC_KEY_LIFECYCLE_CLIENT_13, KMIP_ASYMMETRIC_KEY_LIFECYCLE_SERVER_13, KMIP_BASIC_CYRPTO_CLIENT_13, KMIP_BASIC_CYRPTO_SERVER_13, KMIP_ADVANCED_CRYPTO_CLIENT_13, KMIP_ADVANCED_CRYPTO_SERVER_13, KMIP_RNG_CRYPTO_CLIENT_13, KMIP_RNG_CRYPTO_SERVER_13, KMIP_BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_13, KMIP_INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_13, KMIP_ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_13, KMIP_SYMMETRIC_KEY_FOUNDRY_SERVER_13, KMIP_OPAQUE_MANAGED_OBJECT_STORE_CLIENT_13, KMIP_OPAQUE_MANAGED_OBJECT_STORE_SERVER_13, KMIP_SUITE_B_MINILOS_128_CLIENT_13, KMIP_SUITE_B_MINILOS_128_SERVER_13, KMIP_SUITE_B_MINILOS_192_CLIENT_13, KMIP_SUITE_B_MINILOS_192_SERVER_13, KMIP_STORAGE_ARRAY_SELF_ENCRYPTING_DRIVE_CLIENT_13, KMIP_STORAGE_ARRAY_SELF_ENCRYPTING_DRIVE_SERVER_13, KMIP_HTTPS_CLIENT_13, KMIP_HTTPS_SERVER_13, KMIP_JSON_CLIENT_13, KMIP_JSON_SERVER_13, KMIP_XML_CLIENT_13, KMIP_XML_SERVER_13, /* 1.4 */ KMIP_BASELINE_SERVER_BASIC_14, KMIP_BASELINE_SERVER_TLS12_14, KMIP_BASELINE_CLIENT_BASIC_14, KMIP_BASELINE_CLIENT_TLS12_14, KMIP_COMPLETE_SERVER_BASIC_14, KMIP_COMPLETE_SERVER_TLS12_14, KMIP_TAPE_LIB_CLIENT_14, KMIP_TAPE_LIB_SERVER_14, KMIP_SYMMETRIC_KEY_LIFECYCLE_CLIENT_14, KMIP_SYMMETRIC_KEY_LIFECYCLE_SERVER_14, KMIP_ASYMMETRIC_KEY_LIFECYCLE_CLIENT_14, KMIP_ASYMMETRIC_KEY_LIFECYCLE_SERVER_14, KMIP_BASIC_CRYPTO_CLIENT_14, KMIP_BASIC_CRYPTO_SERVER_14, KMIP_ADVANCED_CRYPTO_CLIENT_14, KMIP_ADVANCED_CRYPTO_SERVER_14, KMIP_RNG_CRYPTO_CLIENT_14, KMIP_RNG_CRYPTO_SERVER_14, KMIP_BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_14, KMIP_INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_14, KMIP_ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_14, KMIP_SYMMETRIC_KEY_FOUNDRY_SERVER_14, KMIP_OPAQUE_MANAGED_OBJECT_STORE_CLIENT_14, KMIP_OPAQUE_MANAGED_OBJECT_STORE_SERVER_14, KMIP_SUITE_B_MINILOS_128_CLIENT_14, KMIP_SUITE_B_MINILOS_128_SERVER_14, KMIP_SUITE_B_MINILOS_192_CLIENT_14, KMIP_SUITE_B_MINILOS_192_SERVER_14, KMIP_STORAGE_ARRAY_SELF_ENCRYPTING_DRIVE_CLIENT_14, KMIP_STORAGE_ARRAY_SELF_ENCRYPTING_DRIVE_SERVER_14, KMIP_HTTPS_CLIENT_14, KMIP_HTTPS_SERVER_14, KMIP_JSON_CLIENT_14, KMIP_JSON_SERVER_14, KMIP_XML_CLIENT_14, KMIP_XML_SERVER_14 } kmip_profile_t; /* Unwrap Mode (1.3) */ typedef enum { KMIP_UM_UNSPECIFIED = 1, KMIP_PROCESSED, KMIP_NOT_PROCESSED } kmip_unwrap_mode_t; /* Destroy Action (1.3) */ typedef enum { KMIP_DA_UNSPECIFIED = 1, KMIP_KEY_MATERIAL_DELETE, KMIP_KEY_MATERIAL_SHRED, KMIP_META_DATA_DELETE, KMIP_META_DATA_SHREDDED, KMIP_DELETE, KMIP_SHREDDED } kmip_destroy_action_t; /* Shredding Algorithm (1.3) */ typedef enum { KMIP_SHREDDING_ALGO_UNSPECIFIED = 1, KMIP_SHREDDING_ALGO_CRYPTO, KMIP_SHREDDING_ALGO_UNSUPPORTED } kmip_shredding_algo_t; /* RNG Mode (1.3) */ typedef enum { KMIP_RNG_MODE_UNSPECIFIED = 1, KMIP_RNG_SHARED_INSTANTIATION, KMIP_RNG_NONSHARED_INSTANTIATION } kmip_rng_mode_t; /* Client Registration Method (1.3) */ typedef enum { KMIP_CLIENT_REG_UNSPECIFIED = 1, KMIP_CLIENT_REG_SERVER_PREGEN, KMIP_CLIENT_REG_SERVER_ONDEMAND, KMIP_CLIENT_REG_CLIENT_GEN, KMIP_CLIENT_REG_CLIENT_REGISTERED } kmip_client_reg_meth_t; /* Key Wrap Type (1.4) */ typedef enum { KMIP_KEY_WRAP_NOT_WRAPPED = 1, KMIP_KEY_WRAP_AS_REGISTERED } kmip_key_wrap_type_t; /* Mask Generator (1.4) */ typedef enum { KMIP_MASK_GEN_MGF1 = 1 } kmip_mask_gen_t; /* KMIP types */ typedef uint32_t kmip_integer_t; typedef uint64_t kmip_long_t; typedef uint64_t kmip_boolean_t; typedef char *kmip_uid_t; typedef uint64_t kmip_date_t; typedef struct kmip_bigint { uint8_t *value; uint32_t len; } kmip_bigint_t; typedef kmip_bigint_t kmip_bytestr_t; typedef struct kmip_name { char *value; kmip_name_type_t type; } kmip_name_t; /* Base Object: Attribute */ typedef struct kmip_attr { char *attr_name; int32_t attr_index; uint8_t attr_type; void *attr_value; } kmip_attr_t; /* Helper object for multi-valued attributes */ typedef struct kmip_attrs { kmip_attr_t **attrs; uint32_t attr_count; } kmip_attrs_t; /* Primary credential source */ typedef enum kmip_cred_source_type { KMIP_CRED_SRC_PATH, KMIP_CRED_SRC_RAW } kmip_cred_source_type_t; /* Secondary Authentication Type */ typedef enum kmip_secondary_auth_type { KMIP_SCND_AUTH_NONE, KMIP_SCND_AUTH_USERNAME_PASSWORD, KMIP_SCND_AUTH_DEVICE } kmip_secondary_auth_type_t; typedef struct kmip_user_cred { char *username; char *password; } kmip_user_cred_t; typedef struct kmip_dev_cred { char *serialnum; /* device serial number */ char *password; char *dev_id; char *network_id; char *machine_id; char *media_id; } kmip_dev_cred_t; /* Nonce */ typedef struct kmip_nonce { kmip_bytestr_t nonce_id; kmip_bytestr_t nonce_val; } kmip_nonce_t; typedef struct kmip_attestation_cred { kmip_nonce_t nonce; kmip_attestation_t attestation; kmip_bytestr_t attestation_measurement; kmip_bytestr_t attestation_assert; } kmip_attestation_cred_t; /* Secondary Authentication Props */ typedef union kmip_secondary_auth_props { kmip_user_cred_t user_cred; kmip_dev_cred_t dev_cred; } kmip_secondary_auth_props_t; typedef struct kmip_cred { kmip_cred_type_t cred_type; void *cred_value; } kmip_cred_t; /* Transparent Key Material */ typedef struct kmip_symm_key_mat { kmip_bytestr_t key; } kmip_symm_key_mat_t; typedef struct kmip_dsa_private_mat { kmip_bigint_t P; kmip_bigint_t Q; kmip_bigint_t G; kmip_bigint_t X; } kmip_dsa_private_mat_t; typedef struct kmip_dsa_public_mat { kmip_bigint_t P; kmip_bigint_t Q; kmip_bigint_t G; kmip_bigint_t Y; } kmip_dsa_public_mat_t; typedef struct kmip_rsa_private_mat { kmip_bigint_t modulus; kmip_bigint_t private_exp; kmip_bigint_t public_exp; kmip_bigint_t P; kmip_bigint_t Q; kmip_bigint_t prime_exp_P; kmip_bigint_t prime_exp_Q; kmip_bigint_t crt_coeff; } kmip_rsa_private_mat_t; typedef struct kmip_rsa_public_mat { kmip_bigint_t modulus; kmip_bigint_t public_exp; } kmip_rsa_public_mat_t; typedef struct kmip_dh_private_mat { kmip_bigint_t P; kmip_bigint_t Q; kmip_bigint_t G; kmip_bigint_t J; kmip_bigint_t X; } kmip_dh_private_mat_t; typedef struct kmip_dh_public_mat { kmip_bigint_t P; kmip_bigint_t Q; kmip_bigint_t G; kmip_bigint_t J; kmip_bigint_t Y; } kmip_dh_public_mat_t; /* Common material for all EC* keys */ typedef struct kmip_ec_private_mat { kmip_curve_t curve; kmip_bigint_t D; } kmip_ec_private_mat_t; typedef struct kmip_ec_public_mat { kmip_curve_t curve; kmip_bytestr_t Q; } kmip_ec_public_mat_t; typedef kmip_ec_private_mat_t kmip_ecdh_private_mat_t; /* deprecated in 1.3 */ typedef kmip_ec_private_mat_t kmip_ecdsa_private_mat_t; /* deprecated in 1.3 */ typedef kmip_ec_private_mat_t kmip_ecmqv_private_mat_t; /* deprecated in 1.3 */ typedef kmip_ec_public_mat_t kmip_ecdh_public_mat_t; typedef kmip_ec_public_mat_t kmip_ecdsa_public_mat_t; typedef kmip_ec_public_mat_t kmip_ecmqv_public_mat_t; typedef union kmip_key_material { kmip_bytestr_t bytestr; kmip_symm_key_mat_t symm_key_mat; kmip_dsa_private_mat_t dsa_private_key_mat; kmip_dsa_public_mat_t dsa_public_key_mat; kmip_rsa_private_mat_t rsa_private_key_mat; kmip_rsa_public_mat_t rsa_public_key_mat; kmip_dh_private_mat_t dh_private_key_mat; kmip_dh_public_mat_t dh_public_key_mat; kmip_ecdsa_private_mat_t ecdsa_private_key_mat; kmip_ecdsa_public_mat_t ecdsa_public_key_mat; kmip_ecdh_private_mat_t ecdh_private_key_mat; kmip_ecdh_public_mat_t ecdh_public_key_mat; kmip_ecmqv_private_mat_t ecmqv_private_key_mat; kmip_ecmqv_public_mat_t ecmqv_public_key_mat; } kmip_key_material_t; /* * Key value structure definition - used inside a key block. * It contains the key material, either as a byte string, or * as a Transparent Key structure, and any optional attributes. */ typedef struct kmip_plaintext_key_value { kmip_key_material_t *key_material; kmip_attrs_t key_attrs; } kmip_plaintext_key_value_t; /* * Key Value; encoded as a byte string for wrapped key values, * and as a struct for plaintext key values */ typedef union kmip_key_val { kmip_bytestr_t wrapped_val; /* Wrapped Key Value */ kmip_plaintext_key_value_t plaintext_val; /* Plaintext Key Value */ } kmip_key_val_t; typedef struct kmip_cryptoparams { kmip_cipher_mode_t block_cipher_mode; kmip_pad_t padding_method; kmip_hash_t hash_algorithm; kmip_key_role_t key_role; kmip_sig_algo_t signature_algorithm; kmip_crypt_algo_t crypto_algorithm; kmip_boolean_t random_iv; uint32_t iv_len; uint32_t tag_len; uint32_t fixed_len; uint32_t counter_len; uint32_t init_counter; uint32_t salt_len; kmip_mask_gen_t mask_generator; kmip_bytestr_t psrc; uint32_t trailer; } kmip_cryptoparams_t; typedef struct kmip_crypt_info { kmip_uid_t uid; kmip_cryptoparams_t crypto_params; } kmip_crypt_info_t; typedef struct kmip_key_wrap_data { kmip_wrap_method_t wrap_method; kmip_crypt_info_t wrap_encrypt_key_info; kmip_crypt_info_t wrap_mac_sig_key_info; kmip_bytestr_t wrap_mac_sig; kmip_bytestr_t wrap_ivcn; kmip_encoding_t wrap_encoding; } kmip_key_wrap_data_t; typedef struct kmip_key_block { kmip_key_fmt_t key_format; kmip_compress_type_t key_compression; kmip_key_val_t *key_value; kmip_crypt_algo_t key_algorithm; uint32_t key_crypto_len; kmip_key_wrap_data_t *key_wrap_data; } kmip_key_block_t; typedef struct kmip_key_wrap_spec { kmip_wrap_method_t wrap_method; kmip_crypt_info_t wrap_encrypt_info; kmip_crypt_info_t wrap_mac_sig_info; char **wrap_attr_names; uint32_t wrap_attr_name_count; kmip_encoding_t wrap_encoding; } kmip_key_wrap_spec_t; /* Template */ typedef struct kmip_template { kmip_attrs_t attrs; } kmip_template_t; /* Template-Attributes - deprecated in 1.3 */ typedef struct kmip_template_attrs { kmip_name_t *name; uint32_t name_count; kmip_attrs_t attrs; } kmip_template_attrs_t; /* Extensions */ typedef struct kmip_extension { char *name; uint32_t tag; uint32_t type; } kmip_extension_t; /* Data */ typedef struct kmip_data { kmip_bytestr_t data; } kmip_data_t; /* Data Length */ typedef struct kmip_data_len { uint32_t length; } kmip_data_lent_t; /* Signature Data (1.2) */ typedef struct kmip_sig_data { kmip_bytestr_t sig_data; } kmip_sig_data_t; /* MAC Data (1.2) */ typedef struct kmip_mac_data { kmip_bytestr_t mac_data; } kmip_mac_data_t; /* Correlation Value (1.3) */ typedef struct kmip_correlation_val { kmip_bytestr_t correlation_val; } kmip_correlation_val_t; /* Init Indicator (1.3) */ typedef struct kmip_init_indicator { kmip_boolean_t init_indicator; } kmip_init_indicator_t; /* Final Indicator (1.3) */ typedef struct kmip_final_indicator { kmip_boolean_t final_indicator; } kmip_final_indicator_t; /* RNG Parameters (1.3) */ typedef struct kmip_rng_params { kmip_rng_algo_t rng_algo; kmip_crypt_algo_t crypt_algo; uint32_t crypt_len; kmip_hash_t hash_algo; kmip_drbg_algo_t drbg_algo; kmip_curve_t curve; kmip_fips186_var_t fips186_variation; kmip_boolean_t prediction_resistance; } kmip_rng_params_t; /* Profile Information (1.3) */ typedef struct kmip_profile_info { kmip_profile_t profile_name; char *server_uri; uint32_t server_port; } kmip_profile_info_t; /* Validation Information (1.3) */ typedef struct kmip_validation_info { kmip_validation_auth_type_t authority_type; char *authority_country; char *authority_uri; uint32_t version_major; uint32_t version_minor; kmip_validation_auth_type_t type; uint32_t level; char *cert_id; char *cert_uri; char *vendor_uri; char **profiles; uint32_t profile_count; } kmip_validation_info_t; /* Capability Information (1.3) */ typedef struct kmip_capability_info { kmip_boolean_t streaming; kmip_boolean_t asynchronous; kmip_boolean_t attestation; kmip_boolean_t batch_undo; /* 1.4 */ kmip_boolean_t batch_continue; /* 1.4 */ kmip_unwrap_mode_t unwrap_mode; kmip_destroy_action_t destroy_action; kmip_shredding_algo_t shredding_algo; kmip_rng_mode_t rng_mode; } kmip_capability_info_t; /* Authenticated Encryption Additional Data (1.4) */ typedef struct kmip_auth_encr_data { kmip_bytestr_t data; } kmip_auth_encr_data_t; /* Authenticated Encryption Tag (1.4) */ typedef struct kmip_auth_encr_tag { kmip_bytestr_t tag; } kmip_auth_encr_tag_t; typedef struct kmip_cert { kmip_cert_type_t cert_type; kmip_bytestr_t cert_value; } kmip_cert_t; typedef struct kmip_key { kmip_key_block_t key_block; } kmip_key_t; typedef kmip_key_t kmip_private_key_t; typedef kmip_key_t kmip_public_key_t; typedef kmip_key_t kmip_symmetric_key_t; typedef struct kmip_split_key { int32_t skey_parts; int32_t skey_id; int32_t skey_threshold; kmip_split_key_method_t skey_method; kmip_bigint_t skey_pfsz; kmip_key_block_t skey_key_block; } kmip_split_key_t; typedef struct kmip_secret_data { kmip_secret_data_type_t secret_type; kmip_key_block_t secret_key_block; } kmip_secret_data_t; typedef struct kmip_opaque { kmip_opaque_data_type_t opaque_type; kmip_bytestr_t opaque_data; } kmip_opaque_t; typedef struct kmip_pgp_key { int32_t pgp_version; kmip_key_block_t pgp_key_block; } kmip_pgp_key_t; typedef union kmip_object { kmip_symmetric_key_t sym_obj; /* symmetric key */ kmip_public_key_t pub_obj; /* public key */ kmip_private_key_t pri_obj; /* private key */ kmip_cert_t cert_obj; /* certificate */ kmip_secret_data_t secret_obj; /* secret data */ kmip_template_t template_obj; /* templete */ kmip_split_key_t split_obj; /* split key */ kmip_opaque_t opaque_obj; /* opaque */ kmip_pgp_key_t pgp_key_obj; /* pgp key */ } kmip_object_t; typedef struct kmip_deriv_params { kmip_cryptoparams_t crypto_params; kmip_bytestr_t iv; kmip_bytestr_t deriv_data; kmip_bytestr_t salt; /* PBKDF2 ony */ int32_t iteration_count; } kmip_deriv_params_t; /* Cryptographic Domain Parameters */ typedef struct kmip_crypto_domain_params { uint32_t Qlength; kmip_curve_t curve; } kmip_crypto_domain_params_t; /* Certificate Identifier - V1.0 only, deprecated in 1.1 */ typedef struct kmip_certid { char *issuer; char *serialnum; } kmip_certid_t; /* X509 Certificate Identifier - V1.1 and later */ typedef struct kmip_x509_certid { kmip_bytestr_t issuer; kmip_bytestr_t serialnum; } kmip_x509_certid_t; /* X509 Certificate Name - V1.1 and later */ typedef struct kmip_x509cert_name { kmip_bytestr_t DN; kmip_bytestr_t *altnames; uint32_t altname_count; } kmip_x509cert_name_t; /* X509 Certificate Subject - V1.1 and later */ typedef kmip_x509cert_name_t kmip_x509_cert_subject_t; /* X509 Certificate Issuer - V1.1 and later */ typedef kmip_x509cert_name_t kmip_x509_cert_issuer_t; /* Certificate Name */ typedef struct kmip_cert_name { char *DN; char **altnames; uint32_t altname_count; } kmip_cert_name_t; /* Certificate Subject */ typedef kmip_cert_name_t kmip_cert_subject_t; /* Certificate Issuer */ typedef kmip_cert_name_t kmip_cert_issuer_t; /* Digest */ typedef struct kmip_digest { kmip_hash_t hash_algo; kmip_bytestr_t digest_value; kmip_key_fmt_t key_format; } kmip_digest_t; /* Storage Status Mask */ #define STORAGE_ONLINE 0x00000001 #define STORAGE_ARCHIVAL 0x00000002 /* Usage Limits */ typedef struct kmip_usage_limits { uint64_t total; uint64_t count; kmip_usage_limit_unit_t unit; } kmip_usage_limits_t; /* Revocation Reason */ typedef struct kmip_revoke_reason { kmip_revoke_code_t reason_code; char *message; } kmip_revoke_reason_t; /* Link */ typedef struct kmip_link { kmip_link_type_t type; char *linked_to; } kmip_link_t; /* Application Specific Information */ typedef struct kmip_appinfo { char *namespace; char *appdata; } kmip_appinfo_t; /* Alternative Name */ typedef struct kmip_alternative_name { char *value; kmip_alt_name_type_t type; } kmip_alternative_name_t; /* Key Value Location */ typedef struct kmip_key_val_location { char *value; kmip_key_val_location_type_t type; } kmip_key_value_location_t; /* Original Creation Date */ typedef struct kmip_orig_creat_date { kmip_date_t orig_create_date; } kmip_orig_create_date_t; /* Message Structures */ typedef struct kmip_version { uint32_t major_vers; uint32_t minor_vers; } kmip_version_t; typedef struct kmip_auth { kmip_cred_t cred; } kmip_auth_t; typedef struct kmip_msg_ext { char *vendorid; kmip_boolean_t critical; void *extension; } kmip_msg_ext_t; typedef struct kmip_req_hdr { kmip_version_t version; uint32_t max_resp_sz; kmip_boolean_t async; kmip_auth_t auth; kmip_batch_err_opt_t batch_err_opt; kmip_boolean_t batch_order_opt; kmip_date_t timestamp; int32_t batchcount; } kmip_req_hdr_t; typedef struct kmip_resp_hdr { kmip_version_t version; kmip_date_t timestamp; uint32_t batchcount; } kmip_resp_hdr_t; typedef struct kmip_req_batch_item { kmip_op_t operation; kmip_bytestr_t batch_uid; void *payload; kmip_msg_ext_t *msg_ext; } kmip_req_batch_item_t; typedef struct kmip_resp_batch_item { kmip_op_t operation; kmip_bytestr_t batch_uid; kmip_result_status_t result_status; kmip_result_reason_t result_reason; char *result_msg; kmip_bytestr_t async_correlation; void *payload; kmip_msg_ext_t *msg_ext; } kmip_resp_batch_item_t; typedef struct kmip_request { kmip_req_hdr_t hdr; kmip_req_batch_item_t *batch_items; uint32_t batch_item_count; } kmip_request_t; typedef struct kmip_response { kmip_resp_hdr_t hdr; kmip_resp_batch_item_t *batch_items; uint32_t batch_item_count; } kmip_response_t; /* * Several responses take the form of uid and template-attrs, so use a * single type to simplify encode/decode. */ typedef struct kmip_basic_resp { kmip_uid_t uid; kmip_template_attrs_t template; } kmip_basic_resp_t; /* * Several requests and responses contain only a UID. */ typedef struct kmip_uid_req_resp { kmip_uid_t uid; } kmip_uid_req_resp_t; /* * Operation specific request/response types. */ /* Create */ typedef struct kmip_create_req { kmip_object_type_t objtype; kmip_template_attrs_t template; } kmip_create_req_t; typedef struct kmip_create_resp { kmip_object_type_t objtype; kmip_uid_t uid; kmip_template_attrs_t template; } kmip_create_resp_t; /* Create keypair */ typedef struct kmip_create_keypair_req { kmip_template_attrs_t common_template; kmip_template_attrs_t private_template; kmip_template_attrs_t public_template; } kmip_create_keypair_req_t; typedef struct kmip_keypair_resp { kmip_uid_t private_uid; kmip_uid_t public_uid; kmip_template_attrs_t private_template; kmip_template_attrs_t public_template; } kmip_keypair_resp_t; typedef kmip_keypair_resp_t kmip_create_keypair_resp_t; /* Register */ typedef struct kmip_register_req { kmip_object_type_t objtype; kmip_template_attrs_t template; kmip_object_t *object; /* depends on objtype */ } kmip_register_req_t; typedef kmip_basic_resp_t kmip_register_resp_t; /* Rekey */ typedef struct kmip_rekey_req { kmip_uid_t uid; kmip_boolean_t incl_offset; uint32_t offset; kmip_template_attrs_t template; } kmip_rekey_req_t; typedef kmip_basic_resp_t kmip_rekey_resp_t; /* Rekey key pair */ typedef struct kmip_rekey_keypair_req { kmip_uid_t private_uid; kmip_boolean_t incl_offset; uint32_t offset; kmip_template_attrs_t common_template; kmip_template_attrs_t private_template; kmip_template_attrs_t public_template; } kmip_rekey_keypair_req_t; typedef kmip_keypair_resp_t kmip_rekey_keypair_resp_t; /* Derive key */ typedef struct kmip_derive_key_req { kmip_object_type_t objtype; kmip_uid_t *uids; uint32_t uid_count; kmip_deriv_method_t method; kmip_deriv_params_t params; kmip_template_attrs_t template; } kmip_derive_key_req_t; typedef kmip_basic_resp_t kmip_derive_key_resp_t; /* Certify */ typedef struct kmip_certify_req { kmip_uid_t uid; kmip_cert_req_type_t cert_req_type; kmip_bytestr_t cert_req; kmip_template_attrs_t template; } kmip_certify_req_t; typedef kmip_basic_resp_t kmip_certify_resp_t; /* Recertify */ typedef struct kmip_recertify_req { kmip_uid_t uid; kmip_cert_req_type_t cert_req_type; kmip_bytestr_t cert_req; kmip_boolean_t incl_offset; uint32_t offset; kmip_template_attrs_t template; } kmip_recertify_req_t; typedef kmip_basic_resp_t kmip_recertify_resp_t; /* Locate */ typedef struct kmip_locate_req { uint32_t max_items; uint32_t storage_status_mask; kmip_objgrp_member_t grp_member_type; kmip_attrs_t attrs; } kmip_locate_req_t; typedef struct kmip_locate_resp { kmip_uid_t *uid; uint32_t count; } kmip_locate_resp_t; /* Check */ typedef struct kmip_check_req { kmip_uid_t uid; uint64_t usage_limits_count; uint32_t usage_mask; uint32_t lease_time; } kmip_check_req_t; typedef struct kmip_check_resp { kmip_uid_t uid; uint64_t usage_limits_count; uint32_t usage_mask; uint32_t lease_time; } kmip_check_resp_t; /* Get */ typedef struct kmip_get_req { kmip_uid_t uid; kmip_key_fmt_t key_format; kmip_compress_type_t key_compression; kmip_key_wrap_spec_t key_wrap_spec; } kmip_get_req_t; typedef struct kmip_get_resp { kmip_object_type_t object_type; kmip_uid_t uid; kmip_object_t *object; /* depends on objtype */ } kmip_get_resp_t; /* Get Attributes */ typedef struct kmip_get_attr_req { kmip_uid_t uid; char **attr_names; uint32_t attr_name_count; } kmip_get_attr_req_t; typedef struct kmip_get_attr_resp { kmip_uid_t uid; kmip_attrs_t attrs; } kmip_get_attr_resp_t; /* Get Attributes List */ typedef kmip_uid_req_resp_t kmip_get_attrlist_req_t; typedef struct kmip_get_attrlist_resp { kmip_uid_t uid; char **attr_names; uint32_t attr_name_count; } kmip_get_attrlist_resp_t; /* Add Attribute */ typedef struct kmip_attr_opargs { kmip_uid_t uid; kmip_attr_t attr; } kmip_attr_opargs_t; typedef kmip_attr_opargs_t kmip_add_attr_req_t; typedef kmip_attr_opargs_t kmip_add_attr_resp_t; /* Modify Attribute */ typedef kmip_attr_opargs_t kmip_mod_attr_req_t; typedef kmip_attr_opargs_t kmip_mod_attr_resp_t; /* Delete Attribute */ typedef struct kmip_del_attr_req { kmip_uid_t uid; char *attr_name; int32_t attr_index; } kmip_del_attr_req_t; typedef kmip_attr_opargs_t kmip_del_attr_resp_t; /* Obtain Lease */ typedef kmip_uid_req_resp_t kmip_obtain_lease_req_t; typedef struct kmip_obtain_lease_resp { kmip_uid_t uid; uint32_t lease_time; /* interval */ kmip_date_t last_change_date; } kmip_obtain_lease_resp_t; /* Get Usage Allocation */ typedef struct kmip_get_usage_req { kmip_uid_t uid; uint64_t usage_limits_count; } kmip_get_usage_req_t; typedef kmip_uid_req_resp_t kmip_get_usage_resp_t; /* Activate */ typedef kmip_uid_req_resp_t kmip_activate_req_t; typedef kmip_uid_req_resp_t kmip_activate_resp_t; /* Revoke */ typedef struct kmip_revoke_req { kmip_uid_t uid; kmip_revoke_reason_t reason; kmip_date_t occurred_date; } kmip_revoke_req_t; typedef kmip_uid_req_resp_t kmip_revoke_resp_t; /* Destroy */ typedef kmip_uid_req_resp_t kmip_destroy_req_t; typedef kmip_uid_req_resp_t kmip_destroy_resp_t; /* Archive */ typedef kmip_uid_req_resp_t kmip_archive_req_t; typedef kmip_uid_req_resp_t kmip_archive_resp_t; /* Recover */ typedef kmip_uid_req_resp_t kmip_recover_req_t; typedef kmip_uid_req_resp_t kmip_recover_resp_t; /* Validate */ typedef struct kmip_validate_req { kmip_cert_t *cert_obj; /* certificates */ uint32_t cert_count; kmip_uid_t *uids; /* certificate UIDs */ uint32_t uid_count; kmip_date_t validity_date; } kmip_validate_req_t; typedef struct kmip_validate_resp { kmip_validity_t validity_indicator; } kmip_validate_resp_t; /* Query */ typedef struct kmip_query_req { kmip_query_t *query_funcs; uint32_t query_count; } kmip_query_req_t; typedef struct kmip_query_resp { kmip_op_t *operations; uint32_t operation_count; kmip_object_type_t *object_types; uint32_t object_type_count; char *vendorID; char *server_info; char **app_namespaces; uint32_t namespace_count; kmip_extension_t *extensions; uint32_t extension_count; /* 1.2 */ kmip_attestation_t *attestation_types; uint32_t attestation_types_count; /* 1.3 */ kmip_rng_params_t *rng_params; uint32_t rng_params_count; kmip_profile_info_t *profile_types; uint32_t profile_types_count; kmip_validation_info_t *validation_types; uint32_t validation_types_count; kmip_capability_info_t *capability_types; uint32_t capability_types_count; kmip_client_reg_meth_t *reg_methods; uint32_t reg_methods_count; } kmip_query_resp_t; /* Discover Version */ typedef struct kmip_discover_vers_req { kmip_version_t *versions; uint32_t version_count; } kmip_discover_vers_req_t; typedef kmip_discover_vers_req_t kmip_discover_vers_resp_t; /* Cancel */ typedef struct kmip_async_req { kmip_bytestr_t async_correlation; } kmip_async_req_t; typedef kmip_async_req_t kmip_cancel_req_t; typedef struct kmip_cancel_resp { kmip_bytestr_t async_correlation; kmip_cancel_result_t result; } kmip_cancel_resp_t; /* Poll */ typedef kmip_async_req_t kmip_poll_req_t; /* Encrypt (1.2) */ typedef struct kmip_encrypt_req { kmip_uid_t uid; kmip_cryptoparams_t crypto_params; kmip_bytestr_t data; kmip_bytestr_t ivcn; kmip_correlation_val_t correlation; kmip_init_indicator_t init_ind; kmip_final_indicator_t final_ind; kmip_auth_encr_data_t encr_data; } kmip_encrypt_req_t; typedef struct kmip_encrypt_resp { kmip_uid_t uid; kmip_bytestr_t data; kmip_bytestr_t ivcn; kmip_correlation_val_t correlation; kmip_auth_encr_tag_t encr_tag; } kmip_encrypt_resp_t; /* Decrypt (1.2) */ typedef struct kmip_decrypt_req { kmip_uid_t uid; kmip_cryptoparams_t crypto_params; kmip_bytestr_t data; kmip_bytestr_t ivcn; kmip_correlation_val_t correlation; kmip_init_indicator_t init_ind; kmip_final_indicator_t final_ind; kmip_auth_encr_data_t encr_data; kmip_auth_encr_tag_t encr_tag; } kmip_decrypt_req_t; typedef struct kmip_decrypt_resp { kmip_uid_t uid; kmip_bytestr_t data; kmip_correlation_val_t correlation; } kmip_decrypt_resp_t; /* Sign (1.2) */ typedef struct kmip_sign_req { kmip_uid_t uid; kmip_cryptoparams_t crypto_params; kmip_bytestr_t data; } kmip_sign_req_t; typedef struct kmip_sign_resp { kmip_uid_t uid; kmip_bytestr_t signature_data; } kmip_sign_resp_t; /* Sign Verify (1.2) */ typedef struct kmip_sig_verify_req { kmip_uid_t uid; kmip_cryptoparams_t crypto_params; kmip_bytestr_t data; kmip_bytestr_t signature_data; } kmip_sig_verify_req_t; typedef struct kmip_sig_verify_resp { kmip_uid_t uid; kmip_validity_t validity_indicator; kmip_bytestr_t data; } kmip_sig_verify_resp_t; /* MAC (1.2) */ typedef kmip_sign_req_t kmip_mac_req_t; typedef struct kmip_mac_resp { kmip_uid_t uid; kmip_bytestr_t mac_data; } kmip_mac_resp_t; /* MAC Verify (1.2) */ typedef struct kmip_mac_verify_req { kmip_uid_t uid; kmip_cryptoparams_t crypto_params; kmip_bytestr_t data; kmip_bytestr_t mac_data; } kmip_mac_verify_req_t; typedef struct kmip_mac_verify_resp { kmip_uid_t uid; kmip_validity_t validity_indicator; } kmip_mac_verify_resp_t; /* RNG Retrieve (1.2) */ typedef struct kmip_rng_retrieve_req { uint32_t data_length; } kmip_rng_retrieve_req_t; typedef struct kmip_rng_retrieve_resp { uint64_t data; /* XXX verify output type here */ } kmip_rng_retrieve_resp_t; /* RNG Seed (1.2) */ typedef struct kmip_rng_seed_req { uint64_t data; /* XXX verify output type here */ } kmip_rng_seed_req_t; typedef struct kmip_rng_seed_resp { uint32_t data_length; } kmip_rng_seed_resp_t; /* Hash (1.2) */ typedef struct kmip_hash_req { kmip_cryptoparams_t crypto_params; kmip_bytestr_t data; } kmip_hash_req_t; typedef struct kmip_hash_resp { kmip_bytestr_t data; } kmip_hash_resp_t; /* Create Split Key (1.2) */ typedef struct kmip_create_split_key_req { kmip_object_type_t object_type; kmip_uid_t uid; int32_t num_parts; int32_t threshold; kmip_split_key_method_t method; kmip_bigint_t prime_field_size; kmip_template_attrs_t template; } kmip_create_split_key_req_t; typedef struct kmip_create_split_key_resp { kmip_object_type_t object_type; kmip_uid_t *uids; uint32_t uid_count; kmip_template_attrs_t template; } kmip_create_split_key_resp_t; /* Join Split Key (1.2) */ typedef struct kmip_join_split_key_req { kmip_object_type_t object_type; kmip_uid_t *uids; uint32_t uid_count; kmip_secret_data_type_t secret_type; kmip_template_attrs_t template; } kmip_join_split_key_req_t; typedef struct kmip_join_split_key_resp { kmip_object_type_t object_type; kmip_uid_t uid; kmip_template_attrs_t template; } kmip_join_split_key_resp_t; /* Export (1.4) */ typedef struct kmip_export_req { kmip_uid_t uid; kmip_key_fmt_t key_format; kmip_key_wrap_type_t key_wrap_type; kmip_compress_type_t key_compression; kmip_key_wrap_data_t *key_wrap_data; } kmip_export_req_t; typedef struct kmip_export_resp { kmip_object_type_t object_type; kmip_uid_t uid; kmip_attrs_t key_attrs; kmip_object_t *object; /* depends on objtype */ } kmip_export_resp_t; /* Import (1.4) */ typedef struct kmip_import_req { kmip_uid_t uid; kmip_boolean_t replace; /* default is false */ kmip_key_wrap_type_t key_wrap_type; kmip_attrs_t key_attrs; kmip_object_t *object; } kmip_import_req_t; typedef struct kmip_import_resp { kmip_uid_t uid; } kmip_import_resp_t; /* libkmip structures and types */ /* * Other than KMIP_ENCODE_TTLV follows Additional Message Encodings v1.0 * standard and is used only for testing in the current version of libkmip. */ typedef enum { KMIP_ENCODE_TTLV, KMIP_ENCODE_JSON, KMIP_ENCODE_XML, KMIP_ENCODE_HTTP } kmip_encode_type_t; typedef enum { KMIP_TRANSPORT_TLS } kmip_transport_type_t; typedef struct { kmip_cred_source_type_t cred_source_type; /* * type of data in the ca_cert, cert, * private_key and the p12_bundle items */ char *ca_cert; /* CA cert for KMIP server cert */ char *cert; /* client cert name */ char *private_key; /* client private key file name */ char *p12_bundle; /* client PKCS#12 bundle */ char *p12_bundle_pass; /* client PKCS#12 bundle password */ boolean_t server_cert_subj_cn_verify; /* * subject CN verification * in the server's cert */ } kmip_transport_type_tls_t; typedef union { kmip_transport_type_tls_t tls; } kmip_transport_props_t; typedef struct kmip_server { char *host; /* KMIP server IP address or hostname */ uint16_t port; /* KMIP server listening port */ } kmip_server_t; typedef struct kmip_config { kmip_server_t *server_list; /* list of KMIP servers for fail-over */ uint32_t server_cnt; /* number of servers in the list */ int connection_timeout; /* generic connection timeout */ int32_t failover_limit; /* allowed number of failovers */ char *client_keystore; /* keystore location */ /* encoding */ kmip_encode_type_t encode_type; /* encoding types supported by */ /* the server; TTLV only for now */ /* transport */ kmip_transport_type_t transport_type; /* type */ kmip_transport_props_t transport_props; /* properties */ /* secondary authentication */ kmip_secondary_auth_type_t scnd_auth_type; /* type */ kmip_secondary_auth_props_t scnd_auth_props; /* properties */ /* required KMIP version */ kmip_version_t req_version; /* required version or auto detection */ } kmip_config_t; typedef struct kmip_result { kmip_result_status_t status; /* result status of curr Op */ kmip_result_reason_t reason; /* error reason of current Op */ char *result_msg; /* copied from server response */ kmip_bytestr_t async_correlation; /* with pending status */ } kmip_result_t; typedef struct kmip_reqctl { uint32_t flags; /* See KMIP_REQFLG_* below */ uint32_t max_resp_size; /* Max allowed response size */ kmip_cred_t *cred; /* Additional cred for request */ kmip_msg_ext_t *msg_ext; /* Message extension to include */ } kmip_reqctl_t; #define KMIP_REQFLG_ASYNC_OK 0x00000001 typedef struct kmip_ctx kmip_ctx_t; typedef struct kmip_object_handle kmip_object_handle_t; typedef enum { KMIP_OK, KMIP_ERR_SVR_ADDR, KMIP_ERR_CONNECTION_TIMEOUT, KMIP_ERR_CONNECTION_CLOSED, KMIP_ERR_CONNECTION_UNINITIALIZED, KMIP_ERR_FAILOVER_LIMIT, KMIP_ERR_ENCODE_TYPE, KMIP_ERR_KS_LOC, KMIP_ERR_CA_CERT, KMIP_ERR_CERT, /* client certificate */ KMIP_ERR_PRIVATE_KEY, KMIP_ERR_PKCS12_BUNDLE, KMIP_ERR_ASYNC, KMIP_ERR_VERSION, KMIP_ERR_CONNECT, KMIP_ERR_TRANSPORT, KMIP_ERR_DISCONNECT, KMIP_ERR_ARGUMENTS, KMIP_ERR_MEMORY, KMIP_ERR_CONTEXT, KMIP_ERR_REQUEST_CONTEXT, KMIP_ERR_HANDLE, KMIP_ERR_ENCODE, KMIP_ERR_DECODE, KMIP_ERR_OPERATION, KMIP_ERR_INTERNAL } kmip_return_t; /* batch operation structures */ typedef kmip_req_batch_item_t kmip_batch_op_t; typedef struct kmip_create_op { kmip_create_req_t *create_req; kmip_object_handle_t **handle; kmip_result_t *result; } kmip_create_op_t; typedef struct kmip_locate_op { kmip_locate_req_t *locate_req; kmip_locate_resp_t **locate_resp; kmip_result_t *result; } kmip_locate_op_t; typedef struct kmip_get_op { kmip_get_req_t *get_req; kmip_object_handle_t **out_handle; kmip_result_t *result; } kmip_get_op_t; typedef struct kmip_register_op { kmip_register_req_t *register_req; kmip_object_handle_t **handle; kmip_result_t *result; } kmip_register_op_t; typedef struct kmip_get_attrs_op { kmip_get_attr_req_t *get_attr_req; kmip_get_attr_resp_t **attr_resp; kmip_result_t *result; } kmip_get_attrs_op_t; typedef struct kmip_get_attrlist_op { kmip_get_attrlist_req_t *get_attrlist_req; kmip_get_attrlist_resp_t **attrlist_resp; kmip_result_t *result; } kmip_get_attrlist_op_t; typedef struct kmip_add_attr_op { kmip_add_attr_req_t *add_attr_req; kmip_add_attr_resp_t **add_attr_resp; kmip_result_t *result; } kmip_add_attr_op_t; typedef struct kmip_mod_attr_op { kmip_mod_attr_req_t *mod_attr_req; kmip_mod_attr_resp_t **mod_attr_resp; kmip_result_t *result; } kmip_mod_attr_op_t; typedef struct kmip_del_attr_op { kmip_del_attr_req_t *del_attr_req; kmip_del_attr_resp_t **del_attr_resp; kmip_result_t *result; } kmip_del_attr_op_t; typedef struct kmip_activate_op { kmip_activate_req_t *activate_req; kmip_activate_resp_t **activate_resp; kmip_result_t *result; } kmip_activate_op_t; typedef struct kmip_archive_op { kmip_archive_req_t *archive_req; kmip_archive_resp_t **archive_resp; kmip_result_t *result; } kmip_archive_op_t; typedef struct kmip_certify_op { kmip_certify_req_t *certify_req; kmip_object_handle_t **cert_handle; kmip_result_t *result; } kmip_certify_op_t; typedef struct kmip_create_keypair_op { kmip_create_keypair_req_t *create_keypair_req; kmip_object_handle_t **pri_handle; kmip_object_handle_t **pub_handle; kmip_result_t *result; } kmip_create_keypair_op_t; typedef struct kmip_derive_key_op { kmip_derive_key_req_t *derive_key_req; kmip_object_handle_t **handle; kmip_result_t *result; } kmip_derive_key_op_t; typedef struct kmip_destroy_op { kmip_destroy_req_t *destroy_req; kmip_destroy_resp_t **destroy_resp; kmip_result_t *result; } kmip_destroy_op_t; typedef struct kmip_discover_vers_op { kmip_discover_vers_req_t *discover_req; kmip_discover_vers_resp_t **discover_resp; kmip_result_t *result; } kmip_discover_vers_op_t; typedef struct kmip_check_op { kmip_check_req_t *check_req; kmip_check_resp_t **check_resp; kmip_result_t *result; } kmip_check_op_t; typedef struct kmip_get_usage_op { kmip_get_usage_req_t *get_usage_req; kmip_get_usage_resp_t **get_usage_resp; kmip_result_t *result; } kmip_get_usage_op_t; typedef struct kmip_obtain_lease_op { kmip_obtain_lease_req_t *obtain_lease_req; kmip_obtain_lease_resp_t **obtain_lease_resp; kmip_result_t *result; } kmip_obtain_lease_op_t; typedef struct kmip_query_op { kmip_query_req_t *query_req; kmip_query_resp_t **query_resp; kmip_result_t *result; } kmip_query_op_t; typedef struct kmip_recertify_op { kmip_recertify_req_t *recertify_req; kmip_object_handle_t **new_cert_handle; kmip_result_t *result; } kmip_recertify_op_t; typedef struct kmip_rekey_op { kmip_rekey_req_t *rekey_req; kmip_object_handle_t **handle; kmip_result_t *result; } kmip_rekey_op_t; typedef struct kmip_rekey_keypair_op { kmip_rekey_keypair_req_t *rekey_keypair_req; kmip_object_handle_t **new_pri_handle; kmip_object_handle_t **new_pub_handle; kmip_result_t *result; } kmip_rekey_keypair_op_t; typedef struct kmip_revoke_op { kmip_revoke_req_t *revoke_req; kmip_revoke_resp_t **revoke_resp; kmip_result_t *result; } kmip_revoke_op_t; typedef struct kmip_recover_op { kmip_recover_req_t *recover_req; kmip_uid_t uid; kmip_result_t *result; } kmip_recover_op_t; typedef struct kmip_validate_op { kmip_validate_req_t *validate_req; kmip_validity_t *validity_indicator; kmip_result_t *result; } kmip_validate_op_t; #ifdef __cplusplus } #endif #endif /* _KMIP_TYPES_H_ */