From 917d6e4981d1f7c1bfa241268a7dc8c15bee259b Mon Sep 17 00:00:00 2001 From: joe Date: Fri, 24 Feb 2017 16:22:33 +0000 Subject: * test/auth.c (struct digest_parms, make_digest): Prepare for non-MD5 algorithms. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1993 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845 --- test/auth.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/test/auth.c b/test/auth.c index 050b046..23c53a5 100644 --- a/test/auth.c +++ b/test/auth.c @@ -376,7 +376,7 @@ struct digest_parms { const char *realm, *nonce, *opaque, *domain; int rfc2617; int send_ainfo; - int md5_sess; + enum { ALG_MD5 = 0, ALG_MD5_SESS = 1, ALG_SHA256 = 2 } alg; int proxy; int send_nextnonce; int num_requests; @@ -426,7 +426,7 @@ static void make_digest(struct digest_state *state, struct digest_parms *parms, ne_md5_process_bytes(state->password, strlen(state->password), ctx); ne_md5_finish_ascii(ctx, h_a1); - if (parms->md5_sess) { + if (parms->alg == ALG_MD5_SESS) { ne_md5_reset_ctx(ctx); ne_md5_process_bytes(h_a1, 32, ctx); ne_md5_process_bytes(":", 1, ctx); @@ -692,7 +692,12 @@ static int serve_digest(ne_socket *sock, void *userdata) state.username = username; state.password = password; state.nc = 1; - state.algorithm = parms->md5_sess ? "MD5-sess" : "MD5"; + switch (parms->alg) { + case ALG_SHA256: state.algorithm = "SHA-256"; break; + case ALG_MD5_SESS: state.algorithm = "MD5-sess"; break; + default: + case ALG_MD5: state.algorithm = "MD5"; break; + } state.qop = "auth"; state.cnonce = state.digest = state.ncval = NULL; @@ -838,6 +843,11 @@ static int digest(void) /* Proxy + A-I */ { "WallyWorld", "this-is-also-a-nonce", "opaque-string", NULL, 1, 1, 0, 1, 0, 1, 0, fail_not }, +#if 0 + /* RFC 6717. */ + { "WallyWorld", "nonce-sha-nonce", "opaque-string", NULL, 1, 1, ALG_SHA256, 0, 0, 1, 0, fail_not }, +#endif + { NULL } }; size_t n; -- cgit v1.2.1