oqs-safe 0.4.1

Safe Rust wrapper over libOQS for ML-KEM and ML-DSA with mock fallback.
Documentation
#[cfg(feature = "selftest_at_startup")]
pub(crate) fn check() {
    use crate::{
        kem::{Kem, Kyber768},
        sig::{Dilithium2, SignatureScheme},
    };

    // Best-effort only; ignore failures.
    let _ = (|| {
        let (pk, sk) = Kyber768::keypair()?;
        let (_ct, _ss1) = Kyber768::encapsulate(&pk)?;
        let _ = Kyber768::decapsulate(&_ct, &sk)?;
        Ok::<(), crate::OqsError>(())
    })();

    let _ = (|| {
        let (pk, sk) = Dilithium2::keypair()?;
        let msg = b"oqs-safe selftest";
        let sig = Dilithium2::sign(&sk, msg)?;
        Dilithium2::verify(&pk, msg, &sig)
    })();
}