def createChainCreatorsPolicy(context, chainCreatePolicyName, chaindId, orgNames): 'Creates the chain Creator Policy with name' directory = getDirectory(context) bootstrapHelper = BootstrapHelper(chainId=chaindId) # This represents the domain of organization which can create channels for the orderer # First create org MSPPrincicpal # Collect the orgs from the table mspPrincipalList = [] for org in [directory.getOrganization(orgName) for orgName in orgNames]: mspPrincipalList.append( msp_principal_pb2.MSPPrincipal( PrincipalClassification=msp_principal_pb2.MSPPrincipal. Classification.Value("ByIdentity"), Principal=crypto.dump_certificate(crypto.FILETYPE_ASN1, org.getSelfSignedCert()))) policyTypeSig = common_dot_configuration_pb2.Policy.PolicyType.Value( "SIGNATURE") chainCreatorsOrgsPolicySignedConfigItem = bootstrapHelper.encodePolicy( key=chainCreatePolicyName, policy=common_dot_configuration_pb2.Policy( type=policyTypeSig, policy=AuthDSLHelper.Envelope( signaturePolicy=AuthDSLHelper.NOutOf(0, []), identities=mspPrincipalList).SerializeToString())) # print("signed Config Item:\n{0}\n".format(chainCreationPolicyNamesSignedConfigItem)) #print("chain Creation orgs signed Config Item:\n{0}\n".format(chainCreatorsOrgsPolicySignedConfigItem)) return chainCreatorsOrgsPolicySignedConfigItem
def lockDefaultModificationPolicy(self): configItem = self.getConfigItem( commonConfigType=common_dot_configuration_pb2.ConfigurationItem. ConfigurationType.Value("Policy"), key=BootstrapHelper.DEFAULT_MODIFICATION_POLICY_ID, value=common_dot_configuration_pb2.Policy( type=1, policy=AuthDSLHelper.Envelope( signaturePolicy=AuthDSLHelper.NOutOf(1, []), identities=[]).SerializeToString()).SerializeToString()) return self.signConfigItem(configItem)
def encodeAcceptAllPolicy(self): configItem = self.getConfigItem( commonConfigType=common_dot_configuration_pb2.ConfigurationItem. ConfigurationType.Value("Policy"), key=BootstrapHelper.KEY_ACCEPT_ALL_POLICY, value=common_dot_configuration_pb2.Policy( type=1, policy=AuthDSLHelper.Envelope( signaturePolicy=AuthDSLHelper.NOutOf(0, []), identities=[]).SerializeToString()).SerializeToString()) return self.signConfigItem(configItem)
def encodePolicy(self, key, policy=common_dot_configuration_pb2.Policy( type=1, policy=AuthDSLHelper.Envelope( signaturePolicy=AuthDSLHelper.NOutOf(0, []), identities=[]).SerializeToString())): configItem = self.getConfigItem( commonConfigType=common_dot_configuration_pb2.ConfigurationItem. ConfigurationType.Value("Policy"), key=key, value=policy.SerializeToString()) return self.signConfigItem(configItem)