|
reSIProcate
SIP stack, Dialog Usage Manager and related libraries
|
#include <MacSecurity.hxx>
Public Member Functions | |
| MacSecurity () | |
| virtual void | preload () |
| virtual void | onReadPEM (const Data &, PEMType, Data &) const |
| virtual void | onWritePEM (const Data &, PEMType, const Data &) const |
| virtual void | onRemovePEM (const Data &, PEMType) const |
Public Member Functions inherited from resip::Security | |
| Security (const Data &pathToCerts, const CipherList &=StrongestSuite, const Data &defaultPrivateKeyPassPhrase=Data::Empty, const Data &dHParamsFilename=Data::Empty) | |
| Security (const CipherList &=StrongestSuite, const Data &defaultPrivateKeyPassPhrase=Data::Empty, const Data &dHParamsFilename=Data::Empty) | |
| void | addCADirectory (const Data &caDirectory) |
| void | addCAFile (const Data &caFile) |
| void | loadCADirectory (const Data &directoryName) |
| void | loadCAFile (const Data &fileName) |
| virtual SSL_CTX * | createDomainCtx (const SSL_METHOD *method, const Data &domain, const Data &certificateFilename, const Data &privateKeyFilename, const Data &privateKeyPassPhrase) |
| Throws BaseSecurity::Exception if the certificate or private key can't be loaded; nothing is left allocated in that case. | |
| virtual void | updateDomainCtx (SSL_CTX *ctx, const Data &domain, const Data &certificateFilename, const Data &privateKeyFilename, const Data &privateKeyPassPhrase) |
| Loads the domain's certificate chain and private key into ctx. | |
Public Member Functions inherited from resip::BaseSecurity | |
| BaseSecurity (const CipherList &cipherSuite=StrongestSuite, const Data &defaultPrivateKeyPassPhrase=Data::Empty, const Data &dHParamsFilename=Data::Empty) | |
| virtual | ~BaseSecurity () |
| CertificateInfoContainer | getRootCertDescriptions () const |
| void | addRootCertPEM (const Data &x509PEMEncodedRootCerts) |
| void | addDomainCertPEM (const Data &domainName, const Data &certPEM) |
| void | addDomainCertDER (const Data &domainName, const Data &certDER) |
| bool | hasDomainCert (const Data &domainName, bool logErrors=true) const |
| void | removeDomainCert (const Data &domainName) |
| Data | getDomainCertDER (const Data &domainName) const |
| void | addDomainPrivateKeyPEM (const Data &domainName, const Data &privateKeyPEM, const Data &privateKeyPassPhrase=Data::Empty) |
| bool | hasDomainPrivateKey (const Data &domainName) const |
| void | removeDomainPrivateKey (const Data &domainName) |
| Data | getDomainPrivateKeyPEM (const Data &domainName) const |
| void | addUserCertPEM (const Data &aor, const Data &certPEM) |
| void | addUserCertDER (const Data &aor, const Data &certDER) |
| bool | hasUserCert (const Data &aor) const |
| void | removeUserCert (const Data &aor) |
| Data | getUserCertDER (const Data &aor) const |
| void | setUserPassPhrase (const Data &aor, const Data &passPhrase) |
| bool | hasUserPassPhrase (const Data &aor) const |
| void | removeUserPassPhrase (const Data &aor) |
| Data | getUserPassPhrase (const Data &aor) const |
| void | addUserPrivateKeyPEM (const Data &aor, const Data &certPEM, const Data &privateKeyPassPhrase=Data::Empty) |
| void | addUserPrivateKeyDER (const Data &aor, const Data &certDER, const Data &privateKeyPassPhrase=Data::Empty) |
| bool | hasUserPrivateKey (const Data &aor) const |
| void | removeUserPrivateKey (const Data &aor) |
| Data | getUserPrivateKeyPEM (const Data &aor) const |
| Data | getUserPrivateKeyDER (const Data &aor) const |
| void | generateUserCert (const Data &aor, int expireDays=365, int keyLen=2048) |
| MultipartSignedContents * | sign (const Data &senderAor, Contents *) |
| Pkcs7Contents * | encrypt (Contents *, const Data &recipCertName) |
| MultipartSignedContents * | signAndEncrypt (const Data &senderAor, Contents *, const Data &recipCertName) |
| Data | computeIdentity (const Data &signerDomain, const Data &in) const |
| bool | checkIdentity (const Data &signerDomain, const Data &in, const Data &sig, X509 *cert=NULL) const |
| void | checkAndSetIdentity (SipMessage &msg, const Data &derCert=Data::Empty) const |
| Contents * | decrypt (const Data &decryptorAor, const Pkcs7Contents *) |
| Contents * | checkSignature (MultipartSignedContents *, Data *signedBy, SignatureStatus *sigStat) |
| SSL_CTX * | getTlsCtx () |
| SSL_CTX * | getSslCtx () |
| X509 * | getDomainCert (const Data &domain) |
| EVP_PKEY * | getDomainKey (const Data &domain) |
| X509 * | getUserCert (const Data &aor) |
| EVP_PKEY * | getUserPrivateKey (const Data &aor) |
Protected Member Functions | |
| KeychainHandle | openSystemCertStore () |
| void | getCerts () |
| void | closeCertifStore (KeychainHandle searchReference) |
Protected Member Functions inherited from resip::BaseSecurity | |
| void | addCertPEM (PEMType type, const Data &name, const Data &certPEM, bool write) |
| void | addCertDER (PEMType type, const Data &name, const Data &certDER, bool write) |
| bool | hasCert (PEMType type, const Data &name, bool logErrors=true) const |
| void | removeCert (PEMType type, const Data &name) |
| Data | getCertDER (PEMType type, const Data &name) const |
| void | addCertX509 (PEMType type, const Data &name, X509 *cert, bool write) |
| void | addPrivateKeyPEM (PEMType type, const Data &name, const Data &privateKeyPEM, bool write, const Data &privateKeyPassPhrase=Data::Empty) |
| void | addPrivateKeyDER (PEMType type, const Data &name, const Data &privateKeyDER, bool write, const Data &privateKeyPassPhrase=Data::Empty) |
| bool | hasPrivateKey (PEMType type, const Data &name) const |
| void | removePrivateKey (PEMType type, const Data &name) |
| Data | getPrivateKeyPEM (PEMType type, const Data &name) const |
| Data | getPrivateKeyDER (PEMType type, const Data &name) const |
| void | addPrivateKeyPKEY (PEMType type, const Data &name, EVP_PKEY *pKey, bool write) |
| void | setDHParams (SSL_CTX *ctx) |
Additional Inherited Members | |
Public Types inherited from resip::BaseSecurity | |
| enum | NameType { SubjectAltName , CommonName } |
| enum | PEMType { RootCert =1 , DomainCert , DomainPrivateKey , UserCert , UserPrivateKey } |
| typedef std::vector< CertificateInfo > | CertificateInfoContainer |
| typedef std::map< Data, X509 * > | X509Map |
| typedef std::list< X509 * > | X509List |
| typedef std::map< Data, EVP_PKEY * > | PrivateKeyMap |
| typedef std::map< Data, Data > | PassPhraseMap |
Static Public Member Functions inherited from resip::BaseSecurity | |
| static int | getResipConnectionExDataIdx () |
| static void | initialize () |
| static Data | getCertName (X509 *cert) |
| static void | getCertNames (X509 *cert, std::list< PeerName > &peerNames, bool useEmailAsSIP=false) |
| static bool | isSelfSigned (const X509 *cert) |
| static int | matchHostName (const Data &certificateName, const Data &domainName) |
| Applies the certificate and domain name matching rules. | |
| static void | setAllowWildcardCertificates (bool bEnable) |
| static bool | allowWildcardCertificates () |
| static SecurityTypes::SSLType | parseSSLType (const Data &typeName) |
| Converts a string containing an SSL type name to the corresponding enum value. | |
| static long | parseOpenSSLCTXOption (const Data &optionName) |
| Converts a string containing an OpenSSL option name (for SSL_CTX_set_options) to the numeric value from ssl.h - see resip::parseOpenSSLCTXOption. | |
Static Public Attributes inherited from resip::BaseSecurity | |
| static CipherList | ExportableSuite |
| static CipherList | StrongestSuite |
| static long | OpenSSLCTXSetOptions = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_COMPRESSION |
| Note: | |
| static long | OpenSSLCTXClearOptions = 0 |
Static Protected Member Functions inherited from resip::BaseSecurity | |
| static void | dumpAsn (const char *, Data) |
| static int | matchHostNameWithWildcards (const Data &certificateName, const Data &domainName) |
| Matches a certificate name, which may hold a wildcard, against the domain name we connected to, following RFC 6125 section 6.4.3: the wildcard has to be the whole left-most label ("*.example.com"), it stands for exactly one non-empty label of the domain name, at least two labels have to follow it, and it never matches an IP address. | |
Protected Attributes inherited from resip::BaseSecurity | |
| SSL_CTX * | mTlsCtx |
| Note: | |
| SSL_CTX * | mSslCtx |
| CipherList | mCipherList |
| Data | mDefaultPrivateKeyPassPhrase |
| Data | mDHParamsFilename |
| X509List | mRootCerts |
| X509_STORE * | mRootTlsCerts |
| X509_STORE * | mRootSslCerts |
| X509Map | mDomainCerts |
| PrivateKeyMap | mDomainPrivateKeys |
| X509Map | mUserCerts |
| PassPhraseMap | mUserPassPhrases |
| PrivateKeyMap | mUserPrivateKeys |
Static Protected Attributes inherited from resip::BaseSecurity | |
| static bool | mAllowWildcardCertificates = false |
Definition at line 21 of file MacSecurity.hxx.
|
inline |
Definition at line 25 of file MacSecurity.hxx.
|
protected |
Definition at line 116 of file MacSecurity.cxx.
|
protected |
Definition at line 125 of file MacSecurity.cxx.
Reimplemented from resip::Security.
Definition at line 32 of file MacSecurity.hxx.
Reimplemented from resip::Security.
Definition at line 36 of file MacSecurity.hxx.
|
inlinevirtual |
Reimplemented from resip::Security.
Definition at line 34 of file MacSecurity.hxx.
|
protected |
Definition at line 47 of file MacSecurity.cxx.
|
virtual |
Reimplemented from resip::Security.
Definition at line 38 of file MacSecurity.cxx.