static int opt_timeout = 30;
-static void sha1_hash(char *out, char *in);
+static void sha1_hash(char *out, char *in, unsigned int len);
static int b64encode(unsigned char *in, size_t ilen, unsigned char *out, size_t olen);
static void ldl_random_string(char *buf, uint16_t len, char *set);
ap = malloc(sizeof(*ap));
assert(ap != NULL);
memset(ap, 0, sizeof(*ap));
- sha1_hash(ap->hash, (char *)image);
+ sha1_hash(ap->hash, (char *)image, bytes);
ap->path = strdup(path);
key = ldl_handle_strdup(handle, from);
return 0;
}
-static void sha1_hash(char *out, char *in)
+static void sha1_hash(char *out, char *in, unsigned int len)
{
sha_context_t sha;
char *p;
SHA1Init(&sha);
- SHA1Update(&sha, (unsigned char *) in, (unsigned int)strlen(in));
+ SHA1Update(&sha, (unsigned char *) in, len);
SHA1Final(digest, &sha);
char handshake[512] = "";
snprintf(secret, sizeof(secret), "%s%s", pak->id, handle->password);
- sha1_hash(hash, secret);
+ sha1_hash(hash, secret, strlen(secret));
snprintf(handshake, sizeof(handshake), "<handshake>%s</handshake>", hash);
iks_send_raw(handle->parser, handshake);
handle->state = CS_START;