Skip to content

Latest commit

 

History

History

crypto

Crypto Component of the IC, and related crates

This directory contains the Crypto Component of the IC, and various smaller crates that offer selected crypto functionality. The following table describes the contents of the subdirectories, and the available crates, where [Wasm] indicates that the corresponding crate can be compiled to WebAssembly (Wasm).

Subdirectory Crate(s) Description / Notes

The main Crypto Component

src/..

ic-crypto

Crypto Component used by a replica. It contains SecretKeyStore, which manages and protects the secret keys owned by a node.

benches/..

-

benchmarks of the Crypto Component.

tests/..

-

various tests of the Crypto Component.

Miscellaneous public crates

node_key_validation/..

ic-crypto-node-key-validation[Wasm]

validation utils for public keys of a node

sha/..

ic-crypto-sha[Wasm]

hashing algorithms, incl. SHA256 and SHA224

tls_interfaces/..

ic-crypto-tls-interfaces

interfaces of TLS functionality (used by both ic-crypto and ic-crypto-tls)

tree_hash/..

ic-crypto-tree-hash[Wasm]

computation of hash trees and witnesses

utils/..

ic-crypto-utils-basic-sig[Wasm], ic-crypto-utils-threshold-sig[Wasm]

utils for basic signatures resp. threshold signatures

test_utils/..

ic-crypto-test_utils

miscellaneous utils for testing

Structures/crates for internal use only

internal/..

(many crates)

the actual implementation of the functionalities offered via the public crates from other subdirectories (crates from this directory should not be used directly outside of /crypto/..)