Generate and verify Subresource Integrity metadata in MoonBit
moon test --target wasm
moon run cmd/main --target wasm -- generate examples/hello.jssha384-uY+OtEjszwPe7jcYKI1KfAGMrLSMeFfhJc/DWf9ccFpWjjw1tKO9St/U0k2N8ONW<script src="/hello.js"
integrity="sha384-uY+OtEjszwPe7jcYKI1KfAGMrLSMeFfhJc/DWf9ccFpWjjw1tKO9St/U0k2N8ONW"></script>moon run cmd/main --target wasm -- check examples/hello.js 'sha384-uY+OtEjszwPe7jcYKI1KfAGMrLSMeFfhJc/DWf9ccFpWjjw1tKO9St/U0k2N8ONW'moon run cmd/main --target wasm -- generate examples/hello.js sha512moon run cmd/main --target wasm -- tag script examples/hello.js '/assets/hello.js?v=1&lang=zh' sha384
moon run cmd/main --target wasm -- tag stylesheet examples/style.css /assets/style.cssmoon run cmd/main --target wasm -- manifest examples/hello.js examples/style.css > integrity.json
moon run cmd/main --target wasm -- check-manifest integrity.jsonmoon run cmd/main --target wasm -- check-manifest --json integrity.jsonmoon run cmd/main --target wasm -- manifest --root dist assets/app.js > integrity.json
moon run cmd/main --target wasm -- check-manifest --root staging integrity.jsonmoon run cmd/main --target wasm -- manifest --root dist --from assets.txt > integrity.jsonmoon run cmd/main --target wasm -- diff-manifest previous.json integrity.jsonmoon run cmd/main --target wasm -- check-manifest --json --min-algorithm sha384 integrity.jsonmoon add yiwnagmolu/moonsri@0.2.1import {
"yiwnagmolu/moonsri" @sri,
}
pkgtype(kind: "executable")///|
fn main {
let data = b"abc"
let metadata = @sri.generate(data[:], @sri.Sha256)
println(metadata)
}moon check --target wasm
moon test --target wasm
moon test --target js
moon info
moon fmtpub(all) enum Algorithm {
Sha256
Sha384
Sha512
}type Hasherpub(all) enum Verdict {
Match
Mismatch
NoSupportedMetadata
}Install
Download zipGenerate and verify Subresource Integrity metadata in MoonBit