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:38 UTC
[tika] 04/05: Split the Certificate and Key mimetypes into DER and
PEM subtypes, add test EC files. TIKA-3205
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 c6b30c578e98373496f895cd7caa8317f4212d51
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 630b429..abcc5d5 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
@@ -4631,13 +4631,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 -->
@@ -4652,9 +4658,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"/>
@@ -4662,16 +4671,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 a80dc8e..de45faf 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
@@ -1137,13 +1137,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-----