Skip to content

Commit ec227ba

Browse files
cziebuhroroulet
authored andcommitted
Always use SimpleRoleRuleset
It hasn't been in use for SecurityPolicy None
1 parent eb5b8f4 commit ec227ba

File tree

4 files changed

+6
-29
lines changed

4 files changed

+6
-29
lines changed

asyncua/crypto/security_policies.py

-21
Original file line numberDiff line numberDiff line change
@@ -508,10 +508,6 @@ def __init__(self, peer_cert, host_cert, client_pk, mode,
508508
self.Mode = mode
509509
self.peer_certificate = uacrypto.der_from_x509(peer_cert)
510510
self.host_certificate = uacrypto.der_from_x509(host_cert)
511-
if permission_ruleset is None:
512-
from asyncua.crypto.permission_rules import SimpleRoleRuleset
513-
permission_ruleset = SimpleRoleRuleset()
514-
515511
self.permissions = permission_ruleset
516512

517513
def make_local_symmetric_key(self, secret, seed):
@@ -591,11 +587,6 @@ def __init__(self, peer_cert, host_cert, client_pk, mode, permission_ruleset=Non
591587
self.Mode = mode
592588
self.peer_certificate = uacrypto.der_from_x509(peer_cert)
593589
self.host_certificate = uacrypto.der_from_x509(host_cert)
594-
if permission_ruleset is None:
595-
from asyncua.crypto.permission_rules import SimpleRoleRuleset
596-
597-
permission_ruleset = SimpleRoleRuleset()
598-
599590
self.permissions = permission_ruleset
600591

601592
def make_local_symmetric_key(self, secret, seed):
@@ -684,10 +675,6 @@ def __init__(self, peer_cert, host_cert, client_pk, mode,
684675
self.Mode = mode
685676
self.peer_certificate = uacrypto.der_from_x509(peer_cert)
686677
self.host_certificate = uacrypto.der_from_x509(host_cert)
687-
if permission_ruleset is None:
688-
from asyncua.crypto.permission_rules import SimpleRoleRuleset
689-
permission_ruleset = SimpleRoleRuleset()
690-
691678
self.permissions = permission_ruleset
692679

693680
def make_local_symmetric_key(self, secret, seed):
@@ -772,10 +759,6 @@ def __init__(self, peer_cert, host_cert, client_pk, mode,
772759
self.Mode = mode
773760
self.peer_certificate = uacrypto.der_from_x509(peer_cert)
774761
self.host_certificate = uacrypto.der_from_x509(host_cert)
775-
if permission_ruleset is None:
776-
from asyncua.crypto.permission_rules import SimpleRoleRuleset
777-
permission_ruleset = SimpleRoleRuleset()
778-
779762
self.permissions = permission_ruleset
780763

781764
def make_local_symmetric_key(self, secret, seed):
@@ -859,10 +842,6 @@ def __init__(self, peer_cert, host_cert, client_pk, mode,
859842
self.Mode = mode
860843
self.peer_certificate = uacrypto.der_from_x509(peer_cert)
861844
self.host_certificate = uacrypto.der_from_x509(host_cert)
862-
if permission_ruleset is None:
863-
from asyncua.crypto.permission_rules import SimpleRoleRuleset
864-
permission_ruleset = SimpleRoleRuleset()
865-
866845
self.permissions = permission_ruleset
867846

868847
def make_local_symmetric_key(self, secret, seed):

asyncua/server/server.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from ..common.connection import TransportLimits
3232

3333
from ..crypto import security_policies, uacrypto, validator
34+
from ..crypto.permission_rules import SimpleRoleRuleset
3435

3536
_logger = logging.getLogger(__name__)
3637

@@ -108,7 +109,7 @@ def __init__(self, iserver: InternalServer = None, user_manager=None):
108109
ua.SecurityPolicyType.Aes256Sha256RsaPss_SignAndEncrypt
109110
]
110111
# allow all certificates by default
111-
self._permission_ruleset = None
112+
self._permission_ruleset = SimpleRoleRuleset()
112113
self._policyIDs = ["Anonymous", "Basic256Sha256", "Username", "Aes128Sha256RsaOaep", "Aes256Sha256RsaPss"]
113114
self.certificate: Optional[x509.Certificate] = None
114115
# Use acceptable limits
@@ -343,7 +344,8 @@ def set_security_policy(self, security_policy, permission_ruleset=None):
343344
344345
"""
345346
self._security_policy = security_policy
346-
self._permission_ruleset = permission_ruleset
347+
if permission_ruleset is not None:
348+
self._permission_ruleset = permission_ruleset
347349

348350
def set_security_IDs(self, policy_ids):
349351
"""

examples/server-with-encryption.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
sys.path.insert(0, "..")
88
from asyncua import Server
99
from asyncua import ua
10-
from asyncua.crypto.permission_rules import SimpleRoleRuleset
1110
from asyncua.server.user_managers import CertificateUserManager
1211
from asyncua.crypto.cert_gen import setup_self_signed_certificate
1312
from asyncua.crypto.validator import CertificateValidator, CertificateValidatorOptions
@@ -38,8 +37,7 @@ async def main():
3837

3938
await server.set_application_uri(server_app_uri)
4039
server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/")
41-
server.set_security_policy([ua.SecurityPolicyType.Basic256Sha256_SignAndEncrypt],
42-
permission_ruleset=SimpleRoleRuleset())
40+
server.set_security_policy([ua.SecurityPolicyType.Basic256Sha256_SignAndEncrypt])
4341

4442
# Below is only required if the server should generate its own certificate,
4543
# It will renew also when the valid datetime range is out of range (on startup, no on runtime)

tests/test_permissions.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from asyncua import Client
55
from asyncua import Server
66
from asyncua import ua
7-
from asyncua.crypto.permission_rules import SimpleRoleRuleset
87
from asyncua.server.users import UserRole
98
from asyncua.server.user_managers import CertificateUserManager
109

@@ -58,8 +57,7 @@ async def srv_crypto_one_cert(request):
5857
srv = Server(user_manager=cert_user_manager)
5958

6059
srv.set_endpoint(uri_crypto_cert)
61-
srv.set_security_policy([ua.SecurityPolicyType.Basic256Sha256_SignAndEncrypt],
62-
permission_ruleset=SimpleRoleRuleset())
60+
srv.set_security_policy([ua.SecurityPolicyType.Basic256Sha256_SignAndEncrypt])
6361
await srv.init()
6462
await srv.load_certificate(cert)
6563
await srv.load_private_key(key)

0 commit comments

Comments
 (0)