+ c->mychallenge = xrealloc(c->mychallenge, len);
+
+ /* Convert the challenge from hexadecimal back to binary */
+
+ hex2bin(buffer, c->mychallenge, len);
+
+ /* The rest is done by send_chal_reply() */
+
+ c->allow_request = CHAL_REPLY;
+
+ if(c->outgoing) {
+ return send_chal_reply(c);
+ } else {
+ return true;
+ }
+}
+
+bool send_chal_reply(connection_t *c) {
+ const size_t len = rsa_size(myself->connection->rsa);
+ size_t digestlen = digest_length(&c->indigest);
+ char digest[digestlen * 2 + 1];
+