Add the TestEnvelopedData.
diff --git a/kerby-pkix/src/test/java/org/apache/kerby/cms/TestEnvelopedData.java b/kerby-pkix/src/test/java/org/apache/kerby/cms/TestEnvelopedData.java
new file mode 100644
index 0000000..a35075c
--- /dev/null
+++ b/kerby-pkix/src/test/java/org/apache/kerby/cms/TestEnvelopedData.java
@@ -0,0 +1,90 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+package org.apache.kerby.cms;
+
+import org.apache.kerby.asn1.Asn1;
+import org.apache.kerby.cms.type.ContentInfo;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.IOException;
+
+public class TestEnvelopedData extends CmsTestBase {
+    @Test
+    public void testDecodingKeyTrns() throws IOException {
+        byte[] data = readDataFile("/enveloped-keytrns.txt");
+        try {
+            Asn1.parseAndDump(data);
+
+            ContentInfo contentInfo = new ContentInfo();
+            contentInfo.decode(data);
+            Asn1.dump(contentInfo);
+
+            //TO BE FIXED
+//            EnvelopedData envelopedData =
+//                    contentInfo.getContentAs(EnvelopedData.class);
+//            Asn1.dump(envelopedData);
+        } catch (Exception e) {
+            e.printStackTrace();
+            Assert.fail();
+        }
+    }
+
+    @Test
+    public void testDecodingKek() throws IOException {
+        byte[] data = readDataFile("/enveloped-kek.txt");
+        try {
+            Asn1.parseAndDump(data);
+
+            ContentInfo contentInfo = new ContentInfo();
+            contentInfo.decode(data);
+            Asn1.dump(contentInfo);
+
+            //TO BE FIXED
+//            EnvelopedData envelopedData =
+//                    contentInfo.getContentAs(EnvelopedData.class);
+//            Asn1.dump(envelopedData);
+        } catch (Exception e) {
+            e.printStackTrace();
+            Assert.fail();
+        }
+    }
+
+    @Test
+    public void testDecodingNestedNDEF() throws IOException {
+        byte[] data = readDataFile("/enveloped-nested-ndef.txt");
+        try {
+            Asn1.parseAndDump(data);
+
+            ContentInfo contentInfo = new ContentInfo();
+            contentInfo.decode(data);
+            Asn1.dump(contentInfo);
+
+            //TO BE FIXED
+//            EnvelopedData envelopedData =
+//                    contentInfo.getContentAs(EnvelopedData.class);
+//            Asn1.dump(envelopedData);
+        } catch (Exception e) {
+            e.printStackTrace();
+            Assert.fail();
+        }
+    }
+
+}
diff --git a/kerby-pkix/src/test/resources/enveloped-kek.txt b/kerby-pkix/src/test/resources/enveloped-kek.txt
new file mode 100644
index 0000000..a346752
--- /dev/null
+++ b/kerby-pkix/src/test/resources/enveloped-kek.txt
@@ -0,0 +1 @@
+308006092A864886F70D010703A08030800201023152A2500201043007040501020304053010060B2A864886F70D010910030702013A0430BB1BF1F250F8A522B8A7D9879A8EA9A3EFDE55A0B5844D19D900015C02241DA105B2CFEA0287A598FC78C71E2FB4CBE7308006092A864886F70D010701301406082A864886F70D0307040898DDE0C105B17A9DA08004188D77325BFEFEBE5190775D72A2A71143529CFD1B28F307E800000000000000000000
\ No newline at end of file
diff --git a/kerby-pkix/src/test/resources/enveloped-keytrns.txt b/kerby-pkix/src/test/resources/enveloped-keytrns.txt
new file mode 100644
index 0000000..d55d371
--- /dev/null
+++ b/kerby-pkix/src/test/resources/enveloped-keytrns.txt
@@ -0,0 +1 @@
+308006092A864886F70D010703A08030800201003181C43081C1020100302A302531163014060355040A130D426F756E637920436173746C65310B300906035504061302415502010A300D06092A864886F70D01010105000481802E6F746AC18AD4121B089F2DFDCAC0F20B8DA0785845E04FF2083B5283CEBB1B22D089B0C0344A6AB6CB4CE9B714F4A5244BE8946034CC4B935C929EB22BBC68843CB311D738F1953F3243A54B5FE904A0AE37CED77569A2F0D2805FADC5DC2CDEC11296754C87639417D720EC754BCF1663532262A24915CDCB330454693103308006092A864886F70D010701301D0609608648016503040116041007F12CC59E6813934D943052AD18E45BA0800420C0E2612F4E2B8D264204248EBF98B95E915F1AC39D6121D2AB09ED1A916A0B1E00000000000000000000
\ No newline at end of file
diff --git a/kerby-pkix/src/test/resources/enveloped-nested-ndef.txt b/kerby-pkix/src/test/resources/enveloped-nested-ndef.txt
new file mode 100644
index 0000000..f0e6481
--- /dev/null
+++ b/kerby-pkix/src/test/resources/enveloped-nested-ndef.txt
@@ -0,0 +1 @@
+308006092A864886F70D010703A08030800201003181EF3081EC02010030819530818F31283026060355040A0C1F546865204C6567696F6E206F662074686520426F756E637920436173746C65312F302D06092A864886F70D0109011620666565646261636B2D63727970746F40626F756E6379636173746C652E6F72673111300F06035504080C08566963746F7269613112301006035504070C094D656C626F75726E65310B3009060355040613024155020101300D06092A864886F70D010101050004400485CC77CC624F258328EFCB41FBDD1984CF5B723DA12416C2D9B838868D5483697D8DA57F04EF6E613A55788B29E00B0B474C055F33EC310CF611341D59AF2C308006092A864886F70D010701301D0609608648016503040102041077DA4A3A5AB5710D3AB051812957A214A080048202A04BA468C2B84D966596235DF3C43FE5AF2C64679A165CF51F362531617FCFAF98AC716DECF15289294A49E16E52340EC918BE25FF92E64A727842EFF1CF17281F8AF8BE6B7BE440C4F69D8E6F65E2D4DB9214066E6C915C6659E9E1ED395072A2926A1ACF43DB8808B6EFBB0B4252B615C56C9ED4D8553D34CBCF88C2EB90BB401356A9170BE5617E357FB0AEAF4199F0DAB40A79D6612C1EC1E1D5249B10AE8DBFD402AE25812A4B3178363FAC0C8A64DCCD7C90C51899C4F788E01C8210D8E469F5DB7DC25FB7678382FD431037583395AB5BD67BE5BE2598988E27FC710E78870AFBA6ECA197CE92B57759AA4E5A733C2DB1A33D3CFCC3B89517F931BD1B61DABA0A331A62A5701AC62BCA9FF66B25FE77C1FE2698441BE57D120F2E3DC0E889BC210C8E0A928C861ECB4FC396F1732EEF545B7B2D751D36325C2B5C316942845C318AB7D563F771670532CC5F43DCF47A6E795E68D62A57DF8767FCFDC7641F572BC49C6EB137F01D559C8832952B6785514E0A3F6CEEA495A88D8BFB16072511ECC5A32E988467991B8EA9D5C37C8A36F046409C5B50FDBF41CE230656F016E7E03C87CB36A1ACE14A62B6DB77ED57BBAFF7C49C804F1F09DDCFC13D6428933CDD3853632073A24BCC7CF6020AFB289CC57E9135978567308D84D2E2E92BA51E39D99756977689A839F3A1BB7914AE13F0E19C88E8FED4FC58159C91982B9A7E6D83C7AA3B12DD93BBF4F91D8BE1758F631F2AAD0E5D8F5C7E024E7562800D5838002B8CF566B1957000CDCC978EAEC975E172C5F04355F44EFE03F8F49AFE2778510D9C39B3B0F028F5796D8607C88921956A9196945C17B1AA0598388A318EA38349EA192A206C4CADDCFA839406A043B9E6358B9E6CC04DA8E9D0EDF79165B97EA2CABFEAE30DB02EDDEEA58D4960BF93BAF67100ABE2B80733312D5B00000000000000000000