From owner-freebsd-current@freebsd.org Sat Dec 28 05:15:37 2019 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 986A71DAD91 for ; Sat, 28 Dec 2019 05:15:37 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "troutmask", Issuer "troutmask" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47lBjM66HBz3FRS for ; Sat, 28 Dec 2019 05:15:35 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (localhost [127.0.0.1]) by troutmask.apl.washington.edu (8.15.2/8.15.2) with ESMTPS id xBS5FX6H062641 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Fri, 27 Dec 2019 21:15:33 -0800 (PST) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.15.2/8.15.2/Submit) id xBS5FXNY062640; Fri, 27 Dec 2019 21:15:33 -0800 (PST) (envelope-from sgk) Date: Fri, 27 Dec 2019 21:15:33 -0800 From: Steve Kargl To: "Rodney W. Grimes" Cc: freebsd-current@freebsd.org Subject: Re: OpenSSL breaks factor(6) Message-ID: <20191228051533.GA62606@troutmask.apl.washington.edu> Reply-To: sgk@troutmask.apl.washington.edu References: <20191228035155.GA62416@troutmask.apl.washington.edu> <201912280442.xBS4grnp041518@gndrsh.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201912280442.xBS4grnp041518@gndrsh.dnsmgr.net> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47lBjM66HBz3FRS X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=washington.edu (policy=none); spf=none (mx1.freebsd.org: domain of sgk@troutmask.apl.washington.edu has no SPF policy when checking 128.95.76.21) smtp.mailfrom=sgk@troutmask.apl.washington.edu X-Spamd-Result: default: False [-2.23 / 15.00]; ARC_NA(0.00)[]; HAS_REPLYTO(0.00)[sgk@troutmask.apl.washington.edu]; DMARC_POLICY_SOFTFAIL(0.10)[washington.edu : No valid SPF, No valid DKIM,none]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; IP_SCORE(-0.23)[ip: (0.05), ipnet: 128.95.0.0/16(-0.26), asn: 73(-0.91), country: US(-0.05)]; MIME_GOOD(-0.10)[text/plain]; REPLYTO_ADDR_EQ_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:73, ipnet:128.95.0.0/16, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Dec 2019 05:15:37 -0000 On Fri, Dec 27, 2019 at 08:42:53PM -0800, Rodney W. Grimes wrote: > > On Fri, Dec 27, 2019 at 07:00:04PM -0800, Rodney W. Grimes wrote: > > > > On Fri, Dec 27, 2019 at 01:47:17PM -0800, Steve Kargl wrote: > > > > > > > > This patch now includes a fix for hexadecimal conversion. It > > > > simple scans the string for a hex digit in [a,...,f] and assumes > > > > that a hexadecimal string has been entered. A string that includes > > > > character from the decimal digits is assumed to by a decimal > > > > representation. > > > > > > It looks to me that the old code did the common method of > > > try to convert as decimal, if that fails, try it as hex, > > > if that fails report an error. > > > > > > Why is is that this common logic no longer works? > > > > AFAICT, BN_dec2bn and BN_hex2bn from OpenSSL scan from left > > to right, does a conversion with what is possible, and reports > > success. That is, for 1abc, BN_dec2bn can convert 1 to 1 and > > reports success. The local implementations of these functions, > > when OpenSSL is not used, does not do this partial conversion. > > I think I see now, the local implementaton checks for whole > string conversion with a test for newline or null as the last > byte converted by strtoul, the OpenSSL does not do this. > My patch fixes that. The manpage documents that '1abcp' should convert '1abc'. The 'p' simply terminates the conversion. The local implementations actually flags an error. I suspect the logic never worked as intended. The use of OpenSSL functions in factor(6) was introduced in r104722 by fanf@. > So why ever use the, um, IMHO broken for this application, > SSL versions of these functions? Or if we do need to use > them for some reason apply the whole string conversion > checks as wrappers around them? You'll need to ask fanf@, but I suspect the SSL version was introduced to allow the factoring of integers that exceed (uint64_t)(-1). -- Steve