X-Git-Url: http://nsz.repo.hu/git/?p=epoint;a=blobdiff_plain;f=cmd%2Fgenkey%2Fgenkey.go;h=3a8a256e6260a0996e137e57489ecca5f0b9ce5a;hp=6420306a491a02103c8da05340765e710a61d439;hb=293e53e15524518b254091a155c5d04f4305816d;hpb=ba050281925d304417cc0d4a80340b9dab9b6da8 diff --git a/cmd/genkey/genkey.go b/cmd/genkey/genkey.go index 6420306..3a8a256 100644 --- a/cmd/genkey/genkey.go +++ b/cmd/genkey/genkey.go @@ -1,14 +1,14 @@ package main import ( - "epoint/dsakey" "crypto/openpgp" + "epoint/dsakey" + "fmt" "log" "os" - "time" ) -const usage = "usage: ./genkey name comment email seckeyfile pubkeyfile < seed" +const usage = "usage: ./genkey [issuer] denomination seckeyfile pubkeyfile < seed > fingerprint" func serialize(e *openpgp.Entity, sk, pk string) (err error) { f, err := os.Create(sk) @@ -60,7 +60,22 @@ func serialize(e *openpgp.Entity, sk, pk string) (err error) { } func main() { - if len(os.Args) != 6 { + isIssuer := false + issuer := "" + denom := "" + sk := "" + pk := "" + if len(os.Args) == 4 { + isIssuer = true + denom = os.Args[1] + sk = os.Args[2] + pk = os.Args[3] + } else if len(os.Args) == 5 { + issuer = os.Args[1] + denom = os.Args[2] + sk = os.Args[3] + pk = os.Args[4] + } else { log.Fatal(usage) } b := make([]byte, 1000) @@ -69,13 +84,18 @@ func main() { log.Print(err) log.Fatal(usage) } - key := dsakey.PrivKey(b[:n]) - e, err := dsakey.NewEntity(key, time.Seconds(), os.Args[1], os.Args[2], os.Args[3]) + var e *openpgp.Entity + if isIssuer { + e, err = dsakey.NewIssuerEntity(b[:n], denom) + } else { + e, err = dsakey.NewHolderEntity(b[:n], issuer, denom) + } if err != nil { log.Fatal(err) } - err = serialize(e, os.Args[4], os.Args[5]) + err = serialize(e, sk, pk) if err != nil { log.Fatal(err) } + fmt.Fprintf(os.Stdout, "%X\n", e.PrimaryKey.Fingerprint) }