summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Keller <Rainer.Keller@qt.io>2019-07-30 16:08:42 +0200
committerRainer Keller <Rainer.Keller@qt.io>2019-07-31 15:06:04 +0200
commit9fbb02f9f3f3e6057872ae638616594e5343d07c (patch)
treeadc6f2dd9a580ea5bf1c32f159e793f7316f35c0
parent42038300154176b9087b18c41bf29c1b8a2661fa (diff)
Add function to return true if a security policy is a secure policy
Change-Id: Id6ce3ce943f9d2bfeb62230e8b141049a97d8cb4 Reviewed-by: Jannis Völker <jannis.voelker@basyskom.com>
-rw-r--r--src/opcua/client/qopcuatype.cpp14
-rw-r--r--src/opcua/client/qopcuatype.h1
-rw-r--r--tests/auto/security/tst_security.cpp2
3 files changed, 16 insertions, 1 deletions
diff --git a/src/opcua/client/qopcuatype.cpp b/src/opcua/client/qopcuatype.cpp
index c9e1519..039a389 100644
--- a/src/opcua/client/qopcuatype.cpp
+++ b/src/opcua/client/qopcuatype.cpp
@@ -875,5 +875,19 @@ QOpcUa::Types QOpcUa::opcUaDataTypeToQOpcUaType(const QString &type)
return QOpcUa::Undefined;
}
+/*!
+ \since QtOpcUa 5.14
+
+ Returns \c true if a security policy is a secure policy.
+*/
+bool QOpcUa::isSecurePolicy(const QString &securityPolicy)
+{
+ return securityPolicy == QLatin1String("http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15") ||
+ securityPolicy == QLatin1String("http://opcfoundation.org/UA/SecurityPolicy#Basic256") ||
+ securityPolicy == QLatin1String("http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256") ||
+ securityPolicy == QLatin1String("http://opcfoundation.org/UA/SecurityPolicy#Aes128_Sha256_RsaOaep") ||
+ securityPolicy == QLatin1String("http://opcfoundation.org/UA/SecurityPolicy#Aes256_Sha256_RsaPss");
+}
+
QT_END_NAMESPACE
diff --git a/src/opcua/client/qopcuatype.h b/src/opcua/client/qopcuatype.h
index 0969b1e..8e83770 100644
--- a/src/opcua/client/qopcuatype.h
+++ b/src/opcua/client/qopcuatype.h
@@ -473,6 +473,7 @@ Q_ENUM_NS(ErrorCategory)
Q_OPCUA_EXPORT bool isSuccessStatus(QOpcUa::UaStatusCode statusCode);
Q_OPCUA_EXPORT QOpcUa::ErrorCategory errorCategory(QOpcUa::UaStatusCode statusCode);
Q_OPCUA_EXPORT QString statusToString(QOpcUa::UaStatusCode statusCode);
+Q_OPCUA_EXPORT bool isSecurePolicy(const QString &securityPolicy);
// NodeId helpers
Q_OPCUA_EXPORT QString nodeIdFromString(quint16 ns, const QString &identifier);
diff --git a/tests/auto/security/tst_security.cpp b/tests/auto/security/tst_security.cpp
index 9460e46..8fd9e45 100644
--- a/tests/auto/security/tst_security.cpp
+++ b/tests/auto/security/tst_security.cpp
@@ -244,7 +244,7 @@ void Tst_QOpcUaSecurity::initTestCase()
// Select first non-None security policy
for (const auto &endpoint : qAsConst(desc)) {
- if (!endpoint.securityPolicy().endsWith("#None")) {
+ if (QOpcUa::isSecurePolicy(endpoint.securityPolicy())) {
m_endpoints.append(endpoint);
qDebug() << endpoint.securityPolicy();
}