aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorweijun <unknown>2019-07-04 07:25:11 +0800
committerbell-sw <liberica@bell-sw.com>2020-01-19 09:13:18 +0300
commit1e3abe6e865b9ee6673223fbd22207a0a8ad9dfa (patch)
tree4ea0125a7b2700e7ee52dedf24369fd6f75d5898
parent1be5f4ecbee488823fdcc6f64709cd41bc3decc4 (diff)
downloadjdk8u_jdk-1e3abe6e865b9ee6673223fbd22207a0a8ad9dfa.tar.gz
8227061: KDC.java test behaves incorrectly when AS-REQ contains a PAData not PA-ENC-TS-ENC
Reviewed-by: mullan
-rw-r--r--test/sun/security/krb5/auto/KDC.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/test/sun/security/krb5/auto/KDC.java b/test/sun/security/krb5/auto/KDC.java
index af8fca976a..247d418453 100644
--- a/test/sun/security/krb5/auto/KDC.java
+++ b/test/sun/security/krb5/auto/KDC.java
@@ -1279,7 +1279,17 @@ public class KDC {
PAData[] inPAs = KDCReqDotPAData(asReq);
List<PAData> enc_outPAs = new ArrayList<>();
- if (inPAs == null || inPAs.length == 0) {
+
+ byte[] paEncTimestamp = null;
+ if (inPAs != null) {
+ for (PAData inPA : inPAs) {
+ if (inPA.getType() == Krb5.PA_ENC_TIMESTAMP) {
+ paEncTimestamp = inPA.getValue();
+ }
+ }
+ }
+
+ if (paEncTimestamp == null) {
Object preauth = options.get(Option.PREAUTH_REQUIRED);
if (preauth == null || preauth.equals(Boolean.TRUE)) {
throw new KrbException(Krb5.KDC_ERR_PREAUTH_REQUIRED);
@@ -1288,7 +1298,7 @@ public class KDC {
EncryptionKey pakey = null;
try {
EncryptedData data = newEncryptedData(
- new DerValue(inPAs[0].getValue()));
+ new DerValue(paEncTimestamp));
pakey = keyForUser(body.cname, data.getEType(), false);
data.decrypt(pakey, KeyUsage.KU_PA_ENC_TS);
} catch (Exception e) {