/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: msp/msp_config.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "msp/msp_config.pb-c.h"
void   msp__mspconfig__init
                     (Msp__MSPConfig         *message)
{
  static Msp__MSPConfig init_value = MSP__MSPCONFIG__INIT;
  *message = init_value;
}
size_t msp__mspconfig__get_packed_size
                     (const Msp__MSPConfig *message)
{
  assert(message->base.descriptor == &msp__mspconfig__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__mspconfig__pack
                     (const Msp__MSPConfig *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__mspconfig__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__mspconfig__pack_to_buffer
                     (const Msp__MSPConfig *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__mspconfig__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__MSPConfig *
       msp__mspconfig__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__MSPConfig *)
     protobuf_c_message_unpack (&msp__mspconfig__descriptor,
                                allocator, len, data);
}
void   msp__mspconfig__free_unpacked
                     (Msp__MSPConfig *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__mspconfig__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   msp__fabric_mspconfig__init
                     (Msp__FabricMSPConfig         *message)
{
  static Msp__FabricMSPConfig init_value = MSP__FABRIC_MSPCONFIG__INIT;
  *message = init_value;
}
size_t msp__fabric_mspconfig__get_packed_size
                     (const Msp__FabricMSPConfig *message)
{
  assert(message->base.descriptor == &msp__fabric_mspconfig__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__fabric_mspconfig__pack
                     (const Msp__FabricMSPConfig *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__fabric_mspconfig__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__fabric_mspconfig__pack_to_buffer
                     (const Msp__FabricMSPConfig *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__fabric_mspconfig__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__FabricMSPConfig *
       msp__fabric_mspconfig__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__FabricMSPConfig *)
     protobuf_c_message_unpack (&msp__fabric_mspconfig__descriptor,
                                allocator, len, data);
}
void   msp__fabric_mspconfig__free_unpacked
                     (Msp__FabricMSPConfig *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__fabric_mspconfig__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   msp__fabric_crypto_config__init
                     (Msp__FabricCryptoConfig         *message)
{
  static Msp__FabricCryptoConfig init_value = MSP__FABRIC_CRYPTO_CONFIG__INIT;
  *message = init_value;
}
size_t msp__fabric_crypto_config__get_packed_size
                     (const Msp__FabricCryptoConfig *message)
{
  assert(message->base.descriptor == &msp__fabric_crypto_config__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__fabric_crypto_config__pack
                     (const Msp__FabricCryptoConfig *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__fabric_crypto_config__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__fabric_crypto_config__pack_to_buffer
                     (const Msp__FabricCryptoConfig *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__fabric_crypto_config__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__FabricCryptoConfig *
       msp__fabric_crypto_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__FabricCryptoConfig *)
     protobuf_c_message_unpack (&msp__fabric_crypto_config__descriptor,
                                allocator, len, data);
}
void   msp__fabric_crypto_config__free_unpacked
                     (Msp__FabricCryptoConfig *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__fabric_crypto_config__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   msp__idemix_mspconfig__init
                     (Msp__IdemixMSPConfig         *message)
{
  static Msp__IdemixMSPConfig init_value = MSP__IDEMIX_MSPCONFIG__INIT;
  *message = init_value;
}
size_t msp__idemix_mspconfig__get_packed_size
                     (const Msp__IdemixMSPConfig *message)
{
  assert(message->base.descriptor == &msp__idemix_mspconfig__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__idemix_mspconfig__pack
                     (const Msp__IdemixMSPConfig *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__idemix_mspconfig__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__idemix_mspconfig__pack_to_buffer
                     (const Msp__IdemixMSPConfig *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__idemix_mspconfig__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__IdemixMSPConfig *
       msp__idemix_mspconfig__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__IdemixMSPConfig *)
     protobuf_c_message_unpack (&msp__idemix_mspconfig__descriptor,
                                allocator, len, data);
}
void   msp__idemix_mspconfig__free_unpacked
                     (Msp__IdemixMSPConfig *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__idemix_mspconfig__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   msp__idemix_mspsigner_config__init
                     (Msp__IdemixMSPSignerConfig         *message)
{
  static Msp__IdemixMSPSignerConfig init_value = MSP__IDEMIX_MSPSIGNER_CONFIG__INIT;
  *message = init_value;
}
size_t msp__idemix_mspsigner_config__get_packed_size
                     (const Msp__IdemixMSPSignerConfig *message)
{
  assert(message->base.descriptor == &msp__idemix_mspsigner_config__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__idemix_mspsigner_config__pack
                     (const Msp__IdemixMSPSignerConfig *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__idemix_mspsigner_config__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__idemix_mspsigner_config__pack_to_buffer
                     (const Msp__IdemixMSPSignerConfig *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__idemix_mspsigner_config__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__IdemixMSPSignerConfig *
       msp__idemix_mspsigner_config__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__IdemixMSPSignerConfig *)
     protobuf_c_message_unpack (&msp__idemix_mspsigner_config__descriptor,
                                allocator, len, data);
}
void   msp__idemix_mspsigner_config__free_unpacked
                     (Msp__IdemixMSPSignerConfig *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__idemix_mspsigner_config__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   msp__signing_identity_info__init
                     (Msp__SigningIdentityInfo         *message)
{
  static Msp__SigningIdentityInfo init_value = MSP__SIGNING_IDENTITY_INFO__INIT;
  *message = init_value;
}
size_t msp__signing_identity_info__get_packed_size
                     (const Msp__SigningIdentityInfo *message)
{
  assert(message->base.descriptor == &msp__signing_identity_info__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__signing_identity_info__pack
                     (const Msp__SigningIdentityInfo *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__signing_identity_info__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__signing_identity_info__pack_to_buffer
                     (const Msp__SigningIdentityInfo *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__signing_identity_info__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__SigningIdentityInfo *
       msp__signing_identity_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__SigningIdentityInfo *)
     protobuf_c_message_unpack (&msp__signing_identity_info__descriptor,
                                allocator, len, data);
}
void   msp__signing_identity_info__free_unpacked
                     (Msp__SigningIdentityInfo *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__signing_identity_info__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   msp__key_info__init
                     (Msp__KeyInfo         *message)
{
  static Msp__KeyInfo init_value = MSP__KEY_INFO__INIT;
  *message = init_value;
}
size_t msp__key_info__get_packed_size
                     (const Msp__KeyInfo *message)
{
  assert(message->base.descriptor == &msp__key_info__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__key_info__pack
                     (const Msp__KeyInfo *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__key_info__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__key_info__pack_to_buffer
                     (const Msp__KeyInfo *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__key_info__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__KeyInfo *
       msp__key_info__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__KeyInfo *)
     protobuf_c_message_unpack (&msp__key_info__descriptor,
                                allocator, len, data);
}
void   msp__key_info__free_unpacked
                     (Msp__KeyInfo *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__key_info__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   msp__fabric_ouidentifier__init
                     (Msp__FabricOUIdentifier         *message)
{
  static Msp__FabricOUIdentifier init_value = MSP__FABRIC_OUIDENTIFIER__INIT;
  *message = init_value;
}
size_t msp__fabric_ouidentifier__get_packed_size
                     (const Msp__FabricOUIdentifier *message)
{
  assert(message->base.descriptor == &msp__fabric_ouidentifier__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__fabric_ouidentifier__pack
                     (const Msp__FabricOUIdentifier *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__fabric_ouidentifier__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__fabric_ouidentifier__pack_to_buffer
                     (const Msp__FabricOUIdentifier *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__fabric_ouidentifier__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__FabricOUIdentifier *
       msp__fabric_ouidentifier__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__FabricOUIdentifier *)
     protobuf_c_message_unpack (&msp__fabric_ouidentifier__descriptor,
                                allocator, len, data);
}
void   msp__fabric_ouidentifier__free_unpacked
                     (Msp__FabricOUIdentifier *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__fabric_ouidentifier__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   msp__fabric_node_ous__init
                     (Msp__FabricNodeOUs         *message)
{
  static Msp__FabricNodeOUs init_value = MSP__FABRIC_NODE_OUS__INIT;
  *message = init_value;
}
size_t msp__fabric_node_ous__get_packed_size
                     (const Msp__FabricNodeOUs *message)
{
  assert(message->base.descriptor == &msp__fabric_node_ous__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t msp__fabric_node_ous__pack
                     (const Msp__FabricNodeOUs *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &msp__fabric_node_ous__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t msp__fabric_node_ous__pack_to_buffer
                     (const Msp__FabricNodeOUs *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &msp__fabric_node_ous__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Msp__FabricNodeOUs *
       msp__fabric_node_ous__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Msp__FabricNodeOUs *)
     protobuf_c_message_unpack (&msp__fabric_node_ous__descriptor,
                                allocator, len, data);
}
void   msp__fabric_node_ous__free_unpacked
                     (Msp__FabricNodeOUs *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &msp__fabric_node_ous__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor msp__mspconfig__field_descriptors[2] =
{
  {
    "type",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_INT32,
    offsetof(Msp__MSPConfig, has_type),
    offsetof(Msp__MSPConfig, type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "config",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__MSPConfig, has_config),
    offsetof(Msp__MSPConfig, config),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__mspconfig__field_indices_by_name[] = {
  1,   /* field[1] = config */
  0,   /* field[0] = type */
};
static const ProtobufCIntRange msp__mspconfig__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor msp__mspconfig__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.MSPConfig",
  "MSPConfig",
  "Msp__MSPConfig",
  "msp",
  sizeof(Msp__MSPConfig),
  2,
  msp__mspconfig__field_descriptors,
  msp__mspconfig__field_indices_by_name,
  1,  msp__mspconfig__number_ranges,
  (ProtobufCMessageInit) msp__mspconfig__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor msp__fabric_mspconfig__field_descriptors[11] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricMSPConfig, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "root_certs",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__FabricMSPConfig, n_root_certs),
    offsetof(Msp__FabricMSPConfig, root_certs),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "intermediate_certs",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__FabricMSPConfig, n_intermediate_certs),
    offsetof(Msp__FabricMSPConfig, intermediate_certs),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "admins",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__FabricMSPConfig, n_admins),
    offsetof(Msp__FabricMSPConfig, admins),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "revocation_list",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__FabricMSPConfig, n_revocation_list),
    offsetof(Msp__FabricMSPConfig, revocation_list),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "signing_identity",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricMSPConfig, signing_identity),
    &msp__signing_identity_info__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "organizational_unit_identifiers",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Msp__FabricMSPConfig, n_organizational_unit_identifiers),
    offsetof(Msp__FabricMSPConfig, organizational_unit_identifiers),
    &msp__fabric_ouidentifier__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "crypto_config",
    8,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricMSPConfig, crypto_config),
    &msp__fabric_crypto_config__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "tls_root_certs",
    9,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__FabricMSPConfig, n_tls_root_certs),
    offsetof(Msp__FabricMSPConfig, tls_root_certs),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "tls_intermediate_certs",
    10,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__FabricMSPConfig, n_tls_intermediate_certs),
    offsetof(Msp__FabricMSPConfig, tls_intermediate_certs),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "fabric_node_ous",
    11,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricMSPConfig, fabric_node_ous),
    &msp__fabric_node_ous__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__fabric_mspconfig__field_indices_by_name[] = {
  3,   /* field[3] = admins */
  7,   /* field[7] = crypto_config */
  10,   /* field[10] = fabric_node_ous */
  2,   /* field[2] = intermediate_certs */
  0,   /* field[0] = name */
  6,   /* field[6] = organizational_unit_identifiers */
  4,   /* field[4] = revocation_list */
  1,   /* field[1] = root_certs */
  5,   /* field[5] = signing_identity */
  9,   /* field[9] = tls_intermediate_certs */
  8,   /* field[8] = tls_root_certs */
};
static const ProtobufCIntRange msp__fabric_mspconfig__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 11 }
};
const ProtobufCMessageDescriptor msp__fabric_mspconfig__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.FabricMSPConfig",
  "FabricMSPConfig",
  "Msp__FabricMSPConfig",
  "msp",
  sizeof(Msp__FabricMSPConfig),
  11,
  msp__fabric_mspconfig__field_descriptors,
  msp__fabric_mspconfig__field_indices_by_name,
  1,  msp__fabric_mspconfig__number_ranges,
  (ProtobufCMessageInit) msp__fabric_mspconfig__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor msp__fabric_crypto_config__field_descriptors[2] =
{
  {
    "signature_hash_family",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricCryptoConfig, signature_hash_family),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "identity_identifier_hash_function",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricCryptoConfig, identity_identifier_hash_function),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__fabric_crypto_config__field_indices_by_name[] = {
  1,   /* field[1] = identity_identifier_hash_function */
  0,   /* field[0] = signature_hash_family */
};
static const ProtobufCIntRange msp__fabric_crypto_config__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor msp__fabric_crypto_config__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.FabricCryptoConfig",
  "FabricCryptoConfig",
  "Msp__FabricCryptoConfig",
  "msp",
  sizeof(Msp__FabricCryptoConfig),
  2,
  msp__fabric_crypto_config__field_descriptors,
  msp__fabric_crypto_config__field_indices_by_name,
  1,  msp__fabric_crypto_config__number_ranges,
  (ProtobufCMessageInit) msp__fabric_crypto_config__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor msp__idemix_mspconfig__field_descriptors[5] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Msp__IdemixMSPConfig, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "ipk",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__IdemixMSPConfig, has_ipk),
    offsetof(Msp__IdemixMSPConfig, ipk),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "signer",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Msp__IdemixMSPConfig, signer),
    &msp__idemix_mspsigner_config__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "revocation_pk",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__IdemixMSPConfig, has_revocation_pk),
    offsetof(Msp__IdemixMSPConfig, revocation_pk),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "epoch",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_INT64,
    offsetof(Msp__IdemixMSPConfig, has_epoch),
    offsetof(Msp__IdemixMSPConfig, epoch),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__idemix_mspconfig__field_indices_by_name[] = {
  4,   /* field[4] = epoch */
  1,   /* field[1] = ipk */
  0,   /* field[0] = name */
  3,   /* field[3] = revocation_pk */
  2,   /* field[2] = signer */
};
static const ProtobufCIntRange msp__idemix_mspconfig__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 5 }
};
const ProtobufCMessageDescriptor msp__idemix_mspconfig__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.IdemixMSPConfig",
  "IdemixMSPConfig",
  "Msp__IdemixMSPConfig",
  "msp",
  sizeof(Msp__IdemixMSPConfig),
  5,
  msp__idemix_mspconfig__field_descriptors,
  msp__idemix_mspconfig__field_indices_by_name,
  1,  msp__idemix_mspconfig__number_ranges,
  (ProtobufCMessageInit) msp__idemix_mspconfig__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor msp__idemix_mspsigner_config__field_descriptors[6] =
{
  {
    "cred",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__IdemixMSPSignerConfig, has_cred),
    offsetof(Msp__IdemixMSPSignerConfig, cred),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sk",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__IdemixMSPSignerConfig, has_sk),
    offsetof(Msp__IdemixMSPSignerConfig, sk),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "organizational_unit_identifier",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Msp__IdemixMSPSignerConfig, organizational_unit_identifier),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "role",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_INT32,
    offsetof(Msp__IdemixMSPSignerConfig, has_role),
    offsetof(Msp__IdemixMSPSignerConfig, role),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "enrollment_id",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Msp__IdemixMSPSignerConfig, enrollment_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "credential_revocation_information",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__IdemixMSPSignerConfig, has_credential_revocation_information),
    offsetof(Msp__IdemixMSPSignerConfig, credential_revocation_information),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__idemix_mspsigner_config__field_indices_by_name[] = {
  0,   /* field[0] = cred */
  5,   /* field[5] = credential_revocation_information */
  4,   /* field[4] = enrollment_id */
  2,   /* field[2] = organizational_unit_identifier */
  3,   /* field[3] = role */
  1,   /* field[1] = sk */
};
static const ProtobufCIntRange msp__idemix_mspsigner_config__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 6 }
};
const ProtobufCMessageDescriptor msp__idemix_mspsigner_config__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.IdemixMSPSignerConfig",
  "IdemixMSPSignerConfig",
  "Msp__IdemixMSPSignerConfig",
  "msp",
  sizeof(Msp__IdemixMSPSignerConfig),
  6,
  msp__idemix_mspsigner_config__field_descriptors,
  msp__idemix_mspsigner_config__field_indices_by_name,
  1,  msp__idemix_mspsigner_config__number_ranges,
  (ProtobufCMessageInit) msp__idemix_mspsigner_config__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor msp__signing_identity_info__field_descriptors[2] =
{
  {
    "public_signer",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__SigningIdentityInfo, has_public_signer),
    offsetof(Msp__SigningIdentityInfo, public_signer),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "private_signer",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Msp__SigningIdentityInfo, private_signer),
    &msp__key_info__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__signing_identity_info__field_indices_by_name[] = {
  1,   /* field[1] = private_signer */
  0,   /* field[0] = public_signer */
};
static const ProtobufCIntRange msp__signing_identity_info__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor msp__signing_identity_info__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.SigningIdentityInfo",
  "SigningIdentityInfo",
  "Msp__SigningIdentityInfo",
  "msp",
  sizeof(Msp__SigningIdentityInfo),
  2,
  msp__signing_identity_info__field_descriptors,
  msp__signing_identity_info__field_indices_by_name,
  1,  msp__signing_identity_info__number_ranges,
  (ProtobufCMessageInit) msp__signing_identity_info__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor msp__key_info__field_descriptors[2] =
{
  {
    "key_identifier",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Msp__KeyInfo, key_identifier),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "key_material",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__KeyInfo, has_key_material),
    offsetof(Msp__KeyInfo, key_material),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__key_info__field_indices_by_name[] = {
  0,   /* field[0] = key_identifier */
  1,   /* field[1] = key_material */
};
static const ProtobufCIntRange msp__key_info__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor msp__key_info__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.KeyInfo",
  "KeyInfo",
  "Msp__KeyInfo",
  "msp",
  sizeof(Msp__KeyInfo),
  2,
  msp__key_info__field_descriptors,
  msp__key_info__field_indices_by_name,
  1,  msp__key_info__number_ranges,
  (ProtobufCMessageInit) msp__key_info__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor msp__fabric_ouidentifier__field_descriptors[2] =
{
  {
    "certificate",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Msp__FabricOUIdentifier, has_certificate),
    offsetof(Msp__FabricOUIdentifier, certificate),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "organizational_unit_identifier",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricOUIdentifier, organizational_unit_identifier),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__fabric_ouidentifier__field_indices_by_name[] = {
  0,   /* field[0] = certificate */
  1,   /* field[1] = organizational_unit_identifier */
};
static const ProtobufCIntRange msp__fabric_ouidentifier__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor msp__fabric_ouidentifier__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.FabricOUIdentifier",
  "FabricOUIdentifier",
  "Msp__FabricOUIdentifier",
  "msp",
  sizeof(Msp__FabricOUIdentifier),
  2,
  msp__fabric_ouidentifier__field_descriptors,
  msp__fabric_ouidentifier__field_indices_by_name,
  1,  msp__fabric_ouidentifier__number_ranges,
  (ProtobufCMessageInit) msp__fabric_ouidentifier__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor msp__fabric_node_ous__field_descriptors[3] =
{
  {
    "enable",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Msp__FabricNodeOUs, has_enable),
    offsetof(Msp__FabricNodeOUs, enable),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "client_ou_identifier",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricNodeOUs, client_ou_identifier),
    &msp__fabric_ouidentifier__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "peer_ou_identifier",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Msp__FabricNodeOUs, peer_ou_identifier),
    &msp__fabric_ouidentifier__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned msp__fabric_node_ous__field_indices_by_name[] = {
  1,   /* field[1] = client_ou_identifier */
  0,   /* field[0] = enable */
  2,   /* field[2] = peer_ou_identifier */
};
static const ProtobufCIntRange msp__fabric_node_ous__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor msp__fabric_node_ous__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "msp.FabricNodeOUs",
  "FabricNodeOUs",
  "Msp__FabricNodeOUs",
  "msp",
  sizeof(Msp__FabricNodeOUs),
  3,
  msp__fabric_node_ous__field_descriptors,
  msp__fabric_node_ous__field_indices_by_name,
  1,  msp__fabric_node_ous__number_ranges,
  (ProtobufCMessageInit) msp__fabric_node_ous__init,
  NULL,NULL,NULL    /* reserved[123] */
};
