Commit 208a84fd authored by Curious Crook's avatar Curious Crook Committed by GitHub

Fixes #929 activate_session(without arguments) discards previously set certificate. (#932)

* Fixes #929 : error in Client.activate_session()

Fixes the error that a call to Client.activate_session() without arguments overwrites a user certificate previously set with Client.load_client_certificate(user_cert_file).

* Do not override already set user certificate

If you set the user certificate with Client.load_client_certificate() and then activate the session with Client.activate_session() without passing the certificate as an argument, the previously set certificate is discarded.
parent 22163150
...@@ -447,6 +447,7 @@ class Client: ...@@ -447,6 +447,7 @@ class Client:
""" """
Activate session using either username and password or private_key Activate session using either username and password or private_key
""" """
user_certificate = certificate or self.user_certificate
params = ua.ActivateSessionParameters() params = ua.ActivateSessionParameters()
challenge = b"" challenge = b""
if self.security_policy.peer_certificate is not None: if self.security_policy.peer_certificate is not None:
...@@ -459,10 +460,10 @@ class Client: ...@@ -459,10 +460,10 @@ class Client:
params.ClientSignature.Algorithm = (security_policies.SecurityPolicyBasic256.AsymmetricSignatureURI) params.ClientSignature.Algorithm = (security_policies.SecurityPolicyBasic256.AsymmetricSignatureURI)
params.ClientSignature.Signature = self.security_policy.asymmetric_cryptography.signature(challenge) params.ClientSignature.Signature = self.security_policy.asymmetric_cryptography.signature(challenge)
params.LocaleIds = self._locale params.LocaleIds = self._locale
if not username and not certificate: if not username and not user_certificate:
self._add_anonymous_auth(params) self._add_anonymous_auth(params)
elif certificate: elif user_certificate:
self._add_certificate_auth(params, certificate, challenge) self._add_certificate_auth(params, user_certificate, challenge)
else: else:
self._add_user_auth(params, username, password) self._add_user_auth(params, username, password)
return await self.uaclient.activate_session(params) return await self.uaclient.activate_session(params)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment