28 #include "gnunet_signatures.h"
35 #define TEST_DIFFICULTY 5
38 "6fea32c05af58bfa979553d188605fd57d8bf9cc263b78d5f7478c07b998ed70";
41 "5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65";
44 parsehex (
char *src,
char *dst,
size_t dstlen,
int invert)
52 while (sscanf (
data,
" %02x%n", &read_byte, &off) == 1)
55 dst[dstlen - 1 - data_len++] = read_byte;
57 dst[data_len++] = read_byte;
72 for (i = 0; i < buf_len; i++)
76 if ((0 != fold) && (i % fold == 0))
86 printf (
"%02x", ((
unsigned char*)
buf)[buf_len - 1 - i]);
88 printf (
"%02x", ((
unsigned char*)
buf)[i]);
120 fprintf (stdout,
"\n");
121 fprintf (stdout,
"Zone identifier (ztype|zkey):\n");
125 fprintf (stdout,
"\n");
126 fprintf (stdout,
"Encoded zone identifier (zkl = zTLD):\n");
127 fprintf (stdout,
"%s\n", ztld);
128 fprintf (stdout,
"\n");
135 fprintf (stdout,
"Difficulty (%d base difficulty + %d epochs): %d\n\n",
146 fprintf (stdout,
"Signed message:\n");
158 fprintf (stdout,
"Proof:\n");
186 fprintf (stdout,
"Zone private key (d, big-endian):\n");
193 fprintf (stdout,
"Zone private key (d):\n");
220 "gnunet-revocation-tvg",
221 "Generate test vectors for revocation",
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_OPTION_END
struct GNUNET_GETOPT_CommandLineOption options[]
static const struct GNUNET_CONFIGURATION_Handle * cfg
Configuration we are using.
static struct GNUNET_ATS_PerformanceHandle * ph
ATS performance handle used.
static char * line
Desired phone line (string to be converted to a hash).
uint32_t data
The data value.
static void print_bytes_(void *buf, size_t buf_len, int fold, int in_be)
int parsehex(char *src, char *dst, size_t dstlen, int invert)
static void run_with_key(struct GNUNET_IDENTITY_PrivateKey *id_priv)
static void print_bytes(void *buf, size_t buf_len, int fold)
static void run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
Main function that will be run.
int main(int argc, char *const *argv)
The main function of the test vector generation tool.
static unsigned int pow_passes
Pow passes.
API to perform and access key revocations.
Convenience API for writing testcases for GNUnet.
enum GNUNET_GenericReturnValue GNUNET_IDENTITY_key_get_public(const struct GNUNET_IDENTITY_PrivateKey *privkey, struct GNUNET_IDENTITY_PublicKey *key)
Retrieves the public key representation of a private key.
ssize_t GNUNET_IDENTITY_public_key_get_length(const struct GNUNET_IDENTITY_PublicKey *key)
Get the compacted length of a GNUNET_IDENTITY_PublicKey.
@ GNUNET_IDENTITY_TYPE_ECDSA
The identity type.
@ GNUNET_IDENTITY_TYPE_EDDSA
EDDSA identity.
int GNUNET_log_setup(const char *comp, const char *loglevel, const char *logfile)
Setup logging.
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.
#define GNUNET_malloc(size)
Wrapper around malloc.
#define GNUNET_free(ptr)
Wrapper around free.
enum GNUNET_GenericReturnValue GNUNET_PROGRAM_run(int argc, char *const *argv, const char *binaryName, const char *binaryHelp, const struct GNUNET_GETOPT_CommandLineOption *options, GNUNET_PROGRAM_Main task, void *task_cls)
Run a standard GNUnet command startup sequence (initialize loggers and configuration,...
size_t GNUNET_REVOCATION_proof_get_size(const struct GNUNET_REVOCATION_PowP *pow)
void GNUNET_REVOCATION_pow_init(const struct GNUNET_IDENTITY_PrivateKey *key, struct GNUNET_REVOCATION_PowP *pow)
Initializes a fresh PoW computation.
enum GNUNET_GenericReturnValue GNUNET_REVOCATION_pow_round(struct GNUNET_REVOCATION_PowCalculationHandle *pc)
Calculate a single round in the key revocation PoW.
#define GNUNET_REVOCATION_MAX_PROOF_SIZE
Maximum length of a revocation.
enum GNUNET_GenericReturnValue GNUNET_REVOCATION_check_pow(const struct GNUNET_REVOCATION_PowP *pow, unsigned int matching_bits, struct GNUNET_TIME_Relative epoch_duration)
Check if the given proof-of-work is valid.
struct GNUNET_REVOCATION_PowCalculationHandle * GNUNET_REVOCATION_pow_start(struct GNUNET_REVOCATION_PowP *pow, int epochs, unsigned int difficulty)
Starts a proof-of-work calculation given the pow object as well as target epochs and difficulty.
char * GNUNET_STRINGS_data_to_string(const void *data, size_t size, char *out, size_t out_size)
Convert binary data to ASCII encoding using CrockfordBase32.
struct GNUNET_TIME_Relative GNUNET_TIME_relative_multiply(struct GNUNET_TIME_Relative rel, unsigned long long factor)
Multiply relative time by a given factor.
#define GNUNET_TIME_UNIT_YEARS
One year (365 days).
messages for key revocation
GNUNET_NETWORK_STRUCT_END struct GNUNET_REVOCATION_SignaturePurposePS * REV_create_signature_message(const struct GNUNET_REVOCATION_PowP *pow)
Create the revocation metadata to sign for a revocation message.
uint32_t size
How many bytes does this signature sign? (including this purpose header); in network byte order (!...
Definition of a command line option.
A private key for an identity as per LSD0001.
uint32_t type
Type of public key.
struct GNUNET_CRYPTO_EcdsaPrivateKey ecdsa_key
An ECDSA identity key.
struct GNUNET_CRYPTO_EddsaPrivateKey eddsa_key
AN EdDSA identtiy key.
An identity key as per LSD0001.
The handle to a PoW calculation.
Struct for a proof of work as part of the revocation.
uint64_t pow[32]
The PoWs.
The signature object we use for the PoW.
struct GNUNET_CRYPTO_EccSignaturePurpose purpose
The signature purpose.
Time for relative time used by GNUnet, in microseconds.