Skip to content

Commit 72e6350

Browse files
committed
fixed the dependency of identity file while signing update
Signed-off-by: adityajoshi12 <[email protected]>
1 parent f0f56f1 commit 72e6350

File tree

1 file changed

+61
-44
lines changed

1 file changed

+61
-44
lines changed

kubectl-hlf/cmd/channel/signupdate.go

Lines changed: 61 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package channel
33
import (
44
"bytes"
55
"fmt"
6+
mspclient "github.com/hyperledger/fabric-sdk-go/pkg/client/msp"
7+
"os"
68

79
"github.com/golang/protobuf/proto"
810
"github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt"
@@ -18,7 +20,6 @@ import (
1820
"gopkg.in/yaml.v3"
1921

2022
"io"
21-
"io/ioutil"
2223
)
2324

2425
type signUpdateChannelCmd struct {
@@ -58,55 +59,71 @@ func (c *signUpdateChannelCmd) run(out io.Writer) error {
5859
if err != nil {
5960
return err
6061
}
61-
updateEnvelopeBytes, err := ioutil.ReadFile(c.file)
62+
updateEnvelopeBytes, err := os.ReadFile(c.file)
6263
if err != nil {
6364
return err
6465
}
6566
configUpdateReader := bytes.NewReader(updateEnvelopeBytes)
66-
sdkConfig, err := sdk.Config()
67-
if err != nil {
68-
return err
69-
}
70-
cryptoConfig := cryptosuite.ConfigFromBackend(sdkConfig)
71-
cryptoSuite, err := sw.GetSuiteByConfig(cryptoConfig)
72-
if err != nil {
73-
return err
74-
}
75-
userStore := mspimpl.NewMemoryUserStore()
76-
endpointConfig, err := fab.ConfigFromBackend(sdkConfig)
77-
if err != nil {
78-
return err
79-
}
80-
identityManager, err := mspimpl.NewIdentityManager(c.mspID, userStore, cryptoSuite, endpointConfig)
81-
if err != nil {
82-
return err
83-
}
84-
identityBytes, err := ioutil.ReadFile(c.identity)
85-
if err != nil {
86-
return err
87-
}
88-
id := &identity{}
89-
err = yaml.Unmarshal(identityBytes, id)
90-
if err != nil {
91-
return err
92-
}
93-
signingIdentity, err := identityManager.CreateSigningIdentity(
94-
msp.WithPrivateKey([]byte(id.Key.Pem)),
95-
msp.WithCert([]byte(id.Cert.Pem)),
96-
)
97-
if err != nil {
98-
return err
99-
}
100-
signature, err := resClient.CreateConfigSignatureFromReader(signingIdentity, configUpdateReader)
101-
if err != nil {
102-
return err
103-
}
104-
signatureBytes, err := proto.Marshal(signature)
105-
if err != nil {
106-
return err
67+
68+
var signatureBytes []byte
69+
70+
// use identity file if provided
71+
if c.identity != "" {
72+
sdkConfig, err := sdk.Config()
73+
if err != nil {
74+
return err
75+
}
76+
77+
cryptoConfig := cryptosuite.ConfigFromBackend(sdkConfig)
78+
cryptoSuite, err := sw.GetSuiteByConfig(cryptoConfig)
79+
if err != nil {
80+
return err
81+
}
82+
userStore := mspimpl.NewMemoryUserStore()
83+
endpointConfig, err := fab.ConfigFromBackend(sdkConfig)
84+
if err != nil {
85+
return err
86+
}
87+
identityManager, err := mspimpl.NewIdentityManager(c.mspID, userStore, cryptoSuite, endpointConfig)
88+
if err != nil {
89+
return err
90+
}
91+
identityBytes, err := os.ReadFile(c.identity)
92+
if err != nil {
93+
return err
94+
}
95+
id := &identity{}
96+
err = yaml.Unmarshal(identityBytes, id)
97+
if err != nil {
98+
return err
99+
}
100+
signingIdentity, err := identityManager.CreateSigningIdentity(
101+
msp.WithPrivateKey([]byte(id.Key.Pem)),
102+
msp.WithCert([]byte(id.Cert.Pem)),
103+
)
104+
if err != nil {
105+
return err
106+
}
107+
signature, err := resClient.CreateConfigSignatureFromReader(signingIdentity, configUpdateReader)
108+
if err != nil {
109+
return err
110+
}
111+
signatureBytes, err = proto.Marshal(signature)
112+
if err != nil {
113+
return err
114+
}
115+
} else {
116+
mspClient, err := mspclient.New(org1AdminClientContext, mspclient.WithOrg(c.mspID))
117+
if err != nil {
118+
return err
119+
}
120+
usr, err := mspClient.GetSigningIdentity(c.userName)
121+
signature, err := resClient.CreateConfigSignatureFromReader(usr, configUpdateReader)
122+
signatureBytes, err = proto.Marshal(signature)
107123
}
124+
108125
if c.output != "" {
109-
err = ioutil.WriteFile(c.output, signatureBytes, 0644)
126+
err = os.WriteFile(c.output, signatureBytes, 0644)
110127
if err != nil {
111128
return err
112129
}

0 commit comments

Comments
 (0)