diff options
author | Rasmus Dahlberg <rasmus@rgdd.se> | 2022-10-13 17:47:14 +0200 |
---|---|---|
committer | Rasmus Dahlberg <rasmus@rgdd.se> | 2022-10-13 18:04:52 +0200 |
commit | 9353b9aa47be65c9cd483a251cfd3aabc193c3ec (patch) | |
tree | f88f3eac3513183c1a2f884b5cf6927c8418af37 /main.go | |
parent | 2933ba510c7ac41e39b54667e3cb5f11fdea929d (diff) |
Add terminal UI
Intentionally backwards-compatible with HARICA's onion-csr tool, see:
https://github.com/HARICA-official/onion-csr
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -0,0 +1,46 @@ +package main + +import ( + "crypto/rand" + "errors" + "flag" + "fmt" + "io" + "os" + + "sauteed-onions.org/onion-csr/internal/options" + "sauteed-onions.org/onion-csr/pkg/ocsr" + "sauteed-onions.org/onion-csr/pkg/okey" +) + +const entropyBytes = 10 // 80 bits + +func main() { + opts, err := options.New(os.Args[0], os.Args[1:]) + if err != nil { + if errors.Is(err, flag.ErrHelp) { + os.Exit(0) + } + + fmt.Fprintf(os.Stderr, "ERROR: %v\n", err) + os.Exit(1) + } + + var applicantNonce [entropyBytes]byte + if _, err := io.ReadFull(rand.Reader, applicantNonce[:]); err != nil { + fmt.Fprintf(os.Stderr, "ERROR: %v\n", err) + os.Exit(1) + } + priv, err := okey.NewFromHSDir(opts.HSDir) + if err != nil { + fmt.Fprintf(os.Stderr, "ERROR: %v\n", err) + os.Exit(1) + } + csr, err := ocsr.New(priv, opts.CANonce, applicantNonce[:]) + if err != nil { + fmt.Fprintf(os.Stderr, "ERROR: %v\n", err) + os.Exit(1) + } + + fmt.Fprintf(os.Stdout, "%s", csr) +} |