Blockchain Commons Components TypeScript Library - v1.0.0-alpha.13
    Preparing search index...

    Class SigningPrivateKey

    A private key used for creating digital signatures.

    Currently supports:

    • Schnorr private keys (32 bytes, secp256k1) - bare byte string in CBOR
    • ECDSA private keys (32 bytes, secp256k1) - discriminator 1
    • Ed25519 private keys (32 bytes) - discriminator 2
    • SR25519 private keys (32-byte seed) - discriminator 3
    • MLDSA private keys (post-quantum) - tagged CBOR delegating to MLDSAPrivateKey

    Implements

    Index

    Properties

    UR_TYPE: "signing-private-key"

    Get the UR type for signing private keys.

    Methods

    • Signs a message with optional signing options.

      Different signature schemes may use the options differently:

      • Schnorr: Can accept a custom random number generator via SigningOptions.Schnorr
      • SSH: Would require namespace and hash algorithm (not yet implemented)
      • Other schemes (ECDSA, Ed25519, Sr25519, MLDSA): Options are ignored

      Parameters

      • message: Uint8Array

        The message to sign

      • Optionaloptions: SigningOptions

        Optional signing options

      Returns Signature

      The digital signature

    • Returns the untagged CBOR encoding.

      Format (matching Rust bc-components):

      • Schnorr: h'<32-byte-private-key>' (bare byte string)
      • ECDSA: [1, h'<32-byte-private-key>']
      • Ed25519: [2, h'<32-byte-private-key>']
      • Sr25519: [3, h'<32-byte-seed>']
      • MLDSA: delegates to MLDSAPrivateKey (tagged)

      Returns Cbor

    • Creates a SigningPrivateKey by decoding it from untagged CBOR.

      Format (matching Rust bc-components):

      • h'<32-byte-key>' (bare byte string) for Schnorr
      • [1, h'<32-byte-key>'] for ECDSA
      • [2, h'<32-byte-key>'] for Ed25519
      • [3, h'<32-byte-seed>'] for Sr25519
      • tagged MLDSA private key for MLDSA variants

      Parameters

      • cborValue: Cbor

      Returns SigningPrivateKey