28# if __BYTE_ORDER == __BIG_ENDIAN
32#define byteReverse(buf, len)
44 t = (uint32_t) ((
unsigned)
buf[3] << 8 |
buf[2]) << 16 |
45 ((
unsigned)
buf[1] << 8 |
buf[0]);
46 *(uint32_t *)
buf = t;
59 ctx->
buf[0] = 0x67452301;
60 ctx->
buf[1] = 0xefcdab89;
61 ctx->
buf[2] = 0x98badcfe;
62 ctx->
buf[3] = 0x10325476;
79 if ((ctx->
bits[0] = t + ((uint32_t)
len << 3)) < t)
88 unsigned char *p = (
unsigned char *) ctx->
in + t;
104 memcpy(ctx->
in,
buf, 64);
127 count = (ctx->
bits[0] >> 3) & 0x3F;
135 count = 64 - 1 - count;
145 memset(ctx->
in, 0, 56);
148 memset(p, 0, count - 8);
153 in_buf = (uint32_t *) ctx->
in;
154 in_buf[14] = ctx->
bits[0];
155 in_buf[15] = ctx->
bits[1];
159 memcpy(digest, ctx->
buf, 16);
160 memset(ctx, 0,
sizeof(*ctx));
168#define F1(x, y, z) (z ^ (x & (y ^ z)))
169#define F2(x, y, z) F1(z, x, y)
170#define F3(x, y, z) (x ^ y ^ z)
171#define F4(x, y, z) (y ^ (x | ~z))
174#define MD5STEP(f, w, x, y, z, data, s) \
175 ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x )
184 register uint32_t
a,
b,
c,
d;
Asterisk main include file. File version handling, generic pbx functions.
Asterisk architecture endianess compatibility definitions.
static int len(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t buflen)
#define MD5STEP(f, w, x, y, z, data, s)
void MD5Transform(uint32_t buf[4], uint32_t const in[16])
#define byteReverse(buf, len)
void MD5Init(struct MD5Context *ctx)
void MD5Final(unsigned char digest[16], struct MD5Context *ctx)
void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len)