From caed945c7c85800d7467f52471509afc21a6f071 Mon Sep 17 00:00:00 2001 From: Thais Siqueira Date: Thu, 2 Mar 2017 16:23:17 -0300 Subject: [feature] Creates methods for update recovery code. Related with: https://github.com/pixelated/pixelated-user-agent/issues/924 with @aarni Signed-off-by: Ruben Pollan --- src/leap/bitmask/bonafide/_srp.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/leap/bitmask/bonafide/_srp.py') diff --git a/src/leap/bitmask/bonafide/_srp.py b/src/leap/bitmask/bonafide/_srp.py index 3939c5ac..1ec40d82 100644 --- a/src/leap/bitmask/bonafide/_srp.py +++ b/src/leap/bitmask/bonafide/_srp.py @@ -144,7 +144,7 @@ class SRPSignupMechanism(object): class SRPPasswordChangeMechanism(object): """ - Implement a protocol-agnostic SRP passord change mechanism. + Implement a protocol-agnostic SRP password change mechanism. """ def get_password_params(self, username, password): @@ -155,6 +155,20 @@ class SRPPasswordChangeMechanism(object): return user_data +class SRPRecoveryCodeUpdateMechanism(object): + + """ + Implement a protocol-agnostic SRP recovery code update mechanism. + """ + + def get_recovery_code_params(self, username, recovery_code): + salt, verifier = _get_salt_verifier(username, recovery_code) + user_data = { + 'user[recovery_code_salt]': binascii.hexlify(salt), + 'user[recovery_code_verifier]': binascii.hexlify(verifier)} + return user_data + + def _get_salt_verifier(username, password): return srp.create_salted_verification_key(bytes(username), bytes(password), srp.SHA256, srp.NG_1024) -- cgit v1.2.3