diff --git a/CHANGELOG.md b/CHANGELOG.md index fd0d441..a59cafb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] + + +## [0.2.0] - 2017-07-24 ### Added - Following sum with Hasher & Digest implementations: * Unix (UNIX `cksum`) @@ -40,4 +43,5 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - This CHANGELOG file -[Unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/0.1.0...HEAD +[Unreleased]: https://github.com/althonos/pruefung/compare/0.2.0...HEAD +[0.2.0]: https://github.com/althonos/pruefung/compare/0.1.0...0.2.0 diff --git a/Cargo.toml b/Cargo.toml index 32a55b8..e9b17d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pruefung" -version = "0.1.0" +version = "0.2.0" authors = ["Martin Larralde "] license = "MIT" description = """ diff --git a/README.md b/README.md index cc0a94b..d3db400 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ of the [RustCrypto][2] project, implementing the [`digest::Digest`][3], and the [`core::hasher::Hasher`][4] traits when possible (less than 64 bits in the output). -Then, to compute a hash, for instance a `CRC32` (Ethernet standard): +Then, to compute a hash, for instance a [`CRC32`][5] (Ethernet standard): ```rust extern crate pruefung; @@ -48,11 +48,12 @@ println!("Result: {:x}", hash) // print the result as native hex ## Dependencies -The crate itself is [`no_std`][5], but provides [`digest::Digest`][3] implementations +The crate itself is [`no_std`][6], but provides [`digest::Digest`][3] implementations for convenience and integration with the [`hashes`][1] crate. Those bindings can be scrapped off however by disabling the default features of the crates, adding the following line to yout `Cargo.toml`: -``` + +```toml [dependencies.pruefung] version = "^0.1.0" default-features = false @@ -63,14 +64,22 @@ default-features = false Latest version of the crate implements the following checksums: -Algorithm | *since* | `struct` ------------------------------------------------------------------ | ------- | -------- -[Adler32](https://en.wikipedia.org/wiki/Adler-32) | `0.1.0` | `::adler32::Adler32` -[BSD checksum](https://en.wikipedia.org/wiki/BSD_checksum) | `0.1.0` | `::bsd::BSD` -[CRC32](https://en.wikipedia.org/wiki/Cyclic_redundancy_check) | `0.1.0` | `::crc32::CRC32` -[CRC32C](https://en.wikipedia.org/wiki/Cyclic_redundancy_check) | `0.1.0` | `::crc32c::CRC32C` -[Fletcher16](https://en.wikipedia.org/wiki/Fletcher%27s_checksum) | `0.1.0` | `::fletcher16::Fletcher16` -[SysV checksum](https://en.wikipedia.org/wiki/SYSV_checksum) | `0.1.0` | `::sysv::SysV` +Algorithm | *since* | *implemented as* +------------------- | ------- | -------- +[Adler32][7] | `0.1.0` | [`::adler32::Adler32`][15] +[BSD checksum][8] | `0.1.0` | [`::bsd::Bsd`][16] +[CRC32][5] | `0.2.0` | [`::crc::crc32::CRC32`][17] +[CRC32C][5] | `0.2.0` | [`::crc::crc32::CRC32C`][18] +[Fletcher16][9] | `0.1.0` | [`::fletcher16::Fletcher16`][19] +[FNV0-32][10] | `0.2.0` | [`::fnv::fnv32::Fnv32z`][20] +[FNV1-32][11] | `0.2.0` | [`::fnv::fnv32::Fnv32`][21] +[FNV1a-32][12] | `0.2.0` | [`::fnv::fnv32::Fnv32a`][22] +[FNV0-64][10] | `0.2.0` | [`::fnv::fnv64::Fnv64z`][23] +[FNV1-64][11] | `0.2.0` | [`::fnv::fnv64::Fnv64`][24] +[FNV1a-64][12] | `0.2.0` | [`::fnv::fnv64::Fnv64a`][25] +[SysV checksum][13] | `0.1.0` | [`::sysv::SysV`][26] +[UNIX checksum][14] | `0.2.0` | [`::unix::Unix`][27] + These checksums are **NOT** cryptographically secure. They should not be used for something else than data validation against *accidental* modifications: @@ -85,9 +94,35 @@ team. german. But a slug version of `zyklische-redundanzprüfung` seemed like a nice name, instead of another checksum, cksum, checksums, crc, etc. crate.* - + [1]: https://github.com/RustCrypto/hashes [2]: https://github.com/RustCrypto [3]: https://docs.rs/digest/*/digest/trait.Digest.html [4]: https://doc.rust-lang.org/core/hash/trait.Hasher.html -[5]: https://doc.rust-lang.org/1.11.0/book/no-stdlib.html +[5]: https://en.wikipedia.org/wiki/Cyclic_redundancy_check +[6]: https://doc.rust-lang.org/1.11.0/book/no-stdlib.html + + +[7]: https://en.wikipedia.org/wiki/Adler-32 +[8]: https://en.wikipedia.org/wiki/BSD_checksum +[9]: https://en.wikipedia.org/wiki/Fletcher%27s_checksum +[10]: https://en.wikipedia.org/wiki/Fowler-Noll-Vo_hash_function#FNV-0_hash_.28deprecated.29 +[11]: https://en.wikipedia.org/wiki/Fowler-Noll-Vo_hash_function#FNV-1_hash +[12]: https://en.wikipedia.org/wiki/Fowler-Noll-Vo_hash_function#FNV-1a_hash +[13]: https://en.wikipedia.org/wiki/SYSV_checksum +[14]: https://en.wikipedia.org/wiki/Cksum + + +[15]: https://docs.rs/pruefung/*/pruefung/adler32/struct.Adler32.html +[16]: https://docs.rs/pruefung/*/pruefung/bsd/struct.Bsd.html +[17]: https://docs.rs/pruefung/*/pruefung/crc/crc32/struct.Crc32.html +[18]: https://docs.rs/pruefung/*/pruefung/crc/crc32/struct.Crc32c.html +[19]: https://docs.rs/pruefung/*/pruefung/fletcher16/struct.Fletcher16.html +[20]: https://docs.rs/pruefung/*/pruefung/fnv/fnv32/struct.Fnv32z.html +[21]: https://docs.rs/pruefung/*/pruefung/fnv/fnv32/struct.Fnv32.html +[22]: https://docs.rs/pruefung/*/pruefung/fnv/fnv32/struct.Fnv32a.html +[23]: https://docs.rs/pruefung/*/pruefung/fnv/fnv64/struct.Fnv64z.html +[24]: https://docs.rs/pruefung/*/pruefung/fnv/fnv64/struct.Fnv64.html +[25]: https://docs.rs/pruefung/*/pruefung/fnv/fnv64/struct.Fnv64a.html +[26]: https://docs.rs/pruefung/*/pruefung/sysv/struct.SysV.html +[27]: https://docs.rs/pruefung/*/pruefung/unix/struct.Unix.html