# utils **Repository Path**: mirrors_RustCrypto/utils ## Basic Information - **Project Name**: utils - **Description**: Utility crates used in RustCrypto - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-18 - **Last Updated**: 2026-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RustCrypto: Utilities [![Project Chat][chat-image]][chat-link] [![dependency status][deps-image]][deps-link] ![Apache2/MIT licensed][license-image] This repository contains various utility crates used in the RustCrypto project. ## Crates | Name | crates.io | Docs | Description | |------|:---------:|:----:|-------------| | [`aarch64-dit`] | [![crates.io](https://img.shields.io/crates/v/aarch64-dit.svg)](https://crates.io/crates/aarch64-dit) | [![Documentation](https://docs.rs/aarch64-dit/badge.svg)](https://docs.rs/aarch64-dit) | Wrappers for enabling/disabling the Data Independent Timing (DIT) feature on AArch64 CPUs | | [`blobby`] | [![crates.io](https://img.shields.io/crates/v/blobby.svg)](https://crates.io/crates/blobby) | [![Documentation](https://docs.rs/blobby/badge.svg)](https://docs.rs/blobby) | Decoder of the simple de-duplicated binary blob storage format | | [`block-buffer`] | [![crates.io](https://img.shields.io/crates/v/block-buffer.svg)](https://crates.io/crates/block-buffer) | [![Documentation](https://docs.rs/block-buffer/badge.svg)](https://docs.rs/block-buffer) | Fixed size buffer for block processing of data | | [`block‑padding`] | [![crates.io](https://img.shields.io/crates/v/block-padding.svg)](https://crates.io/crates/block-padding) | [![Documentation](https://docs.rs/block-padding/badge.svg)](https://docs.rs/block-padding) | Padding and unpadding of messages divided into blocks | | [`cmov`] | [![crates.io](https://img.shields.io/crates/v/cmov.svg)](https://crates.io/crates/cmov) | [![Documentation](https://docs.rs/cmov/badge.svg)](https://docs.rs/cmov) | Conditional move intrinsics | | [`cpubits`] | [![crates.io](https://img.shields.io/crates/v/cpubits.svg)](https://crates.io/crates/cpubits) | [![Documentation](https://docs.rs/cpubits/badge.svg)](https://docs.rs/cpubits) | Compile-time detection heuristics for the optimal word size to use for the target CPU | | [`cpufeatures`] | [![crates.io](https://img.shields.io/crates/v/cpufeatures.svg)](https://crates.io/crates/cpufeatures) | [![Documentation](https://docs.rs/cpufeatures/badge.svg)](https://docs.rs/cpufeatures) | Lightweight and efficient alternative to the `is_x86_feature_detected!` macro | | [`ctutils`] | [![crates.io](https://img.shields.io/crates/v/ctutils.svg)](https://crates.io/crates/ctutils) | [![Documentation](https://docs.rs/ctutils/badge.svg)](https://docs.rs/ctutils) | Constant-time utility library with selection and equality testing support targeting cryptographic applications | | [`dbl`] | [![crates.io](https://img.shields.io/crates/v/dbl.svg)](https://crates.io/crates/dbl) | [![Documentation](https://docs.rs/dbl/badge.svg)](https://docs.rs/dbl) | Double operation in Galois Field (GF) | | [`digest-io`] | [![crates.io](https://img.shields.io/crates/v/digest-io.svg)](https://crates.io/crates/digest-io) | [![Documentation](https://docs.rs/digest-io/badge.svg)](https://docs.rs/digest-io) | `std::io`-compatibility wrappers for traits defined in the `digest` crate | | [`hex-literal`] | [![crates.io](https://img.shields.io/crates/v/hex-literal.svg)](https://crates.io/crates/hex-literal) | [![Documentation](https://docs.rs/hex-literal/badge.svg)](https://docs.rs/hex-literal) | A macro for converting hexadecimal strings to a byte array at compile time | | [`inout`] | [![crates.io](https://img.shields.io/crates/v/inout.svg)](https://crates.io/crates/inout) | [![Documentation](https://docs.rs/inout/badge.svg)](https://docs.rs/inout) | Custom reference types for code generic over in-place and buffer-to-buffer modes of operation. | | [`wycheproof2blb`] | | | | Utility for converting [Wycheproof] test vectors to the blobby format | | [`zeroize`] | [![crates.io](https://img.shields.io/crates/v/zeroize.svg)](https://crates.io/crates/zeroize) | [![Documentation](https://docs.rs/zeroize/badge.svg)](https://docs.rs/zeroize) | Securely zero memory while avoiding compiler optimizations | ## License All crates licensed under either of * [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) * [MIT license](http://opensource.org/licenses/MIT) at your option. ### Contribution 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 above, without any additional terms or conditions. [//]: # (badges) [chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg [chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260052-utils [license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg [deps-image]: https://deps.rs/repo/github/RustCrypto/utils/status.svg [deps-link]: https://deps.rs/repo/github/RustCrypto/utils [//]: # (crates) [`aarch64-dit`]: ./aarch64-dit [`blobby`]: ./blobby [`block-buffer`]: ./block-buffer [`block‑padding`]: ./block-padding [`cmov`]: ./cmov [`cpubits`]: ./cpubits [`cpufeatures`]: ./cpufeatures [`ctutils`]: ./ctutils [`dbl`]: ./dbl [`digest-io`]: ./digest-io [`hex-literal`]: ./hex-literal [`inout`]: ./inout [`wycheproof2blb`]: ./wycheproof2blb [`zeroize`]: ./zeroize [//]: # (misc) [Wycheproof]: https://github.com/google/wycheproof