You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2020/09/29 16:07:36 UTC

[tika] 02/05: TIKA-3205 Add magic for X509 PEM certificate, and tweak default type

This is an automated email from the ASF dual-hosted git repository.

nick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tika.git

commit c3fff83c7e955ff5de0e4cb9098b06a15ee2cf7e
Author: Nick Burch <ni...@gagravarr.org>
AuthorDate: Tue Sep 29 15:49:14 2020 +0100

    TIKA-3205 Add magic for X509 PEM certificate, and tweak default type
---
 .../org/apache/tika/mime/tika-mimetypes.xml        | 26 +++++++++++++++++++++-
 .../java/org/apache/tika/TikaDetectionTest.java    |  5 +++--
 2 files changed, 28 insertions(+), 3 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 5dbcf99..3cdea61 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
@@ -4627,10 +4627,34 @@
     <sub-class-of type="application/x-bplist"/>
     <glob pattern="*.webarchive"/>
   </mime-type>
-  <mime-type type="application/x-x509-ca-cert">
+
+  <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"/>
+    <magic priority="50">
+      <!-- PEM encoded -->
+      <match value="-----BEGIN CERTIFICATE-----" type="string" offset="0"/>
+      <!-- DER encoded -->
+      <match value="0x3080" type="string"
+              mask="0xFFFC" offset="0">
+         <!-- TODO other algs -->
+         <match value="0x300d06092a864886f70d01010b0500" 
+                type="string" offset="10:50" />
+      </match>
+    </magic>
   </mime-type>
+  <mime-type type="application/x-x509-key">
+    <magic priority="50">
+      <!-- PEM encoded -->
+      <match value="-----BEGIN PRIVATE KEY-----" type="string" offset="0"/>
+      <!-- DER encoded -->
+      <!-- TODO -->
+    </magic>
+  </mime-type>
+
   <mime-type type="application/x-xfig">
     <glob pattern="*.fig"/>
   </mime-type>
diff --git a/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java b/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
index eb3bb19..2364daa 100644
--- a/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
+++ b/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
@@ -624,8 +624,9 @@ public class TikaDetectionTest {
         assertEquals("application/x-texinfo", tika.detect("x.texi"));
         assertEquals("application/x-ustar", tika.detect("x.ustar"));
         assertEquals("application/x-wais-source", tika.detect("x.src"));
-        assertEquals("application/x-x509-ca-cert", tika.detect("x.der"));
-        assertEquals("application/x-x509-ca-cert", tika.detect("x.crt"));
+        // Differ from httpd - use a common parent for CA and User certs
+        //assertEquals("application/x-x509-ca-cert", tika.detect("x.der"));
+        //assertEquals("application/x-x509-ca-cert", tika.detect("x.crt"));
         assertEquals("application/x-xfig", tika.detect("x.fig"));
         assertEquals("application/x-xpinstall", tika.detect("x.xpi"));
         assertEquals("application/xenc+xml", tika.detect("x.xenc"));