Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

66 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Edky

License Package on Crates.io Package on NPM Package on Pub.dev Package on PyPI Package on RubyGems

Edky (pronounced ed-key) converts Ed25519 public keys between various encoding formats.

[Features] | [Prerequisites] | [Installation] | [Examples] | [Reference] | [Development]


Showcase of edky convert

✨ Features

  • Available both as the command-line tool edky and a polyglot library.
  • Supports the Base16, Base32z, Base58, Base64, and Multibase encodings.
  • Provides interop between ASIMOV, IPFS, Iroh, libp2p, NEAR, OpenSSH, etc.
  • Polyglot software (soon!) available for Dart, Python, Ruby, Rust, and TypeScript.
  • Cuts red tape: 100% free and unencumbered public domain software.

⬇️ Installation

Installation of the CLI

Installation via Cargo Binstall

cargo binstall -y edky

Installation via cargo-binstall

Installation via Cargo

cargo install edky --locked --features=cli

Installation of the Library

Installation for Rust from Crates.io

Installation from Crates.io

cargo add edky
Installation for JavaScript/TypeScript from NPM

Installation from NPM

npm install edky.js
bun add edky.js
pnpm add edky.js
yarn add edky.js
Installation for Dart from Pub.dev

Installation from Pub.dev

dart pub add edky
flutter pub add edky
Installation for Python from PyPI

Installation from PyPI

pip install -U edky
uv add edky
poetry add edky
pdm add edky
Installation for Ruby from RubyGems

Installation from RubyGems

gem install edky
bundle add edky

πŸ‘‰ Examples

Converting Ed25119 Public Keys via the CLI

$ edky convert -f iroh -t libp2p 47pjoycnsrfmxikm95jh13y88e8qnhzu5kungjpxyepgt7a8krpy
z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw

$ edky convert -f libp2p -t iroh z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw
47pjoycnsrfmxikm95jh13y88e8qnhzu5kungjpxyepgt7a8krpy

$ edky convert -f near -t hex ed25519:FVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z
d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a

$ edky convert -f hex -t near d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a
ed25519:FVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z

πŸ“š Reference

Command-Line Interface

$ edky
Edky converts Ed25519 public keys between various encoding formats

Usage: edky [OPTIONS] [COMMAND]

Commands:
  list     List the supported public key encoding formats
  convert  Convert Ed25519 public keys between various encoding formats
  parse    Parse Ed25519 public keys in various encoding formats
  help     Print this message or the help of the given subcommand(s)

Options:
      --color <COLOR>  Set the color output mode [default: auto] [possible values: auto, always, never]
  -d, --debug          Enable debugging output
      --license        Show license information
  -v, --verbose...     Enable verbose output (may be repeated for more verbosity)
  -V, --version        Print version information
  -h, --help           Print help (see more with '--help')

edky list

$ edky list --help
List the supported public key encoding formats

Usage: edky list [OPTIONS]

Options:
      --color <COLOR>  Set the color output mode [default: auto] [possible values: auto, always, never]
  -d, --debug          Enable debugging output
  -v, --verbose...     Enable verbose output (may be repeated for more verbosity)
  -h, --help           Print help

edky convert

$ edky convert --help
Convert Ed25519 public keys between various encoding formats

Usage: edky convert [OPTIONS] [INPUTS]...

Arguments:
  [INPUTS]...  The input strings to convert

Options:
      --color <COLOR>  Set the color output mode [default: auto] [possible values: auto, always, never]
  -f, --from <FROM>    The input encoding format [default: hex]
  -d, --debug          Enable debugging output
  -t, --to <TO>        The output encoding format [default: hex]
  -v, --verbose...     Enable verbose output (may be repeated for more verbosity)
  -h, --help           Print help

edky parse

$ edky parse --help
Parse Ed25519 public keys in various encoding formats

Usage: edky parse [OPTIONS] [INPUTS]...

Arguments:
  [INPUTS]...  The input strings to parse

Options:
      --color <COLOR>  Set the color output mode [default: auto] [possible values: auto, always, never]
  -f, --from <FROM>    The input encoding format [default: hex]
  -d, --debug          Enable debugging output
  -v, --verbose...     Enable verbose output (may be repeated for more verbosity)
  -h, --help           Print help

Encodings

For -f, -t Sample Public Key
asimov β’ΆYFVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z
base16 d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a
base32z 47pjoycnsrfmxikm95jh13y88e8qnhzu5kungjpxyepgt7a8krpy
base58 FVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z
base64 11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=
base64url 11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo
hex d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a
ipfs z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw
iroh 47pjoycnsrfmxikm95jh13y88e8qnhzu5kungjpxyepgt7a8krpy
libp2p z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw
multibase z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw
near ed25519:FVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z
openssh ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINdamAGCsQq31Uv+08lkBzoO4XLz2qYjJa8CGmj3B1Ea

πŸ‘¨β€πŸ’» Development

git clone https://github.com/artob/edky.git

Share on X Share on Reddit Share on Hacker News Share on Facebook Share on LinkedIn

About

πŸ¦€ Convert Ed25519 public keys between various encoding formats such as Base16, Base32z, Base58, Base64, Multibase, and OpenSSH.

Topics

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages