Ice 3.7 C++98 API Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Plugin.h
Go to the documentation of this file.
1 //
2 // Copyright (c) ZeroC, Inc. All rights reserved.
3 //
4 
5 #ifndef ICESSL_PLUGIN_H
6 #define ICESSL_PLUGIN_H
7 
8 #include <Ice/Plugin.h>
9 #include <IceSSL/Config.h>
10 #include <IceSSL/ConnectionInfoF.h>
11 
12 #ifdef ICE_CPP11_MAPPING
13 # include <chrono>
14 #else
15 # include <IceUtil/Time.h>
16 #endif
17 
18 #include <vector>
19 #include <list>
20 
21 #ifndef ICESSL_API
22 # if defined(ICE_STATIC_LIBS)
23 # define ICESSL_API
24 # elif defined(ICESSL_API_EXPORTS)
25 # define ICESSL_API ICE_DECLSPEC_EXPORT
26 # else
27 # define ICESSL_API ICE_DECLSPEC_IMPORT
28 # endif
29 #endif
30 
31 namespace IceSSL
32 {
33 
37 #ifdef ICE_CPP11_MAPPING
38 enum class TrustError : unsigned char
39 #else
41 #endif
42 {
44  NoError = 0,
86 };
87 
91 
95 const unsigned int KEY_USAGE_DIGITAL_SIGNATURE = 1u << 0;
99 const unsigned int KEY_USAGE_NON_REPUDIATION = 1u << 1;
103 const unsigned int KEY_USAGE_KEY_ENCIPHERMENT = 1u << 2;
107 const unsigned int KEY_USAGE_DATA_ENCIPHERMENT = 1u << 3;
111 const unsigned int KEY_USAGE_KEY_AGREEMENT = 1u << 4;
115 const unsigned int KEY_USAGE_KEY_CERT_SIGN = 1u << 5;
119 const unsigned int KEY_USAGE_CRL_SIGN = 1u << 6;
123 const unsigned int KEY_USAGE_ENCIPHER_ONLY = 1u << 7;
127 const unsigned int KEY_USAGE_DECIPHER_ONLY = 1u << 8;
128 
132 const unsigned int EXTENDED_KEY_USAGE_ANY_KEY_USAGE = 1u << 0;
136 const unsigned int EXTENDED_KEY_USAGE_SERVER_AUTH = 1u << 1;
140 const unsigned int EXTENDED_KEY_USAGE_CLIENT_AUTH = 1u << 2;
144 const unsigned int EXTENDED_KEY_USAGE_CODE_SIGNING = 1u << 3;
148 const unsigned int EXTENDED_KEY_USAGE_EMAIL_PROTECTION = 1u << 4;
152 const unsigned int EXTENDED_KEY_USAGE_TIME_STAMPING = 1u << 5;
156 const unsigned int EXTENDED_KEY_USAGE_OCSP_SIGNING = 1u << 6;
157 
162 class ICESSL_API CertificateReadException : public IceUtil::ExceptionHelper<CertificateReadException>
163 {
164 public:
165 
166  CertificateReadException(const char*, int, const std::string&);
167 
168 #ifndef ICE_CPP11_COMPILER
169  virtual ~CertificateReadException() throw();
170 #endif
171 
172  virtual std::string ice_id() const;
173 
174 #ifndef ICE_CPP11_MAPPING
175 
180 #endif
181 
183  std::string reason;
184 
185 private:
186 
187  static const char* _name;
188 };
189 
194 class ICESSL_API CertificateEncodingException : public IceUtil::ExceptionHelper<CertificateEncodingException>
195 {
196 public:
197 
198  CertificateEncodingException(const char*, int, const std::string&);
199 
200 #ifndef ICE_CPP11_COMPILER
201  virtual ~CertificateEncodingException() throw();
202 #endif
203 
204  virtual std::string ice_id() const;
205 
206 #ifndef ICE_CPP11_MAPPING
207 
212 #endif
213 
215  std::string reason;
216 
217 private:
218 
219  static const char* _name;
220 };
221 
226 class ICESSL_API ParseException : public IceUtil::ExceptionHelper<ParseException>
227 {
228 public:
229 
230  ParseException(const char*, int, const std::string&);
231 
232 #ifndef ICE_CPP11_COMPILER
233  virtual ~ParseException() throw();
234 #endif
235 
236  virtual std::string ice_id() const;
237 
238 #ifndef ICE_CPP11_MAPPING
239 
243  virtual ParseException* ice_clone() const;
244 #endif
245 
247  std::string reason;
248 
249 private:
250 
251  static const char* _name;
252 };
253 
268 {
269 public:
270 
276  explicit DistinguishedName(const std::string& name);
277 
285  explicit DistinguishedName(const std::list<std::pair<std::string, std::string> >&);
286 
291 
296 
303  bool match(const DistinguishedName& dn) const;
304 
311  bool match(const std::string& dn) const;
312 
317  operator std::string() const;
318 
319 protected:
320 
322  void unescape();
324 
325 private:
326 
327  std::list<std::pair<std::string, std::string> > _rdns;
328  std::list<std::pair<std::string, std::string> > _unescaped;
329 };
330 
334 inline bool
336 {
337  return rhs < lhs;
338 }
339 
343 inline bool
344 operator<=(const DistinguishedName& lhs, const DistinguishedName& rhs)
345 {
346  return !(lhs > rhs);
347 }
348 
352 inline bool
354 {
355  return !(lhs < rhs);
356 }
357 
361 inline bool
363 {
364  return !(lhs == rhs);
365 }
366 
372 #ifndef ICE_CPP11_MAPPING
373  : public virtual IceUtil::Shared
374 #endif
375 {
376 public:
377 
382  virtual bool isCritical() const = 0;
383 
388  virtual std::string getOID() const = 0;
389 
394  virtual std::vector<Ice::Byte> getData() const = 0;
395 };
397 
398 class Certificate;
400 
407 #ifdef ICE_CPP11_MAPPING
408  public std::enable_shared_from_this<Certificate>
409 #else
410  public virtual IceUtil::Shared
411 #endif
412 {
413 public:
414 
418  virtual bool operator==(const Certificate&) const = 0;
419 
423  virtual bool operator!=(const Certificate&) const = 0;
424 
429  virtual std::vector<Ice::Byte> getAuthorityKeyIdentifier() const = 0;
430 
435  virtual std::vector<Ice::Byte> getSubjectKeyIdentifier() const = 0;
436 
443  virtual bool verify(const CertificatePtr& cert) const = 0;
444 
450  virtual std::string encode() const = 0;
451 
457  virtual bool checkValidity() const = 0;
458 
464 #ifdef ICE_CPP11_MAPPING
465  virtual bool checkValidity(const std::chrono::system_clock::time_point& t) const = 0;
466 #else
467  virtual bool checkValidity(const IceUtil::Time& t) const = 0;
468 #endif
469 
477  unsigned int getKeyUsage() const;
478 
486  unsigned int getExtendedKeyUsage() const;
487 
492 #ifdef ICE_CPP11_MAPPING
493  virtual std::chrono::system_clock::time_point getNotAfter() const = 0;
494 #else
495  virtual IceUtil::Time getNotAfter() const = 0;
496 #endif
497 
502 #ifdef ICE_CPP11_MAPPING
503  virtual std::chrono::system_clock::time_point getNotBefore() const = 0;
504 #else
505  virtual IceUtil::Time getNotBefore() const = 0;
506 #endif
507 
512  virtual std::string getSerialNumber() const = 0;
513 
518  virtual DistinguishedName getIssuerDN() const = 0;
519 
548  virtual std::vector<std::pair<int, std::string> > getIssuerAlternativeNames() const = 0;
549 
554  virtual DistinguishedName getSubjectDN() const = 0;
555 
560  virtual std::vector<std::pair<int, std::string> > getSubjectAlternativeNames() const = 0;
561 
566  virtual int getVersion() const = 0;
567 
573  virtual std::string toString() const = 0;
574 
579  virtual std::vector<X509ExtensionPtr> getX509Extensions() const = 0;
580 
586  virtual X509ExtensionPtr getX509Extension(const std::string& oid) const = 0;
587 
595  static CertificatePtr load(const std::string& file);
596 
602  static CertificatePtr decode(const std::string& str);
603 };
604 
605 #ifndef ICE_CPP11_MAPPING // C++98 mapping
606 
613 {
614 public:
615 
617 
623  virtual bool verify(const ConnectionInfoPtr& info) = 0;
624 };
626 
644 {
645 public:
646 
647  virtual ~PasswordPrompt();
648 
655  virtual std::string getPassword() = 0;
656 };
658 #endif
659 
665 {
666 public:
667 
668  virtual ~Plugin();
669 
675 #ifdef ICE_CPP11_MAPPING
676  virtual void setCertificateVerifier(std::function<bool(const std::shared_ptr<ConnectionInfo>&)> v) = 0;
677 #else
678  virtual void setCertificateVerifier(const CertificateVerifierPtr& v) = 0;
679 #endif
680 
686 #ifdef ICE_CPP11_MAPPING
687  virtual void setPasswordPrompt(std::function<std::string()> p) = 0;
688 #else
689  virtual void setPasswordPrompt(const PasswordPromptPtr& p) = 0;
690 #endif
691 
698  virtual CertificatePtr load(const std::string& file) const = 0;
699 
706  virtual CertificatePtr decode(const std::string& str) const = 0;
707 };
709 
710 }
711 
712 #endif
IceSSL::operator>
bool operator>(const DistinguishedName &lhs, const DistinguishedName &rhs)
Performs an exact match.
Definition: Plugin.h:335
IceSSL::PasswordPrompt
In order to read an encrypted file, such as one containing a private key, OpenSSL requests a password...
Definition: Plugin.h:644
IceSSL::CertificateReadException::ice_clone
virtual CertificateReadException * ice_clone() const
Creates a shallow copy of this exception.
IceSSL::CertificateEncodingException::ice_clone
virtual CertificateEncodingException * ice_clone() const
Creates a shallow copy of this exception.
IceSSL::ParseException::ice_id
virtual std::string ice_id() const
Returns the type ID of this exception.
IceSSL
Definition: ConnectionInfo.h:138
IceSSL::KEY_USAGE_DECIPHER_ONLY
const unsigned int KEY_USAGE_DECIPHER_ONLY
The key usage "decipherOnly" bit is set.
Definition: Plugin.h:127
IceSSL::EXTENDED_KEY_USAGE_CODE_SIGNING
const unsigned int EXTENDED_KEY_USAGE_CODE_SIGNING
The extended key usage "codeSigning" bit is set.
Definition: Plugin.h:144
IceSSL::getHost
std::string getHost(const IceSSL::ConnectionInfoPtr &)
IceSSL::getTrustErrorDescription
std::string getTrustErrorDescription(TrustError)
IceSSL::InvalidTime
@ InvalidTime
The X509 chain is not valid due to an invalid time value, such as a value that indicates an expired c...
Definition: Plugin.h:73
IceSSL::X509Extension
Represents an X509 Certificate extension.
Definition: Plugin.h:375
ICE_DEFINE_PTR
#define ICE_DEFINE_PTR(TPtr, T)
Definition: Config.h:377
Ice::Plugin
A communicator plug-in.
Definition: Plugin.h:198
IceSSL::CertificateReadException::~CertificateReadException
virtual ~CertificateReadException()
IceSSL::ParseException::~ParseException
virtual ~ParseException()
IceSSL::HasExcludedNameConstraint
@ HasExcludedNameConstraint
The X509 chain is invalid because a certificate has excluded a name constraint.
Definition: Plugin.h:48
IceSSL::Certificate::operator==
virtual bool operator==(const Certificate &) const =0
Compares the certificates for equality using the native certificate comparison method.
IceSSL::EXTENDED_KEY_USAGE_TIME_STAMPING
const unsigned int EXTENDED_KEY_USAGE_TIME_STAMPING
The extended key usage "timeStamping" bit is set.
Definition: Plugin.h:152
IceSSL::Certificate::getKeyUsage
unsigned int getKeyUsage() const
Returns the value of the key usage extension.
IceSSL::UntrustedRoot
@ UntrustedRoot
The X509 chain is invalid due to an untrusted root certificate.
Definition: Plugin.h:83
IceSSL::KEY_USAGE_ENCIPHER_ONLY
const unsigned int KEY_USAGE_ENCIPHER_ONLY
The key usage "encipherOnly" bit is set.
Definition: Plugin.h:123
IceSSL::EXTENDED_KEY_USAGE_EMAIL_PROTECTION
const unsigned int EXTENDED_KEY_USAGE_EMAIL_PROTECTION
The extended key usage "emailProtection" bit is set.
Definition: Plugin.h:148
IceSSL::EXTENDED_KEY_USAGE_CLIENT_AUTH
const unsigned int EXTENDED_KEY_USAGE_CLIENT_AUTH
The extended key usage "clientAuth" bit is set.
Definition: Plugin.h:140
IceSSL::X509Extension::isCritical
virtual bool isCritical() const =0
Determines whether the information in this extension is important.
IceSSL::Certificate::checkValidity
virtual bool checkValidity(const IceUtil::Time &t) const =0
Checks that the certificate is valid at the given time.
IceSSL::EXTENDED_KEY_USAGE_ANY_KEY_USAGE
const unsigned int EXTENDED_KEY_USAGE_ANY_KEY_USAGE
The extended key usage "anyKeyUsage" bit is set.
Definition: Plugin.h:132
IceSSL::X509Extension::getData
virtual std::vector< Ice::Byte > getData() const =0
Obtains the data associated with this extension.
IceSSL::KEY_USAGE_CRL_SIGN
const unsigned int KEY_USAGE_CRL_SIGN
The key usage "cRLSign" bit is set.
Definition: Plugin.h:119
IceSSL::HasNonDefinedNameConstraint
@ HasNonDefinedNameConstraint
The certificate has an undefined name constraint.
Definition: Plugin.h:50
IceSSL::Plugin::setCertificateVerifier
virtual void setCertificateVerifier(const CertificateVerifierPtr &v)=0
Establish the certificate verifier object.
IceSSL::InvalidPolicyConstraints
@ InvalidPolicyConstraints
The X509 chain is invalid due to invalid policy constraints.
Definition: Plugin.h:66
IceSSL::NotTrusted
@ NotTrusted
The certificate is explicitly not trusted.
Definition: Plugin.h:75
IceSSL::KEY_USAGE_DATA_ENCIPHERMENT
const unsigned int KEY_USAGE_DATA_ENCIPHERMENT
The key usage "dataEncipherment" bit is set.
Definition: Plugin.h:107
IceSSL::Plugin
Represents the IceSSL plug-in object.
Definition: Plugin.h:665
IceSSL::Plugin::decode
virtual CertificatePtr decode(const std::string &str) const =0
Decode a certificate from a string that uses the PEM encoding format.
IceSSL::operator<=
bool operator<=(const DistinguishedName &lhs, const DistinguishedName &rhs)
Performs an exact match.
Definition: Plugin.h:344
IceSSL::InvalidBasicConstraints
@ InvalidBasicConstraints
The X509 chain is invalid due to invalid basic constraints.
Definition: Plugin.h:60
IceSSL::CertificateReadException
Thrown if the certificate cannot be read.
Definition: Plugin.h:163
IceSSL::KEY_USAGE_KEY_AGREEMENT
const unsigned int KEY_USAGE_KEY_AGREEMENT
The key usage "keyAgreement" bit is set.
Definition: Plugin.h:111
IceSSL::Certificate::getSubjectAlternativeNames
virtual std::vector< std::pair< int, std::string > > getSubjectAlternativeNames() const =0
See the comment for Plugin::getIssuerAlternativeNames.
IceSSL::PasswordPromptPtr
IceUtil::Handle< PasswordPrompt > PasswordPromptPtr
Definition: Plugin.h:657
IceSSL::DistinguishedName::DistinguishedName
DistinguishedName(const std::string &name)
Creates a DistinguishedName from a string encoded using the rules in RFC2253.
IceSSL::CertificateEncodingException
Thrown if the certificate cannot be encoded.
Definition: Plugin.h:195
IceSSL::Certificate::getAuthorityKeyIdentifier
virtual std::vector< Ice::Byte > getAuthorityKeyIdentifier() const =0
Obtains the authority key identifier.
IceSSL::DistinguishedName::DistinguishedName
DistinguishedName(const std::list< std::pair< std::string, std::string > > &)
Creates a DistinguishedName from a list of RDN pairs, where each pair consists of the RDN's type and ...
IceSSL::KEY_USAGE_KEY_ENCIPHERMENT
const unsigned int KEY_USAGE_KEY_ENCIPHERMENT
The key usage "keyEncipherment" bit is set.
Definition: Plugin.h:103
IceSSL::CertificateEncodingException::CertificateEncodingException
CertificateEncodingException(const char *, int, const std::string &)
IceSSL::CertificateReadException::reason
std::string reason
The reason for the exception.
Definition: Plugin.h:183
IceSSL::PartialChain
@ PartialChain
The X509 chain could not be built up to the root certificate.
Definition: Plugin.h:77
IceSSL::HostNameMismatch
@ HostNameMismatch
A host name mismatch has occurred.
Definition: Plugin.h:58
IceSSL::Certificate::getSubjectKeyIdentifier
virtual std::vector< Ice::Byte > getSubjectKeyIdentifier() const =0
Obtains the subject key identifier.
IceSSL::Certificate::getSubjectDN
virtual DistinguishedName getSubjectDN() const =0
Obtains the subject's distinguished name (DN).
IceSSL::Certificate::load
static CertificatePtr load(const std::string &file)
Loads the certificate from a file.
IceSSL::Certificate::verify
virtual bool verify(const CertificatePtr &cert) const =0
Verifies that this certificate was signed by the given certificate public key.
IceSSL::CertificateVerifier::~CertificateVerifier
virtual ~CertificateVerifier()
IceSSL::Plugin::load
virtual CertificatePtr load(const std::string &file) const =0
Load the certificate from a file.
IceSSL::Plugin::~Plugin
virtual ~Plugin()
IceSSL::CertificateVerifierPtr
IceUtil::Handle< CertificateVerifier > CertificateVerifierPtr
Definition: Plugin.h:625
IceSSL::Certificate::getX509Extension
virtual X509ExtensionPtr getX509Extension(const std::string &oid) const =0
Obtains the extension with the given OID.
IceSSL::ChainTooLong
@ ChainTooLong
The certificate chain length is greater than the specified maximum depth.
Definition: Plugin.h:46
IceSSL::EXTENDED_KEY_USAGE_SERVER_AUTH
const unsigned int EXTENDED_KEY_USAGE_SERVER_AUTH
The extended key usage "serverAuth" bit is set.
Definition: Plugin.h:136
IceSSL::operator>=
bool operator>=(const DistinguishedName &lhs, const DistinguishedName &rhs)
Performs an exact match.
Definition: Plugin.h:353
IceSSL::KEY_USAGE_DIGITAL_SIGNATURE
const unsigned int KEY_USAGE_DIGITAL_SIGNATURE
The key usage "digitalSignature" bit is set.
Definition: Plugin.h:95
IceSSL::Certificate::getNotBefore
virtual IceUtil::Time getNotBefore() const =0
Obtains the not-before validity time.
Plugin.h
ConnectionInfoF.h
IceSSL::CertificateVerifier
An application can customize the certificate verification process by implementing the CertificateVeri...
Definition: Plugin.h:613
IceSSL::DistinguishedName
This class represents a DistinguishedName, similar to the Java type X500Principal and the ....
Definition: Plugin.h:268
IceUtil::Time
Definition: Time.h:18
IceSSL::X509Extension::getOID
virtual std::string getOID() const =0
Obtains the object ID of this extension.
IceSSL::Certificate::getVersion
virtual int getVersion() const =0
Obtains the certificate version number.
IceSSL::RevocationStatusUnknown
@ RevocationStatusUnknown
It is not possible to determine whether the certificate has been revoked.
Definition: Plugin.h:79
IceSSL::Certificate::getIssuerAlternativeNames
virtual std::vector< std::pair< int, std::string > > getIssuerAlternativeNames() const =0
Obtains the values in the issuer's alternative names extension.
ICESSL_API
#define ICESSL_API
Definition: Plugin.h:27
Time.h
IceSSL::InvalidExtension
@ InvalidExtension
The X509 chain is invalid due to an invalid extension.
Definition: Plugin.h:62
IceSSL::HasNonPermittedNameConstraint
@ HasNonPermittedNameConstraint
The certificate has a non permitted name constraint.
Definition: Plugin.h:52
IceSSL::operator!=
bool operator!=(const DistinguishedName &lhs, const DistinguishedName &rhs)
Performs an exact match.
Definition: Plugin.h:362
IceSSL::Certificate::getIssuerDN
virtual DistinguishedName getIssuerDN() const =0
Obtains the issuer's distinguished name (DN).
IceSSL::Plugin::setPasswordPrompt
virtual void setPasswordPrompt(const PasswordPromptPtr &p)=0
Establish the password prompt object.
IceSSL::InvalidPurpose
@ InvalidPurpose
The supplied certificate cannot be used for the specified purpose.
Definition: Plugin.h:68
IceSSL::InvalidNameConstraints
@ InvalidNameConstraints
The X509 chain is invalid due to invalid name constraints.
Definition: Plugin.h:64
IceSSL::TrustError
TrustError
The reason for an IceSSL certificate verification failure.
Definition: Plugin.h:42
IceSSL::Certificate::checkValidity
virtual bool checkValidity() const =0
Checks that the certificate is currently valid, that is, the current date falls between the validity ...
IceSSL::CertificateReadException::CertificateReadException
CertificateReadException(const char *, int, const std::string &)
IceSSL::Certificate
This convenience class is a wrapper around a native certificate.
Definition: Plugin.h:412
IceSSL::Certificate::getExtendedKeyUsage
unsigned int getExtendedKeyUsage() const
Returns the value of the extended key usage extension.
IceSSL::HasNonSupportedNameConstraint
@ HasNonSupportedNameConstraint
The certificate does not have a supported name constraint or has a name constraint that is unsupporte...
Definition: Plugin.h:56
IceSSL::KEY_USAGE_NON_REPUDIATION
const unsigned int KEY_USAGE_NON_REPUDIATION
The key usage "nonRepudiation" bit is set.
Definition: Plugin.h:99
Config.h
IceSSL::NoError
@ NoError
The certification verification succeed.
Definition: Plugin.h:44
IceSSL::Certificate::decode
static CertificatePtr decode(const std::string &str)
Decodes a certificate from a string that uses the PEM encoding format.
IceSSL::Certificate::getX509Extensions
virtual std::vector< X509ExtensionPtr > getX509Extensions() const =0
Obtains a list of the X509v3 extensions contained in the certificate.
IceSSL::Certificate::getNotAfter
virtual IceUtil::Time getNotAfter() const =0
Obtains the not-after validity time.
IceSSL::KEY_USAGE_KEY_CERT_SIGN
const unsigned int KEY_USAGE_KEY_CERT_SIGN
The key usage "keyCertSign" bit is set.
Definition: Plugin.h:115
IceUtil::Handle
Definition: Handle.h:143
IceSSL::Certificate::encode
virtual std::string encode() const =0
Obtains a string encoding of the certificate in PEM format.
IceSSL::UnknownTrustFailure
@ UnknownTrustFailure
The X509 chain is invalid due to other unknown failure.
Definition: Plugin.h:85
IceSSL::CertificateEncodingException::reason
std::string reason
The reason for the exception.
Definition: Plugin.h:215
IceSSL::ParseException
This exception is thrown if a distinguished name cannot be parsed.
Definition: Plugin.h:227
IceSSL::DistinguishedName::match
bool match(const DistinguishedName &dn) const
Performs a partial match with another DistinguishedName.
IceSSL::getTrustError
TrustError getTrustError(const IceSSL::ConnectionInfoPtr &)
IceSSL::ConnectionInfoPtr
::IceInternal::Handle< ConnectionInfo > ConnectionInfoPtr
Definition: ConnectionInfo.h:140
IceSSL::DistinguishedName::operator<
friend bool operator<(const DistinguishedName &, const DistinguishedName &)
Performs an exact match.
IceSSL::ParseException::reason
std::string reason
The reason for the exception.
Definition: Plugin.h:247
IceSSL::Revoked
@ Revoked
The X509 chain is invalid due to a revoked certificate.
Definition: Plugin.h:81
IceSSL::Certificate::operator!=
virtual bool operator!=(const Certificate &) const =0
Compares the certificates for equality using the native certificate comparison method.
IceSSL::DistinguishedName::match
bool match(const std::string &dn) const
Performs a partial match with another DistinguishedName.
IceSSL::PasswordPrompt::getPassword
virtual std::string getPassword()=0
Obtains the password.
IceSSL::PasswordPrompt::~PasswordPrompt
virtual ~PasswordPrompt()
IceSSL::CertificateVerifier::verify
virtual bool verify(const ConnectionInfoPtr &info)=0
Determines whether to accept a certificate.
IceUtil::ExceptionHelper
Helper template for the implementation of Ice::Exception.
Definition: Exception.h:161
IceSSL::InvalidSignature
@ InvalidSignature
The X509 chain is invalid due to an invalid certificate signature.
Definition: Plugin.h:70
IceSSL::CertificateEncodingException::~CertificateEncodingException
virtual ~CertificateEncodingException()
IceSSL::ParseException::ice_clone
virtual ParseException * ice_clone() const
Creates a shallow copy of this exception.
IceSSL::CertificateReadException::ice_id
virtual std::string ice_id() const
Returns the type ID of this exception.
IceSSL::EXTENDED_KEY_USAGE_OCSP_SIGNING
const unsigned int EXTENDED_KEY_USAGE_OCSP_SIGNING
The extended key usage "OCSPSigning" bit is set.
Definition: Plugin.h:156
IceSSL::Certificate::getSerialNumber
virtual std::string getSerialNumber() const =0
Obtains the serial number.
IceUtil::Shared
Definition: Shared.h:78
IceSSL::DistinguishedName::operator==
friend bool operator==(const DistinguishedName &, const DistinguishedName &)
Performs an exact match.
IceSSL::Certificate::toString
virtual std::string toString() const =0
Stringifies the certificate.
IceSSL::CertificateEncodingException::ice_id
virtual std::string ice_id() const
Returns the type ID of this exception.
IceSSL::ParseException::ParseException
ParseException(const char *, int, const std::string &)
IceSSL::HasNonSupportedCriticalExtension
@ HasNonSupportedCriticalExtension
The certificate does not support a critical extension.
Definition: Plugin.h:54