* @param password optional password to decrypt key
* @return a populated key object
*/
- static XSECCryptoKey* loadKeyFromFile(const char* pathname, const char* format=NULL, const char* password=NULL);
+ static XSECCryptoKey* loadKeyFromFile(const char* pathname, const char* format=nullptr, const char* password=nullptr);
/**
* Loads certificate(s) from a local file.
* @return size of the resulting array
*/
static std::vector<XSECCryptoX509*>::size_type loadCertificatesFromFile(
- std::vector<XSECCryptoX509*>& certs, const char* pathname, const char* format=NULL, const char* password=NULL
+ std::vector<XSECCryptoX509*>& certs, const char* pathname, const char* format=nullptr, const char* password=nullptr
);
/**
* @return size of the resulting array
*/
static std::vector<XSECCryptoX509CRL*>::size_type loadCRLsFromFile(
- std::vector<XSECCryptoX509CRL*>& crls, const char* pathname, const char* format=NULL
+ std::vector<XSECCryptoX509CRL*>& crls, const char* pathname, const char* format=nullptr
);
/**
* @param password optional password to decrypt key
* @return a populated key object
*/
- static XSECCryptoKey* loadKeyFromURL(SOAPTransport& transport, const char* backing, const char* format=NULL, const char* password=NULL);
+ static XSECCryptoKey* loadKeyFromURL(SOAPTransport& transport, const char* backing, const char* format=nullptr, const char* password=nullptr);
/**
* Loads certificate(s) from a URL.
* @return size of the resulting array
*/
static std::vector<XSECCryptoX509*>::size_type loadCertificatesFromURL(
- std::vector<XSECCryptoX509*>& certs, SOAPTransport& transport, const char* backing, const char* format=NULL, const char* password=NULL
+ std::vector<XSECCryptoX509*>& certs, SOAPTransport& transport, const char* backing, const char* format=nullptr, const char* password=nullptr
);
/**
* @return size of the resulting array
*/
static std::vector<XSECCryptoX509CRL*>::size_type loadCRLsFromURL(
- std::vector<XSECCryptoX509CRL*>& crls, SOAPTransport& transport, const char* backing, const char* format=NULL
+ std::vector<XSECCryptoX509CRL*>& crls, SOAPTransport& transport, const char* backing, const char* format=nullptr
);
/**
/**
* @deprecated
- * Returns the base64-encoded DER encoding of a certifiate's public key in SubjectPublicKeyInfo format.
+ * Returns the base64-encoded DER encoding of a certificate's public key in SubjectPublicKeyInfo format.
*
* @param cert the certificate's key to encode
* @param hash if true, the DER encoded data is hashed with SHA-1 before base64 encoding
* @return the base64 encoded key value
*/
static std::string getDEREncoding(const XSECCryptoX509& cert, bool hash=false, bool nowrap=true);
+
+ /**
+ * Decodes a DER-encoded public key.
+ *
+ * @param buf DER encoded data
+ * @param buflen length of data in bytes
+ * @param base64 true iff DER is base64-encoded
+ * @return the decoded public key, or nullptr
+ */
+ static XSECCryptoKey* fromDEREncoding(const char* buf, unsigned long buflen, bool base64=true);
+
+ /**
+ * Decodes a base64-encoded and DER-encoded public key.
+ *
+ * @param buf base64 and DER encoded data
+ * @return the decoded public key, or nullptr
+ */
+ static XSECCryptoKey* fromDEREncoding(const XMLCh* buf);
};
};