Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits: 5f0e1da0 by lovetox at 2022-03-30T19:41:48+02:00 feat: Implement SCRAM-SHA-512
- - - - -
3 changed files:
- nbxmpp/auth.py - nbxmpp/client.py - nbxmpp/protocol.py
Changes:
===================================== nbxmpp/auth.py ===================================== @@ -119,7 +119,10 @@ class SASL:
self._log.info('Chosen auth mechanism: %s', chosen_mechanism)
- if chosen_mechanism in ('SCRAM-SHA-256', 'SCRAM-SHA-1', 'PLAIN'): + if chosen_mechanism in ('SCRAM-SHA-512', + 'SCRAM-SHA-256', + 'SCRAM-SHA-1', + 'PLAIN'): if not self._password: self._on_sasl_finished(False, 'no-password') return @@ -134,7 +137,11 @@ class SASL: # channel_binding_data) # self._method.initiate(self._client.username, self._password)
- if chosen_mechanism == 'SCRAM-SHA-256': + if chosen_mechanism == 'SCRAM-SHA-512': + self._method = SCRAM_SHA_512(self._client, None) + self._method.initiate(self._client.username, self._password) + + elif chosen_mechanism == 'SCRAM-SHA-256': self._method = SCRAM_SHA_256(self._client, None) self._method.initiate(self._client.username, self._password)
@@ -442,5 +449,12 @@ class SCRAM_SHA_256_PLUS(SCRAM_SHA_256): _channel_binding = 'p=tls-unique,,'
+class SCRAM_SHA_512(SCRAM): + + _mechanism = 'SCRAM-SHA-512' + _channel_binding = 'n,,' + _hash_method = 'sha512' + + class AuthFail(Exception): pass
===================================== nbxmpp/client.py ===================================== @@ -284,7 +284,8 @@ class Client(Observable):
@property def mechs(self): - return set(self._allowed_mechs or set(['SCRAM-SHA-256', + return set(self._allowed_mechs or set(['SCRAM-SHA-512', + 'SCRAM-SHA-256', 'SCRAM-SHA-1', 'PLAIN']))
===================================== nbxmpp/protocol.py ===================================== @@ -44,6 +44,7 @@ def ascii_upper(s): return s.upper()
SASL_AUTH_MECHS = [ + 'SCRAM-SHA-512', 'SCRAM-SHA-256-PLUS', 'SCRAM-SHA-256', 'SCRAM-SHA-1-PLUS',
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/-/commit/5f0e1da08f2809f1197c543de...