mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 23:34:52 +02:00
8268488: More valuable DerValues
Reviewed-by: weijun, ahgross, rhalade
This commit is contained in:
parent
29f61b3b0a
commit
f18deeb69e
4 changed files with 32 additions and 6 deletions
|
@ -383,8 +383,15 @@ public class SignerInfo implements DerEncoder {
|
|||
if (digestAlgName.equals("SHAKE256")
|
||||
|| digestAlgName.equals("SHAKE256-LEN")) {
|
||||
if (digestAlgName.equals("SHAKE256-LEN")) {
|
||||
int v = new DerValue(digestAlgorithmId
|
||||
.getEncodedParams()).getInteger();
|
||||
// RFC8419: for EdDSA in CMS, the id-shake256-len
|
||||
// algorithm id must contain parameter value 512
|
||||
// encoded as a positive integer value
|
||||
byte[] params = digestAlgorithmId.getEncodedParams();
|
||||
if (params == null) {
|
||||
throw new SignatureException(
|
||||
"id-shake256-len oid missing length");
|
||||
}
|
||||
int v = new DerValue(params).getInteger();
|
||||
if (v != 512) {
|
||||
throw new SignatureException(
|
||||
"Unsupported id-shake256-" + v);
|
||||
|
@ -527,6 +534,7 @@ public class SignerInfo implements DerEncoder {
|
|||
if (spec == null) {
|
||||
throw new NoSuchAlgorithmException("Missing PSSParameterSpec for RSASSA-PSS algorithm");
|
||||
}
|
||||
|
||||
if (!AlgorithmId.get(spec.getDigestAlgorithm()).equals(digAlgId)) {
|
||||
throw new NoSuchAlgorithmException("Incompatible digest algorithm");
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2018, 2021, 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
|
||||
|
@ -102,8 +102,13 @@ public final class PSSParameters extends AlgorithmParametersSpi {
|
|||
if (!val.getOID().equals(AlgorithmId.MGF1_oid)) {
|
||||
throw new IOException("Only MGF1 mgf is supported");
|
||||
}
|
||||
|
||||
byte[] encodedParams = val.getEncodedParams();
|
||||
if (encodedParams == null) {
|
||||
throw new IOException("Missing MGF1 parameters");
|
||||
}
|
||||
AlgorithmId params = AlgorithmId.parse(
|
||||
new DerValue(val.getEncodedParams()));
|
||||
new DerValue(encodedParams));
|
||||
String mgfDigestName = params.getName();
|
||||
switch (mgfDigestName) {
|
||||
case "SHA-1":
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue