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

#ifndef PROTOBUF_C_OMEMO_2eproto__INCLUDED
#define PROTOBUF_C_OMEMO_2eproto__INCLUDED

#include <protobuf-c/protobuf-c.h>

PROTOBUF_C__BEGIN_DECLS

#if PROTOBUF_C_VERSION_NUMBER < 1003000
# error This file was generated by a newer version of protobuf-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1005001 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protobuf-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protobuf-c.
#endif


typedef struct Omemo__OMEMOMessage Omemo__OMEMOMessage;
typedef struct Omemo__OMEMOAuthenticatedMessage Omemo__OMEMOAuthenticatedMessage;
typedef struct Omemo__OMEMOKeyExchange Omemo__OMEMOKeyExchange;


/* --- enums --- */


/* --- messages --- */

struct  Omemo__OMEMOMessage
{
  ProtobufCMessage base;
  uint32_t n;
  uint32_t pn;
  ProtobufCBinaryData dh_pub;
  protobuf_c_boolean has_ciphertext;
  ProtobufCBinaryData ciphertext;
};
#define OMEMO__OMEMOMESSAGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&omemo__omemomessage__descriptor) \
    , 0, 0, {0,NULL}, 0, {0,NULL} }


struct  Omemo__OMEMOAuthenticatedMessage
{
  ProtobufCMessage base;
  ProtobufCBinaryData mac;
  /*
   * OMEMOMessage
   */
  ProtobufCBinaryData message;
};
#define OMEMO__OMEMOAUTHENTICATED_MESSAGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&omemo__omemoauthenticated_message__descriptor) \
    , {0,NULL}, {0,NULL} }


struct  Omemo__OMEMOKeyExchange
{
  ProtobufCMessage base;
  uint32_t pk_id;
  uint32_t spk_id;
  ProtobufCBinaryData ik;
  ProtobufCBinaryData ek;
  /*
   * OMEMOAuthenticatedMessage
   */
  ProtobufCBinaryData message;
};
#define OMEMO__OMEMOKEY_EXCHANGE__INIT \
 { PROTOBUF_C_MESSAGE_INIT (&omemo__omemokey_exchange__descriptor) \
    , 0, 0, {0,NULL}, {0,NULL}, {0,NULL} }


/* Omemo__OMEMOMessage methods */
void   omemo__omemomessage__init
                     (Omemo__OMEMOMessage         *message);
size_t omemo__omemomessage__get_packed_size
                     (const Omemo__OMEMOMessage   *message);
size_t omemo__omemomessage__pack
                     (const Omemo__OMEMOMessage   *message,
                      uint8_t             *out);
size_t omemo__omemomessage__pack_to_buffer
                     (const Omemo__OMEMOMessage   *message,
                      ProtobufCBuffer     *buffer);
Omemo__OMEMOMessage *
       omemo__omemomessage__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   omemo__omemomessage__free_unpacked
                     (Omemo__OMEMOMessage *message,
                      ProtobufCAllocator *allocator);
/* Omemo__OMEMOAuthenticatedMessage methods */
void   omemo__omemoauthenticated_message__init
                     (Omemo__OMEMOAuthenticatedMessage         *message);
size_t omemo__omemoauthenticated_message__get_packed_size
                     (const Omemo__OMEMOAuthenticatedMessage   *message);
size_t omemo__omemoauthenticated_message__pack
                     (const Omemo__OMEMOAuthenticatedMessage   *message,
                      uint8_t             *out);
size_t omemo__omemoauthenticated_message__pack_to_buffer
                     (const Omemo__OMEMOAuthenticatedMessage   *message,
                      ProtobufCBuffer     *buffer);
Omemo__OMEMOAuthenticatedMessage *
       omemo__omemoauthenticated_message__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   omemo__omemoauthenticated_message__free_unpacked
                     (Omemo__OMEMOAuthenticatedMessage *message,
                      ProtobufCAllocator *allocator);
/* Omemo__OMEMOKeyExchange methods */
void   omemo__omemokey_exchange__init
                     (Omemo__OMEMOKeyExchange         *message);
size_t omemo__omemokey_exchange__get_packed_size
                     (const Omemo__OMEMOKeyExchange   *message);
size_t omemo__omemokey_exchange__pack
                     (const Omemo__OMEMOKeyExchange   *message,
                      uint8_t             *out);
size_t omemo__omemokey_exchange__pack_to_buffer
                     (const Omemo__OMEMOKeyExchange   *message,
                      ProtobufCBuffer     *buffer);
Omemo__OMEMOKeyExchange *
       omemo__omemokey_exchange__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data);
void   omemo__omemokey_exchange__free_unpacked
                     (Omemo__OMEMOKeyExchange *message,
                      ProtobufCAllocator *allocator);
/* --- per-message closures --- */

typedef void (*Omemo__OMEMOMessage_Closure)
                 (const Omemo__OMEMOMessage *message,
                  void *closure_data);
typedef void (*Omemo__OMEMOAuthenticatedMessage_Closure)
                 (const Omemo__OMEMOAuthenticatedMessage *message,
                  void *closure_data);
typedef void (*Omemo__OMEMOKeyExchange_Closure)
                 (const Omemo__OMEMOKeyExchange *message,
                  void *closure_data);

/* --- services --- */


/* --- descriptors --- */

extern const ProtobufCMessageDescriptor omemo__omemomessage__descriptor;
extern const ProtobufCMessageDescriptor omemo__omemoauthenticated_message__descriptor;
extern const ProtobufCMessageDescriptor omemo__omemokey_exchange__descriptor;

PROTOBUF_C__END_DECLS


#endif  /* PROTOBUF_C_OMEMO_2eproto__INCLUDED */
