add convenience method for getting keys including self
License: MIT Signed-off-by: Jeromy <why@ipfs.io>
Jeromy committed
Dec 6, 2016 at 13:25 UTC
c307b5494ada0f1c227d45f686828e42bf9704fe
2 files changed
+12
-10
core/commands/publish.go
+4
-10
@@ -110,17 +110,11 @@ Publish an <ipfs-path> to another public key (not implemented):
110
ctx = context.WithValue(ctx, "ipns-publish-ttl", d)
111
}
112
113
- var k crypto.PrivKey
113
kname, _, _ := req.Option("key").String()
115
- if kname == "self" {
116
- k = n.PrivateKey
117
- } else {
118
- ksk, err := n.Repo.Keystore().Get(kname)
119
- if err != nil {
120
- res.SetError(err, cmds.ErrNormal)
121
- return
122
- }
123
- k = ksk
114
+ k, err := n.GetKey(kname)
115
+ if err != nil {
116
+ res.SetError(err, cmds.ErrNormal)
117
+ return
118
}
119
120
output, err := publish(ctx, n, k, path.Path(pstr), popts)
core/core.go
+8
@@ -514,6 +514,14 @@ func (n *IpfsNode) loadID() error {
514
return nil
515
}
516
517
+func (n *IpfsNode) GetKey(name string) (ic.PrivKey, error) {
518
+ if name == "self" {
519
+ return n.PrivateKey, nil
520
+ } else {
521
+ return n.Repo.Keystore().Get(name)
522
+ }
523
+}
524
+
525
func (n *IpfsNode) LoadPrivateKey() error {
526
if n.Identity == "" || n.Peerstore == nil {
527
return errors.New("loaded private key out of order.")