Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  sha2.rs

  Sprache: Rust
 

use libcrux_traits::Digest as _;

// XXX: The tests in here are failing in wasm for some reason.

// #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn sha256_kat_streaming() {
    let mut digest = libcrux_sha2::Sha256::new();
    let mut d = [0u8; 32];
    digest.update(b"libcrux sha2 256 tests");
    digest.finish(&mut d);

    let expected = "8683520e19e5b33db33c8fb90918c0c96fcdfd9a17c695ce0f0ea2eaa0c95956";
    assert_eq!(hex::encode(d), expected);
}

// #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn sha256_kat_oneshot() {
    let d = libcrux_sha2::sha256(b"libcrux sha2 256 tests");

    let expected = "8683520e19e5b33db33c8fb90918c0c96fcdfd9a17c695ce0f0ea2eaa0c95956";
    assert_eq!(hex::encode(d), expected);
}

#[test]
fn shaclone() {
    let mut hasher_224 = libcrux_sha2::Sha224::new();
    hasher_224.update(b"test 224");
    let mut hasher224_2 = hasher_224.clone();
    hasher_224.update(b"more 224");
    hasher224_2.update(b"more 224");
    let mut digest = [0u8; 28];
    let mut digest_2 = [0u8; 28];
    hasher_224.finish(&mut digest);
    hasher224_2.finish(&mut digest_2);

    assert_eq!(digest, digest_2);
    assert_eq!(digest, libcrux_sha2::sha224(b"test 224more 224"));

    let mut hasher_256 = libcrux_sha2::Sha256::new();
    hasher_256.update(b"test 256");
    let mut hasher256_2 = hasher_256.clone();
    hasher_256.update(b"more 256");
    hasher256_2.update(b"more 256");
    let mut digest = [0u8; 32];
    let mut digest_2 = [0u8; 32];
    hasher_256.finish(&mut digest);
    hasher256_2.finish(&mut digest_2);

    assert_eq!(digest, digest_2);
    assert_eq!(digest, libcrux_sha2::sha256(b"test 256more 256"));

    let mut hasher_384 = libcrux_sha2::Sha384::new();
    hasher_384.update(b"test 384");
    let mut hasher384_2 = hasher_384.clone();
    hasher_384.update(b"more 384");
    hasher384_2.update(b"more 384");
    let mut digest = [0u8; 48];
    let mut digest_2 = [0u8; 48];
    hasher_384.finish(&mut digest);
    hasher384_2.finish(&mut digest_2);

    assert_eq!(digest, digest_2);
    assert_eq!(digest, libcrux_sha2::sha384(b"test 384more 384"));

    let mut hasher_512 = libcrux_sha2::Sha512::new();
    hasher_512.update(b"test 512");
    let mut hasher512_2 = hasher_512.clone();
    hasher_512.update(b"more 512");
    hasher512_2.update(b"more 512");
    let mut digest = [0u8; 64];
    let mut digest_2 = [0u8; 64];
    hasher_512.finish(&mut digest);
    hasher512_2.finish(&mut digest_2);

    assert_eq!(digest, digest_2);
    assert_eq!(digest, libcrux_sha2::sha512(b"test 512more 512"));
}

Messung V0.5 in Prozent
C=94 H=99 G=96

¤ Dauer der Verarbeitung: 0.2 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002