Expand description
Pure Rust cryptography with hardware acceleration. no_std first.
rscrypto is a single-crate cryptography stack: hashes, AEADs, MACs, KDFs,
password hashing, signatures, key exchange, and checksums. Enable one leaf
feature for a minimal build (sha2, aes-gcm, ed25519, anything) or
full for the entire primitive set. Zero default dependencies; getrandom,
serde, and rayon are opt-in.
The portable Rust path is the byte-for-byte authority. SIMD and ASM kernels
are accelerators, differential-tested against the portable path on every
release. Three-tier dispatch (compile-time target_feature → runtime
detection → portable fallback) picks the fastest safe backend at runtime;
without std, only the compile-time tier runs.
[dependencies]
rscrypto = { version = "0.12", default-features = false, features = ["sha2"] }§Guides
- Repository README: https://github.com/loadingalias/rscrypto#readme
- Runnable examples: https://github.com/loadingalias/rscrypto/tree/main/examples
- Additional docs: https://github.com/loadingalias/rscrypto/tree/main/docs
- Security policy: https://github.com/loadingalias/rscrypto/blob/main/SECURITY.md
- Threat model: https://github.com/loadingalias/rscrypto/blob/main/THREAT_MODEL.md
§API Shape
- Checksums:
Type::checksum(data)ornew/update/finalize. - Digests:
Type::digest(data)ornew/update/finalize. - XOFs:
Type::xof(data)ornew/update/finalize_xof. - MACs:
Type::mac(key, data)andType::verify_tag(key, data, tag). - AEADs: typed keys and nonces, with combined, detached, and
allocVec helpers.
§Quick Start
use rscrypto::{Digest, Sha256};
let digest = Sha256::digest(b"hello world");
let mut h = Sha256::new();
h.update(b"hello ");
h.update(b"world");
assert_eq!(h.finalize(), digest);§AEAD
use rscrypto::{Aead, ChaCha20Poly1305, ChaCha20Poly1305Key};
let key = ChaCha20Poly1305Key::from_bytes([0x11; 32]);
let cipher = ChaCha20Poly1305::new(&key);
let mut sealed = [0u8; 4 + ChaCha20Poly1305::TAG_SIZE];
let nonce = cipher.seal_random(b"aad", b"data", &mut sealed)?;
let mut opened = [0u8; 4];
cipher.decrypt(&nonce, b"aad", &sealed, &mut opened)?;
assert_eq!(&opened, b"data");§Password Hashing
use rscrypto::Argon2idPassword;
let passwords = Argon2idPassword::default();
let encoded = passwords.hash_password(b"correct horse battery staple")?;
assert!(
passwords
.verify_password(b"correct horse battery staple", &encoded)
.is_ok()
);§Feature Groups
checksums: CRC families.hashes: SHA-2, SHA-3, BLAKE2, BLAKE3, Ascon, XXH3, RapidHash.auth: MACs, KDFs, password hashing, ECDSA signing/verification, Ed25519, RSA signing/verification/OAEP, ML-DSA, SLH-DSA, P-256 and P-384 ECDH, X25519, ML-KEM.aead: AES-GCM, AES-GCM-SIV, ChaCha20-Poly1305, XChaCha20-Poly1305, AEGIS-256, Ascon-AEAD128.full: all public primitive families.
Leaf features are available for size-conscious builds.
§Security Posture
Fixed-size secret-bearing owners expose comparison through an opaque
ct::CtDecision and require explicit declassification. Public structural
rejects such as malformed lengths, unsupported algorithms, or out-of-range
RSA representatives may fail before the full primitive work. Opaque
verification errors leak no failure detail. Generated-code constant-time
claims remain compiler-, target-, feature-, and release-evidence-bound.
Zeroize on drop for every secret-bearing type. strict_* arithmetic on
counters and lengths; release builds keep overflow-checks = true.
Fuzz targets exercise production paths; Miri covers the portable backends.
rscrypto is a primitives crate, not a FIPS 140-3 validated module. It
exposes FIPS-aligned primitives (AES-256-GCM, SHA-2, SHA-3 / SHAKE, HMAC,
KMAC, HKDF, PBKDF2) alongside non-FIPS ones. The portable-only feature
makes runtime capability detection report no SIMD/ASM capabilities, so
dispatchers that consult runtime caps fall through to portable backends,
and it turns off assembly that the crate selects at compile time from the
target alone. It excludes nightly-only POWER, IBM Z, and RISC-V backends
from compilation. Hash backends that a compile-time target_feature enables
can still run. It is a deployment control, not a substitute for release constant-time
evidence. See the security guidance for nonce lifecycle, PHC verification
limits, and platform fallback notes.
Re-exports§
pub use aead::AeadBufferError;aeadpub use aead::OpenError;aeadpub use aead::Aegis256;aegis256pub use aead::Aegis256Key;aegis256pub use aead::Aegis256Tag;aegis256pub use aead::Aes128Gcm;aes-gcmpub use aead::Aes128GcmKey;aes-gcmpub use aead::Aes128GcmTag;aes-gcmpub use aead::Aes128GcmSiv;aes-gcm-sivpub use aead::Aes128GcmSivKey;aes-gcm-sivpub use aead::Aes128GcmSivTag;aes-gcm-sivpub use aead::Aes256Gcm;aes-gcmpub use aead::Aes256GcmKey;aes-gcmpub use aead::Aes256GcmTag;aes-gcmpub use aead::Aes256GcmSiv;aes-gcm-sivpub use aead::Aes256GcmSivKey;aes-gcm-sivpub use aead::Aes256GcmSivTag;aes-gcm-sivpub use aead::AesSivCmac256;aes-sivpub use aead::AesSivCmac256Key;aes-sivpub use aead::AesSivCmac256Nonce;aes-sivpub use aead::AesSivCmac256NonceError;aes-sivpub use aead::AesSivCmac256Tag;aes-sivpub use aead::AsconAead128;ascon-aeadpub use aead::AsconAead128Key;ascon-aeadpub use aead::AsconAead128Tag;ascon-aeadpub use aead::ChaCha20Poly1305;chacha20poly1305pub use aead::ChaCha20Poly1305Key;chacha20poly1305pub use aead::ChaCha20Poly1305Tag;chacha20poly1305pub use aead::XChaCha20Poly1305;xchacha20poly1305pub use aead::XChaCha20Poly1305Key;xchacha20poly1305pub use aead::XChaCha20Poly1305Tag;xchacha20poly1305pub use auth::HkdfOutputLengthError;hkdfpub use auth::Argon2Block;argon2pub use auth::Argon2Context;argon2pub use auth::Argon2Error;argon2pub use auth::Argon2Params;argon2pub use auth::Argon2d;argon2pub use auth::Argon2i;argon2pub use auth::Argon2id;argon2pub use auth::Argon2VerificationLimits;argon2andphc-stringspub use auth::Argon2idPassword;argon2andphc-stringspub use auth::EcdsaBlindedSigningError;ecdsa-p256orecdsa-p384pub use auth::EcdsaError;ecdsa-p256orecdsa-p384pub use auth::EcdsaKeyGenerationError;ecdsa-p256orecdsa-p384pub use auth::EcdsaP256Keypair;ecdsa-p256pub use auth::EcdsaP256PublicKey;ecdsa-p256pub use auth::EcdsaP256SecretKey;ecdsa-p256pub use auth::EcdsaP256Signature;ecdsa-p256pub use auth::EcdsaP384Keypair;ecdsa-p384pub use auth::EcdsaP384PublicKey;ecdsa-p384pub use auth::EcdsaP384SecretKey;ecdsa-p384pub use auth::EcdsaP384Signature;ecdsa-p384pub use auth::Ed25519KeyError;ed25519pub use auth::Ed25519Keypair;ed25519pub use auth::Ed25519PublicKey;ed25519pub use auth::Ed25519SecretKey;ed25519pub use auth::Ed25519Signature;ed25519pub use auth::HashSlhDsaSha2_128fWithSha256;slh-dsapub use auth::HashSlhDsaSha2_128fWithSha256PublicKey;slh-dsapub use auth::HashSlhDsaSha2_128fWithSha256SecretKey;slh-dsapub use auth::HashSlhDsaSha2_128sWithSha256;slh-dsapub use auth::HashSlhDsaSha2_128sWithSha256PublicKey;slh-dsapub use auth::HashSlhDsaSha2_128sWithSha256SecretKey;slh-dsapub use auth::HashSlhDsaSha2_192fWithSha512;slh-dsapub use auth::HashSlhDsaSha2_192fWithSha512PublicKey;slh-dsapub use auth::HashSlhDsaSha2_192fWithSha512SecretKey;slh-dsapub use auth::HashSlhDsaSha2_192sWithSha512;slh-dsapub use auth::HashSlhDsaSha2_192sWithSha512PublicKey;slh-dsapub use auth::HashSlhDsaSha2_192sWithSha512SecretKey;slh-dsapub use auth::HashSlhDsaSha2_256fWithSha512;slh-dsapub use auth::HashSlhDsaSha2_256fWithSha512PublicKey;slh-dsapub use auth::HashSlhDsaSha2_256fWithSha512SecretKey;slh-dsapub use auth::HashSlhDsaSha2_256sWithSha512;slh-dsapub use auth::HashSlhDsaSha2_256sWithSha512PublicKey;slh-dsapub use auth::HashSlhDsaSha2_256sWithSha512SecretKey;slh-dsapub use auth::HashSlhDsaShake128fWithShake128;slh-dsapub use auth::HashSlhDsaShake128fWithShake128PublicKey;slh-dsapub use auth::HashSlhDsaShake128fWithShake128SecretKey;slh-dsapub use auth::HashSlhDsaShake128sWithShake128;slh-dsapub use auth::HashSlhDsaShake128sWithShake128PublicKey;slh-dsapub use auth::HashSlhDsaShake128sWithShake128SecretKey;slh-dsapub use auth::HashSlhDsaShake192fWithShake256;slh-dsapub use auth::HashSlhDsaShake192fWithShake256PublicKey;slh-dsapub use auth::HashSlhDsaShake192fWithShake256SecretKey;slh-dsapub use auth::HashSlhDsaShake192sWithShake256;slh-dsapub use auth::HashSlhDsaShake192sWithShake256PublicKey;slh-dsapub use auth::HashSlhDsaShake192sWithShake256SecretKey;slh-dsapub use auth::HashSlhDsaShake256fWithShake256;slh-dsapub use auth::HashSlhDsaShake256fWithShake256PublicKey;slh-dsapub use auth::HashSlhDsaShake256fWithShake256SecretKey;slh-dsapub use auth::HashSlhDsaShake256sWithShake256;slh-dsapub use auth::HashSlhDsaShake256sWithShake256PublicKey;slh-dsapub use auth::HashSlhDsaShake256sWithShake256SecretKey;slh-dsapub use auth::SlhDsaError;slh-dsapub use auth::SlhDsaKeyError;slh-dsapub use auth::SlhDsaSha2_128f;slh-dsapub use auth::SlhDsaSha2_128fPublicKey;slh-dsapub use auth::SlhDsaSha2_128fSecretKey;slh-dsapub use auth::SlhDsaSha2_128s;slh-dsapub use auth::SlhDsaSha2_128sPublicKey;slh-dsapub use auth::SlhDsaSha2_128sSecretKey;slh-dsapub use auth::SlhDsaSha2_192f;slh-dsapub use auth::SlhDsaSha2_192fPublicKey;slh-dsapub use auth::SlhDsaSha2_192fSecretKey;slh-dsapub use auth::SlhDsaSha2_192s;slh-dsapub use auth::SlhDsaSha2_192sPublicKey;slh-dsapub use auth::SlhDsaSha2_192sSecretKey;slh-dsapub use auth::SlhDsaSha2_256f;slh-dsapub use auth::SlhDsaSha2_256fPublicKey;slh-dsapub use auth::SlhDsaSha2_256fSecretKey;slh-dsapub use auth::SlhDsaSha2_256s;slh-dsapub use auth::SlhDsaSha2_256sPublicKey;slh-dsapub use auth::SlhDsaSha2_256sSecretKey;slh-dsapub use auth::SlhDsaShake128f;slh-dsapub use auth::SlhDsaShake128fPublicKey;slh-dsapub use auth::SlhDsaShake128fSecretKey;slh-dsapub use auth::SlhDsaShake128s;slh-dsapub use auth::SlhDsaShake128sPublicKey;slh-dsapub use auth::SlhDsaShake128sSecretKey;slh-dsapub use auth::SlhDsaShake192f;slh-dsapub use auth::SlhDsaShake192fPublicKey;slh-dsapub use auth::SlhDsaShake192fSecretKey;slh-dsapub use auth::SlhDsaShake192s;slh-dsapub use auth::SlhDsaShake192sPublicKey;slh-dsapub use auth::SlhDsaShake192sSecretKey;slh-dsapub use auth::SlhDsaShake256f;slh-dsapub use auth::SlhDsaShake256fPublicKey;slh-dsapub use auth::SlhDsaShake256fSecretKey;slh-dsapub use auth::SlhDsaShake256s;slh-dsapub use auth::SlhDsaShake256sPublicKey;slh-dsapub use auth::SlhDsaShake256sSecretKey;slh-dsapub use auth::HkdfSha256;hkdfpub use auth::HkdfSha384;hkdfpub use auth::HkdfSha512;hkdfpub use auth::HmacSha3_224;hmac-sha3pub use auth::HmacSha3_224Tag;hmac-sha3pub use auth::HmacSha3_256;hmac-sha3pub use auth::HmacSha3_256Tag;hmac-sha3pub use auth::HmacSha3_384;hmac-sha3pub use auth::HmacSha3_384Tag;hmac-sha3pub use auth::HmacSha3_512;hmac-sha3pub use auth::HmacSha3_512Tag;hmac-sha3pub use auth::HmacSha256;hmacpub use auth::HmacSha256Tag;hmacpub use auth::HmacSha384;hmacpub use auth::HmacSha384Tag;hmacpub use auth::HmacSha512;hmacpub use auth::HmacSha512Tag;hmacpub use auth::Kmac128;kmacpub use auth::Kmac256;kmacpub use auth::MlDsa44;ml-dsapub use auth::MlDsa44PreparedPublicKey;ml-dsapub use auth::MlDsa44PreparedPublicKeyStorage;ml-dsapub use auth::MlDsa44PreparedSecretKey;ml-dsapub use auth::MlDsa44PreparedSecretKeyStorage;ml-dsapub use auth::MlDsa44PublicKey;ml-dsapub use auth::MlDsa44SecretKey;ml-dsapub use auth::MlDsa44Seed;ml-dsapub use auth::MlDsa44Signature;ml-dsapub use auth::MlDsa65;ml-dsapub use auth::MlDsa65PreparedPublicKey;ml-dsapub use auth::MlDsa65PreparedPublicKeyStorage;ml-dsapub use auth::MlDsa65PreparedSecretKey;ml-dsapub use auth::MlDsa65PreparedSecretKeyStorage;ml-dsapub use auth::MlDsa65PublicKey;ml-dsapub use auth::MlDsa65SecretKey;ml-dsapub use auth::MlDsa65Seed;ml-dsapub use auth::MlDsa65Signature;ml-dsapub use auth::MlDsa87;ml-dsapub use auth::MlDsa87PreparedPublicKey;ml-dsapub use auth::MlDsa87PreparedPublicKeyStorage;ml-dsapub use auth::MlDsa87PreparedSecretKey;ml-dsapub use auth::MlDsa87PreparedSecretKeyStorage;ml-dsapub use auth::MlDsa87PublicKey;ml-dsapub use auth::MlDsa87SecretKey;ml-dsapub use auth::MlDsa87Seed;ml-dsapub use auth::MlDsa87Signature;ml-dsapub use auth::MlDsaError;ml-dsapub use auth::MlDsaKeyError;ml-dsapub use auth::MlDsaPrehash;ml-dsapub use auth::MlDsaPrehashAlgorithm;ml-dsapub use auth::MlKem512;ml-kempub use auth::MlKem512Ciphertext;ml-kempub use auth::MlKem512DecapsulationKey;ml-kempub use auth::MlKem512EncapsulationKey;ml-kempub use auth::MlKem512PreparedDecapsulationKey;ml-kempub use auth::MlKem512PreparedEncapsulationKey;ml-kempub use auth::MlKem512Seed;ml-kempub use auth::MlKem768;ml-kempub use auth::MlKem768Ciphertext;ml-kempub use auth::MlKem768DecapsulationKey;ml-kempub use auth::MlKem768EncapsulationKey;ml-kempub use auth::MlKem768PreparedDecapsulationKey;ml-kempub use auth::MlKem768PreparedEncapsulationKey;ml-kempub use auth::MlKem768Seed;ml-kempub use auth::MlKem1024;ml-kempub use auth::MlKem1024Ciphertext;ml-kempub use auth::MlKem1024DecapsulationKey;ml-kempub use auth::MlKem1024EncapsulationKey;ml-kempub use auth::MlKem1024PreparedDecapsulationKey;ml-kempub use auth::MlKem1024PreparedEncapsulationKey;ml-kempub use auth::MlKem1024Seed;ml-kempub use auth::MlKemError;ml-kempub use auth::MlKemKeyError;ml-kempub use auth::P256EphemeralSecret;p256-ecdhpub use auth::P256KeyGenerationError;p256-ecdhpub use auth::P256PublicKey;p256-ecdhpub use auth::P256PublicKeyError;p256-ecdhpub use auth::P384EphemeralSecret;p384-ecdhpub use auth::P384KeyGenerationError;p384-ecdhpub use auth::P384PublicKey;p384-ecdhpub use auth::P384PublicKeyError;p384-ecdhpub use auth::PasswordHashError;phc-stringsand (argon2orscrypt)pub use auth::PasswordStatus;phc-stringsand (argon2orscrypt)pub use auth::Pbkdf2Error;pbkdf2pub use auth::Pbkdf2Params;pbkdf2pub use auth::Pbkdf2Sha256;pbkdf2pub use auth::Pbkdf2Sha512;pbkdf2pub use auth::Pbkdf2VerifyPolicy;pbkdf2pub use auth::Poly1305;poly1305pub use auth::Poly1305OneTimeKey;poly1305pub use auth::Poly1305Tag;poly1305pub use auth::RsaBlindingPair;rsapub use auth::RsaEncryptionError;rsapub use auth::RsaJwtAlgorithm;rsapub use auth::RsaJwtVerifier;rsapub use auth::RsaKeyError;rsapub use auth::RsaKeyGenerationContract;rsapub use auth::RsaKeyGenerationError;rsapub use auth::RsaOaepProfile;rsapub use auth::RsaPkcs1v15Profile;rsapub use auth::RsaPrivateKey;rsapub use auth::RsaPrivateKeyParts;rsapub use auth::RsaPrivateOpError;rsapub use auth::RsaPrivateScratch;rsapub use auth::RsaProtocolAlgorithmError;rsapub use auth::RsaPssProfile;rsapub use auth::RsaPublicExponent;rsapub use auth::RsaPublicExponentPolicy;rsapub use auth::RsaPublicKey;rsapub use auth::RsaPublicKeyPolicy;rsapub use auth::RsaPublicOpError;rsapub use auth::RsaPublicScratch;rsapub use auth::RsaSignatureProfile;rsapub use auth::RsaSignatureSigner;rsapub use auth::RsaSignatureVerifier;rsapub use auth::RsaTlsSignatureSchemes;rsapub use auth::RsaX509PublicKey;rsapub use auth::RsaX509PublicKeyAlgorithm;rsapub use auth::Scrypt;scryptpub use auth::ScryptBlock;scryptpub use auth::ScryptError;scryptpub use auth::ScryptParams;scryptpub use auth::ScryptPassword;phc-stringsandscryptpub use auth::ScryptVerificationLimits;phc-stringsandscryptpub use auth::X25519Error;x25519pub use auth::X25519PublicKey;x25519pub use auth::X25519SecretKey;x25519pub use checksum::Crc24OpenPgp;crc24pub use checksum::Crc16Ccitt;crc16pub use checksum::Crc16Ibm;crc16pub use checksum::Crc32;crc32pub use checksum::Crc32C;crc32pub use checksum::Crc64;crc64pub use checksum::Crc64Nvme;crc64pub use hashes::crypto::Blake2Error;blake2borblake2spub use hashes::crypto::ascon::AsconCxofCustomizationError;ascon-hashpub use hashes::crypto::AsconCxof128;ascon-hashpub use hashes::crypto::AsconCxof128Reader;ascon-hashpub use hashes::crypto::AsconHash256;ascon-hashpub use hashes::crypto::AsconXof;ascon-hashpub use hashes::crypto::AsconXofReader;ascon-hashpub use hashes::crypto::Blake2b;blake2bpub use hashes::crypto::Blake2b256;blake2bpub use hashes::crypto::Blake2b512;blake2bpub use hashes::crypto::Blake2bKey;blake2bpub use hashes::crypto::Blake2bParams;blake2bpub use hashes::crypto::Blake2s128;blake2spub use hashes::crypto::Blake2s256;blake2spub use hashes::crypto::Blake2sKey;blake2spub use hashes::crypto::Blake2sParams;blake2spub use hashes::crypto::Blake3;blake3pub use hashes::crypto::Blake3DeriveContext;blake3pub use hashes::crypto::Blake3KeyedHash;blake3pub use hashes::crypto::Blake3XofReader;blake3pub use hashes::crypto::Cshake128;sha3pub use hashes::crypto::Cshake128XofReader;sha3pub use hashes::crypto::Cshake256;sha3pub use hashes::crypto::Cshake256XofReader;sha3pub use hashes::crypto::Sha3_224;sha3pub use hashes::crypto::Sha3_256;sha3pub use hashes::crypto::Sha3_384;sha3pub use hashes::crypto::Sha3_512;sha3pub use hashes::crypto::Shake128;sha3pub use hashes::crypto::Shake128XofReader;sha3pub use hashes::crypto::Shake256;sha3pub use hashes::crypto::Shake256XofReader;sha3pub use hashes::crypto::Sha224;sha2pub use hashes::crypto::Sha256;sha2pub use hashes::crypto::Sha384;sha2pub use hashes::crypto::Sha512;sha2pub use hashes::crypto::Sha512_256;sha2pub use hashes::fast::RapidHash64;rapidhashpub use hashes::fast::RapidHasher;rapidhashpub use hashes::fast::RapidRandomState;rapidhashpub use hashes::fast::RapidSeededState;rapidhashpub use hashes::fast::RapidStreamHasher;rapidhashpub use hashes::fast::Xxh3;xxh3pub use hashes::fast::Xxh3_128;xxh3pub use hashes::fast::Xxh3_128Hasher;xxh3pub use hashes::fast::Xxh3BuildHasher;xxh3pub use hashes::fast::Xxh3Hasher;xxh3pub use traits::Aead;aegis256oraes-gcm-sivoraes-gcmoraes-sivorascon-aeadorchacha20poly1305orxchacha20poly1305pub use traits::Checksum;pub use traits::ChecksumCombine;pub use traits::Kem;pub use traits::Mac;pub use traits::TrySigner;pub use traits::TrySignerInto;pub use traits::VerificationError;pub use traits::Verifier;pub use traits::ct;pub use traits::Digest;ascon-hashorblake2borblake2sorblake3orrapidhashorsha2orsha3orxxh3pub use traits::FastHash;ascon-hashorblake2borblake2sorblake3orrapidhashorsha2orsha3orxxh3pub use traits::Xof;ascon-hashorblake2borblake2sorblake3orrapidhashorsha2orsha3orxxh3
Modules§
- aead
aegis256oraes-gcm-sivoraes-gcmoraes-sivorascon-aeadorchacha20poly1305orxchacha20poly1305 - Authenticated encryption with associated data foundations.
- auth
argon2orecdsa-p256orecdsa-p384ored25519orhkdforhmac-sha3orhmacorkmacorml-dsaorml-kemorp256-ecdhorp384-ecdhorphc-stringsorpoly1305orrsaorscryptorslh-dsaorx25519 - Authentication and key-derivation primitives.
- checksum
crc16orcrc24orcrc32orcrc64 - High-performance CRC checksums.
- expert
- Explicitly dangerous capabilities that normal application code does not need.
- hashes
ascon-hashorblake2borblake2sorblake3orrapidhashorsha2orsha3orwebsocket-sha1orxxh3 - Cryptographic digests and fast non-cryptographic hashes.
- platform
- CPU detection and capability reporting.
- prelude
- Trait-first imports for rscrypto user code.
- traits
- Core cryptographic traits for rscrypto.
Structs§
- Secret
Bytes - Owned secret bytes that zeroize on drop.
- Secret
String alloc - Owned UTF-8 secret that zeroizes its initialized bytes on drop.
- Secret
Vec alloc - Owned variable-length secret bytes that zeroize on drop.
Enums§
- Invalid
HexError ( aegis256oraes-gcm-sivoraes-gcmoraes-sivorascon-aeadorblake3orchacha20poly1305orecdsa-p256orecdsa-p384ored25519orml-kemorp256-ecdhorp384-ecdhorx25519orxchacha20poly1305) and (aegis256oraes-gcm-sivoraes-gcmoraes-sivorascon-aeadorchacha20poly1305ored25519orml-kemorx25519orxchacha20poly1305) - Hex decoding error.
- Secret
VecConstruction Error alloc - Error constructing a
SecretVecin place.