From: David Aguilar <davvid@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Eric Sunshine <sunshine@sunshineco.com>,
Jack Nagel <jacknagel@gmail.com>, Git List <git@vger.kernel.org>
Subject: Re: Combining APPLE_COMMON_CRYPTO=1 and NO_OPENSSL=1 produces unexpected result
Date: Sat, 2 Jan 2016 15:49:23 -0800 [thread overview]
Message-ID: <20160102234923.GA14424@gmail.com> (raw)
In-Reply-To: <xmqqy4cf9ugm.fsf@gitster.mtv.corp.google.com>
On Sun, Dec 27, 2015 at 06:29:29PM -0800, Junio C Hamano wrote:
> Eric Sunshine <sunshine@sunshineco.com> writes:
>
> > So, it might be easier to think of NO_OPENSSL as really meaning NO_SSL
> > (that is, "disable all SSL-related functionality"). Since the only SSL
> > implementation Git knows how to use is OpenSSL, perhaps one can
> > consider the name NO_OPENSSL a historic anomaly.
>
> That is a good explanation of what is observed. I am not sure if it
> is a good justification, though. If you tell somebody who needs to
> link an implementation of SHA-1 in that you (1) do not want to use
> OpenSSL (or do not want to have SSL at all), and (2) do not mind
> using Apple's CommonCrypto, and if you _know_ that CommonCrypto is
> a possible source of the SHA-1 implementation, then I would think it
> is reasonable to expect that CommonCrypto SHA-1 to be used.
>
> Note. To further explain the situation, the only reason we
> added CommonCrypto knob in the build system was to allow
> people to use OpenSSL as the SSL implementation. Those who
> added the knob weren't making a conscious decision on which
> SHA-1 implementation to use in that scenario---they may not
> even have been aware of the fact that SHA-1 was offered by
> CommonCrypto for that matter.
My original motivation for going down the CommonCrypto route was,
"bummer, git is not compiling.. let me try to fix that, somehow".
I think the best long-term solution would be to abandon the
CommonCrypto backend, if possible. There's not a strong reason
for its existence. It always seemed kinda hacky, and bolted-on.
> A few questions we should be asking Apple users are:
>
> - Is there a strong-enough reason why those who do not want to use
> SSL should be able to choose the SHA-1 implementation available
> from CommonCrypto over block-sha1?
IMO, no.
> - Is CommonCrypto SHA-1 a better implementation than block-sha1?
I do not believe this to be true.
My gut feeling is that we cannot rely on the long-term stability
and availability of Apple's APIs. Block-sha1 works fine on
the current Apple hardware and I suspect that it (or openssl)
will continue to work fine in the future.
> Depending on the answers to these questions, we might want to:
>
> - add a knob to allow choosing between two available
> implementations (i.e. when NO_APPLE_COMMON_CRYPTO is unset) of
> SHA-1, regardless of the setting of NO_OPENSSL.
>
> - decide which one between CommonCrypto and block-sha1 should be
> the default.
How about, drop support for CommonCrypto so that there's no need
for the end-user to choose? That means we would get block-sha1
by default.
> If we end up deciding that we use block-sha1 as the default, we
> should do so even when both NO_OPENSSL and NO_APPLE_COMMON_CRYPTO
> are left unset. If we decide that block-sha1 should merely be a
> fallback when no other SHA-1 implementation is availble, on the
> other hand, we should be using CommonCrypto SHA-1 as long as the
> user did not set NO_APPLE_COMMON_CRYPTO explicitly, even when we are
> building with NO_OPENSSL.
>
> If people do not care, we can leave things as they are. It would
> seem mysterious to use block-sha1 when we are not using CommonCrypto
> for SSL (i.e. NO_OPENSSL), and otherwise CommonCrypto SHA-1, and
> would invite a puzzlement we saw in this thread, though.
I'm curious to see what others think about dropping CommonCrypto.
It seems like a good choice from a maintenance POV.
--
David
next prev parent reply other threads:[~2016-01-02 23:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-25 15:10 Combining APPLE_COMMON_CRYPTO=1 and NO_OPENSSL=1 produces unexpected result Jack Nagel
2015-12-23 8:51 ` Eric Sunshine
2015-12-28 2:29 ` Junio C Hamano
2016-01-02 23:49 ` David Aguilar [this message]
2016-01-15 18:52 ` Junio C Hamano
2016-01-15 20:28 ` Eric Sunshine
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160102234923.GA14424@gmail.com \
--to=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jacknagel@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.