Toychain!
A toy blockchain in C
sign.h
Go to the documentation of this file.
1#ifndef __VOTE_H
2#define __VOTE_H
3
4#include "lib/rsa.h"
5#include "lib/types.h"
6#include <stdbool.h>
7
8
17typedef struct _Signature{
19 int len;
21
25typedef struct _Protected{
27 char* msg;
30
31Signature* init_signature_raw(int64* content, int size);
32Signature* init_signature(const int64* content, int size);
34void free_signature(Signature* sig);
35Signature* sign(char* mess, Key* sKey);
36
37char* signature_to_str(const Signature* sgn);
38Signature* str_to_signature(const char* str);
39Signature* str_to_signature_len(const char* str, size_t len);
40
41Protected* init_protected(Key* pKey, char* mess, Signature* sgn);
42Protected* init_protected_raw(Key* pKey, char* mess, Signature* sgn);
45bool verify(const Protected* pr);
46char* protected_to_str(const Protected* prc);
47Protected* str_to_protected(const char* str);
48Protected* str_to_protected_len(const char* str, size_t slen);
49
50#endif
header of rsa.c
Signature * str_to_signature(const char *str)
parse a string to a signature
Definition: sign.c:242
Signature * str_to_signature_len(const char *str, size_t len)
Converts a string to a signature, knowing it's length.
Definition: sign.c:265
char * protected_to_str(const Protected *prc)
convert a signed Protected (declaration) to string.
Definition: sign.c:311
void free_signature(Signature *sig)
free a Signature object.
Definition: sign.c:68
struct _Signature Signature
bool verify(const Protected *pr)
checks if the signature matches the message
Definition: sign.c:175
Signature * init_signature_raw(int64 *content, int size)
initialize a signaure without copying the data !!! takes ownership of content
Definition: sign.c:24
struct _Protected Protected
Signature * copy_signature(const Signature *o)
Copy a Signature object.
Definition: sign.c:59
Signature * sign(char *mess, Key *sKey)
sign a message
Definition: sign.c:82
Signature * init_signature(const int64 *content, int size)
initialize a signaure
Definition: sign.c:43
Protected * init_protected_raw(Key *pKey, char *mess, Signature *sgn)
create a signed declaration !!! Takes ownership of key, message and signature.
Definition: sign.c:102
Protected * str_to_protected_len(const char *str, size_t slen)
parse a string to a signed declaration
Definition: sign.c:365
char * signature_to_str(const Signature *sgn)
convert a signature to string
Definition: sign.c:201
Protected * copy_protected(const Protected *o)
copy protected
Definition: sign.c:152
Protected * str_to_protected(const char *str)
parse a string to a signed declaration
Definition: sign.c:349
Protected * init_protected(Key *pKey, char *mess, Signature *sgn)
create a signed declaration
Definition: sign.c:123
void free_protected(Protected *pr)
free a signed declaration and it's content
Definition: sign.c:160
Definition: rsa.h:16
Definition: sign.h:25
Signature * sig
Definition: sign.h:28
Key * pKey
Definition: sign.h:26
char * msg
Definition: sign.h:27
Definition: sign.h:17
int64 * xs
Definition: sign.h:18
int len
Definition: sign.h:19
a file with comfy aliases for long type signatures
#define int64
alias for long long int
Definition: types.h:17