Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/java/security/cert/X509Certificate/VerifyDefault.java
47490 views
1
/*
2
* Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/**
25
* @test
26
* @bug 8175029
27
* @library ../../testlibrary
28
* @summary check that default implementation of
29
* X509Certificate.verify(PublicKey, Provider) works on custom
30
* X509Certificate impl.
31
*/
32
33
import java.math.BigInteger;
34
import java.security.InvalidKeyException;
35
import java.security.NoSuchAlgorithmException;
36
import java.security.NoSuchProviderException;
37
import java.security.Principal;
38
import java.security.Provider;
39
import java.security.PublicKey;
40
import java.security.SignatureException;
41
import java.security.cert.CertificateEncodingException;
42
import java.security.cert.CertificateException;
43
import java.security.cert.CertificateExpiredException;
44
import java.security.cert.CertificateNotYetValidException;
45
import java.security.cert.X509Certificate;
46
import java.util.Collection;
47
import java.util.Date;
48
import java.util.List;
49
import java.util.Set;
50
51
public class VerifyDefault {
52
private static final String TEST_CERT =
53
"-----BEGIN CERTIFICATE-----\n" +
54
"MIICvTCCAaWgAwIBAgIEGYqL9TANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRT\n" +
55
"ZWxmMB4XDTE3MDMyODE2NDcyNloXDTE3MDYyNjE2NDcyNlowDzENMAsGA1UEAxME\n" +
56
"U2VsZjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL1pfSJljFVSABOL\n" +
57
"tJbIVPEkz1+2AFgzY1hqwE0EH80lvhOEkiPPYCKwBE5VTZdyFfwFjpyx7eEeJMNT\n" +
58
"o7cixfmkQaiXHr/S1AS4BRTqLG/zgLzoJpVbzi45rnVEZc0oTm11KG3uUxkZTRr3\n" +
59
"5ORbYyZpkscKwHL2M0J/1GmnA1hmhQdwUQyIKxg4eKQwyE+/TdbFlCWVNnOlb+91\n" +
60
"eXvS11nIJ1oaBgn7u4qihuVmFmngLMxExnLYKV6AwdkwFD6pERObclRD9vAl5eUk\n" +
61
"+sM6zQYwfLdyC2i8e+ETBeOg1ijptM4KT5Uaq89zxjLR0DPH4S+aILp3gYHGrW5r\n" +
62
"eMxZAEMCAwEAAaMhMB8wHQYDVR0OBBYEFOME39JtbjzQaK3ufpKo/Pl4sZ8XMA0G\n" +
63
"CSqGSIb3DQEBCwUAA4IBAQCDcw0+Sf0yeVROVlb2/VV3oIblHkGQheXeIurW64k7\n" +
64
"tEzHtx9i8dnj5lzTZNH6hU4GRlyULbSDzjcM3P2XFRsM+0a/kEJZVqnLz5ji//7/\n" +
65
"ZXaRX0TiE2IfFOTGbO6LusO3yR4tOER/WHllz2H21C2SbW3+92Ou28glTZa42AAZ\n" +
66
"mUj9j+p6mZqD4/tUBqAEqqQoMIhw9CNjc46STNayBjt/0/+I2pfy6LagrMbjBzZ0\n" +
67
"A5kXg9WjnywGk8XFr/3RZz8DrUmCYs2qCYLCHQHsuCE6gCuf9wKhKyD51MFXXRr0\n" +
68
"cyG6LYQjrreMHYk4ZfN2NPC6lGjWxB5mIbV/DuikCnYu\n" +
69
"-----END CERTIFICATE-----";
70
71
private static class TestX509Certificate extends X509Certificate {
72
private final X509Certificate cert;
73
TestX509Certificate(X509Certificate cert) {
74
this.cert = cert;
75
}
76
public Set<String> getCriticalExtensionOIDs() {
77
return cert.getCriticalExtensionOIDs();
78
}
79
public byte[] getExtensionValue(String oid) {
80
return cert.getExtensionValue(oid);
81
}
82
public Set<String> getNonCriticalExtensionOIDs() {
83
return cert.getNonCriticalExtensionOIDs();
84
}
85
public boolean hasUnsupportedCriticalExtension() {
86
return cert.hasUnsupportedCriticalExtension();
87
}
88
public void checkValidity() throws CertificateExpiredException,
89
CertificateNotYetValidException {
90
cert.checkValidity();
91
}
92
public void checkValidity(Date date) throws CertificateExpiredException,
93
CertificateNotYetValidException {
94
cert.checkValidity(date);
95
}
96
public int getVersion() { return cert.getVersion(); }
97
public BigInteger getSerialNumber() { return cert.getSerialNumber(); }
98
public Principal getIssuerDN() { return cert.getIssuerDN(); }
99
public Principal getSubjectDN() { return cert.getSubjectDN(); }
100
public Date getNotBefore() { return cert.getNotBefore(); }
101
public Date getNotAfter() { return cert.getNotAfter(); }
102
public byte[] getTBSCertificate() throws CertificateEncodingException {
103
return cert.getTBSCertificate();
104
}
105
public byte[] getSignature() { return cert.getSignature(); }
106
public String getSigAlgName() { return cert.getSigAlgName(); }
107
public String getSigAlgOID() { return cert.getSigAlgOID(); }
108
public byte[] getSigAlgParams() { return cert.getSigAlgParams(); }
109
public boolean[] getIssuerUniqueID() {
110
return cert.getIssuerUniqueID();
111
}
112
public boolean[] getSubjectUniqueID() {
113
return cert.getSubjectUniqueID();
114
}
115
public boolean[] getKeyUsage() { return cert.getKeyUsage(); }
116
public int getBasicConstraints() { return cert.getBasicConstraints(); }
117
public byte[] getEncoded() throws CertificateEncodingException {
118
return cert.getEncoded();
119
}
120
public void verify(PublicKey key) throws CertificateException,
121
InvalidKeyException, NoSuchAlgorithmException,
122
NoSuchProviderException, SignatureException {
123
cert.verify(key);
124
}
125
public void verify(PublicKey key, String sigProvider) throws
126
CertificateException, InvalidKeyException, NoSuchAlgorithmException,
127
NoSuchProviderException, SignatureException {
128
cert.verify(key, sigProvider);
129
}
130
public PublicKey getPublicKey() { return cert.getPublicKey(); }
131
public String toString() { return cert.toString(); }
132
}
133
134
public static void main(String[] args) throws Exception {
135
X509Certificate cert = CertUtils.getCertFromString(TEST_CERT);
136
new TestX509Certificate(cert).verify(cert.getPublicKey(),
137
(Provider)null);
138
}
139
}
140
141