0
0
mirror of https://github.com/zeromq/libzmq.git synced 2024-12-27 07:31:03 +08:00

simplify test_security_curve.cpp with zmq_z85_encode

This commit is contained in:
Laurent Alebarde 2013-09-16 00:06:24 +02:00
parent d76f3f7c03
commit dc1f5e9f7c

View File

@ -30,39 +30,6 @@ static char server_secret [] = "JTKVSB%%)wK0E.X)V>+}o?pNmC{O&4W4b!Ni{Lh6";
// size * 5 / 4 bytes long plus 1 byte for the null terminator. Returns
// dest. Size must be a multiple of 4.
// Maps base 256 to base 85
static char encoder [85 + 1] = {
"0123456789" "abcdefghij" "klmnopqrst" "uvwxyzABCD"
"EFGHIJKLMN" "OPQRSTUVWX" "YZ.-:+=^!/" "*?&<>()[]{"
"}@%$#"
};
static char *
Z85_encode (char *dest, uint8_t *data, size_t size)
{
assert (size % 4 == 0);
unsigned int char_nbr = 0;
unsigned int byte_nbr = 0;
uint32_t value = 0;
while (byte_nbr < size) {
// Accumulate value in base 256 (binary)
value = value * 256 + data [byte_nbr++];
if (byte_nbr % 4 == 0) {
// Output value in base 85
unsigned int divisor = 85 * 85 * 85 * 85;
while (divisor) {
dest [char_nbr++] = encoder [value / divisor % 85];
divisor /= 85;
}
value = 0;
}
}
assert (char_nbr == size * 5 / 4);
dest [char_nbr] = 0;
return dest;
}
static void zap_handler (void *ctx)
{
// Create and bind ZAP socket
@ -87,7 +54,7 @@ static void zap_handler (void *ctx)
assert (size == 32);
char client_key_text [41];
Z85_encode (client_key_text, client_key, 32);
zmq_z85_encode (client_key_text, client_key, 32);
assert (streq (version, "1.0"));
assert (streq (mechanism, "CURVE"));