Skip to content

Releases: gitmachtl/cardano-signer

cardano-signer 1.20.0

09 Nov 15:47
Compare
Choose a tag to compare

Release Notes / Change-Logs

1.20.0

NEW FUNCTION - Derive keys from Hardware-Wallet mnemonics

  • Two new flags have been added to the keygen mode:
    • --ledger let you derive your keys in Ledger-Hardware-Wallet type format
    • --trezor let you derive your keys in Trezor-Hardware-Wallet type format

This new function allows to recover keys from a Hardware-Wallet as pure CLI-Keys.

image

UPDATE/CHANGES:

  • The preset path --path pool has been added to the keygen mode, to directly derive Cardano-Pool Cold-Keys
  • The path entry in the --json-extended output for the keygen mode was renamed into derivationPath (breaking!)
  • A new entry was added in the --json-extended output for the keygen mode -> derivationType, which can be icarus, ledger or trezor
  • If keys are derived for --path drep or --path pool, the output now also contains the corresponding DRep-ID/Pool-ID.

cardano-signer 1.19.0

09 Sep 17:23
Compare
Choose a tag to compare

Release Notes / Change-Logs

1.19.0

NEW FUNCTION - Adding authors signatures to CIP100/108/119 JSONLD governance metadata in one go

  • A new function is now available via the 'sign --cip100' parameter. Its now possible to add authors entries (Name + Signature) with a single command using cardano-signer
    image
    So if you input a JSONLD governance file (context part not shown) like
{
...
  "hashAlgorithm": "blake2b-256",
  "body": {
    "title": "Example CIP108(+CIP100) metadata",
    "abstract": "This metadata was generated to test out db-sync, SPO-Scripts, Koios and other tools...",
    "motivation": "This must work, should be motivation enough.",
    "rationale": "Let's keep testing stuff",
    "references": [
      {
        "@type": "Other",
        "label": "SanchoNet",
        "uri": "https://sancho.network"
      }
    ],
    "comment": "This is an example CIP-108 metadata-file... testing SPO-Scripts, Koios and Co.",
    "externalUpdates": [
      {
        "title": "SPO Scripts",
        "uri": "https://github.com/gitmachtl/scripts"
      },
      {
        "title": "Koios",
        "uri": "https://koios.rest"
      }
    ]
  }
}

and after running

$ cardano-signer.js sign --cip100 --data-file CIP108-example.json --secret-key dummy.skey --author-name "The great Name"

you get out:

{
...
"hashAlgorithm": "blake2b-256",
"body": {
 "title": "Example CIP108(+CIP100) metadata",
 "abstract": "This metadata was generated to test out db-sync, SPO-Scripts, Koios and other tools...",
 "motivation": "This must work, should be motivation enough.",
 "rationale": "Let's keep testing stuff",
 "references": [
   {
     "@type": "Other",
     "label": "SanchoNet",
     "uri": "https://sancho.network"
   }
 ],
 "comment": "This is an example CIP-108 metadata-file... testing SPO-Scripts, Koios and Co.",
 "externalUpdates": [
   {
     "title": "SPO Scripts",
     "uri": "https://github.com/gitmachtl/scripts"
   },
   {
     "title": "Koios",
     "uri": "https://koios.rest"
   }
 ]
},
"authors": [
 {
   "name": "The great Name",
   "witness": {
     "witnessAlgorithm": "ed25519",
     "publicKey": "755b017578b701dc9ddd4eaee67015b4ca8baf66293b7b1d204df426c0ceccb9",
     "signature": "8b579ba2cb9bcb2355e550a67865d56017d4696a4a48f8db5218a92a7f85bb3ddcde13500b89531c68a3f52deb83ca45f1987ea048500e11feee26847cb6b900"
   }
 }
]
}

So cardano-signer does a sanity check about the governance JSONLD file, it checks all existing author signatures, it checks if there are any duplicates, it does the canonization of the body, hashes it and then adds a new author entry by signing the document via the provided secret-key and author-name. more authors can be added by running it multiple times!

Also, if you write out the new file directly via the --out-file parameter, the output of cardano-signer becomes a json with the basic infos of the new file, including the anchorHash. Ready do be used with governance on Cardano.

{
  "workMode": "sign-cip100",
  "outFile": "CIP108-example-signed.json",
  "anchorHash": "8723898521770d095f522a3976f8318128f97ae10b8cd97da0f66dd29f849f80"
}

UPDATE/CHANGES:

General:

  • cardano-signer is now compatible with CIP129 standard for drep, committee-cold and committee-hot bech strings. this works now for all functions that allow an --address parameter.

CIP 8/30 DataSign:

  • you can now directly also use governance bech-ids for the --address parameter like drep1... when signing in CIP8/30 mode.

CIP 100 - Governance:

  • the canonize&hash command hash introduced in version 1.17 was renamed to canonize. the change was made to avoid confusion, because this command is to output the hash of the canonized body, not the file-hash. there is also now a red note as info:
    image

  • output fields of the canonize and verify function changed: hash is now canonizedHash, and canonized is now canonizedBody.

  • in addition to the existing checks in the verify function, cardano-signer now also checks for duplicated public-key entries in the authors array of the input jsonld file.

cardano-signer 1.18.0

01 Sep 12:54
Compare
Choose a tag to compare

Release Notes / Change-Logs

  • 1.18.0

    New Verification mode for Governance Metadata

    • verify and analyze governance metadata following CIP-100, CIP-108, CIP-119 standard via the new verify --cip100 option
      image

Example:

./cardano-signer verify --cip100 --data-file CIP119-example-fail.json --json-extended
{
  "workMode": "verify-cip100",
  "result": false,
  "errorMsg": "at least one invalid signature found",
  "authors": [
    {
      "name": "Martin Lang",
      "publicKey": "b18eacea2003b68e39137545e9d42ce5bca133ca0334d6a75aa9cb1fd02be7ec",
      "signature": "6aae4ed31604601062c14d58c7f5f561daaec5a0716c03665a432a08bc73c09280edbe5b7f4716374340034f4a608d43b56bbea7e32e9bc68d7382b80324a804",
      "valid": true
    },
    {
      "name": "Pi Lanningham",
      "publicKey": "7ea09a34aebb13c9841c71397b1cabfec5ddf950405293dee496cac2f437480a",
      "signature": "340c2ef8d6abda96769844ab9dca2634ae21ef97ddbfad1f8843bea1058e40d656455a2962143adc603d063bbbe27b54b88d002d23d1dff1cd0e05017cd4f506",
      "valid": false
    }
  ],
  "hash": "8e5086456795294e40203884dc380a6c70203754be0e2d02927d619cce995ee9",
  "body": {
    "title": "Example CIP100(+CIP108+CIP119) metadata",
    "abstract": "This metadata was generated to test out db-sync, SPO-Scripts, Koios and other tools...",
    "motivations": "This must work, should be motivation enough.",
    "rationale": "Let's keep testing stuff",
    "paymentAddress": "addr_test1qrlvt2gzuvrhq7m2k00rsyzfrrqwx085cdqgum7w5nc2rxwpxkp2ajdyflxxmxztuqpu2pvvvc8p6tl3xu8a3dym5uls50mr97",
    "givenName": "Martin Lang",
    "image": {
      "@type": "ImageObject",
      "contentUrl": "https://www.stakepool.at/pics/stakepool_operator_scripts.png",
      "sha256": "e98afb3651b5c3808201890e24eff5811bb855fe7b5e8dab0a8ec086ed0a9131"
    },
    "objectives": "This is an Testobjectives entry.",
    "qualifications": "Don't ask me... just doing it.",
    "references": [
      {
        "@type": "Other",
        "label": "SanchoNet",
        "uri": "https://sancho.network"
      }
    ],
    "comment": "This is an example CIP-119 metadata-file... testing SPO-Scripts, Koios and Co.",
    "externalUpdates": [
      {
        "title": "SPO Scripts",
        "uri": "https://github.com/gitmachtl/scripts"
      },
      {
        "title": "Koios",
        "uri": "https://koios.rest"
      }
    ]
  },
  "canonized": [
    "_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://schema.org/ImageObject> .",
    "_:c14n1 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#update-title> \"SPO Scripts\"@en-us .",
    "_:c14n1 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#update-uri> \"https://github.com/gitmachtl/scripts\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#comment> \"This is an example CIP-119 metadata-file... testing SPO-Scripts, Koios and Co.\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#externalUpdates> _:c14n1 .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#externalUpdates> _:c14n3 .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0108/README.md#abstract> \"This metadata was generated to test out db-sync, SPO-Scripts, Koios and other tools...\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0108/README.md#rationale> \"Let's keep testing stuff\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0108/README.md#title> \"Example CIP100(+CIP108+CIP119) metadata\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0119/README.md#givenName> \"Martin Lang\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0119/README.md#image> _:c14n0 .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0119/README.md#motivations> \"This must work, should be motivation enough.\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0119/README.md#objectives> \"This is an Testobjectives entry.\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0119/README.md#paymentAddress> \"addr_test1qrlvt2gzuvrhq7m2k00rsyzfrrqwx085cdqgum7w5nc2rxwpxkp2ajdyflxxmxztuqpu2pvvvc8p6tl3xu8a3dym5uls50mr97\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0119/README.md#qualifications> \"Don't ask me... just doing it.\"@en-us .",
    "_:c14n2 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0119/README.md#references> _:c14n5 .",
    "_:c14n3 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#update-title> \"Koios\"@en-us .",
    "_:c14n3 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#update-uri> \"https://koios.rest\"@en-us .",
    "_:c14n4 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0119/README.md#body> _:c14n2 .",
    "_:c14n5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#OtherReference> .",
    "_:c14n5 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#reference-label> \"SanchoNet\"@en-us .",
    "_:c14n5 <https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#reference-uri> \"https://sancho.network\"@en-us ."
  ]
}

cardano-signer 1.17.0

09 Aug 11:35
Compare
Choose a tag to compare

Release Notes / Change-Logs

  • 1.17.0

    General

    • Now using NODE.JS v18
    • Updated all dependencies to the latest versions

    New Hash mode to Canonize & Hash Governance Metadata

    • hash governance metadata following CIP-100, CIP-108, CIP-119 standard via the new hash --cip100 option

    image

cardano-signer 1.16.1

16 Jun 18:32
Compare
Choose a tag to compare

Release Notes / Change-Logs

  • 1.16.1

    Catalyst Vote Key Generation CIP36

    • Bugfix: The description field of the generated *.vkey file was corrected to be 'Catalyst Vote Verification Key'

cardano-signer 1.16.0

06 Mar 12:53
Compare
Choose a tag to compare

Release Notes / Change-Logs

  • 1.16.0

    Signing & Verification in CIP-030/008 mode

    • Added a new flag --nohashcheck for the signing and verification in CIP030/008 format. Using this flag will tell cardano-signer to not perform a check of the hash in the address-field against the public-key during the verification process. And additionally it can disable the address/hash check in the signing process too.

image
image

cardano-signer 1.15.2

08 Jan 19:22
Compare
Choose a tag to compare

Release Notes / Change-Logs

  • 1.15.2

    General

    • small bugfix, parameter mainnet throwing an "unknown" error for the sign --cip36 command
    • added an arm64 build

cardano-signer 1.15.1

08 Dec 11:09
Compare
Choose a tag to compare

Release Notes / Change-Logs

  • 1.15.1

    General

    • small bugfix, parameters help, usage, version throwing an "unknown" error
  • 1.15.0

    New constitutional-commitee-member cold-key generation mode:

    • generate conway cc-cold keys via the path --path cc-cold or
    • generate conway cc-cold keys from the derivation path "1852'/1815'/acc'/4/idx'
    • generate conway cc-cold keys from mnemonics or let cardano-signer generate new mnemonics for you

    New constitutional-commitee-member hot-key generation mode:

    • generate conway cc-hot keys via the path --path cc-hot or
    • generate conway cc-hot keys from the derivation path "1852'/1815'/acc'/5/idx'
    • generate conway cc-hot keys from mnemonics or let cardano-signer generate new mnemonics for you

    General

    • some corrections on extended verification key outputs
    • an unknown parameter now throws an error. before, optional parameters with a typo were simply ignored
    • general code cleanup, typos, etc.

image

cardano-signer 1.14.0

14 Oct 12:14
Compare
Choose a tag to compare

Release Notes / Change-Logs

  • 1.14.0

    New dRep-Key generation mode:

    • generate conway dRep keys via the path --path drep or
    • generate conway dRep keys from the derivation path 1852'/1815'/acc'/3/idx'
    • generate conway dRep keys from mnemonics or let cardano-signer generate new mnemonics for you

    Key generation mode changes:

    • the flag with-chain-code has been replaced by the new flag vkey-extended. this makes it easier for the users to understand the meaning
    • per default the public keys are now always generated as non-extended keys, the secret keys are always extended ones if derived from a path

    General

    • code cleanup

image

cardano-signer 1.13.0

06 Feb 19:01
Compare
Choose a tag to compare

Release Notes / Change-Logs

  • 1.13.0

    New key generation mode:

    • generate normal ed25519 keys
    • generate extended ed25519 keys from a derivation path like "1852H/1815H/0H/0/0"
    • generate keys from mnemonics or let cardano-signer generate new mnemonics for you
    • generate CIP36 conform vote keys incl. bech cvote_vk data and an optional vote_purpose
    • generate keys with or without chaincode attached
    • directly write out .skey/.vkey files (like cardano-cli)
    • extended information like an Xpub... key is available via the --json-extended flag
    • shortcuts for paths can be used like --path payment, --path stake, --path cip36

image