On 6/12/19 9:52 PM, Weijun Wang wrote:
Hi Sean,
The previous fix for JDK-8193255 already made the creation date useless. Before
that, each time cacerts was regenerated the date changed. I compared cacerts of
different releases and the same cert have difference creation dates.
The only other solution I can think of is to look at
make/autoconf/version-numbers and use the DEFAULT_VERSION_DATE=2019-09-17 there.
Yes, a possibility, use the GA release date, which maybe "makes more
sense" as a creation date, although a bit odd to have creation dates in
the future before GA.
I'll leave it up to you. I think nobody really looks at the creationDate.
Have you reviewed the code changes? You can see I stored the hash of the whole
file into the test. This means anyone updating the CA certs will have to create
cacerts and calculate the correct hash and update this test. I suppose this
won't be a hassle.
Not really, since you had to update VerifyCACerts anyway whenever a
change to cacerts was made, but what's the benefit of the hash? Are you
worried the cacerts binary will be corrupted somehow, or you just want
extra assurance something didn't go wrong?
It might be useful to run older versions of keytool against the cacerts
binary you created - this would give you more assurance that your
hand-coded format is correct. I would also try various commands, etc.
--Sean
Thanks,
Max
On Jun 13, 2019, at 4:15 AM, Sean Mullan <sean.mul...@oracle.com> wrote:
On 6/12/19 4:01 PM, Erik Joelsson wrote:
Hello,
We cannot rely on querying mercurial at build time. The source must be
buildable from a source distribution.
I had a feeling it wouldn't work but thought I would ask anyway.
Well, offhand I can't think of any better solution than notBefore then, unless
we included it as a comment in the PEM file, and then extracted it. With
notBefore, someone might be curious about why some keystore entries were
created so long ago (ex: the earliest notBefore date is 1996). But the
creationDate doesn't really have any usefulness for cacerts, so it's probably
ok.
--Sean
/Erik
On 2019-06-12 11:39, Sean Mullan wrote:
Using the certificate's notBefore date as the KeyStore entry creation date is
misleading since many of these root certs were not integrated into the JDK
until after they were created by the CA. Can we somehow extract the last
revision time of each PEM file instead? That is more aligned with the previous
creation date that we used.
--Sean
On 6/12/19 12:38 PM, Erik Joelsson wrote:
Hello Max,
Much appreciated! I will need to have this fixed one way or other in JDK 13, so
depending on if you get your fix there in time, I will retract my proposal. If
your fix only hits 14, I will push mine to 13.
/Erik
On 2019-06-12 08:41, Weijun Wang wrote:
This is my version of the fix:
http://cr.openjdk.java.net/~weijun/8225392/webrev.00/
Now you can still compare cacerts bit by bit.
Thanks,
Max
On Jun 12, 2019, at 10:50 PM, Weijun Wang <weijun.w...@oracle.com> wrote:
Hi Erik,
Are you going to fix this bug soon?
I am inspired by Martin's words and would like to update GenerateCacerts.java
so that as long as the certs and their aliases are unchanged, the output
cacerts will always be the same. I can send out a code review today.
Thanks,
Max
On Jun 12, 2019, at 10:59 AM, Weijun Wang <weijun.w...@oracle.com> wrote:
Good idea about the creation time.
--Max
On Jun 12, 2019, at 10:53 AM, Martin Buchholz <marti...@google.com> wrote:
Google culture really likes build output determinism, and we recently built our
own cacerts generator.
To get determinism, we are using cert digest as alias (must have a unique
alias, but value doesn't seem to matter much), and using cert notBefore instead
of current (build) timestamp.
On Mon, Jun 10, 2019 at 12:40 PM Erik Joelsson <erik.joels...@oracle.com> wrote:
Since JDK-8193255, when we started generating the cacerts file in the
build, the build compare baseline builds have started failing. It seems
the cacerts binary file has some non determinism built in so it doesn't
get generated exactly the same given the same input. This patch adds
special handling when comparing that file by comparing the output of
"keytool -list" on the files instead.
Bug: https://bugs.openjdk.java.net/browse/JDK-8225392
Webrev: http://cr.openjdk.java.net/~erikj/8225392/webrev.01/
/Erik