From owner-freebsd-current@freebsd.org Sun Dec 29 05:10:39 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 C3CAB1D4603 for ; Sun, 29 Dec 2019 05:10:39 +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 47lpYB33Kyz47TP for ; Sun, 29 Dec 2019 05:10:37 +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 xBT5AZrw068956 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sat, 28 Dec 2019 21:10:35 -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 xBT5AZBf068955; Sat, 28 Dec 2019 21:10:35 -0800 (PST) (envelope-from sgk) Date: Sat, 28 Dec 2019 21:10:35 -0800 From: Steve Kargl To: Garance A Drosehn Cc: freebsd-current@freebsd.org Subject: Re: OpenSSL breaks factor(6) Message-ID: <20191229051035.GA68947@troutmask.apl.washington.edu> Reply-To: sgk@troutmask.apl.washington.edu References: <20191227212530.GA61314@troutmask.apl.washington.edu> <20191227214717.GA61475@troutmask.apl.washington.edu> <20191227224212.GA61594@troutmask.apl.washington.edu> <92557725-6612-46ED-BA39-FCE91EF6D091@rpi.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <92557725-6612-46ED-BA39-FCE91EF6D091@rpi.edu> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47lpYB33Kyz47TP 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.999,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: Sun, 29 Dec 2019 05:10:39 -0000 On Sat, Dec 28, 2019 at 10:46:52PM -0500, Garance A Drosehn wrote: > On 27 Dec 2019, at 17:42, 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. > > What if the user wants to factor a hexadecimal value which does not > happen to include [a...f]? > > How about recognizing a prefix of '0x' as a way to indicate the value > is hexadecimal? > An interested user will need to add that support. AFAIK, factor(6) has never recognized the 0x prefix, and I'm not trying to add new features. I'm simply fixing factor(6) to match its documentation, and trying to ensure WITH_OPENSSL and WITHOUT_OPENSSL give the same results where applicable. The logic is to first try to convert the string to a decimal if the leading digits are members of the set [0,...,9]. If this conversion fails, then try to convert the string as a hexadecimal number. A problem occurs because OpenSSL's BN_dec2bn does not fail for a number like '1abc' (converts it to 1) whereas the local implementation of BN_dec2bn fails during the conversion, and so the BN_hex2bn function is executed and '1abc' is converted. -- Steve