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/30 16:26:03 UTC

[tika] branch branch_1x updated (9736af8 -> 1fce089)

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

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


    from 9736af8  Fix TIKA-3196 (#364)
     new 5c2c4a2  Add test certificate and key for TIKA-3205
     new 28ec71d  TIKA-3205 Add magic for X509 PEM certificate, and tweak default type
     new e952877  Add some more DER magic for certificates, and add tests TIKA-3205
     new 51829d6  Split the Certificate and Key mimetypes into DER and PEM subtypes, add test EC files. TIKA-3205
     new 1fce089  Make the DER private key mostly-match a bit more specific

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/tika/mime/tika-mimetypes.xml        |  72 ++++++++++++++++++++-
 .../java/org/apache/tika/TikaDetectionTest.java    |   5 +-
 .../java/org/apache/tika/mime/TestMimeTypes.java   |  18 ++++++
 .../src/test/resources/test-documents/testCERT.der | Bin 0 -> 702 bytes
 .../src/test/resources/test-documents/testCERT.pem |  17 +++++
 .../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 +
 .../test/resources/test-documents/testRSAKEY.der   | Bin 0 -> 610 bytes
 .../test/resources/test-documents/testRSAKEY.pem   |  16 +++++
 13 files changed, 162 insertions(+), 4 deletions(-)
 create mode 100644 tika-parsers/src/test/resources/test-documents/testCERT.der
 create mode 100644 tika-parsers/src/test/resources/test-documents/testCERT.pem
 create mode 100644 tika-parsers/src/test/resources/test-documents/testDSAKEY.der
 create mode 100644 tika-parsers/src/test/resources/test-documents/testDSAKEY.pem
 create mode 100644 tika-parsers/src/test/resources/test-documents/testDSAPARAMS.pem
 create mode 100644 tika-parsers/src/test/resources/test-documents/testECKEY.der
 create mode 100644 tika-parsers/src/test/resources/test-documents/testECKEY.pem
 create mode 100644 tika-parsers/src/test/resources/test-documents/testECPARAMS.pem
 create mode 100644 tika-parsers/src/test/resources/test-documents/testRSAKEY.der
 create mode 100644 tika-parsers/src/test/resources/test-documents/testRSAKEY.pem


[tika] 01/05: Add test certificate and key for TIKA-3205

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 5c2c4a2fb91cc160eaf007b71efcd854402e1624
Author: Nick Burch <ni...@gagravarr.org>
AuthorDate: Tue Sep 29 15:26:48 2020 +0100

    Add test certificate and key for TIKA-3205
---
 .../src/test/resources/test-documents/testCERT.der     | Bin 0 -> 702 bytes
 .../src/test/resources/test-documents/testCERT.pem     |  17 +++++++++++++++++
 .../src/test/resources/test-documents/testRSAKEY.der   | Bin 0 -> 610 bytes
 .../src/test/resources/test-documents/testRSAKEY.pem   |  16 ++++++++++++++++
 4 files changed, 33 insertions(+)

diff --git a/tika-parsers/src/test/resources/test-documents/testCERT.der b/tika-parsers/src/test/resources/test-documents/testCERT.der
new file mode 100644
index 0000000..935f1f6
Binary files /dev/null and b/tika-parsers/src/test/resources/test-documents/testCERT.der differ
diff --git a/tika-parsers/src/test/resources/test-documents/testCERT.pem b/tika-parsers/src/test/resources/test-documents/testCERT.pem
new file mode 100644
index 0000000..dbfd849
--- /dev/null
+++ b/tika-parsers/src/test/resources/test-documents/testCERT.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICujCCAiOgAwIBAgIUKOX/l1c68ya6jnfeRJ8uP9kvVx8wDQYJKoZIhvcNAQEL
+BQAwbzELMAkGA1UEBhMCWloxFDASBgNVBAgMC0FwYWNoZSBUaWthMQ8wDQYDVQQH
+DAZBcGFjaGUxDTALBgNVBAoMBFRpa2ExFDASBgNVBAsMC0FwYWNoZSBUaWthMRQw
+EgYDVQQDDAtBcGFjaGUgVGlrYTAeFw0yMDA5MjkxNDIzNDRaFw0zMDA5MjcxNDIz
+NDRaMG8xCzAJBgNVBAYTAlpaMRQwEgYDVQQIDAtBcGFjaGUgVGlrYTEPMA0GA1UE
+BwwGQXBhY2hlMQ0wCwYDVQQKDARUaWthMRQwEgYDVQQLDAtBcGFjaGUgVGlrYTEU
+MBIGA1UEAwwLQXBhY2hlIFRpa2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
+AMeVjMm2uyhe7HkNFFBU6nnI9niJnn+hv+3TTDw23/GH2/d1T3JSpuSFstHvwS0t
+umrSb6Py7igD4fz3+aeZU1gDrby4f9KemnLBlAU63VuPyCDyWj2XqbsZDGdnbIy2
+FnBBy2LBn5p0gDwoDpnmhHPHIJZo9OMGH/5hWQUt6+rtAgMBAAGjUzBRMB0GA1Ud
+DgQWBBTM8K2WIAuPiv0VgrRoMn2fAGua1jAfBgNVHSMEGDAWgBTM8K2WIAuPiv0V
+grRoMn2fAGua1jAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4GBALqE
++ja5Hx78Dpym/HxP50TfadwmEes+JXYptykWnuOWgLlqLuGAqJctLOKoR73r7d9d
+zJBtdr3A5uTg9vWNMSA2lPdBr/NplNaI8bso+8dRWdkiMut+j7xqTFl8MVMriRSR
+a2cA9BsUlpHjJdVjcFweAtdlINZDACoZubCTM7ng
+-----END CERTIFICATE-----
diff --git a/tika-parsers/src/test/resources/test-documents/testRSAKEY.der b/tika-parsers/src/test/resources/test-documents/testRSAKEY.der
new file mode 100644
index 0000000..22c4f86
Binary files /dev/null and b/tika-parsers/src/test/resources/test-documents/testRSAKEY.der differ
diff --git a/tika-parsers/src/test/resources/test-documents/testRSAKEY.pem b/tika-parsers/src/test/resources/test-documents/testRSAKEY.pem
new file mode 100644
index 0000000..0971b76
--- /dev/null
+++ b/tika-parsers/src/test/resources/test-documents/testRSAKEY.pem
@@ -0,0 +1,16 @@
+-----BEGIN PRIVATE KEY-----
+MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMeVjMm2uyhe7HkN
+FFBU6nnI9niJnn+hv+3TTDw23/GH2/d1T3JSpuSFstHvwS0tumrSb6Py7igD4fz3
++aeZU1gDrby4f9KemnLBlAU63VuPyCDyWj2XqbsZDGdnbIy2FnBBy2LBn5p0gDwo
+DpnmhHPHIJZo9OMGH/5hWQUt6+rtAgMBAAECgYBdb1TGxiYeQzoffZEJ/ob61qsU
+SRELnVS16RqigeobL8g5tBCqa6k4CKNrhvt/xA2mnrenID6AOzkb7ZdR8ATEtojF
+JjLZ8zmXACU3WetoRUvh2uxlFpxFeK0yQlaEWcvE4Z9MQe3V8pBvMQUNEZxN4bHT
+1eMla9O65TR49uxaPQJBAO/Spm9ln02CjnxCHiGmRQ77gUNz39AtrKRLQBv/uEB2
+fhHAvFoSPGXaIgd73GgZEnM/a+faLrMu9NvemMd5aYMCQQDVDAsjaa72+5ZS87zE
+xLDrFT1cKM8U1G0ikdGl6rejDnSoiwfZ8DXpSBOOiSkf/PX9zDXDPQl9nHLjmDn9
+wN7PAkEAxsPTF66lGoujZk8yQ/dXczR2DR7Dl/nTBZQsvUfzQNI0aKhSM2C72Dqz
+S3qX0Vs+VHBzEYVegTngzT4vZ9wz2wJBAMNXCZdsvUokIA7rALgCCJ1jmiE4Ibdd
+lrtNrEZO0hWlmX04DPjc8PF2bsgQJy73R61vYhQjkOIlYoof93wdLa0CQQDTLHSB
+8e8f81Jq+zbLReAQ6ch+fEulaMPlPY0OqgExBxdbwXnlPENw09+EiQkKSSo8qhY1
+guri/IWyq3LYm8nE
+-----END PRIVATE KEY-----


[tika] 03/05: Add some more DER magic for certificates, and add tests TIKA-3205

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e95287761da40c72f45390d1b892d8cdef33c216
Author: Nick Burch <ni...@gagravarr.org>
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 a0d172d..96301aa 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
@@ -4546,10 +4546,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>
@@ -4557,8 +4563,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-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java b/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
index d05d080..80c60a2 100644
--- a/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
+++ b/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
@@ -1143,6 +1143,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");


[tika] 04/05: Split the Certificate and Key mimetypes into DER and PEM subtypes, add test EC files. TIKA-3205

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 51829d630360060d2fff84e8dc2b1346834ecfda
Author: Nick Burch <ni...@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 96301aa..792448b 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
@@ -4538,13 +4538,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 -->
@@ -4559,9 +4565,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"/>
@@ -4569,16 +4578,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-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java b/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
index 80c60a2..c765dae 100644
--- a/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
+++ b/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
@@ -1144,13 +1144,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-----


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

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 28ec71d2d3afa52e84fa16ee5df289dd696980ed
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 b4981a5..a0d172d 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
@@ -4534,10 +4534,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 8f14a2b..1908489 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"));


[tika] 05/05: Make the DER private key mostly-match a bit more specific

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1fce08921cea11bc79c708d4f72b9e4bf70b8c2c
Author: Nick Burch <ni...@gagravarr.org>
AuthorDate: Tue Sep 29 16:51:19 2020 +0100

    Make the DER private key mostly-match a bit more specific
---
 .../main/resources/org/apache/tika/mime/tika-mimetypes.xml    | 11 ++++++-----
 1 file changed, 6 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 792448b..d281751 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
@@ -4583,12 +4583,13 @@
   <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 -->
+    <!-- Always seem to have a version integer as their first entry, -->
+    <!--  normally 00, 01 or 02, check for that -->
     <magic priority="40">
-      <match value="0x3081FF0201" type="string"
-              mask="0xFFFF00FFFF" offset="0"/>
-      <match value="0x3082FFFF0201" type="string"
-              mask="0xFFFF0000FFFF" offset="0"/>
+      <match value="0x3081FF020100" type="string"
+              mask="0xFFFF00FFFFFC" offset="0"/>
+      <match value="0x3082FFFF020100" type="string"
+              mask="0xFFFF0000FFFFFC" offset="0"/>
     </magic>
   </mime-type>