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', '+', '/', '='}