ServerSSLCert.idl
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* Copyright 2010 Raritan Inc. All rights reserved.
*/
/**
* TLS Certificate Management
*/
module cert {
/** TLS certificate management interface */
interface ServerSSLCert_2_0_0 {
/** success code */
constant int SUCCESS = 0;
/** key-pair generation error codes */
constant int ERR_GEN_KEY_LEN_INVALID = 100;
constant int ERR_GEN_CSR_OR_CERT_PENDING = 101;
constant int ERR_GEN_KEY_GEN_FAILED = 102;
/** key-pair installation error codes */
constant int ERR_INSTALL_KEY_MISSING = 200;
constant int ERR_INSTALL_CERT_MISSING = 201;
constant int ERR_INSTALL_CERT_FORMAT_INVALID = 202;
constant int ERR_INSTALL_CERT_KEY_MISMATCH = 203;
/** Certificate issuer or subject attributes */
structure CommonAttributes {
string country; ///< Country code
string stateOrProvince; ///< State or province
string locality; ///< Locality or city
string organization; ///< Organization
string organizationalUnit; ///< Organizational Unit
string commonName; ///< Common Name
string emailAddress; ///< Email Address
};
/**
* Certificate signing request information
*
* If names is empty then commonName from the subject is used as single entry.
*/
structure ReqInfo {
CommonAttributes subject; ///< Certificate subject attributes
vector<string> names; ///< DNS names and/or IP addresses
int keyLength; ///< Key length in bits
};
/** Certificate information */
structure CertInfo {
CommonAttributes subject; ///< Subject attributes
CommonAttributes issuer; ///< Issuer attributes
vector<string> names; ///< DNS names and/or IP addresses
string invalidBefore; ///< Begin of validity period
string invalidAfter; ///< End of validity period
string serialNumber; ///< Serial number
int keyLength; ///< Key length in bits
};
/** Certificate manager information */
structure Info {
boolean havePendingReq; ///< \c true if a CSR is pending
boolean havePendingCert; ///< \c true if an uploaded certificate is pending activation
ReqInfo pendingReqInfo; ///< Information about pending CSR
CertInfo pendingCertInfo; ///< Information about pending certificate
CertInfo activeCertInfo; ///< Information about active certificate
int maxSignDays; ///< Maximum number of days a self signed certificate will be valid.
};
/**
* Generate an unsigned key pair.
*
* @param reqInfo Certificate signing request information
* @param challenge Challenge password
*
* @return SUCCESS or one of the error code constants
*/
int generateUnsignedKeyPair(in ReqInfo reqInfo, in string challenge);
/**
* Generate a self-signed key pair.
*
* @param reqInfo Certificate signing request information
* @param days Number of days the certificate will be valid
*
* @return SUCCESS or one of the error code constants
*/
int generateSelfSignedKeyPair(in ReqInfo reqInfo, in int days);
/**
* Remove a pending certificate signing request or certificate.
*/
void deletePending();
/**
* Retrieve certificate manager information.
*
* @param info Result: Certificate manager information
*/
void getInfo(out Info info);
/**
* Activate a pending key pair.
*
* @return SUCCESS or one of the error code constants
*/
int installPendingKeyPair();
};
}
cert::ServerSSLCert_2_0_0::Info::activeCertInfo
CertInfo activeCertInfo
Information about active certificate.
Definition: ServerSSLCert.idl:67
cert::ServerSSLCert_2_0_0::CertInfo::serialNumber
string serialNumber
Serial number.
Definition: ServerSSLCert.idl:57
cert::ServerSSLCert_2_0_0::Info
Certificate manager information.
Definition: ServerSSLCert.idl:62
cert::ServerSSLCert_2_0_0::CertInfo::invalidAfter
string invalidAfter
End of validity period.
Definition: ServerSSLCert.idl:56
cert::ServerSSLCert_2_0_0::CertInfo
Certificate information.
Definition: ServerSSLCert.idl:51
cert::ServerSSLCert_2_0_0::Info::havePendingReq
boolean havePendingReq
true if a CSR is pending
Definition: ServerSSLCert.idl:63
cert::ServerSSLCert_2_0_0::CommonAttributes::stateOrProvince
string stateOrProvince
State or province.
Definition: ServerSSLCert.idl:31
cert::ServerSSLCert_2_0_0::Info::pendingReqInfo
ReqInfo pendingReqInfo
Information about pending CSR.
Definition: ServerSSLCert.idl:65
cert::ServerSSLCert_2_0_0::Info::havePendingCert
boolean havePendingCert
true if an uploaded certificate is pending activation
Definition: ServerSSLCert.idl:64
cert::ServerSSLCert_2_0_0::CommonAttributes::country
string country
Country code.
Definition: ServerSSLCert.idl:30
cert::ServerSSLCert_2_0_0::Info::maxSignDays
int maxSignDays
Maximum number of days a self signed certificate will be valid.
Definition: ServerSSLCert.idl:68
cert::ServerSSLCert_2_0_0::ReqInfo
Certificate signing request information.
Definition: ServerSSLCert.idl:44
cert::ServerSSLCert_2_0_0::CommonAttributes
Certificate issuer or subject attributes.
Definition: ServerSSLCert.idl:29
cert::ServerSSLCert_2_0_0::ReqInfo::keyLength
int keyLength
Key length in bits.
Definition: ServerSSLCert.idl:47
cert::ServerSSLCert_2_0_0::CertInfo::names
vector< string > names
DNS names and/or IP addresses.
Definition: ServerSSLCert.idl:54
cert::ServerSSLCert_2_0_0::CertInfo::invalidBefore
string invalidBefore
Begin of validity period.
Definition: ServerSSLCert.idl:55
cert::ServerSSLCert_2_0_0::CommonAttributes::organizationalUnit
string organizationalUnit
Organizational Unit.
Definition: ServerSSLCert.idl:34
cert
TLS Certificate Management.
Definition: ServerSSLCert.idl:9
cert::ServerSSLCert_2_0_0::CertInfo::subject
CommonAttributes subject
Subject attributes.
Definition: ServerSSLCert.idl:52
cert::ServerSSLCert_2_0_0::Info::pendingCertInfo
CertInfo pendingCertInfo
Information about pending certificate.
Definition: ServerSSLCert.idl:66
cert::ServerSSLCert_2_0_0::CommonAttributes::locality
string locality
Locality or city.
Definition: ServerSSLCert.idl:32
cert::ServerSSLCert_2_0_0::ReqInfo::names
vector< string > names
DNS names and/or IP addresses.
Definition: ServerSSLCert.idl:46
cert::ServerSSLCert_2_0_0::CommonAttributes::organization
string organization
Organization.
Definition: ServerSSLCert.idl:33
cert::ServerSSLCert_2_0_0
TLS certificate management interface.
Definition: ServerSSLCert.idl:12
cert::ServerSSLCert_2_0_0::CertInfo::issuer
CommonAttributes issuer
Issuer attributes.
Definition: ServerSSLCert.idl:53
cert::ServerSSLCert_2_0_0::CommonAttributes::commonName
string commonName
Common Name.
Definition: ServerSSLCert.idl:35
cert::ServerSSLCert_2_0_0::CommonAttributes::emailAddress
string emailAddress
Email Address.
Definition: ServerSSLCert.idl:36
cert::ServerSSLCert_2_0_0::CertInfo::keyLength
int keyLength
Key length in bits.
Definition: ServerSSLCert.idl:58
cert::ServerSSLCert_2_0_0::ReqInfo::subject
CommonAttributes subject
Certificate subject attributes.
Definition: ServerSSLCert.idl:45