struct msgs_array;
void add_profile_entry (const char *, const char *);
-void adios (const char *, char *, ...) NORETURN;
+void adios (const char *, const char *, ...) NORETURN;
void admonish (char *, char *, ...);
-void advertise (const char *, char *, char *, va_list);
-void advise (const char *, char *, ...);
+void advertise (const char *, char *, const char *, va_list);
+void advise (const char *, const char *, ...);
char **argsplit (char *, char **, int *);
void argsplit_msgarg (struct msgs_array *, char *, char **);
void argsplit_insert (struct msgs_array *, char *, char **);
int context_del (char *);
char *context_find (const char *);
char *context_find_by_type (const char *, const char *, const char *);
+int context_find_prefix(const char *);
int context_foil (char *);
void context_read (void);
void context_replace (char *, char *);
void context_save (void);
char *copy (const char *, char *);
char **copyip (char **, char **, int);
-void cpydata (int, int, char *, char *);
+void cpydata (int, int, const char *, const char *);
void cpydgst (int, int, char *, char *);
char *cpytrim (const char *);
char *rtrim (char *);
void push (void);
char *pwd (void);
char *r1bindex(char *, int);
-void readconfig (struct node **, FILE *, char *, int);
+void readconfig (struct node **, FILE *, const char *, int);
int refile (char **, char *);
void ruserpass (char *, char **, char **);
int remdir (char *);
int sc_width(void);
int build_form (char *, char *, int *, char *, char *, char *, char *,
char *, char *);
-int sendsbr (char **, int, char *, char *, struct stat *, int);
+int sendsbr (char **, int, char *, char *, struct stat *, int, const char *);
int SOprintf (char *, ...);
int what_now (char *, int, int, char *, char *,
int, struct msgs *, char *, int, char *, int);
int writeBase64 (unsigned char *, size_t, unsigned char *);
int writeBase64raw (unsigned char *, size_t, unsigned char *);
+/*
+ * first argument: the string to be decoded
+ * second argument: the decoded bytes
+ * third argument: number of decoded bytes
+ * fourth argument: non-zero for text content, and for which CR's should be skipped
+ * fifth argument: for an MD5 digest, it can be null
+ */
+int decodeBase64 (const char *, const char **, size_t *, int, unsigned char *);
+
+void hexify (const unsigned char *, size_t, char **);
+
/*
* credentials management
*/