-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathget_password.py
More file actions
63 lines (49 loc) · 1.8 KB
/
get_password.py
File metadata and controls
63 lines (49 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import json
import os.path
from loguru import logger
from passwork_api import PassworkAPI
# A way to overwrite the specified data in environment variables or not use environment variables at all
options_override = {
# "host": "https://.../api/v4",
# "api_key": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
# "master_password": "master_password",
}
api = PassworkAPI(options_override=options_override)
api.login()
PASSWORD_ID = "0123456789abcdefghijklmn"
DOWNLOAD_ATTACHMENTS_PATH = os.path.join("../downloaded_attachments", PASSWORD_ID)
# get password item
password_item = api.get_password(password_id=PASSWORD_ID)
# get vault id and vault item
vault_id = password_item.get("vaultId")
vault_item = api.get_vault(vault_id=vault_id)
# get vault password and password encryption key
vault_password = api.get_vault_password(vault_item=vault_item)
password_encryption_key = api.get_password_encryption_key(
password_item=password_item, vault_password=vault_password
)
# get password customs
password_item["custom"] = api.get_customs(
password_item=password_item, password_encryption_key=password_encryption_key
)
# download password attachments
api.get_attachments(
password_item=password_item,
password_encryption_key=password_encryption_key,
download_path=DOWNLOAD_ATTACHMENTS_PATH,
)
# get password plain text
password_plain_text = api.get_password_plain_text(
password_item=password_item, password_encryption_key=password_encryption_key
)
# receive full password info
full_password_info = {
"password": password_item,
"vault": vault_item,
"vaultMasterKey": vault_password,
"passwordMasterKey": password_encryption_key,
"passwordPlainText": password_plain_text,
}
pretty_data = json.dumps(full_password_info, indent=4)
logger.success(pretty_data)
api.logout()