...

Package cauthdsl

import "github.com/hyperledger/fabric/common/cauthdsl"
Overview
Index

Overview ▾

Constants

Gate values

const (
    GateAnd   = "And"
    GateOr    = "Or"
    GateOutOf = "OutOf"
)

Role values for principals

const (
    RoleAdmin   = "admin"
    RoleMember  = "member"
    RoleClient  = "client"
    RolePeer    = "peer"
    RoleOrderer = "orderer"
)

Variables

AcceptAllPolicy always evaluates to true

var AcceptAllPolicy *cb.SignaturePolicyEnvelope

MarshaledAcceptAllPolicy is the Marshaled version of AcceptAllPolicy

var MarshaledAcceptAllPolicy []byte

MarshaledRejectAllPolicy is the Marshaled version of RejectAllPolicy

var MarshaledRejectAllPolicy []byte

RejectAllPolicy always evaluates to false

var RejectAllPolicy *cb.SignaturePolicyEnvelope

func And

func And(lhs, rhs *cb.SignaturePolicy) *cb.SignaturePolicy

And is a convenience method which utilizes NOutOf to produce And equivalent behavior

func Envelope

func Envelope(policy *cb.SignaturePolicy, identities [][]byte) *cb.SignaturePolicyEnvelope

Envelope builds an envelope message embedding a SignaturePolicy

func FromString

func FromString(policy string) (*common.SignaturePolicyEnvelope, error)

FromString takes a string representation of the policy, parses it and returns a SignaturePolicyEnvelope that implements that policy. The supported language is as follows:

GATE(P[, P])

where:

- GATE is either "and" or "or"
- P is either a principal or another nested call to GATE

A principal is defined as:

ORG.ROLE

where:

	- ORG is a string (representing the MSP identifier)
	- ROLE takes the value of any of the RoleXXX constants representing
   the required role

func NOutOf

func NOutOf(n int32, policies []*cb.SignaturePolicy) *cb.SignaturePolicy

NOutOf creates a policy which requires N out of the slice of policies to evaluate to true

func NewPolicyProvider

func NewPolicyProvider(deserializer msp.IdentityDeserializer) policies.Provider

NewProviderImpl provides a policy generator for cauthdsl type policies

func Or

func Or(lhs, rhs *cb.SignaturePolicy) *cb.SignaturePolicy

Or is a convenience method which utilizes NOutOf to produce Or equivalent behavior

func SignedBy

func SignedBy(index int32) *cb.SignaturePolicy

SignedBy creates a SignaturePolicy requiring a given signer's signature

func SignedByAnyAdmin

func SignedByAnyAdmin(ids []string) *cb.SignaturePolicyEnvelope

SignedByAnyAdmin returns a policy that requires one valid signature from a admin of any of the orgs whose ids are listed in the supplied string array

func SignedByAnyClient

func SignedByAnyClient(ids []string) *cb.SignaturePolicyEnvelope

SignedByAnyClient returns a policy that requires one valid signature from a client of any of the orgs whose ids are listed in the supplied string array

func SignedByAnyMember

func SignedByAnyMember(ids []string) *cb.SignaturePolicyEnvelope

SignedByAnyMember returns a policy that requires one valid signature from a member of any of the orgs whose ids are listed in the supplied string array

func SignedByAnyPeer

func SignedByAnyPeer(ids []string) *cb.SignaturePolicyEnvelope

SignedByAnyPeer returns a policy that requires one valid signature from an orderer of any of the orgs whose ids are listed in the supplied string array

func SignedByMspAdmin

func SignedByMspAdmin(mspId string) *cb.SignaturePolicyEnvelope

SignedByMspAdmin creates a SignaturePolicyEnvelope requiring 1 signature from any admin of the specified MSP

func SignedByMspClient

func SignedByMspClient(mspId string) *cb.SignaturePolicyEnvelope

SignedByMspClient creates a SignaturePolicyEnvelope requiring 1 signature from any client of the specified MSP

func SignedByMspMember

func SignedByMspMember(mspId string) *cb.SignaturePolicyEnvelope

SignedByMspMember creates a SignaturePolicyEnvelope requiring 1 signature from any member of the specified MSP

func SignedByMspPeer

func SignedByMspPeer(mspId string) *cb.SignaturePolicyEnvelope

SignedByMspPeer creates a SignaturePolicyEnvelope requiring 1 signature from any peer of the specified MSP

func SignedByNOutOfGivenIdentities

func SignedByNOutOfGivenIdentities(n int32, identities [][]byte) *cb.SignaturePolicyEnvelope

SignedByNOutOfGivenIdentities returns a policy that requires N valid signatures from the given identities.

type EnvelopeBasedPolicyProvider

EnvelopeBasedPolicyProvider allows to create a new policy from SignaturePolicyEnvelope struct instead of []byte

type EnvelopeBasedPolicyProvider struct {
    Deserializer msp.IdentityDeserializer
}

func (*EnvelopeBasedPolicyProvider) NewPolicy

func (pp *EnvelopeBasedPolicyProvider) NewPolicy(sigPolicy *cb.SignaturePolicyEnvelope) (policies.Policy, error)

NewPolicy creates a new policy from the policy envelope

type Identity

type Identity interface {
    // SatisfiesPrincipal checks whether this instance matches
    // the description supplied in MSPPrincipal. The check may
    // involve a byte-by-byte comparison (if the principal is
    // a serialized identity) or may require MSP validation
    SatisfiesPrincipal(principal *mspp.MSPPrincipal) error

    // GetIdentifier returns the identifier of that identity
    GetIdentifier() *msp.IdentityIdentifier
}

type IdentityAndSignature

type IdentityAndSignature interface {
    // Identity returns the identity associated to this instance
    Identity() (Identity, error)

    // Verify returns the validity status of this identity's signature over the message
    Verify() error
}