I commented above about OpenSSL's concepts, but this is an interesting question. OpenSSL's test vector format distinguishes (most of the time) between encrypt and decrypt data. I assume this is because they'd like to be able to test edge cases in the underlying implementation. We could certainly ignore the distinction and use both for both, which would simplify this loader significantly. If we don't de-dupe the test cases we will end up running multiple identical tests though.