< prev index next >

src/share/classes/com/sun/crypto/provider/AESWrapCipher.java

Print this page
rev 12526 : 8171252: Improve exception checking
8158517: Minor optimizations to ISO10126PADDING
Reviewed-by: ascarpino, mschoene

*** 1,7 **** /* ! * Copyright (c) 2004, 2012, 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) 2004, 2017, 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
*** 154,164 **** // can only return an upper-limit if not initialized yet. int result = 0; if (decrypting) { result = inputLen - 8; } else { ! result = inputLen + 8; } return (result < 0? 0:result); } /** --- 154,164 ---- // can only return an upper-limit if not initialized yet. int result = 0; if (decrypting) { result = inputLen - 8; } else { ! result = Math.addExact(inputLen, 8); } return (result < 0? 0:result); } /**
*** 376,386 **** byte[] encoded = key.getEncoded(); if (!AESCrypt.isKeySizeValid(encoded.length)) { throw new InvalidKeyException("Invalid key length: " + encoded.length + " bytes"); } ! return encoded.length * 8; } /** * Wrap a key. * --- 376,386 ---- byte[] encoded = key.getEncoded(); if (!AESCrypt.isKeySizeValid(encoded.length)) { throw new InvalidKeyException("Invalid key length: " + encoded.length + " bytes"); } ! return Math.multiplyExact(encoded.length, 8); } /** * Wrap a key. *
*** 402,412 **** byte[] keyVal = key.getEncoded(); if ((keyVal == null) || (keyVal.length == 0)) { throw new InvalidKeyException("Cannot get an encoding of " + "the key to be wrapped"); } ! byte[] out = new byte[keyVal.length + 8]; if (keyVal.length == 8) { System.arraycopy(IV, 0, out, 0, IV.length); System.arraycopy(keyVal, 0, out, IV.length, 8); cipher.encryptBlock(out, 0, out, 0); --- 402,412 ---- byte[] keyVal = key.getEncoded(); if ((keyVal == null) || (keyVal.length == 0)) { throw new InvalidKeyException("Cannot get an encoding of " + "the key to be wrapped"); } ! byte[] out = new byte[Math.addExact(keyVal.length, 8)]; if (keyVal.length == 8) { System.arraycopy(IV, 0, out, 0, IV.length); System.arraycopy(keyVal, 0, out, IV.length, 8); cipher.encryptBlock(out, 0, out, 0);
< prev index next >