106 lines
2.6 KiB
Markdown
106 lines
2.6 KiB
Markdown
Improved quick hack to convert a 1pif (1Password export) to kdbx (KeePass).
|
|
|
|
|
|
Install dependencies
|
|
--------------------
|
|
|
|
pipenv install
|
|
|
|
|
|
Run converter
|
|
-------------
|
|
|
|
pipenv run ./convert.py infile.1pif
|
|
|
|
|
|
Basic 1Password 1PIF structure
|
|
------------------------------
|
|
|
|
```json
|
|
{
|
|
'contentsHash': 'cf89d854',
|
|
'createdAt': 1617646219,
|
|
'location': 'https://domain.com/',
|
|
'locationKey': 'domain.com',
|
|
'openContents': {
|
|
'tags': ['Tag1', 'Tag2']
|
|
},
|
|
'secureContents': {
|
|
'URLs': [
|
|
{'label': 'website', 'url': 'https://domain.com/'}
|
|
],
|
|
'fields': [
|
|
{
|
|
'designation': 'username',
|
|
'name': 'name_of_username_field_on_website',
|
|
'type': 'T',
|
|
'value': 'john.doe'
|
|
},
|
|
{
|
|
'designation': 'password',
|
|
'name': 'name_of_password_field_on_website',
|
|
'type': 'P',
|
|
'value': 'ultrasecurepassword'
|
|
}
|
|
],
|
|
'notesPlain': 'This is a note.',
|
|
'sections': [
|
|
{
|
|
'fields': [
|
|
{
|
|
'inputTraits': {'autocapitalization': 'Words'},
|
|
'k': 'string',
|
|
'n': 'org_name',
|
|
't': 'group',
|
|
'v': 'My Organisation'
|
|
},
|
|
{
|
|
'inputTraits': {'autocapitalization': 'Words'},
|
|
'k': 'string',
|
|
'n': 'member_name',
|
|
't': 'member name',
|
|
'v': 'John Doe'
|
|
}
|
|
]
|
|
'name': '',
|
|
'title': ''
|
|
},
|
|
{
|
|
'name': 'linked items',
|
|
'title': 'Related Items'
|
|
// no "fields" structure = empty section
|
|
}
|
|
]
|
|
},
|
|
'scope': 'Never',
|
|
'securityLevel': 'SL5',
|
|
'title': 'My secret password',
|
|
'typeName': 'webforms.WebForm',
|
|
'updatedAt': 1618176026,
|
|
'uuid': 'ysd77pxq4zghhodfbo47cewudy'}
|
|
```
|
|
|
|
Fields inside sections can be of various types: text, url, email, address, date, month/year, otp, password or a phone number.
|
|
|
|
Also there are different typeName values that define different field presets.
|
|
|
|
|
|
Basic KeePass structure
|
|
-----------------------
|
|
|
|
```
|
|
- UUID
|
|
- Title
|
|
- UserName
|
|
- Password
|
|
- URL
|
|
- Tags
|
|
- IconID
|
|
- Times
|
|
- History
|
|
- Notes
|
|
- custom fields
|
|
```
|
|
|
|
Default fields are text. Custom fields can also only be of type text - either hidden (password field) or not.
|