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)
}
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)
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)
}