|
Strophe
0.8
XMPP client library
|
SASL authentication. More...
Functions | |
| char * | sasl_plain (xmpp_ctx_t *ctx, const char *authid, const char *password) |
| generate authentication string for the SASL PLAIN mechanism | |
| static char * | _make_string (xmpp_ctx_t *ctx, const char *s, const unsigned len) |
| helpers for digest auth | |
| static char * | _make_quoted (xmpp_ctx_t *ctx, const char *s) |
| static hash_t * | _parse_digest_challenge (xmpp_ctx_t *ctx, const char *msg) |
| static void | _digest_to_hex (const char *digest, char *hex) |
| expand a 16 byte MD5 digest to a 32 byte hex representation | |
| static char * | _add_key (xmpp_ctx_t *ctx, hash_t *table, const char *key, char *buf, int *len, int quote) |
| append 'key="value"' to a buffer, growing as necessary | |
| char * | sasl_digest_md5 (xmpp_ctx_t *ctx, const char *challenge, const char *jid, const char *password) |
| generate auth response string for the SASL DIGEST-MD5 mechanism | |
| int | base64_encoded_len (xmpp_ctx_t *ctx, const unsigned len) |
| Base64 encoding routines. | |
| char * | base64_encode (xmpp_ctx_t *ctx, const unsigned char *const buffer, const unsigned len) |
| int | base64_decoded_len (xmpp_ctx_t *ctx, const char *const buffer, const unsigned len) |
| unsigned char * | base64_decode (xmpp_ctx_t *ctx, const char *const buffer, const unsigned len) |
Variables | |
| static const char | _base64_invcharmap [256] |
| Base64 encoding routines. | |
| static const char | _base64_charmap [65] |
| map of all 6-bit values to their corresponding byte in the base64 alphabet. | |
SASL authentication.
| char* sasl_plain | ( | xmpp_ctx_t * | ctx, |
| const char * | authid, | ||
| const char * | password | ||
| ) |
generate authentication string for the SASL PLAIN mechanism
low-level sasl routines
| static char* _make_string | ( | xmpp_ctx_t * | ctx, |
| const char * | s, | ||
| const unsigned | len | ||
| ) | [static] |
helpers for digest auth
| static char* _make_quoted | ( | xmpp_ctx_t * | ctx, |
| const char * | s | ||
| ) | [static] |
| static hash_t* _parse_digest_challenge | ( | xmpp_ctx_t * | ctx, |
| const char * | msg | ||
| ) | [static] |
| static void _digest_to_hex | ( | const char * | digest, |
| char * | hex | ||
| ) | [static] |
expand a 16 byte MD5 digest to a 32 byte hex representation
| static char* _add_key | ( | xmpp_ctx_t * | ctx, |
| hash_t * | table, | ||
| const char * | key, | ||
| char * | buf, | ||
| int * | len, | ||
| int | quote | ||
| ) | [static] |
append 'key="value"' to a buffer, growing as necessary
| char* sasl_digest_md5 | ( | xmpp_ctx_t * | ctx, |
| const char * | challenge, | ||
| const char * | jid, | ||
| const char * | password | ||
| ) |
generate auth response string for the SASL DIGEST-MD5 mechanism
| int base64_encoded_len | ( | xmpp_ctx_t * | ctx, |
| const unsigned | len | ||
| ) |
Base64 encoding routines.
Implemented according to RFC 3548
| char* base64_encode | ( | xmpp_ctx_t * | ctx, |
| const unsigned char *const | buffer, | ||
| const unsigned | len | ||
| ) |
| int base64_decoded_len | ( | xmpp_ctx_t * | ctx, |
| const char *const | buffer, | ||
| const unsigned | len | ||
| ) |
| unsigned char* base64_decode | ( | xmpp_ctx_t * | ctx, |
| const char *const | buffer, | ||
| const unsigned | len | ||
| ) |
const char _base64_invcharmap[256] [static] |
{
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,62, 65,65,65,63,
52,53,54,55, 56,57,58,59, 60,61,65,65, 65,64,65,65,
65, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
15,16,17,18, 19,20,21,22, 23,24,25,65, 65,65,65,65,
65,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
41,42,43,44, 45,46,47,48, 49,50,51,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65,
65,65,65,65, 65,65,65,65, 65,65,65,65, 65,65,65,65
}
Base64 encoding routines.
Implemented according to RFC 3548 map of all byte values to the base64 values, or to '65' which indicates an invalid character. '=' is '64'
const char _base64_charmap[65] [static] |
{
'A','B','C','D', 'E','F','G','H',
'I','J','K','L', 'M','N','O','P',
'Q','R','S','T', 'U','V','W','X',
'Y','Z','a','b', 'c','d','e','f',
'g','h','i','j', 'k','l','m','n',
'o','p','q','r', 's','t','u','v',
'w','x','y','z', '0','1','2','3',
'4','5','6','7', '8','9','+','/',
'='
}
map of all 6-bit values to their corresponding byte in the base64 alphabet.
Padding char is the value '64'