< prev index next >
src/java.base/share/classes/java/security/cert/X509Certificate.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 674,691 ****
* @since 1.8
*/
public void verify(PublicKey key, Provider sigProvider)
throws CertificateException, NoSuchAlgorithmException,
InvalidKeyException, SignatureException {
- String sigName = getSigAlgName();
Signature sig = (sigProvider == null)
! ? Signature.getInstance(sigName)
! : Signature.getInstance(sigName, sigProvider);
try {
! SignatureUtil.initVerifyWithParam(sig, key,
! SignatureUtil.getParamSpec(sigName, getSigAlgParams()));
} catch (ProviderException e) {
throw new CertificateException(e.getMessage(), e.getCause());
} catch (InvalidAlgorithmParameterException e) {
throw new CertificateException(e);
}
--- 674,693 ----
* @since 1.8
*/
public void verify(PublicKey key, Provider sigProvider)
throws CertificateException, NoSuchAlgorithmException,
InvalidKeyException, SignatureException {
Signature sig = (sigProvider == null)
! ? Signature.getInstance(getSigAlgName())
! : Signature.getInstance(getSigAlgName(), sigProvider);
+ sig.initVerify(key);
+
+ // set parameters after Signature.initSign/initVerify call,
+ // so the deferred provider selections occur when key is set
try {
! SignatureUtil.specialSetParameter(sig, getSigAlgParams());
} catch (ProviderException e) {
throw new CertificateException(e.getMessage(), e.getCause());
} catch (InvalidAlgorithmParameterException e) {
throw new CertificateException(e);
}
< prev index next >