private void testCipher_Success(String provider) throws Exception {
        final ByteArrayOutputStream errBuffer = new ByteArrayOutputStream();
        PrintStream out = new PrintStream(errBuffer);
        for (CipherTestParam p : CIPHER_TEST_PARAMS) {
            try {
                checkCipher(p, provider);
            } catch (Throwable e) {
                logTestFailure(out, provider, p, e);
            }
        }
        out.flush();
        if (errBuffer.size() > 0) {
            throw new Exception("Errors encountered:\n\n" + errBuffer + "\n\n");
        }
    }
For each test vector in the list, tests that the transformation is supported by at least one
provider and that all implementations of the transformation pass the Known Answer Test (KAT)
as well as other functional tests.
common/src/test/java/org/conscrypt/javax/crypto/CipherTest.java