hush-core 0.2.2

Core cryptographic primitives for clawdstrike
Documentation

hush-core

Core cryptographic primitives for the Clawdstrike attestation system.

Features

  • Ed25519 -- Key generation, signing, and verification
  • SHA-256 -- Standard cryptographic hashing
  • Keccak-256 -- Ethereum-compatible hashing
  • Merkle trees -- RFC 6962-compatible construction and inclusion proof verification
  • Canonical JSON -- RFC 8785 deterministic serialization for hashing and signing
  • Receipts -- Signed attestation types (Receipt, SignedReceipt, Verdict, Provenance)
  • TPM support -- Sealed seed signing via platform TPM (non-WASM targets)

Quick Start

use hush_core::{sha256, keccak256, Keypair};

// Hash some data
let hash = sha256(b"hello world");
assert_eq!(hash.as_bytes().len(), 32);

// Keccak-256 (Ethereum-compatible)
let eth_hash = keccak256(b"hello world");
assert_eq!(eth_hash.as_bytes().len(), 32);

// Sign and verify
let keypair = Keypair::generate();
let message = b"important message";
let signature = keypair.sign(message);
assert!(keypair.public_key().verify(message, &signature));

Merkle Trees

use hush_core::MerkleTree;

let leaves = vec![b"leaf1".to_vec(), b"leaf2".to_vec(), b"leaf3".to_vec()];
let tree = MerkleTree::from_leaves(&leaves).unwrap();

// Generate and verify inclusion proof
let proof = tree.inclusion_proof(1).unwrap();
assert!(proof.verify(&leaves[1], &tree.root()));

Cargo Features

  • default -- Core crypto primitives
  • wasm -- WebAssembly target support (uses getrandom JS backend)

License

Apache-2.0