Skip to content

Commit 1ffde71

Browse files
committed
Inform key sizes in the exception when failing check.
1 parent 89d15ba commit 1ffde71

2 files changed

Lines changed: 14 additions & 10 deletions

File tree

src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11HKDF.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,8 @@ private <T> T derive(String alg, AlgorithmParameterSpec derivationSpec,
221221
} catch (PKCS11Exception e) {
222222
if (e.match(CKR_KEY_SIZE_RANGE)) {
223223
throw new InvalidAlgorithmParameterException("Invalid key " +
224-
"size for algorithm '" + alg + "'.", e);
224+
"size (" + outLen + " bytes) for algorithm '" + alg +
225+
"'.", e);
225226
}
226227
throw new ProviderException("HKDF derivation for algorithm '" +
227228
alg + "' failed.", e);

src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyGenerator.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ private static int checkKeySize(long keyGenMech, int keySize,
137137
switch ((int)keyGenMech) {
138138
case (int)CKM_DES_KEY_GEN:
139139
if ((keySize != 64) && (keySize != 56)) {
140-
throw new InvalidAlgorithmParameterException
141-
("DES key length must be 56 bits");
140+
throw new InvalidAlgorithmParameterException("DES key " +
141+
"length was " + keySize + " but must be 56 bits");
142142
}
143143
sigKeySize = 56;
144144
break;
@@ -149,23 +149,26 @@ private static int checkKeySize(long keyGenMech, int keySize,
149149
} else if ((keySize == 168) || (keySize == 192)) {
150150
sigKeySize = 168;
151151
} else {
152-
throw new InvalidAlgorithmParameterException
153-
("DESede key length must be 112, or 168 bits");
152+
throw new InvalidAlgorithmParameterException("DESede key " +
153+
"length was " + keySize + " but must be 112, or " +
154+
"168 bits");
154155
}
155156
break;
156157
default:
157158
// Handle all variable-key-length algorithms here
158159
if (range != null && (keySize < range.iMinKeySize
159160
|| keySize > range.iMaxKeySize)) {
160-
throw new InvalidAlgorithmParameterException
161-
("Key length must be between " + range.iMinKeySize +
162-
" and " + range.iMaxKeySize + " bits");
161+
throw new InvalidAlgorithmParameterException("Key length " +
162+
"was " + keySize + " but must be between " +
163+
range.iMinKeySize + " and " + range.iMaxKeySize +
164+
" bits");
163165
}
164166
if (keyGenMech == CKM_AES_KEY_GEN) {
165167
if ((keySize != 128) && (keySize != 192) &&
166168
(keySize != 256)) {
167-
throw new InvalidAlgorithmParameterException
168-
("AES key length must be 128, 192, or 256 bits");
169+
throw new InvalidAlgorithmParameterException("AES key" +
170+
" length was " + keySize + " but must be 128," +
171+
" 192, or 256 bits");
169172
}
170173
}
171174
sigKeySize = keySize;

0 commit comments

Comments
 (0)