summaryrefslogtreecommitdiff
path: root/usr/src/lib/libkmsagent/common/KMSClientProfile.h
diff options
context:
space:
mode:
authorJohn Sonnenschein <johns@joyent.com>2012-05-17 18:26:57 +0000
committerJohn Sonnenschein <johns@joyent.com>2012-05-17 18:26:57 +0000
commit04b244dd661c24b510ac22936decfc0972d202d3 (patch)
tree3ebfef98afc303fddf3415d6fba64e8682f495e8 /usr/src/lib/libkmsagent/common/KMSClientProfile.h
parenteac250589e41f1b705e1b7427b02b3379aac9f9e (diff)
parenta69187741b83640a90dd8586195456dd50c016a8 (diff)
downloadillumos-joyent-20120517.tar.gz
Merge git.joyent.com:illumos-joyent20120517
Diffstat (limited to 'usr/src/lib/libkmsagent/common/KMSClientProfile.h')
-rw-r--r--usr/src/lib/libkmsagent/common/KMSClientProfile.h456
1 files changed, 0 insertions, 456 deletions
diff --git a/usr/src/lib/libkmsagent/common/KMSClientProfile.h b/usr/src/lib/libkmsagent/common/KMSClientProfile.h
deleted file mode 100644
index e0a635e7eb..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSClientProfile.h
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*-------------------------------------------------------------------------*/
-/**
- * \file KMSClientProfile.h
- *
- * The KMS Client profile management API, including profile setup, CA
- * certificate download, and Certificate retrieval
- *
- */
-/*-------------------------------------------------------------------------*/
-
-#ifndef KMSCLIENT_PROFILE_H
-#define KMSCLIENT_PROFILE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef KMS_LONG_LONG
-#define KMS_LONG_LONG
-
-#ifdef WIN32
- typedef __int64 Long64;
-#else
- typedef long long Long64;
-#endif
-
-
-#endif
-
-#ifdef KMSUSERPKCS12
-#define CLIENT_PK12_FILE "clientkey.p12"
-#endif
-
-/**
- * \note UTF-8 encoding is used for the underlying SOAP RPC transactions by
- * this API. In order to support environments lacking wchar.h
- * traditional C strings are used instead.
- */
-typedef char * utf8cstr;
-
-/**
- * @see commments for utf8cstr.
- */
-typedef char utf8char;
-
-/**
- * KMS Agent Toolkit Version identifier
- */
-#define KMS_AGENT_VERSION 0x210
-
-/*---------------------------------------------------------------------------
- * Limits and sizes
- *--------------------------------------------------------------------------*/
-/**
- * The maximum length of an agent name.
- */
-#define KMS_MAX_AGENT_NAME 64
-
-/**
- * The size of a data unit ID in bytes.
- */
-#define KMS_DATA_UNIT_ID_SIZE 16
-
-/**
- * The maximum lenght of a description for key group or data unit.
- */
-#define KMS_MAX_DESCRIPTION 64
-
-/**
- * The maximum maximum length of an external unique id.
- */
-#define KMS_MAX_EXTERNAL_UNIQUE_ID_SIZE 32
-
-/**
- * The maximum external tag length.
- */
-#define KMS_MAX_EXTERNAL_TAG 64
-
-/**
- * The size of a key ID in bytes.
- */
-#define KMS_KEY_ID_SIZE 30
-
-/**
- * The size of an AES Key Wrapping Key ID.
- */
-#define KMS_KWK_KEY_ID_SIZE 8
-
-/**
- * The maximum size of a key in bytes.
- */
-#define KMS_MAX_KEY_SIZE 32
-
-/**
- * The maximum size of an wrapped key(RFC3394 AES Key Wrap) in bytes.
- */
-#define KMS_MAX_WRAPPED_KEY_SIZE KMS_MAX_KEY_SIZE+8
-
-/**
- * The maximum length of a key group ID.
- */
-#define KMS_MAX_KEY_GROUP_ID_SIZE 64
-
-/**
- * The maximum size of a key group list to be returned. This should
- * be sufficient for agents as this is an atypical call.
- */
-#define KMS_MAX_LIST_KEY_GROUPS 100
-
-/**
- * The maximum number of keys returned in a key list.
- */
-#define KMS_MAX_PAGE_SIZE 32
-
-/**
- * The maximum passphrase length.
- */
-#define KMS_MAX_PASSPHRASE 64
-
-/**
- * The maximum length of agent's name, aka ID.
- */
-#define KMS_MAX_ENTITY_ID 64
-
-/**
- * The maximum length of an agent's sited ID.
- */
-#define KMS_MAX_ENTITY_SITE_ID 64
-
-/**
- * The maximum length of a URL.
- */
-#define KMS_MAX_URL 512
-
-/**
- * The maximum length of a filter parameter field name.
- */
-#define KMS_MAX_FIELD_NAME 64
-
-/**
- * The maximum length of a query parameter sort field value.
- */
-#define KMS_MAX_FIELD_VALUE 64
-
-/**
- * The maximum ID length used in various types of IDs.
- */
-#define KMS_MAX_ID 64
-
-/**
- * The maximum length of a KMA network address, either IPv4 or IPv6.
- * Also maximum hostname length if/when hostnames are supported
- */
-#define KMS_MAX_NETWORK_ADDRESS 256
-
-/**
- * The maximum length of a file name.
- */
-#define KMS_MAX_FILE_NAME 256
-
-/**
- * The maximum length of error strings.
- */
-#define KMS_MAX_ERROR_STRING 1024
-
-/**
- * the number of nodes in a KMS is variable. This constant
- * dictates how many of the KMAs in a KMS will be saved to the
- * profile, persisted to storage and used for load balancing and failover. See
- * <code>KMSAgent_GetClusterInformation</code>
- * Range: 1 .. max int, users should con
- */
-#ifndef KMS_MAX_CLUSTER_NUM
-#define KMS_MAX_CLUSTER_NUM 20
-#endif
-
-/**
- * The maximum length for SHA1 hashes used in authentication.
- */
-#define KMS_MAX_HASH_SIZE 20
-
-/**
- * The maximum length of a KMS verstion string.
- */
-#define KMS_MAX_VERSION_LENGTH 100
-
-/**
- * The maximum length of working directory.
- */
-#define KMS_MAX_PATH_LENGTH 1024
-
-/**
- * typedef for Key ID
- */
-typedef unsigned char KEY_ID [KMS_KEY_ID_SIZE];
-
-/**
- * typedef for an unwrapped Key
- */
-typedef unsigned char KEY [KMS_MAX_KEY_SIZE];
-
-/**
- * typedef for an AES wrapped key
- */
-typedef unsigned char WRAPPED_KEY [KMS_MAX_WRAPPED_KEY_SIZE];
-
-/**
- * typedef for KMSClusterEntry struct
- */
-typedef struct KMSClusterEntry KMSClusterEntry;
-
-/** \struct KMSClusterEntry
- * A struct representing each Key Management Appliance discovered in the KMS cluster
- */
-struct KMSClusterEntry
-{
- /**
- * The KMA's identifier.
- */
- Long64 m_lApplianceID;
-
- /**
- * The KMA's name.
- */
- utf8char m_wsApplianceAlias[KMS_MAX_ENTITY_ID + 1];
-
- /**
- * The Sited ID for the KMA.
- */
- utf8char m_wsApplianceSiteID[KMS_MAX_ENTITY_SITE_ID + 1];
-
- /**
- * A network address for the KMA that corresponds to the agent's network.
- * KMAs are multi-homed so only an address useful to the agent is provided.
- */
- utf8char m_wsApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS + 1];
-
- /**
- * Enabled status for the KMA, 1 for enabled, 0 if disabled.
- */
- int m_iEnabled;
-
- /**
- * Unused at present but may be used for reporting a KMAs load to be used
- * as a load balancing heuristic.
- */
- Long64 m_lLoad;
-
- /**
- * A boolean indicating the current response status of a KMA on the network.
- * A non-responding KMA may be either down or unreachable due to the network.
- */
- int m_iResponding;
-
- /**
- * The KMA's version level.
- */
- utf8char m_sKMAVersion[KMS_MAX_VERSION_LENGTH+1];
-
- /**
- * KMA lock status as provided by KMS Discover Cluster service. Defaults
- * to false for KMAs earlier than KMS 2.3 where it was first introduced.
- */
- int m_iKMALocked;
-};
-
-
-/**
- * the profile for an agent. The profile contains sections that are persisted
- * and fields that are volatile. See KMSAgentStorage.h for interfaces to load/store
- * the persistent sections.
- * <p><b>Note</b> that members of this struct should
- * not be accessed directly by users of this library.
- */
-
-/** \struct KMSClientProfile
- * the properties comprising the profile, some of which must be persisted.
- */
-typedef struct KMSClientProfile_s
-{
- /**
- * the version of the KMS Agent Library
- */
- int m_iVersion;
-
- /**
- * Profile Name
- */
- utf8char m_wsProfileName[KMS_MAX_ENTITY_ID + 1];
-
- /**
- * Subject Name
- */
- utf8char m_wsEntityID[KMS_MAX_ENTITY_ID + 1];
-
- /**
- * Appliance Address used for enrollment and discovery
- */
- utf8char m_wsApplianceAddress[KMS_MAX_NETWORK_ADDRESS + 1];
-
- /**
- * KMS CA service port
- */
- int m_iPortForCAService;
- /**
- * KMS Certificate service port
- */
- int m_iPortForCertificateService;
-
- /**
- * KMS Agent service port
- */
- int m_iPortForAgentService;
-
- /**
- * KMS Discovery service port
- */
- int m_iPortForDiscoveryService;
-
- /**
- * timeout in seconds before failover to alternate KMS in cluster
- */
- int m_iTransactionTimeout;
-
- /**
- * the number of times failover will be attempted
- */
- int m_iFailoverLimit;
-
- /**
- * the number of times the current transaction has failed over
- */
- int m_iFailoverAttempts;
-
- /**
- * TRUE when agent has enrolled and stored its certificates.
- */
- int m_iEnrolled;
-
- /**
- * The agent's passphrase after "key stretching", i.e. hashing the number of
- * times specified by the KMA during enrollment, and converted to hexadecimal.
- */
- char m_sHexHashedPassphrase[2*KMS_MAX_HASH_SIZE+1];
-
- /**
- * gSOAP runtime context.
- */
- void *m_pvSoap;
-
- /**
- * gSOAP runtime context for discovery.
- */
- void *m_pvDiscoverySoap;
-
- /**
- * A lock used internally by the agent library.
- */
- void *m_pLock;
-
- /**
- * The minimum interval between automatic cluster discovery requests in seconds.
- * A value of zero seconds disables load balancing and periodic cluster
- * discovery calls.
- */
- int m_iClusterDiscoveryFrequency;
-
- /**
- * The time in seconds when the cluster discovery service was last called for the
- * current session.
- */
- int m_iLastClusterDiscoveryTime;
-
- /**
- * The Site ID assigned to the agent by the KMS administrators.
- */
- utf8char m_wsEntitySiteID[KMS_MAX_ENTITY_SITE_ID + 1];
-
- /**
- * The total number of KMA in the KMS cluster as reported by the last
- * cluster discovery.
- */
- int m_iClusterNum;
-
- /**
- * An array of the KMAs withhin the cluster.
- */
- KMSClusterEntry m_aCluster[KMS_MAX_CLUSTER_NUM];
-
- /**
- * A boolean flag for the first cluster discovery call.
- */
- int m_bIsClusterDiscoveryCalled;
-
- /**
- * A handle to the DataUnitCache used for selection of a KMA.
- */
- void *m_pDataUnitCache;
-
- /**
- * A handle to the load balancer.
- */
- void *m_pAgentLoadBalancer;
-
- /**
- * error string
- */
- utf8char m_wsErrorString[KMS_MAX_ERROR_STRING + 1];
-
- /**
- * URL to KMA service within cluster
- */
- char m_sURL[KMS_MAX_URL + 1];
-
- /**
- * The security mode specified to <code>KMSAgent_LoadProfile</code>
- */
- int m_eKMSmode;
-
-#ifdef KMSUSERPKCS12
- int m_iLastErrorCode;
-#endif
-} KMSClientProfile;
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
-