this post was submitted on 29 Nov 2024
6 points (100.0% liked)

Proton

5407 readers
69 users here now

Empowering you to choose a better internet where privacy is the default. Protect yourself online with Proton Mail, Proton VPN, Proton Calendar, Proton Drive. Proton Pass and SimpleLogin.

Proton Mail is the world's largest secure email provider. Swiss, end-to-end encrypted, private, and free.

Proton VPN is the world’s only open-source, publicly audited, unlimited and free VPN. Swiss-based, no-ads, and no-logs.

Proton Calendar is the world's first end-to-end encrypted calendar that allows you to keep your life private.

Proton Drive is a free end-to-end encrypted cloud storage that allows you to securely backup and share your files. It's open source, publicly audited, and Swiss-based.

Proton Pass Proton Pass is a free and open-source password manager which brings a higher level of security with rigorous end-to-end encryption of all data (including usernames, URLs, notes, and more) and email alias support.

SimpleLogin lets you send and receive emails anonymously via easily-generated unique email aliases.

founded 2 years ago
MODERATORS
6
submitted 3 weeks ago* (last edited 3 weeks ago) by keyboarder to c/protonprivacy
 

I need to import from a non-supported 3rd party password manager. The ProtoPass JSON format looks the most promising, but I can't find details on the Id values. They appear to be some type of encoded hash or GUID, but I'm unfamiliar with how to generate them. I would appreciate any pointers on how to get the details. Thanks!

To get the JSON format for inspection, I created a dummy ProtoPass Vault with a variety of item types (Password, Identity, etc.) and then exported the vault. I can easily produce the JSON from my own password data, but the Ids are the only thing I'm uncertain about.

I also looked through the Proton Github repos, but found nothing... only a deadend to some backend notification call to "items::import", but I couldn't find way service or method that refers to.

top 2 comments
sorted by: hot top controversial new old
[–] SomeWeeb 4 points 3 weeks ago

You might have an easier time converting to a different format which Proton Pass can import, rather than the Proton Pass export format. eg. Convert your file to the Bitwarden JSON format (Bitwarden provide examples and documentation on their format) and then import that file into Proton Pass instead. (IIRC they support Bitwarden's format)

[–] [email protected] 2 points 2 weeks ago

Is there a reason you can't use the generic CSV format?

Regardless, I have tested and it doesn't look like those IDs are used during import. Import works perfectly fine with a Zipfile containing an unencrypted JSON file, as formatted by ProtonPass export, with all those base64 strings (itemId, itemUuid, shareId) removed or blanked out:

JSON example

{
  "encrypted": false,
  "userId": "",
  "vaults": {
    "": {
      "name": "test",
      "description": "",
      "display": {
        "color": 0,
        "icon": 0
      },
      "items": [
        {
          "data": {
            "metadata": {
              "name": "test-login",
              "note": ""
            },
            "extraFields": [],
            "type": "login",
            "content": {
              "itemEmail": "",
              "password": "password",
              "urls": [],
              "totpUri": "",
              "passkeys": [],
              "itemUsername": "username"
            }
          },
          "state": 1,
          "aliasEmail": null,
          "contentFormatVersion": 6,
          "createTime": 1733128994,
          "modifyTime": 1733128994,
          "pinned": false
        }
      ]
    }
  },
  "version": "1.25.0"
}

When re-exporting those imported values, they have new IDs even when you include the old IDs from the original export, so they're obviously not being used. My guess is they're just some sort of random UUID.