#encryption #cbor #canister #icp #config

ic_auth_verifier

A Rust library used for integrating with IC-Auth

11 releases

Uses new Rust 2024

new 0.3.1 May 5, 2025
0.3.0 May 4, 2025
0.2.6 Apr 29, 2025
0.2.2 Mar 24, 2025
0.1.1 Mar 11, 2025

#429 in Magic Beans

Download history 231/week @ 2025-03-09 142/week @ 2025-03-16 271/week @ 2025-03-23 235/week @ 2025-03-30 217/week @ 2025-04-06 20/week @ 2025-04-13 11/week @ 2025-04-20 104/week @ 2025-04-27

493 downloads per month
Used in 4 crates (2 directly)

MIT license

76KB
1K SLoC

ic_auth_verifier

License Crates.io Test Docs.rs Latest Version

IC-Auth is a web authentication system based on the Internet Computer.

ic_auth_verifier is a Rust library for signing and verifying cryptographic signatures in the IC-Auth ecosystem.

Features

  • Verify signatures using multiple cryptographic algorithms:
    • Ed25519
    • ECDSA with secp256k1 curve
    • ECDSA with P-256 curve (secp256r1)
    • Internet Computer Canister Signatures
  • Parse and validate DER-encoded public keys
  • Compute various hash functions (SHA-256, SHA3-256, Keccak-256)
  • Optional envelope functionality (enabled with the envelope feature)

Installation

Add this to your Cargo.toml:

[dependencies]
ic_auth_verifier = "0.3"  # Replace with the latest version

To enable the envelope feature:

[dependencies]
ic_auth_verifier = { version = "0.3", features = ["envelope"] }

Usage

Basic Signing

use ic_auth_verifier::SignedEnvelope;

let identity = /* your ICP Identity */;

let message = b"message";
let envelope = SignedEnvelope::sign_message(identity, message)?;
// Adds the SignedEnvelope to the Authorization header to be sent to the service which will verify the signature.
envelope.to_authorization(&mut headers)?;
// Or adds the SignedEnvelope components to the IC-Auth-* HTTP headers.
// envelope.to_headers(&mut headers)?;

Basic Verification

use ic_auth_verifier::{SignedEnvelope, unix_ms};

let envelope = SignedEnvelope::from_authorization(&headers).unwrap();
// Verify the envelope
envelope.verify(unix_ms(), None, None)?;

License

Copyright © 2024-2025 LDC Labs.

ldclabs/ic-auth is licensed under the MIT License. See LICENSE for the full license text.

Dependencies

~9–21MB
~311K SLoC