Example #1
0
 def __init__(self, user, *args, **kwargs):
     super(EnableTwoFactorForm, self).__init__(*args, **kwargs)
     self.user = user
     if "secret_key" not in self.data:
         self.auth_token = UserAuthToken(user=self.user)
         key = b64encode(os.urandom(16))[:10]
         self.fields['secret_key'].initial = key
         self.auth_token.encrypted_seed = encrypt_value(self.fields['secret_key'].initial)
         self.fields['secret_key_b32'].initial = self.auth_token.b32_secret()
     else:
         self.auth_token = UserAuthToken(user=self.user)
         self.auth_token.encrypted_seed = encrypt_value(self.data["secret_key"])
Example #2
0
 def reset_seed(self, seed=None):
     """
     Resets seed to `seed` or to a new random seed, and takes care of
     everything that needs to be done after that (e.g. reseting HOTP
     counter). Doesn't save the model.
     """
     if seed is None:
         seed = random_seed(30)
     self.encrypted_seed = encrypt_value(seed)
     self.counter = 0
Example #3
0
 def reset_seed(self, seed=None):
     """
     Resets seed to `seed` or to a new random seed, and takes care of
     everything that needs to be done after that (e.g. reseting HOTP
     counter). Doesn't save the model.
     """
     if seed is None:
         seed = random_seed(30)
     self.encrypted_seed = encrypt_value(seed)
     self.counter = 0
Example #4
0
    def save(self):
        if not self.user:
            return None

        try:
            token = UserAuthToken.objects.get(user=self.user)
        except UserAuthToken.DoesNotExist:
            token = UserAuthToken(user=self.user)

        token.encrypted_seed = encrypt_value(random_seed(30))
        token.save()
        return token