github.com/adnan-c/fabric_e2e_couchdb@v0.6.1-preview.0.20170228180935-21ce6b23cf91/protos/msp/mspconfig.proto (about)

     1  /*
     2  Copyright IBM Corp. 2016 All Rights Reserved.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8                   http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  syntax = "proto3";
    18  
    19  option go_package = "github.com/hyperledger/fabric/protos/msp";
    20  
    21  package msp;
    22  
    23  // MSPConfig collects all the configuration information for
    24  // an MSP. The Config field should be unmarshalled in a way
    25  // that depends on the Type
    26  message MSPConfig {
    27      // Type holds the type of the MSP; the default one would
    28      // be of type FABRIC implementing an X.509 based provider
    29      int32 type = 1;
    30  
    31      // Config is MSP dependent configuration info
    32      bytes config = 2;
    33  }
    34  
    35  // FabricMSPConfig collects all the configuration information for
    36  // a Fabric MSP.
    37  // Here we assume a default certificate validation policy, where
    38  // any certificate signed by any of the listed rootCA certs would
    39  // be considered as valid under this MSP.
    40  // This MSP may or may not come with a signing identity. If it does,
    41  // it can also issue signing identities. If it does not, it can only
    42  // be used to validate and verify certificates.
    43  message FabricMSPConfig {
    44      // Name holds the identifier of the MSP; MSP identifier
    45      // is chosen by the application that governs this MSP.
    46      // For example, and assuming the default implementation of MSP,
    47      // that is X.509-based and considers a single Issuer,
    48      // this can refer to the Subject OU field or the Issuer OU field.
    49      string name = 1;
    50  
    51      // List of root certificates trusted by this MSP
    52      // they are used upon certificate validation (see
    53      // comment for IntermediateCerts below)
    54      repeated bytes root_certs = 2;
    55  
    56      // List of intermediate certificates trusted by this MSP;
    57      // they are used upon certificate validation as follows:
    58      // validation attempts to build a path from the certificate
    59      // to be validated (which is at one end of the path) and
    60      // one of the certs in the RootCerts field (which is at
    61      // the other end of the path). If the path is longer than
    62      // 2, certificates in the middle are searched within the
    63      // IntermediateCerts pool
    64      repeated bytes intermediate_certs = 3;
    65  
    66      // Identity denoting the administrator of this MSP
    67      repeated bytes admins = 4;
    68  
    69      // Identity revocation list
    70      repeated bytes revocation_list = 5;
    71  
    72      // SigningIdentity holds information on the signing identity
    73      // this peer is to use, and which is to be imported by the
    74      // MSP defined before
    75      SigningIdentityInfo signing_identity = 6;
    76  
    77      // OrganizationalUnitIdentifiers holds one or more
    78      // fabric organizational unit identifiers that belong to
    79      // this MSP configuration
    80      repeated FabricOUIdentifier organizational_unit_identifiers = 7;
    81  }
    82  
    83  // SigningIdentityInfo represents the configuration information
    84  // related to the signing identity the peer is to use for generating
    85  // endorsements
    86  message SigningIdentityInfo {
    87      // PublicSigner carries the public information of the signing
    88      // identity. For an X.509 provider this would be represented by
    89      // an X.509 certificate
    90      bytes public_signer = 1;
    91  
    92      // PrivateSigner denotes a reference to the private key of the
    93      // peer's signing identity
    94      KeyInfo private_signer = 2;
    95  }
    96  
    97  // KeyInfo represents a (secret) key that is either already stored
    98  // in the bccsp/keystore or key material to be imported to the
    99  // bccsp key-store. In later versions it may contain also a
   100  // keystore identifier
   101  message KeyInfo {
   102      // Identifier of the key inside the default keystore; this for
   103      // the case of Software BCCSP as well as the HSM BCCSP would be
   104      // the SKI of the key
   105      string key_identifier = 1;
   106  
   107      // KeyMaterial (optional) for the key to be imported; this is
   108      // properly encoded key bytes, prefixed by the type of the key
   109      bytes key_material = 2;
   110  }
   111  
   112  // FabricOUIdentifier represents an organizazional unit and
   113  // its related chain of trust identifier.
   114  message FabricOUIdentifier {
   115  
   116      // CertifiersIdentifier is the hash of certificates chain of trust
   117      // related to this organizational unit
   118      bytes certifiers_identifier = 1;
   119  
   120      // OrganizationUnitIdentifier defines the organizational unit under the
   121      // MSP identified with MSPIdentifier
   122      string organizational_unit_identifier = 2;
   123  }