This is an automated email from the ASF dual-hosted git repository. nick pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tika.git
commit fa1b2ef87157f51797d0dcaed36ebc990e538910 Author: Nick Burch <n...@gagravarr.org> AuthorDate: Tue Sep 29 16:48:40 2020 +0100 Split the Certificate and Key mimetypes into DER and PEM subtypes, add test EC files. TIKA-3205 --- .../org/apache/tika/mime/tika-mimetypes.xml | 41 +++++++++++++++++---- .../java/org/apache/tika/mime/TestMimeTypes.java | 19 +++++++--- .../test/resources/test-documents/testDSAKEY.der | Bin 0 -> 834 bytes .../test/resources/test-documents/testDSAKEY.pem | 15 ++++++++ .../resources/test-documents/testDSAPARAMS.pem | 14 +++++++ .../test/resources/test-documents/testECKEY.der | Bin 0 -> 167 bytes .../test/resources/test-documents/testECKEY.pem | 6 +++ .../test/resources/test-documents/testECPARAMS.pem | 3 ++ 8 files changed, 84 insertions(+), 14 deletions(-) diff --git a/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml b/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml index a995563..2c4a5e5 100644 --- a/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml +++ b/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml @@ -4682,13 +4682,19 @@ <mime-type type="application/x-x509-cert"> <alias type="application/x-x509-ca-cert"/> <alias type="application/x-x509-user-cert"/> - <glob pattern="*.der"/> - <glob pattern="*.pem"/> <glob pattern="*.crt"/> + </mime-type> + <mime-type type="application/x-x509-cert;format=pem"> + <sub-class-of type="application/x-x509-cert"/> + <glob pattern="*.pem"/> <magic priority="50"> - <!-- PEM encoded --> <match value="-----BEGIN CERTIFICATE-----" type="string" offset="0"/> - <!-- DER encoded --> + </magic> + </mime-type> + <mime-type type="application/x-x509-cert;format=der"> + <sub-class-of type="application/x-x509-cert"/> + <glob pattern="*.der"/> + <magic priority="50"> <match value="0x3080" type="string" mask="0xFFF8" offset="0"> <!-- SHA with RSA Encryption --> @@ -4703,9 +4709,12 @@ </match> </magic> </mime-type> + <mime-type type="application/x-x509-key"> + </mime-type> + <mime-type type="application/x-x509-key;format=pem"> + <sub-class-of type="application/x-x509-key"/> <magic priority="50"> - <!-- PEM encoded --> <match value="-----BEGIN PRIVATE KEY-----" type="string" offset="0"/> <match value="-----BEGIN PUBLIC KEY-----" type="string" offset="0"/> <match value="-----BEGIN KEY-----" type="string" offset="0"/> @@ -4713,16 +4722,32 @@ <match value="-----BEGIN RSA PRIVATE KEY-----" type="string" offset="0"/> <match value="-----BEGIN DSA KEY-----" type="string" offset="0"/> <match value="-----BEGIN DSA PRIVATE KEY-----" type="string" offset="0"/> - <!-- DER encoded --> - <match value="0x3082025e0201" type="string" offset="0"/> </magic> </mime-type> + <mime-type type="application/x-x509-key;format=der"> + <sub-class-of type="application/x-x509-key"/> + <!-- These are just a bunch of magic integers as defined by the key format... --> + <!-- Always seem to have an integer=01 as their first entry, check for that --> + <magic priority="40"> + <match value="0x3081FF0201" type="string" + mask="0xFFFF00FFFF" offset="0"/> + <match value="0x3082FFFF0201" type="string" + mask="0xFFFF0000FFFF" offset="0"/> + </magic> + </mime-type> + <mime-type type="application/x-x509-dsa-parameters"> <magic priority="50"> - <!-- PEM encoded --> + <!-- PEM encoded only --> <match value="-----BEGIN DSA PARAMETERS-----" type="string" offset="0"/> </magic> </mime-type> + <mime-type type="application/x-x509-ec-parameters"> + <magic priority="50"> + <!-- PEM encoded only --> + <match value="-----BEGIN EC PARAMETERS-----" type="string" offset="0"/> + </magic> + </mime-type> <mime-type type="application/x-xfig"> <glob pattern="*.fig"/> diff --git a/tika-parser-modules/tika-parser-integration-tests/src/test/java/org/apache/tika/mime/TestMimeTypes.java b/tika-parser-modules/tika-parser-integration-tests/src/test/java/org/apache/tika/mime/TestMimeTypes.java index dc3f303..2960b56 100644 --- a/tika-parser-modules/tika-parser-integration-tests/src/test/java/org/apache/tika/mime/TestMimeTypes.java +++ b/tika-parser-modules/tika-parser-integration-tests/src/test/java/org/apache/tika/mime/TestMimeTypes.java @@ -1142,13 +1142,20 @@ public class TestMimeTypes { @Test public void testCertificatesKeys() throws Exception { - assertType("application/x-x509-cert", "testCERT.pem"); - assertType("application/x-x509-cert", "testCERT.der"); - assertTypeByData("application/x-x509-cert", "testCERT.pem"); - assertTypeByData("application/x-x509-cert", "testCERT.der"); + assertType("application/x-x509-cert; format=pem", "testCERT.pem"); + assertType("application/x-x509-cert; format=der", "testCERT.der"); + assertTypeByData("application/x-x509-cert; format=pem", "testCERT.pem"); + assertTypeByData("application/x-x509-cert; format=der", "testCERT.der"); // Keys need the data to identify, name isn't enough - assertTypeByData("application/x-x509-key", "testRSAKEY.pem"); - assertTypeByData("application/x-x509-key", "testRSAKEY.der"); + assertTypeByData("application/x-x509-key; format=pem", "testECKEY.pem"); + assertTypeByData("application/x-x509-key; format=der", "testECKEY.der"); + assertTypeByData("application/x-x509-key; format=pem", "testRSAKEY.pem"); + assertTypeByData("application/x-x509-key; format=der", "testRSAKEY.der"); + assertTypeByData("application/x-x509-key; format=pem", "testDSAKEY.pem"); + assertTypeByData("application/x-x509-key; format=der", "testDSAKEY.der"); + // Parameters only have PEM form, always need data + assertTypeByData("application/x-x509-dsa-parameters", "testDSAPARAMS.pem"); + assertTypeByData("application/x-x509-ec-parameters", "testECPARAMS.pem"); } @Test diff --git a/tika-parsers/src/test/resources/test-documents/testDSAKEY.der b/tika-parsers/src/test/resources/test-documents/testDSAKEY.der new file mode 100644 index 0000000..9ed2eb9 Binary files /dev/null and b/tika-parsers/src/test/resources/test-documents/testDSAKEY.der differ diff --git a/tika-parsers/src/test/resources/test-documents/testDSAKEY.pem b/tika-parsers/src/test/resources/test-documents/testDSAKEY.pem new file mode 100644 index 0000000..2b8781a --- /dev/null +++ b/tika-parsers/src/test/resources/test-documents/testDSAKEY.pem @@ -0,0 +1,15 @@ +-----BEGIN PRIVATE KEY----- +MIICTQIBADCCAi0GByqGSM44BAEwggIgAoIBAQDRXU0Be5k0MI3skB6K0PhyptBh +WSJ1l+NVSOX7wpXC37upcH7a0ZCfU9RyWqcX9dQFw+TWjlH2ANll/FO4osXkkJVY +oylJ+p0599v6WRPBS/yQpKuvfqEm5HA78J8ILhnyCCw8hqdlrADBOMGf7tGF5Agw +hEZJdtHjYRzPWzY0eogptg3wQPd/wO6ZztdW/T9wPK1RDTEhraQwuJTp1tldWjkm +KutogVR327yAImJ7jhevM6ayCQFybT+mI3h48ixgkewPydU7hUIpEWtXjnwxLecu +P6hsggyuykxtPFlcK4xb/XKjN4AVEfFA6CJUrkk+FSi+RQfupCraeUXSCS3DAhUA +xkpKBq0v1k5JA/XlzNFVYgPqah8CggEAWhpzc9y5nYRz/uADJ2DBsk9ho3MovK9i +FGZyxwD6L66Gf+KqPglRABKa2vfkAVIhzysyaMB7sN0WhGFf9SX2gGnH48YoJHtD +eNNe8Izd1blIcg71lyT4HLCJDmURTVVQIxzzm97BpW5cYjEAFJAWXQ4lqqJzqnpv +HrXs4ljAq12tbaGIwBgY5G2f+R2NhKpbdDut423M3CCfM8XnxXlZiHV5x9BvjOWm +uw2mrsmZI1k2blr+lezA4m6fr9t4iwtDC+0cIpfuAC3/7FSaTcKC7ubMh1cyv/kV +6AoWtBXCCkctGNsQIJ0GibPKJZ7E9JoOPBwB16fOTknbXtxBF8klsQQXAhUAwFDM +4JZXXO/04oTAZw7IMqVCOLE= +-----END PRIVATE KEY----- diff --git a/tika-parsers/src/test/resources/test-documents/testDSAPARAMS.pem b/tika-parsers/src/test/resources/test-documents/testDSAPARAMS.pem new file mode 100644 index 0000000..3cbef08 --- /dev/null +++ b/tika-parsers/src/test/resources/test-documents/testDSAPARAMS.pem @@ -0,0 +1,14 @@ +-----BEGIN DSA PARAMETERS----- +MIICIAKCAQEA0V1NAXuZNDCN7JAeitD4cqbQYVkidZfjVUjl+8KVwt+7qXB+2tGQ +n1PUclqnF/XUBcPk1o5R9gDZZfxTuKLF5JCVWKMpSfqdOffb+lkTwUv8kKSrr36h +JuRwO/CfCC4Z8ggsPIanZawAwTjBn+7RheQIMIRGSXbR42Ecz1s2NHqIKbYN8ED3 +f8Dumc7XVv0/cDytUQ0xIa2kMLiU6dbZXVo5JirraIFUd9u8gCJie44XrzOmsgkB +cm0/piN4ePIsYJHsD8nVO4VCKRFrV458MS3nLj+obIIMrspMbTxZXCuMW/1yozeA +FRHxQOgiVK5JPhUovkUH7qQq2nlF0gktwwIVAMZKSgatL9ZOSQP15czRVWID6mof +AoIBAFoac3PcuZ2Ec/7gAydgwbJPYaNzKLyvYhRmcscA+i+uhn/iqj4JUQASmtr3 +5AFSIc8rMmjAe7DdFoRhX/Ul9oBpx+PGKCR7Q3jTXvCM3dW5SHIO9Zck+BywiQ5l +EU1VUCMc85vewaVuXGIxABSQFl0OJaqic6p6bx617OJYwKtdrW2hiMAYGORtn/kd +jYSqW3Q7reNtzNwgnzPF58V5WYh1ecfQb4zlprsNpq7JmSNZNm5a/pXswOJun6/b +eIsLQwvtHCKX7gAt/+xUmk3Cgu7mzIdXMr/5FegKFrQVwgpHLRjbECCdBomzyiWe +xPSaDjwcAdenzk5J217cQRfJJbE= +-----END DSA PARAMETERS----- diff --git a/tika-parsers/src/test/resources/test-documents/testECKEY.der b/tika-parsers/src/test/resources/test-documents/testECKEY.der new file mode 100644 index 0000000..24cbe9a Binary files /dev/null and b/tika-parsers/src/test/resources/test-documents/testECKEY.der differ diff --git a/tika-parsers/src/test/resources/test-documents/testECKEY.pem b/tika-parsers/src/test/resources/test-documents/testECKEY.pem new file mode 100644 index 0000000..f8a7f8e --- /dev/null +++ b/tika-parsers/src/test/resources/test-documents/testECKEY.pem @@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDC/CFlieW48GC1RB2Nh +19wlRZO4QNAVsmttUmwXh46i9dWSs1hnaENPcn9b0kPtFQShZANiAATd5hKUV7K/ +sTuBHS1FDOVqXrKOBp7t+tRZTaOV3/gkKyXSfzDRGxVIJR/hL0c5f7A7PzC994yV +JvHbi1XtfeaSWZojKI/4Dxvcy8vpL2Cwf4+jpWLDpF3zAP7W9CwMAjE= +-----END PRIVATE KEY----- diff --git a/tika-parsers/src/test/resources/test-documents/testECPARAMS.pem b/tika-parsers/src/test/resources/test-documents/testECPARAMS.pem new file mode 100644 index 0000000..ceed209 --- /dev/null +++ b/tika-parsers/src/test/resources/test-documents/testECPARAMS.pem @@ -0,0 +1,3 @@ +-----BEGIN EC PARAMETERS----- +BgUrgQQAIg== +-----END EC PARAMETERS-----