1st round RFR 8191438: jarsigner should print when a timestamp will expire
Weijun Wang
weijun.wang at oracle.com
Tue Dec 5 09:35:59 UTC 2017
Hi All
Please take a look at http://cr.openjdk.java.net/~weijun/8191438/webrev.00/. Regression tests not added yet. I'd like to hear your comments on the output format.
Major changes:
1. New flags hasExpiringTsaCert and hasExpiredTsaCert for TSA cert chain. They are set and used similar to flags for the signer cert chain. Note that there is no notYetValidTsaCert, which I think is not very useful, and it's already covered by CertPath validation.
2. No more validity check on trusted certs in printCert(), since CertPath validation also does not check validity of trust anchors.
3. Break getAliasInfo() into 2 parts: getAliasInfo() and showAliasInfo(). showAliasInfo() will set flags and show extra info if -verbose after jar is signed.
The expiration date for all signer and TSA cert chains are shown when -verbose -certs are provided. Warning is only shown when expiration date (for either cert chain) is near.
An example:
$ jarsigner ... a.jar a -tsa http://localhost:8080/time=2017-11-20T00:00:00Z -verbose
requesting a signature timestamp
TSA location: http://localhost:8080/time=2017-11-20T00:00:00Z
updating: META-INF/A.SF
updating: META-INF/A.RSA
signing: ks
>>> Signer
X.509, CN=a
[certificate is valid from 11/5/17, 12:27 PM to 12/10/17, 12:27 PM]
X.509, CN=ca
[trusted certificate]
>>> TSA
X.509, CN=ts
[certificate will expire on 12/15/17, 12:27 PM]
X.509, CN=ca
[trusted certificate]
jar signed.
Warning:
The timestamp will expire within six months on 2017-12-15.
c $ jarsigner ... a.jar -verify -verbose:grouped -certs
s k 145 Tue Dec 05 10:23:46 CST 2017 META-INF/MANIFEST.MF
[entry was signed on 11/20/17, 8:00 AM]
>>> Signer
X.509, CN=a (a)
[certificate is valid from 11/5/17, 12:27 PM to 12/10/17, 12:27 PM]
X.509, CN=ca (ca)
[trusted certificate]
>>> TSA
X.509, CN=ts
[certificate will expire on 12/15/17, 12:27 PM]
X.509, CN=ca (ca)
[trusted certificate]
307 Tue Dec 05 12:27:08 CST 2017 META-INF/A.SF
3811 Tue Dec 05 12:27:08 CST 2017 META-INF/A.RSA
(Signature related entries)
0 Tue Dec 05 10:23:42 CST 2017 META-INF/
(Unsigned entries)
smk 8364 Tue Dec 05 10:23:00 CST 2017 ks
[entry was signed on 11/20/17, 8:00 AM]
>>> Signer
X.509, CN=a (a)
[certificate is valid from 11/5/17, 12:27 PM to 12/10/17, 12:27 PM]
X.509, CN=ca (ca)
[trusted certificate]
>>> TSA
X.509, CN=ts
[certificate will expire on 12/15/17, 12:27 PM]
X.509, CN=ca (ca)
[trusted certificate]
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
- Signed by "CN=a"
Digest algorithm: SHA-256
Signature algorithm: SHA256withRSA, 2048-bit key
Timestamped by "CN=ts" on Mon Nov 20 00:00:00 UTC 2017
Timestamp digest algorithm: SHA-256
Timestamp signature algorithm: SHA256withRSA, 2048-bit key
jar verified.
Warning:
The timestamp will expire within six months on 2017-12-15.
Thanks
Max
More information about the security-dev
mailing list