diff --git a/Gopkg.lock b/Gopkg.lock index 388b967b0b..a0ce7ec585 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -268,6 +268,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "69a253c980696349061bd3fdbf74cf2a0aa99f17bf174268181d5b172c1e1a70" + inputs-digest = "ece1678a9f3fcd685a8d32185012137ac6aa49f65ebf96b08bdcc8757b2c4185" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Makefile b/Makefile index 471161f878..fff152c0ce 100644 --- a/Makefile +++ b/Makefile @@ -64,9 +64,9 @@ FABRIC_DEV_REGISTRY_PRE_CMD ?= docker login -u docker -p docker nexus3.hyperledg # Upstream fabric patching (overridable) THIRDPARTY_FABRIC_CA_BRANCH ?= master -THIRDPARTY_FABRIC_CA_COMMIT ?= 2032d7736ec3254f7ad2555770743b90c5956274 +THIRDPARTY_FABRIC_CA_COMMIT ?= 7c3fc1addc046055f66d45d35a1c47c98364c627 THIRDPARTY_FABRIC_BRANCH ?= master -THIRDPARTY_FABRIC_COMMIT ?= d78be9f4567d98e8c14542446a85ec5f8fcb5e5a +THIRDPARTY_FABRIC_COMMIT ?= 8f79ea1aebdaee1c844d1b5f2c8f89dff18bcffc # Force removal of images in cleanup (overridable) FIXTURE_DOCKER_REMOVE_FORCE ?= false diff --git a/internal/github.com/hyperledger/fabric-ca/lib/client.go b/internal/github.com/hyperledger/fabric-ca/lib/client.go index a83b439ce0..515a22d01b 100644 --- a/internal/github.com/hyperledger/fabric-ca/lib/client.go +++ b/internal/github.com/hyperledger/fabric-ca/lib/client.go @@ -65,6 +65,8 @@ type GetCAInfoResponse struct { CAChain []byte // Idemix issuer public key of the CA IssuerPublicKey []byte + // Idemix issuer revocation public key of the CA + IssuerRevocationPublicKey []byte // Version of the server Version string } @@ -199,19 +201,26 @@ func (c *Client) Enroll(req *api.EnrollmentRequest) (*EnrollmentResponse, error) return c.handleX509Enroll(req) } -// Convert from network to local server information -func (c *Client) net2LocalServerInfo(net *common.CAInfoResponseNet, local *GetCAInfoResponse) error { +// Convert from network to local CA information +func (c *Client) net2LocalCAInfo(net *common.CAInfoResponseNet, local *GetCAInfoResponse) error { caChain, err := util.B64Decode(net.CAChain) if err != nil { - return err + return errors.WithMessage(err, "Failed to decode CA chain") } if net.IssuerPublicKey != "" { ipk, err := util.B64Decode(net.IssuerPublicKey) if err != nil { - return err + return errors.WithMessage(err, "Failed to decode issuer public key") } local.IssuerPublicKey = ipk } + if net.IssuerRevocationPublicKey != "" { + rpk, err := util.B64Decode(net.IssuerRevocationPublicKey) + if err != nil { + return errors.WithMessage(err, "Failed to decode issuer revocation key") + } + local.IssuerRevocationPublicKey = rpk + } local.CAName = net.CAName local.CAChain = caChain local.Version = net.Version @@ -290,7 +299,7 @@ func (c *Client) newEnrollmentResponse(result *common.EnrollmentResponseNet, id resp := &EnrollmentResponse{ Identity: NewIdentity(c, id, []credential.Credential{x509Cred}), } - err = c.net2LocalServerInfo(&result.ServerInfo, &resp.CAInfo) + err = c.net2LocalCAInfo(&result.ServerInfo, &resp.CAInfo) if err != nil { return nil, err } diff --git a/internal/github.com/hyperledger/fabric-ca/lib/common/serverresponses.go b/internal/github.com/hyperledger/fabric-ca/lib/common/serverresponses.go index 7551283fff..8b310932c3 100644 --- a/internal/github.com/hyperledger/fabric-ca/lib/common/serverresponses.go +++ b/internal/github.com/hyperledger/fabric-ca/lib/common/serverresponses.go @@ -10,14 +10,21 @@ Please review third_party pinning scripts and patches for more details. package common +const ( + // IdemixTokenVersion1 represents version 1 of the authorization token created using Idemix credential + IdemixTokenVersion1 = "1" +) + // CAInfoResponseNet is the response to the GET /info request type CAInfoResponseNet struct { // CAName is a unique name associated with fabric-ca-server's CA CAName string // Base64 encoding of PEM-encoded certificate chain CAChain string - // Base64 encoding of idemix issuer public key + // Base64 encoding of Idemix issuer public key IssuerPublicKey string + // Base64 encoding of PEM-encoded Idemix issuer revocation public key + IssuerRevocationPublicKey string // Version of the server Version string } diff --git a/internal/github.com/hyperledger/fabric-ca/util/util.go b/internal/github.com/hyperledger/fabric-ca/util/util.go index 3785eb99ca..e361748cec 100644 --- a/internal/github.com/hyperledger/fabric-ca/util/util.go +++ b/internal/github.com/hyperledger/fabric-ca/util/util.go @@ -33,6 +33,7 @@ import ( mrand "math/rand" "net/http" "os" + "path" "path/filepath" "reflect" "regexp" @@ -92,6 +93,14 @@ func ReadFile(file string) ([]byte, error) { // WriteFile writes a file func WriteFile(file string, buf []byte, perm os.FileMode) error { + dir := path.Dir(file) + // Create the directory if it doesn't exist + if _, err := os.Stat(dir); os.IsNotExist(err) { + err = os.MkdirAll(dir, 0755) + if err != nil { + return errors.Wrapf(err, "Failed to create directory '%s' for file '%s'", dir, file) + } + } return ioutil.WriteFile(file, buf, perm) } diff --git a/internal/github.com/hyperledger/fabric/core/ledger/ledger_interface.go b/internal/github.com/hyperledger/fabric/core/ledger/ledger_interface.go index f257c03d09..bca86db762 100644 --- a/internal/github.com/hyperledger/fabric/core/ledger/ledger_interface.go +++ b/internal/github.com/hyperledger/fabric/core/ledger/ledger_interface.go @@ -320,3 +320,10 @@ type ErrCollectionConfigNotYetAvailable struct { func (e *ErrCollectionConfigNotYetAvailable) Error() string { return e.Msg } + +// NotFoundInIndexErr is used to indicate missing entry in the index +type NotFoundInIndexErr string + +func (NotFoundInIndexErr) Error() string { + return "Entry not found in index" +} diff --git a/internal/github.com/hyperledger/fabric/discovery/client/api.go b/internal/github.com/hyperledger/fabric/discovery/client/api.go index 19e9db0706..e31b263391 100644 --- a/internal/github.com/hyperledger/fabric/discovery/client/api.go +++ b/internal/github.com/hyperledger/fabric/discovery/client/api.go @@ -53,7 +53,9 @@ type ChannelResponse interface { // The selection is based on the given selection hints: // PrioritySelector: Determines which endorsers are selected over others // ExclusionFilter: Determines which endorsers are not selected - Endorsers(cc string, ps PrioritySelector, ef ExclusionFilter) (Endorsers, error) + // The given InvocationChain specifies the chaincode calls (along with collections) + // that the client passed during the construction of the request + Endorsers(invocationChain InvocationChain, ps PrioritySelector, ef ExclusionFilter) (Endorsers, error) } // LocalResponse aggregates responses for a channel-less scope diff --git a/internal/github.com/hyperledger/fabric/discovery/client/client.go b/internal/github.com/hyperledger/fabric/discovery/client/client.go index df653efe35..976cfb9fab 100644 --- a/internal/github.com/hyperledger/fabric/discovery/client/client.go +++ b/internal/github.com/hyperledger/fabric/discovery/client/client.go @@ -13,6 +13,7 @@ package discovery import ( "bytes" "context" + "encoding/json" "math/rand" "time" @@ -38,8 +39,9 @@ type Client struct { // NewRequest creates a new request func NewRequest() *Request { r := &Request{ - queryMapping: make(map[discovery.QueryType]map[string]int), - Request: &discovery.Request{}, + invocationChainMapping: make(map[int][]InvocationChain), + queryMapping: make(map[discovery.QueryType]map[string]int), + Request: &discovery.Request{}, } // pre-populate types for _, queryType := range configTypes { @@ -52,8 +54,10 @@ func NewRequest() *Request { type Request struct { lastChannel string lastIndex int - // map from query type to channel (or channel + chaincode) to expected index in response + // map from query type to channel to expected index in response queryMapping map[discovery.QueryType]map[string]int + // map from expected index in response to invocation chains + invocationChainMapping map[int][]InvocationChain *discovery.Request } @@ -72,22 +76,29 @@ func (req *Request) AddConfigQuery() *Request { } // AddEndorsersQuery adds to the request a query for given chaincodes -func (req *Request) AddEndorsersQuery(chaincodes ...string) *Request { +// interests are the chaincode interests that the client wants to query for. +// All interests for a given channel should be supplied in an aggregated slice +func (req *Request) AddEndorsersQuery(interests ...*discovery.ChaincodeInterest) (*Request, error) { + if err := validateInterests(interests...); err != nil { + return nil, err + } ch := req.lastChannel q := &discovery.Query_CcQuery{ - CcQuery: &discovery.ChaincodeQuery{}, - } - for _, cc := range chaincodes { - q.CcQuery.Interests = append(q.CcQuery.Interests, &discovery.ChaincodeInterest{ - Chaincodes: []*discovery.ChaincodeCall{{Name: cc}}, - }) + CcQuery: &discovery.ChaincodeQuery{ + Interests: interests, + }, } req.Queries = append(req.Queries, &discovery.Query{ Channel: ch, Query: q, }) + var invocationChains []InvocationChain + for _, interest := range interests { + invocationChains = append(invocationChains, interest.Chaincodes) + } + req.addChaincodeQueryMapping(invocationChains) req.addQueryMapping(discovery.ChaincodeQueryType, ch) - return req + return req, nil } // AddLocalPeersQuery adds to the request a local peer query @@ -122,6 +133,10 @@ func (req *Request) OfChannel(ch string) *Request { return req } +func (req *Request) addChaincodeQueryMapping(invocationChains []InvocationChain) { + req.invocationChainMapping[req.lastIndex] = invocationChains +} + func (req *Request) addQueryMapping(queryType discovery.QueryType, key string) { req.queryMapping[queryType][key] = req.lastIndex req.lastIndex++ @@ -169,7 +184,7 @@ func (c *Client) Send(ctx context.Context, req *Request, auth *discovery.AuthInf if n := len(resp.Results); n != req.lastIndex { return nil, errors.Errorf("Sent %d queries but received %d responses back", req.lastIndex, n) } - return computeResponse(req.queryMapping, resp) + return req.computeResponse(resp) } type resultOrError interface { @@ -228,7 +243,7 @@ func (cr *channelResponse) Peers() ([]*Peer, error) { return parsePeers(discovery.PeerMembershipQueryType, cr.response, cr.channel) } -func (cr *channelResponse) Endorsers(cc string, ps PrioritySelector, ef ExclusionFilter) (Endorsers, error) { +func (cr *channelResponse) Endorsers(invocationChain InvocationChain, ps PrioritySelector, ef ExclusionFilter) (Endorsers, error) { // If we have a key that has no chaincode field, // it means it's an error returned from the service if err, exists := cr.response[key{ @@ -240,9 +255,9 @@ func (cr *channelResponse) Endorsers(cc string, ps PrioritySelector, ef Exclusio // Else, the service returned a response that isn't an error res, exists := cr.response[key{ - queryType: discovery.ChaincodeQueryType, - channel: cr.channel, - chaincode: cc, + queryType: discovery.ChaincodeQueryType, + channel: cr.channel, + invocationChain: invocationChain.String(), }] if !exists { @@ -294,20 +309,20 @@ func (resp response) ForChannel(ch string) ChannelResponse { } type key struct { - queryType discovery.QueryType - channel string - chaincode string + queryType discovery.QueryType + channel string + invocationChain string } -func computeResponse(queryMapping map[discovery.QueryType]map[string]int, r *discovery.Response) (response, error) { +func (req *Request) computeResponse(r *discovery.Response) (response, error) { var err error resp := make(response) - for configType, channel2index := range queryMapping { + for configType, channel2index := range req.queryMapping { switch configType { case discovery.ConfigQueryType: err = resp.mapConfig(channel2index, r) case discovery.ChaincodeQueryType: - err = resp.mapEndorsers(channel2index, r) + err = resp.mapEndorsers(channel2index, r, req.queryMapping, req.invocationChainMapping) case discovery.PeerMembershipQueryType: err = resp.mapPeerMembership(channel2index, r, discovery.PeerMembershipQueryType) case discovery.LocalMembershipQueryType: @@ -404,36 +419,46 @@ func isStateInfoExpected(qt discovery.QueryType) bool { return qt != discovery.LocalMembershipQueryType } -func (resp response) mapEndorsers(channel2index map[string]int, r *discovery.Response) error { +func (resp response) mapEndorsers( + channel2index map[string]int, + r *discovery.Response, + queryMapping map[discovery.QueryType]map[string]int, + chaincodeQueryMapping map[int][]InvocationChain) error { for ch, index := range channel2index { ccQueryRes, err := r.EndorsersAt(index) if ccQueryRes == nil && err == nil { return errors.Errorf("expected QueryResult of either ChaincodeQueryResult or Error but got %v instead", r.Results[index]) } - key := key{ - queryType: discovery.ChaincodeQueryType, - channel: ch, - } - if err != nil { + key := key{ + queryType: discovery.ChaincodeQueryType, + channel: ch, + } resp[key] = errors.New(err.Content) continue } - if err := resp.mapEndorsersOfChannel(ccQueryRes, ch); err != nil { + if err := resp.mapEndorsersOfChannel(ccQueryRes, ch, chaincodeQueryMapping[index]); err != nil { return errors.Wrapf(err, "failed assembling endorsers of channel %s", ch) } } return nil } -func (resp response) mapEndorsersOfChannel(ccRs *discovery.ChaincodeQueryResult, channel string) error { - for _, desc := range ccRs.Content { +func (resp response) mapEndorsersOfChannel(ccRs *discovery.ChaincodeQueryResult, channel string, invocationChain []InvocationChain) error { + if len(ccRs.Content) < len(invocationChain) { + return errors.Errorf("expected %d endorsement descriptors but got only %d", len(invocationChain), len(ccRs.Content)) + } + for i, desc := range ccRs.Content { + expectedCCName := invocationChain[i][0].Name + if desc.Chaincode != expectedCCName { + return errors.Errorf("expected chaincode %s but got endorsement descriptor for %s", expectedCCName, desc.Chaincode) + } key := key{ - queryType: discovery.ChaincodeQueryType, - channel: channel, - chaincode: desc.Chaincode, + queryType: discovery.ChaincodeQueryType, + channel: channel, + invocationChain: invocationChain[i].String(), } descriptor, err := resp.createEndorsementDescriptor(desc, channel) @@ -548,3 +573,40 @@ func validateStateInfoMessage(message *gossip.SignedGossipMessage) error { } return nil } + +func validateInterests(interests ...*discovery.ChaincodeInterest) error { + if len(interests) == 0 { + return errors.New("no chaincode interests given") + } + for _, interest := range interests { + if interest == nil { + return errors.New("chaincode interest is nil") + } + if err := InvocationChain(interest.Chaincodes).ValidateInvocationChain(); err != nil { + return err + } + } + return nil +} + +// InvocationChain aggregates ChaincodeCalls +type InvocationChain []*discovery.ChaincodeCall + +// String returns a string representation of this invocation chain +func (ic InvocationChain) String() string { + s, _ := json.Marshal(ic) + return string(s) +} + +// ValidateInvocationChain validates the InvocationChain's structure +func (ic InvocationChain) ValidateInvocationChain() error { + if len(ic) == 0 { + return errors.New("invocation chain should not be empty") + } + for _, cc := range ic { + if cc.Name == "" { + return errors.New("chaincode name should not be empty") + } + } + return nil +} diff --git a/internal/github.com/hyperledger/fabric/msp/factory.go b/internal/github.com/hyperledger/fabric/msp/factory.go index e6f2401cac..80fc875d51 100644 --- a/internal/github.com/hyperledger/fabric/msp/factory.go +++ b/internal/github.com/hyperledger/fabric/msp/factory.go @@ -15,6 +15,7 @@ type MSPVersion int const ( MSPv1_0 = iota MSPv1_1 + MSPv1_3 ) // NewOpts represent diff --git a/internal/github.com/hyperledger/fabric/msp/mspimpl.go b/internal/github.com/hyperledger/fabric/msp/mspimpl.go index ed672b04f6..c2bde71ab8 100644 --- a/internal/github.com/hyperledger/fabric/msp/mspimpl.go +++ b/internal/github.com/hyperledger/fabric/msp/mspimpl.go @@ -31,6 +31,9 @@ type mspSetupFuncType func(config *m.FabricMSPConfig) error // validateIdentityOUsFuncType is the prototype of the function to validate identity's OUs type validateIdentityOUsFuncType func(id *identity) error +// satisfiesPrincipalInternalFuncType is the prototype of the function to check if principals are satisfied +type satisfiesPrincipalInternalFuncType func(id Identity, principal *m.MSPPrincipal) error + // This is an instantiation of an MSP that // uses BCCSP for its cryptographic primitives. type bccspmsp struct { @@ -44,6 +47,9 @@ type bccspmsp struct { // internalValidateIdentityOusFunc is the pointer to the function to validate identity's OUs internalValidateIdentityOusFunc validateIdentityOUsFuncType + // internalSatisfiesPrincipalInternalFunc is the pointer to the function to check if principals are satisfied + internalSatisfiesPrincipalInternalFunc satisfiesPrincipalInternalFuncType + // list of CA certs we trust rootCerts []Identity @@ -107,9 +113,15 @@ func NewBccspMsp(version MSPVersion, cryptoSuite core.CryptoSuite) (MSP, error) case MSPv1_0: theMsp.internalSetupFunc = theMsp.setupV1 theMsp.internalValidateIdentityOusFunc = theMsp.validateIdentityOUsV1 + theMsp.internalSatisfiesPrincipalInternalFunc = theMsp.satisfiesPrincipalInternalPreV13 case MSPv1_1: theMsp.internalSetupFunc = theMsp.setupV11 theMsp.internalValidateIdentityOusFunc = theMsp.validateIdentityOUsV11 + theMsp.internalSatisfiesPrincipalInternalFunc = theMsp.satisfiesPrincipalInternalPreV13 + case MSPv1_3: + theMsp.internalSetupFunc = theMsp.setupV11 + theMsp.internalValidateIdentityOusFunc = theMsp.validateIdentityOUsV11 + theMsp.internalSatisfiesPrincipalInternalFunc = theMsp.satisfiesPrincipalInternalV13 default: return nil, errors.Errorf("Invalid MSP version [%v]", version) } @@ -369,6 +381,58 @@ func (msp *bccspmsp) deserializeIdentityInternal(serializedIdentity []byte) (Ide // SatisfiesPrincipal returns null if the identity matches the principal or an error otherwise func (msp *bccspmsp) SatisfiesPrincipal(id Identity, principal *m.MSPPrincipal) error { + principals, err := collectPrincipals(principal, msp.GetVersion()) + if err != nil { + return err + } + for _, principal := range principals { + err = msp.internalSatisfiesPrincipalInternalFunc(id, principal) + if err != nil { + return err + } + } + return nil +} + +// collectPrincipals collects principals from combined principals into a single MSPPrincipal slice. +func collectPrincipals(principal *m.MSPPrincipal, mspVersion MSPVersion) ([]*m.MSPPrincipal, error) { + switch principal.PrincipalClassification { + case m.MSPPrincipal_COMBINED: + // Combined principals are not supported in MSP v1.0 or v1.1 + if mspVersion <= MSPv1_1 { + return nil, errors.Errorf("invalid principal type %d", int32(principal.PrincipalClassification)) + } + // Principal is a combination of multiple principals. + principals := &m.CombinedPrincipal{} + err := proto.Unmarshal(principal.Principal, principals) + if err != nil { + return nil, errors.Wrap(err, "could not unmarshal CombinedPrincipal from principal") + } + // Return an error if there are no principals in the combined principal. + if len(principals.Principals) == 0 { + return nil, errors.New("No principals in CombinedPrincipal") + } + // Recursively call msp.collectPrincipals for all combined principals. + // There is no limit for the levels of nesting for the combined principals. + var principalsSlice []*m.MSPPrincipal + for _, cp := range principals.Principals { + internalSlice, err := collectPrincipals(cp, mspVersion) + if err != nil { + return nil, err + } + principalsSlice = append(principalsSlice, internalSlice...) + } + // All the combined principals have been collected into principalsSlice + return principalsSlice, nil + default: + return []*m.MSPPrincipal{principal}, nil + } +} + +// satisfiesPrincipalInternalPreV13 takes as arguments the identity and the principal. +// The function returns an error if one occurred. +// The function implements the behavior of an MSP up to and including v1.1. +func (msp *bccspmsp) satisfiesPrincipalInternalPreV13(id Identity, principal *m.MSPPrincipal) error { switch principal.PrincipalClassification { // in this case, we have to check whether the // identity has a role in the msp - member or admin @@ -470,6 +534,35 @@ func (msp *bccspmsp) SatisfiesPrincipal(id Identity, principal *m.MSPPrincipal) } } +// satisfiesPrincipalInternalV13 takes as arguments the identity and the principal. +// The function returns an error if one occurred. +// The function implements the additional behavior expected of an MSP starting from v1.3. +// For pre-v1.3 functionality, the function calls the satisfiesPrincipalInternalPreV13. +func (msp *bccspmsp) satisfiesPrincipalInternalV13(id Identity, principal *m.MSPPrincipal) error { + switch principal.PrincipalClassification { + case m.MSPPrincipal_COMBINED: + return errors.New("SatisfiesPrincipalInternal shall not be called with a CombinedPrincipal") + case m.MSPPrincipal_ANONYMITY: + anon := &m.MSPIdentityAnonymity{} + err := proto.Unmarshal(principal.Principal, anon) + if err != nil { + return errors.Wrap(err, "could not unmarshal MSPIdentityAnonymity from principal") + } + switch anon.AnonymityType { + case m.MSPIdentityAnonymity_ANONYMOUS: + return errors.New("Principal is anonymous, but X.509 MSP does not support anonymous identities") + case m.MSPIdentityAnonymity_NOMINAL: + return nil + default: + return errors.Errorf("Unknown principal anonymity type: %d", anon.AnonymityType) + } + + default: + // Use the pre-v1.3 function to check other principal types + return msp.satisfiesPrincipalInternalPreV13(id, principal) + } +} + // getCertificationChain returns the certification chain of the passed identity within this msp func (msp *bccspmsp) getCertificationChain(id Identity) ([]*x509.Certificate, error) { mspLogger.Debugf("MSP %s getting certification chain", msp.name) diff --git a/internal/github.com/hyperledger/fabric/msp/mspimplsetup.go b/internal/github.com/hyperledger/fabric/msp/mspimplsetup.go index f1b8e77691..30ae6adc82 100644 --- a/internal/github.com/hyperledger/fabric/msp/mspimplsetup.go +++ b/internal/github.com/hyperledger/fabric/msp/mspimplsetup.go @@ -232,14 +232,14 @@ func (msp *bccspmsp) finalizeSetupCAs(config *m.FabricMSPConfig) error { } func (msp *bccspmsp) setupNodeOUs(config *m.FabricMSPConfig) error { - if config.FabricNodeOUs != nil { + if config.FabricNodeOus != nil { - msp.ouEnforcement = config.FabricNodeOUs.Enable + msp.ouEnforcement = config.FabricNodeOus.Enable // ClientOU - msp.clientOU = &OUIdentifier{OrganizationalUnitIdentifier: config.FabricNodeOUs.ClientOUIdentifier.OrganizationalUnitIdentifier} - if len(config.FabricNodeOUs.ClientOUIdentifier.Certificate) != 0 { - certifiersIdentifier, err := msp.getCertifiersIdentifier(config.FabricNodeOUs.ClientOUIdentifier.Certificate) + msp.clientOU = &OUIdentifier{OrganizationalUnitIdentifier: config.FabricNodeOus.ClientOuIdentifier.OrganizationalUnitIdentifier} + if len(config.FabricNodeOus.ClientOuIdentifier.Certificate) != 0 { + certifiersIdentifier, err := msp.getCertifiersIdentifier(config.FabricNodeOus.ClientOuIdentifier.Certificate) if err != nil { return err } @@ -247,9 +247,9 @@ func (msp *bccspmsp) setupNodeOUs(config *m.FabricMSPConfig) error { } // PeerOU - msp.peerOU = &OUIdentifier{OrganizationalUnitIdentifier: config.FabricNodeOUs.PeerOUIdentifier.OrganizationalUnitIdentifier} - if len(config.FabricNodeOUs.PeerOUIdentifier.Certificate) != 0 { - certifiersIdentifier, err := msp.getCertifiersIdentifier(config.FabricNodeOUs.PeerOUIdentifier.Certificate) + msp.peerOU = &OUIdentifier{OrganizationalUnitIdentifier: config.FabricNodeOus.PeerOuIdentifier.OrganizationalUnitIdentifier} + if len(config.FabricNodeOus.PeerOuIdentifier.Certificate) != 0 { + certifiersIdentifier, err := msp.getCertifiersIdentifier(config.FabricNodeOus.PeerOuIdentifier.Certificate) if err != nil { return err } diff --git a/internal/github.com/hyperledger/fabric/protos/discovery/protocol.pb.go b/internal/github.com/hyperledger/fabric/protos/discovery/protocol.pb.go index 9ea37cfcc9..3aea8dbc3c 100644 --- a/internal/github.com/hyperledger/fabric/protos/discovery/protocol.pb.go +++ b/internal/github.com/hyperledger/fabric/protos/discovery/protocol.pb.go @@ -187,9 +187,7 @@ func (m *Query) String() string { return proto.CompactTextString(m) } func (*Query) ProtoMessage() {} func (*Query) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } -type isQuery_Query interface { - isQuery_Query() -} +type isQuery_Query interface{ isQuery_Query() } type Query_ConfigQuery struct { ConfigQuery *ConfigQuery `protobuf:"bytes,2,opt,name=config_query,json=configQuery,oneof"` @@ -381,9 +379,7 @@ func (m *QueryResult) String() string { return proto.CompactTextStrin func (*QueryResult) ProtoMessage() {} func (*QueryResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } -type isQueryResult_Result interface { - isQueryResult_Result() -} +type isQueryResult_Result interface{ isQueryResult_Result() } type QueryResult_Error struct { Error *Error `protobuf:"bytes,1,opt,name=error,oneof"` diff --git a/internal/github.com/hyperledger/fabric/protos/gossip/message.pb.go b/internal/github.com/hyperledger/fabric/protos/gossip/message.pb.go index c4c7743582..fa612770f0 100644 --- a/internal/github.com/hyperledger/fabric/protos/gossip/message.pb.go +++ b/internal/github.com/hyperledger/fabric/protos/gossip/message.pb.go @@ -206,9 +206,7 @@ func (m *Secret) String() string { return proto.CompactTextString(m) func (*Secret) ProtoMessage() {} func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } -type isSecret_Content interface { - isSecret_Content() -} +type isSecret_Content interface{ isSecret_Content() } type Secret_InternalEndpoint struct { InternalEndpoint string `protobuf:"bytes,1,opt,name=internalEndpoint,oneof"` @@ -323,9 +321,7 @@ func (m *GossipMessage) String() string { return proto.CompactTextStr func (*GossipMessage) ProtoMessage() {} func (*GossipMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } -type isGossipMessage_Content interface { - isGossipMessage_Content() -} +type isGossipMessage_Content interface{ isGossipMessage_Content() } type GossipMessage_AliveMsg struct { AliveMsg *AliveMessage `protobuf:"bytes,5,opt,name=alive_msg,json=aliveMsg,oneof"` diff --git a/internal/github.com/hyperledger/fabric/protos/orderer/ab.pb.go b/internal/github.com/hyperledger/fabric/protos/orderer/ab.pb.go index 667ff3f7e9..7a7f9ff3c9 100644 --- a/internal/github.com/hyperledger/fabric/protos/orderer/ab.pb.go +++ b/internal/github.com/hyperledger/fabric/protos/orderer/ab.pb.go @@ -147,9 +147,7 @@ func (m *SeekPosition) String() string { return proto.CompactTextStri func (*SeekPosition) ProtoMessage() {} func (*SeekPosition) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } -type isSeekPosition_Type interface { - isSeekPosition_Type() -} +type isSeekPosition_Type interface{ isSeekPosition_Type() } type SeekPosition_Newest struct { Newest *SeekNewest `protobuf:"bytes,1,opt,name=newest,oneof"` @@ -338,9 +336,7 @@ func (m *DeliverResponse) String() string { return proto.CompactTextS func (*DeliverResponse) ProtoMessage() {} func (*DeliverResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } -type isDeliverResponse_Type interface { - isDeliverResponse_Type() -} +type isDeliverResponse_Type interface{ isDeliverResponse_Type() } type DeliverResponse_Status struct { Status common.Status `protobuf:"varint,1,opt,name=status,enum=common.Status,oneof"` diff --git a/pkg/client/common/discovery/dynamicdiscovery/mocks/mockdiscoveryclient.go b/pkg/client/common/discovery/dynamicdiscovery/mocks/mockdiscoveryclient.go index e1f4067179..424ceb8768 100644 --- a/pkg/client/common/discovery/dynamicdiscovery/mocks/mockdiscoveryclient.go +++ b/pkg/client/common/discovery/dynamicdiscovery/mocks/mockdiscoveryclient.go @@ -115,7 +115,7 @@ func (cr *channelResponse) Peers() ([]*discclient.Peer, error) { } // Endorsers returns the response for an endorser query -func (cr *channelResponse) Endorsers(cc string, ps discclient.PrioritySelector, ef discclient.ExclusionFilter) (discclient.Endorsers, error) { +func (cr *channelResponse) Endorsers(invocationChain discclient.InvocationChain, ps discclient.PrioritySelector, ef discclient.ExclusionFilter) (discclient.Endorsers, error) { panic("not implemented") } diff --git a/scripts/third_party_pins/fabric-ca/apply_fabric_ca_client_utils.sh b/scripts/third_party_pins/fabric-ca/apply_fabric_ca_client_utils.sh index 53c9ec56d1..62a6785087 100755 --- a/scripts/third_party_pins/fabric-ca/apply_fabric_ca_client_utils.sh +++ b/scripts/third_party_pins/fabric-ca/apply_fabric_ca_client_utils.sh @@ -94,7 +94,7 @@ FILTERS_ENABLED="fn" FILTER_FILENAME="lib/client.go" FILTER_FN="Enroll,GenCSR,SendReq,Init,newPost,newEnrollmentResponse,newCertificateRequest,newPut,newGet,newDelete,StreamResponse" FILTER_FN+=",getURL,NormalizeURL,initHTTPClient,net2LocalServerInfo,NewIdentity,newCfsslBasicKeyRequest" -FILTER_FN+=",handleIdemixEnroll,checkX509Enrollment,handleX509Enroll,GetCSP,NewX509Identity" +FILTER_FN+=",handleIdemixEnroll,checkX509Enrollment,handleX509Enroll,GetCSP,NewX509Identity,net2LocalCAInfo" gofilter sed -i'' -e 's/util.GetServerPort()/\"\"/g' "${TMP_PROJECT_PATH}/${FILTER_FILENAME}" sed -i'' -e '/log "github.com\// a\ diff --git a/scripts/third_party_pins/fabric/apply_fabric_client_utils.sh b/scripts/third_party_pins/fabric/apply_fabric_client_utils.sh index 4986c346b8..f9ab04e16e 100755 --- a/scripts/third_party_pins/fabric/apply_fabric_client_utils.sh +++ b/scripts/third_party_pins/fabric/apply_fabric_client_utils.sh @@ -254,7 +254,7 @@ FILTER_FN+=",getValidationChain,GetSigningIdentity" FILTER_FN+=",GetTLSIntermediateCerts,GetTLSRootCerts,GetType,Setup" FILTER_FN+=",getCertFromPem,getIdentityFromConf,getSigningIdentityFromConf" FILTER_FN+=",newBccspMsp,IsWellFormed,GetVersion" -FILTER_FN+=",hasOURole,hasOURoleInternal" +FILTER_FN+=",hasOURole,hasOURoleInternal,collectPrincipals,satisfiesPrincipalInternalV13,satisfiesPrincipalInternalPreV13" gofilter # TODO - adapt to msp/factory.go rather than changing newBccspMsp sed -i'' -e 's/newBccspMsp/NewBccspMsp/g' "${TMP_PROJECT_PATH}/${FILTER_FILENAME}" diff --git a/third_party/github.com/hyperledger/fabric/protos/common/collection.pb.go b/third_party/github.com/hyperledger/fabric/protos/common/collection.pb.go index ff5b276ecb..1abd987290 100644 --- a/third_party/github.com/hyperledger/fabric/protos/common/collection.pb.go +++ b/third_party/github.com/hyperledger/fabric/protos/common/collection.pb.go @@ -107,9 +107,7 @@ func (m *CollectionConfig) String() string { return proto.CompactText func (*CollectionConfig) ProtoMessage() {} func (*CollectionConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } -type isCollectionConfig_Payload interface { - isCollectionConfig_Payload() -} +type isCollectionConfig_Payload interface{ isCollectionConfig_Payload() } type CollectionConfig_StaticCollectionConfig struct { StaticCollectionConfig *StaticCollectionConfig `protobuf:"bytes,1,opt,name=static_collection_config,json=staticCollectionConfig,oneof"` @@ -264,9 +262,7 @@ func (m *CollectionPolicyConfig) String() string { return proto.Compa func (*CollectionPolicyConfig) ProtoMessage() {} func (*CollectionPolicyConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } -type isCollectionPolicyConfig_Payload interface { - isCollectionPolicyConfig_Payload() -} +type isCollectionPolicyConfig_Payload interface{ isCollectionPolicyConfig_Payload() } type CollectionPolicyConfig_SignaturePolicy struct { SignaturePolicy *SignaturePolicyEnvelope `protobuf:"bytes,1,opt,name=signature_policy,json=signaturePolicy,oneof"` diff --git a/third_party/github.com/hyperledger/fabric/protos/common/policies.pb.go b/third_party/github.com/hyperledger/fabric/protos/common/policies.pb.go index e0d027d0af..9a84ecffc1 100644 --- a/third_party/github.com/hyperledger/fabric/protos/common/policies.pb.go +++ b/third_party/github.com/hyperledger/fabric/protos/common/policies.pb.go @@ -145,9 +145,7 @@ func (m *SignaturePolicy) String() string { return proto.CompactTextS func (*SignaturePolicy) ProtoMessage() {} func (*SignaturePolicy) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{2} } -type isSignaturePolicy_Type interface { - isSignaturePolicy_Type() -} +type isSignaturePolicy_Type interface{ isSignaturePolicy_Type() } type SignaturePolicy_SignedBy struct { SignedBy int32 `protobuf:"varint,1,opt,name=signed_by,json=signedBy,oneof"` diff --git a/third_party/github.com/hyperledger/fabric/protos/ledger/rwset/kvrwset/kv_rwset.pb.go b/third_party/github.com/hyperledger/fabric/protos/ledger/rwset/kvrwset/kv_rwset.pb.go index 69e3d98288..e4ee45f9dd 100644 --- a/third_party/github.com/hyperledger/fabric/protos/ledger/rwset/kvrwset/kv_rwset.pb.go +++ b/third_party/github.com/hyperledger/fabric/protos/ledger/rwset/kvrwset/kv_rwset.pb.go @@ -361,9 +361,7 @@ func (m *RangeQueryInfo) String() string { return proto.CompactTextSt func (*RangeQueryInfo) ProtoMessage() {} func (*RangeQueryInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } -type isRangeQueryInfo_ReadsInfo interface { - isRangeQueryInfo_ReadsInfo() -} +type isRangeQueryInfo_ReadsInfo interface{ isRangeQueryInfo_ReadsInfo() } type RangeQueryInfo_RawReads struct { RawReads *QueryReads `protobuf:"bytes,4,opt,name=raw_reads,json=rawReads,oneof"` diff --git a/third_party/github.com/hyperledger/fabric/protos/msp/identities.pb.go b/third_party/github.com/hyperledger/fabric/protos/msp/identities.pb.go index fa7100e301..7db6e4f521 100644 --- a/third_party/github.com/hyperledger/fabric/protos/msp/identities.pb.go +++ b/third_party/github.com/hyperledger/fabric/protos/msp/identities.pb.go @@ -82,20 +82,20 @@ func (m *SerializedIdentity) GetIdBytes() []byte { // The IdemixMSP will first serialize an idemix identity to bytes using // this proto, and then uses these bytes as id_bytes in SerializedIdentity type SerializedIdemixIdentity struct { - // NymX is the X-component of the pseudonym elliptic curve point. + // nym_x is the X-component of the pseudonym elliptic curve point. // It is a []byte representation of an amcl.BIG // The pseudonym can be seen as a public key of the identity, it is used to verify signatures. - NymX []byte `protobuf:"bytes,1,opt,name=NymX,proto3" json:"NymX,omitempty"` - // NymY is the Y-component of the pseudonym elliptic curve point. + NymX []byte `protobuf:"bytes,1,opt,name=nym_x,json=nymX,proto3" json:"nym_x,omitempty"` + // nym_y is the Y-component of the pseudonym elliptic curve point. // It is a []byte representation of an amcl.BIG // The pseudonym can be seen as a public key of the identity, it is used to verify signatures. - NymY []byte `protobuf:"bytes,2,opt,name=NymY,proto3" json:"NymY,omitempty"` - // OU contains the organizational unit of the idemix identity - OU []byte `protobuf:"bytes,3,opt,name=OU,proto3" json:"OU,omitempty"` - // Role contains the role of this identity (e.g., ADMIN or MEMBER) - Role []byte `protobuf:"bytes,4,opt,name=Role,proto3" json:"Role,omitempty"` - // Proof contains the cryptographic evidence that this identity is valid - Proof []byte `protobuf:"bytes,5,opt,name=Proof,proto3" json:"Proof,omitempty"` + NymY []byte `protobuf:"bytes,2,opt,name=nym_y,json=nymY,proto3" json:"nym_y,omitempty"` + // ou contains the organizational unit of the idemix identity + Ou []byte `protobuf:"bytes,3,opt,name=ou,proto3" json:"ou,omitempty"` + // role contains the role of this identity (e.g., ADMIN or MEMBER) + Role []byte `protobuf:"bytes,4,opt,name=role,proto3" json:"role,omitempty"` + // proof contains the cryptographic evidence that this identity is valid + Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"` } func (m *SerializedIdemixIdentity) Reset() { *m = SerializedIdemixIdentity{} } @@ -117,9 +117,9 @@ func (m *SerializedIdemixIdentity) GetNymY() []byte { return nil } -func (m *SerializedIdemixIdentity) GetOU() []byte { +func (m *SerializedIdemixIdentity) GetOu() []byte { if m != nil { - return m.OU + return m.Ou } return nil } @@ -146,20 +146,20 @@ func init() { func init() { proto.RegisterFile("msp/identities.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 236 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x8f, 0x4f, 0x4b, 0x03, 0x31, - 0x10, 0xc5, 0xd9, 0x6d, 0xeb, 0x9f, 0x50, 0x3c, 0x84, 0x1e, 0xe2, 0xad, 0xf6, 0xb4, 0xa7, 0xe4, - 0xe0, 0x37, 0x28, 0x78, 0xf0, 0xa0, 0x95, 0x95, 0x82, 0x7a, 0x91, 0x6e, 0x33, 0xdd, 0x0e, 0xec, - 0x98, 0x90, 0x89, 0xe0, 0x8a, 0x1f, 0x5e, 0x36, 0x59, 0xc4, 0xde, 0xde, 0x7b, 0xfc, 0xf8, 0x31, - 0x23, 0x16, 0xc4, 0xde, 0xa0, 0x85, 0x8f, 0x88, 0x11, 0x81, 0xb5, 0x0f, 0x2e, 0x3a, 0x39, 0x21, - 0xf6, 0xab, 0x3b, 0x21, 0x9f, 0x21, 0xe0, 0xae, 0xc3, 0x6f, 0xb0, 0xf7, 0x19, 0xe9, 0xe5, 0x42, - 0xcc, 0x88, 0x3d, 0x5a, 0x55, 0x2c, 0x8b, 0xea, 0xb2, 0xce, 0x45, 0x5e, 0x8b, 0x0b, 0xb4, 0xef, - 0x4d, 0x1f, 0x81, 0x55, 0xb9, 0x2c, 0xaa, 0x79, 0x7d, 0x8e, 0x76, 0x3d, 0xd4, 0xd5, 0x8f, 0x50, - 0x27, 0x1a, 0xc2, 0xaf, 0x3f, 0x99, 0x14, 0xd3, 0xc7, 0x9e, 0x5e, 0x92, 0x6b, 0x5e, 0xa7, 0x3c, - 0x6e, 0xaf, 0xa3, 0x26, 0x65, 0x79, 0x25, 0xca, 0xcd, 0x56, 0x4d, 0xd2, 0x52, 0x6e, 0xb6, 0x03, - 0x53, 0xbb, 0x0e, 0xd4, 0x34, 0x33, 0x43, 0x1e, 0x0e, 0x7b, 0x0a, 0xce, 0x1d, 0xd4, 0x2c, 0x8d, - 0xb9, 0xac, 0x1f, 0xc4, 0x8d, 0x0b, 0xad, 0x3e, 0xf6, 0x1e, 0x42, 0x07, 0xb6, 0x85, 0xa0, 0x0f, - 0xbb, 0x26, 0xe0, 0x3e, 0x7f, 0xca, 0x9a, 0xd8, 0xbf, 0x55, 0x2d, 0xc6, 0xe3, 0x67, 0xa3, 0xf7, - 0x8e, 0xcc, 0x3f, 0xd2, 0x64, 0xd2, 0x64, 0xd2, 0x10, 0xfb, 0xe6, 0x2c, 0xe5, 0xdb, 0xdf, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x97, 0xeb, 0x66, 0x12, 0x37, 0x01, 0x00, 0x00, + // 238 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x8f, 0x3f, 0x4f, 0xc3, 0x30, + 0x10, 0x47, 0x95, 0x34, 0xe1, 0x8f, 0x55, 0x31, 0x98, 0x0e, 0x66, 0x2b, 0x9d, 0x32, 0xc5, 0x03, + 0xdf, 0xa0, 0x12, 0x03, 0x03, 0x4b, 0x58, 0x80, 0xa5, 0x6a, 0xea, 0x6b, 0x7a, 0x52, 0x2e, 0x67, + 0xd9, 0x8e, 0x54, 0x33, 0xf0, 0xd9, 0x51, 0x62, 0x40, 0xb0, 0xdd, 0xef, 0xe9, 0xe9, 0xc9, 0x16, + 0x2b, 0xf2, 0x56, 0xa3, 0x81, 0x21, 0x60, 0x40, 0xf0, 0xb5, 0x75, 0x1c, 0x58, 0x2e, 0xc8, 0xdb, + 0xcd, 0xa3, 0x90, 0x2f, 0xe0, 0x70, 0xdf, 0xe3, 0x07, 0x98, 0xa7, 0xa4, 0x44, 0xb9, 0x12, 0x25, + 0x79, 0x8b, 0x46, 0x65, 0xeb, 0xac, 0xba, 0x6e, 0xd2, 0x90, 0x77, 0xe2, 0x0a, 0xcd, 0xae, 0x8d, + 0x01, 0xbc, 0xca, 0xd7, 0x59, 0xb5, 0x6c, 0x2e, 0xd1, 0x6c, 0xa7, 0xb9, 0xf9, 0x14, 0xea, 0x5f, + 0x86, 0xf0, 0xfc, 0x1b, 0xbb, 0x15, 0xe5, 0x10, 0x69, 0x77, 0x9e, 0x63, 0xcb, 0xa6, 0x18, 0x22, + 0xbd, 0xfe, 0xc0, 0xf8, 0x1d, 0x9a, 0xe0, 0x9b, 0xbc, 0x11, 0x39, 0x8f, 0x6a, 0x31, 0x93, 0x9c, + 0x47, 0x29, 0x45, 0xe1, 0xb8, 0x07, 0x55, 0x24, 0x67, 0xba, 0xa7, 0xa7, 0x59, 0xc7, 0x7c, 0x54, + 0xe5, 0x0c, 0xd3, 0xd8, 0x3e, 0x8b, 0x7b, 0x76, 0x5d, 0x7d, 0x8a, 0x16, 0x5c, 0x0f, 0xa6, 0x03, + 0x57, 0x1f, 0xf7, 0xad, 0xc3, 0x43, 0xfa, 0xab, 0xaf, 0xc9, 0xdb, 0xf7, 0xaa, 0xc3, 0x70, 0x1a, + 0xdb, 0xfa, 0xc0, 0xa4, 0xff, 0x98, 0x3a, 0x99, 0x3a, 0x99, 0x9a, 0xbc, 0x6d, 0x2f, 0xe6, 0xfb, + 0xe1, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x13, 0xdc, 0xc8, 0x62, 0x39, 0x01, 0x00, 0x00, } diff --git a/third_party/github.com/hyperledger/fabric/protos/msp/msp_config.pb.go b/third_party/github.com/hyperledger/fabric/protos/msp/msp_config.pb.go index 97c02fd2b5..30571bc1b9 100644 --- a/third_party/github.com/hyperledger/fabric/protos/msp/msp_config.pb.go +++ b/third_party/github.com/hyperledger/fabric/protos/msp/msp_config.pb.go @@ -95,9 +95,9 @@ type FabricMSPConfig struct { // List of TLS intermediate certificates trusted by this MSP; // They are returned by GetTLSIntermediateCerts. TlsIntermediateCerts [][]byte `protobuf:"bytes,10,rep,name=tls_intermediate_certs,json=tlsIntermediateCerts,proto3" json:"tls_intermediate_certs,omitempty"` - // FabricNodeOUs contains the configuration to distinguish clients from peers from orderers + // fabric_node_ous contains the configuration to distinguish clients from peers from orderers // based on the OUs. - FabricNodeOUs *FabricNodeOUs `protobuf:"bytes,11,opt,name=FabricNodeOUs" json:"FabricNodeOUs,omitempty"` + FabricNodeOus *FabricNodeOUs `protobuf:"bytes,11,opt,name=fabric_node_ous,json=fabricNodeOus" json:"fabric_node_ous,omitempty"` } func (m *FabricMSPConfig) Reset() { *m = FabricMSPConfig{} } @@ -175,9 +175,9 @@ func (m *FabricMSPConfig) GetTlsIntermediateCerts() [][]byte { return nil } -func (m *FabricMSPConfig) GetFabricNodeOUs() *FabricNodeOUs { +func (m *FabricMSPConfig) GetFabricNodeOus() *FabricNodeOUs { if m != nil { - return m.FabricNodeOUs + return m.FabricNodeOus } return nil } @@ -220,14 +220,14 @@ func (m *FabricCryptoConfig) GetIdentityIdentifierHashFunction() string { type IdemixMSPConfig struct { // Name holds the identifier of the MSP Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - // IPk represents the (serialized) issuer public key - IPk []byte `protobuf:"bytes,2,opt,name=IPk,proto3" json:"IPk,omitempty"` + // ipk represents the (serialized) issuer public key + Ipk []byte `protobuf:"bytes,2,opt,name=ipk,proto3" json:"ipk,omitempty"` // signer may contain crypto material to configure a default signer Signer *IdemixMSPSignerConfig `protobuf:"bytes,3,opt,name=signer" json:"signer,omitempty"` - // RevocationPk is the public key used for revocation of credentials - RevocationPk []byte `protobuf:"bytes,4,opt,name=RevocationPk,proto3" json:"RevocationPk,omitempty"` - // Epoch represents the current epoch (time interval) used for revocation - Epoch int64 `protobuf:"varint,5,opt,name=Epoch" json:"Epoch,omitempty"` + // revocation_pk is the public key used for revocation of credentials + RevocationPk []byte `protobuf:"bytes,4,opt,name=revocation_pk,json=revocationPk,proto3" json:"revocation_pk,omitempty"` + // epoch represents the current epoch (time interval) used for revocation + Epoch int64 `protobuf:"varint,5,opt,name=epoch" json:"epoch,omitempty"` } func (m *IdemixMSPConfig) Reset() { *m = IdemixMSPConfig{} } @@ -242,9 +242,9 @@ func (m *IdemixMSPConfig) GetName() string { return "" } -func (m *IdemixMSPConfig) GetIPk() []byte { +func (m *IdemixMSPConfig) GetIpk() []byte { if m != nil { - return m.IPk + return m.Ipk } return nil } @@ -272,10 +272,10 @@ func (m *IdemixMSPConfig) GetEpoch() int64 { // IdemixMSPSIgnerConfig contains the crypto material to set up an idemix signing identity type IdemixMSPSignerConfig struct { - // Cred represents the serialized idemix credential of the default signer - Cred []byte `protobuf:"bytes,1,opt,name=Cred,proto3" json:"Cred,omitempty"` - // Sk is the secret key of the default signer, corresponding to credential Cred - Sk []byte `protobuf:"bytes,2,opt,name=Sk,proto3" json:"Sk,omitempty"` + // cred represents the serialized idemix credential of the default signer + Cred []byte `protobuf:"bytes,1,opt,name=cred,proto3" json:"cred,omitempty"` + // sk is the secret key of the default signer, corresponding to credential Cred + Sk []byte `protobuf:"bytes,2,opt,name=sk,proto3" json:"sk,omitempty"` // organizational_unit_identifier defines the organizational unit the default signer is in OrganizationalUnitIdentifier string `protobuf:"bytes,3,opt,name=organizational_unit_identifier,json=organizationalUnitIdentifier" json:"organizational_unit_identifier,omitempty"` // is_admin defines whether the default signer is admin or not @@ -438,11 +438,11 @@ func (m *FabricOUIdentifier) GetOrganizationalUnitIdentifier() string { // that does not contain any of the specified OU will be considered invalid. type FabricNodeOUs struct { // If true then an msp identity that does not contain any of the specified OU will be considered invalid. - Enable bool `protobuf:"varint,1,opt,name=Enable" json:"Enable,omitempty"` + Enable bool `protobuf:"varint,1,opt,name=enable" json:"enable,omitempty"` // OU Identifier of the clients - ClientOUIdentifier *FabricOUIdentifier `protobuf:"bytes,2,opt,name=clientOUIdentifier" json:"clientOUIdentifier,omitempty"` + ClientOuIdentifier *FabricOUIdentifier `protobuf:"bytes,2,opt,name=client_ou_identifier,json=clientOuIdentifier" json:"client_ou_identifier,omitempty"` // OU Identifier of the peers - PeerOUIdentifier *FabricOUIdentifier `protobuf:"bytes,3,opt,name=peerOUIdentifier" json:"peerOUIdentifier,omitempty"` + PeerOuIdentifier *FabricOUIdentifier `protobuf:"bytes,3,opt,name=peer_ou_identifier,json=peerOuIdentifier" json:"peer_ou_identifier,omitempty"` } func (m *FabricNodeOUs) Reset() { *m = FabricNodeOUs{} } @@ -457,16 +457,16 @@ func (m *FabricNodeOUs) GetEnable() bool { return false } -func (m *FabricNodeOUs) GetClientOUIdentifier() *FabricOUIdentifier { +func (m *FabricNodeOUs) GetClientOuIdentifier() *FabricOUIdentifier { if m != nil { - return m.ClientOUIdentifier + return m.ClientOuIdentifier } return nil } -func (m *FabricNodeOUs) GetPeerOUIdentifier() *FabricOUIdentifier { +func (m *FabricNodeOUs) GetPeerOuIdentifier() *FabricOUIdentifier { if m != nil { - return m.PeerOUIdentifier + return m.PeerOuIdentifier } return nil } @@ -486,58 +486,59 @@ func init() { func init() { proto.RegisterFile("msp/msp_config.proto", fileDescriptor1) } var fileDescriptor1 = []byte{ - // 839 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x41, 0x6f, 0x23, 0x35, - 0x14, 0x56, 0x92, 0x36, 0xdb, 0xbc, 0x4c, 0xd2, 0xe2, 0xed, 0x96, 0x01, 0xb1, 0xbb, 0xe9, 0x00, - 0x22, 0x17, 0x52, 0xa9, 0x8b, 0x04, 0x07, 0x2e, 0x6c, 0xd8, 0x85, 0x01, 0xca, 0x56, 0x8e, 0x7a, - 0xe1, 0x32, 0x72, 0x26, 0x4e, 0x62, 0x65, 0xc6, 0x1e, 0xd9, 0xce, 0x8a, 0x20, 0xfe, 0x02, 0x27, - 0x7e, 0x03, 0x57, 0x6e, 0xfc, 0x3f, 0xe4, 0x67, 0x37, 0x99, 0xd0, 0x52, 0xb8, 0xd9, 0xef, 0x7d, - 0xef, 0xcb, 0x97, 0xef, 0xbd, 0xe7, 0x81, 0xd3, 0xd2, 0x54, 0x17, 0xa5, 0xa9, 0xb2, 0x5c, 0xc9, - 0xb9, 0x58, 0x8c, 0x2a, 0xad, 0xac, 0x22, 0xad, 0xd2, 0x54, 0xc9, 0xe7, 0xd0, 0xb9, 0x9a, 0x5c, - 0x8f, 0x31, 0x4e, 0x08, 0x1c, 0xd8, 0x4d, 0xc5, 0xe3, 0xc6, 0xa0, 0x31, 0x3c, 0xa4, 0x78, 0x26, - 0x67, 0xd0, 0xf6, 0x55, 0x71, 0x73, 0xd0, 0x18, 0x46, 0x34, 0xdc, 0x92, 0x3f, 0x0f, 0xe0, 0xf8, - 0x35, 0x9b, 0x6a, 0x91, 0xef, 0xd5, 0x4b, 0x56, 0xfa, 0xfa, 0x0e, 0xc5, 0x33, 0x79, 0x0a, 0xa0, - 0x95, 0xb2, 0x59, 0xce, 0xb5, 0x35, 0x71, 0x73, 0xd0, 0x1a, 0x46, 0xb4, 0xe3, 0x22, 0x63, 0x17, - 0x20, 0x9f, 0x02, 0x11, 0xd2, 0x72, 0x5d, 0xf2, 0x99, 0x60, 0x96, 0x07, 0x58, 0x0b, 0x61, 0xef, - 0xd4, 0x33, 0x1e, 0x7e, 0x06, 0x6d, 0x36, 0x2b, 0x85, 0x34, 0xf1, 0x01, 0x42, 0xc2, 0x8d, 0x7c, - 0x02, 0xc7, 0x9a, 0xbf, 0x55, 0x39, 0xb3, 0x42, 0xc9, 0xac, 0x10, 0xc6, 0xc6, 0x87, 0x08, 0xe8, - 0xef, 0xc2, 0x3f, 0x08, 0x63, 0xc9, 0x18, 0x4e, 0x8c, 0x58, 0x48, 0x21, 0x17, 0x99, 0x98, 0x71, - 0x69, 0x85, 0xdd, 0xc4, 0xed, 0x41, 0x63, 0xd8, 0xbd, 0x8c, 0x47, 0xa5, 0xa9, 0x46, 0x13, 0x9f, - 0x4c, 0x43, 0x2e, 0x95, 0x73, 0x45, 0x8f, 0xcd, 0x7e, 0x90, 0x64, 0xf0, 0x5c, 0xe9, 0x05, 0x93, - 0xe2, 0x17, 0x24, 0x66, 0x45, 0xb6, 0x96, 0xc2, 0x06, 0xc2, 0xb9, 0xe0, 0xda, 0xc4, 0x8f, 0x06, - 0xad, 0x61, 0xf7, 0xf2, 0x5d, 0xe4, 0xf4, 0x36, 0xbd, 0xb9, 0x49, 0xb7, 0x79, 0xfa, 0x74, 0xbf, - 0xfe, 0x46, 0x0a, 0xbb, 0xcb, 0x1a, 0xf2, 0x25, 0xf4, 0x72, 0xbd, 0xa9, 0xac, 0x0a, 0x1d, 0x8b, - 0x8f, 0x50, 0x62, 0x9d, 0x6e, 0x8c, 0x79, 0x6f, 0x3c, 0x8d, 0xf2, 0xda, 0x8d, 0x7c, 0x04, 0x7d, - 0x5b, 0x98, 0xac, 0x66, 0x7b, 0x07, 0xbd, 0x88, 0x6c, 0x61, 0xe8, 0xd6, 0xf9, 0xcf, 0xe0, 0xcc, - 0xa1, 0xee, 0x71, 0x1f, 0x10, 0x7d, 0x6a, 0x0b, 0x93, 0xde, 0x69, 0xc0, 0x17, 0xd0, 0xf3, 0xbf, - 0xff, 0xa3, 0x9a, 0xf1, 0x37, 0x37, 0x26, 0xee, 0xa2, 0x32, 0x52, 0x53, 0x16, 0x32, 0x74, 0x1f, - 0x98, 0xfc, 0xde, 0x00, 0x72, 0x57, 0x3a, 0xb9, 0x84, 0x27, 0xce, 0x5e, 0x66, 0xd7, 0x9a, 0x67, - 0x4b, 0x66, 0x96, 0xd9, 0x9c, 0x95, 0xa2, 0xd8, 0x84, 0x21, 0x7a, 0xbc, 0x4d, 0x7e, 0xcb, 0xcc, - 0xf2, 0x35, 0xa6, 0x48, 0x0a, 0xe7, 0xb7, 0xcd, 0xab, 0x99, 0x1e, 0xaa, 0xd7, 0x32, 0x77, 0xa6, - 0xe2, 0xb8, 0x76, 0xe8, 0xb3, 0x5b, 0xe0, 0xce, 0x5e, 0x24, 0x0a, 0xa8, 0xe4, 0x8f, 0x06, 0x1c, - 0xa7, 0x33, 0x5e, 0x8a, 0x9f, 0x1f, 0x1e, 0xe3, 0x13, 0x68, 0xa5, 0xd7, 0xab, 0xb0, 0x03, 0xee, - 0x48, 0x2e, 0xa1, 0xed, 0xb4, 0x71, 0x1d, 0xb7, 0xd0, 0x82, 0xf7, 0xd1, 0x82, 0x2d, 0xd7, 0x04, - 0x73, 0xa1, 0x3f, 0x01, 0x49, 0x12, 0x88, 0xe8, 0x76, 0x1e, 0xaf, 0x57, 0xf1, 0x01, 0xd2, 0xed, - 0xc5, 0xc8, 0x29, 0x1c, 0xbe, 0xaa, 0x54, 0xbe, 0x8c, 0x0f, 0x07, 0x8d, 0x61, 0x8b, 0xfa, 0x4b, - 0xf2, 0x5b, 0x13, 0x9e, 0xdc, 0xcb, 0xed, 0xd4, 0x8e, 0x35, 0x9f, 0xa1, 0xda, 0x88, 0xe2, 0x99, - 0xf4, 0xa1, 0x39, 0xb9, 0x15, 0xdb, 0x9c, 0xac, 0xc8, 0xd7, 0xf0, 0xec, 0xe1, 0x81, 0xc5, 0xff, - 0xd0, 0xa1, 0x1f, 0x3c, 0x34, 0x96, 0xe4, 0x3d, 0x38, 0x12, 0x26, 0xc3, 0x8d, 0x43, 0xe5, 0x47, - 0xf4, 0x91, 0x30, 0x5f, 0xb9, 0x2b, 0xf9, 0x10, 0x7a, 0x5c, 0x6a, 0x55, 0x14, 0x25, 0x97, 0x8e, - 0x17, 0xc5, 0x77, 0x68, 0xb4, 0x0b, 0xa6, 0x33, 0xf2, 0x1d, 0x9c, 0xe7, 0x9a, 0x23, 0x1f, 0x2b, - 0xb2, 0xda, 0xbe, 0x0a, 0x39, 0x57, 0xba, 0xc4, 0x33, 0x2e, 0x63, 0x44, 0x9f, 0xef, 0x80, 0x3b, - 0x73, 0xd2, 0x1d, 0x2c, 0x51, 0xf0, 0xf8, 0x9e, 0x55, 0x75, 0x3a, 0xaa, 0xf5, 0xb4, 0x10, 0x79, - 0x16, 0x7a, 0xe3, 0x5d, 0x89, 0x7c, 0xd0, 0xfb, 0x46, 0x5e, 0x40, 0xbf, 0xd2, 0xe2, 0xad, 0x1b, - 0xf8, 0x80, 0x6a, 0x62, 0x07, 0x23, 0xec, 0xe0, 0xf7, 0xdc, 0x6f, 0x7d, 0x2f, 0x60, 0x7c, 0x51, - 0x32, 0x81, 0x47, 0x21, 0x43, 0x3e, 0x86, 0xfe, 0x8a, 0xd7, 0x27, 0x2f, 0x4c, 0x4a, 0x6f, 0xc5, - 0x6b, 0x63, 0x46, 0xce, 0x21, 0x72, 0xb0, 0x92, 0x59, 0xae, 0x05, 0x2b, 0x42, 0x3b, 0xba, 0x2b, - 0xbe, 0xb9, 0x0a, 0xa1, 0xe4, 0xd7, 0xdb, 0x95, 0xa8, 0x3f, 0x0e, 0x64, 0x00, 0x5d, 0xb7, 0x88, - 0x62, 0x2e, 0x72, 0x66, 0x79, 0xf8, 0x0b, 0xf5, 0xd0, 0xff, 0xe8, 0x67, 0xf3, 0xbf, 0xfb, 0x99, - 0xfc, 0xd5, 0xf8, 0xc7, 0x32, 0xbb, 0xe7, 0xf5, 0x95, 0x64, 0xd3, 0xc2, 0xff, 0xe8, 0x11, 0x0d, - 0x37, 0xf2, 0x0d, 0x90, 0xbc, 0x10, 0x5c, 0xda, 0xba, 0xce, 0xe0, 0xda, 0xbf, 0xbe, 0x71, 0xf7, - 0x94, 0xb8, 0xe7, 0xb7, 0xe2, 0x5c, 0xef, 0xd1, 0xb4, 0x1e, 0xa6, 0xb9, 0x53, 0xf0, 0x32, 0x83, - 0x73, 0xa5, 0x17, 0xa3, 0xe5, 0xa6, 0xe2, 0xba, 0xe0, 0xb3, 0x05, 0xd7, 0xa3, 0x39, 0xd6, 0xf9, - 0x0f, 0x9b, 0x71, 0x4c, 0x2f, 0x4f, 0xae, 0x4c, 0xe5, 0x37, 0xe4, 0x9a, 0xe5, 0x2b, 0xb6, 0xe0, - 0x3f, 0x0d, 0x17, 0xc2, 0x2e, 0xd7, 0xd3, 0x51, 0xae, 0xca, 0x8b, 0x5a, 0xed, 0x85, 0xaf, 0xbd, - 0xf0, 0xb5, 0xee, 0x33, 0x39, 0x6d, 0xe3, 0xf9, 0xc5, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xac, - 0x7c, 0x60, 0xf7, 0x38, 0x07, 0x00, 0x00, + // 854 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x5f, 0x6f, 0xe3, 0x44, + 0x10, 0x57, 0x92, 0x36, 0x6d, 0x26, 0x4e, 0x52, 0xf6, 0x7a, 0xc5, 0x20, 0xee, 0x2e, 0x35, 0x20, + 0xf2, 0x42, 0x2a, 0xf5, 0x90, 0x90, 0x10, 0x2f, 0x5c, 0xe1, 0x84, 0x81, 0xd2, 0x6a, 0xab, 0xbe, + 0xf0, 0x62, 0x6d, 0xec, 0x4d, 0xb2, 0xb2, 0xbd, 0x6b, 0xed, 0xae, 0x4f, 0x04, 0xf1, 0x15, 0x78, + 0xe2, 0x3b, 0xf0, 0xcc, 0x2b, 0xdf, 0x0e, 0xed, 0x9f, 0xc6, 0xce, 0x5d, 0x15, 0x78, 0xdb, 0x99, + 0xf9, 0xcd, 0xcf, 0xb3, 0xbf, 0x99, 0x59, 0xc3, 0x69, 0xa9, 0xaa, 0x8b, 0x52, 0x55, 0x49, 0x2a, + 0xf8, 0x92, 0xad, 0xe6, 0x95, 0x14, 0x5a, 0xa0, 0x5e, 0xa9, 0xaa, 0xe8, 0x4b, 0x18, 0x5c, 0xdf, + 0xdd, 0x5e, 0x59, 0x3f, 0x42, 0x70, 0xa0, 0x37, 0x15, 0x0d, 0x3b, 0xd3, 0xce, 0xec, 0x10, 0xdb, + 0x33, 0x3a, 0x83, 0xbe, 0xcb, 0x0a, 0xbb, 0xd3, 0xce, 0x2c, 0xc0, 0xde, 0x8a, 0xfe, 0x3e, 0x80, + 0xc9, 0x6b, 0xb2, 0x90, 0x2c, 0xdd, 0xc9, 0xe7, 0xa4, 0x74, 0xf9, 0x03, 0x6c, 0xcf, 0xe8, 0x19, + 0x80, 0x14, 0x42, 0x27, 0x29, 0x95, 0x5a, 0x85, 0xdd, 0x69, 0x6f, 0x16, 0xe0, 0x81, 0xf1, 0x5c, + 0x19, 0x07, 0xfa, 0x1c, 0x10, 0xe3, 0x9a, 0xca, 0x92, 0x66, 0x8c, 0x68, 0xea, 0x61, 0x3d, 0x0b, + 0x7b, 0xaf, 0x1d, 0x71, 0xf0, 0x33, 0xe8, 0x93, 0xac, 0x64, 0x5c, 0x85, 0x07, 0x16, 0xe2, 0x2d, + 0xf4, 0x19, 0x4c, 0x24, 0x7d, 0x23, 0x52, 0xa2, 0x99, 0xe0, 0x49, 0xc1, 0x94, 0x0e, 0x0f, 0x2d, + 0x60, 0xdc, 0xb8, 0x7f, 0x62, 0x4a, 0xa3, 0x2b, 0x38, 0x51, 0x6c, 0xc5, 0x19, 0x5f, 0x25, 0x2c, + 0xa3, 0x5c, 0x33, 0xbd, 0x09, 0xfb, 0xd3, 0xce, 0x6c, 0x78, 0x19, 0xce, 0x4b, 0x55, 0xcd, 0xef, + 0x5c, 0x30, 0xf6, 0xb1, 0x98, 0x2f, 0x05, 0x9e, 0xa8, 0x5d, 0x27, 0x4a, 0xe0, 0x85, 0x90, 0x2b, + 0xc2, 0xd9, 0x6f, 0x96, 0x98, 0x14, 0x49, 0xcd, 0x99, 0xf6, 0x84, 0x4b, 0x46, 0xa5, 0x0a, 0x8f, + 0xa6, 0xbd, 0xd9, 0xf0, 0xf2, 0x7d, 0xcb, 0xe9, 0x64, 0xba, 0xb9, 0x8f, 0xb7, 0x71, 0xfc, 0x6c, + 0x37, 0xff, 0x9e, 0x33, 0xdd, 0x44, 0x15, 0xfa, 0x1a, 0x46, 0xa9, 0xdc, 0x54, 0x5a, 0xf8, 0x8e, + 0x85, 0xc7, 0xb6, 0xc4, 0x36, 0xdd, 0x95, 0x8d, 0x3b, 0xe1, 0x71, 0x90, 0xb6, 0x2c, 0xf4, 0x09, + 0x8c, 0x75, 0xa1, 0x92, 0x96, 0xec, 0x03, 0xab, 0x45, 0xa0, 0x0b, 0x85, 0xb7, 0xca, 0x7f, 0x01, + 0x67, 0x06, 0xf5, 0x88, 0xfa, 0x60, 0xd1, 0xa7, 0xba, 0x50, 0xf1, 0x3b, 0x0d, 0xf8, 0x0a, 0x26, + 0x4b, 0xfb, 0xfd, 0x84, 0x8b, 0x8c, 0x26, 0xa2, 0x56, 0xe1, 0xd0, 0xd6, 0x86, 0x5a, 0xb5, 0xfd, + 0x2c, 0x32, 0x7a, 0x73, 0xaf, 0xf0, 0x68, 0xd9, 0x98, 0xb5, 0x8a, 0xfe, 0xec, 0x00, 0x7a, 0xb7, + 0x78, 0x74, 0x09, 0x4f, 0x8d, 0xc0, 0x44, 0xd7, 0x92, 0x26, 0x6b, 0xa2, 0xd6, 0xc9, 0x92, 0x94, + 0xac, 0xd8, 0xf8, 0x31, 0x7a, 0xb2, 0x0d, 0x7e, 0x4f, 0xd4, 0xfa, 0xb5, 0x0d, 0xa1, 0x18, 0xce, + 0x1f, 0xda, 0xd7, 0x92, 0xdd, 0x67, 0xd7, 0x3c, 0x35, 0xb2, 0xda, 0x81, 0x1d, 0xe0, 0xe7, 0x0f, + 0xc0, 0x46, 0x60, 0x4b, 0xe4, 0x51, 0xd1, 0x5f, 0x1d, 0x98, 0xc4, 0x19, 0x2d, 0xd9, 0xaf, 0xfb, + 0x07, 0xf9, 0x04, 0x7a, 0xac, 0xca, 0xfd, 0x16, 0x98, 0x23, 0xba, 0x84, 0xbe, 0xa9, 0x8d, 0xca, + 0xb0, 0x67, 0x25, 0xf8, 0xd0, 0x4a, 0xb0, 0xe5, 0xba, 0xb3, 0x31, 0xdf, 0x21, 0x8f, 0x44, 0x1f, + 0xc3, 0xa8, 0x35, 0xa8, 0x55, 0x1e, 0x1e, 0x58, 0xbe, 0xa0, 0x71, 0xde, 0xe6, 0xe8, 0x14, 0x0e, + 0x69, 0x25, 0xd2, 0x75, 0x78, 0x38, 0xed, 0xcc, 0x7a, 0xd8, 0x19, 0xd1, 0x1f, 0x5d, 0x78, 0xfa, + 0x28, 0xb9, 0x29, 0x37, 0x95, 0x34, 0xb3, 0xe5, 0x06, 0xd8, 0x9e, 0xd1, 0x18, 0xba, 0xea, 0xa1, + 0xda, 0xae, 0xca, 0xd1, 0xb7, 0xf0, 0x7c, 0xff, 0xcc, 0xda, 0x4b, 0x0c, 0xf0, 0x47, 0xfb, 0x26, + 0x13, 0x7d, 0x00, 0xc7, 0x4c, 0x25, 0x76, 0xe9, 0x6c, 0xe5, 0xc7, 0xf8, 0x88, 0xa9, 0x6f, 0x8c, + 0x69, 0x6e, 0x46, 0xb9, 0x14, 0x45, 0x51, 0x52, 0x6e, 0x78, 0x6d, 0xf1, 0x03, 0x1c, 0x34, 0xce, + 0x38, 0x43, 0x3f, 0xc0, 0xb9, 0xa9, 0xce, 0xf0, 0x91, 0x22, 0x69, 0x29, 0xc1, 0xf8, 0x52, 0xc8, + 0xd2, 0x9e, 0xed, 0x3e, 0x06, 0xf8, 0x45, 0x03, 0xc4, 0x5b, 0x5c, 0xdc, 0xc0, 0x22, 0x01, 0x4f, + 0x1e, 0xd9, 0x56, 0x53, 0x47, 0x55, 0x2f, 0x0a, 0x96, 0x26, 0xbe, 0x39, 0x4e, 0x95, 0xc0, 0x39, + 0x9d, 0x6e, 0xe8, 0x25, 0x8c, 0x2b, 0xc9, 0xde, 0x98, 0x99, 0xf7, 0xa8, 0xae, 0x6d, 0x61, 0x60, + 0x5b, 0xf8, 0x23, 0x75, 0x8b, 0x3f, 0xf2, 0x18, 0x97, 0x14, 0xdd, 0xc1, 0x91, 0x8f, 0xa0, 0x4f, + 0x61, 0x9c, 0xd3, 0xf6, 0xe8, 0xf9, 0x51, 0x19, 0xe5, 0xb4, 0x35, 0x67, 0xe8, 0x1c, 0x02, 0x03, + 0x2b, 0x89, 0xa6, 0x92, 0x91, 0xc2, 0xb7, 0x63, 0x98, 0xd3, 0xcd, 0xb5, 0x77, 0x45, 0xbf, 0x3f, + 0xec, 0x44, 0xfb, 0x7d, 0x40, 0x53, 0x18, 0x9a, 0x5d, 0x64, 0x4b, 0x96, 0x12, 0x4d, 0xfd, 0x15, + 0xda, 0xae, 0xff, 0xd1, 0xcf, 0xee, 0x7f, 0xf7, 0x33, 0xfa, 0xa7, 0x03, 0xa3, 0x9d, 0x9d, 0x35, + 0x2f, 0x2c, 0xe5, 0x64, 0x51, 0xb8, 0x8f, 0x1e, 0x63, 0x6f, 0xa1, 0x18, 0x4e, 0xd3, 0x82, 0x99, + 0xd6, 0x8a, 0xfa, 0xed, 0xaf, 0xec, 0x79, 0xe8, 0x90, 0x4b, 0xba, 0xa9, 0x5b, 0x97, 0xfb, 0x0e, + 0x50, 0x45, 0xa9, 0x7c, 0x8b, 0xa8, 0xb7, 0x9f, 0xe8, 0xc4, 0xa4, 0xb4, 0x69, 0x5e, 0x25, 0x70, + 0x2e, 0xe4, 0x6a, 0xbe, 0xde, 0x54, 0x54, 0x16, 0x34, 0x5b, 0x51, 0x39, 0x77, 0xef, 0x8d, 0xfb, + 0xbf, 0x29, 0xc3, 0xf4, 0xea, 0xe4, 0x5a, 0x55, 0x6e, 0x4b, 0x6e, 0x49, 0x9a, 0x93, 0x15, 0xfd, + 0x65, 0xb6, 0x62, 0x7a, 0x5d, 0x2f, 0xe6, 0xa9, 0x28, 0x2f, 0x5a, 0xb9, 0x17, 0x2e, 0xf7, 0xc2, + 0xe5, 0x9a, 0xbf, 0xe5, 0xa2, 0x6f, 0xcf, 0x2f, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x1a, 0x91, + 0xb8, 0x49, 0x3f, 0x07, 0x00, 0x00, } diff --git a/third_party/github.com/hyperledger/fabric/protos/msp/msp_principal.pb.go b/third_party/github.com/hyperledger/fabric/protos/msp/msp_principal.pb.go index e58f41ff13..46dffc652c 100644 --- a/third_party/github.com/hyperledger/fabric/protos/msp/msp_principal.pb.go +++ b/third_party/github.com/hyperledger/fabric/protos/msp/msp_principal.pb.go @@ -137,6 +137,8 @@ type MSPPrincipal struct { // For the ByOrganizationUnit/ByIdentity values of Classification, // PolicyPrincipal acquires its value from an organization unit or // identity, respectively. + // For the Combined Classification type, the Principal is a marshalled + // CombinedPrincipal. Principal []byte `protobuf:"bytes,2,opt,name=principal,proto3" json:"principal,omitempty"` } @@ -233,7 +235,7 @@ func (m *MSPRole) GetRole() MSPRole_MSPRoleType { // MSPIdentityAnonymity can be used to enforce an identity to be anonymous or nominal. type MSPIdentityAnonymity struct { - AnonymityType MSPIdentityAnonymity_MSPIdentityAnonymityType `protobuf:"varint,1,opt,name=anonymityType,enum=common.MSPIdentityAnonymity_MSPIdentityAnonymityType" json:"anonymityType,omitempty"` + AnonymityType MSPIdentityAnonymity_MSPIdentityAnonymityType `protobuf:"varint,1,opt,name=anonymity_type,json=anonymityType,enum=common.MSPIdentityAnonymity_MSPIdentityAnonymityType" json:"anonymity_type,omitempty"` } func (m *MSPIdentityAnonymity) Reset() { *m = MSPIdentityAnonymity{} } @@ -282,38 +284,38 @@ func init() { func init() { proto.RegisterFile("msp/msp_principal.proto", fileDescriptor2) } var fileDescriptor2 = []byte{ - // 515 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x6e, 0xda, 0x30, - 0x14, 0xc6, 0x6b, 0x60, 0xb4, 0x1c, 0xfe, 0xc8, 0xb5, 0xa8, 0x8a, 0xb4, 0x6a, 0x42, 0xd9, 0x26, - 0x71, 0x15, 0x24, 0xba, 0xed, 0x62, 0x77, 0x01, 0xa2, 0xc9, 0x12, 0x71, 0xa2, 0x10, 0x2e, 0xda, - 0x4d, 0x43, 0x21, 0x04, 0x6a, 0x29, 0x89, 0xa3, 0x24, 0xbd, 0x60, 0xef, 0xb2, 0x27, 0xd8, 0xed, - 0x9e, 0x6a, 0x4f, 0x31, 0x25, 0x29, 0x60, 0xb6, 0x4e, 0xda, 0x55, 0x72, 0xce, 0xf9, 0x7d, 0x9f, - 0x8f, 0xed, 0x63, 0xb8, 0x0e, 0xd3, 0x78, 0x18, 0xa6, 0xf1, 0x32, 0x4e, 0x78, 0xe4, 0xf1, 0xd8, - 0x0d, 0xd4, 0x38, 0x11, 0x99, 0x20, 0x75, 0x4f, 0x84, 0xa1, 0x88, 0x94, 0x5f, 0x08, 0x5a, 0xc6, - 0xdc, 0xb2, 0xf6, 0x65, 0xf2, 0x15, 0x7a, 0x07, 0x76, 0xe9, 0x05, 0x6e, 0x9a, 0xf2, 0x0d, 0xf7, - 0xdc, 0x8c, 0x8b, 0xa8, 0x87, 0xfa, 0x68, 0xd0, 0x19, 0xbd, 0x56, 0x4b, 0xad, 0x2a, 0xeb, 0xd4, - 0xc9, 0x09, 0x6a, 0x5f, 0x1f, 0x4c, 0x4e, 0x0b, 0xe4, 0x06, 0x1a, 0x87, 0x52, 0xaf, 0xd2, 0x47, - 0x83, 0x96, 0x7d, 0x4c, 0x28, 0x5f, 0xa0, 0xf3, 0x07, 0x7f, 0x01, 0x35, 0xdb, 0x9c, 0xe9, 0xf8, - 0x8c, 0x5c, 0xc1, 0xa5, 0x69, 0x7f, 0xd2, 0x18, 0xbd, 0xd7, 0x1c, 0x6a, 0xb2, 0xe5, 0x82, 0x51, - 0x07, 0x23, 0xd2, 0x82, 0x0b, 0x3a, 0xd5, 0x99, 0x43, 0x9d, 0x3b, 0x5c, 0x21, 0x6d, 0x68, 0x68, - 0xcc, 0x64, 0x77, 0x46, 0x1e, 0x56, 0xf3, 0xe2, 0xc4, 0x34, 0xc6, 0x94, 0xe9, 0x53, 0x5c, 0x53, - 0x7e, 0x22, 0xc0, 0x66, 0xb2, 0x75, 0x23, 0xfe, 0xad, 0x30, 0x5f, 0x44, 0x3c, 0x23, 0x6f, 0xa1, - 0x93, 0x1f, 0x10, 0x5f, 0xfb, 0x51, 0xc6, 0x37, 0xdc, 0x4f, 0x8a, 0x6d, 0x36, 0xec, 0x76, 0x98, - 0xc6, 0xf4, 0x90, 0x24, 0x53, 0x78, 0x25, 0x24, 0xa9, 0x1b, 0x2c, 0x1f, 0x23, 0x9e, 0xc9, 0xb2, - 0x4a, 0x21, 0xbb, 0x39, 0xa5, 0xf2, 0x25, 0x24, 0x97, 0x5b, 0xb8, 0xf2, 0xfc, 0xa4, 0x0c, 0x52, - 0x59, 0x5c, 0x2d, 0x4e, 0xa2, 0x7b, 0x2c, 0x1e, 0x45, 0xca, 0x77, 0x04, 0xe7, 0xc6, 0xdc, 0xb2, - 0x45, 0xe0, 0xff, 0x6f, 0xb7, 0x43, 0xa8, 0x25, 0x22, 0xf0, 0x8b, 0x9e, 0x3a, 0xa3, 0x97, 0xd2, - 0x8d, 0xe5, 0x2e, 0xfb, 0xaf, 0xb3, 0x8b, 0x7d, 0xbb, 0x00, 0x95, 0x8f, 0xd0, 0x94, 0x92, 0x04, - 0xa0, 0x6e, 0xe8, 0xc6, 0x58, 0xb7, 0xf1, 0x19, 0x69, 0xc0, 0x0b, 0x6d, 0x6a, 0x50, 0x86, 0x51, - 0x9e, 0x9e, 0xcc, 0xa8, 0xce, 0x1c, 0x5c, 0xc9, 0x2f, 0xc6, 0xd2, 0x75, 0x1b, 0x57, 0x95, 0x1f, - 0x08, 0xba, 0xc6, 0xdc, 0x2a, 0x97, 0xcf, 0x76, 0x5a, 0x24, 0xa2, 0x5d, 0xc8, 0xb3, 0x1d, 0xf9, - 0x0c, 0x6d, 0x77, 0x1f, 0xe4, 0xb6, 0x4f, 0x03, 0xf4, 0x5e, 0x6a, 0xe7, 0x2f, 0xd1, 0xb3, 0xc9, - 0xa2, 0xd1, 0x53, 0x2f, 0xe5, 0x03, 0xf4, 0xfe, 0x85, 0x92, 0x26, 0x9c, 0x33, 0xd3, 0xa0, 0x4c, - 0x9b, 0xe1, 0xb3, 0xe3, 0x48, 0x98, 0x8b, 0x39, 0x46, 0x0a, 0x85, 0xcb, 0x89, 0x08, 0x57, 0x3c, - 0xf2, 0xd7, 0xc7, 0xa9, 0x7f, 0x07, 0x70, 0x18, 0xc2, 0xb4, 0x87, 0xfa, 0xd5, 0x41, 0x73, 0xd4, - 0x7d, 0x6e, 0xce, 0x6d, 0x89, 0x1b, 0x5b, 0xf0, 0x46, 0x24, 0x5b, 0xf5, 0x61, 0x17, 0xfb, 0x49, - 0xe0, 0xaf, 0xb7, 0x7e, 0xa2, 0x6e, 0xdc, 0x55, 0xc2, 0xbd, 0xf2, 0x91, 0xa5, 0x4f, 0x06, 0xf7, - 0x83, 0x2d, 0xcf, 0x1e, 0x1e, 0x57, 0x79, 0x38, 0x94, 0xe0, 0x61, 0x09, 0x0f, 0x4b, 0x38, 0x7f, - 0xa6, 0xab, 0x7a, 0xf1, 0x7f, 0xfb, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x04, 0xf3, 0x03, 0xb8, - 0x03, 0x00, 0x00, + // 519 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x6a, 0xdb, 0x30, + 0x14, 0xc6, 0xeb, 0xa4, 0x6b, 0x9b, 0x93, 0x3f, 0xa8, 0x22, 0xa5, 0x81, 0x95, 0x11, 0xbc, 0x0d, + 0x72, 0xe5, 0x40, 0xba, 0xed, 0x62, 0x77, 0x4e, 0x62, 0x86, 0x20, 0x96, 0x8d, 0xe3, 0x5c, 0xb4, + 0x94, 0x05, 0xc7, 0x51, 0x52, 0x81, 0x6d, 0x19, 0xdb, 0xbd, 0xf0, 0xde, 0x65, 0x6f, 0xb0, 0xcb, + 0x3d, 0xd5, 0x9e, 0x62, 0xd8, 0x6e, 0x12, 0x65, 0xeb, 0x60, 0x57, 0xf6, 0x39, 0xe7, 0xf7, 0x1d, + 0x1d, 0x49, 0x9f, 0xe0, 0x3a, 0x4c, 0xe3, 0x61, 0x98, 0xc6, 0xcb, 0x38, 0xe1, 0x91, 0xcf, 0x63, + 0x2f, 0xd0, 0xe2, 0x44, 0x64, 0x02, 0x9f, 0xf9, 0x22, 0x0c, 0x45, 0xa4, 0xfe, 0x52, 0xa0, 0x65, + 0xce, 0x6d, 0x7b, 0x57, 0xc6, 0x5f, 0xa1, 0xb7, 0x67, 0x97, 0x7e, 0xe0, 0xa5, 0x29, 0xdf, 0x70, + 0xdf, 0xcb, 0xb8, 0x88, 0x7a, 0x4a, 0x5f, 0x19, 0x74, 0x46, 0x6f, 0xb5, 0x4a, 0xab, 0xc9, 0x3a, + 0x6d, 0x72, 0x84, 0x3a, 0xd7, 0xfb, 0x26, 0xc7, 0x05, 0x7c, 0x03, 0x8d, 0x7d, 0xa9, 0x57, 0xeb, + 0x2b, 0x83, 0x96, 0x73, 0x48, 0xa8, 0x0f, 0xd0, 0xf9, 0x83, 0xbf, 0x80, 0x53, 0xc7, 0x9a, 0x19, + 0xe8, 0x04, 0x5f, 0xc1, 0xa5, 0xe5, 0x7c, 0xd1, 0x29, 0xb9, 0xd7, 0x5d, 0x62, 0xd1, 0xe5, 0x82, + 0x12, 0x17, 0x29, 0xb8, 0x05, 0x17, 0x64, 0x6a, 0x50, 0x97, 0xb8, 0x77, 0xa8, 0x86, 0xdb, 0xd0, + 0xd0, 0xa9, 0x45, 0xef, 0xcc, 0x22, 0xac, 0x17, 0xc5, 0x89, 0x65, 0x8e, 0x09, 0x35, 0xa6, 0xe8, + 0x54, 0xfd, 0xa9, 0x00, 0xb2, 0x92, 0xad, 0x17, 0xf1, 0x6f, 0x65, 0xf3, 0x45, 0xc4, 0x33, 0xfc, + 0x1e, 0x3a, 0xc5, 0x01, 0xf1, 0x35, 0x8b, 0x32, 0xbe, 0xe1, 0x2c, 0x29, 0xb7, 0xd9, 0x70, 0xda, + 0x61, 0x1a, 0x93, 0x7d, 0x12, 0x4f, 0xe1, 0x8d, 0x90, 0xa4, 0x5e, 0xb0, 0x7c, 0x8a, 0x78, 0x26, + 0xcb, 0x6a, 0xa5, 0xec, 0xe6, 0x98, 0x2a, 0x96, 0x90, 0xba, 0xdc, 0xc2, 0x95, 0xcf, 0x92, 0x2a, + 0x48, 0x65, 0x71, 0xbd, 0x3c, 0x89, 0xee, 0xa1, 0x78, 0x10, 0xa9, 0xdf, 0x15, 0x38, 0x37, 0xe7, + 0xb6, 0x23, 0x02, 0xf6, 0xbf, 0xd3, 0x0e, 0xe1, 0x34, 0x11, 0x01, 0x2b, 0x67, 0xea, 0x8c, 0x5e, + 0x4b, 0x37, 0x56, 0x74, 0xd9, 0x7d, 0xdd, 0x3c, 0x66, 0x4e, 0x09, 0xaa, 0x9f, 0xa1, 0x29, 0x25, + 0x31, 0xc0, 0x99, 0x69, 0x98, 0x63, 0xc3, 0x41, 0x27, 0xb8, 0x01, 0xaf, 0xf4, 0xa9, 0x49, 0x28, + 0x52, 0x8a, 0xf4, 0x64, 0x46, 0x0c, 0xea, 0xa2, 0x5a, 0x71, 0x31, 0xb6, 0x61, 0x38, 0xa8, 0xae, + 0xfe, 0x50, 0xa0, 0x6b, 0xce, 0xed, 0x6a, 0xf9, 0x2c, 0xd7, 0x23, 0x11, 0xe5, 0x21, 0xcf, 0x72, + 0xfc, 0x00, 0x1d, 0x6f, 0x17, 0x2c, 0xb3, 0x3c, 0x66, 0xcf, 0x0e, 0xfa, 0x28, 0xcd, 0xf3, 0x97, + 0xea, 0xc5, 0x64, 0x39, 0x69, 0xdb, 0x93, 0x43, 0xf5, 0x13, 0xf4, 0xfe, 0x85, 0xe2, 0x26, 0x9c, + 0x53, 0xcb, 0x24, 0x54, 0x9f, 0xa1, 0x93, 0x83, 0x27, 0xac, 0xc5, 0x1c, 0x29, 0x2a, 0x81, 0xcb, + 0x89, 0x08, 0x57, 0x3c, 0x62, 0xeb, 0x83, 0xed, 0x3f, 0x00, 0xec, 0x5d, 0x98, 0xf6, 0x94, 0x7e, + 0x7d, 0xd0, 0x1c, 0x75, 0x5f, 0x32, 0xba, 0x23, 0x71, 0x63, 0x1b, 0xde, 0x89, 0x64, 0xab, 0x3d, + 0xe6, 0x31, 0x4b, 0x02, 0xb6, 0xde, 0xb2, 0x44, 0xdb, 0x78, 0xab, 0x84, 0xfb, 0xd5, 0x2b, 0x4b, + 0x9f, 0x1b, 0xdc, 0x0f, 0xb6, 0x3c, 0x7b, 0x7c, 0x5a, 0x15, 0xe1, 0x50, 0x82, 0x87, 0x15, 0x3c, + 0xac, 0xe0, 0xe2, 0x9d, 0xae, 0xce, 0xca, 0xff, 0xdb, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x40, + 0x36, 0xd2, 0xf9, 0xb9, 0x03, 0x00, 0x00, } diff --git a/third_party/github.com/hyperledger/fabric/protos/peer/events.pb.go b/third_party/github.com/hyperledger/fabric/protos/peer/events.pb.go index 4837fb3236..56fe6ae77b 100644 --- a/third_party/github.com/hyperledger/fabric/protos/peer/events.pb.go +++ b/third_party/github.com/hyperledger/fabric/protos/peer/events.pb.go @@ -97,9 +97,7 @@ func (m *Interest) String() string { return proto.CompactTextString(m func (*Interest) ProtoMessage() {} func (*Interest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{1} } -type isInterest_RegInfo interface { - isInterest_RegInfo() -} +type isInterest_RegInfo interface{ isInterest_RegInfo() } type Interest_ChaincodeRegInfo struct { ChaincodeRegInfo *ChaincodeReg `protobuf:"bytes,2,opt,name=chaincode_reg_info,json=chaincodeRegInfo,oneof"` @@ -302,9 +300,7 @@ func (m *FilteredTransaction) String() string { return proto.CompactT func (*FilteredTransaction) ProtoMessage() {} func (*FilteredTransaction) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{6} } -type isFilteredTransaction_Data interface { - isFilteredTransaction_Data() -} +type isFilteredTransaction_Data interface{ isFilteredTransaction_Data() } type FilteredTransaction_TransactionActions struct { TransactionActions *FilteredTransactionActions `protobuf:"bytes,4,opt,name=transaction_actions,json=transactionActions,oneof"` @@ -491,9 +487,7 @@ func (m *Event) String() string { return proto.CompactTextString(m) } func (*Event) ProtoMessage() {} func (*Event) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{10} } -type isEvent_Event interface { - isEvent_Event() -} +type isEvent_Event interface{ isEvent_Event() } type Event_Register struct { Register *Register `protobuf:"bytes,1,opt,name=register,oneof"` @@ -755,9 +749,7 @@ func (m *DeliverResponse) String() string { return proto.CompactTextS func (*DeliverResponse) ProtoMessage() {} func (*DeliverResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{11} } -type isDeliverResponse_Type interface { - isDeliverResponse_Type() -} +type isDeliverResponse_Type interface{ isDeliverResponse_Type() } type DeliverResponse_Status struct { Status common.Status `protobuf:"varint,1,opt,name=status,enum=common.Status,oneof"`