#include <config.h>
#include <isc/base64.h>
#include <isc/buffer.h>
#include <isc/lex.h>
#include <isc/string.h>
#include <isc/util.h>
Go to the source code of this file.
Data Structures | |
struct | base64_decode_ctx_t |
State of a base64 decoding process in progress. More... | |
static const char | base64 [] |
static isc_result_t | str_totext (const char *source, isc_buffer_t *target) |
static isc_result_t | mem_tobuffer (isc_buffer_t *target, void *base, unsigned int length) |
Defines | |
#define | RETERR(x) |
Functions | |
isc_result_t | isc_base64_totext (isc_region_t *source, int wordlength, const char *wordbreak, isc_buffer_t *target) |
Convert data into base64 encoded text. | |
static void | base64_decode_init (base64_decode_ctx_t *ctx, int length, isc_buffer_t *target) |
static isc_result_t | base64_decode_char (base64_decode_ctx_t *ctx, int c) |
static isc_result_t | base64_decode_finish (base64_decode_ctx_t *ctx) |
isc_result_t | isc_base64_tobuffer (isc_lex_t *lexer, isc_buffer_t *target, int length) |
Convert base64 encoded text from a lexer context into data. | |
isc_result_t | isc_base64_decodestring (const char *cstr, isc_buffer_t *target) |
Decode a null-terminated base64 string. |
Definition in file base64.c.
#define RETERR | ( | x | ) |
Value:
do { \ isc_result_t _r = (x); \ if (_r != ISC_R_SUCCESS) \ return (_r); \ } while (0)
static isc_result_t str_totext | ( | const char * | source, | |
isc_buffer_t * | target | |||
) | [static] |
These static functions are also present in lib/dns/rdata.c. I'm not sure where they should go. -- bwelling
Definition at line 227 of file base64.c.
References isc_region::base, isc_buffer_add, isc_buffer_availableregion, ISC_R_NOSPACE, ISC_R_SUCCESS, and isc_region::length.
static isc_result_t mem_tobuffer | ( | isc_buffer_t * | target, | |
void * | base, | |||
unsigned int | length | |||
) | [static] |
Definition at line 243 of file base64.c.
References isc_region::base, isc_buffer_add, isc_buffer_availableregion, ISC_R_NOSPACE, ISC_R_SUCCESS, and isc_region::length.
isc_result_t isc_base64_totext | ( | isc_region_t * | source, | |
int | wordlength, | |||
const char * | wordbreak, | |||
isc_buffer_t * | target | |||
) |
Convert data into base64 encoded text.
Notes:
Definition at line 53 of file base64.c.
References isc_region::base, base64, ISC_R_SUCCESS, isc_region_consume, isc_region::length, RETERR, and str_totext().
Referenced by dst__privstruct_writefile(), generate_session_key(), isccc_base64_encode(), totext_any_tsig(), totext_cdnskey(), totext_cert(), totext_dnskey(), totext_hip(), totext_in_dhcid(), totext_ipseckey(), totext_key(), totext_keydata(), totext_openpgpkey(), totext_opt(), totext_rrsig(), totext_sig(), and totext_tkey().
static void base64_decode_init | ( | base64_decode_ctx_t * | ctx, | |
int | length, | |||
isc_buffer_t * | target | |||
) | [inline, static] |
Definition at line 111 of file base64.c.
References base64_decode_ctx_t::digits, ISC_FALSE, base64_decode_ctx_t::length, base64_decode_ctx_t::seen_end, and base64_decode_ctx_t::target.
Referenced by isc_base64_decodestring(), and isc_base64_tobuffer().
static isc_result_t base64_decode_char | ( | base64_decode_ctx_t * | ctx, | |
int | c | |||
) | [inline, static] |
Definition at line 120 of file base64.c.
References base64, base64_decode_ctx_t::digits, ISC_R_BADBASE64, ISC_R_SUCCESS, ISC_TRUE, base64_decode_ctx_t::length, mem_tobuffer(), RETERR, s, base64_decode_ctx_t::seen_end, base64_decode_ctx_t::target, and base64_decode_ctx_t::val.
Referenced by isc_base64_decodestring(), and isc_base64_tobuffer().
static isc_result_t base64_decode_finish | ( | base64_decode_ctx_t * | ctx | ) | [inline, static] |
Definition at line 171 of file base64.c.
References base64_decode_ctx_t::digits, ISC_R_BADBASE64, ISC_R_SUCCESS, ISC_R_UNEXPECTEDEND, and base64_decode_ctx_t::length.
Referenced by isc_base64_decodestring(), and isc_base64_tobuffer().
isc_result_t isc_base64_tobuffer | ( | isc_lex_t * | lexer, | |
isc_buffer_t * | target, | |||
int | length | |||
) |
Convert base64 encoded text from a lexer context into data.
Requires:
Definition at line 180 of file base64.c.
References isc_tokenvalue_t::as_textregion, isc_textregion::base, base64_decode_char(), base64_decode_finish(), base64_decode_init(), ISC_FALSE, isc_lex_getmastertoken(), isc_lex_ungettoken(), ISC_R_SUCCESS, isc_tokentype_string, ISC_TRUE, isc_textregion::length, base64_decode_ctx_t::length, RETERR, base64_decode_ctx_t::seen_end, token, isc_token::type, and isc_token::value.
Referenced by dst__privstruct_parse(), fromtext_any_tsig(), fromtext_cdnskey(), fromtext_cert(), fromtext_dnskey(), fromtext_in_dhcid(), fromtext_ipseckey(), fromtext_key(), fromtext_keydata(), fromtext_openpgpkey(), fromtext_rrsig(), fromtext_sig(), and fromtext_tkey().
isc_result_t isc_base64_decodestring | ( | const char * | cstr, | |
isc_buffer_t * | target | |||
) |
Decode a null-terminated base64 string.
Requires:
Definition at line 210 of file base64.c.
References base64_decode_char(), base64_decode_finish(), base64_decode_init(), ISC_R_SUCCESS, and RETERR.
Referenced by add_initial_keys(), bind9_check_key(), check_trusted_key(), dstkey_fromconfig(), evaluate_key(), fromtext_hip(), get_rndckey(), isccc_base64_decode(), register_keys(), setup_keystr(), and setup_text_key().
const char base64[] [static] |
Initial value:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
Definition at line 48 of file base64.c.
Referenced by base64_decode_char(), and isc_base64_totext().