Esempio n. 1
0
    def __init__(self, f, user, password, userID=None, accountID=None):
        AESCipher.__init__(self, password)
        f = self.decrypt(f['secret'])
        self.user = user
        self.init_api = API2(
            privkey=f['privateKey'],
            api_key=f['API'],
            session_token=f['Token']['token'],
            server_pubkey=f['ServerPublicKey']['server_public_key'])

        if userID:
            self.userID = int(userID)
        if accountID:
            self.accountID = int(accountID)

        try:
            self.bunq_api = Endpoints(
                API2(privkey=f['privateKey'],
                     api_key=f['API'],
                     session_token=Session.objects.get(
                         session_key=user.profile.session_token).get_decoded()
                     ['session_token'],
                     server_pubkey=f['ServerPublicKey']['server_public_key']))
        except (ObjectDoesNotExist, KeyError):
            pass
Esempio n. 2
0
 def installation(self):
     decryt = AESCipher(self.password)
     encryt = json.loads(
         installation(self.username, self.password, 'API_KEY').encrypt())
     d = AESCipher.decrypt(decryt, encryt['secret'])
     self.assertIs(len(d), 4)
     self.assertTrue(isinstance(d, dict))
Esempio n. 3
0
 def installation_error2(self):
     decryt = AESCipher(self.password)
     encryt = json.loads(
         installation(self.username, self.password, 'API_KEY').encrypt())
     secret = encryt['secret'] = 'destroyed'
     self.assertRaises(base64.binascii.Error, AESCipher.decrypt, decryt,
                       secret)
Esempio n. 4
0
    def encrypt(self):
        d = {
            'Token': self.r['token'],
            'privateKey': self.RSA_key,
            'API': self.API_KEY,
            'ServerPublicKey': self.r['ServerPublicKey']
            # NOTE: need to add this
        }
        if len(self.user_guid) > 1:
            del self.user_guid[0]

        self.user_guid.append(self.GUID)
        self.user.save()
        k = AESCipher(self.password)
        secret = AESCipher.encrypt(k, json.dumps(d))
        d2 = {'username': self.username, 'secret': secret, 'userID': self.GUID}
        return (json.dumps(d2, indent=4, sort_keys=True))
Esempio n. 5
0
 def installation_error1(self):
     decryt = AESCipher('wrong password')
     encryt = json.loads(installation(
         self.user, self.password, 'API_KEY').encrypt())
     self.assertRaises(
         UnicodeDecodeError,
         AESCipher.decrypt,
         decryt, encryt['secret']
     )