diff --git a/include/QtCrypto/qca_publickey.h b/include/QtCrypto/qca_publickey.h
index 1701b41c..e2600d83 100644
--- a/include/QtCrypto/qca_publickey.h
+++ b/include/QtCrypto/qca_publickey.h
@@ -77,9 +77,12 @@ namespace QCA
 	*/
 	enum PBEAlgo
 	{
-		PBEDefault,         ///< Use modern default (same as PBE2_TripleDES_SHA1)
-		PBE2_DES_SHA1,      ///< PKCS#5 v2.0 DES/CBC/SHA1
-		PBE2_TripleDES_SHA1 ///< PKCS#5 v2.0 TripleDES/CBC/SHA1
+		PBEDefault,           ///< Use modern default (same as PBES2_TripleDES_SHA1)
+		PBES2_DES_SHA1,       ///< PKCS#5 v2.0 DES/CBC,SHA1
+		PBES2_TripleDES_SHA1, ///< PKCS#5 v2.0 TripleDES/CBC,SHA1
+		PBES2_AES128_SHA1,    ///< PKCS#5 v2.0 AES-128/CBC,SHA1
+		PBES2_AES192_SHA1,    ///< PKCS#5 v2.0 AES-192/CBC,SHA1
+		PBES2_AES256_SHA1     ///< PKCS#5 v2.0 AES-256/CBC,SHA1
 	};
 
 	class QCA_EXPORT PKey : public Algorithm
@@ -182,6 +185,7 @@ namespace QCA
 		SymmetricKey deriveKey(const PublicKey &theirs);
 
 		// import / export
+		static bool canUsePBEAlgo(PBEAlgo algo, const QString &provider = QString());
 		QSecureArray toDER(const QSecureArray &passphrase = QSecureArray(), PBEAlgo pbe = PBEDefault) const;
 		QString toPEM(const QSecureArray &passphrase = QSecureArray(), PBEAlgo pbe = PBEDefault) const;
 		static PrivateKey fromDER(const QSecureArray &a, const QSecureArray &passphrase = QSecureArray(), const QString &provider = QString());
diff --git a/include/QtCrypto/qca_securelayer.h b/include/QtCrypto/qca_securelayer.h
index 885c36d0..0ffdbfe5 100644
--- a/include/QtCrypto/qca_securelayer.h
+++ b/include/QtCrypto/qca_securelayer.h
@@ -127,7 +127,7 @@ namespace QCA
 		void setConstraints(SecurityLevel s);
 		void setConstraints(int minSSF, int maxSSF);
 
-		bool canCompress() const;
+		static bool canCompress(const QString &provider = QString());
 		void setCompressionEnabled(bool b);
 
 		bool startClient(const QString &host = QString());
diff --git a/src/qca_publickey.cpp b/src/qca_publickey.cpp
index a4a9b6e5..a087a734 100644
--- a/src/qca_publickey.cpp
+++ b/src/qca_publickey.cpp
@@ -396,6 +396,13 @@ SymmetricKey PrivateKey::deriveKey(const PublicKey &theirs)
 	return ((PKeyContext *)context())->key()->deriveKey(*(theirContext->key()));
 }
 
+bool PrivateKey::canUsePBEAlgo(PBEAlgo algo, const QString &provider)
+{
+	Q_UNUSED(algo);
+	Q_UNUSED(provider);
+	return false;
+}
+
 QSecureArray PrivateKey::toDER(const QSecureArray &passphrase, PBEAlgo pbe) const
 {
 	Q_UNUSED(pbe);
diff --git a/src/qca_securelayer.cpp b/src/qca_securelayer.cpp
index 59ad1fa2..2f9f2dba 100644
--- a/src/qca_securelayer.cpp
+++ b/src/qca_securelayer.cpp
@@ -176,6 +176,12 @@ void TLS::setConstraints(int, int)
 {
 }
 
+bool TLS::canCompress(const QString &provider)
+{
+	Q_UNUSED(provider);
+	return false;
+}
+
 void TLS::setCompressionEnabled(bool b)
 {
 	Q_UNUSED(b);