예제 #1
0
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
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)