Return to CIMTrustCommand.h CVS log | Up to [Pegasus] / pegasus / src / Clients / cimtrust |
File: [Pegasus] / pegasus / src / Clients / cimtrust / CIMTrustCommand.h
(download)
Revision: 1.1, Tue Aug 8 16:25:08 2006 UTC (17 years, 11 months ago) by sushma.fernandes Branch: MAIN CVS Tags: TASK_PEP328_SOLARIS_NEVADA_PORT, TASK-TASK-BUG4011_WinLocalConnect-branch-New-root, TASK-TASK-BUG4011_WinLocalConnect-branch-New-merged_out_to_branch, TASK-TASK-BUG4011_WinLocalConnect-branch-New-merged_out_from_trunk, TASK-TASK-BUG4011_WinLocalConnect-branch-New-merged_in_to_trunk, TASK-TASK-BUG4011_WinLocalConnect-branch-New-merged_in_from_branch, TASK-TASK-BUG4011_WinLocalConnect-branch-New-branch, TASK-PEP328_SOLARIS_NEVADA_PORT_v2-root, TASK-PEP328_SOLARIS_NEVADA_PORT_v2-branch, TASK-PEP328_SOLARIS_NEVADA_PORT-root, TASK-PEP328_SOLARIS_NEVADA_PORT-branch, TASK-PEP328_SOLARIS_IX86_CC_PORT-root, TASK-PEP328_SOLARIS_IX86_CC_PORT-branch-v2, TASK-PEP328_SOLARIS_IX86_CC_PORT-branch, TASK-PEP311_WSMan-root, TASK-PEP311_WSMan-branch, TASK-PEP305_VXWORKS-root, TASK-PEP305_VXWORKS-branch-pre-solaris-port, TASK-PEP305_VXWORKS-branch-post-solaris-port, TASK-PEP305_VXWORKS-branch-beta2, TASK-PEP305_VXWORKS-branch, TASK-PEP305_VXWORKS-2008-10-23, TASK-PEP291_IPV6-root, TASK-PEP291_IPV6-branch, TASK-PEP286_PRIVILEGE_SEPARATION-root, TASK-PEP286_PRIVILEGE_SEPARATION-branch, TASK-PEP274_dacim-root, TASK-PEP274_dacim-merged_out_to_branch, TASK-PEP274_dacim-merged_out_from_trunk, TASK-PEP274_dacim-merged_in_to_trunk, TASK-PEP274_dacim-merged_in_from_branch, TASK-PEP274_dacim-branch, TASK-PEP268_SSLClientCertificatePropagation-root, TASK-PEP268_SSLClientCertificatePropagation-merged_out_to_branch, TASK-PEP268_SSLClientCertificatePropagation-merged_out_from_trunk, TASK-PEP268_SSLClientCertificatePropagation-merged_in_to_trunk, TASK-PEP268_SSLClientCertificatePropagation-merged_in_from_branch, TASK-PEP268_SSLClientCertificatePropagation-branch, TASK-PEP267_SLPReregistrationSupport-root, TASK-PEP267_SLPReregistrationSupport-merging_out_to_branch, TASK-PEP267_SLPReregistrationSupport-merging_out_from_trunk, TASK-PEP267_SLPReregistrationSupport-merged_out_to_branch, TASK-PEP267_SLPReregistrationSupport-merged_out_from_trunk, TASK-PEP267_SLPReregistrationSupport-merged_in_to_trunk, TASK-PEP267_SLPReregistrationSupport-merged_in_from_branch, TASK-PEP267_SLPReregistrationSupport-branch, TASK-Bugs5690_3913_RemoteCMPI-root, TASK-Bugs5690_3913_RemoteCMPI-merged_out_to_branch, TASK-Bugs5690_3913_RemoteCMPI-merged_out_from_trunk, TASK-Bugs5690_3913_RemoteCMPI-merged_in_to_trunk, TASK-Bugs5690_3913_RemoteCMPI-merged_in_from_branch, TASK-Bugs5690_3913_RemoteCMPI-branch, TASK-Bug2102_RCMPIWindows-root, TASK-Bug2102_RCMPIWindows-merged_out_to_branch, TASK-Bug2102_RCMPIWindows-merged_out_from_trunk, TASK-Bug2102_RCMPIWindows-merged_in_to_trunk, TASK-Bug2102_RCMPIWindows-merged_in_from_branch, TASK-Bug2102_RCMPIWindows-branch, TASK-Bug2102Final-root, TASK-Bug2102Final-merged_out_to_branch, TASK-Bug2102Final-merged_out_from_trunk, TASK-Bug2102Final-merged_in_to_trunk, TASK-Bug2102Final-merged_in_from_branch, TASK-Bug2102Final-branch, TASK-Bug2021_RemoteCMPIonWindows-root, TASK-Bug2021_RemoteCMPIonWindows-merged_out_to_branch, TASK-Bug2021_RemoteCMPIonWindows-merged_out_from_trunk, TASK-Bug2021_RemoteCMPIonWindows-merged_in_to_trunk, TASK-Bug2021_RemoteCMPIonWindows-merged_in_from_branch, TASK-Bug2021_RemoteCMPIonWindows-branch, TASK-Bug2021_RCMPIonWindows-root, TASK-Bug2021_RCMPIonWindows-merged_out_to_branch, TASK-Bug2021_RCMPIonWindows-merged_out_from_trunk, TASK-Bug2021_RCMPIonWindows-merged_in_to_trunk, TASK-Bug2021_RCMPIonWindows-merged_in_from_branch, TASK-Bug2021_RCMPIonWindows-branch, TASK-BUG7240-root, TASK-BUG7240-branch, TASK-BUG7146_SqlRepositoryPrototype-root, TASK-BUG7146_SqlRepositoryPrototype-merged_out_to_branch, TASK-BUG7146_SqlRepositoryPrototype-merged_out_from_trunk, TASK-BUG7146_SqlRepositoryPrototype-merged_in_to_trunk, TASK-BUG7146_SqlRepositoryPrototype-merged_in_from_branch, TASK-BUG7146_SqlRepositoryPrototype-branch, TASK-BUG4011_WinLocalConnect-branch-New, RELEASE_2_8_2-RC1, RELEASE_2_8_2, RELEASE_2_8_1-RC1, RELEASE_2_8_1, RELEASE_2_8_0_BETA, RELEASE_2_8_0-RC2, RELEASE_2_8_0-RC1, RELEASE_2_8_0-FC, RELEASE_2_8_0, RELEASE_2_8-root, RELEASE_2_8-branch, RELEASE_2_7_3-RC1, RELEASE_2_7_3, RELEASE_2_7_2-RC1, RELEASE_2_7_2, RELEASE_2_7_1-RC1, RELEASE_2_7_1, RELEASE_2_7_0-RC1, RELEASE_2_7_0-BETA, RELEASE_2_7_0, RELEASE_2_7-root, RELEASE_2_7-branch, RELEASE_2_6_3-RC2, RELEASE_2_6_3-RC1, RELEASE_2_6_3, RELEASE_2_6_2-RC1, RELEASE_2_6_2, RELEASE_2_6_1-RC1, RELEASE_2_6_1, RELEASE_2_6_0-RC1, RELEASE_2_6_0-FC, RELEASE_2_6_0, RELEASE_2_6-root, RELEASE_2_6-branch-clean, RELEASE_2_6-branch, PEP286_PRIVILEGE_SEPARATION_ROOT, PEP286_PRIVILEGE_SEPARATION_CODE_FREEZE, PEP286_PRIVILEGE_SEPARATION_BRANCH, PEP286_PRIVILEGE_SEPARATION_1, Makefile BUG#: 5327 TITLE: PEP 259 SSL Certificate Management Command Interfaces - phase 1 DESCRIPTION: Updated the Certificate Provider, HTTPAuthenticator and PG_SSLCertificate MOF to incorporate changes as per PEP 259. Added the new cimtrust CLI and unit tests. |
//%2006//////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; // IBM Corp.; EMC Corporation, The Open Group. // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; // EMC Corporation; VERITAS Software Corporation; The Open Group. // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; // EMC Corporation; Symantec Corporation; The Open Group. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //============================================================================== // // Author: Nag Boranna, Hewlett-Packard Company (nagaraja.boranna@hp.com) // // Modified By: David Dillard, VERITAS Software Corp. // (david.dillard@veritas.com) // Vijay Eli, vijayeli@in.ibm.com, fix for #2572 // Sushma Fernandes, Hewlett-Packard Company // sushma@hp.com, PEP 259 // //%///////////////////////////////////////////////////////////////////////////// #ifndef Pegasus_CIMTrustCommand_h #define Pegasus_CIMTrustCommand_h #include <Pegasus/Common/String.h> #include <Pegasus/Client/CIMClient.h> #include <Clients/cliutils/Command.h> #include <Clients/cliutils/CommandException.h> PEGASUS_NAMESPACE_BEGIN /** The CIMTrustCommand command provides a command line interface to manage X509 certificates in a PEM format truststore. The command supports add, remove and list operations on the trust store. The CIMTrustCommand command requires the CIM Server to be running on the local host. @author Hewlett-Packard Company */ class CIMTrustCommand : public Command { public: enum { DEFAULT_TIMEOUT_MILLISECONDS = 200000 }; /** Constructs a CIMTrustCommand and initializes instance variables. */ CIMTrustCommand (); /** Parses the command line, validates the options, and sets instance variables based on the option arguments. @param argc the number of command line arguments @param argv the string vector of command line arguments @exception CommandFormatException if an error is encountered in parsing the command line */ void setCommand (Uint32 argc, char* argv []); /** Executes the command and writes the results to the PrintWriters. @param outPrintWriter the ostream to which output should be written @param errPrintWriter the ostream to which error output should be written @return 0 if the command is successful 1 if an error occurs in executing the command */ Uint32 execute ( PEGASUS_STD(ostream)& outPrintWriter, PEGASUS_STD(ostream)& errPrintWriter); /** The command name. */ static const char COMMAND_NAME []; private: /** Connect to cimserver. @param client the handle to CIMClient object @param outPrintWriter the ostream to which output should be written @exception Exception if an error is encountered in creating the connection */ void _connectToServer( CIMClient& client, PEGASUS_STD(ostream)& outPrintWriter ); /** Convert CIMDateTime to user-readable string of the format month day-of-month, year hour:minute:second (value-hrs-GMT-offset) @param cimDateTimeStr CIM formated DateTime String @return String user-readable date time string. */ String _formatCIMDateTime(const String& cimDateTimeStr); /** Read certificate content. @param certFilePath the certificate file path @return Buffer containing the certificate content */ Buffer _readCertificateContent(const String &certFilePath); /** Add a new certificate to the trust store @param client the handle to CIMClient object @param outPrintWriter the ostream to which output should be written */ void _addCertificate ( CIMClient& client, PEGASUS_STD(ostream)& outPrintWriter); /** Remove an existing certificate from the trust store @param client the handle to CIMClient object @param outPrintWriter the ostream to which output should be written */ void _removeCertificate ( CIMClient& client, PEGASUS_STD(ostream)& outPrintWriter); /** List certificates in the trust store @param client the handle to CIMClient object @param outPrintWriter the ostream to which output should be written */ void _listCertificates ( CIMClient& client, PEGASUS_STD(ostream)& outPrintWriter); /** The certificate file to be added to the trust store. */ String _certFile; /** Indicates that the certificate file is set. */ Boolean _certFileSet; /** The user name to be mapped with the certificate being added to the trust store. */ String _certUser; /** Indicates that the mapping certificate user is set. */ Boolean _certUserSet; /** The issuer name of the certificate to be removed or listed from the trust store. */ String _issuer; /** Indicates that the issuer name is set. */ Boolean _issuerSet; /** The type of the certificate */ String _type; /** Indicates that the type is set. */ Boolean _typeSet; /** The serial number of the certificate to be removed or listed from the trust store for a specified issuer. */ String _serialNumber; /** Indicates that the serial number is set. */ Boolean _serialNumberSet; /** The subject of the certificate to be removed from the trust store for a specified issuer. */ String _subject; /** Indicates that the subject name is set. */ Boolean _subjectSet; /** The timeout value to be used in milliseconds. The default timeout value is DEFAULT_TIMEOUT_MILLISECONDS. */ Uint32 _timeout; /** The type of operation specified on the command line. */ Uint32 _operationType; /** The usage string. */ String _usage; /** The option character used to specify the add option. */ static const char _OPTION_ADD; /** The option character used to specify the remove option. */ static const char _OPTION_REMOVE; /** The option character used to specify the list option. */ static const char _OPTION_LIST; /** The option character used to display help info. */ static const char _OPTION_HELP; /** The option character used to display version info. */ static const char _OPTION_VERSION; /** The option character used to specify the certificate file. */ static const char _OPTION_CERTFILE; /** The option character used to specify the certificate user name. */ static const char _OPTION_CERTUSER; /** The option character used to specify the issuer name. */ static const char _OPTION_ISSUER; /** The option character used to specify the serial number. */ static const char _OPTION_SERIALNUMBER; /** The option character used to specify the certificate type. */ static const char _OPTION_TYPE; /** Specifies the certificate types. */ enum _CERTIFICATE_TYPES { _CERTIFICATE_TYPE_UNKNOWN = 0, _CERTIFICATE_TYPE_AUTHORITY = 2, _CERTIFICATE_TYPE_AUTHORITY_END_ENTITY = 3, _CERTIFICATE_TYPE_SELF_SIGNED_IDENTITY = 4 }; /** The character used to specify the authority type. */ static const String _ARG_TYPE_AUTHORITY; /** The character used to specify the authority issued end-entity type. */ static const String _ARG_TYPE_AUTHORITY_END_ENTITY; /** The character used to specify the self-signed identity type. */ static const String _ARG_TYPE_SELF_SIGNED_IDENTITY; /** The option character used to specify the subject. */ static const char _OPTION_SUBJECT; /** Label for the usage string for this command. */ static const char _USAGE []; /** This constant signifies that an operation option has not been recorded */ static const Uint32 _OPERATION_TYPE_UNINITIALIZED; /** The constant representing a add operation */ static const Uint32 _OPERATION_TYPE_ADD; /** The constant representing a remove operation */ static const Uint32 _OPERATION_TYPE_REMOVE; /** The constant representing a list operation */ static const Uint32 _OPERATION_TYPE_LIST; /** The constant representing a help operation */ static const Uint32 _OPERATION_TYPE_HELP; /** The constant representing a version display operation */ static const Uint32 _OPERATION_TYPE_VERSION; }; PEGASUS_NAMESPACE_END #endif /* Pegasus_CIMTrustCommand_h */
No CVS admin address has been configured |
Powered by ViewCVS 0.9.2 |