/**
* Returns the base64-encoded DER encoding of a public key in SubjectPublicKeyInfo format.
+ * <p>If a hash algorithm is provided, the data is digested before being base64-encoded.
*
* @param cred the credential containing the key to encode
- * @param hash if true, the DER encoded data is hashed with SHA-1 before base64 encoding
+ * @param hash optional name of hash algorithm, syntax specific to crypto provider
+ * @param nowrap if true, any linefeeds will be stripped from the result
+ * @return the base64 encoded key value
+ */
+ static std::string getDEREncoding(const Credential& cred, const char* hash, bool nowrap=true);
+
+ /**
+ * Returns the base64-encoded DER encoding of a public key in SubjectPublicKeyInfo format.
+ * <p>If a hash algorithm is provided, the data is digested before being base64-encoded.
+ *
+ * @param key the key to encode
+ * @param hash optional name of hash algorithm, syntax specific to crypto provider
* @param nowrap if true, any linefeeds will be stripped from the result
* @param hashAlg name of hash algorithm, syntax specific to crypto provider
* @return the base64 encoded key value
*/
- static std::string getDEREncoding(const Credential& cred, bool hash=false, bool nowrap=true, const char* hashAlg="SHA1");
+ static std::string getDEREncoding(const XSECCryptoKey& key, const char* hash, bool nowrap=true);
/**
+ * Returns the base64-encoded DER encoding of a certifiate's public key in SubjectPublicKeyInfo format.
+ * <p>If a hash algorithm is provided, the data is digested before being base64-encoded.
+ *
+ * @param cert the certificate's key to encode
+ * @param hash optional name of hash algorithm, syntax specific to crypto provider
+ * @param nowrap if true, any linefeeds will be stripped from the result
+ * @param hashAlg name of hash algorithm, syntax specific to crypto provider
+ * @return the base64 encoded key value
+ */
+ static std::string getDEREncoding(const XSECCryptoX509& cert, const char* hash, bool nowrap=true);
+
+ /**
+ * @deprecated
+ * Returns the base64-encoded DER encoding of a public key in SubjectPublicKeyInfo format.
+ *
+ * @param cred the credential containing the key to encode
+ * @param hash if true, the DER encoded data is hashed with SHA-1 before base64 encoding
+ * @param nowrap if true, any linefeeds will be stripped from the result
+ * @return the base64 encoded key value
+ */
+ static std::string getDEREncoding(const Credential& cred, bool hash=false, bool nowrap=true);
+
+ /**
+ * @deprecated
* Returns the base64-encoded DER encoding of a public key in SubjectPublicKeyInfo format.
*
* @param key the key to encode
* @param hash if true, the DER encoded data is hashed with SHA-1 before base64 encoding
* @param nowrap if true, any linefeeds will be stripped from the result
- * @param hashAlg name of hash algorithm, syntax specific to crypto provider
* @return the base64 encoded key value
*/
- static std::string getDEREncoding(const XSECCryptoKey& key, bool hash=false, bool nowrap=true, const char* hashAlg="SHA1");
+ static std::string getDEREncoding(const XSECCryptoKey& key, bool hash=false, bool nowrap=true);
/**
+ * @deprecated
* Returns the base64-encoded DER encoding of a certifiate'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
* @param nowrap if true, any linefeeds will be stripped from the result
- * @param hashAlg name of hash algorithm, syntax specific to crypto provider
* @return the base64 encoded key value
*/
- static std::string getDEREncoding(const XSECCryptoX509& cert, bool hash=false, bool nowrap=true, const char* hashAlg="SHA1");
+ static std::string getDEREncoding(const XSECCryptoX509& cert, bool hash=false, bool nowrap=true);
};
};
return false;
}
-string SecurityHelper::getDEREncoding(const XSECCryptoKey& key, bool hash, bool nowrap, const char* hashAlg)
+string SecurityHelper::getDEREncoding(const XSECCryptoKey& key, const char* hash, bool nowrap)
{
string ret;
return ret;
}
const EVP_MD* md=NULL;
- if (hash && hashAlg) {
- md = EVP_get_digestbyname(hashAlg);
+ if (hash) {
+ md = EVP_get_digestbyname(hash);
if (!md) {
- Category::getInstance(XMLTOOLING_LOGCAT".SecurityHelper").error("hash algorithm (%s) not available", hashAlg);
+ Category::getInstance(XMLTOOLING_LOGCAT".SecurityHelper").error("hash algorithm (%s) not available", hash);
return ret;
}
}
return ret;
}
const EVP_MD* md=NULL;
- if (hash && hashAlg) {
- md = EVP_get_digestbyname(hashAlg);
+ if (hash) {
+ md = EVP_get_digestbyname(hash);
if (!md) {
- Category::getInstance(XMLTOOLING_LOGCAT".SecurityHelper").error("hash algorithm (%s) not available", hashAlg);
+ Category::getInstance(XMLTOOLING_LOGCAT".SecurityHelper").error("hash algorithm (%s) not available", hash);
return ret;
}
}
return ret;
}
-string SecurityHelper::getDEREncoding(const XSECCryptoX509& cert, bool hash, bool nowrap, const char* hashAlg)
+string SecurityHelper::getDEREncoding(const XSECCryptoX509& cert, const char* hash, bool nowrap)
{
string ret;
}
const EVP_MD* md=NULL;
- if (hash && hashAlg) {
- md = EVP_get_digestbyname(hashAlg);
+ if (hash) {
+ md = EVP_get_digestbyname(hash);
if (!md) {
- Category::getInstance(XMLTOOLING_LOGCAT".SecurityHelper").error("hash algorithm (%s) not available", hashAlg);
+ Category::getInstance(XMLTOOLING_LOGCAT".SecurityHelper").error("hash algorithm (%s) not available", hash);
return ret;
}
}
return ret;
}
-string SecurityHelper::getDEREncoding(const Credential& cred, bool hash, bool nowrap, const char* hashAlg)
+string SecurityHelper::getDEREncoding(const Credential& cred, const char* hash, bool nowrap)
{
const X509Credential* x509 = dynamic_cast<const X509Credential*>(&cred);
if (x509 && !x509->getEntityCertificateChain().empty())
- return getDEREncoding(*(x509->getEntityCertificateChain().front()), hash, nowrap, hashAlg);
+ return getDEREncoding(*(x509->getEntityCertificateChain().front()), hash, nowrap);
else if (cred.getPublicKey())
- return getDEREncoding(*(cred.getPublicKey()), hash, nowrap, hashAlg);
+ return getDEREncoding(*(cred.getPublicKey()), hash, nowrap);
return "";
}
+
+string SecurityHelper::getDEREncoding(const XSECCryptoKey& key, bool hash, bool nowrap)
+{
+ return getDEREncoding(key, hash ? "SHA1" : NULL, nowrap);
+}
+
+string SecurityHelper::getDEREncoding(const XSECCryptoX509& cert, bool hash, bool nowrap)
+{
+ return getDEREncoding(cert, hash ? "SHA1" : NULL, nowrap);
+}
+
+string SecurityHelper::getDEREncoding(const Credential& cred, bool hash, bool nowrap)
+{
+ return getDEREncoding(cred, hash ? "SHA1" : NULL, nowrap);
+}