Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
'notes': record.notes or '',
'custom': record.custom_fields or '',
'folder': record.folder or ''
}
extra = None
udata = None
if record.attachments:
extra = {
'files': record.attachments
}
udata = {
'file_id': [x['id'] for x in record.attachments]
}
record_key = api.generate_aes_key() if key_type != 0 else _USER_DATA_KEY
rec_object = {
'record_uid': record.record_uid,
'revision': record.revision if (0 < record.revision <= _REVISION) else _REVISION,
'version': 2 if key_type != 0 else 1,
'shared': key_type not in [0, 1],
'data': api.encrypt_aes(json.dumps(data).encode('utf-8'), record_key),
}
if extra:
rec_object['extra'] = api.encrypt_aes(json.dumps(extra).encode('utf-8'), record_key)
if udata:
rec_object['udata'] = udata
_RECORDS.append(rec_object)
meta_data = {
'record_uid': record.record_uid,
import json
from data_vault import VaultEnvironment
from keepercommander import api
from keepercommander.params import KeeperParams
_TREE_KEY = api.generate_aes_key()
_ENTERPRISE_ID = 123
_VAULT_ENV = VaultEnvironment()
_USE_DATA_KEY = True
_TEAM_KEY = api.generate_aes_key()
_TEAM1_UID = api.generate_record_uid()
_TEAM2_UID = api.generate_record_uid()
_TEAM1_NAME = 'Team 1'
_TEAM2_NAME = 'Team 2'
_NODE1_ID = (_ENTERPRISE_ID << 32) + 101
_NODE2_ID = (_ENTERPRISE_ID << 32) + 102
_USER1_ID = (_ENTERPRISE_ID << 32) + 201
import json
from data_vault import VaultEnvironment
from keepercommander import api
from keepercommander.params import KeeperParams
_TREE_KEY = api.generate_aes_key()
_ENTERPRISE_ID = 123
_VAULT_ENV = VaultEnvironment()
_USE_DATA_KEY = True
_TEAM_KEY = api.generate_aes_key()
_TEAM1_UID = api.generate_record_uid()
_TEAM2_UID = api.generate_record_uid()
_TEAM1_NAME = 'Team 1'
_TEAM2_NAME = 'Team 2'
_NODE1_ID = (_ENTERPRISE_ID << 32) + 101
_NODE2_ID = (_ENTERPRISE_ID << 32) + 102
_USER1_ID = (_ENTERPRISE_ID << 32) + 201
_USER2_ID = (_ENTERPRISE_ID << 32) + 202
_USER2_EMAIL = 'user2@keepercommander.com'
_ROLE1_ID = (_ENTERPRISE_ID << 32) + 301
_ROLE1_NAME = 'Role 1'
_LAST_ID = 1000
def generate_data():
r1 = record.Record()
r1.record_uid = api.generate_record_uid()
r1.folder = 'Old Folder'
r1.title = 'Record 1'
r1.login = 'user1@keepersecurity.com'
r1.password = 'password1'
r1.login_url = 'https://keepersecurity.com/1'
r1.set_field('field1', 'value1')
r1.notes = 'note1'
r1.attachments = [{
'name': 'Attachment 1',
'key': base64.urlsafe_b64encode(api.generate_aes_key()).decode('utf-8').rstrip('='),
'id': 'ABCDEFGH',
'size': 1000
}]
r1.revision = 1
r1_key = register_record(r1, 1)
r2 = record.Record()
r2.record_uid = api.generate_record_uid()
r2.title = 'Record 2'
r2.login = 'user2@keepersecurity.com'
r2.password = 'password2'
r2.login_url = 'https://keepersecurity.com/2'
r2.set_field('field2', 'value2')
r2.notes = 'note2'
r2.revision = 2
r2_key = register_record(r2, 2)
def register_team(team, key_type, sfs=None):
# type: (team.Team, int, dict) -> bytes
team_key = api.generate_aes_key()
t = {
'team_uid': team.team_uid,
'name': team.name,
'team_key_type': key_type,
'team_key': api.encrypt_aes(team_key, _USER_DATA_KEY) if key_type == 1 else api.encrypt_rsa(team_key, _IMPORTED_PUBLIC_KEY),
'team_private_key': api.encrypt_aes(_DER_PRIVATE_KEY, team_key),
'restrict_edit': team.restrict_edit,
'restrict_share': team.restrict_share,
'restrict_view': team.restrict_view,
}
_TEAMS.append(t)
if sfs:
t['shared_folder_keys'] = [{
'shared_folder_uid': x[0],
'key_type': 1,
return
rq = {
'command': 'request_upload',
'file_count': len(files),
'thumbnail_count': 0
}
rs = api.communicate(params, rq)
attachments = []
for file_path, uo in zip(files, rs['file_uploads']):
try:
file_size = os.path.getsize(file_path)
if 0 < file_size < uo['max_size']:
a = {
'key': api.generate_aes_key(),
'file_id': uo['file_id'],
'name': os.path.basename(file_path)
}
logging.info('Uploading %s ...', a['name'])
with tempfile.TemporaryFile(mode='w+b') as dst:
with open(file_path, mode='r+b') as src:
iv = os.urandom(16)
cipher = AES.new(a['key'], AES.MODE_CBC, iv)
dst.write(iv)
finished = False
while not finished:
to_encrypt = src.read(10240)
if len(to_encrypt) > 0:
if len(to_encrypt) < 10240:
to_encrypt = api.pad_binary(to_encrypt)
finished = True