remove duplicated password decryption prompts by returning the bare key together with the Keyer when it is given.

This commit is contained in:
fiatjaf 2024-10-29 21:11:15 -03:00
parent 134d1225d6
commit 847f8aaa69
5 changed files with 12 additions and 12 deletions

View File

@ -58,7 +58,7 @@ var encrypt = &cli.Command{
stdout(ciphertext)
}
} else {
kr, err := gatherKeyerFromArguments(ctx, c)
kr, _, err := gatherKeyerFromArguments(ctx, c)
if err != nil {
return err
}
@ -123,7 +123,7 @@ var decrypt = &cli.Command{
stdout(plaintext)
}
} else {
kr, err := gatherKeyerFromArguments(ctx, c)
kr, _, err := gatherKeyerFromArguments(ctx, c)
if err != nil {
return err
}

View File

@ -148,11 +148,10 @@ example:
}
}()
kr, err := gatherKeyerFromArguments(ctx, c)
kr, sec, err := gatherKeyerFromArguments(ctx, c)
if err != nil {
return err
}
sec, _, _ := gatherSecretKeyOrBunkerFromArguments(ctx, c)
doAuth := c.Bool("auth")
@ -254,7 +253,8 @@ example:
}
if evt.Sig == "" || mustRehashAndResign {
if numSigners := c.Uint("musig"); numSigners > 1 && sec != "" {
if numSigners := c.Uint("musig"); numSigners > 1 {
// must do musig
pubkeys := c.StringSlice("musig-pubkey")
secNonce := c.String("musig-nonce-secret")
pubNonces := c.StringSlice("musig-nonce")
@ -304,7 +304,7 @@ example:
}
// error publishing
if strings.HasPrefix(err.Error(), "msg: auth-required:") && (sec != "" || bunker != nil) && doAuth {
if strings.HasPrefix(err.Error(), "msg: auth-required:") && kr != nil && doAuth {
// if the relay is requesting auth and we can auth, let's do it
pk, _ := kr.GetPublicKey(ctx)
log("performing auth as %s... ", pk)

View File

@ -38,20 +38,20 @@ var defaultKeyFlags = []cli.Flag{
},
}
func gatherKeyerFromArguments(ctx context.Context, c *cli.Command) (keyer.Keyer, error) {
func gatherKeyerFromArguments(ctx context.Context, c *cli.Command) (nostr.Keyer, string, error) {
key, bunker, err := gatherSecretKeyOrBunkerFromArguments(ctx, c)
if err != nil {
return nil, err
return nil, "", err
}
var kr keyer.Keyer
var kr nostr.Keyer
if bunker != nil {
kr = keyer.NewBunkerSignerFromBunkerClient(bunker)
} else {
kr, err = keyer.NewPlainKeySigner(key)
}
return kr, err
return kr, key, err
}
func gatherSecretKeyOrBunkerFromArguments(ctx context.Context, c *cli.Command) (string, *nip46.BunkerClient, error) {

View File

@ -95,7 +95,7 @@ var relay = &cli.Command{
return nil
}
kr, err := gatherKeyerFromArguments(ctx, c)
kr, _, err := gatherKeyerFromArguments(ctx, c)
if err != nil {
return err
}

2
req.go
View File

@ -80,7 +80,7 @@ example:
if !c.Bool("auth") && !c.Bool("force-pre-auth") {
return fmt.Errorf("auth not authorized")
}
kr, err := gatherKeyerFromArguments(ctx, c)
kr, _, err := gatherKeyerFromArguments(ctx, c)
if err != nil {
return err
}