4 releases (2 breaking)

Uses old Rust 2015

0.2.0 Dec 10, 2016
0.1.0 Dec 9, 2016
0.0.2 Dec 9, 2016
0.0.1 Dec 9, 2016

#422 in Cryptography

Download history 1688/week @ 2022-05-22 1251/week @ 2022-05-29 829/week @ 2022-06-05 1179/week @ 2022-06-12 678/week @ 2022-06-19 603/week @ 2022-06-26 375/week @ 2022-07-03 371/week @ 2022-07-10 375/week @ 2022-07-17 120/week @ 2022-07-24 302/week @ 2022-07-31 215/week @ 2022-08-07 81/week @ 2022-08-14 136/week @ 2022-08-21 319/week @ 2022-08-28 71/week @ 2022-09-04

618 downloads per month
Used in zerodrop


190 lines



A crate that supports many constant time operations. The reference is Go-Lang's crypto/subtile which implements the orginal form of these constant time operations. I took the library of extrapolating the uint8 and uint32 into all Rust integer types.

These operations are not designed to be fast. They are designed to take the same if they suceeded or fail. This is to prevent side channel attacks on cryptographic libraries and applications.

This crate is core only. So it does not require std therefore it can be used without an operating system for OS and Embedded Development.

To use this crate include:

constanttime = "0.2"


Does this crate work as advertised?

I'd sure like to find out! If you know asm, or a lot about low level machine hacking I'd love your help.


This project can be considered licensed under Apache2.0 Software License. A full copy can of this license can found here.

A large thank you goes to the Go-Lang standard library development team for creating the crypto/subtile/constant_time.go library which was used for reference.

No Go-Lang source code exists within this project. Nonethless the orginal Go-Lang reference source is here, and is it's license is here. For future reference purporses.

No runtime deps