Added start of keepassplugin

This commit is contained in:
Rick Rongen
2019-02-06 14:35:07 +01:00
parent 7654ac9585
commit 5262c679d0
3 changed files with 34 additions and 1 deletions

3
.gitignore vendored
View File

@@ -104,4 +104,7 @@ venv.bak/
# mypy
.mypy_cache/
# Idea
.idea/
*.iml

28
Crx/keepassplugin.py Normal file
View File

@@ -0,0 +1,28 @@
import sys
import gzip
import base64
from lxml import etree
if sys.platform == 'win32':
iswin = True
import win32crypt
else:
iswin = False
win32crypt = None
ADDITIONAL_ENTROPY = b'\xf8\x03\xfaQ\x87\x18I]'
PREFIX = 'data:application/vnd.KeePass.Entries-E;base64,'
def parse_keepass_entry(data: str):
if not data.startswith(PREFIX):
raise ValueError("Not a valid entry")
data = base64.b64decode(data.split(','[1]))
if iswin:
data = win32crypt.CryptUnprotectData(data, ADDITIONAL_ENTROPY)
data = gzip.decompress(data)
return data.decode() # XML String

View File

@@ -1 +1,3 @@
requests >= 2.21.0
requests >= 2.21.0
pywin32 >= 224
lxml >= 4.3.0