[][src]Crate ssri

ssri, short for Standard Subresource Integrity, is a Rust library for parsing, manipulating, serializing, generating, and verifying Subresource Integrity hashes.

Examples

Parse a string as Integrity to convert it to a struct:

let source = String::from("sha256-uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=");

let parsed: Integrity = source.parse().unwrap();
assert_eq!(parsed.to_string(), source)

Generating a new hash from file data:

let sri = Integrity::from(b"hello world", Algorithm::Sha256);
assert_eq!(sri.to_string(), "sha256-uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=");

Verifying data against an SRI:

let sri = Integrity::from(b"hello world", Algorithm::Sha256);
assert_eq!(sri.check(b"hello world").unwrap(), Algorithm::Sha256);

You can also use Builder and Checker to generate and check subresource integrity, respectively. These allow things like multiple algorithms, and incremental/streamed data input.

Structs

Builder

Builds a new Integrity, allowing multiple algorithms and incremental input.

Checker

Check data against an Integrity.

Hash

Represents a single algorithm/digest pair.

Integrity

Representation of a full Subresource Integrity string.

ParseIntegrityError

Error parsing an integrity string into an Integrity.

Enums

Algorithm

Valid algorithms for integrity strings.