From 26beeaecff6aded6fb3863951d8345e3f0b854be Mon Sep 17 00:00:00 2001
From: Marcus Schiesser <mail@marcusschiesser.de>
Date: Mon, 5 Apr 2021 13:31:24 +0800
Subject: [PATCH] added md5 implementation

---
 src/gomd5/main.go | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 src/gomd5/main.go

diff --git a/src/gomd5/main.go b/src/gomd5/main.go
new file mode 100644
index 0000000..05d948b
--- /dev/null
+++ b/src/gomd5/main.go
@@ -0,0 +1,34 @@
+package main
+
+import (
+	"crypto/md5"
+	"fmt"
+	"io"
+	"os"
+)
+
+func main() {
+	if len(os.Args) < 2 {
+		fmt.Println("Usage: gomd5 [file ...]")
+	}
+	files := os.Args[1:]
+	for _, file := range files {
+		if err := processFile(file); err != nil {
+			fmt.Fprintf(os.Stderr, "gomd5: %v", err)
+		}
+	}
+}
+
+func processFile(filename string) error {
+	f, err := os.Open(filename)
+	if err != nil {
+		return err
+	}
+	defer f.Close()
+	h := md5.New()
+	if _, err := io.Copy(h, f); err != nil {
+		return err
+	}
+	fmt.Printf("%x\n", h.Sum(nil))
+	return nil
+}
-- 
GitLab