On 18/12/16 17:40, Steffan Karger wrote:
> Our internal options digest uses MD5 hashes to store the state, instead of
> storing the full options string.  There's nothing wrong with that, but it
> would still be better to use SHA256 because:
>  * That makes it easier to make OpenVPN "FIPS-compliant" (forbids MD5)
>  * We don't have to explain anymore that MD5 is fine too
> 
> The slightly less bytes for the digest (16 instead of 32) and operations
> per connection setup are not worth sticking to MD5.
> 
> Signed-off-by: Steffan Karger <stef...@karger.me>
> ---
> 
> This patch is meant for the master branch only.

I started looking at this patch .... and I think it needs some rework,
as it does a couple of unexpected things ...

[...snip...]
> diff --git a/src/openvpn/push.c b/src/openvpn/push.c
> index b6e12e1..a1733b0 100644
> --- a/src/openvpn/push.c
> +++ b/src/openvpn/push.c
> @@ -677,23 +677,17 @@ process_incoming_push_request(struct context *c)
>  #endif /* if P2MP_SERVER */
>  
>  static void
> -push_update_digest(md_ctx_t *ctx, struct buffer *buf, const struct options 
> *opt)
> +push_update_digest(md_ctx_t *ctx, struct buffer *buf)
>  {
>      char line[OPTION_PARM_SIZE];
>      while (buf_parse(buf, ',', line, sizeof(line)))
>      {
>          /* peer-id might change on restart and this should not trigger 
> reopening tun */
> -        if (strprefix(line, "peer-id "))
> +        if (strstr(line, "peer-id ") != line)
>          {
> -            continue;
> -        }
> -        /* tun reopen only needed if cipher change can change tun MTU */
> -        if (strprefix(line, "cipher ") && !opt->ce.tun_mtu_defined)
> -        {
> -            continue;
> +            md_ctx_update(ctx, (const uint8_t *) line, strlen(line));
>          }
>      }
> -    md_ctx_update(ctx, (const uint8_t *) line, strlen(line)+1);
>  }

This actually tries to revert commit ec4dff3bbdcc9fedf7844 ... which is
quite surprising.

[...snip...]
> @@ -736,15 +730,14 @@ process_incoming_push_msg(struct context *c,
>                                     option_types_found,
>                                     c->c2.es))
>              {
> -                push_update_digest(&c->c2.pulled_options_state, &buf_orig,
> -                                   &c->options);
> +                push_update_digest(&c->c2.pulled_options_state, &buf_orig);

And this too is also a revert of the same commit as above.

Had it been just a simple rebase, I'd be willing to tackle that
on-the-fly.  But as it tries to do some really unexpected reverts, there
might be a few other issues I'm not able to spot instantly.


-- 
kind regards,

David Sommerseth
OpenVPN Technologies, Inc


Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to