Base64-decoding packaged message works.
[easyotp.git] / libotp.h
blob3569c2db45d3a9672f46c925acd7a2eaae7e8dd7
1 /** Practical One-time Pad Library
3 * Created:20080514
4 * By Jeff Connelly
5 */
7 #define MARKER_TO "to:"
8 #define MARKER_BEGIN "--EMOTP_BEGIN--"
9 #define MARKER_END "--EMOTP_END--"
11 #define OFFSET_FILE_EXTENSION ".off"
12 #define OFFSET_SIZE 11 /* strlen("4294967296") + 1 */
14 #define PAD_NAME_LENGTH 4
16 /** Packaged up encrypted message, ready for transport. */
17 typedef struct _MESSAGE {
18 unsigned long offset;
19 char pad_name[PAD_NAME_LENGTH];
20 unsigned long length;
21 char *cipher_text;
22 } MESSAGE;
24 typedef struct _PAD {
25 char *local_filename;
26 char *name;
27 FILE *fp;
28 struct _PAD *next;
29 /* Use read_offset() and write_offset() to access offset. */
30 } PAD;
32 void show_pads();
33 FILE *open_offset_file(PAD *p, char *mode);
34 unsigned long read_offset(PAD *p);
35 void write_offset(PAD *p, unsigned long offset);
36 void load_pad(char *local_filename);
37 void free_pads();
38 MESSAGE *unpackage();
39 void free_message(MESSAGE *);