diff options
Diffstat (limited to 'sleekxmpp/thirdparty/suelta/mechanisms/google_token.py')
-rw-r--r-- | sleekxmpp/thirdparty/suelta/mechanisms/google_token.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sleekxmpp/thirdparty/suelta/mechanisms/google_token.py b/sleekxmpp/thirdparty/suelta/mechanisms/google_token.py new file mode 100644 index 00000000..e641bb91 --- /dev/null +++ b/sleekxmpp/thirdparty/suelta/mechanisms/google_token.py @@ -0,0 +1,22 @@ +from sleekxmpp.thirdparty.suelta.util import bytes +from sleekxmpp.thirdparty.suelta.sasl import Mechanism, register_mechanism +from sleekxmpp.thirdparty.suelta.exceptions import SASLError, SASLCancelled + + + +class X_GOOGLE_TOKEN(Mechanism): + + def __init__(self, sasl, name): + super(X_GOOGLE_TOKEN, self).__init__(sasl, name) + self.check_values(['email', 'access_token']) + + def process(self, challenge=None): + email = bytes(self.values['email']) + token = bytes(self.values['access_token']) + return b'\x00' + email + b'\x00' + token + + def okay(self): + return True + + +register_mechanism('X-GOOGLE-TOKEN', 3, X_GOOGLE_TOKEN, use_hashes=False) |