aboutsummaryrefslogtreecommitdiffstats
path: root/modules/util/keypair.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/util/keypair.go')
-rw-r--r--modules/util/keypair.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/modules/util/keypair.go b/modules/util/keypair.go
index 5a3ce715a4..97f2d9ebca 100644
--- a/modules/util/keypair.go
+++ b/modules/util/keypair.go
@@ -4,10 +4,13 @@
package util
import (
+ "crypto"
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/pem"
+
+ "github.com/minio/sha256-simd"
)
// GenerateKeyPair generates a public and private keypair
@@ -43,3 +46,16 @@ func pemBlockForPub(pub *rsa.PublicKey) (string, error) {
})
return string(pubBytes), nil
}
+
+// CreatePublicKeyFingerprint creates a fingerprint of the given key.
+// The fingerprint is the sha256 sum of the PKIX structure of the key.
+func CreatePublicKeyFingerprint(key crypto.PublicKey) ([]byte, error) {
+ bytes, err := x509.MarshalPKIXPublicKey(key)
+ if err != nil {
+ return nil, err
+ }
+
+ checksum := sha256.Sum256(bytes)
+
+ return checksum[:], nil
+}