MCPcopy Index your code
hub / github.com/cryptouri/cryptouri.rs

github.com/cryptouri/cryptouri.rs @v0.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.0 ↗ · + Follow
92 symbols 124 edges 20 files 57 documented · 62% updated 2y ago★ 371 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CryptoURI.rs

Crate Docs Build Status Safety Dance MSRV Apache 2.0+MIT Licensed [Gitter Chat]gitter-link

A URI-like format for serializing cryptographic objects including keys, signatures, and digests using URI generic syntax:

crypto:pub:key:ed25519:6adfsqvzky9t042tlmfujeq88g8wzuhnm2nzxfd0qgdx3ac82ydqf03cvv

A URI-safe "dasherized" form is also supported:

crypto-pub-key-ed25519-6adfsqvzky9t042tlmfujeq88g8wzuhnm2nzxfd0qgdx3ac82ydqlu986g

Documentation

About CryptoURI

The CryptoURI format leverages the URI generic syntax defined in RFC 3986 to provide simple and succinct encodings of cryptographic keys, including public keys, private/secret keys, encrypted secret keys with password-based key derivation, digital signatures, key fingerprints, and other digests.

Binary data is serialized using the Bech32 encoding format which is designed to prevent human transcription errors by using an alphabet that eliminates similar-looking characters to avoid transcription errors and adds a checksum across the whole URI to detect these errors when they do happen. CryptoURIs which have been mis-transcribed will fail to decode.

Minimum Supported Rust Version

  • Rust 1.39+

Help and Discussion

Have questions? Want to suggest a feature or change?

Code of Conduct

We abide by the Contributor Covenant and ask that you do as well.

For more information, please see CODE_OF_CONDUCT.md.

Contributing

Bug reports and pull requests are welcome on GitHub at:

https://github.com/cryptouri/cryptouri-rs

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as noted below, without any additional terms or conditions.

License

The cryptouri Rust crate is dual licensed under your choice of either of:

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

Extension points exported contracts — how you extend this code

Encodable (Interface)
Objects that can be encoded as CryptoUri [6 implementers]
src/encoding.rs

Core symbols most depended-on inside this repo

expose_secret
called by 8
src/secret_key/hkdf.rs
as_ref
called by 2
src/hash/sha2.rs
ed25519_key
called by 1
src/public_key.rs
ed25519_signature
called by 1
src/signature.rs
parse
called by 1
src/lib.rs
secret_key
called by 1
src/lib.rs
public_key
called by 1
src/lib.rs
hash
called by 1
src/lib.rs

Shape

Method 66
Class 12
Enum 7
Function 6
Interface 1

Languages

Rust100%

Modules by API surface

src/lib.rs17 symbols
src/secret_key.rs16 symbols
src/secret_key/hkdf.rs7 symbols
src/error.rs7 symbols
src/signature.rs6 symbols
src/public_key.rs6 symbols
src/hash.rs6 symbols
tests/public_key_test.rs4 symbols
src/signature/ed25519.rs3 symbols
src/secret_key/ed25519.rs3 symbols
src/secret_key/chacha20poly1305.rs3 symbols
src/public_key/ed25519.rs3 symbols

For agents

$ claude mcp add cryptouri.rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact