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 b0ae63a1c59ef60ac6b134cadf2053f2e73152d4
Author: Nick Burch <[email protected]>
AuthorDate: Tue Sep 29 16:23:08 2020 +0100

    Add some more DER magic for certificates, and add tests TIKA-3205
---
 .../org/apache/tika/mime/tika-mimetypes.xml        | 28 ++++++++++++++++++----
 .../java/org/apache/tika/mime/TestMimeTypes.java   | 11 +++++++++
 2 files changed, 34 insertions(+), 5 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 bdbeee5..a995563 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
@@ -4690,10 +4690,16 @@
       <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" />
+              mask="0xFFF8" offset="0">
+         <!-- SHA with RSA Encryption -->
+         <match value="0x300d06092a864886f70d01010b0500" type="string"
+                 mask="0xFFFFFFFFFFFFFFFFFFFFFFFF00FFFF" offset="10:50" />
+         <!-- SHA with DSA Encryption -->
+         <match value="0x300b0609608648016503040301" type="string"
+                 mask="0xFFFFFFFFFFFFFFFFFFFFFFFF00" offset="10:50" />
+         <!-- SHA with ECDSA Encryption -->
+         <match value="0x300a06082a8648ce3d040301" type="string"
+                 mask="0xFFFFFFFFFFFFFFFFFFFFFF00" offset="10:50" />
       </match>
     </magic>
   </mime-type>
@@ -4701,8 +4707,20 @@
     <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"/>
+      <match value="-----BEGIN RSA KEY-----" type="string" offset="0"/>
+      <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 -->
-      <!-- TODO -->
+      <match value="0x3082025e0201" type="string" offset="0"/>
+    </magic>
+  </mime-type>
+  <mime-type type="application/x-x509-dsa-parameters">
+    <magic priority="50">
+      <!-- PEM encoded -->
+      <match value="-----BEGIN DSA PARAMETERS-----" type="string" offset="0"/>
     </magic>
   </mime-type>
 
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 c507986..dc3f303 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
@@ -1141,6 +1141,17 @@ 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");
+        // Keys need the data to identify, name isn't enough
+        assertTypeByData("application/x-x509-key", "testRSAKEY.pem");
+        assertTypeByData("application/x-x509-key", "testRSAKEY.der");
+    }
+
+    @Test
     public void testVandICalendars() throws Exception {
         assertType("text/calendar", "testICalendar.ics");
         assertType("text/x-vcalendar", "testVCalendar.vcs");

Reply via email to