cryptocol crate provides libraries for cryptography.
Endianness
This crate is optimized for Little-endian CPUs because Little-Endian CPUs are far more popular than Big-endian CPUs. For the information about Endianness (including Little-endian and Big-endian) Read more.
Big-endian issue
This crate is just experimental for Big-endian CPUs. So, you are not encouraged to use this crate for Big-endian CPUs for serious purpose. Only use this crate for Big-endian CPUs with your own full responsibility.
Road Map for Version 1.0
This crate Cryptocol is planned to provide the following functionalities. The checked items have already been implemented including documentation at least 80%. The unchecked items have not yet been implemented including documentation more than 80% or have not yet even been started to implement.
Foundations mainly for Big Numbers and also for other modules
- Unions for primitive data types and their implementation ---
ShortUnion
,IntUnion
,LongUnion
,LongerUnion
, andSizeUnion
- Trait SmallUInt and its implementation of primitive data types --- SmallUInt
- Trait SmallSInt and its implementation of primitive data types
Big Numbers
- Fixed Sized Big Unsigned Integer Operation ---
BigUInt
- Fixed Sized Big Signed Integer Operation --- BigSInt
- Variable Sized Big Signed Integer Operation --- LargeInt
Hash Algorithms
- MD4 hash algorithms based on 128 bits
--- Includes MD4 and its expanded versions.
MD4_Generic
- MD5 hash algorithms based on 128 bits
--- Includes MD5 and its expanded versions.
MD5_Generic
- SHA-1 hash algorithms based on 160 bits
--- Includes SHA-1, SHA-0, and their expanded versions.
SHA1_Generic
- SHA-2 hash algorithms based on 256 bits
--- Includes SHA-256, SHA-224, and their expanded versions.
SHA2_256_Generic
- SHA-2 hash algorithms based on 512 bits
--- Includes SHA-512, SHA-384, SHA-512/256, and their expanded versions.
SHA2_512_Generic
- SHA-2 hash algorithms based on 512/t bits
--- Includes 512/256, SHA-512/224, and their expanded versions.
SHA2_512_t_Generic
- SHA-3 (SHA3-224)
- SHA-3 (SHA3-256)
- SHA-3 (SHA3-384)
- SHA-3 (SHA3-512)
- SHA-3 (SHAKE 128)
- SHA-3 (SHAKE 256)
Symmetric-Key Cryptographic Algorithms
- DES
- 3DES
- AES
Pseudo-Random Number Generator Algorithms
- The Pseudo-random number generator wrappers
--- struct
Random_Generic
and trait Random_Engine - The implementation of
Random_Engine
for hash algorithms such asMD4_Generic
,MD5_Generic
,SHA1_Generic
,SHA2_256_Generic
, andSHA2_512_Generic
, and for pseudo-random number generation algorithm such asAnyNumber
Asymmetric-Key Cryptographic Algorithms
- Diffie-Hellman
- RSA (Ron Rivest, Adi Shamir, Leonard Adleman)
- ECC (Elliptic Curve Cryptosystem)
When the implementation of all the above functionalitis are completed, the version number 1.0.0.0 will be given. After that whenever another functionality is added to this crate, the version number will get higher beyond 1.0.0.0. Before the version number 1.0.0.0, the maximum version number will be 0.26.x.x since there are all twenty-six functionalities listed above. So, for example, even if the version number is 0.5.0.0, it does not mean that 50% of all functionalities are implemented.