def _loadKeys(self, password): super_master_key, super_hmac_key = crypt_util.opdata1_derive_keys( password, self.profile['salt'], self.profile['iterations']) #clean up the master password since we no longer need it. del password self.master_key, self.master_hmac = crypt_util.opdata1_decrypt_master_key( self.profile['master_key_data'], super_master_key, super_hmac_key) self.overview_key, self.overview_hmac = crypt_util.opdata1_decrypt_master_key( self.profile['overview_key_data'], super_master_key, super_hmac_key)
def _loadKeys(self, password): try: super_master_key, super_hmac_key = crypt_util.opdata1_derive_keys( password, self.profile['salt'], self.profile['iterations']) except TypeError: print( "You are probably using an online vault, try https://github.com/tomvachon/dpaf otherwise file an issue." ) raise #clean up the master password since we no longer need it. del password self.master_key, self.master_hmac = crypt_util.opdata1_decrypt_master_key( self.profile['master_key_data'], super_master_key, super_hmac_key) self.overview_key, self.overview_hmac = crypt_util.opdata1_decrypt_master_key( self.profile['overview_key_data'], super_master_key, super_hmac_key)
def test_overview_key_decryption(self): data = "b3BkYXRhMDFAAAAAAAAAAMggp7KPfHsgxuBvQ1mn3YPVxJ7Sc+gvnTCZXQMop2osF7qQUohQHXRTftuCriAAUYgmK6bytJVdIz5JIXCUZEq6xWFekj5L3Br6MO55+bPz1qei50DwFs27eh0+tjpSGm3dMcCqhMAqMmqkENbur0f5t73xlvAEkPwpZzWcrPKe" key, hmac = crypt_util.opdata1_decrypt_master_key( data, self.DERIVED_KEY, self.DERIVED_HMAC) self.assertEqual(key, self.OVERVIEW_KEY) self.assertEqual(hmac, self.OVERVIEW_HMAC)
def test_master_key_decryption(self): data = "b3BkYXRhMDEAAQAAAAAAAIgdZa9rhj9meNSE/1UbyEOpX68om5FOVwoZkzU3ibZqnGvUC0LFiJI+iGmGIznQbvPVwJHAupl6cEYZs//BIbSxJgcengoIEvci+Vote4DCK8kfwjfLPfq6G+4cnTy0yUMyM1qyA7sPB8p3TBlynOgYL5HNIorhj7grF1NeyuAS8UkEpqzpDZurHZNOuVfqmKaLSy2zyOAtJ/ev+SA829kcK3xqqm+cLKPB1fl2/J7Ya4AIKuPjnC8wo10mwsFNvWQ4a+m1rkCFGCTcWWO1RwO6F9ILQk3qqkUnk6HvhBjbLdpmmwZAdeRQQEpGQz9lM9/goTs0+h9VI4/+pQYqTyLoIbnpljnJ0OziffZcrwqqrXIAsBh+ezE0EH44WC73O2/eEARBA5JNgnW/m/rcmFQK5hxeWb4GxbypgUYDRb0p" master_key, master_hmac = crypt_util.opdata1_decrypt_master_key( data, self.DERIVED_KEY, self.DERIVED_HMAC) self.assertEqual(master_key, self.MASTER_KEY) self.assertEqual(master_hmac, self.MASTER_HMAC)
def test_overview_key_decryption(self): data = "b3BkYXRhMDFAAAAAAAAAAMggp7KPfHsgxuBvQ1mn3YPVxJ7Sc+gvnTCZXQMop2osF7qQUohQHXRTftuCriAAUYgmK6bytJVdIz5JIXCUZEq6xWFekj5L3Br6MO55+bPz1qei50DwFs27eh0+tjpSGm3dMcCqhMAqMmqkENbur0f5t73xlvAEkPwpZzWcrPKe" key, hmac = crypt_util.opdata1_decrypt_master_key(data, self.DERIVED_KEY, self.DERIVED_HMAC) T.assert_equal(key, self.OVERVIEW_KEY) T.assert_equal(hmac, self.OVERVIEW_HMAC)
def test_master_key_decryption(self): data = "b3BkYXRhMDEAAQAAAAAAAIgdZa9rhj9meNSE/1UbyEOpX68om5FOVwoZkzU3ibZqnGvUC0LFiJI+iGmGIznQbvPVwJHAupl6cEYZs//BIbSxJgcengoIEvci+Vote4DCK8kfwjfLPfq6G+4cnTy0yUMyM1qyA7sPB8p3TBlynOgYL5HNIorhj7grF1NeyuAS8UkEpqzpDZurHZNOuVfqmKaLSy2zyOAtJ/ev+SA829kcK3xqqm+cLKPB1fl2/J7Ya4AIKuPjnC8wo10mwsFNvWQ4a+m1rkCFGCTcWWO1RwO6F9ILQk3qqkUnk6HvhBjbLdpmmwZAdeRQQEpGQz9lM9/goTs0+h9VI4/+pQYqTyLoIbnpljnJ0OziffZcrwqqrXIAsBh+ezE0EH44WC73O2/eEARBA5JNgnW/m/rcmFQK5hxeWb4GxbypgUYDRb0p" master_key, master_hmac = crypt_util.opdata1_decrypt_master_key(data, self.DERIVED_KEY, self.DERIVED_HMAC) T.assert_equal(master_key, self.MASTER_KEY) T.assert_equal(master_hmac, self.MASTER_HMAC)