| 196 | } |
| 197 | |
| 198 | func signSignAction(ctx *cli.Context) error { |
| 199 | if err := errs.NumberOfArguments(ctx, 1); err != nil { |
| 200 | return err |
| 201 | } |
| 202 | |
| 203 | privFile := ctx.Args().Get(0) |
| 204 | priv, err := os.ReadFile(privFile) |
| 205 | if err != nil { |
| 206 | return errs.FileError(err, privFile) |
| 207 | } else if len(priv) != 64 { |
| 208 | return errors.New("invalid private key: key size is not 64 bytes") |
| 209 | } |
| 210 | |
| 211 | input, err := utils.ReadInput("Please enter text to sign") |
| 212 | if err != nil { |
| 213 | return errors.Wrap(err, "error reading input") |
| 214 | } |
| 215 | |
| 216 | var pv [64]byte |
| 217 | copy(pv[:], priv) |
| 218 | |
| 219 | raw := sign.Sign(nil, input, &pv) |
| 220 | if ctx.Bool("raw") { |
| 221 | os.Stdout.Write(raw) |
| 222 | } else { |
| 223 | fmt.Println(b64Encoder.EncodeToString(raw)) |
| 224 | } |
| 225 | |
| 226 | return nil |
| 227 | } |