xmltooling::SecurityHelper Class Reference

A helper class for working with keys, certificates, etc. More...

#include <xmltooling/security/SecurityHelper.h>

List of all members.

Static Public Member Functions

static const char * guessEncodingFormat (const char *pathname)
 Access a file to try and guess the encoding format used.
static XSECCryptoKey * loadKeyFromFile (const char *pathname, const char *format=0, const char *password=0)
 Loads a private key from a local file.
static std::vector
< XSECCryptoX509 * >
::size_type 
loadCertificatesFromFile (std::vector< XSECCryptoX509 * > &certs, const char *pathname, const char *format=0, const char *password=0)
 Loads certificate(s) from a local file.
static std::vector
< XSECCryptoX509CRL * >
::size_type 
loadCRLsFromFile (std::vector< XSECCryptoX509CRL * > &crls, const char *pathname, const char *format=0)
 Loads CRL(s) from a local file.
static XSECCryptoKey * loadKeyFromURL (SOAPTransport &transport, const char *backing, const char *format=0, const char *password=0)
 Loads a private key from a URL.
static std::vector
< XSECCryptoX509 * >
::size_type 
loadCertificatesFromURL (std::vector< XSECCryptoX509 * > &certs, SOAPTransport &transport, const char *backing, const char *format=0, const char *password=0)
 Loads certificate(s) from a URL.
static std::vector
< XSECCryptoX509CRL * >
::size_type 
loadCRLsFromURL (std::vector< XSECCryptoX509CRL * > &crls, SOAPTransport &transport, const char *backing, const char *format=0)
 Loads CRL(s) from a URL.
static bool matches (const XSECCryptoKey &key1, const XSECCryptoKey &key2)
 Compares two keys for equality.
static std::string doHash (const char *hashAlg, const char *buf, unsigned long buflen, bool toHex=true)
 Performs a hash operation over the supplied data.
static std::string getDEREncoding (const Credential &cred, const char *hash=0, bool nowrap=true)
 Returns the base64-encoded DER encoding of a public key in SubjectPublicKeyInfo format.
static std::string getDEREncoding (const XSECCryptoKey &key, const char *hash=0, bool nowrap=true)
 Returns the base64-encoded DER encoding of a public key in SubjectPublicKeyInfo format.
static std::string getDEREncoding (const XSECCryptoX509 &cert, const char *hash=0, bool nowrap=true)
 Returns the base64-encoded DER encoding of a certifiate's public key in SubjectPublicKeyInfo format.
static XSECCryptoKey * fromDEREncoding (const char *buf, unsigned long buflen, bool base64=true)
 Decodes a DER-encoded public key.
static XSECCryptoKey * fromDEREncoding (const XMLCh *buf)
 Decodes a base64-encoded and DER-encoded public key.

Detailed Description

A helper class for working with keys, certificates, etc.


Member Function Documentation

static std::string xmltooling::SecurityHelper::doHash ( const char *  hashAlg,
const char *  buf,
unsigned long  buflen,
bool  toHex = true 
) [static]

Performs a hash operation over the supplied data.

Parameters:
hashAlg name of hash algorithm, syntax specific to crypto provider
buf input data to hash
buflen length of input data
toHex if true, hex-encodes the resulting raw bytes
Returns:
result of hash operation, or an empty string
static XSECCryptoKey* xmltooling::SecurityHelper::fromDEREncoding ( const XMLCh *  buf  )  [static]

Decodes a base64-encoded and DER-encoded public key.

Parameters:
buf base64 and DER encoded data
Returns:
the decoded public key, or nullptr
static XSECCryptoKey* xmltooling::SecurityHelper::fromDEREncoding ( const char *  buf,
unsigned long  buflen,
bool  base64 = true 
) [static]

Decodes a DER-encoded public key.

Parameters:
buf DER encoded data
buflen length of data in bytes
base64 true iff DER is base64-encoded
Returns:
the decoded public key, or nullptr
static std::string xmltooling::SecurityHelper::getDEREncoding ( const XSECCryptoX509 &  cert,
const char *  hash = 0,
bool  nowrap = true 
) [static]

Returns the base64-encoded DER encoding of a certifiate's public key in SubjectPublicKeyInfo format.

If a hash algorithm is provided, the data is digested before being base64-encoded.

Parameters:
cert the certificate's key to encode
hash optional name of hash algorithm, syntax specific to crypto provider
nowrap if true, any linefeeds will be stripped from the result
Returns:
the base64 encoded key value
static std::string xmltooling::SecurityHelper::getDEREncoding ( const XSECCryptoKey &  key,
const char *  hash = 0,
bool  nowrap = true 
) [static]

Returns the base64-encoded DER encoding of a public key in SubjectPublicKeyInfo format.

If a hash algorithm is provided, the data is digested before being base64-encoded.

Parameters:
key the key to encode
hash optional name of hash algorithm, syntax specific to crypto provider
nowrap if true, any linefeeds will be stripped from the result
Returns:
the base64 encoded key value
static std::string xmltooling::SecurityHelper::getDEREncoding ( const Credential cred,
const char *  hash = 0,
bool  nowrap = true 
) [static]

Returns the base64-encoded DER encoding of a public key in SubjectPublicKeyInfo format.

If a hash algorithm is provided, the data is digested before being base64-encoded.

Parameters:
cred the credential containing the key to encode
hash optional name of hash algorithm, syntax specific to crypto provider
nowrap if true, any linefeeds will be stripped from the result
Returns:
the base64 encoded key value
static const char* xmltooling::SecurityHelper::guessEncodingFormat ( const char *  pathname  )  [static]

Access a file to try and guess the encoding format used.

Parameters:
pathname path to file
Returns:
constant identifying encoding format
static std::vector<XSECCryptoX509*>::size_type xmltooling::SecurityHelper::loadCertificatesFromFile ( std::vector< XSECCryptoX509 * > &  certs,
const char *  pathname,
const char *  format = 0,
const char *  password = 0 
) [static]

Loads certificate(s) from a local file.

Parameters:
certs array to populate with certificate(s)
pathname path to file containing certificate(s)
format optional constant identifying certificate encoding format
password optional password to decrypt certificate(s)
Returns:
size of the resulting array
static std::vector<XSECCryptoX509*>::size_type xmltooling::SecurityHelper::loadCertificatesFromURL ( std::vector< XSECCryptoX509 * > &  certs,
SOAPTransport transport,
const char *  backing,
const char *  format = 0,
const char *  password = 0 
) [static]

Loads certificate(s) from a URL.

Parameters:
certs array to populate with certificate(s)
transport object to use to acquire certificate(s)
backing backing file for certificate(s) (written to or read from if download fails)
format optional constant identifying certificate encoding format
password optional password to decrypt certificate(s)
Returns:
size of the resulting array
static std::vector<XSECCryptoX509CRL*>::size_type xmltooling::SecurityHelper::loadCRLsFromFile ( std::vector< XSECCryptoX509CRL * > &  crls,
const char *  pathname,
const char *  format = 0 
) [static]

Loads CRL(s) from a local file.

Parameters:
crls array to populate with CRL(s)
pathname path to file containing CRL(s)
format optional constant identifying CRL encoding format
Returns:
size of the resulting array
static std::vector<XSECCryptoX509CRL*>::size_type xmltooling::SecurityHelper::loadCRLsFromURL ( std::vector< XSECCryptoX509CRL * > &  crls,
SOAPTransport transport,
const char *  backing,
const char *  format = 0 
) [static]

Loads CRL(s) from a URL.

Parameters:
crls array to populate with CRL(s)
transport object to use to acquire CRL(s)
backing backing file for CRL(s) (written to or read from if download fails)
format optional constant identifying CRL encoding format
Returns:
size of the resulting array
static XSECCryptoKey* xmltooling::SecurityHelper::loadKeyFromFile ( const char *  pathname,
const char *  format = 0,
const char *  password = 0 
) [static]

Loads a private key from a local file.

Parameters:
pathname path to file containing key
format optional constant identifying key encoding format
password optional password to decrypt key
Returns:
a populated key object
static XSECCryptoKey* xmltooling::SecurityHelper::loadKeyFromURL ( SOAPTransport transport,
const char *  backing,
const char *  format = 0,
const char *  password = 0 
) [static]

Loads a private key from a URL.

Parameters:
transport object to use to acquire key
backing backing file for key (written to or read from if download fails)
format optional constant identifying key encoding format
password optional password to decrypt key
Returns:
a populated key object
static bool xmltooling::SecurityHelper::matches ( const XSECCryptoKey &  key1,
const XSECCryptoKey &  key2 
) [static]

Compares two keys for equality.

Parameters:
key1 first key to compare
key2 second key to compare
Returns:
true iff the keys match

The documentation for this class was generated from the following file:

Generated on 24 Jan 2020 for xmltooling by  doxygen 1.6.1