aboutsummaryrefslogtreecommitdiff
path: root/src/lib/include/gnunet_dbus_lib_signature.h
blob: b5ebc8411867f298eb5ef90d65362ce45ad91613 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef GNUNET_DBUS_LIB_SIGNATURE_H
#define GNUNET_DBUS_LIB_SIGNATURE_H

#include <dbus/dbus.h>
#include "gnunet_crypto_dbus_lib.h"

#define GNUNET_DBUS_SIGNATURE_BYTE          DBUS_TYPE_BYTE_AS_STRING
#define GNUNET_DBUS_SIGNATURE_BOOLEAN       DBUS_TYPE_BOOLEAN_AS_STRING
#define GNUNET_DBUS_SIGNATURE_INT16         DBUS_TYPE_INT16_AS_STRING
#define GNUNET_DBUS_SIGNATURE_UINT16        DBUS_TYPE_UINT16_AS_STRING
#define GNUNET_DBUS_SIGNATURE_INT32         DBUS_TYPE_INT32_AS_STRING
#define GNUNET_DBUS_SIGNATURE_UINT32        DBUS_TYPE_UINT32_AS_STRING
#define GNUNET_DBUS_SIGNATURE_INT64         DBUS_TYPE_INT64_AS_STRING
#define GNUNET_DBUS_SIGNATURE_UINT64        DBUS_TYPE_UINT64_AS_STRING
#define GNUNET_DBUS_SIGNATURE_DOUBLE        DBUS_TYPE_DOUBLE_AS_STRING
#define GNUNET_DBUS_SIGNATURE_STRING        DBUS_TYPE_STRING_AS_STRING
#define GNUNET_DBUS_SIGNATURE_OBJECT_PATH   DBUS_TYPE_OBJECT_PATH_AS_STRING
#define GNUNET_DBUS_SIGNATURE_SIGNATURE     DBUS_TYPE_SIGNATURE_AS_STRING
#define GNUNET_DBUS_SIGNATURE_UNIX_FD       DBUS_TYPE_UNIX_FD_AS_STRING
#define GNUNET_DBUS_SIGNATURE_VARIANT       DBUS_TYPE_VARIANT_AS_STRING

#define GNUNET_DBUS_SIGNATURE_ARRAY(s)      DBUS_TYPE_ARRAY_AS_STRING s
#define GNUNET_DBUS_SIGNATURE_DICT(s)       DBUS_TYPE_ARRAY_AS_STRING DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING s DBUS_DICT_ENTRY_END_CHAR_AS_STRING
#define GNUNET_DBUS_SIGNATURE_STRUCT(s)     DBUS_STRUCT_BEGIN_CHAR_AS_STRING s DBUS_STRUCT_END_CHAR_AS_STRING

#define GNUNET_DBUS_SIGNATURE_BITFIELD      GNUNET_DBUS_SIGNATURE_VARIANT
#define GNUNET_DBUS_SIGNATURE_ENUM          GNUNET_DBUS_SIGNATURE_VARIANT

#define GNUNET_DBUS_SIGNATURE_HASHCODE      GNUNET_DBUS_SIGNATURE_VARIANT
#define GNUNET_DBUS_SIGNATURE_PEER_IDENTITY GNUNET_DBUS_SIGNATURE_STRUCT(GNUNET_CRYPTO_DBUS_SIGNATURE_EDDSA_PUBLIC_KEY)

/**
 * Formats the given DBus typecode as a string. For example,
 * GNUNET_DBUS_signature_typecode_to_string(DBUS_TYPE_UINT32) will return the
 * constant string "u"
 */
const char *
GNUNET_DBUS_signature_typecode_to_string (
    int typecode);

#endif