[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openssh-unix-dev
Subject:    Re: buffer_put_bignum2_from_string question
From:       Damien Miller <djm () mindrot ! org>
Date:       2014-04-08 23:05:41
Message-ID: alpine.BSO.2.11.1404090904210.18658 () natsu ! mindrot ! org
[Download RAW message or body]

On Tue, 8 Apr 2014, Jan Moj??? wrote:

> Hello,
> I have question about buffer_put_bignum2_from_string
> function used in kexc25519.c in (OpenSSH >= 6.5)
> 
> Is it 1:1 replacement for formating bignums from OpenSSL?

It is intended to be.

> If yes, then buffer_put_bignum2_from_string
> has different results for numbers starting with zeros.

Yes, there is a bug. I think this fixes it:

Index: bufaux.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/bufaux.c,v
retrieving revision 1.56
diff -u -p -r1.56 bufaux.c
--- bufaux.c	2 Feb 2014 03:44:31 -0000	1.56
+++ bufaux.c	8 Apr 2014 23:04:11 -0000
@@ -370,6 +370,8 @@ buffer_put_bignum2_from_string(Buffer *b
 
 	if (l > 8 * 1024)
 		fatal("%s: length %u too long", __func__, l);
+	for (; l > 0 && *s == 0; l--, s++)
+		;
 	p = buf = xmalloc(l + 1);
 	/*
 	 * If most significant bit is set then prepend a zero byte to

_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@mindrot.org
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic