diff options
| author | whichbug <whichbug@github.com> | 2022-02-10 22:49:41 -0500 |
|---|---|---|
| committer | whichbug <whichbug@github.com> | 2022-02-22 15:27:30 -0500 |
| commit | ac3133450de12ba86c051265fc0f1b12bc57b40c (patch) | |
| tree | 0e02aac6f1277627c326c0d4d373af88887d4e30 /lib/base64.h | |
| parent | 6142a17949ce6dcc757e8878326f3967be1ade32 (diff) | |
isisd: fix #10505 using base64 encoding
Using base64 instead of the raw string to encode
the binary data.
Signed-off-by: whichbug <whichbug@github.com>
Diffstat (limited to 'lib/base64.h')
| -rw-r--r-- | lib/base64.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/base64.h b/lib/base64.h new file mode 100644 index 0000000000..3dc1559aa4 --- /dev/null +++ b/lib/base64.h @@ -0,0 +1,45 @@ +/* + * This is part of the libb64 project, and has been placed in the public domain. + * For details, see http://sourceforge.net/projects/libb64 + */ + +#ifndef _BASE64_H_ +#define _BASE64_H_ + +enum base64_encodestep { + step_A, step_B, step_C +}; + +struct base64_encodestate { + enum base64_encodestep step; + char result; + int stepcount; +}; + +void base64_init_encodestate(struct base64_encodestate *state_in); + +char base64_encode_value(char value_in); + +int base64_encode_block(const char *plaintext_in, int length_in, char *code_out, + struct base64_encodestate *state_in); + +int base64_encode_blockend(char *code_out, struct base64_encodestate *state_in); + + +enum base64_decodestep { + step_a, step_b, step_c, step_d +}; + +struct base64_decodestate { + enum base64_decodestep step; + char plainchar; +}; + +void base64_init_decodestate(struct base64_decodestate *state_in); + +signed char base64_decode_value(signed char value_in); + +int base64_decode_block(const char *code_in, int length_in, char *plaintext_out, + struct base64_decodestate *state_in); + +#endif /* _BASE64_H_ */ |
