@Test
    public void testDetectProtectedOOXML() throws Exception {
        // Encrypted Microsoft Office OOXML files have OLE magic but
        //  special streams, so we can tell they're Protected OOXML
        assertTypeByData("testEXCEL_protected_passtika.xlsx", "application/x-tika-ooxml-protected");
        assertTypeByData("testWORD_protected_passtika.docx", "application/x-tika-ooxml-protected");
        assertTypeByData("testPPT_protected_passtika.pptx", "application/x-tika-ooxml-protected");

        // At the moment, we can't use the name to specialise
        // See discussions on TIKA-790 for details
        assertTypeByNameAndData("testEXCEL_protected_passtika.xlsx",
                "application/x-tika-ooxml-protected");
        assertTypeByNameAndData("testWORD_protected_passtika.docx",
                "application/x-tika-ooxml-protected");
        assertTypeByNameAndData("testPPT_protected_passtika.pptx",
                "application/x-tika-ooxml-protected");
    }
Password Protected OOXML files are much more tricky beasts to work with.
They have a very different structure to regular OOXML files, and instead
of being ZIP based they are actually an OLE2 file which contains the
OOXML structure within an encrypted stream.
This makes detecting them much harder...
tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java