From 2bd6976c05677036beb0dcac6d149e75d8b81716 Mon Sep 17 00:00:00 2001 From: Go Compile <97609133+go-compile@users.noreply.github.com> Date: Sun, 12 Jun 2022 12:30:37 +0100 Subject: [PATCH] ADD: import/export example --- README.md | 4 ---- examples/import/main.go | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 examples/import/main.go diff --git a/README.md b/README.md index 438fd10..1f5d0ea 100644 --- a/README.md +++ b/README.md @@ -82,17 +82,13 @@ The Elliptic and Edward Curve cryptography library built for multi-curve use. Un - Brainpool P512r1 - Brainpool P512t1 -More to come... - # Todo - Maybe RSA - secp256k1 - saltpack -- AES CBC - Encrypt private key option - Convert keys to SSH keys -- Universal ParseKey() for EC and Ed keys # Encrypt (ECIES) diff --git a/examples/import/main.go b/examples/import/main.go new file mode 100644 index 0000000..8b9bc69 --- /dev/null +++ b/examples/import/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "crypto/sha1" + "fmt" + + "github.com/go-compile/rome/parse" +) + +func main() { + fmt.Println("P192r1 Private:") + parsePrivate([]byte(`-----BEGIN EC PRIVATE KEY----- +MF4CAQEEGIGv8cxcdkitRLKR8TQf2SGOoFqzO8Hs4KAJBgcrhkjOPQEDoTQDMgAE +jBSOPviPICiS3A8oRgjYfkA3WMUCJvGclKooR+REWIBCvTEwaQP7DSTooC5z4BdB +-----END EC PRIVATE KEY-----`)) + + fmt.Println("P192r1 Public:") + parsePublic([]byte(`-----BEGIN EC PUBLIC KEY----- +MEgwEgYHKoZIzj0CAQYHK4ZIzj0BAwMyAASMFI4++I8gKJLcDyhGCNh+QDdYxQIm +8ZyUqihH5ERYgEK9MTBpA/sNJOigLnPgF0E= +-----END EC PUBLIC KEY-----`)) +} + +func parsePrivate(priv []byte) { + k, err := parse.Private(priv) + if err != nil { + panic(err) + } + + fmt.Printf(" Curve: %s\n Fingerprint: %x\n", k.Public().Name(), k.Public().Fingerprint(sha1.New())) +} + +func parsePublic(pub []byte) { + k, err := parse.Public(pub) + if err != nil { + panic(err) + } + + fmt.Printf(" Curve: %s\n Fingerprint: %x\n", k.Name(), k.Fingerprint(sha1.New())) +}