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

Proton

5408 readers
10 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.

you are viewing a single comment's thread
view the rest of the comments
[–] [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.