59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"custodial/pkg/crypto"
|
|
)
|
|
|
|
func main() {
|
|
cwd, err := os.Getwd()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
var dir string = cwd + "/keys"
|
|
fmt.Println("Checking for directory: " + dir)
|
|
_, err = os.Stat(dir)
|
|
if os.IsNotExist(err) {
|
|
fmt.Println("Creating directory: " + dir)
|
|
err = os.Mkdir(dir, 0755)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println("Generating a new keypair...")
|
|
kp, err := crypto.KeyPair{}.Random()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
kp.Save(dir)
|
|
fmt.Println("Keypair saved to: " + dir)
|
|
} else {
|
|
fmt.Println("Directory already exists: " + dir)
|
|
}
|
|
|
|
fmt.Println("Checking if locker/keys.go exists...")
|
|
|
|
keys := cwd + "/pkg/locker/keys.go"
|
|
_, err = os.Stat(keys)
|
|
if os.IsNotExist(err) {
|
|
fmt.Println("Creating locker/keys.go...")
|
|
f, err := os.Create(keys)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer f.Close()
|
|
|
|
kp := crypto.KeyPair{}.Load(dir)
|
|
|
|
fmt.Println("Writing to locker/keys.go...")
|
|
f.WriteString("package locker\n\nconst PRIVATE_KEY string = \"" + string(kp.PrivateKeyBase64()) + "\"")
|
|
fmt.Println("Done!")
|
|
} else {
|
|
fmt.Println("locker/keys.go already exists")
|
|
}
|
|
|
|
}
|