### Question:
Des3CbcSha1KdEncryption extends EncryptionEngine implements ChecksumEngine { protected byte[] setParity( byte[] in ) { byte[] expandedIn = new byte[8]; System.arraycopy( in, 0, expandedIn, 0, in.length ); setBit( expandedIn, 62, getBit( in, 7 ) ); setBit( expandedIn, 61, getBit( in, 15 ) ); setBit( expandedIn, 60, getBit( in, 23 ) ); setBit( expandedIn, 59, getBit( in, 31 ) ); setBit( expandedIn, 58, getBit( in, 39 ) ); setBit( expandedIn, 57, getBit( in, 47 ) ); setBit( expandedIn, 56, getBit( in, 55 ) ); byte[] out = new byte[8]; int bitCount = 0; int index = 0; for ( int i = 0; i < 64; i++ ) { if ( ( i + 1 ) % 8 == 0 ) { if ( bitCount % 2 == 0 ) { setBit( out, i, 1 ); } index++; bitCount = 0; } else { int val = getBit( expandedIn, index ); boolean bit = val > 0; if ( bit ) { setBit( out, i, val ); bitCount++; } index++; } } return out; }  EncryptionType getEncryptionType(); int getConfounderLength(); int getChecksumLength(); ChecksumType checksumType(); byte[] calculateChecksum( byte[] data, byte[] key, KeyUsage usage ); byte[] calculateIntegrity( byte[] data, byte[] key, KeyUsage usage ); byte[] getDecryptedData( EncryptionKey key, EncryptedData data, KeyUsage usage ); EncryptedData getEncryptedData( EncryptionKey key, byte[] plainText, KeyUsage usage ); byte[] encrypt( byte[] plainText, byte[] keyBytes ); byte[] decrypt( byte[] cipherText, byte[] keyBytes );  }### Answer:
@Test public void testParity() { byte[] test = { ( byte ) 0x93, ( byte ) 0x50, ( byte ) 0x79, ( byte ) 0xd1, ( byte ) 0x44, ( byte ) 0x90, ( byte ) 0xa7 }; byte[] expected = { ( byte ) 0x92, ( byte ) 0x51, ( byte ) 0x79, ( byte ) 0xd0, ( byte ) 0x45, ( byte ) 0x91, ( byte ) 0xa7, ( byte ) 0x9b }; byte[] result = keyDerivationFunction.setParity( test ); assertTrue( Arrays.equals( expected, result ) ); }