- var sha256Digest string
- var sha512Digest string
- fd, err := os.Open(f.Name)
- if err != nil {
- continue
- }
- for _, h := range f.Hashes {
- switch h.Type {
- case meta4ra.HashSHA256:
- sha256Digest = h.Hash
- case meta4ra.HashSHA512:
- sha512Digest = h.Hash
+ hasher := meta4ra.NewHasher(*hashes)
+ var hashTheir string
+ var hashName string
+ for i, name := range hasher.Names {
+ for _, h := range f.Hashes {
+ if h.Type == name {
+ hasher.Names = []string{name}
+ hasher.Cmds = append(hasher.Cmds[:0], hasher.Cmds[i])
+ hasher.Ins = append(hasher.Ins[:0], hasher.Ins[i])
+ hasher.Outs = append(hasher.Outs[:0], hasher.Outs[i])
+ hashName = name
+ hashTheir = h.Hash
+ goto HashFound
+ }