Skip to main content
AJCxZ0
July 17, 2026

Bug: SSH Ed25519 key exported in 1PUX violates RFC-8410 §7

  • July 17, 2026
  • 1 reply
  • 8 views

The a PKCS#8 PEM-wrapped DER format Ed25519 private and public keys exported in 1PUX are tagged EXPLICIT, whereas RFC-8410 requires it to be IMPLICIT. This prevents import using any tool compliant with the standard.

For reference, an Ed25519 key pair exported to 1PUX looks like

{  "overview": {    "title": "Playing Games",    "ainfo": "SHA256:B3qe6Gb6NhVHTTVu1pCZL1jNob5isGLUnZEtURr2KIY"  },  "details": {    "sections": [      {        "name": "",        "title": "",        "fields": [          {            "t": "private key",            "n": "private_key",            "k": "sshKey",            "v": "-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==\n-----END PRIVATE KEY-----\n",            "a": {              "guarded": "yes",              "sshKeyAttributes": {                "privateKey": "-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==\n-----END PRIVATE KEY-----\n",                "publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFPZhOtzFR5MheT82aSqd6PUUZI7dXuH95gAWWDrnvCk",                "fingerprint": "SHA256:B3qe6Gb6NhVHTTVu1pCZL1jNob5isGLUnZEtURr2KIY",                "keyType": {                  "t": "ed25519"                }              }            }          }        ],        "attributes": {          "hideAddAnotherField": true        }      }    ]  },  "createdAt": "2022-07-20T16:30:36Z",  "updatedAt": "2026-06-04T22:51:07Z",  "faveIndex": 0,  "trashed": "N",  "templateUuid": "114",  "uuid": "xxxxxxxxxxxxxxxxxxxxxxxxxxx"}

The base64-encoded lines must wrap at 64 characters.

1 reply

AJCxZ0
AJCxZ0Author
July 19, 2026

This was how the post looked in the editor:

While code is not how this kind of content should be marked up and we don’t have any Markdown support where ```json would be the easy and appropriate choice, this should be better structured.

{

  "overview": {

    "title": "Playing Games",

    "ainfo": "SHA256:B3qe6Gb6NhVHTTVu1pCZL1jNob5isGLUnZEtURr2KIY"

  },

  "details": {

    "sections": [

      {

        "name": "",

        "title": "",

        "fields": [

          {

            "t": "private key",

            "n": "private_key",

            "k": "sshKey",

            "v": "-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==\n-----END PRIVATE KEY-----\n",

            "a": {

              "guarded": "yes",

              "sshKeyAttributes": {

                "privateKey": "-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==\n-----END PRIVATE KEY-----\n",

                "publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFPZhOtzFR5MheT82aSqd6PUUZI7dXuH95gAWWDrnvCk",

                "fingerprint": "SHA256:B3qe6Gb6NhVHTTVu1pCZL1jNob5isGLUnZEtURr2KIY",

                "keyType": {

                  "t": "ed25519"

                }

              }

            }

          }

        ],

        "attributes": {

          "hideAddAnotherField": true

        }

      }

    ]

  },

  "createdAt": "2022-07-20T16:30:36Z",

  "updatedAt": "2026-06-04T22:51:07Z",

  "faveIndex": 0,

  "trashed": "N",

  "templateUuid": "114",

  "uuid": "xxxxxxxxxxxxxxxxxxxxxxxxxxx"

}