Strophe 0.13
XMPP client library
Data Structures | Functions | Variables
crypto.c File Reference

Public interface for digests and encodings used in XEPs. More...

Data Structures

struct  xmpp_sha1_t
 

Functions

static char * digest_to_string (const uint8_t *digest, char *s, size_t len)
 
static char * digest_to_string_alloc (xmpp_ctx_t *ctx, const uint8_t *digest)
 
char * xmpp_sha1 (xmpp_ctx_t *ctx, const unsigned char *data, size_t len)
 Compute SHA1 message digest.
 
void xmpp_sha1_digest (const unsigned char *data, size_t len, unsigned char *digest)
 Compute SHA1 message digest.
 
xmpp_sha1_t * xmpp_sha1_new (xmpp_ctx_t *ctx)
 Create new SHA1 object.
 
void xmpp_sha1_free (xmpp_sha1_t *sha1)
 Destroy SHA1 object.
 
void xmpp_sha1_update (xmpp_sha1_t *sha1, const unsigned char *data, size_t len)
 Update SHA1 context with the next portion of data.
 
void xmpp_sha1_final (xmpp_sha1_t *sha1)
 Finish SHA1 computation.
 
char * xmpp_sha1_to_string (xmpp_sha1_t *sha1, char *s, size_t slen)
 Return message digest rendered as a string.
 
char * xmpp_sha1_to_string_alloc (xmpp_sha1_t *sha1)
 Return message digest rendered as a string.
 
void xmpp_sha1_to_digest (xmpp_sha1_t *sha1, unsigned char *digest)
 Stores message digest to a user's buffer.
 
static size_t base64_encoded_len (size_t len)
 
static char * base64_encode (xmpp_ctx_t *ctx, const unsigned char *buffer, size_t len)
 
static size_t base64_decoded_len (const char *buffer, size_t len)
 
static void base64_decode (xmpp_ctx_t *ctx, const char *buffer, size_t len, unsigned char **out, size_t *outlen)
 
char * xmpp_base64_encode (xmpp_ctx_t *ctx, const unsigned char *data, size_t len)
 Base64 encoding routine.
 
char * xmpp_base64_decode_str (xmpp_ctx_t *ctx, const char *base64, size_t len)
 Base64 decoding routine.
 
void xmpp_base64_decode_bin (xmpp_ctx_t *ctx, const char *base64, size_t len, unsigned char **out, size_t *outlen)
 Base64 decoding routine.
 

Variables

static const unsigned char _base64_invcharmap [256]
 
static const char _base64_charmap [65]
 

Detailed Description

Public interface for digests and encodings used in XEPs.

Function Documentation

◆ digest_to_string()

static char * digest_to_string ( const uint8_t *  digest,
char *  s,
size_t  len 
)
static

◆ digest_to_string_alloc()

static char * digest_to_string_alloc ( xmpp_ctx_t *  ctx,
const uint8_t *  digest 
)
static

◆ base64_encoded_len()

static size_t base64_encoded_len ( size_t  len)
static

◆ base64_encode()

static char * base64_encode ( xmpp_ctx_t *  ctx,
const unsigned char *  buffer,
size_t  len 
)
static

◆ base64_decoded_len()

static size_t base64_decoded_len ( const char *  buffer,
size_t  len 
)
static

◆ base64_decode()

static void base64_decode ( xmpp_ctx_t *  ctx,
const char *  buffer,
size_t  len,
unsigned char **  out,
size_t *  outlen 
)
static

Variable Documentation

◆ _base64_invcharmap

const unsigned char _base64_invcharmap[256]
static
Initial value:
= {
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_charmap

const char _base64_charmap[65]
static
Initial value:
= {
'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', '+', '/', '='}