Stephen McQuay 1 year ago
commit
8a9e69626f
Signed by: Stephen McQuay (smcquay) <stephen@mcquay.me> GPG key ID: 1ABF428F71BAFC3D
3 changed files with 67 additions and 0 deletions
  1. 27 0
      license
  2. 37 0
      main.go
  3. 3 0
      readme.md

+ 27 - 0
license View File

@@ -0,0 +1,27 @@
1
+Copyright (c) 2016, stephen mcquay
2
+
3
+All rights reserved.
4
+
5
+Redistribution and use in source and binary forms, with or without modification,
6
+are permitted provided that the following conditions are met:
7
+
8
+    * Redistributions of source code must retain the above copyright notice,
9
+      this list of conditions and the following disclaimer.
10
+    * Redistributions in binary form must reproduce the above copyright notice,
11
+      this list of conditions and the following disclaimer in the documentation
12
+      and/or other materials provided with the distribution.
13
+    * Neither the name of authpixious nor the names of its contributors
14
+      may be used to endorse or promote products derived from this software
15
+      without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 37 - 0
main.go View File

@@ -0,0 +1,37 @@
1
+package main
2
+
3
+import (
4
+	"bufio"
5
+	"crypto/sha256"
6
+	"encoding/base64"
7
+	"fmt"
8
+	"os"
9
+	"strings"
10
+
11
+	"golang.org/x/crypto/ssh"
12
+)
13
+
14
+func main() {
15
+	s := bufio.NewScanner(os.Stdin)
16
+	for s.Scan() {
17
+		pk, comment, _, _, err := ssh.ParseAuthorizedKey(s.Bytes())
18
+		if err != nil {
19
+			fmt.Fprintf(os.Stderr, "problem parsing pubkey from line %q: %v", s.Text(), err)
20
+			continue
21
+		}
22
+		hsh := sha256.New()
23
+		hsh.Write(pk.Marshal())
24
+		chk := hsh.Sum(nil)
25
+		var name string
26
+		u := strings.Fields(comment)
27
+		if len(u) > 0 {
28
+			name = u[0]
29
+		}
30
+		fmt.Printf("%20s : %s (%s)\n", name, base64.StdEncoding.WithPadding(base64.NoPadding).EncodeToString(chk), pk.Type())
31
+
32
+	}
33
+	if err := s.Err(); err != nil {
34
+		fmt.Fprintf(os.Stderr, "problem during scanning stdin: %v\n", err)
35
+		os.Exit(1)
36
+	}
37
+}

+ 3 - 0
readme.md View File

@@ -0,0 +1,3 @@
1
+# fp
2
+
3
+print ssh public key fingerprints