public byte[] getPaddedData(byte[] data) { byte[] bytes = new byte[length]; byte[] seed = new byte[dig.getDigestSize()]; byte[] mask = new byte[length - dig.getDigestSize()]; if (random == null) { random = new SecureRandom(); } random.nextBytes(seed); MGF1BytesGenerator maskGen = new MGF1BytesGenerator(dig); maskGen.init(new MGFParameters(seed)); maskGen.generateBytes(mask, 0, mask.length); System.arraycopy(seed, 0, bytes, 0, seed.length); System.arraycopy(data, 0, bytes, seed.length, data.length); for (int i = seed.length + data.length + 1; i != bytes.length; i++) { bytes[i] = (byte)(1 + random.nextInt(255)); } for (int i = 0; i != mask.length; i++) { bytes[i + seed.length] ^= mask[i]; } return bytes; }
public byte[] getPaddedData(byte[] data) { byte[] bytes = new byte[length]; byte[] seed = new byte[dig.getDigestSize()]; byte[] mask = new byte[length - dig.getDigestSize()]; if (random == null) { random = new SecureRandom(); } random.nextBytes(seed); MGF1BytesGenerator maskGen = new MGF1BytesGenerator(dig); maskGen.init(new MGFParameters(seed)); maskGen.generateBytes(mask, 0, mask.length); System.arraycopy(seed, 0, bytes, 0, seed.length); System.arraycopy(data, 0, bytes, seed.length, data.length); for (int i = seed.length + data.length + 1; i != bytes.length; i++) { bytes[i] = (byte)(1 + random.nextInt(255)); } for (int i = 0; i != mask.length; i++) { bytes[i + seed.length] ^= mask[i]; } return bytes; }
MGF1BytesGenerator maskGen = new MGF1BytesGenerator(dig); maskGen.init(new MGFParameters(seed)); maskGen.generateBytes(mask, 0, mask.length);
MGF1BytesGenerator maskGen = new MGF1BytesGenerator(dig); maskGen.init(new MGFParameters(seed)); maskGen.generateBytes(mask, 0, mask.length);