public void test(TestHarness harness) { TestOfAssembly testcase = new TestOfAssembly(); // build an OFB-Blowfish cascade Cascade ofbBlowfish = new Cascade(); Object modeNdx = ofbBlowfish.append( Stage.getInstance( ModeFactory.getInstance(Registry.OFB_MODE, new Blowfish(), 8), Direction.FORWARD)); testcase.attributes.put(modeNdx, testcase.modeAttributes); IPad pkcs7 = PadFactory.getInstance(Registry.PKCS7_PAD); testcase.asm = new Assembly(); testcase.asm.addPreTransformer(Transformer.getCascadeTransformer(ofbBlowfish)); testcase.asm.addPreTransformer(Transformer.getPaddingTransformer(pkcs7)); testcase.testSymmetry(harness, 1); // add a compression transformer. // the resulting assembly encrypts + pad first and compresses later // testcase.asm = new Assembly(); // testcase.asm.addPreTransformer(Transformer.getCascadeTransformer(ofbBlowfish)); // testcase.asm.addPreTransformer(Transformer.getPaddingTransformer(pkcs7)); testcase.asm.addPostTransformer(Transformer.getDeflateTransformer()); testcase.testSymmetry(harness, 2); // now build an assembly that compresses first and encrypts + pads later testcase.asm = new Assembly(); testcase.asm.addPreTransformer(Transformer.getCascadeTransformer(ofbBlowfish)); testcase.asm.addPreTransformer(Transformer.getPaddingTransformer(pkcs7)); testcase.asm.addPreTransformer(Transformer.getDeflateTransformer()); testcase.testSymmetry(harness, 3); }