private static byte[] MGF(OAEPEncoding oaepEncoding, byte[] Z, int len) { return invokeMaskGeneratorFunction1(oaepEncoding, Z, 0, Z.length, len); }
/** * Tests the private implementation of maskGeneratorFunction1 using reference vectors * from RSA OAEP spec. * * @throws Exception */ @Test public void maskGeneratorFunction1() throws Exception { OAEPEncoding oaepEncoder = new OAEPEncoding(RSAEngineFactory.make(), new SHA1Digest()); byte[] dbMask_test = MGF(oaepEncoder, oaepSpec.seed, 107); assertArrayEquals(dbMask_test, oaepSpec.dbMask); byte[] maskedDB_test = new byte[oaepSpec.DB.length]; for (int i = 0; i < oaepSpec.DB.length; i++) { maskedDB_test[i] = (byte) (oaepSpec.DB[i] ^ oaepSpec.dbMask[i]); } assertArrayEquals(maskedDB_test, oaepSpec.maskedDB); byte[] seedMask_test = MGF(oaepEncoder, oaepSpec.maskedDB, 20); assertArrayEquals(seedMask_test, oaepSpec.seedMask); byte[] maskedSeed_test = new byte[oaepSpec.seed.length]; for (int i = 0; i < oaepSpec.seed.length; i++) { maskedSeed_test[i] = (byte) (oaepSpec.seed[i] ^ oaepSpec.seedMask[i]); } assertArrayEquals(maskedSeed_test, oaepSpec.maskedSeed); ByteArrayOutputStream emStream = new ByteArrayOutputStream(); emStream.write(oaepSpec.maskedSeed); emStream.write(oaepSpec.maskedDB); byte[] em_test = emStream.toByteArray(); assertArrayEquals(em_test, oaepSpec.EM); }