@omnimedia/omnitool
Version:
open source video processing tools
21 lines (16 loc) • 489 B
text/typescript
import {Hex, Thumbprint} from "@e280/stz"
export class Checksum {
constructor(
public data: Uint8Array,
public bytes: Uint8Array,
public hash: string,
public nickname: string,
) {}
static async make(data: Uint8Array) {
const data2 = new Uint8Array(data)
const bytes = new Uint8Array(await crypto.subtle.digest("SHA-256", data2))
const hash = Hex.fromBytes(bytes)
const nickname = Thumbprint.sigil.fromBytes(bytes)
return new this(data, bytes, hash, nickname)
}
}