added get loop and new key type xor
This commit is contained in:
parent
8f350b4b02
commit
9e68b46346
8 changed files with 122 additions and 24 deletions
|
|
@ -20,7 +20,7 @@ import (
|
|||
var fs = flag.NewFlagSet("", flag.ExitOnError)
|
||||
|
||||
func exit(err error) {
|
||||
fmt.Println(err)
|
||||
fmt.Fprintf(os.Stderr, "%s\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
|
|
@ -44,7 +44,8 @@ func Run(arg string) {
|
|||
exit(err)
|
||||
}
|
||||
fmt.Println("Key ID:", k.ID)
|
||||
if k.Type == core.Shamir {
|
||||
if k.Type == core.Shamir || k.Type == core.Xor {
|
||||
fmt.Println("Key Type:", k.Type)
|
||||
fmt.Println("Key Share:", k.Key)
|
||||
}
|
||||
case "del":
|
||||
|
|
@ -78,14 +79,22 @@ func Run(arg string) {
|
|||
exit(err)
|
||||
}
|
||||
case "get":
|
||||
id, share, json, err := getFlags()
|
||||
id, share, loop, json, err := getFlags()
|
||||
if err != nil {
|
||||
exit(err)
|
||||
}
|
||||
c := client()
|
||||
key, err := c.GetKey(ctx, id)
|
||||
if err != nil {
|
||||
exit(err)
|
||||
var key schema.Key
|
||||
if loop {
|
||||
key, err = c.GetKeyLoop(ctx, id)
|
||||
if err != nil {
|
||||
exit(err)
|
||||
}
|
||||
} else {
|
||||
key, err = c.GetKey(ctx, id)
|
||||
if err != nil {
|
||||
exit(err)
|
||||
}
|
||||
}
|
||||
out, err := key.Print(share)
|
||||
if err != nil {
|
||||
|
|
@ -153,9 +162,10 @@ func idFlags(desc string) (id string, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func getFlags() (id, share string, json bool, err error) {
|
||||
func getFlags() (id, share string, loop, json bool, err error) {
|
||||
fs.StringVar(&id, "id", "", "key id")
|
||||
fs.StringVar(&share, "share", "", "shamir key share")
|
||||
fs.BoolVar(&loop, "loop", false, "ignore network errors and loop until key is received")
|
||||
fs.BoolVar(&json, "json", false, "json output")
|
||||
fs.Parse(os.Args[2:])
|
||||
if id == "" {
|
||||
|
|
@ -176,7 +186,7 @@ func outputFlags() (json bool) {
|
|||
func newKeyFlags() (name, encoding, t string, size int, err error) {
|
||||
fs.StringVar(&name, "name", "", "key name")
|
||||
fs.StringVar(&encoding, "enc", "hex", "key encoding scheme [hex|base32|base64|base64url]")
|
||||
fs.StringVar(&t, "type", "plain", "key type [plain|shamir]")
|
||||
fs.StringVar(&t, "type", "plain", "key type [plain|shamir|xor]")
|
||||
fs.IntVar(&size, "size", 16, "key size in bytes")
|
||||
fs.Parse(os.Args[2:])
|
||||
if name == "" {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue