diff --git a/sgx-jvm/linux-sgx/License.txt b/sgx-jvm/linux-sgx/License.txt
index ea9d767559..5697f6155a 100644
--- a/sgx-jvm/linux-sgx/License.txt
+++ b/sgx-jvm/linux-sgx/License.txt
@@ -1,6 +1,6 @@
BSD License
-Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -30,14 +30,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=================================================================
-SGX Eclipse plug-in is licensed under Eclipse Public License-v1.0
+Intel(R) Software Guard Extensions (Intel(R) SGX) Eclipse plug-in is licensed under Eclipse Public License-v1.0
http://www.eclipse.org/legal/epl-v10.html
==============================================================
-libsgx_le.signed.so, libsgx_pce.signed.so, libsgx_pve.signed.so and libsgx_qe.signed.so are licensed as Intel redistributable binary firmware and other blobs.
+libsgx_le.signed.so, libsgx_pce.signed.so, libsgx_pve.signed.so, libsgx_qe.signed.so, libsgx_pse_pr.signed.so and libsgx_pse_op.signed.so are licensed as Intel redistributable binary firmware and other blobs.
Copyright (c) Intel Corporation.
@@ -83,7 +83,7 @@ DAMAGE.
===========================================================================================================================================================
-SGX software for Linux also uses third-party projects that may be distributed under different licenses. Please see below for details.
+Intel(R) SGX software for Linux also uses third-party projects that may be distributed under different licenses. Please see below for details.
1. Android Open Source Project
@@ -98,21 +98,26 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS" AND A
-2. compiler_rt
+2. compiler_rt and libc++
The compiler_rt library is dual licensed under both the University of Illinois
"BSD-Like" license and the MIT license. As a user of this code you may choose
to use it under either license. As a contributor, you agree to allow your code
to be used under both.
+The libc++ library is dual licensed under both the University of Illinois
+"BSD-Like" license and the MIT license. As a user of this code you may choose
+to use it under either license. As a contributor, you agree to allow your code
+to be used under both.
+
Full text of the relevant licenses is included below.
-=============================================================================
+==============================================================================
University of Illinois/NCSA
Open Source License
-Copyright (c) 2009-2013 by the contributors listed in CREDITS.TXT
+Copyright (c) 2009-2016 by the contributors listed in CREDITS.TXT
All rights reserved.
@@ -124,72 +129,72 @@ Developed by:
http://llvm.org
-Permission is hereby granted, free of charge, to any person obtaining a copy of this
-software and associated documentation files (the "Software"), to deal with the
-Software without restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
-Software, and to permit persons to whom the Software is furnished to do so, subject
-to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimers.
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
-- Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimers in the documentation and/or
-other materials provided with the distribution.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
-- Neither the names of the LLVM Team, University of Illinois at Urbana-Champaign,
-nor the names of its contributors may be used to endorse or romote products derived
-from this Software without specific prior written permission.
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
-OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS WITH THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
-=============================================================================
+==============================================================================
-Copyright (c) 2009-2013 by the contributors listed in CREDITS.TXT
+Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT
-Permission is hereby granted, free of charge, to any person obtaining a copy of this
-software and associated documentation files (the "Software"), to deal in the Software
-without restriction, including without limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in all copies or
-substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
=============================================================================
Copyrights and Licenses for Third Party Software Distributed with LLVM:
=============================================================================
-The LLVM software contains code written by third parties. Such software will have its
-own individual LICENSE.TXT file in the directory in which it appears.
-This file will describe the copyrights, license, and restrictions which apply to that code.
+The LLVM software contains code written by third parties. Such software will
+have its own individual LICENSE.TXT file in the directory in which it appears.
+This file will describe the copyrights, license, and restrictions which apply
+to that code.
-The disclaimer of warranty in the University of Illinois Open Source License applies to all
-code in the LLVM Distribution, and nothing in any of the other licenses gives permission to
-use the names of the LLVM Team or the University of Illinois to endorse or promote products
-derived from this Software.
-
-The following pieces of software have additional or alternate copyrights, licenses, and/or
-restrictions:
-
-Program Directory
-------- ---------
-mach_override lib/interception/mach_override
+The disclaimer of warranty in the University of Illinois Open Source License
+applies to all code in the LLVM Distribution, and nothing in any of the
+other licenses gives permission to use the names of the LLVM Team or the
+University of Illinois to endorse or promote products derived from this
+Software.
+
3. DLmalloc
@@ -1115,7 +1120,7 @@ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-16. EPID SDK
+16. Intel(R) Enhanced Privacy ID (Intel(R) EPID) SDK
Apache License
Version 2.0, January 2004
@@ -1394,3 +1399,44 @@ All Recipient's rights under this Agreement shall terminate if it fails to compl
Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
+
+
+
+
+18. TCMALLOC
+
+TCMALLOC is part of Google Perf Tools, which is distributed under the terms of the BSD license.
+
+ http://goog-perftools.sourceforge.net/
+
+
+Copyright (c) 2005, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/features/com.intel.sgx.feature/feature.xml b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/features/com.intel.sgx.feature/feature.xml
index f9047a713e..0ed213014a 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/features/com.intel.sgx.feature/feature.xml
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/features/com.intel.sgx.feature/feature.xml
@@ -12,23 +12,23 @@
- The Software Guard Extensions Plug-in enables Independent Service
+ The Intel(R) Software Guard Extensions Plug-in enables Independent Service
Vendors in developing Linux applications
-with Software Guard Extensions. The Plug-in extends the C/C++ Development
+with Intel(R) Software Guard Extensions. The Plug-in extends the C/C++ Development
tools Plug-in to allow ISVs develop secure extensions in C or
C++. The Plug-in also allows conversion of an Linux Application
project into an Linux Application project with Software Guard
Extensions.
-Using the Plug-in features and SGX Plug-in Menu options, a developer
+Using the Plug-in features and Intel(R) SGX Plug-in Menu options, a developer
can modify the Signing keys and Enclave Configuration for an
-Enclave project and can add enclaves inside a project with SGX Nature.
+Enclave project and can add enclaves inside a project with Intel(R) SGX Nature.
Once development is complete, the developer can build the Enclave
-and the Linux project using the SGX SDK for Linux with Release/Debug Configurations in Simulation/Hardware
+and the Linux project using the Intel(R) SGX SDK for Linux with Release/Debug Configurations in Simulation/Hardware
mode and Hardware Prerelease mode.
@@ -110,7 +110,7 @@ This Agreement is governed by the laws of the State of New York and the intellec
-
+
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/META-INF/MANIFEST.MF b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/META-INF/MANIFEST.MF
index 5db6ad6bff..6e725a3f1c 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/META-INF/MANIFEST.MF
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
License: Eclipse Public License Version 1.0 ("EPL")
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: SGX Eclipse Plugin Userguide
+Bundle-Name: Intel(R) SGX Eclipse Plugin Userguide
Bundle-SymbolicName: com.intel.sgx.userguide;singleton:=true
Bundle-Version: 1.0.1.qualifier
Bundle-Activator: com.intel.sgx.userguide.Activator
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/A_Generated_Trusted_Library.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/A_Generated_Trusted_Library.png
index d6cb5308c4..0f7841f88a 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/A_Generated_Trusted_Library.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/A_Generated_Trusted_Library.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_New_Intel_SGX_Enclave_Dialog.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_New_Intel_SGX_Enclave_Dialog.png
index c857d80377..615efec77f 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_New_Intel_SGX_Enclave_Dialog.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_New_Intel_SGX_Enclave_Dialog.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_New_SGX_Static_Trusted_Library_Dialog.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_New_SGX_Static_Trusted_Library_Dialog.png
index 8fd22a4260..ef31085c24 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_New_SGX_Static_Trusted_Library_Dialog.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_New_SGX_Static_Trusted_Library_Dialog.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_Repository_Dialog.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_Repository_Dialog.png
index 3d5dd178e5..39e382919c 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_Repository_Dialog.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_Repository_Dialog.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_SGX_Nature.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_SGX_Nature.png
index d6dbf14a6d..baa7992fdc 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_SGX_Nature.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_SGX_Nature.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_SGX_Untrusted_Module.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_SGX_Untrusted_Module.png
index deec5090e3..6c3625dad2 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_SGX_Untrusted_Module.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Add_SGX_Untrusted_Module.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Configurations_Specific_to_Intel_SGX_Technology.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Configurations_Specific_to_Intel_SGX_Technology.png
index f36ca69c05..e25f9b7293 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Configurations_Specific_to_Intel_SGX_Technology.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Configurations_Specific_to_Intel_SGX_Technology.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Configure_SGX_Hardware_Release_Mode.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Configure_SGX_Hardware_Release_Mode.png
index f7151654d0..7e9cb59b99 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Configure_SGX_Hardware_Release_Mode.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Configure_SGX_Hardware_Release_Mode.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Copying_the_Untrusted_Module_to_a_Project.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Copying_the_Untrusted_Module_to_a_Project.png
index fb363ea78d..50d8073d30 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Copying_the_Untrusted_Module_to_a_Project.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Copying_the_Untrusted_Module_to_a_Project.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Customization_of_SGX_build_command.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Customization_of_SGX_build_command.png
index a9c509501b..178f41be60 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Customization_of_SGX_build_command.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Customization_of_SGX_build_command.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Down_Arrow_Button.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Down_Arrow_Button.png
index fccabba54e..f85f93b486 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Down_Arrow_Button.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Down_Arrow_Button.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Enclave_Configuration_Settings.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Enclave_Configuration_Settings.png
index 42217bd097..a03abf1610 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Enclave_Configuration_Settings.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Enclave_Configuration_Settings.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generate_Signed_Enclave_Dialog.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generate_Signed_Enclave_Dialog.png
index 9eebe98c66..0d71612fb2 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generate_Signed_Enclave_Dialog.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generate_Signed_Enclave_Dialog.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generate_Signed_Enclave_Dialog_with_Pre_configurations.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generate_Signed_Enclave_Dialog_with_Pre_configurations.png
index 538d68743a..12e5d665ba 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generate_Signed_Enclave_Dialog_with_Pre_configurations.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generate_Signed_Enclave_Dialog_with_Pre_configurations.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generated_Sample_Untrusted_Application.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generated_Sample_Untrusted_Application.png
index 7e7c609d61..66c9e992c6 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generated_Sample_Untrusted_Application.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generated_Sample_Untrusted_Application.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generated_Skeleton_for_an_Enclave.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generated_Skeleton_for_an_Enclave.png
index 55e27af3ab..ae332e0311 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generated_Skeleton_for_an_Enclave.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generated_Skeleton_for_an_Enclave.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generating_Hash_Completion_Dialog.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generating_Hash_Completion_Dialog.png
index 032c17a2ea..785bf796c1 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generating_Hash_Completion_Dialog.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Generating_Hash_Completion_Dialog.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Import_or_Re_Generate_Enclave_Signing_Key.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Import_or_Re_Generate_Enclave_Signing_Key.png
index d954544841..a173f0132e 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Import_or_Re_Generate_Enclave_Signing_Key.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Import_or_Re_Generate_Enclave_Signing_Key.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Intel_SGX_Configurations.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Intel_SGX_Configurations.png
index f7151654d0..d703ed50ce 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Intel_SGX_Configurations.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Intel_SGX_Configurations.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Intel_SGX_Tools.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Intel_SGX_Tools.png
index fb9ec29775..a5ba02604f 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Intel_SGX_Tools.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Intel_SGX_Tools.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Makefile_for_Intel_SGX.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Makefile_for_Intel_SGX.png
index 466558cb4c..4bca62c6b4 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Makefile_for_Intel_SGX.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Makefile_for_Intel_SGX.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/New_Project.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/New_Project.png
index f7f391f6d6..251c5c7e7d 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/New_Project.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/New_Project.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Project_Explorer.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Project_Explorer.png
index 94913f3980..ea030759c7 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Project_Explorer.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Project_Explorer.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Project_Menu.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Project_Menu.png
index 659f0d92f3..700cf5d662 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Project_Menu.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Project_Menu.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/SGX_Preference_Page.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/SGX_Preference_Page.png
index 90170646b4..53d2437a81 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/SGX_Preference_Page.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/SGX_Preference_Page.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Sample_Application.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Sample_Application.png
index 9c25b62823..334a9fcfe8 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Sample_Application.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Sample_Application.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Select_Configuration_File.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Select_Configuration_File.png
index a5fb4f811b..c3b39b5035 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Select_Configuration_File.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Select_Configuration_File.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/The_Location_of_the_Plugin_zip_Archive.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/The_Location_of_the_Plugin_zip_Archive.png
index afa17c33eb..15aef08a60 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/The_Location_of_the_Plugin_zip_Archive.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/The_Location_of_the_Plugin_zip_Archive.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/The_Result_of_Running_Samples_Generated_for_Enclaves.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/The_Result_of_Running_Samples_Generated_for_Enclaves.png
index 2f3a03acc5..146c0edfa7 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/The_Result_of_Running_Samples_Generated_for_Enclaves.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/The_Result_of_Running_Samples_Generated_for_Enclaves.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Two_StepSigne_Enclave_Generate_Hash.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Two_StepSigne_Enclave_Generate_Hash.png
index 7b9b49b640..76207c8449 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Two_StepSigne_Enclave_Generate_Hash.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Two_StepSigne_Enclave_Generate_Hash.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Two_Step_Sign_Enclave_Menu.png b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Two_Step_Sign_Enclave_Menu.png
index 374fd094fd..f45f0dd92f 100644
Binary files a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Two_Step_Sign_Enclave_Menu.png and b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/Resources/Images/Two_Step_Sign_Enclave_Menu.png differ
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/content.html b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/content.html
index c934419af6..dc5352018c 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/content.html
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/html/content.html
@@ -109,8 +109,8 @@ developers by the Intel(R) SGX SDK.
All commands brought by Intel(R) Software Guard Extensions Eclipse Plug-in are available by right-clicking on the Project root in Project explorer view in menu Intel(R) Software Guard Extensions Tools :
-
SGX Build Configurations
+
Intel(R) SGX Build Configurations
There are usually two types of builds that a regular non-SGX project defines:
-
SGX-enabled projects add to this picture support to build and test SGX-enabled application on non-SGX platforms (or emulator) using simulation libraries. This approach doubles the set of build types, creating four possible combinations. For these combinations, you need to use different sets of compilation and linking flags and link different libraries.
-
The non-debug hardware build is meant to give production code, so it requires the maximum attention when signed. The Two Steps Sign schema is required for production enclaves, which involves an external signing facility, not part of Intel SGX SDK. The other configurations are not meant for production but they have to be signed too. The simplest and more convenient Single Step schema is used for them.
-
Again for testing purpose, you might want to experiment with a non-production enclave built with release compilation and linking flags, on a real hardware SGX-enabled platform. That would be an enclave built exactly as a production enclave, except for the sign process which would be Single Step. To support the construction of such enclave, there is a hardware non-debug build configuration dubbed Prerelease .
-
So there are five SGX related configurations when SGX Nature is added to a project:
+
Intel(R) SGX-enabled projects add to this picture support to build and test Intel(R) SGX-enabled application on non-SGX platforms (or emulator) using simulation libraries. This approach doubles the set of build types, creating four possible combinations. For these combinations, you need to use different sets of compilation and linking flags and link different libraries.
+
The non-debug hardware build is meant to give production code, so it requires the maximum attention when signed. The Two Steps Sign schema is required for production enclaves, which involves an external signing facility, not part of Intel(R) SGX SDK. The other configurations are not meant for production but they have to be signed too. The simplest and more convenient Single Step schema is used for them.
+
Again for testing purpose, you might want to experiment with a non-production enclave built with release compilation and linking flags, on a real hardware Intel(R) SGX-enabled platform. That would be an enclave built exactly as a production enclave, except for the sign process which would be Single Step. To support the construction of such enclave, there is a hardware non-debug build configuration dubbed Prerelease .
+
So there are five Intel(R) SGX related configurations when Intel(R) SGX Nature is added to a project:
Intel(R) SGX Configurations
-
The following table resumes the existing SGX configurations and relate them with compilation/linking flags (debug/non-debug) and signing scheme (single vs. two steps):
+
The following table resumes the existing Intel(R) SGX configurations and relate them with compilation/linking flags (debug/non-debug) and signing scheme (single vs. two steps):
Intel(R) SGX Configurations
@@ -490,50 +490,50 @@ developers by the Intel(R) SGX SDK.
Signing Schema
- SGX Hardware Debug
+ Intel(R) SGX Hardware Debug
Hardware
Debug
Single Step
- SGX Hardware Pre-release
+ Intel(R) SGX Hardware Pre-release
Hardware
Non-debug
Single Step
- SGX Hardware Release
+ Intel(R) SGX Hardware Release
Hardware
Non-debug
Two Step
- SGX Simulation
+ Intel(R) SGX Simulation
Simulation
Non-debug
Single Step
- SGX Simulation
+ Intel(R) SGX Simulation
Debug Simulation
Debug
Single step
-
Intel® Software Guard Extensions Eclipse Plug-in uses standard GNU* make tool to build the trusted and the untrusted code, using the generated file sgx/Makefile
.
-
This fact does not impose any restriction on the build tool chosen for the hosting project. Intel® Software Guard Extensions Eclipse* Plug-in uses its own build configurations which do not interfere with the configurations that you might have in your project.
-
When SGX configurations are selected, by default only code under <root>/sgx
directory get built.
-
You can customize SGX configurations as any other Eclipse build configurations from the project properties dialog. For example:
+
Intel(R) Software Guard Extensions Eclipse Plug-in uses standard GNU* make tool to build the trusted and the untrusted code, using the generated file sgx/Makefile
.
+
This fact does not impose any restriction on the build tool chosen for the hosting project. Intel(R) Software Guard Extensions Eclipse* Plug-in uses its own build configurations which do not interfere with the configurations that you might have in your project.
+
When Intel(R) SGX configurations are selected, by default only code under <root>/sgx
directory get built.
+
You can customize Intel(R) SGX configurations as any other Eclipse build configurations from the project properties dialog. For example:
Right-click in Project Explorer Properties → C/C++ Build
Uncheck the Use default build command checkbox.
-
Then you can customize and integrate SGX build process. You can use Makefile instead of sgx/Makefile
in the example shown in the following figure:
+
Then you can customize and integrate Intel(R) SGX build process. You can use Makefile instead of sgx/Makefile
in the example shown in the following figure:
-
Customization of SGX Build Command
+
Customization of Intel(R) SGX Build Command
The build process is done using standard Eclipse interface for build, by example from the main Project menu:
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/toc.xml b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/toc.xml
index 9a31c4b5b2..3d3fe8e174 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/toc.xml
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx.userguide/toc.xml
@@ -24,22 +24,22 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
\ No newline at end of file
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/plugin.xml b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/plugin.xml
index 86a2ba5d05..e08a0a67e9 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/plugin.xml
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/plugin.xml
@@ -12,20 +12,20 @@
-
+ name="Intel(R) Software Guard Extensions Linux Builder">
-
@@ -39,97 +39,97 @@
-
+
+ name="Intel(R) SGX" superClass="com.intel.sgx.SGXtoolChain">
-
+
+ name="Intel(R) SGX" superClass="com.intel.sgx.SGXtoolChain">
-
+
+ name="Intel(R) SGX" superClass="com.intel.sgx.SGXtoolChain">
-
+
+ name="Intel(R) SGX" superClass="com.intel.sgx.SGXtoolChain">
-
+
+ name="Intel(R) SGX" superClass="com.intel.sgx.SGXtoolChain">
-
-
-
+
-
+
+ name="Add Intel(R) SGX Enclave">
+ name="Add Intel(R) SGX Trusted Static Library">
+ name="Remove Intel(R) SGX Enclave">
+ name="Add Intel(R) SGX Untrusted Module">
+ name="Add Intel(R) SGX Nature">
+ name="Update Intel(R) SGX Enclave Signing Key">
@@ -144,7 +144,7 @@
-
+
-
+
@@ -367,7 +367,7 @@
+ name="Intel(R) SGX Preferences">
@@ -677,7 +677,7 @@
+ projectType="Intel(R) Software Guard Extensions Project">
-
-
-
@@ -748,7 +748,7 @@
+name="C/C++ projects with Intel(R) SGX Enabled">
name="C Project"
project="true">
- An C project, with SGX Commands and Configurations
+ An C project, with Intel(R) SGX Commands and Configurations
@@ -777,7 +777,7 @@ name="C/C++ projects with SGX Enabled">
name="C++ Project"
project="true">
- An C++ project, with SGX Commands and Configurations
+ An C++ project, with Intel(R) SGX Commands and Configurations
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddEnclaveFileDialog.java b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddEnclaveFileDialog.java
index e663a1c390..8c616ea013 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddEnclaveFileDialog.java
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddEnclaveFileDialog.java
@@ -95,7 +95,7 @@ public class AddEnclaveFileDialog extends SGXDialogBase {
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
- newShell.setText("Add New SGX Enclave Dialog");
+ newShell.setText("Add New Intel(R) SGX Enclave Dialog");
newShell.layout();
}
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddTrustedStaticLibFileDialog.java b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddTrustedStaticLibFileDialog.java
index b353c716c8..9a2c5cc3ce 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddTrustedStaticLibFileDialog.java
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddTrustedStaticLibFileDialog.java
@@ -79,7 +79,7 @@ public class AddTrustedStaticLibFileDialog extends SGXDialogBase {
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
- newShell.setText("Add New SGX Static Trusted Library Dialog");
+ newShell.setText("Add New Intel(R) SGX Static Trusted Library Dialog");
}
@Override
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddUntrustedModuleDialog.java b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddUntrustedModuleDialog.java
index 15779d4651..a99bf71978 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddUntrustedModuleDialog.java
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/dialogs/AddUntrustedModuleDialog.java
@@ -112,7 +112,7 @@ public class AddUntrustedModuleDialog extends Dialog {
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
- newShell.setText("Add SGX Untrusted Module.");
+ newShell.setText("Add Intel(R) SGX Untrusted Module.");
}
@Override
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/handlers/TwoStepSignHandlerBase.java b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/handlers/TwoStepSignHandlerBase.java
index 59ae2eb7a4..f96ed13078 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/handlers/TwoStepSignHandlerBase.java
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/handlers/TwoStepSignHandlerBase.java
@@ -82,7 +82,7 @@ public abstract class TwoStepSignHandlerBase extends SGXHandler {
void initializeSigntool() throws ErrorException {
signtool = PreferenceConstants.getSDKDescriptor().getSignerPath();
if (!signtool.exists() || signtool.isDirectory()) {
- quitWithError("Error generating hash! Sign Tool Not Found !\n Please make sure to have written in the box the value for SGX SDK Directory in Window->Preferences->SGX Preferences. \n Usually the path is in /opt/intel/sgxsdk/" );
+ quitWithError("Error generating hash! Sign Tool Not Found !\n Please make sure to have written in the box the value for Intel(R) SGX SDK Directory in Window->Preferences->Intel(R) SGX Preferences. \n Usually the path is in /opt/intel/sgxsdk/" );
}
}
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/handlers/UpdateSigningKey.java b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/handlers/UpdateSigningKey.java
index 68870ea3cf..cd55358060 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/handlers/UpdateSigningKey.java
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/handlers/UpdateSigningKey.java
@@ -65,7 +65,7 @@ public class UpdateSigningKey extends SGXHandler {
IPath destFile = Path.fromOSString(destinationKeyFile);
copyFile(sourceFile.toFile(), destFile.toFile());
refreshProject();
- info("Update SGX Enclave Signing Key","copied \n'" + sourceKeyFile + "' into \n'" + destFile + "'");
+ info("Update Intel(R) SGX Enclave Signing Key","copied \n'" + sourceKeyFile + "' into \n'" + destFile + "'");
} else {
UpdateSignKeyDialog.regenerate = false;
try {
@@ -84,7 +84,7 @@ public class UpdateSigningKey extends SGXHandler {
}
project.refreshLocal(IResource.DEPTH_INFINITE, null);
if (q.exitValue() == 0){
- info("Update SGX Enclave Signing Key","'"+destinationKeyFile+"'"+" was generated!");
+ info("Update Intel(R) SGX Enclave Signing Key","'"+destinationKeyFile+"'"+" was generated!");
} else {
quitWithError("Could not generate '"+destinationKeyFile+"'!!!");
}
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/preferences/SGXPreferencePage.java b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/preferences/SGXPreferencePage.java
index bbf6608a71..fe4059f5ab 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/preferences/SGXPreferencePage.java
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/src/com/intel/sgx/preferences/SGXPreferencePage.java
@@ -46,7 +46,7 @@ public class SGXPreferencePage
public SGXPreferencePage() {
super(GRID);
setPreferenceStore(Activator.getDefault().getPreferenceStore());
- setDescription("SGX Preferences");
+ setDescription("Intel(R) SGX Preferences");
}
/**
@@ -59,12 +59,12 @@ public class SGXPreferencePage
@Override
protected void createFieldEditors() {
sgxSdkDirectoryEditor = new SGXSdkDirectoryFieldEditor(PreferenceConstants.SDK_PATH,
- "&SGX SDK Directory:", getFieldEditorParent());
+ "&Intel(R) SGX SDK Directory:", getFieldEditorParent());
addField(sgxSdkDirectoryEditor);
}
/*
- * Validates whether the path entered in the SGX SDK Preferences points to the SGX SDK or not.
+ * Validates whether the path entered in the Intel(R) SGX SDK Preferences points to the Intel(R) SGX SDK or not.
*/
private static class SGXSdkDirectoryFieldEditor extends DirectoryFieldEditor {
public SGXSdkDirectoryFieldEditor(String name, String labelText, Composite parent) {
@@ -75,13 +75,13 @@ public class SGXPreferencePage
@Override
protected boolean doCheckState() {
if (!super.doCheckState()) {
- setErrorMessage("SGX Preferences: Not a Valid directory");
+ setErrorMessage("Intel(R) SGX Preferences: Not a Valid directory");
return false;
}
String dirname = getTextControl().getText().trim();
if (!dirname.isEmpty() && !SdkPathVariableProvider.isValidSGXSdkLocation(dirname)) {
- setErrorMessage("SGX SDK: Not a Valid SGX SDK directory");
+ setErrorMessage("Intel(R) SGX SDK: Not a Valid SGX SDK directory");
return false;
}
return true;
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/SGXtemplates/template.properties b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/SGXtemplates/template.properties
index 9ef4fcdf31..58be4d9a7d 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/SGXtemplates/template.properties
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/SGXtemplates/template.properties
@@ -12,34 +12,34 @@
SGX.author=Intel
#Add Nature template Values
- SGX.naturetemplate.title.description=A Software Guard Extensions Project template.
- SGX.naturetemplate.title.label=SGX Project
+ SGX.naturetemplate.title.description=A Intel Software Guard Extensions Project template.
+ SGX.naturetemplate.title.label=Intel SGX Project
SGX.naturetemplate.title.id=AddSGXNature
#Enclave Config template Values
- SGX.enclaveconfig.template.title.description=A Software Guard Extensions Configuration template.
- SGX.enclaveconfig.template.title.label=SGX Enclave Configuration
+ SGX.enclaveconfig.template.title.description=A Intel Software Guard Extensions Configuration template.
+ SGX.enclaveconfig.template.title.label=Intel SGX Enclave Configuration
SGX.enclaveconfig.template.title.id=SGXEnclaveConfig
#Untrusted Module template values
- SGX.untrustedModule.template.title.description= A Software Guard Extensions Untrusted Module template.
- SGX.untrustedModule.template.title.label=SGX Untrusted Module
+ SGX.untrustedModule.template.title.description= A Intel Software Guard Extensions Untrusted Module template.
+ SGX.untrustedModule.template.title.label=Intel SGX Untrusted Module
#Enclave template values
- SGX.enclave.template.title.description= A Software Guard Extensions Project template.
- SGX.enclave.template.title.label=SGX Project
+ SGX.enclave.template.title.description= A Intel Software Guard Extensions Project template.
+ SGX.enclave.template.title.label=Intel SGX Project
SGX.enclave.template.title.id=SGXProject
#C template Values
- SGX.Ctemplate.title.description=A Software Guard Extensions C Enclave Project template.
- SGX.Ctemplate.title.label=SGX C Enclave Project
+ SGX.Ctemplate.title.description=A Intel Software Guard Extensions C Enclave Project template.
+ SGX.Ctemplate.title.label=Intel SGX C Enclave Project
SGX.Ctemplate.title.id=SGXCProject
SGX.Ctemplate.enclaveSettings.label=Enclave Settings
SGX.Ctemplate.enclaveSettings.description=Initial settings required for a new enclave.
#C Static lib template Values
- SGX.CStatictemplate.title.description=A Software Guard Extensions C Enclave Project template.
- SGX.CStatictemplate.title.label=SGX C Enclave Library Project
+ SGX.CStatictemplate.title.description=A Intel Software Guard Extensions C Enclave Project template.
+ SGX.CStatictemplate.title.label=Intel SGX C Enclave Library Project
SGX.CStatictemplate.title.id=SGXCEnclaveLibProject
SGX.CStatictemplate.enclaveSettings.label=Enclave Settings
SGX.CStatictemplate.enclaveSettings.description=Initial settings required for a new enclave Library.
@@ -47,15 +47,15 @@
SGX.CStatictemplate.requiresEdl.description=De-select this option to create an Non-SGX trusted static library without an Edl file. By default, the project creates an Enclave library with an Edl file.
#CXX template Values
- SGX.CXXtemplate.title.description=A Software Guard Extensions C++ Enclave Project template.
- SGX.CXXtemplate.title.label=C/C++ Project with SGX Nature
+ SGX.CXXtemplate.title.description=A Intel Software Guard Extensions C++ Enclave Project template.
+ SGX.CXXtemplate.title.label=C/C++ Project with Intel SGX Nature
SGX.CXXtemplate.title.id=SGXCPPProject
SGX.CXXtemplate.enclaveSettings.label=Enclave Settings
SGX.CXXtemplate.enclaveSettings.description=Initial settings required for a new enclave.
#CXX Static lib template Values
- SGX.CXXStatictemplate.title.description=A Software Guard Extensions C++ Enclave Library Project template.
- SGX.CXXStatictemplate.title.label=SGX C++ Enclave Library Project
+ SGX.CXXStatictemplate.title.description=A Intel Software Guard Extensions C++ Enclave Library Project template.
+ SGX.CXXStatictemplate.title.label=Intel SGX C++ Enclave Library Project
SGX.CXXStatictemplate.title.id=SGXCPPEnclaveLibProject
SGX.CXXStatictemplate.enclaveSettings.label=Enclave Settings
SGX.CXXStatictemplate.enclaveSettings.description=Initial settings required for a new enclave Library.
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_t.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_t.mk
index 41aaf26fa4..9e5bd81769 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_t.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_t.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
@@ -45,7 +45,7 @@ Crypto_Library_Name := sgx_tcrypto
$(EnclaveName)_Cpp_Files := trusted/$(enclaveName).cpp
$(EnclaveName)_C_Files :=
-$(EnclaveName)_Include_Paths := -IInclude -Itrusted -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport
+$(EnclaveName)_Include_Paths := -IInclude -Itrusted -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx
Flags_Just_For_C := -Wno-implicit-function-declaration -std=c11
@@ -57,7 +57,7 @@ $(EnclaveName)_Cpp_Flags := $($(EnclaveName)_Cpp_Flags) -fno-builtin-printf
$(EnclaveName)_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
- -Wl,--start-group -lsgx_tstdc -lsgx_tstdcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
-Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
-Wl,--defsym,__ImageBase=0 \
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_u.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_u.mk
index 201963cb07..f498e6513c 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_u.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_u.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_u.without_app.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_u.without_app.mk
index 00aed4b876..f4b68ee975 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_u.without_app.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c++/sgx_u.without_app.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_t.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_t.mk
index 3851c1de3b..add92a56bd 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_t.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_t.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
@@ -44,7 +44,7 @@ endif
Crypto_Library_Name := sgx_tcrypto
$(EnclaveName)_C_Files := trusted/$(enclaveName).c
-$(EnclaveName)_Include_Paths := -IInclude -Itrusted -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport
+$(EnclaveName)_Include_Paths := -IInclude -Itrusted -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx
Flags_Just_For_C := -Wno-implicit-function-declaration -std=c11
Common_C_Cpp_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -fstack-protector $($(EnclaveName)_Include_Paths) -fno-builtin-printf -I.
@@ -52,7 +52,7 @@ $(EnclaveName)_C_Flags := $(Flags_Just_For_C) $(Common_C_Cpp_Flags)
$(EnclaveName)_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
- -Wl,--start-group -lsgx_tstdc -lsgx_tstdcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
-Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
-Wl,--defsym,__ImageBase=0 \
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_u.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_u.mk
index 70d293e363..d4079d1055 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_u.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_u.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_u.without_app.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_u.without_app.mk
index f9eee94c69..82fcf5943d 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_u.without_app.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/makefiles/c/sgx_u.without_app.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/untrusted/sample.cpp b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/untrusted/sample.cpp
index 58b28a8509..25d9737f59 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/untrusted/sample.cpp
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXEnclave/untrusted/sample.cpp
@@ -69,8 +69,8 @@ static sgx_errlist_t sgx_errlist[] = {
},
{
SGX_ERROR_NO_DEVICE,
- "Invalid SGX device.",
- "Please make sure SGX module is enabled in the BIOS, and install SGX driver afterwards."
+ "Invalid Intel(R) SGX device.",
+ "Please make sure Intel(R) SGX module is enabled in the BIOS, and install Intel(R) SGX driver afterwards."
},
{
SGX_ERROR_MEMORY_MAP_CONFLICT,
@@ -84,7 +84,7 @@ static sgx_errlist_t sgx_errlist[] = {
},
{
SGX_ERROR_DEVICE_BUSY,
- "SGX device was busy.",
+ "Intel(R) SGX device was busy.",
NULL
},
{
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c++/sgx_t_static.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c++/sgx_t_static.mk
index 62ff91ff93..bd24da045b 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c++/sgx_t_static.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c++/sgx_t_static.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
@@ -45,7 +45,7 @@ Crypto_Library_Name := sgx_tcrypto
$(EnclaveName)_Cpp_Files := static_trusted/$(enclaveName).cpp
$(EnclaveName)_C_Files :=
-$(EnclaveName)_Include_Paths := -IInclude -I$(EnclaveName) -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport
+$(EnclaveName)_Include_Paths := -IInclude -I$(EnclaveName) -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx
Flags_Just_For_C := -Wno-implicit-function-declaration -std=c11
Common_C_Cpp_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -fstack-protector $($(EnclaveName)_Include_Paths) -fno-builtin-printf -I.
@@ -56,7 +56,7 @@ $(EnclaveName)_Cpp_Flags := $($(EnclaveName)_Cpp_Flags) -fno-builtin-printf
$(EnclaveName)_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
- -Wl,--start-group -lsgx_tstdc -lsgx_tstdcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
-Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
-Wl,--defsym,__ImageBase=0 \
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c++/sgx_u.without_app.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c++/sgx_u.without_app.mk
index c0d0c6778a..0603b3c51e 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c++/sgx_u.without_app.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c++/sgx_u.without_app.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c/sgx_t_static.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c/sgx_t_static.mk
index e3dbd8f7f5..84f202e843 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c/sgx_t_static.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c/sgx_t_static.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
@@ -44,7 +44,7 @@ endif
Crypto_Library_Name := sgx_tcrypto
$(EnclaveName)_C_Files := static_trusted/$(enclaveName).c
-$(EnclaveName)_Include_Paths := -IInclude -I$(EnclaveName) -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport
+$(EnclaveName)_Include_Paths := -IInclude -I$(EnclaveName) -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx
Flags_Just_For_C := -Wno-implicit-function-declaration -std=c11
Common_C_Cpp_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -fstack-protector $($(EnclaveName)_Include_Paths) -fno-builtin-printf -I.
@@ -52,7 +52,7 @@ $(EnclaveName)_C_Flags := $(Flags_Just_For_C) $(Common_C_Cpp_Flags)
$(EnclaveName)_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
- -Wl,--start-group -lsgx_tstdc -lsgx_tstdcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
-Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
-Wl,--defsym,__ImageBase=0 \
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c/sgx_u.without_app.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c/sgx_u.without_app.mk
index e8a5508339..e82817f599 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c/sgx_u.without_app.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXTrustedStaticLibrary/makefiles/c/sgx_u.without_app.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXUntrustedModule/makefiles/c++/sgx_u.without_app.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXUntrustedModule/makefiles/c++/sgx_u.without_app.mk
index 0db9ce0ab5..f4945a4d61 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXUntrustedModule/makefiles/c++/sgx_u.without_app.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXUntrustedModule/makefiles/c++/sgx_u.without_app.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXUntrustedModule/makefiles/c/sgx_u.without_app.mk b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXUntrustedModule/makefiles/c/sgx_u.without_app.mk
index cce0dfec11..717d15f15c 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXUntrustedModule/makefiles/c/sgx_u.without_app.mk
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/plugins/com.intel.sgx/templates/sgx/SGXUntrustedModule/makefiles/c/sgx_u.without_app.mk
@@ -1,4 +1,4 @@
-######## SGX SDK Settings ########
+######## Intel(R) SGX SDK Settings ########
SGX_SDK ?= $(SdkPathFromPlugin)
SGX_MODE ?= SIM
SGX_ARCH ?= x64
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/sites/site.xml b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/sites/site.xml
index 3c3d422d7b..7fc74459bc 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/sites/site.xml
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/build_directory/sites/site.xml
@@ -11,13 +11,13 @@
-
+
This website hosts an evaluation version of the Eclipse Plug-in developed for Secure Guard Extensions Application development for Linux platforms.
-
- SGX Eclipse Plugin 1.0.1.qualifier
+
+ Intel(R) SGX Eclipse Plugin 1.0.1.qualifier
diff --git a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/readme.txt b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/readme.txt
index 1430d35772..244c4a5a14 100644
--- a/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/readme.txt
+++ b/sgx-jvm/linux-sgx/Linux_SGXEclipsePlugin/readme.txt
@@ -12,7 +12,7 @@ The following plugins are pre-requisites to be installed in Eclipse before tryin
run ./build.sh from command line under current directory.
Once the build script is run, the folder build_directory/updatesite/sgx-eclipse-plugin contains the update site. This is the path that needs to be provided to the eclipse while doing installation.
-If the sgx eclipse plugin is already installed to eclipse and to build and install a newer version, uninstall the old version and start eclipse with the -clean option.
+If the Intel(R) Software Guard Extensions (Intel(R) SGX) eclipse plugin is already installed to eclipse and to build and install a newer version, uninstall the old version and start eclipse with the -clean option.
Then try to build the new version of the plugin and install it in eclipse.
http://wiki.eclipse.org/FAQ_How_do_I_remove_a_plug-in%3F
diff --git a/sgx-jvm/linux-sgx/Makefile b/sgx-jvm/linux-sgx/Makefile
index 9cd3ab3a08..5900ab2f5d 100644
--- a/sgx-jvm/linux-sgx/Makefile
+++ b/sgx-jvm/linux-sgx/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -52,6 +52,12 @@ clean:
@$(MAKE) -C psw/ clean
@$(RM) -r $(ROOT_DIR)/build
@$(RM) -r linux/installer/bin/sgx_linux*.bin
+ @$(RM) -rf linux/installer/common/psw/output
+ @$(RM) -rf linux/installer/common/psw/gen_source.py
+ @$(RM) -rf linux/installer/common/sdk/output
+ @$(RM) -rf linux/installer/common/sdk/pkgconfig/x64
+ @$(RM) -rf linux/installer/common/sdk/pkgconfig/x86
+ @$(RM) -rf linux/installer/common/sdk/gen_source.py
rebuild:
$(MAKE) clean
diff --git a/sgx-jvm/linux-sgx/README.md b/sgx-jvm/linux-sgx/README.md
index efacc00610..a6d275aa13 100644
--- a/sgx-jvm/linux-sgx/README.md
+++ b/sgx-jvm/linux-sgx/README.md
@@ -7,63 +7,77 @@ Introduction
------------
Intel(R) Software Guard Extensions (Intel(R) SGX) is an Intel technology for application developers seeking to protect select code and data from disclosure or modification.
-The Linux SGX software stack is comprised of the SGX driver, the SGX SDK, and the SGX Platform Software. The SGX SDK and SGX PSW are hosted in the [linux-sgx](https://github.com/01org/linux-sgx) project.
+The Linux\* Intel(R) SGX software stack is comprised of the Intel(R) SGX driver, the Intel(R) SGX SDK, and the Intel(R) SGX Platform Software (PSW). The Intel(R) SGX SDK and Intel(R) SGX PSW are hosted in the [linux-sgx](https://github.com/01org/linux-sgx) project.
-The [linux-sgx-driver](https://github.com/01org/linux-sgx-driver) project hosts the out-of-tree driver for the Linux SGX software stack, which will be used until the driver upstreaming process is complete.
+The [linux-sgx-driver](https://github.com/01org/linux-sgx-driver) project hosts the out-of-tree driver for the Linux\* Intel(R) SGX software stack, which will be used until the driver upstreaming process is complete.
+
+**Note** This repository includes a subset of the Intel(R) Integrated Performance Primitives (IPP) Cryptography library under [external/crypto_px](external/crypto_px). It is provided as reference implementation for the cryptographic primitives used in SDK and PSW. The primitives are written in pure C and are not optimized for performance. Instructions are provided below for building the SDK and PSW with both precompiled optimized IPP binaries and the non-optimized source code version.
License
-------
-See License.txt for details.
+See [License.txt](License.txt) for details.
Contributing
-------
-See CONTRIBUTING.md for details.
+See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
Documentation
-------------
-- [Intel(R) SGX for Linux\* OS][1] project home page on [01.org](https://01.org)
-- [Intel(R) SGX Programming Reference][2]
-[1]: https://01.org/intel-softwareguard-extensions
-[2]: https://software.intel.com/sites/default/files/managed/48/88/329298-002.pdf
+- [Intel(R) SGX for Linux\* OS](https://01.org/intel-softwareguard-extensions) project home page on [01.org](https://01.org)
+- [Intel(R) SGX Programming Reference](https://software.intel.com/sites/default/files/managed/48/88/329298-002.pdf)
Build and Install the Intel(R) SGX Driver
-----------------------------------------
-Follow the instructions in the [linux-sgx-driver](https://github.com/01org/linux-sgx-driver) project to build and install the SGX driver.
+Follow the instructions in the [linux-sgx-driver](https://github.com/01org/linux-sgx-driver) project to build and install the Intel(R) SGX driver.
Build the Intel(R) SGX SDK and Intel(R) SGX PSW Package
-------------------------------------------------------
-###Prerequisites:
-- Ensure that you have the following required operating systems:
- Ubuntu\* Desktop-14.04-LTS 64bits
-- Use the following command to install the required tools to build Intel(R) SGX SDK:
-```
- $ sudo apt-get install build-essential ocaml automake autoconf libtool
-```
-- Use the following command to install additional required tools to build Intel(R) SGX PSW:
-```
- $ sudo apt-get install libcurl4-openssl-dev protobuf-compiler protobuf-c-compiler libprotobuf-dev libprotobuf-c0-dev
-```
+### Prerequisites:
+- Ensure that you have one of the following required operating systems:
+ * Ubuntu\* Desktop-16.04-LTS 64bits
+ * Red Hat Enterprise Linux Server release 7.3 64bits
+ * CentOS 7.3.1611 64bits
+
+- Use the following command(s) to install the required tools to build the Intel(R) SGX SDK:
+ * On Ubuntu 16.04:
+ ```
+ $ sudo apt-get install build-essential ocaml automake autoconf libtool wget python
+ ```
+ * On Red Hat Enterprise Linux 7.3 and CentOS 7.3:
+ ```
+ $ sudo yum groupinstall 'Development Tools'
+ $ sudo yum install ocaml wget python
+ ```
+- Use the following command to install additional required tools to build the Intel(R) SGX PSW:
+ * On Ubuntu 16.04:
+ ```
+ $ sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev
+ ```
+ * On Red Hat Enterprise Linux 7.3 and CentOS 7.3:
+ ```
+ $ sudo yum install openssl-devel libcurl-devel protobuf-compiler protobuf-devel
+ ```
- Use the script ``download_prebuilt.sh`` inside source code package to download prebuilt binaries to prebuilt folder
- You may need set https proxy for wget tool used by the script (such as ``export https_proxy=http://test-proxy:test-port``)
+ You may need set an https proxy for the `wget` tool used by the script (such as ``export https_proxy=http://test-proxy:test-port``)
```
$ ./download_prebuilt.sh
```
-###Build the Intel(R) SGX SDK and Intel(R) SGX PSW
-The following steps describe how to build the Intel SGX SDK and PSW. You can build the project according to your requirement.
-- To build both Intel SGX SDK and PSW with default configuration, enter the following command:
- You can find the tools and libraries generated in the `build/linux` directory.
- **Note**: You can also go to the sdk folder and use the `make` command to build the Intel SGX SDK component only. However, the building of PSW component is dependent on the building result of Intel SGX SDK.
+### Build the Intel(R) SGX SDK and Intel(R) SGX PSW
+The following steps describe how to build the Intel(R) SGX SDK and PSW. You can build the project according to your requirements.
+- To build both Intel(R) SGX SDK and PSW with default configuration, enter the following command:
```
$ make
```
+ You can find the tools and libraries generated in the `build/linux` directory.
+ **Note**: You can also go to the `sdk` folder and use the `make` command to build the Intel(R) SGX SDK component only. However, building the PSW component is dependent on the result of building the Intel(R) SGX SDK.
-- The default build uses precompiled optimized libraries which have been downloaded by the script ``./download_prebuilt.sh``.
+- The default build uses precompiled optimized libraries, which are downloaded by the script ``./download_prebuilt.sh``.
You can also use the non-optimized source code version implementation instead by entering the following command:
```
$ make USE_OPT_LIBS=0
```
-- To build Intel SGX SDK and PSW with debug information, enter the following command:
+- To build Intel(R) SGX SDK and PSW with debug information, enter the following command:
```
$ make DEBUG=1
```
@@ -72,108 +86,144 @@ The following steps describe how to build the Intel SGX SDK and PSW. You can bui
$ make clean
```
-- The build above uses prebuilt Intel(R) Architecture Enclaves(LE/PvE/QE/PCE) - the files ``psw/ae/data/prebuilt/libsgx_*.signed.so``, which have been signed by Intel in advance.
- To build those binaries by yourself (without a signature), first you need to build both Intel SGX SDK and PSW with the default configuration. After that, you can build each Architecture Enclave by using the `make` command from the corresponding folder:
+- The build above uses prebuilt Intel(R) Architecture Enclaves(LE/PvE/QE/PCE/PSE-OP/PSE-PR) and applet(PSDA) - the files ``psw/ae/data/prebuilt/libsgx_*.signed.so`` and ``psw/ae/data/prebuilt/PSDA.dalp``, which have been signed by Intel in advance.
+ To build those enclaves by yourself (without a signature), first you need to build both Intel(R) SGX SDK and PSW with the default configuration. After that, you can build each Architecture Enclave by using the `make` command from the corresponding folder:
```
$ cd psw/ae/le
$ make
```
-###Build Intel(R) SGX SDK Installer
-To build Intel(R) SGX SDK installer, enter the following command:
+### Build the Intel(R) SGX SDK Installer
+To build the Intel(R) SGX SDK installer, enter the following command:
```
$ make sdk_install_pkg
```
-You can find the generated Intel SGX SDK installer ``sgx_linux_x64_sdk_${version}.bin`` located under `linux/installer/bin/`, where `${version}` refers to the version number.
-You could also make an SGX SDK installer with non-optimized source code for crypto library by
+You can find the generated Intel(R) SGX SDK installer ``sgx_linux_x64_sdk_${version}.bin`` located under `linux/installer/bin/`, where `${version}` refers to the version number.
+
+**Note**: The above command builds the Intel(R) SGX SDK with default configuration firstly and then generates the target SDK Installer. To build the Intel(R) SGX SDK Installer with debug information kept in the tools and libraries, enter the following command:
```
-$ make sdk_install_pkg USE_OPT_LIBS=0
+$ make sdk_install_pkg DEBUG=1
```
-###Build Intel(R) SGX PSW Installer
-To build Intel(R) SGX PSW installer, enter the following command:
+### Build the Intel(R) SGX PSW Installer
+To build the Intel(R) SGX PSW installer, enter the following command:
```
$ make psw_install_pkg
```
-You can find the generated Intel SGX PSW installer ``sgx_linux_x64_psw_${version}.bin`` located under `linux/installer/bin/`, where `${version}` refers to the version number.
-You could also make an SGX PSW intaller with non-optimized source code for crypto library by
+You can find the generated Intel(R) SGX PSW installer ``sgx_linux_x64_psw_${version}.bin`` located under `linux/installer/bin/`, where `${version}` refers to the version number.
+
+**Note**: The above command builds the Intel(R) SGX SDK and PSW with default configuration firstly and then generates the target PSW Installer. To build the Intel(R) SGX PSW Installer with debug information kept in the tools and libraries, enter the following command:
```
-$ make psw_install_pkg USE_OPT_LIBS=0
-```
-Install Intel(R) SGX SDK
-------------------------
-###Prerequisites
-- Ensure that you have the following required operating systems:
- Ubuntu\* Desktop-14.04-LTS 64bits
-- Use the following command to install the required tool to use Intel(R) SGX SDK:
-```
- $ sudo apt-get install build-essential
+$ make psw_install_pkg DEBUG=1
```
-###Install Intel(R) SGX SDK
-To install Intel(R) SGX SDK, execute the installer with root privilege:
+
+Install the Intel(R) SGX SDK
+------------------------
+### Prerequisites
+- Ensure that you have one of the following operating systems:
+ * Ubuntu\* Desktop-16.04-LTS 64bits
+ * Red Hat Enterprise Linux Server release 7.3 64bits
+ * CentOS 7.3.1611 64bits
+- Use the following command to install the required tool to use Intel(R) SGX SDK:
+ * On Ubuntu 16.04:
+ ```
+ $ sudo apt-get install build-essential python
+ ```
+ * On Red Hat Enterprise Linux 7.3 and CentOS 7.3:
+ ```
+ $ sudo yum groupinstall 'Development Tools'
+ $ sudo yum install python
+ ```
+
+### Install the Intel(R) SGX SDK
+To install the Intel(R) SGX SDK, invoke the installer, as follows:
```
$ cd linux/installer/bin
-$ sudo ./sgx_linux_x64_sdk_${version}.bin
+$ ./sgx_linux_x64_sdk_${version}.bin
```
-###Test Intel(R) SGX SDK Package with the Sample Codes
-- Copy the sample codes installed by Intel(R) SGX SDK package into your work folder, such as
+### Test the Intel(R) SGX SDK Package with the Code Samples
+- Compile and run each code sample in Simulation mode to make sure the package works well:
```
- $ cp -r /opt/intel/sgxsdk/SampleCode ~
+ $ cd SampleCode/LocalAttestation
+ $ make SGX_MODE=SIM
+ $ ./app
```
-- Compile and run each sample codes in the simulation mode to make sure the package works well.
+ Use similar commands for other sample codes.
+### Compile and Run the Code Samples in the Hardware Mode
+If you use an Intel SGX hardware enabled machine, you can run the code samples in Hardware mode.
+Ensure that you install Intel(R) SGX driver and Intel(R) SGX PSW installer on the machine.
+See the earlier topic, *Build and Install the Intel(R) SGX Driver*, for information on how to install the Intel(R) SGX driver.
+See the later topic, *Install Intel(R) SGX PSW*, for information on how to install the PSW package.
+- Compile and run each code sample in Hardware mode, debug build, as follows:
```
$ cd SampleCode/LocalAttestation
$ make
$ ./app
```
- Use similar commands for other sample codes.
+ Use similar commands for other code samples.
-###Compile and Run the Sample Codes in the Hardware Mode
-If you use an SGX hardware enabled machine, you need to run the sample codes in the hardware mode.
-Ensure that you install SGX driver and Intel(R) SGX PSW installer on the machine.
-See the topic, Install Intel(R) SGX PSW, on how to install the PSW package.
-- Copy the sample codes installed by the Intel(R) SGX SDK package into your work folder, such as
-```
- $ cp -r /opt/intel/sgxsdk/SampleCode ~
-```
-- Compile and run each sample codes in the debug mode.
-```
- $ cd SampleCode/LocalAttestation
- $ make SGX_MODE=HW SGX_DEBUG=1
- $ ./app
-```
- Use similar commands for other sample codes.
-Install Intel(R) SGX PSW
+Install the Intel(R) SGX PSW
------------------------
-###Prerequisites
-- Ensure that you have the following required operating systems:
- Ubuntu\* Desktop-14.04-LTS 64bits
-- Ensure that you have the following required hardware:
- 6th Generation Intel(R) Core(TM) Processor (code named Skylake)
-- Configure the system with the **SGX hardware enabled** option and install SGX driver in advance.
- See the topic, Build and Install the Intel(R) SGX Driver, on how to install the SGX driver.
+### Prerequisites
+- Ensure that you have one of the following operating systems:
+ * Ubuntu\* Desktop-16.04-LTS 64bits
+ * Red Hat Enterprise Linux Server release 7.3 64bits
+ * CentOS 7.3.1611 64bits
+- Ensure that you have a system with the following required hardware:
+ * 6th Generation Intel(R) Core(TM) Processor or newer
+- Configure the system with the **Intel SGX hardware enabled** option and install Intel(R) SGX driver in advance.
+ See the earlier topic, *Build and Install the Intel(R) SGX Driver*, for information on how to install the Intel(R) SGX driver.
- Install the library using the following command:
-```
- $ sudo apt-get install libcurl4-openssl-dev libprotobuf-dev libprotobuf-c0-dev
-```
+ * On Ubuntu 16.04:
+ ```
+ $ sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev
+ ```
+ * On Red Hat Enterprise Linux 7.3 and CentOS 7.3:
+ ```
+ $ sudo yum install openssl-devel libcurl-devel protobuf-devel
+ ```
+- To use Trusted Platform Service functions:
+ Ensure `mei_me` driver is enabled and `/dev/mei0` exists.
+ Download [iclsClient](https://software.intel.com/en-us/sgx-sdk/download) and install it using the following commands:
+ * On Ubuntu 16.04:
+ ```
+ $ sudo apt-get install alien
+ $ sudo alien --scripts iclsClient-1.45.449.12-1.x86_64.rpm
+ $ sudo dpkg -i iclsclient_1.45.449.12-2_amd64.deb
+ ```
+ * On Red Hat Enterprise Linux 7.3 and CentOS 7.3:
+ ```
+ $ sudo yum install iclsClient-1.45.449.12-1.x86_64.rpm
+ ```
+ Download source code from [dynamic-application-loader-host-interface](https://github.com/01org/dynamic-application-loader-host-interface) project. In the source code folder, build and install the `JHI` service using the following commands:
+ * On Ubuntu 16.04:
+ ```
+ $ sudo apt-get install uuid-dev libxml2-dev cmake pkg-config
+ $ cmake .;make;sudo make install;sudo systemctl enable jhi
+ ```
+ * On Red Hat Enterprise Linux 7.3 and CentOS 7.3:
+ ```
+ $ sudo yum install libuuid-devel libxml2-devel cmake pkgconfig
+ $ cmake .;make;sudo make install;sudo ldconfig;sudo systemctl enable jhi
+ ```
-###Install Intel(R) SGX PSW
-To install Intel(R) SGX PSW, execute the installer with root privilege:
+### Install the Intel(R) SGX PSW
+To install the Intel(R) SGX PSW, invoke the installer with root privilege:
```
$ cd linux/installer/bin
$ sudo ./sgx_linux_x64_psw_${version}.bin
```
-###Start or Stop aesmd Service
-The Intel(R) SGX PSW installer installs an aesmd service in your machine which is running in a special linux account aesmd.
+### Start or Stop aesmd Service
+The Intel(R) SGX PSW installer installs an aesmd service in your machine, which is running in a special linux account `aesmd`.
To stop the service: `$ sudo service aesmd stop`
To start the service: `$ sudo service aesmd start`
To restart the service: `$ sudo service aesmd restart`
-###Configure the Proxy for aesmd Service
-The aesmd service uses HTTP protocol to initialize some services.
-If proxy is required for HTTP protocol, you may need manually setup the proxy for aesmd service.
-You should manually edit file `/etc/aesmd.conf` (refer the comment in the file) to set the proxy for aesmd service.
+### Configure the Proxy for aesmd Service
+The aesmd service uses the HTTP protocol to initialize some services.
+If a proxy is required for the HTTP protocol, you may need to manually set up the proxy for the aesmd service.
+You should manually edit the file `/etc/aesmd.conf` (refer to the comments in the file) to set the proxy for the aesmd service.
After you configure the proxy, you need to restart the service to enable the proxy.
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.cproject b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.cproject
new file mode 100644
index 0000000000..6fff949bc8
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.cproject
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.project b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.project
new file mode 100644
index 0000000000..8feb490168
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.project
@@ -0,0 +1,28 @@
+
+
+ Cxx11SGXDemo
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ org.eclipse.cdt.core.cnature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+ org.eclipse.cdt.core.ccnature
+ com.intel.sgx.sgxnature
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.settings/language.settings.xml b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.settings/language.settings.xml
new file mode 100644
index 0000000000..bb1f9221e3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/.settings/language.settings.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/App.cpp b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/App.cpp
new file mode 100644
index 0000000000..bc5e7b3e2e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/App.cpp
@@ -0,0 +1,263 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include
+#include
+#include
+
+# include
+# include
+# define MAX_PATH FILENAME_MAX
+
+#include "sgx_urts.h"
+#include "sgx_uae_service.h"
+#include "App.h"
+#include "Enclave_u.h"
+
+/* Global EID shared by multiple threads */
+sgx_enclave_id_t global_eid = 0;
+
+typedef struct _sgx_errlist_t {
+ sgx_status_t err;
+ const char *msg;
+ const char *sug; /* Suggestion */
+} sgx_errlist_t;
+
+/* Error code returned by sgx_create_enclave */
+static sgx_errlist_t sgx_errlist[] = {
+ {
+ SGX_ERROR_UNEXPECTED,
+ "Unexpected error occurred.",
+ NULL
+ },
+ {
+ SGX_ERROR_INVALID_PARAMETER,
+ "Invalid parameter.",
+ NULL
+ },
+ {
+ SGX_ERROR_OUT_OF_MEMORY,
+ "Out of memory.",
+ NULL
+ },
+ {
+ SGX_ERROR_ENCLAVE_LOST,
+ "Power transition occurred.",
+ "Please refer to the sample \"PowerTransition\" for details."
+ },
+ {
+ SGX_ERROR_INVALID_ENCLAVE,
+ "Invalid enclave image.",
+ NULL
+ },
+ {
+ SGX_ERROR_INVALID_ENCLAVE_ID,
+ "Invalid enclave identification.",
+ NULL
+ },
+ {
+ SGX_ERROR_INVALID_SIGNATURE,
+ "Invalid enclave signature.",
+ NULL
+ },
+ {
+ SGX_ERROR_OUT_OF_EPC,
+ "Out of EPC memory.",
+ NULL
+ },
+ {
+ SGX_ERROR_NO_DEVICE,
+ "Invalid SGX device.",
+ "Please make sure SGX module is enabled in the BIOS, and install SGX driver afterwards."
+ },
+ {
+ SGX_ERROR_MEMORY_MAP_CONFLICT,
+ "Memory map conflicted.",
+ NULL
+ },
+ {
+ SGX_ERROR_INVALID_METADATA,
+ "Invalid enclave metadata.",
+ NULL
+ },
+ {
+ SGX_ERROR_DEVICE_BUSY,
+ "SGX device was busy.",
+ NULL
+ },
+ {
+ SGX_ERROR_INVALID_VERSION,
+ "Enclave version was invalid.",
+ NULL
+ },
+ {
+ SGX_ERROR_INVALID_ATTRIBUTE,
+ "Enclave was not authorized.",
+ NULL
+ },
+ {
+ SGX_ERROR_ENCLAVE_FILE_ACCESS,
+ "Can't open enclave file.",
+ NULL
+ },
+ {
+ SGX_ERROR_NDEBUG_ENCLAVE,
+ "The enclave is signed as product enclave, and can not be created as debuggable enclave.",
+ NULL
+ },
+};
+
+/* Check error conditions for loading enclave */
+void print_error_message(sgx_status_t ret)
+{
+ size_t idx = 0;
+ size_t ttl = sizeof sgx_errlist/sizeof sgx_errlist[0];
+
+ for (idx = 0; idx < ttl; idx++) {
+ if(ret == sgx_errlist[idx].err) {
+ if(NULL != sgx_errlist[idx].sug)
+ printf("Info: %s\n", sgx_errlist[idx].sug);
+ printf("Error: %s\n", sgx_errlist[idx].msg);
+ break;
+ }
+ }
+
+ if (idx == ttl)
+ printf("Error: Unexpected error occurred.\n");
+}
+
+/* Initialize the enclave:
+ * Step 1: try to retrieve the launch token saved by last transaction
+ * Step 2: call sgx_create_enclave to initialize an enclave instance
+ * Step 3: save the launch token if it is updated
+ */
+int initialize_enclave(void)
+{
+ char token_path[MAX_PATH] = {'\0'};
+ sgx_launch_token_t token = {0};
+ sgx_status_t ret = SGX_ERROR_UNEXPECTED;
+ int updated = 0;
+
+ /* Step 1: try to retrieve the launch token saved by last transaction
+ * if there is no token, then create a new one.
+ */
+ /* try to get the token saved in $HOME */
+ const char *home_dir = getpwuid(getuid())->pw_dir;
+
+ if (home_dir != NULL &&
+ (strlen(home_dir)+strlen("/")+sizeof(TOKEN_FILENAME)+1) <= MAX_PATH) {
+ /* compose the token path */
+ strncpy(token_path, home_dir, strlen(home_dir));
+ strncat(token_path, "/", strlen("/"));
+ strncat(token_path, TOKEN_FILENAME, sizeof(TOKEN_FILENAME)+1);
+ } else {
+ /* if token path is too long or $HOME is NULL */
+ strncpy(token_path, TOKEN_FILENAME, sizeof(TOKEN_FILENAME));
+ }
+
+ FILE *fp = fopen(token_path, "rb");
+ if (fp == NULL && (fp = fopen(token_path, "wb")) == NULL) {
+ printf("Warning: Failed to create/open the launch token file \"%s\".\n", token_path);
+ }
+
+ if (fp != NULL) {
+ /* read the token from saved file */
+ size_t read_num = fread(token, 1, sizeof(sgx_launch_token_t), fp);
+ if (read_num != 0 && read_num != sizeof(sgx_launch_token_t)) {
+ /* if token is invalid, clear the buffer */
+ memset(&token, 0x0, sizeof(sgx_launch_token_t));
+ printf("Warning: Invalid launch token read from \"%s\".\n", token_path);
+ }
+ }
+ /* Step 2: call sgx_create_enclave to initialize an enclave instance */
+ /* Debug Support: set 2nd parameter to 1 */
+ ret = sgx_create_enclave(ENCLAVE_FILENAME, SGX_DEBUG_FLAG, &token, &updated, &global_eid, NULL);
+ if (ret != SGX_SUCCESS) {
+ print_error_message(ret);
+ if (fp != NULL) fclose(fp);
+ return -1;
+ }
+
+ /* Step 3: save the launch token if it is updated */
+ if (updated == FALSE || fp == NULL) {
+ /* if the token is not updated, or file handler is invalid, do not perform saving */
+ if (fp != NULL) fclose(fp);
+ return 0;
+ }
+
+ /* reopen the file with write capablity */
+ fp = freopen(token_path, "wb", fp);
+ if (fp == NULL) return 0;
+ size_t write_num = fwrite(token, 1, sizeof(sgx_launch_token_t), fp);
+ if (write_num != sizeof(sgx_launch_token_t))
+ printf("Warning: Failed to save launch token to \"%s\".\n", token_path);
+ fclose(fp);
+ return 0;
+}
+
+/* OCall functions */
+void ocall_print_string(const char *str)
+{
+ /* Proxy/Bridge will check the length and null-terminate
+ * the input string to prevent buffer overflow.
+ */
+ printf("%s", str);
+}
+
+
+/* Application entry */
+int SGX_CDECL main(int argc, char *argv[])
+{
+ (void)(argc);
+ (void)(argv);
+
+
+ /* Initialize the enclave */
+ if(initialize_enclave() < 0){
+ printf("Enter a character before exit ...\n");
+ getchar();
+ return -1;
+ }
+
+
+ /* Utilize trusted libraries */
+ ecall_libcxx_functions();
+
+ /* Destroy the enclave */
+ sgx_destroy_enclave(global_eid);
+
+ printf("Info: Cxx11DemoEnclave successfully returned.\n");
+
+ //printf("Enter a character before exit ...\n");
+ //getchar();
+ return 0;
+}
+
diff --git a/sgx-jvm/linux-sgx/psw/uae_service/uae_wrapper/src/AEInternalServicesProvider.cpp b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/App.h
similarity index 70%
rename from sgx-jvm/linux-sgx/psw/uae_service/uae_wrapper/src/AEInternalServicesProvider.cpp
rename to sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/App.h
index 3914a1d950..4c088ff38c 100644
--- a/sgx-jvm/linux-sgx/psw/uae_service/uae_wrapper/src/AEInternalServicesProvider.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/App.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -28,30 +28,42 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
-#include
-#include
+#ifndef _APP_H_
+#define _APP_H_
-#include
+#include
+#include
+#include
+#include
-#ifndef CONFIG_SOCKET_PATH
-#error "CONFIG_SOCKET_PATH is not defined"
+#include "sgx_error.h" /* sgx_status_t */
+#include "sgx_eid.h" /* sgx_enclave_id_t */
+
+#ifndef TRUE
+# define TRUE 1
#endif
-#include
+#ifndef FALSE
+# define FALSE 0
+#endif
-AEInternalServices* AEInternalServicesProvider::mProviderInstance = NULL;
+#if defined(__GNUC__)
+# define TOKEN_FILENAME "enclave.token"
+# define ENCLAVE_FILENAME "enclave.signed.so"
+#endif
-AEInternalServicesProvider::AEInternalServicesProvider() { /* empty */ }
+extern sgx_enclave_id_t global_eid; /* global enclave id */
-AEInternalServices* AEInternalServicesProvider::GetInternalServicesProvider()
-{
- if (mProviderInstance)
- return mProviderInstance;
+#if defined(__cplusplus)
+extern "C" {
+#endif
- const char *socketbase = CONFIG_SOCKET_PATH;
+void ecall_libcxx_functions(void);
- mProviderInstance = new AEServicesImpl(socketbase);
- return mProviderInstance;
+#if defined(__cplusplus)
}
+#endif
+
+#endif /* !_APP_H_ */
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/TrustedLibrary/Libcxx.cpp b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/TrustedLibrary/Libcxx.cpp
new file mode 100644
index 0000000000..c04e5eae60
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/App/TrustedLibrary/Libcxx.cpp
@@ -0,0 +1,212 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+#include
+
+#include "../App.h"
+#include "Enclave_u.h"
+#include
+
+/* ecall_libcxx_functions:
+ * Invokes standard C++11 functions.
+ */
+
+ //This function is part of mutex demo
+void demo_counter_without_mutex()
+{
+ sgx_status_t ret = SGX_ERROR_UNEXPECTED;
+ ret = ecall_mutex_demo_no_protection(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+}
+
+//This function is part of mutex demo
+void demo_counter_mutex()
+{
+ sgx_status_t ret = SGX_ERROR_UNEXPECTED;
+ ret = ecall_mutex_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+}
+
+//This function is used by processing thread of condition variable demo
+void demo_cond_var_run()
+{
+ sgx_status_t ret = SGX_ERROR_UNEXPECTED;
+ ret = ecall_condition_variable_run(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+}
+
+//This function is used by the loader thread of condition variable demo
+void demo_cond_var_load()
+{
+ sgx_status_t ret = SGX_ERROR_UNEXPECTED;
+ ret = ecall_condition_variable_load(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+}
+
+// Examples for C++11 library and compiler features
+void ecall_libcxx_functions(void)
+{
+ sgx_status_t ret = SGX_ERROR_UNEXPECTED;
+
+ // Example for lambda function feature:
+ ret = ecall_lambdas_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for auto feature:
+ ret = ecall_auto_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for decltype:
+ ret = ecall_decltype_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for strongly_typed_enum:
+ ret = ecall_strongly_typed_enum_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for range based for loops:
+ ret = ecall_range_based_for_loops_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for static_assert:
+ ret = ecall_static_assert_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for virtual function controls : override, final, default, and delete
+ ret = ecall_virtual_function_control_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for delegating_constructors:
+ ret = ecall_delegating_constructors_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for std::function:
+ ret = ecall_std_function_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for algorithms (std::all_of, std::any_of, std::none_of):
+ ret = ecall_cxx11_algorithms_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for variadic_templates feature:
+ ret = ecall_variadic_templates_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for SFINAE:
+ ret = ecall_SFINAE_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for initializer_list:
+ ret = ecall_initializer_list_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for rvalue:
+ ret = ecall_rvalue_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for nullptr:
+ ret = ecall_nullptr_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for enum class:
+ ret = ecall_enum_class_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for new container classes (unordered_set, unordered_map, unordered_multiset, and unordered_multimap):
+ ret = ecall_new_container_classes_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for tuple:
+ ret = ecall_tuple_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+ // Example for shared_ptr:
+ ret = ecall_shared_ptr_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+ // Example for atomic:
+ ret = ecall_atomic_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+//The following threads are part of mutex demo
+ std::thread t1(demo_counter_without_mutex);
+ std::thread t2(demo_counter_without_mutex);
+ std::thread t3(demo_counter_without_mutex);
+ t1.join();
+ t2.join();
+ t3.join();
+ ret = ecall_print_final_value_no_protection(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+
+
+//The following threads are part of mutex demo
+ std::thread tm1(demo_counter_mutex);
+ std::thread tm2(demo_counter_mutex);
+ std::thread tm3(demo_counter_mutex);
+ tm1.join();
+ tm2.join();
+ tm3.join();
+ ret = ecall_print_final_value_mutex_demo(global_eid);
+ if (ret != SGX_SUCCESS)
+ abort();
+
+//The following threads are part of condition variable demo
+ std::thread th1(demo_cond_var_run);
+ std::thread th2(demo_cond_var_load);
+ th2.join();
+ th1.join();
+
+}
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.config.xml b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.config.xml
new file mode 100644
index 0000000000..a94d12f001
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.config.xml
@@ -0,0 +1,12 @@
+
+
+ 0
+ 0
+ 0x40000
+ 0x100000
+ 10
+ 1
+ 0
+ 0
+ 0xFFFFFFFF
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.cpp b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.cpp
new file mode 100644
index 0000000000..91a096ade6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include
+#include /* vsnprintf */
+
+#include "Enclave.h"
+#include "Enclave_t.h" /* print_string */
+
+/*
+ * printf:
+ * Invokes OCALL to display the enclave buffer to the terminal.
+ */
+void printf(const char *fmt, ...)
+{
+ char buf[BUFSIZ] = {'\0'};
+ va_list ap;
+ va_start(ap, fmt);
+ vsnprintf(buf, BUFSIZ, fmt, ap);
+ va_end(ap);
+ ocall_print_string(buf);
+}
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.edl b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.edl
new file mode 100644
index 0000000000..f6a4376644
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.edl
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* Enclave.edl - Top EDL file. */
+
+enclave {
+
+
+ /* Import ECALL/OCALL from sub-directory EDLs.
+ * [from]: specifies the location of EDL file.
+ * [import]: specifies the functions to import,
+ * [*]: implies to import all functions.
+ */
+
+ from "TrustedLibrary/Libcxx.edl" import *;
+ from "sgx_tstdc.edl" import sgx_thread_wait_untrusted_event_ocall, sgx_thread_set_untrusted_event_ocall, sgx_thread_setwait_untrusted_events_ocall, sgx_thread_set_multiple_untrusted_events_ocall;
+
+ /*
+ * ocall_print_string - invokes OCALL to display string buffer inside the enclave.
+ * [in]: copy the string buffer to App outside.
+ * [string]: specifies 'str' is a NULL terminated buffer.
+ */
+ untrusted {
+ void ocall_print_string([in, string] const char *str);
+ };
+
+};
diff --git a/sgx-jvm/linux-sgx/psw/uae_service/uae_wrapper/inc/AEInternalServicesProvider.h b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.h
similarity index 79%
rename from sgx-jvm/linux-sgx/psw/uae_service/uae_wrapper/inc/AEInternalServicesProvider.h
rename to sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.h
index a9d64c2606..eb2da002bb 100644
--- a/sgx-jvm/linux-sgx/psw/uae_service/uae_wrapper/inc/AEInternalServicesProvider.h
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -28,20 +28,21 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
-#ifndef _AE_INTERNAL_SERVICES_PROVIDER_H
-#define _AE_INTERNAL_SERVICES_PROVIDER_H
-class AEInternalServices;
+#ifndef _ENCLAVE_H_
+#define _ENCLAVE_H_
-class AEInternalServicesProvider
-{
- public:
- static AEInternalServices* GetInternalServicesProvider();
-
- protected:
- AEInternalServicesProvider();
-
- static AEInternalServices* mProviderInstance;
-};
+#include
+#include
+#if defined(__cplusplus)
+extern "C" {
#endif
+
+void printf(const char *fmt, ...);
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* !_ENCLAVE_H_ */
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.lds b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.lds
new file mode 100644
index 0000000000..e3d9d0ee0d
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave.lds
@@ -0,0 +1,9 @@
+enclave.so
+{
+ global:
+ g_global_data_sim;
+ g_global_data;
+ enclave_entry;
+ local:
+ *;
+};
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave_debug.lds b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave_debug.lds
new file mode 100644
index 0000000000..f5f35d5b7c
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave_debug.lds
@@ -0,0 +1,10 @@
+enclave.so
+{
+ global:
+ g_global_data_sim;
+ g_global_data;
+ enclave_entry;
+ g_peak_heap_used;
+ local:
+ *;
+};
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave_private.pem b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave_private.pem
new file mode 100644
index 0000000000..529d07be35
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/Enclave_private.pem
@@ -0,0 +1,39 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIG4gIBAAKCAYEAroOogvsj/fZDZY8XFdkl6dJmky0lRvnWMmpeH41Bla6U1qLZ
+AmZuyIF+mQC/cgojIsrBMzBxb1kKqzATF4+XwPwgKz7fmiddmHyYz2WDJfAjIveJ
+ZjdMjM4+EytGlkkJ52T8V8ds0/L2qKexJ+NBLxkeQLfV8n1mIk7zX7jguwbCG1Pr
+nEMdJ3Sew20vnje+RsngAzdPChoJpVsWi/K7cettX/tbnre1DL02GXc5qJoQYk7b
+3zkmhz31TgFrd9VVtmUGyFXAysuSAb3EN+5VnHGr0xKkeg8utErea2FNtNIgua8H
+ONfm9Eiyaav1SVKzPHlyqLtcdxH3I8Wg7yqMsaprZ1n5A1v/levxnL8+It02KseD
+5HqV4rf/cImSlCt3lpRg8U5E1pyFQ2IVEC/XTDMiI3c+AR+w2jSRB3Bwn9zJtFlW
+KHG3m1xGI4ck+Lci1JvWWLXQagQSPtZTsubxTQNx1gsgZhgv1JHVZMdbVlAbbRMC
+1nSuJNl7KPAS/VfzAgEDAoIBgHRXxaynbVP5gkO0ug6Qw/E27wzIw4SmjsxG6Wpe
+K7kfDeRskKxESdsA/xCrKkwGwhcx1iIgS5+Qscd1Yg+1D9X9asd/P7waPmWoZd+Z
+AhlKwhdPsO7PiF3e1AzHhGQwsUTt/Y/aSI1MpHBvy2/s1h9mFCslOUxTmWw0oj/Q
+ldIEgWeNR72CE2+jFIJIyml6ftnb6qzPiga8Bm48ubKh0kvySOqnkmnPzgh+JBD6
+JnBmtZbfPT97bwTT+N6rnPqOOApvfHPf15kWI8yDbprG1l4OCUaIUH1AszxLd826
+5IPM+8gINLRDP1MA6azECPjTyHXhtnSIBZCyWSVkc05vYmNXYUNiXWMajcxW9M02
+wKzFELO8NCEAkaTPxwo4SCyIjUxiK1LbQ9h8PSy4c1+gGP4LAMR8xqP4QKg6zdu9
+osUGG/xRe/uufgTBFkcjqBHtK5L5VI0jeNIUAgW/6iNbYXjBMJ0GfauLs+g1VsOm
+WfdgXzsb9DYdMa0OXXHypmV4GwKBwQDUwQj8RKJ6c8cT4vcWCoJvJF00+RFL+P3i
+Gx2DLERxRrDa8AVGfqaCjsR+3vLgG8V/py+z+dxZYSqeB80Qeo6PDITcRKoeAYh9
+xlT3LJOS+k1cJcEmlbbO2IjLkTmzSwa80fWexKu8/Xv6vv15gpqYl1ngYoqJM3pd
+vzmTIOi7MKSZ0WmEQavrZj8zK4endE3v0eAEeQ55j1GImbypSf7Idh7wOXtjZ7WD
+Dg6yWDrri+AP/L3gClMj8wsAxMV4ZR8CgcEA0fzDHkFa6raVOxWnObmRoDhAtE0a
+cjUj976NM5yyfdf2MrKy4/RhdTiPZ6b08/lBC/+xRfV3xKVGzacm6QjqjZrUpgHC
+0LKiZaMtccCJjLtPwQd0jGQEnKfMFaPsnhOc5y8qVkCzVOSthY5qhz0XNotHHFmJ
+gffVgB0iqrMTvSL7IA2yqqpOqNRlhaYhNl8TiFP3gIeMtVa9rZy31JPgT2uJ+kfo
+gV7sdTPEjPWZd7OshGxWpT6QfVDj/T9T7L6tAoHBAI3WBf2DFvxNL2KXT2QHAZ9t
+k3imC4f7U+wSE6zILaDZyzygA4RUbwG0gv8/TJVn2P/Eynf76DuWHGlaiLWnCbSz
+Az2DHBQBBaku409zDQym3j1ugMRjzzSQWzJg0SIyBH3hTmnYcn3+Uqcp/lEBvGW6
+O+rsXFt3pukqJmIV8HzLGGaLm62BHUeZf3dyWm+i3p/hQAL7Xvu04QW70xuGqdr5
+afV7p5eaeQIJXyGQJ0eylV/90+qxjMKiB1XYg6WYvwKBwQCL/ddpgOdHJGN8uRom
+e7Zq0Csi3hGheMKlKbN3vcxT5U7MdyHtTZZOJbTvxKNNUNYH/8uD+PqDGNneb29G
+BfGzvI3EASyLIcGZF3OhKwZd0jUrWk2y7Vhob91jwp2+t73vdMbkKyI4mHOuXvGv
+fg95si9oO7EBT+Oqvhccd2J+F1IVXncccYnF4u5ZGWt5lLewN/pVr7MjjykeaHqN
+t+rfnQam2psA6fL4zS2zTmZPzR2tnY8Y1GBTi0Ko1OKd1HMCgcAb5cB/7/AQlhP9
+yQa04PLH9ygQkKKptZp7dy5WcWRx0K/hAHRoi2aw1wZqfm7VBNu2SLcs90kCCCxp
+6C5sfJi6b8NpNbIPC+sc9wsFr7pGo9SFzQ78UlcWYK2Gu2FxlMjonhka5hvo4zvg
+WxlpXKEkaFt3gLd92m/dMqBrHfafH7VwOJY2zT3WIpjwuk0ZzmRg5p0pG/svVQEH
+NZmwRwlopysbR69B/n1nefJ84UO50fLh5s5Zr3gBRwbWNZyzhXk=
+-----END RSA PRIVATE KEY-----
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/TrustedLibrary/Libcxx.cpp b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/TrustedLibrary/Libcxx.cpp
new file mode 100644
index 0000000000..781feef33c
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/TrustedLibrary/Libcxx.cpp
@@ -0,0 +1,917 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "../Enclave.h"
+#include "Enclave_t.h"
+
+
+// Feature name : Lambda functions
+// Feature description : It is used to create a function object that can capture variables in scope.
+// Demo description : Shows lambda capture options and a some basic usages.
+void ecall_lambdas_demo()
+{
+ // Lambdas capture options:
+ int local_var = 0;
+
+ [] { return true; }; // captures nothing
+
+ [&] { return ++local_var; }; // captures all variable by reference
+ [&local_var] { return ++local_var; }; // captures local_var by reference
+ [&, local_var] { return local_var; }; // captures all by reference except local_var
+
+ [=] { return local_var; }; // captures all variable by value
+ [local_var] { return local_var; }; // captures local_var by value
+ [=, &local_var] { return ++local_var; }; // captures all variable by value except local_var
+
+ // Sample usages for lamdbas:
+ std::vector< int> v { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+ printf("[Lambdas] Initial array using lambdas: { ");
+
+ // Print the elements in an array using lambdas
+ std::for_each(std::begin(v), std::end(v), [](int elem) { printf("%d ", elem); }); //capture specification
+ printf("}.\n");
+
+ // Find the first odd number using lambda as an unary predicate when calling find_if.
+ auto first_odd_element = std::find_if(std::begin(v), std::end(v), [=](int elem) { return elem % 2 == 1; });
+
+ if (first_odd_element != std::end(v))
+ printf("[Lambdas] First odd element in the array is %d. \n", *first_odd_element);
+ else
+ printf("[Lambdas] No odd element found in the array.\n");
+
+ // Count the even numbers using a lambda function as an unary predicate when calling count_if.
+ long long number_of_even_elements = std::count_if(std::begin(v), std::end(v), [=](int val) { return val % 2 == 0; });
+ printf("[Lambdas] Number of even elements in the array is %lld.\n", number_of_even_elements);
+
+ // Sort the elements of an array using lambdas
+ std::sort(std::begin(v), std::end(v), [](int e1, int e2) {return e2 < e1; });
+
+ // Print the elements in an array using lambdas
+ printf("[Lambdas] Array after sort: { ");
+ std::for_each(std::begin(v), std::end(v), [](int elem) { printf("%d ", elem); });
+ printf("}. \n");
+ printf("\n"); // end of demo
+}
+
+
+// Feature name : auto
+// Feature description : It is used for type deduction
+// Demo description : Shows basic usages of auto specifier with different types.
+
+// Helper function for ecall_auto_demo:
+void sample_func_auto_demo()
+{
+ printf("[auto] Function sample_func_auto_demo is called. \n");
+}
+
+void ecall_auto_demo()
+{
+ double local_var = 0.0;
+
+ auto a = 7; // Type of variable a is deduced to be int
+ printf("[auto] Type of a is int. typeid = %s.\n", typeid(a).name());
+
+ const auto b1 = local_var, *b2 = &local_var; // auto can be used with modifiers like const or &.
+ printf("[auto] Type of b1 is const double. typeid = %s.\n", typeid(b1).name());
+ printf("[auto] Type of b2 is const double*. typeid = %s.\n", typeid(b2).name());
+ (void)b1;
+ (void)b2;
+
+ auto c = 0, *d = &a; // multiple variable initialization if the deduced type does match
+ printf("[auto] Type of c is int. typeid = %s.\n", typeid(c).name());
+ printf("[auto] Type of d is int*. typeid = %s.\n", typeid(d).name());
+ (void)c;
+ (void)d;
+
+ auto lambda = [] {}; // can be used to define lambdas
+ printf("[auto] Type of lambda is [] {}. typeid = %s.\n", typeid(lambda).name());
+ (void)lambda;
+
+ auto func = sample_func_auto_demo; // can be used to deduce type of function
+ printf("[auto] Type of func is void(__cdecl*)(void). typeid = %s.\n", typeid(func).name());
+ func();
+
+ printf("\n"); // end of demo
+}
+
+// Feature name : decltype
+// Feature description : It is used for type deduction
+// Demo description : Shows basic usages of decltype specifier with different types.
+void ecall_decltype_demo()
+{
+ int a = 0 ;
+ decltype(a) b = 0; // create an element of the same type as another element
+ printf("[decltype] Type of b is int. typeid = %s.\n", typeid(b).name());
+
+ double c = 0;
+ decltype(a + c) sum = a + c; // deduce type of a sum of elements of different types and create an element of that type.
+ // most usefull in templates.
+ printf("[decltype] Type of sum is double. typeid = %s.\n", typeid(sum).name());
+ (void)sum;
+ (void)b;
+ printf("\n"); // end of demo
+}
+
+// Feature name : enum classes
+// Feature description : A new type of enum that solves problems found in old enum like :
+// unscoping of enum values and the possibility to compare them with int
+// Demo description : Shows basic usages of enum classes.
+void ecall_strongly_typed_enum_demo()
+{
+ // In enum class the underlying type can be set. In the case bellow it is char.
+ enum class DaysOfWeek : char { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY };
+
+ // initialization of variable of type DaysOfWeek
+ DaysOfWeek random_day = DaysOfWeek::MONDAY;
+ (void)random_day;
+
+ // In is not mandatory to specify the underlying type.
+ enum class Weekend { SATURDAY, SUNDAY };
+
+ // The two enum classes above: days_of_week and weekend ilustrate that it is now possible to have two enum classes with the same values in them.
+
+ // end of demo
+}
+
+// Feature name : Range based for loops
+// Feature description : Easy to read way of accessing elements in an container.
+// Demo description : Shows basic usage of range based for loop with c array and vector.
+void ecall_range_based_for_loops_demo()
+{
+ char array_of_letters[] = { 'a','b','c','d' };
+ std::vector vector_of_letters = { 'a','b','c','d' };
+
+ printf("[range_based_for_loops] Using range based for loops to print the content of an array: { ");
+ for (auto elem : array_of_letters)
+ printf("%c ", elem);
+ printf("}. \n");
+
+ printf("[range_based_for_loops] Using range based for loops to print the content of an vector: { ");
+ for (auto elem : vector_of_letters)
+ printf("%c ", elem);
+ printf("}.\n");
+
+ printf("\n"); // end of demo
+}
+
+
+// Feature name : static_assert
+// Feature description : It is used to make assertions at compile time.
+// Demo description : Shows basic usage of static_assert with compile time operation.
+void ecall_static_assert_demo()
+{
+ static_assert(sizeof(int) < sizeof(double), "Error : sizeof(int) < sizeof(double) ");
+ const int a = 0;
+ static_assert(a == 0, "Error: value of a is not 0");
+
+ // end of demo
+}
+
+
+// Feature name : New virtual function controls : override, final, default, and delete
+// Feature description : - delete : a deleted function cannot be inherited
+// - final : a final function cannot be overrided in the derived class
+// - default : intruction to the compiler to generate a default function
+// - override : ensures that a virtual function from derived class overrides a function from base
+// Demo description : Shows basic usage of new virtual function control.
+
+/* Helper class for ecall_virtual_function_control_demo.*/
+class Base
+{
+public:
+
+ virtual void f_cannot_be_inherited() final {};
+ Base(const Base &) = delete;
+ Base() = default;
+ virtual void f_must_be_overrided() {};
+};
+
+/* Helper class for ecall_virtual_function_control_demo.*/
+class Derived : Base
+{
+public:
+ /* The code bellow in this comment does not compile.
+ The function cannot be override because it is declared with keyword final in base
+ virtual double f_cannot_be_inherited() {};
+ */
+
+ /*The keyword override assures that the function overrides a base class member*/
+ virtual void f_must_be_overrided() override {};
+};
+
+void ecall_virtual_function_control_demo()
+{
+ // The default constructor will be called generated by the compiler with explicit keyword default
+ Base a;
+ // Trying to use the copy contructor will generate code that does not compile because it is deleted
+ // Base b = a;
+
+ // end of demo
+}
+
+// Feature name : Delegating constructors
+// Feature description : A class constructors may have common code which can be delegated to a constructor to avoid code repetion
+// Demo description : Shows basic usage of delegating constructors
+
+// Helper class for ecall_delegating_constructors
+class DemoDelegatingConstructors
+{
+ int a, b, c;
+public:
+ DemoDelegatingConstructors(int param_a, int param_b, int param_c)
+ {
+ this->a = param_a;
+ this->b = param_b;
+ this->c = param_c;
+ /*common initialization*/
+ switch (c)
+ {
+ case 1:
+ printf("[delegating constructors] Called from DemoDelegatingConstructors(int a, int b). \n");
+ break;
+ case 2:
+ printf("[delegating constructors] Called from DemoDelegatingConstructors(int a). \n");
+ break;
+ default:
+ printf("[delegating constructors] Called from DemoDelegatingConstructors(int a, int b, int c).\n");
+ break;
+ }
+ }
+ DemoDelegatingConstructors(int param_a, int param_b) : DemoDelegatingConstructors(param_a, param_b, 1) {}
+ DemoDelegatingConstructors(int param_a) : DemoDelegatingConstructors(param_a, 0, 2) {}
+};
+
+void ecall_delegating_constructors_demo()
+{
+ DemoDelegatingConstructors a(1, 2, 3);
+ DemoDelegatingConstructors b(1, 2);
+ DemoDelegatingConstructors c(1);
+
+ printf("\n"); // end of demo
+}
+
+// Feature name : std::function
+// Feature description : It is used to store and invoke a callable
+// Demo description : Shows basic usage of std::function
+
+// Helper class for ecall_std_function_demo:
+void sample_std_function1()
+{
+ printf("[std_function] calling sample_std_function1\n");
+}
+
+void ecall_std_function_demo()
+{
+ // Example with functions
+ std::function funct = sample_std_function1;
+ funct();
+
+ //Example with lambda
+ std::function funct_lambda = [] { printf("[std_function] calling a lambda function\n"); };
+ funct_lambda();
+
+ printf("\n"); // end of demo
+}
+
+// Feature name : std::all_of, std::any_of, std::none_of
+// Feature description : New C++11 algorithms
+// Demo description : Shows basic usage of the std::all_of, std::any_of, std::none_of.
+void ecall_cxx11_algorithms_demo()
+{
+ std::vector v = { 0, 1, 2, 3, 4, 5 };
+ bool are_all_of = all_of(begin(v), end(v), [](int e) { return e % 2 == 0; });
+ printf("[cxx11_algorithms] All elements in { 0 1 2 3 4 5 } are even is %s. \n", are_all_of ? "true" : "false");
+
+ bool are_any_of = any_of(begin(v), end(v), [](int e) { return e % 2 == 0; });
+ printf("[cxx11_algorithms] Some elements in { 0 1 2 3 4 5 } are even is %s. \n", are_any_of ? "true" : "false");
+
+ bool are_none_of = none_of(begin(v), end(v), [](int e) { return e % 2 == 0; });
+ printf("[cxx11_algorithms] Some elements in { 0 1 2 3 4 5 } are even is %s. \n", are_none_of ? "true" : "false");
+
+ printf("\n"); // end of demo
+}
+
+
+// Feature name : variadic templates
+// Feature description : Templates that can have multiple arguments
+// Demo description : Shows basic usage of variadic templates
+
+// Helper template for ecall_variadic_templates_demo:
+template
+T sum(T elem)
+{
+ return elem;
+}
+
+template
+T sum(T elem1, T elem2, Args... args)
+{
+ return elem1 + elem2 + sum(args...);
+}
+
+void ecall_variadic_templates_demo()
+{
+ int computed_sum = sum(1, 2, 3, 4, 5);
+ printf("[variadic_templates] The sum of paramters (1, 2, 3, 4, 5) is %d. \n", computed_sum);
+ printf("\n"); // end of demo
+}
+
+// Feature name : Substitution failure is not an error (SFINAE)
+// Feature description : Describes the case where a substitution error in templates does not cause errors
+// Demo description : Shows basic usage of SFINAE
+
+/*first candidate for substitution*/
+template void f(typename T::A*) { printf("[sfinae] First candidate for substitution is matched.\n"); };
+
+/*second candidate for substitution*/
+template void f(T) { printf("[sfinae] Second candidate for substitution is matched.\n"); }
+
+void ecall_SFINAE_demo()
+{
+ f(0x0); // even if the first canditate substition will fail, the second one will pass
+ printf("\n"); // end of demo
+}
+
+//Feature name : Initializer lists
+//Feature description : An object of type std::initializer_list is a lightweight proxy object that provides access to an array of objects of type const T.
+//Demo description : Demonstrates the usage of initializer list in the constructor of an object in enclave.
+class Number
+{
+public:
+ Number(const std::initializer_list &v) {
+ for (auto i : v) {
+ elements.push_back(i);
+ }
+ }
+
+ void print_elements() {
+ printf("[initializer_list] The elements of the vector are:");
+ for (auto item : elements) {
+ printf(" %d", item);
+ }
+ printf(".\n");
+ }
+private:
+ std::vector elements;
+};
+
+void ecall_initializer_list_demo()
+{
+ printf("[initializer_list] Using initializer list in the constructor. \n");
+ Number m = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
+ m.print_elements();
+
+ printf("\n"); //end of demo
+}
+
+
+// Feature name : Rvalue references and move semantics;
+// Feature description : They are used for memory usage optimazation by eliminating copy operations
+// Demo description : Shows basic usage of rvalue, move constructor, and move operator
+
+// Helper class for ecall_rvalue_demo
+class DemoBuffer
+{
+public:
+ unsigned int size = 100;
+ char *buffer;
+
+ DemoBuffer(int param_size)
+ {
+ this->size = param_size;
+ buffer = new char[size];
+ printf("[rvalue] Called constructor : DemoBuffer(int size).\n");
+ }
+
+ // A typical copy constructor needs to alocate memory for a new copy
+ // Copying an big array is an expensive operation
+ DemoBuffer(const DemoBuffer & rhs)
+ {
+ this->size = rhs.size;
+ buffer = new char[rhs.size];
+ memcpy(buffer, rhs.buffer, size);
+ printf("[rvalue] Called copy constructor : DemoBuffer(const DemoBuffer & rhs).\n");
+ }
+
+ // A typical move constructor can reuse the memory pointed by the buffer
+ DemoBuffer(DemoBuffer && rhs)
+ {
+ buffer = rhs.buffer;
+ size = rhs.size;
+ // reset state of rhs
+ rhs.buffer = NULL;
+ rhs.size = 0;
+ printf("[rvalue] Called move constructor : DemoBuffer(DemoBuffer && rhs).\n");
+ }
+ ~DemoBuffer()
+ {
+ delete buffer;
+ }
+
+};
+
+// Helper class for ecall_rvalue_demo
+DemoBuffer foobar(int a)
+{
+ DemoBuffer x(100);
+ DemoBuffer y(100);
+
+ if (a > 0)
+ return x;
+ else
+ return y;
+}
+void ecall_rvalue_demo()
+{
+ // This will call the constructor
+ printf("[rvalue] DemoBuffer a(100).\n");
+ DemoBuffer a(100);
+
+ printf("[rvalue] DemoBuffer foobar(100). \n");
+ // Initializing variable d using a temporary object will result in a call to move constructor
+ // This is usefull because it reduces the memory cost of the operation.
+ DemoBuffer d(foobar(100));
+
+ // This will call the copy constructor. State of a will not change.
+ printf("[rvalue] DemoBuffer b(a).\n");
+ DemoBuffer b(a);
+
+ printf("[rvalue] DemoBuffer c(std::move(a)).\n");
+ // explicitly cast a to an rvalue so that c will be created using move constructor.
+ // State of a is going to be reseted.
+ DemoBuffer c(std::move(a));
+
+ printf("\n"); // end of demo
+}
+
+// Feature name : Nullptr
+// Feature description : Resolves the issues of converting NULL to integral types
+// Demo description : Shows basic usage of nullptr
+
+// overload candidate 1
+void nullptr_overload_candidate(int i) {
+ (void)i;
+ printf("[nullptr] called void nullptr_overload_candidate(int i).\n");
+}
+
+// overload candidate 2
+void nullptr_overload_candidate(int* ptr) {
+ (void)ptr;
+ printf("[nullptr] called void nullptr_overload_candidate(int* ptr).\n");
+}
+
+template
+void Fwd(F f, A a)
+{
+ f(a);
+}
+
+void g(int* i)
+{
+ (void)i;
+ printf("[nullptr] Function %s called\n", __FUNCTION__);
+}
+
+// Feature name :
+// Feature description :
+// Demo description :
+void ecall_nullptr_demo()
+{
+ // NULL can be converted to integral types() like int and will call overload candidate 1
+ nullptr_overload_candidate(NULL);
+
+ // nullptr can't be converted to integral types() like int and will call overload candidate 2
+ nullptr_overload_candidate(nullptr);
+
+ g(NULL); // Fine
+ g(0); // Fine
+ Fwd(g, nullptr); // Fine
+ //Fwd(g, NULL); // ERROR: No function g(int)
+
+ printf("\n"); // end of demo
+}
+
+// Feature name : Scoped enums
+// Feature description :
+// Demo description :
+enum class Color { orange, brown, green = 30, blue, red };
+
+void ecall_enum_class_demo()
+{
+ int n = 0;
+ Color color1 = Color::brown;
+ switch (color1)
+ {
+ case Color::orange: printf("[enum class] orange"); break;
+ case Color::brown: printf("[enum class] brown"); break;
+ case Color::green: printf("[enum class] green"); break;
+ case Color::blue: printf("[enum class] blue"); break;
+ case Color::red: printf("[enum class] red"); break;
+ }
+ // n = color1; // Not allowed: no scoped enum to int conversion
+ n = static_cast(color1); // OK, n = 1
+ printf(" - int = %d\n", n);
+
+ Color color2 = Color::red;
+ switch (color2)
+ {
+ case Color::orange: printf("[enum class] orange"); break;
+ case Color::brown: printf("[enum class] brown"); break;
+ case Color::green: printf("[enum class] green"); break;
+ case Color::blue: printf("[enum class] blue"); break;
+ case Color::red: printf("[enum class] red"); break;
+ }
+ n = static_cast(color2); // OK, n = 32
+ printf(" - int = %d\n", n);
+
+ Color color3 = Color::green;
+ switch (color3)
+ {
+ case Color::orange: printf("[enum class] orange"); break;
+ case Color::brown: printf("[enum class] brown"); break;
+ case Color::green: printf("[enum class] green"); break;
+ case Color::blue: printf("[enum class] blue"); break;
+ case Color::red: printf("[enum class] red"); break;
+ }
+ n = static_cast(color3); // OK, n = 30
+ printf(" - int = %d\n", n);
+ printf("\n");
+}
+
+// Feature name : new container classes
+// Feature description : unordered_set, unordered_map, unordered_multiset, and unordered_multimap
+// Demo description : Shows basic usage of new container classes
+void ecall_new_container_classes_demo()
+{
+ // unordered_set
+ // container used for fast acces that groups elements in buckets based on their hash
+
+ std::unordered_set set_of_numbers = { 0, 1, 2, 3, 4, 5 };
+ const int searchVal = 3;
+ std::unordered_set::const_iterator got = set_of_numbers.find(searchVal);
+
+ if (got == set_of_numbers.end())
+ printf("[new_container_classes] unordered_set { 0, 1, 2, 3, 4, 5} has value 3.\n");
+ else
+ printf("[new_container_classes] unordered_set { 0, 1, 2, 3, 4, 5} it does not have value 3.\n");
+
+ // unordered_multiset
+ // container used for fast acces that groups non unique elements in buckets based on their hash
+ std::unordered_multiset multiset_of_numbers = { 0, 1, 2, 3, 3, 3 };
+ printf("[new_container_classes] multiset_set { 0, 1, 2, 3, 3, 3} has %d elements with value %d.\n",
+ (int)multiset_of_numbers.count(searchVal), searchVal);
+
+ // unordered_map
+ std::unordered_map grades{ { "A", 10 },{ "B", 8 },{ "C", 7 },{ "D", 5 },{ "E", 3 } };
+ printf("[new_container_classes] unordered_map elements: {");
+ for (auto pair : grades) {
+ printf("[%s %d] ", pair.first.c_str(), pair.second);
+ }
+
+ printf("}.\n");
+
+ // unordered_multimap
+ std::unordered_multimap multimap_grades{ { "A", 10 },{ "B", 8 },{ "B", 7 },{ "E", 5 },{ "E", 3 },{ "E",1 } };
+
+ printf("[new_container_classes] unordered_multimap elements: {");
+ for (auto pair : multimap_grades) {
+ printf("[%s %d] ", pair.first.c_str(), pair.second);
+ }
+ printf("}.\n");
+
+ printf("\n"); // end of demo
+}
+
+// Feature name : Tuple
+// Feature description : Objects that pack elements of multiple types which can be accessed by index
+// Demo description : Shows basic usage of tuple: creation and access
+void ecall_tuple_demo()
+{
+ // Create tuple using std::make_tuple
+ char array_of_letters[4] = {'A','B','C','D'};
+ std::vector vector_of_letters = { 'A','B','C','D' };
+ std::map map_of_letters = { {'B','b' } };
+
+ // Creating a tuple using a tuple constructor
+ std::tuple tuple_sample_with_constructor(42, "Sample tuple");
+ (void)tuple_sample_with_constructor;
+
+ // Creating a tuple using std::make_tuple
+ auto tuple_sample = std::make_tuple("", 1, 7.9, vector_of_letters, array_of_letters, map_of_letters);
+
+ // Access the elements in tupleSample using std::get
+ printf("[tuple] show first element in TupleSample: %s. \n", std::get<0>(tuple_sample));
+ printf("[tuple] show second element in TupleSample: %d. \n", std::get<1>(tuple_sample));
+ printf("[tuple] show third element in TupleSample: %f. \n", std::get<2>(tuple_sample));
+
+ // Getting vector from a tuple
+ std::vector temp_vector = std::get<3>(tuple_sample);
+ (void)temp_vector;
+
+ // Getting array from a tuple
+ int first_elem_of_array = std::get<4>(tuple_sample)[0];
+ (void)first_elem_of_array;
+
+ // Getting map from a tuple
+ std::map temp_map = std::get<5>(tuple_sample);
+ (void)temp_map;
+ printf("\n"); // end of demo
+}
+
+// Feature name : new smart pointer
+// Feature description : shared_ptr and unique_ptr
+// Demo decription : Shows basic usage of smart pointers
+// Helper class for ecall_shared_ptr_demo
+class DemoSmartPtr
+{
+ std::string smartPointerType;
+public:
+ DemoSmartPtr(std::string param_smartPointerType)
+ {
+ printf("[smart_ptr] In construct of object demo_smart_ptr using %s. \n", param_smartPointerType.c_str());
+ this->smartPointerType = param_smartPointerType;
+ }
+ ~DemoSmartPtr()
+ {
+ printf("[smart_ptr] In deconstructor of object demo_smart_ptr using %s. \n", smartPointerType.c_str());
+ }
+};
+
+void ecall_shared_ptr_demo()
+{
+ // std::shared_ptr is smart pointer that takes ownership of an object using a pointer
+ // The object is freed when the last smart_pointer does not point to it.
+
+ // Creating a shared pointer using std::make_shared
+ auto shared_ptr = std::make_shared("smart_ptr."); // The constructor of DemoSmartPtr will be called here
+
+ printf("[smart_ptr] shared_ptr reference count = %ld. \n", shared_ptr.use_count());
+ auto shared_ptr2 = shared_ptr;
+ printf("[smart_ptr] shared_ptr reference count = %ld incresead after creating another shared pointer.\n", shared_ptr.use_count());
+ shared_ptr2.reset();
+ printf("[smart_ptr] shared_ptr reference count = %ld decresead after calling releasing ownership. \n", shared_ptr.use_count());
+
+ // std::unique_ptr is smart pointer that takes ownership of an object using a pointer
+ // it is different from smart_ptr in the sense that only one unique_ptr can take ownership
+
+ std::unique_ptr unique_ptr(new DemoSmartPtr("unique_ptr"));
+ // When going out of scope both shared_ptr and unique_ptr release the objects they own
+
+ // end of demo
+}
+
+//Feature name : atomic
+//Feature description: The atomic library provides components for fine-grained atomic operations allowing for lockless concurrent programming.
+// Each atomic operation is indivisible with regards to any other atomic operation that involves the same object.
+// Atomic objects are free of data races.
+//Demo description : Demonstrates the usage of atomic types, objects and functions in enclave.
+void ecall_atomic_demo()
+{
+ printf("[atomic] Atomic types, objects and functions demo.\n");
+
+ printf("[atomic_store] Defining an atomic_char object with an initial value of 5.\n");
+ std::atomic_char atc(5);
+ printf("[atomic_store] The current value stored in the atomic object is: %d\n", atc.load());
+ printf("[atomic_store] Replacing the value of the atomic object with a non-atomic value of 3.\n");
+ std::atomic_store(&atc, 3);
+ printf("[atomic_store] The new value of the atomic object is: %d.\n", atc.load());
+
+ printf("\n");
+
+ printf("[atomic_store_explicit] Defining an atomic_short object with an initial value of 5.\n");
+ std::atomic_short ats(5);
+ printf("[atomic_store_explicit] The current value stored in the atomic object is: %d.\n", ats.load());
+ printf("[atomic_store_explicit] Replacing the value of the atomic object with a non-atomic value of 3.\n");
+ std::atomic_store_explicit(&ats, 3, std::memory_order_seq_cst);
+ printf("[atomic_store] The new value of the atomic object is: %d.\n", ats.load());
+
+ printf("\n");
+
+ printf("[atomic_load] Defining an atomic_int object with an initial value of 4.\n");
+ std::atomic_int ati1(4);
+ printf("[atomic_load] Obtaining the value of the atomic object and saving it in a int variable.\n");
+ int val = std::atomic_load(&ati1);
+ printf("[atomic_load] The obtained value is %d.\n", val);
+
+ printf("\n");
+
+ printf("[atomic_load_explicit] Defining an atomic_int object with an initial value of 2.\n");
+ std::atomic_int ati2(2);
+ printf("[atomic_load_explicit] Obtaining the value of the atomic object and saving it in a int variable.\n");
+ int val1 = std::atomic_load_explicit(&ati2, std::memory_order_seq_cst);
+ printf("[atomic_load_explicit] The obtained value is %d.\n", val1);
+
+ printf("\n");
+
+ printf("[atomic_fetch_add] Defining an atomic_int object with an initial value of 7.\n");
+ std::atomic_int ati(7);
+ printf("[atomic_fetch_add] The current value stored in the atomic object is: %d.\n", ati.load());
+ printf("[atomic_fetch_add] Adding a non-atomic value of 8 to the atomic object.\n");
+ std::atomic_fetch_add(&ati, 8);
+ printf("[atomic_fetch_add] The new value of the atomic object is: %d.\n", ati.load());
+
+ printf("\n");
+
+ printf("[atomic_fetch_add_explicit] Defining an atomic_uint object with an initial value of 7.\n");
+ std::atomic_uint atui(7);
+ printf("[atomic_fetch_add_explicit] The current value stored in the atomic object is: %u.\n", atui.load());
+ printf("[atomic_fetch_add_explicit] Adding a non-atomic value of 8 to the atomic object.\n");
+ std::atomic_fetch_add_explicit(&atui, 8, std::memory_order_seq_cst);
+ printf("[atomic_fetch_add_explicit] The new value of the atomic object is: %u.\n", atui.load());
+
+ printf("\n");
+
+ printf("[atomic_fetch_sub] Defining an atomic_long object with an initial value of 20.\n");
+ std::atomic_long atl(20);
+ printf("[atomic_fetch_sub] The current value stored in the atomic object is: %ld.\n", atl.load());
+ printf("[atomic_fetch_sub] Substracting a non-atomic value of 8 from the value of the atomic object.\n");
+ std::atomic_fetch_sub(&atl, 8);
+ printf("[atomic_fetch_sub] The new value of the atomic object is: %ld.\n", atl.load());
+
+ printf("\n");
+
+ printf("[atomic_fetch_sub_explicit] Defining an atomic_llong object with an initial value of 20.\n");
+ std::atomic_llong atll(20);
+ printf("[atomic_fetch_sub_explicit] The current value stored in the atomic object is: %lld.\n", atll.load());
+ printf("[atomic_fetch_sub_explicit] Substracting a non-atomic value of 8 from the value of the atomic object.\n");
+ std::atomic_fetch_sub_explicit(&atll, 8, std::memory_order_seq_cst);
+ printf("[atomic_fetch_sub_explicit] The new value of the atomic object is: %lld.\n", atll.load());
+
+ printf("\n"); // end of demo
+}
+
+//Feature name : mutex
+//Feature description : The mutex class is a synchronization primitive that can be used to protect shared data
+// from being simultaneously accessed by multiple threads.
+//Demo description : Demonstrates mutex protection when incrementing values in multiple threads.
+
+//Structure used in mutex demo to show the behavior without using a mutex
+struct CounterWithoutMutex {
+ int value;
+
+ CounterWithoutMutex() : value(0) {}
+
+ void increment() {
+ ++value;
+ }
+};
+
+CounterWithoutMutex counter_without_protection;
+
+//E-call used by mutex demo to perform the incrementation using a counter without mutex protection
+void ecall_mutex_demo_no_protection()
+{
+ for (int i = 0; i < 100000; ++i) {
+ counter_without_protection.increment();
+ }
+}
+
+//E-call used by mutex demo to get the final value of the counter from enclave
+void ecall_print_final_value_no_protection()
+{
+ printf("[mutex] Incrementing values in three threads without mutex protection, using a 100000 times loop. \n[mutex]Expected value is 300000. The final value is %d.\n", counter_without_protection.value);
+}
+
+
+//Structure used in mutex demo
+struct CounterProtectedByMutex {
+ std::mutex mutex;
+ int value;
+
+ CounterProtectedByMutex() : value(0) {}
+
+ void increment() {
+ //locking the mutex to avoid simultaneous incrementation in different threads
+ mutex.lock();
+ ++value;
+ //unlocking the mutex
+ mutex.unlock();
+ }
+};
+
+CounterProtectedByMutex counter_with_protection;
+
+//E-call used by mutex demo to perform the actual incrementation
+void ecall_mutex_demo()
+{
+ for (int i = 0; i < 100000; ++i) {
+ counter_with_protection.increment();
+ }
+}
+
+//E-call used by mutex demo to get the final value of the counter from enclave
+void ecall_print_final_value_mutex_demo()
+{
+ printf("[mutex] Mutex protection when incrementing a value in 3 threads, using a 100000 times loop. \n[mutex]Expected value is 300000. The final value is %d.\n", counter_with_protection.value);
+}
+
+//Feature name : condition_variable
+//Feature description: The condition_variable class is a synchronization primitive that can be used to block a thread,
+// or multiple threads at the same time, until another thread both modifies a shared variable (the condition),
+// and notifies the condition_variable.
+//Demo description : Demonstrates condition_variable usage in a two threads environment. One thread is used for loading the data and
+// the other processes the loaded data. The thread for processing the data waits untill the data is loaded in the
+// other thread and gets notified when loading is completed.
+
+//This class is used by condition variable demo
+class DemoConditionVariable
+{
+ std::mutex mtx;
+ std::condition_variable cond_var;
+ bool data_loaded;
+public:
+ DemoConditionVariable()
+ {
+ data_loaded = false;
+ }
+ void load_data()
+ {
+ //Simulating loading of the data
+ printf("[condition_variable] Loading Data...\n");
+ {
+ // Locking the data structure
+ std::lock_guard guard(mtx);
+ // Setting the flag to true to signal load data completion
+ data_loaded = true;
+ }
+ // Notify to unblock the waiting thread
+ cond_var.notify_one();
+ }
+ bool is_data_loaded()
+ {
+ return data_loaded;
+ }
+ void main_task()
+ {
+ printf("\n");
+ printf("[condition_variable] Running condition variable demo.\n");
+
+ // Acquire the lock
+ std::unique_lock lck(mtx);
+
+ printf("[condition_variable] Waiting for the data to be loaded in the other thread.\n");
+ cond_var.wait(lck, std::bind(&DemoConditionVariable::is_data_loaded, this));
+ printf("[condition_variable] Processing the loaded data.\n");
+ printf("[condition_variable] Done.\n");
+ }
+};
+
+
+DemoConditionVariable app;
+
+//E-call used by condition_variable demo - processing thread
+
+void ecall_condition_variable_run()
+{
+ app.main_task();
+}
+
+//E-call used by condifion_variable demo - loader thread
+void ecall_condition_variable_load()
+{
+ app.load_data();
+}
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/TrustedLibrary/Libcxx.edl b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/TrustedLibrary/Libcxx.edl
new file mode 100644
index 0000000000..47a7d10315
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Enclave/TrustedLibrary/Libcxx.edl
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* Libcxx.edl - EDL sample for trusted C++ library. */
+
+enclave {
+
+ /*
+ * A subset of the C++03 standard is supported.
+ */
+
+ trusted {
+
+ public void ecall_lambdas_demo(void);
+ public void ecall_auto_demo(void);
+ public void ecall_decltype_demo(void);
+ public void ecall_strongly_typed_enum_demo(void);
+ public void ecall_range_based_for_loops_demo(void);
+ public void ecall_static_assert_demo(void);
+ public void ecall_virtual_function_control_demo(void);
+ public void ecall_delegating_constructors_demo(void);
+ public void ecall_std_function_demo(void);
+ public void ecall_cxx11_algorithms_demo(void);
+ public void ecall_variadic_templates_demo(void);
+ public void ecall_SFINAE_demo(void);
+ public void ecall_initializer_list_demo(void);
+ public void ecall_rvalue_demo(void);
+ public void ecall_nullptr_demo(void);
+ public void ecall_enum_class_demo(void);
+ public void ecall_new_container_classes_demo(void);
+ public void ecall_tuple_demo(void);
+ public void ecall_shared_ptr_demo(void);
+ public void ecall_atomic_demo(void);
+ public void ecall_mutex_demo(void);
+ public void ecall_print_final_value_mutex_demo(void);
+ public void ecall_mutex_demo_no_protection(void);
+ public void ecall_print_final_value_no_protection(void);
+ public void ecall_condition_variable_run(void);
+ public void ecall_condition_variable_load(void);
+
+ };
+};
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Makefile b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Makefile
new file mode 100644
index 0000000000..4b5239e300
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/Makefile
@@ -0,0 +1,252 @@
+#
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+
+######## SGX SDK Settings ########
+
+SGX_SDK ?= /opt/intel/sgxsdk
+SGX_MODE ?= HW
+SGX_ARCH ?= x64
+SGX_DEBUG ?= 1
+
+ifeq ($(shell getconf LONG_BIT), 32)
+ SGX_ARCH := x86
+else ifeq ($(findstring -m32, $(CXXFLAGS)), -m32)
+ SGX_ARCH := x86
+endif
+
+ifeq ($(SGX_ARCH), x86)
+ SGX_COMMON_CFLAGS := -m32
+ SGX_LIBRARY_PATH := $(SGX_SDK)/lib
+ SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x86/sgx_sign
+ SGX_EDGER8R := $(SGX_SDK)/bin/x86/sgx_edger8r
+else
+ SGX_COMMON_CFLAGS := -m64
+ SGX_LIBRARY_PATH := $(SGX_SDK)/lib64
+ SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x64/sgx_sign
+ SGX_EDGER8R := $(SGX_SDK)/bin/x64/sgx_edger8r
+endif
+
+ifeq ($(SGX_DEBUG), 1)
+ifeq ($(SGX_PRERELEASE), 1)
+$(error Cannot set SGX_DEBUG and SGX_PRERELEASE at the same time!!)
+endif
+endif
+
+ifeq ($(SGX_DEBUG), 1)
+ SGX_COMMON_CFLAGS += -O0 -g
+else
+ SGX_COMMON_CFLAGS += -O2
+endif
+
+######## App Settings ########
+
+ifneq ($(SGX_MODE), HW)
+ Urts_Library_Name := sgx_urts_sim
+else
+ Urts_Library_Name := sgx_urts
+endif
+
+App_Cpp_Files := App/App.cpp $(wildcard App/TrustedLibrary/*.cpp)
+App_Include_Paths := -IInclude -IApp -I$(SGX_SDK)/include
+
+App_C_Flags := $(SGX_COMMON_CFLAGS) -fPIC -Wno-attributes $(App_Include_Paths)
+
+# Three configuration modes - Debug, prerelease, release
+# Debug - Macro DEBUG enabled.
+# Prerelease - Macro NDEBUG and EDEBUG enabled.
+# Release - Macro NDEBUG enabled.
+ifeq ($(SGX_DEBUG), 1)
+ App_C_Flags += -DDEBUG -UNDEBUG -UEDEBUG
+else ifeq ($(SGX_PRERELEASE), 1)
+ App_C_Flags += -DNDEBUG -DEDEBUG -UDEBUG
+else
+ App_C_Flags += -DNDEBUG -UEDEBUG -UDEBUG
+endif
+
+App_Cpp_Flags := $(App_C_Flags) -std=c++11
+App_Link_Flags := $(SGX_COMMON_CFLAGS) -L$(SGX_LIBRARY_PATH) -l$(Urts_Library_Name) -lpthread
+
+ifneq ($(SGX_MODE), HW)
+ App_Link_Flags += -lsgx_uae_service_sim
+else
+ App_Link_Flags += -lsgx_uae_service
+endif
+
+App_Cpp_Objects := $(App_Cpp_Files:.cpp=.o)
+
+App_Name := app
+
+######## Enclave Settings ########
+
+Enclave_Version_Script := Enclave/Enclave_debug.lds
+ifeq ($(SGX_MODE), HW)
+ifneq ($(SGX_DEBUG), 1)
+ifneq ($(SGX_PRERELEASE), 1)
+ # Choose to use 'Enclave.lds' for HW release mode
+ Enclave_Version_Script = Enclave/Enclave.lds
+endif
+endif
+endif
+
+ifneq ($(SGX_MODE), HW)
+ Trts_Library_Name := sgx_trts_sim
+ Service_Library_Name := sgx_tservice_sim
+else
+ Trts_Library_Name := sgx_trts
+ Service_Library_Name := sgx_tservice
+endif
+Crypto_Library_Name := sgx_tcrypto
+
+Enclave_Cpp_Files := Enclave/Enclave.cpp $(wildcard Enclave/TrustedLibrary/*.cpp)
+Enclave_Include_Paths := -IInclude -IEnclave -I$(SGX_SDK)/include -I$(SGX_SDK)/include/libcxx -I$(SGX_SDK)/include/tlibc
+
+Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -fstack-protector $(Enclave_Include_Paths)
+Enclave_Cpp_Flags := $(Enclave_C_Flags) -nostdinc++ -std=c++11
+
+# To generate a proper enclave, it is recommended to follow below guideline to link the trusted libraries:
+# 1. Link sgx_trts with the `--whole-archive' and `--no-whole-archive' options,
+# so that the whole content of trts is included in the enclave.
+# 2. For other libraries, you just need to pull the required symbols.
+# Use `--start-group' and `--end-group' to link these libraries.
+# Do NOT move the libraries linked with `--start-group' and `--end-group' within `--whole-archive' and `--no-whole-archive' options.
+# Otherwise, you may get some undesirable errors.
+Enclave_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
+ -Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
+ -Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
+ -Wl,--defsym,__ImageBase=0 \
+ -Wl,--version-script=$(Enclave_Version_Script)
+
+Enclave_Cpp_Objects := $(Enclave_Cpp_Files:.cpp=.o)
+
+Enclave_Name := enclave.so
+Signed_Enclave_Name := enclave.signed.so
+Enclave_Config_File := Enclave/Enclave.config.xml
+
+ifeq ($(SGX_MODE), HW)
+ifeq ($(SGX_DEBUG), 1)
+ Build_Mode = HW_DEBUG
+else ifeq ($(SGX_PRERELEASE), 1)
+ Build_Mode = HW_PRERELEASE
+else
+ Build_Mode = HW_RELEASE
+endif
+else
+ifeq ($(SGX_DEBUG), 1)
+ Build_Mode = SIM_DEBUG
+else ifeq ($(SGX_PRERELEASE), 1)
+ Build_Mode = SIM_PRERELEASE
+else
+ Build_Mode = SIM_RELEASE
+endif
+endif
+
+
+.PHONY: all run
+
+ifeq ($(Build_Mode), HW_RELEASE)
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(App_Name) $(Enclave_Name)
+ @echo "The project has been built in release hardware mode."
+ @echo "Please sign the $(Enclave_Name) first with your signing key before you run the $(App_Name) to launch and access the enclave."
+ @echo "To sign the enclave use the command:"
+ @echo " $(SGX_ENCLAVE_SIGNER) sign -key -enclave $(Enclave_Name) -out <$(Signed_Enclave_Name)> -config $(Enclave_Config_File)"
+ @echo "You can also sign the enclave using an external signing tool."
+ @echo "To build the project in simulation mode set SGX_MODE=SIM. To build the project in prerelease mode set SGX_PRERELEASE=1 and SGX_MODE=HW."
+else
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(App_Name) $(Signed_Enclave_Name)
+ifeq ($(Build_Mode), HW_DEBUG)
+ @echo "The project has been built in debug hardware mode."
+else ifeq ($(Build_Mode), SIM_DEBUG)
+ @echo "The project has been built in debug simulation mode."
+else ifeq ($(Build_Mode), HW_PRERELEASE)
+ @echo "The project has been built in pre-release hardware mode."
+else ifeq ($(Build_Mode), SIM_PRERELEASE)
+ @echo "The project has been built in pre-release simulation mode."
+else
+ @echo "The project has been built in release simulation mode."
+endif
+endif
+
+run: all
+ifneq ($(Build_Mode), HW_RELEASE)
+ @$(CURDIR)/$(App_Name)
+ @echo "RUN => $(App_Name) [$(SGX_MODE)|$(SGX_ARCH), OK]"
+endif
+
+######## App Objects ########
+
+App/Enclave_u.c: $(SGX_EDGER8R) Enclave/Enclave.edl
+ @cd App && $(SGX_EDGER8R) --untrusted ../Enclave/Enclave.edl --search-path ../Enclave --search-path $(SGX_SDK)/include
+ @echo "GEN => $@"
+
+App/Enclave_u.o: App/Enclave_u.c
+ @$(CC) $(App_C_Flags) -c $< -o $@
+ @echo "CC <= $<"
+
+App/%.o: App/%.cpp
+ @$(CXX) $(App_Cpp_Flags) -c $< -o $@
+ @echo "CXX <= $<"
+
+$(App_Name): App/Enclave_u.o $(App_Cpp_Objects)
+ @$(CXX) $^ -o $@ $(App_Link_Flags)
+ @echo "LINK => $@"
+
+.config_$(Build_Mode)_$(SGX_ARCH):
+ @rm -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) App/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*
+ @touch .config_$(Build_Mode)_$(SGX_ARCH)
+
+######## Enclave Objects ########
+
+Enclave/Enclave_t.c: $(SGX_EDGER8R) Enclave/Enclave.edl
+ @cd Enclave && $(SGX_EDGER8R) --trusted ../Enclave/Enclave.edl --search-path ../Enclave --search-path $(SGX_SDK)/include
+ @echo "GEN => $@"
+
+Enclave/Enclave_t.o: Enclave/Enclave_t.c
+ @$(CC) $(Enclave_C_Flags) -c $< -o $@
+ @echo "CC <= $<"
+
+Enclave/%.o: Enclave/%.cpp
+ @$(CXX) $(Enclave_Cpp_Flags) -c $< -o $@
+ @echo "CXX <= $<"
+
+$(Enclave_Name): Enclave/Enclave_t.o $(Enclave_Cpp_Objects)
+ @$(CXX) $^ -o $@ $(Enclave_Link_Flags)
+ @echo "LINK => $@"
+
+$(Signed_Enclave_Name): $(Enclave_Name)
+ @$(SGX_ENCLAVE_SIGNER) sign -key Enclave/Enclave_private.pem -enclave $(Enclave_Name) -out $@ -config $(Enclave_Config_File)
+ @echo "SIGN => $@"
+
+.PHONY: clean
+
+clean:
+ @rm -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) App/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*
diff --git a/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/README.txt b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/README.txt
new file mode 100644
index 0000000000..30a7f1795a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo/README.txt
@@ -0,0 +1,44 @@
+-----------------------
+Purpose of Cxx11SGXDemo
+-----------------------
+
+The project demonstrates serveral C++11 features inside the Enclave:
+- lambda expressions;
+- rvalue references and move semantics;
+- automatic type deduction with auto and decltype;
+- nullptr type;
+- strongly typed enum classes;
+- Range-based for statements;
+- static_assert keyword for compile-time assertion;
+- initializer lists and uniform initialization syntax;
+- New virtual function controls: override, final, default, and delete;
+- delegating constructors;
+- new container classes (unordered_set, unordered_map, unordered_multiset, and unordered_multimap);
+- tuple class;
+- function object wrapper;
+- atomic, mutexes, condition_variables;
+- new smart pointer classes: shared_ptr, unique_ptr;
+- new c++ algorithms: all_of, any_of, none_of;
+- variadic templates;
+- SFINAE;
+
+---------------------------------------------
+How to Build/Execute the C++11 sample program
+---------------------------------------------
+1. Install Intel(R) Software Guard Extensions (Intel(R) SGX) SDK for Linux* OS
+2. Build the project with the prepared Makefile:
+ a. Hardware Mode, Debug build:
+ $ make
+ b. Hardware Mode, Pre-release build:
+ $ make SGX_PRERELEASE=1 SGX_DEBUG=0
+ c. Hardware Mode, Release build:
+ $ make SGX_DEBUG=0
+ d. Simulation Mode, Debug build:
+ $ make SGX_MODE=SIM
+ e. Simulation Mode, Pre-release build:
+ $ make SGX_MODE=SIM SGX_PRERELEASE=1 SGX_DEBUG=0
+ f. Simulation Mode, Release build:
+ $ make SGX_MODE=SIM SGX_DEBUG=0
+3. Execute the binary directly:
+ $ ./app
+4. Remember to "make clean" before switching build mode
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/.cproject b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/.cproject
index be4d65295c..12d5e297b8 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/.cproject
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/.cproject
@@ -2,7 +2,7 @@
-
+
@@ -17,49 +17,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -68,7 +35,7 @@
-
+
@@ -83,16 +50,49 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -101,7 +101,7 @@
-
+
@@ -116,16 +116,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -134,7 +134,7 @@
-
+
@@ -149,16 +149,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -168,50 +168,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/.settings/language.settings.xml b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/.settings/language.settings.xml
new file mode 100644
index 0000000000..bb1f9221e3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/.settings/language.settings.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/App/App.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/App/App.cpp
index 92b5ec0b6c..329e9c1628 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/App/App.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/App/App.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.config.xml b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.config.xml
index 436860dd50..95549474f2 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.config.xml
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.config.xml
@@ -1,11 +1,12 @@
-
- 0
- 0
- 0x40000
- 0x100000
- 1
- 1
- 0
- 0
- 0xFFFFFFFF
-
+
+ 0
+ 0
+ 0x40000
+ 0x100000
+ 1
+ 1
+
+ 0
+ 0
+ 0xFFFFFFFF
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.cpp
index c662516d1d..d062362739 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.edl b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.edl
index 378965cd11..e1e2b25676 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.lds b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.lds
new file mode 100644
index 0000000000..f2ee453e1b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Enclave1.lds
@@ -0,0 +1,10 @@
+Enclave1.so
+{
+ global:
+ g_global_data_sim;
+ g_global_data;
+ enclave_entry;
+ g_peak_heap_used;
+ local:
+ *;
+};
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Utility_E1.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Utility_E1.cpp
index 9c2247b716..7787de30af 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Utility_E1.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Utility_E1.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Utility_E1.h b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Utility_E1.h
index 7af49b6814..a0f14eac51 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Utility_E1.h
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave1/Utility_E1.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.config.xml b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.config.xml
index 3317e37a37..3ca2c12ad8 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.config.xml
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.config.xml
@@ -1,11 +1,12 @@
-
- 0
- 0
- 0x40000
- 0x100000
- 1
- 1
- 0
- 0
- 0xFFFFFFFF
-
+
+ 0
+ 0
+ 0x40000
+ 0x100000
+ 1
+ 1
+
+ 0
+ 0
+ 0xFFFFFFFF
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.cpp
index 537957f68c..b6a88ea6aa 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.edl b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.edl
index 9ef5c33e4c..c2b9129163 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.lds b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.lds
new file mode 100644
index 0000000000..1507368237
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Enclave2.lds
@@ -0,0 +1,10 @@
+Enclave2.so
+{
+ global:
+ g_global_data_sim;
+ g_global_data;
+ enclave_entry;
+ g_peak_heap_used;
+ local:
+ *;
+};
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Utility_E2.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Utility_E2.cpp
index 962c68f922..27230848fe 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Utility_E2.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Utility_E2.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Utility_E2.h b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Utility_E2.h
index 17b88cdea2..7cdd206ae4 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Utility_E2.h
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave2/Utility_E2.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.config.xml b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.config.xml
index 436860dd50..d5fcaa4e78 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.config.xml
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.config.xml
@@ -1,11 +1,12 @@
-
- 0
- 0
- 0x40000
- 0x100000
- 1
- 1
- 0
- 0
- 0xFFFFFFFF
-
+
+ 0
+ 0
+ 0x40000
+ 0x100000
+ 1
+ 1
+
+ 0
+ 0
+ 0xFFFFFFFF
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.cpp
index cc15bc4aa7..19b456423d 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.edl b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.edl
index 7584ee7945..375fbf65d2 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.lds b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.lds
new file mode 100644
index 0000000000..5dc1d0aa5c
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Enclave3.lds
@@ -0,0 +1,10 @@
+Enclave3.so
+{
+ global:
+ g_global_data_sim;
+ g_global_data;
+ enclave_entry;
+ g_peak_heap_used;
+ local:
+ *;
+};
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Utility_E3.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Utility_E3.cpp
index 97cf9b0ce6..45fed38d7c 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Utility_E3.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Utility_E3.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Utility_E3.h b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Utility_E3.h
index 83ba2d6f65..2c690bc870 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Utility_E3.h
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Enclave3/Utility_E3.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Include/dh_session_protocol.h b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Include/dh_session_protocol.h
index bc92ee4d6c..a7b2f75bb3 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Include/dh_session_protocol.h
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Include/dh_session_protocol.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/EnclaveMessageExchange.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/EnclaveMessageExchange.cpp
index a32e3e2197..67fe17ac59 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/EnclaveMessageExchange.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/EnclaveMessageExchange.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/EnclaveMessageExchange.h b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/EnclaveMessageExchange.h
index c16a24656e..e89fd088bf 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/EnclaveMessageExchange.h
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/EnclaveMessageExchange.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/LocalAttestationCode.edl b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/LocalAttestationCode.edl
index 8e401ee843..e4518c0c15 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/LocalAttestationCode.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/LocalAttestationCode.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/datatypes.h b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/datatypes.h
index 1c198aa141..bf51c30ade 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/datatypes.h
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/datatypes.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/error_codes.h b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/error_codes.h
index 0bb2a25cf4..8f1e26b5b7 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/error_codes.h
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/LocalAttestationCode/error_codes.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Makefile b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Makefile
index 4fb31a0b3c..9401f77059 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Makefile
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -71,9 +71,9 @@ endif
Trust_Lib_Name := libLocalAttestation_Trusted.a
TrustLib_Cpp_Files := $(wildcard LocalAttestationCode/*.cpp)
TrustLib_Cpp_Objects := $(TrustLib_Cpp_Files:.cpp=.o)
-TrustLib_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport -I$(SGX_SDK)/include/epid -I./Include
+TrustLib_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx -I$(SGX_SDK)/include/epid -I./Include
TrustLib_Compile_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -fstack-protector $(TrustLib_Include_Paths)
-TrustLib_Compile_Cxx_Flags := -std=c++03 -nostdinc++
+TrustLib_Compile_Cxx_Flags := -std=c++11 -nostdinc++
UnTrustLib_Name := libLocalAttestation_unTrusted.a
UnTrustLib_Cpp_Files := $(wildcard Untrusted_LocalAttestation/*.cpp)
@@ -118,6 +118,10 @@ App_Name := app
######## Enclave Settings ########
+Enclave1_Version_Script := Enclave1/Enclave1.lds
+Enclave2_Version_Script := Enclave2/Enclave2.lds
+Enclave3_Version_Script := Enclave3/Enclave3.lds
+
ifneq ($(SGX_MODE), HW)
Trts_Library_Name := sgx_trts_sim
Service_Library_Name := sgx_tservice_sim
@@ -130,9 +134,16 @@ Crypto_Library_Name := sgx_tcrypto
Enclave_Cpp_Files_1 := $(wildcard Enclave1/*.cpp)
Enclave_Cpp_Files_2 := $(wildcard Enclave2/*.cpp)
Enclave_Cpp_Files_3 := $(wildcard Enclave3/*.cpp)
-Enclave_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport -I./LocalAttestationCode -I./Include
+Enclave_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx -I./LocalAttestationCode -I./Include
-Enclave_Compile_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -fstack-protector $(Enclave_Include_Paths)
+CC_BELOW_4_9 := $(shell expr "`$(CC) -dumpversion`" \< "4.9")
+ifeq ($(CC_BELOW_4_9), 1)
+ Enclave_Compile_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -ffunction-sections -fdata-sections -fstack-protector
+else
+ Enclave_Compile_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -ffunction-sections -fdata-sections -fstack-protector-strong
+endif
+
+Enclave_Compile_Flags += $(Enclave_Include_Paths)
# To generate a proper enclave, it is recommended to follow below guideline to link the trusted libraries:
# 1. Link sgx_trts with the `--whole-archive' and `--no-whole-archive' options,
@@ -141,12 +152,15 @@ Enclave_Compile_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpi
# Use `--start-group' and `--end-group' to link these libraries.
# Do NOT move the libraries linked with `--start-group' and `--end-group' within `--whole-archive' and `--no-whole-archive' options.
# Otherwise, you may get some undesirable errors.
-Enclave_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
+Common_Enclave_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
- -Wl,--start-group -lsgx_tstdc -lsgx_tstdcxx -l$(Crypto_Library_Name) -L. -lLocalAttestation_Trusted -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -L. -lLocalAttestation_Trusted -l$(Service_Library_Name) -Wl,--end-group \
-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
-Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
- -Wl,--defsym,__ImageBase=0
+ -Wl,--defsym,__ImageBase=0 -Wl,--gc-sections
+Enclave1_Link_Flags := $(Common_Enclave_Link_Flags) -Wl,--version-script=$(Enclave1_Version_Script)
+Enclave2_Link_Flags := $(Common_Enclave_Link_Flags) -Wl,--version-script=$(Enclave2_Version_Script)
+Enclave3_Link_Flags := $(Common_Enclave_Link_Flags) -Wl,--version-script=$(Enclave3_Version_Script)
Enclave_Cpp_Objects_1 := $(Enclave_Cpp_Files_1:.cpp=.o)
Enclave_Cpp_Objects_2 := $(Enclave_Cpp_Files_2:.cpp=.o)
@@ -175,7 +189,7 @@ endif
endif
ifeq ($(Build_Mode), HW_RELEASE)
-all: $(Trust_Lib_Name) $(UnTrustLib_Name) Enclave1.so Enclave2.so Enclave3.so $(App_Name)
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(Trust_Lib_Name) $(UnTrustLib_Name) Enclave1.so Enclave2.so Enclave3.so $(App_Name)
@echo "The project has been built in release hardware mode."
@echo "Please sign the enclaves (Enclave1.so, Enclave2.so, Enclave3.so) first with your signing keys before you run the $(App_Name) to launch and access the enclave."
@echo "To sign the enclaves use the following commands:"
@@ -185,7 +199,7 @@ all: $(Trust_Lib_Name) $(UnTrustLib_Name) Enclave1.so Enclave2.so Enclave3.so $(
@echo "You can also sign the enclaves using an external signing tool."
@echo "To build the project in simulation mode set SGX_MODE=SIM. To build the project in prerelease mode set SGX_PRERELEASE=1 and SGX_MODE=HW."
else
-all: $(Trust_Lib_Name) $(UnTrustLib_Name) $(Enclave_Name_1) $(Enclave_Name_2) $(Enclave_Name_3) $(App_Name)
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(Trust_Lib_Name) $(UnTrustLib_Name) $(Enclave_Name_1) $(Enclave_Name_2) $(Enclave_Name_3) $(App_Name)
ifeq ($(Build_Mode), HW_DEBUG)
@echo "The project has been built in debug hardware mode."
else ifeq ($(Build_Mode), SIM_DEBUG)
@@ -199,6 +213,10 @@ else
endif
endif
+.config_$(Build_Mode)_$(SGX_ARCH):
+ @rm -rf .config_* $(App_Name) *.so *.a App/*.o Enclave1/*.o Enclave1/*_t.* Enclave1/*_u.* Enclave2/*.o Enclave2/*_t.* Enclave2/*_u.* Enclave3/*.o Enclave3/*_t.* Enclave3/*_u.* LocalAttestationCode/*.o Untrusted_LocalAttestation/*.o LocalAttestationCode/*_t.*
+ @touch .config_$(Build_Mode)_$(SGX_ARCH)
+
######## Library Objects ########
LocalAttestationCode/LocalAttestationCode_t.c LocalAttestationCode/LocalAttestationCode_t.h : $(SGX_EDGER8R) LocalAttestationCode/LocalAttestationCode.edl
@@ -270,11 +288,11 @@ Enclave1/Enclave1_t.o: Enclave1/Enclave1_t.c
@echo "CC <= $<"
Enclave1/%.o: Enclave1/%.cpp Enclave1/Enclave1_t.h
- @$(CXX) -std=c++03 -nostdinc++ $(Enclave_Compile_Flags) -c $< -o $@
+ @$(CXX) -std=c++11 -nostdinc++ $(Enclave_Compile_Flags) -c $< -o $@
@echo "CXX <= $<"
Enclave1.so: Enclave1/Enclave1_t.o $(Enclave_Cpp_Objects_1) $(Trust_Lib_Name)
- @$(CXX) Enclave1/Enclave1_t.o $(Enclave_Cpp_Objects_1) -o $@ $(Enclave_Link_Flags)
+ @$(CXX) Enclave1/Enclave1_t.o $(Enclave_Cpp_Objects_1) -o $@ $(Enclave1_Link_Flags)
@echo "LINK => $@"
$(Enclave_Name_1): Enclave1.so
@@ -290,11 +308,11 @@ Enclave2/Enclave2_t.o: Enclave2/Enclave2_t.c
@echo "CC <= $<"
Enclave2/%.o: Enclave2/%.cpp
- @$(CXX) -std=c++03 -nostdinc++ $(Enclave_Compile_Flags) -c $< -o $@
+ @$(CXX) -std=c++11 -nostdinc++ $(Enclave_Compile_Flags) -c $< -o $@
@echo "CXX <= $<"
Enclave2.so: Enclave2/Enclave2_t.o $(Enclave_Cpp_Objects_2) $(Trust_Lib_Name)
- @$(CXX) Enclave2/Enclave2_t.o $(Enclave_Cpp_Objects_2) -o $@ $(Enclave_Link_Flags)
+ @$(CXX) Enclave2/Enclave2_t.o $(Enclave_Cpp_Objects_2) -o $@ $(Enclave2_Link_Flags)
@echo "LINK => $@"
$(Enclave_Name_2): Enclave2.so
@@ -310,11 +328,11 @@ Enclave3/Enclave3_t.o: Enclave3/Enclave3_t.c
@echo "CC <= $<"
Enclave3/%.o: Enclave3/%.cpp
- @$(CXX) -std=c++03 -nostdinc++ $(Enclave_Compile_Flags) -c $< -o $@
+ @$(CXX) -std=c++11 -nostdinc++ $(Enclave_Compile_Flags) -c $< -o $@
@echo "CXX <= $<"
Enclave3.so: Enclave3/Enclave3_t.o $(Enclave_Cpp_Objects_3) $(Trust_Lib_Name)
- @$(CXX) Enclave3/Enclave3_t.o $(Enclave_Cpp_Objects_3) -o $@ $(Enclave_Link_Flags)
+ @$(CXX) Enclave3/Enclave3_t.o $(Enclave_Cpp_Objects_3) -o $@ $(Enclave3_Link_Flags)
@echo "LINK => $@"
$(Enclave_Name_3): Enclave3.so
@@ -325,4 +343,4 @@ $(Enclave_Name_3): Enclave3.so
.PHONY: clean
clean:
- @rm -rf $(App_Name) *.so *.a App/*.o Enclave1/*.o Enclave1/*_t.* Enclave1/*_u.* Enclave2/*.o Enclave2/*_t.* Enclave2/*_u.* Enclave3/*.o Enclave3/*_t.* Enclave3/*_u.* LocalAttestationCode/*.o Untrusted_LocalAttestation/*.o LocalAttestationCode/*_t.*
+ @rm -rf .config_* $(App_Name) *.so *.a App/*.o Enclave1/*.o Enclave1/*_t.* Enclave1/*_u.* Enclave2/*.o Enclave2/*_t.* Enclave2/*_u.* Enclave3/*.o Enclave3/*_t.* Enclave3/*_u.* LocalAttestationCode/*.o Untrusted_LocalAttestation/*.o LocalAttestationCode/*_t.*
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/README.txt b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/README.txt
index 882143468d..9c9d97d7b4 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/README.txt
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/README.txt
@@ -8,7 +8,7 @@ The project demonstrates:
------------------------------------
How to Build/Execute the Sample Code
------------------------------------
-1. Install Intel(R) SGX SDK for Linux* OS
+1. Install Intel(R) Software Guard Extensions (Intel(R) SGX) SDK for Linux* OS
2. Build the project with the prepared Makefile:
a. Hardware Mode, Debug build:
$ make
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Untrusted_LocalAttestation/UntrustedEnclaveMessageExchange.cpp b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Untrusted_LocalAttestation/UntrustedEnclaveMessageExchange.cpp
index 805c14abad..bc87f59dde 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Untrusted_LocalAttestation/UntrustedEnclaveMessageExchange.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Untrusted_LocalAttestation/UntrustedEnclaveMessageExchange.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Untrusted_LocalAttestation/UntrustedEnclaveMessageExchange.h b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Untrusted_LocalAttestation/UntrustedEnclaveMessageExchange.h
index 684b33cb3b..9c6dcfa886 100644
--- a/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Untrusted_LocalAttestation/UntrustedEnclaveMessageExchange.h
+++ b/sgx-jvm/linux-sgx/SampleCode/LocalAttestation/Untrusted_LocalAttestation/UntrustedEnclaveMessageExchange.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/.cproject b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/.cproject
index 77c05bf4f1..2894234136 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/.cproject
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/.cproject
@@ -2,7 +2,7 @@
-
+
@@ -17,49 +17,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -68,7 +35,7 @@
-
+
@@ -83,16 +50,49 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -101,7 +101,7 @@
-
+
@@ -116,16 +116,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -134,7 +134,7 @@
-
+
@@ -149,16 +149,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -168,50 +168,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/.settings/language.settings.xml b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/.settings/language.settings.xml
new file mode 100644
index 0000000000..bb1f9221e3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/.settings/language.settings.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/App.cpp b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/App.cpp
index 6384116722..c70f8d1a1c 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/App.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/App.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/ErrorSupport.cpp b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/ErrorSupport.cpp
index 9665fb6b31..e6c82f77cc 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/ErrorSupport.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/ErrorSupport.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/ErrorSupport.h b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/ErrorSupport.h
index 4ab4ed2f1a..611d17fa85 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/ErrorSupport.h
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/ErrorSupport.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/rwlock.cpp b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/rwlock.cpp
index 59b052282e..19b85610d5 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/rwlock.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/rwlock.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/rwlock.h b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/rwlock.h
index 19161f2845..f25031c92c 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/rwlock.h
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/App/rwlock.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Common/types.h b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Common/types.h
index a4dc4eaa94..cb40720ff7 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Common/types.h
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Common/types.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.config.xml b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.config.xml
index 23f5748464..6187e8ba72 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.config.xml
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.config.xml
@@ -1,11 +1,12 @@
-
- 0
- 0
- 0x40000
- 0x100000
- 3
- 1
- 0
- 0
- 0xFFFFFFFF
-
+
+ 0
+ 0
+ 0x40000
+ 0x100000
+ 3
+ 1
+
+ 0
+ 0
+ 0xFFFFFFFF
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.cpp b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.cpp
index 3918abf4ab..5f95011b49 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.edl b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.edl
index 54aa25a740..6b687f4bb5 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.lds b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.lds
index b1c6b6fd7e..20fa0d090f 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.lds
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Enclave/Enclave.lds
@@ -4,6 +4,7 @@ libenclave.so
g_global_data_sim;
g_global_data;
enclave_entry;
+ g_peak_heap_used;
local:
*;
};
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Makefile b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Makefile
index 6bccdb7673..ab392221d6 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Makefile
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -120,11 +120,16 @@ Crypto_Library_Name := sgx_tcrypto
Enclave_Cpp_Files := $(wildcard Enclave/*.cpp)
-Enclave_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport -I./Common
+Enclave_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx -I./Common
-Enclave_Compile_CFlags := -nostdinc -ffreestanding -fvisibility=hidden -fpie \
- $(Enclave_Include_Paths)
-Enclave_Compile_CXXFlags := -nostdinc++ -std=c++03 $(Enclave_Compile_CFlags)
+CC_BELOW_4_9 := $(shell expr "`$(CC) -dumpversion`" \< "4.9")
+ifeq ($(CC_BELOW_4_9), 1)
+ Enclave_Compile_CFlags := -fstack-protector
+else
+ Enclave_Compile_CFlags := -fstack-protector-strong
+endif
+Enclave_Compile_CFlags += -nostdinc -ffreestanding -fvisibility=hidden -fpie -ffunction-sections -fdata-sections $(Enclave_Include_Paths)
+Enclave_Compile_CXXFlags := -nostdinc++ -std=c++11 $(Enclave_Compile_CFlags)
# To generate a proper enclave, it is recommended to follow below guideline to link the trusted libraries:
# 1. Link sgx_trts with the `--whole-archive' and `--no-whole-archive' options,
@@ -135,9 +140,9 @@ Enclave_Compile_CXXFlags := -nostdinc++ -std=c++03 $(Enclave_Compile_CFlags)
# Otherwise, you may get some undesirable errors.
Enclave_Link_Flags := -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
- -Wl,--start-group -lsgx_tstdc -lsgx_tstdcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
-Wl,--version-script=Enclave/Enclave.lds -Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
- -Wl,-pie,-eenclave_entry -Wl,--export-dynamic -Wl,--defsym,__ImageBase=0
+ -Wl,-pie,-eenclave_entry -Wl,--export-dynamic -Wl,--defsym,__ImageBase=0 -Wl,--gc-sections
Enclave_Cpp_Objects := $(Enclave_Cpp_Files:.cpp=.o)
Gen_Trusted_Source := Enclave/Enclave_t.c
@@ -168,7 +173,7 @@ endif
endif
ifeq ($(Build_Mode), HW_RELEASE)
-all: $(App_Name) $(Enclave_Name)
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(App_Name) $(Enclave_Name)
@echo "The project has been built in release hardware mode."
@echo "Please sign the $(Enclave_Name) first with your signing key before you run the $(App_Name) to launch and access the enclave."
@echo "To sign the enclave use the command:"
@@ -176,7 +181,7 @@ all: $(App_Name) $(Enclave_Name)
@echo "You can also sign the enclave using an external signing tool."
@echo "To build the project in simulation mode set SGX_MODE=SIM. To build the project in prerelease mode set SGX_PRERELEASE=1 and SGX_MODE=HW."
else
-all: $(App_Name) $(Signed_Enclave_Name)
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(App_Name) $(Signed_Enclave_Name)
ifeq ($(Build_Mode), HW_DEBUG)
@echo "The project has been built in debug hardware mode."
else ifeq ($(Build_Mode), SIM_DEBUG)
@@ -190,6 +195,10 @@ else
endif
endif
+.config_$(Build_Mode)_$(SGX_ARCH):
+ @rm -f .config_* $(App_Name) $(App_Objects) $(Enclave_Name) $(Enclave_Objects) App/Enclave_u.* Enclave/Enclave_t.* $(Signed_Enclave_Name)
+ @touch .config_$(Build_Mode)_$(SGX_ARCH)
+
######## App Objects ########
$(Gen_Untrusted_Source): $(SGX_EDGER8R) Enclave/Enclave.edl
@@ -236,4 +245,4 @@ $(Signed_Enclave_Name): $(Enclave_Name)
clean:
- @rm -f $(App_Name) $(App_Objects) $(Enclave_Name) $(Enclave_Objects) App/Enclave_u.* Enclave/Enclave_t.* $(Signed_Enclave_Name)
+ @rm -f .config_* $(App_Name) $(App_Objects) $(Enclave_Name) $(Enclave_Objects) App/Enclave_u.* Enclave/Enclave_t.* $(Signed_Enclave_Name)
diff --git a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/README.txt b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/README.txt
index 23c298b021..0f9e256bed 100644
--- a/sgx-jvm/linux-sgx/SampleCode/PowerTransition/README.txt
+++ b/sgx-jvm/linux-sgx/SampleCode/PowerTransition/README.txt
@@ -7,7 +7,7 @@ Software Guard Extensions projects development.
------------------------------------
How to Build/Execute the Sample Code
------------------------------------
-1. Install Intel(R) SGX SDK for Linux* OS
+1. Install Intel(R) Software Guard Extensions (Intel(R) SGX) SDK for Linux* OS
2. Build the project with the prepared Makefile:
a. Hardware Mode, Debug build:
$ make
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/.cproject b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/.cproject
index efe1117e34..28718ebf6f 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/.cproject
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/.cproject
@@ -2,7 +2,7 @@
-
+
@@ -17,49 +17,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -68,7 +35,7 @@
-
+
@@ -83,16 +50,49 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -101,7 +101,7 @@
-
+
@@ -116,16 +116,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -134,7 +134,7 @@
-
+
@@ -149,16 +149,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -168,50 +168,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/.settings/language.settings.xml b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/.settings/language.settings.xml
new file mode 100644
index 0000000000..bb1f9221e3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/.settings/language.settings.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/Makefile b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/Makefile
index 1f6e5af6f7..aae43b4215 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/Makefile
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -110,7 +110,7 @@ App_Name := app
######## Service Provider Settings ########
ServiceProvider_Cpp_Files := service_provider/ecp.cpp service_provider/network_ra.cpp service_provider/service_provider.cpp service_provider/ias_ra.cpp
-ServiceProvider_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport -Isample_libcrypto
+ServiceProvider_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx -Isample_libcrypto
ServiceProvider_C_Flags := $(SGX_COMMON_CFLAGS) -fPIC -Wno-attributes -I$(SGX_SDK)/include -Isample_libcrypto
ServiceProvider_Cpp_Flags := $(ServiceProvider_C_Flags) -std=c++11
@@ -130,10 +130,16 @@ endif
Crypto_Library_Name := sgx_tcrypto
Enclave_Cpp_Files := isv_enclave/isv_enclave.cpp
-Enclave_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport
+Enclave_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx
-Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -fstack-protector $(Enclave_Include_Paths)
-Enclave_Cpp_Flags := $(Enclave_C_Flags) -std=c++03 -nostdinc++
+CC_BELOW_4_9 := $(shell expr "`$(CC) -dumpversion`" \< "4.9")
+ifeq ($(CC_BELOW_4_9), 1)
+ Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -ffunction-sections -fdata-sections -fstack-protector
+else
+ Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -ffunction-sections -fdata-sections -fstack-protector-strong
+endif
+Enclave_C_Flags += $(Enclave_Include_Paths)
+Enclave_Cpp_Flags := $(Enclave_C_Flags) -std=c++11 -nostdinc++
# To generate a proper enclave, it is recommended to follow below guideline to link the trusted libraries:
# 1. Link sgx_trts with the `--whole-archive' and `--no-whole-archive' options,
@@ -144,10 +150,10 @@ Enclave_Cpp_Flags := $(Enclave_C_Flags) -std=c++03 -nostdinc++
# Otherwise, you may get some undesirable errors.
Enclave_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
- -Wl,--start-group -lsgx_tstdc -lsgx_tstdcxx -lsgx_tkey_exchange -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -lsgx_tkey_exchange -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
-Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
- -Wl,--defsym,__ImageBase=0 \
+ -Wl,--defsym,__ImageBase=0 -Wl,--gc-sections \
-Wl,--version-script=isv_enclave/isv_enclave.lds
Enclave_Cpp_Objects := $(Enclave_Cpp_Files:.cpp=.o)
@@ -178,7 +184,7 @@ endif
.PHONY: all run
ifeq ($(Build_Mode), HW_RELEASE)
-all: libservice_provider.so $(App_Name) $(Enclave_Name)
+all: .config_$(Build_Mode)_$(SGX_ARCH) libservice_provider.so $(App_Name) $(Enclave_Name)
@echo "The project has been built in release hardware mode."
@echo "Please sign the $(Enclave_Name) first with your signing key before you run the $(App_Name) to launch and access the enclave."
@echo "To sign the enclave use the command:"
@@ -186,7 +192,7 @@ all: libservice_provider.so $(App_Name) $(Enclave_Name)
@echo "You can also sign the enclave using an external signing tool."
@echo "To build the project in simulation mode set SGX_MODE=SIM. To build the project in prerelease mode set SGX_PRERELEASE=1 and SGX_MODE=HW."
else
-all: libservice_provider.so $(App_Name) $(Signed_Enclave_Name)
+all: .config_$(Build_Mode)_$(SGX_ARCH) libservice_provider.so $(App_Name) $(Signed_Enclave_Name)
ifeq ($(Build_Mode), HW_DEBUG)
@echo "The project has been built in debug hardware mode."
else ifeq ($(Build_Mode), SIM_DEBUG)
@@ -206,6 +212,11 @@ ifneq ($(Build_Mode), HW_RELEASE)
@echo "RUN => $(App_Name) [$(SGX_MODE)|$(SGX_ARCH), OK]"
endif
+.config_$(Build_Mode)_$(SGX_ARCH):
+ @rm -f .config_* $(App_Name) $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) isv_app/isv_enclave_u.* $(Enclave_Cpp_Objects) isv_enclave/isv_enclave_t.* libservice_provider.* $(ServiceProvider_Cpp_Objects)
+ @touch .config_$(Build_Mode)_$(SGX_ARCH)
+
+
######## App Objects ########
isv_app/isv_enclave_u.c: $(SGX_EDGER8R) isv_enclave/isv_enclave.edl
@@ -260,4 +271,4 @@ $(Signed_Enclave_Name): $(Enclave_Name)
.PHONY: clean
clean:
- @rm -f $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) isv_app/isv_enclave_u.* $(Enclave_Cpp_Objects) isv_enclave/isv_enclave_t.* libservice_provider.* $(ServiceProvider_Cpp_Objects)
+ @rm -f .config_* $(App_Name) $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) isv_app/isv_enclave_u.* $(Enclave_Cpp_Objects) isv_enclave/isv_enclave_t.* libservice_provider.* $(ServiceProvider_Cpp_Objects)
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/README.txt b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/README.txt
index 2b78193368..d6f5cb5d6a 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/README.txt
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/README.txt
@@ -8,7 +8,7 @@ The project demonstrates:
------------------------------------
How to Build/Execute the Sample Code
------------------------------------
-1. Install Intel(R) SGX SDK for Linux* OS
+1. Install Intel(R) Software Guard Extensions (Intel(R) SGX) SDK for Linux* OS
2. Build the project with the prepared Makefile:
a. Hardware Mode, Debug build:
$ make
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_app/isv_app.cpp b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_app/isv_app.cpp
index 0fb3590acb..6046a0f430 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_app/isv_app.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_app/isv_app.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -71,7 +71,7 @@
uint8_t* msg1_samples[] = { msg1_sample1, msg1_sample2 };
uint8_t* msg2_samples[] = { msg2_sample1, msg2_sample2 };
-uint8_t* msg3_samples[MSG3_BODY_SIZE] = { msg3_sample1, msg3_sample2 };
+uint8_t* msg3_samples[] = { msg3_sample1, msg3_sample2 };
uint8_t* attestation_msg_samples[] =
{ attestation_msg_sample1, attestation_msg_sample2};
@@ -437,8 +437,10 @@ int main(int argc, char* argv[])
ra_samp_response_header_t* precomputed_msg2 =
(ra_samp_response_header_t *)
msg2_samples[GET_VERIFICATION_ARRAY_INDEX()];
- if(memcmp( precomputed_msg2, p_msg2_full,
- sizeof(ra_samp_response_header_t) + p_msg2_full->size))
+ if(MSG2_BODY_SIZE !=
+ sizeof(ra_samp_response_header_t) + p_msg2_full->size ||
+ memcmp( precomputed_msg2, p_msg2_full,
+ sizeof(ra_samp_response_header_t) + p_msg2_full->size))
{
fprintf(OUTPUT, "\nVerification ERROR. Our precomputed "
"value for MSG2 does NOT match.\n");
@@ -575,7 +577,8 @@ int main(int argc, char* argv[])
"result message back\n.");
if( VERIFICATION_INDEX_IS_VALID() )
{
- if(memcmp(p_att_result_msg_full->body,
+ if(ATTESTATION_MSG_BODY_SIZE != p_att_result_msg_full->size ||
+ memcmp(p_att_result_msg_full->body,
attestation_msg_samples[GET_VERIFICATION_ARRAY_INDEX()],
p_att_result_msg_full->size) )
{
@@ -585,7 +588,7 @@ int main(int argc, char* argv[])
fprintf(OUTPUT, "\nEXPECTED ATTESTATION RESULT -");
PRINT_BYTE_ARRAY(OUTPUT,
attestation_msg_samples[GET_VERIFICATION_ARRAY_INDEX()],
- p_att_result_msg_full->size);
+ ATTESTATION_MSG_BODY_SIZE);
}
}
}
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_app/sample_messages.h b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_app/sample_messages.h
index 92281777fa..2b42864008 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_app/sample_messages.h
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_app/sample_messages.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -37,7 +37,9 @@
#include
-uint8_t msg1_sample1[] =
+#define MSG1_BODY_SIZE 68
+
+uint8_t msg1_sample1[MSG1_BODY_SIZE] =
{
0xe8, 0xcf, 0xf, 0x97, 0x8a, 0xf4, 0x24, 0x8a,
0xf5, 0x5b, 0x56, 0xf0, 0xac, 0x7f, 0x78, 0x39,
@@ -50,7 +52,7 @@ uint8_t msg1_sample1[] =
0x3, 0x1, 0x0, 0x0
};
-uint8_t msg1_sample2[] =
+uint8_t msg1_sample2[MSG1_BODY_SIZE] =
{
0xa8, 0x56, 0x72, 0xc1, 0x14, 0x41, 0xa, 0x2f,
0xdc, 0xb0, 0xa8, 0xa1, 0x3a, 0x51, 0x40, 0xf9,
@@ -63,7 +65,9 @@ uint8_t msg1_sample2[] =
0x3, 0x1, 0x0, 0x0
};
-uint8_t msg2_sample1[] =
+#define MSG2_BODY_SIZE 176
+
+uint8_t msg2_sample1[MSG2_BODY_SIZE] =
{
0x2, 0x0, 0x0, 0xa8, 0x0, 0x0, 0x0, 0x0,
0x6a, 0x83, 0xdc, 0x84, 0xd4, 0x4c, 0x8a, 0xbb,
@@ -89,7 +93,7 @@ uint8_t msg2_sample1[] =
0x27, 0xc2, 0x55, 0xb9, 0x0, 0x0, 0x0, 0x0
};
-uint8_t msg2_sample2[] =
+uint8_t msg2_sample2[MSG2_BODY_SIZE] =
{
0x2, 0x0, 0x0, 0xa8, 0x0, 0x0, 0x0, 0x0,
0x6a, 0x83, 0xdc, 0x84, 0xd4, 0x4c, 0x8a, 0xbb,
@@ -490,7 +494,9 @@ uint8_t msg3_sample2[MSG3_BODY_SIZE] =
0xe8, 0x1e, 0x5e, 0xd8
};
-uint8_t attestation_msg_sample1[] =
+#define ATTESTATION_MSG_BODY_SIZE 145
+
+uint8_t attestation_msg_sample1[ATTESTATION_MSG_BODY_SIZE] =
{
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@@ -513,7 +519,7 @@ uint8_t attestation_msg_sample1[] =
0xc0
};
-uint8_t attestation_msg_sample2[] =
+uint8_t attestation_msg_sample2[ATTESTATION_MSG_BODY_SIZE] =
{
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.config.xml b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.config.xml
index 0b95a3edb1..5e7af47444 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.config.xml
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.config.xml
@@ -1,11 +1,12 @@
-
- 0
- 0
- 0x40000
- 0x100000
- 1
- 1
- 0
- 0
- 0xFFFFFFFF
-
\ No newline at end of file
+
+ 0
+ 0
+ 0x40000
+ 0x100000
+ 1
+ 1
+
+ 0
+ 0
+ 0xFFFFFFFF
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.cpp b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.cpp
index 980de0c8db..07c1e0f505 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.edl b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.edl
index 83d97351ed..9c157a39dd 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.lds b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.lds
index e3d9d0ee0d..f5f35d5b7c 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.lds
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/isv_enclave/isv_enclave.lds
@@ -4,6 +4,7 @@ enclave.so
g_global_data_sim;
g_global_data;
enclave_entry;
+ g_peak_heap_used;
local:
*;
};
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ecp.cpp b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ecp.cpp
index 192d20fb8c..74d6d42fb6 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ecp.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ecp.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -144,8 +144,8 @@ bool derive_key(
sample_ret = sample_sha256_close(sha_context);
static_assert(sizeof(sample_ec_key_128bit_t)* 2 == sizeof(sample_sha256_hash_t), "structure size mismatch.");
- memcpy(first_derived_key, &key_material, sizeof(sample_ec_key_128bit_t));
- memcpy(second_derived_key, (uint8_t*)&key_material + sizeof(sample_ec_key_128bit_t), sizeof(sample_ec_key_128bit_t));
+ memcpy_s(first_derived_key, sizeof(sample_ec_key_128bit_t), &key_material, sizeof(sample_ec_key_128bit_t));
+ memcpy_s(second_derived_key, sizeof(sample_ec_key_128bit_t), (uint8_t*)&key_material + sizeof(sample_ec_key_128bit_t), sizeof(sample_ec_key_128bit_t));
// memset here can be optimized away by compiler, so please use memset_s on
// windows for production code and similar functions on other OSes.
@@ -233,7 +233,7 @@ bool derive_key(
/*counter = 0x01 */
p_derivation_buffer[0] = 0x01;
/*label*/
- memcpy(&p_derivation_buffer[1], label, label_length);
+ memcpy_s(&p_derivation_buffer[1], derivation_buffer_length - 1, label, label_length);
/*output_key_len=0x0080*/
uint16_t *key_len = (uint16_t *)(&(p_derivation_buffer[derivation_buffer_length - 2]));
*key_len = 0x0080;
@@ -254,4 +254,4 @@ bool derive_key(
}
return true;
}
-#endif
\ No newline at end of file
+#endif
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ecp.h b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ecp.h
index 0a562b05f0..6a18bd44ba 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ecp.h
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ecp.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ias_ra.cpp b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ias_ra.cpp
index ec6f52f769..91b1a36966 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ias_ra.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ias_ra.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ias_ra.h b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ias_ra.h
index a984d0f06e..8dbde08dd1 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ias_ra.h
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/ias_ra.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/network_ra.cpp b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/network_ra.cpp
index f8ab863720..a5277382a0 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/network_ra.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/network_ra.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/network_ra.h b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/network_ra.h
index 9091bfb67c..8b23d7ef7f 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/network_ra.h
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/network_ra.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/remote_attestation_result.h b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/remote_attestation_result.h
index 86d1532b6d..a84d80745f 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/remote_attestation_result.h
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/remote_attestation_result.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/service_provider.cpp b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/service_provider.cpp
index 1db44c0a96..ac391dacd1 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/service_provider.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/service_provider.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/service_provider.h b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/service_provider.h
index 83a7522e07..fa1d03ea7e 100644
--- a/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/service_provider.h
+++ b/sgx-jvm/linux-sgx/SampleCode/RemoteAttestation/service_provider/service_provider.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/.cproject b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/.cproject
index e685836b4d..690134a3a4 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/.cproject
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/.cproject
@@ -2,7 +2,7 @@
-
+
@@ -17,49 +17,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -68,7 +35,7 @@
-
+
@@ -83,16 +50,49 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -101,7 +101,7 @@
-
+
@@ -116,16 +116,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -134,7 +134,7 @@
-
+
@@ -149,16 +149,16 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -168,50 +168,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/.settings/language.settings.xml b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/.settings/language.settings.xml
new file mode 100644
index 0000000000..bb1f9221e3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/.settings/language.settings.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/App.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/App.cpp
index 0538d2d8f3..b0ecd6152b 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/App.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/App.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/App.h b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/App.h
index bc86ff850f..f44fdc6a82 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/App.h
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/App.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Arrays.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Arrays.cpp
index 01552eeffb..81e7d72bc5 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Arrays.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Arrays.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Functions.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Functions.cpp
index acc2ad2737..25fcf70341 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Functions.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Functions.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Pointers.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Pointers.cpp
index 2187a40dde..08308dcce6 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Pointers.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Pointers.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -76,25 +76,25 @@ void edger8r_pointer_attributes(void)
ret = ecall_pointer_string(global_eid, str1);
if (ret != SGX_SUCCESS)
abort();
- assert(memcmp(str1, "0987654321", strlen(str1)) == 0);
+ assert(strlen(str1) == 10 && memcmp(str1, "0987654321", strlen(str1)) == 0);
const char str2[] = "1234567890";
ret = ecall_pointer_string_const(global_eid, str2);
if (ret != SGX_SUCCESS)
abort();
- assert(memcmp(str2, "1234567890", strlen(str2)) == 0);
+ assert(strlen(str2) == 10 && memcmp(str2, "1234567890", strlen(str2)) == 0);
char str3[] = "1234567890";
ret = ecall_pointer_size(global_eid, (void*)str3, strlen(str3));
if (ret != SGX_SUCCESS)
abort();
- assert(memcmp(str3, "0987654321", strlen(str3)) == 0);
+ assert(strlen(str3) == 10 && memcmp(str3, "0987654321", strlen(str3)) == 0);
char str4[] = "1234567890";
ret = ecall_pointer_isptr_readonly(global_eid, (buffer_t)str4, strlen(str4));
if (ret != SGX_SUCCESS)
abort();
- assert(memcmp(str4, "1234567890", strlen(str4)) == 0);
+ assert(strlen(str4) == 10 && memcmp(str4, "1234567890", strlen(str4)) == 0);
int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
ret = ecall_pointer_count(global_eid, arr, 10);
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Types.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Types.cpp
index 19702263dd..19bdd302e9 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Types.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/Edger8rSyntax/Types.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Libc.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Libc.cpp
index 29f0074669..749e8d4aa1 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Libc.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Libc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Libcxx.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Libcxx.cpp
index f6d567b98f..238d3b0591 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Libcxx.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Libcxx.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Thread.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Thread.cpp
index ca28fe5ed8..d4b8626f3e 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Thread.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/App/TrustedLibrary/Thread.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Arrays.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Arrays.cpp
index cd0718b5c0..85236d57d0 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Arrays.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Arrays.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Arrays.edl b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Arrays.edl
index 4d481fa197..9ef6b49a19 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Arrays.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Arrays.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Functions.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Functions.cpp
index e29739a21e..2d53dcf063 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Functions.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Functions.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Functions.edl b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Functions.edl
index ad9e1d995f..bdb21ce3b2 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Functions.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Functions.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Pointers.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Pointers.cpp
index 6e027e9cd3..788cbf06d5 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Pointers.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Pointers.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Pointers.edl b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Pointers.edl
index cbbc960f38..3719f445c2 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Pointers.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Pointers.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Types.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Types.cpp
index aba016a6d8..ea4cca3958 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Types.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Types.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Types.edl b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Types.edl
index a23aed85ca..736dd19727 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Types.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Edger8rSyntax/Types.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.config.xml b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.config.xml
index c9533851cf..e94c9bc50a 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.config.xml
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.config.xml
@@ -5,6 +5,7 @@
0x100000
10
1
+
0
0
0xFFFFFFFF
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.cpp
index 94a3108c46..e1df4dc2d6 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.edl b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.edl
index 9e31bd2ce8..6318f66165 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.h b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.h
index 6e4c09ee2c..b38a5c1db3 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.h
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.lds b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.lds
index e3d9d0ee0d..f5f35d5b7c 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.lds
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/Enclave.lds
@@ -4,6 +4,7 @@ enclave.so
g_global_data_sim;
g_global_data;
enclave_entry;
+ g_peak_heap_used;
local:
*;
};
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libc.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libc.cpp
index b0e566ced1..952c21908f 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libc.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libc.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -31,7 +31,7 @@
#include
-#include
+#include "sgx_cpuid.h"
#include "sgx_trts.h"
#include "../Enclave.h"
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libc.edl b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libc.edl
index 9efe3219d4..6b5aa3e6c9 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libc.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libc.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libcxx.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libcxx.cpp
index 6f76646466..223e9453d4 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libcxx.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libcxx.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libcxx.edl b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libcxx.edl
index 49a8b8d9d9..f6eb7ee7cc 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libcxx.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Libcxx.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Thread.cpp b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Thread.cpp
index d360d716a6..ea40e338e6 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Thread.cpp
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Thread.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -33,7 +33,7 @@
#include "../Enclave.h"
#include "Enclave_t.h"
-#include
+#include "sgx_thread.h"
static size_t global_counter = 0;
static sgx_thread_mutex_t global_mutex = SGX_THREAD_MUTEX_INITIALIZER;
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Thread.edl b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Thread.edl
index 77ce461de4..f9ec4d29e9 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Thread.edl
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Enclave/TrustedLibrary/Thread.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Include/user_types.h b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Include/user_types.h
index 00a9bed83f..4d3a4a99e2 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Include/user_types.h
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Include/user_types.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Makefile b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Makefile
index aaa22052e6..e44755fb6c 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Makefile
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -116,10 +116,17 @@ endif
Crypto_Library_Name := sgx_tcrypto
Enclave_Cpp_Files := Enclave/Enclave.cpp $(wildcard Enclave/Edger8rSyntax/*.cpp) $(wildcard Enclave/TrustedLibrary/*.cpp)
-Enclave_Include_Paths := -IInclude -IEnclave -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/stlport
+Enclave_Include_Paths := -IInclude -IEnclave -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx
-Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -fstack-protector $(Enclave_Include_Paths)
-Enclave_Cpp_Flags := $(Enclave_C_Flags) -std=c++03 -nostdinc++
+CC_BELOW_4_9 := $(shell expr "`$(CC) -dumpversion`" \< "4.9")
+ifeq ($(CC_BELOW_4_9), 1)
+ Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -ffunction-sections -fdata-sections -fstack-protector
+else
+ Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -ffunction-sections -fdata-sections -fstack-protector-strong
+endif
+
+Enclave_C_Flags += $(Enclave_Include_Paths)
+Enclave_Cpp_Flags := $(Enclave_C_Flags) -std=c++11 -nostdinc++
# To generate a proper enclave, it is recommended to follow below guideline to link the trusted libraries:
# 1. Link sgx_trts with the `--whole-archive' and `--no-whole-archive' options,
@@ -130,10 +137,10 @@ Enclave_Cpp_Flags := $(Enclave_C_Flags) -std=c++03 -nostdinc++
# Otherwise, you may get some undesirable errors.
Enclave_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
- -Wl,--start-group -lsgx_tstdc -lsgx_tstdcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
-Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
- -Wl,--defsym,__ImageBase=0 \
+ -Wl,--defsym,__ImageBase=0 -Wl,--gc-sections \
-Wl,--version-script=Enclave/Enclave.lds
Enclave_Cpp_Objects := $(Enclave_Cpp_Files:.cpp=.o)
@@ -164,7 +171,7 @@ endif
.PHONY: all run
ifeq ($(Build_Mode), HW_RELEASE)
-all: $(App_Name) $(Enclave_Name)
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(App_Name) $(Enclave_Name)
@echo "The project has been built in release hardware mode."
@echo "Please sign the $(Enclave_Name) first with your signing key before you run the $(App_Name) to launch and access the enclave."
@echo "To sign the enclave use the command:"
@@ -172,7 +179,7 @@ all: $(App_Name) $(Enclave_Name)
@echo "You can also sign the enclave using an external signing tool."
@echo "To build the project in simulation mode set SGX_MODE=SIM. To build the project in prerelease mode set SGX_PRERELEASE=1 and SGX_MODE=HW."
else
-all: $(App_Name) $(Signed_Enclave_Name)
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(App_Name) $(Signed_Enclave_Name)
ifeq ($(Build_Mode), HW_DEBUG)
@echo "The project has been built in debug hardware mode."
else ifeq ($(Build_Mode), SIM_DEBUG)
@@ -210,6 +217,9 @@ $(App_Name): App/Enclave_u.o $(App_Cpp_Objects)
@$(CXX) $^ -o $@ $(App_Link_Flags)
@echo "LINK => $@"
+.config_$(Build_Mode)_$(SGX_ARCH):
+ @rm -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) App/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*
+ @touch .config_$(Build_Mode)_$(SGX_ARCH)
######## Enclave Objects ########
@@ -236,4 +246,4 @@ $(Signed_Enclave_Name): $(Enclave_Name)
.PHONY: clean
clean:
- @rm -f $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) App/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*
+ @rm -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) App/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*
diff --git a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/README.txt b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/README.txt
index 3ecd3c3ac3..cd601fa16b 100644
--- a/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/README.txt
+++ b/sgx-jvm/linux-sgx/SampleCode/SampleEnclave/README.txt
@@ -2,7 +2,7 @@
Purpose of SampleEnclave
------------------------
The project demonstrates several fundamental usages of Intel(R) Software Guard
-Extensions (SGX) SDK:
+Extensions (Intel(R) SGX) SDK:
- Initializing and destroying an enclave
- Creating ECALLs or OCALLs
- Calling trusted libraries inside the enclave
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/.cproject b/sgx-jvm/linux-sgx/SampleCode/SealedData/.cproject
new file mode 100644
index 0000000000..16ae3171e6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/.cproject
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/.project b/sgx-jvm/linux-sgx/SampleCode/SealedData/.project
new file mode 100644
index 0000000000..b04a0ddcc2
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/.project
@@ -0,0 +1,28 @@
+
+
+ SealedData
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ org.eclipse.cdt.core.cnature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+ org.eclipse.cdt.core.ccnature
+ com.intel.sgx.sgxnature
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/.settings/language.settings.xml b/sgx-jvm/linux-sgx/SampleCode/SealedData/.settings/language.settings.xml
new file mode 100644
index 0000000000..bb1f9221e3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/.settings/language.settings.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_app/DRM_app.cpp b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_app/DRM_app.cpp
new file mode 100644
index 0000000000..0baa771da2
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_app/DRM_app.cpp
@@ -0,0 +1,307 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+
+#include "ReplayProtectedDRM.h"
+#include "TimeBasedDRM.h"
+#include
+using namespace std;
+
+
+#include
+#include
+#define memcpy_s(dst,dst_size,src,max_count) memcpy(dst,src,max_count)
+#define Sleep(n) usleep((n)*1000)
+
+uint32_t test_replay_protected_drm_operation()
+{
+ cout<=REPLAY_PROTECTED_PAY_LOAD_MAX_RELEASE_VERSION)
+ {
+ cout<<"\tExpected failure."<
+#include "sgx.h"
+#include "sgx_urts.h"
+#include "sgx_uae_service.h"
+#include "DRM_enclave_u.h"
+#include "ReplayProtectedDRM.h"
+#include "sgx_tseal.h"
+
+using namespace std;
+
+#define ENCLAVE_NAME "DRM_enclave.signed.so"
+
+
+ReplayProtectedDRM::ReplayProtectedDRM(): enclave_id(0)
+{
+ int updated = 0;
+ sgx_status_t sgx_ret = SGX_ERROR_UNEXPECTED;
+ sgx_ret = sgx_create_enclave(ENCLAVE_NAME, SGX_DEBUG_FLAG,
+ &launch_token, &updated, &enclave_id, NULL);
+ if (sgx_ret)
+ {
+ cerr<<"cannot create enclave, error code = 0x"<< hex<< sgx_ret <
+using namespace std;
+
+#define ENCLAVE_NAME "DRM_enclave.signed.so"
+
+TimeBasedDRM::TimeBasedDRM(void): enclave_id(0)
+{
+ int updated = 0;
+ sgx_status_t sgx_ret = SGX_ERROR_UNEXPECTED;
+ sgx_ret = sgx_create_enclave(ENCLAVE_NAME, SGX_DEBUG_FLAG,
+ &launch_token, &updated, &enclave_id, NULL);
+ if (sgx_ret)
+ {
+ cerr<<"cannot create enclave, error code = 0x"<< hex<< sgx_ret <
+ 0
+ 0
+ 0x4000
+ 0x10000
+ 1
+ 1
+ 0
+ 0
+ 0xFFFFFFFF
+
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.cpp b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.cpp
new file mode 100644
index 0000000000..3879a682df
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.cpp
@@ -0,0 +1,598 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+
+#include "DRM_enclave_t.h"
+
+#include "sgx_trts.h"
+#include "sgx_tseal.h"
+#include "sgx_tae_service.h"
+#include "string.h"
+#include "../include/sealed_data_defines.h"
+
+#define REPLAY_PROTECTED_SECRET_SIZE 32
+typedef struct _activity_log
+{
+ uint32_t release_version;
+ uint32_t max_release_version;
+}activity_log;
+
+typedef struct _replay_protected_pay_load
+{
+ sgx_mc_uuid_t mc;
+ uint32_t mc_value;
+ uint8_t secret[REPLAY_PROTECTED_SECRET_SIZE];
+ activity_log log;
+}replay_protected_pay_load;
+
+
+
+
+static uint32_t verify_mc(replay_protected_pay_load* data2verify)
+{
+ uint32_t ret = 0;
+ uint32_t mc_value;
+ ret = sgx_read_monotonic_counter(&data2verify->mc,&mc_value);
+ if(ret != SGX_SUCCESS)
+ {
+ switch(ret)
+ {
+ case SGX_ERROR_SERVICE_UNAVAILABLE:
+ /* Architecture Enclave Service Manager is not installed or not
+ working properly.*/
+ break;
+ case SGX_ERROR_SERVICE_TIMEOUT:
+ /* retry the operation later*/
+ break;
+ case SGX_ERROR_BUSY:
+ /* retry the operation later*/
+ break;
+ case SGX_ERROR_MC_NOT_FOUND:
+ /* the the Monotonic Counter ID is invalid.*/
+ break;
+ default:
+ /*other errors*/
+ break;
+ }
+ }
+ else if(mc_value!=data2verify->mc_value)
+ {
+ ret = REPLAY_DETECTED;
+ }
+ return ret;
+}
+
+static uint32_t verify_sealed_data(
+ const sgx_sealed_data_t* data2unseal,
+ replay_protected_pay_load* data_unsealed)
+{
+ uint32_t ret = 0;
+ replay_protected_pay_load temp_unseal;
+ uint32_t unseal_length = sizeof(replay_protected_pay_load);
+
+ ret = sgx_unseal_data(data2unseal, NULL, 0,
+ (uint8_t*)&temp_unseal, &unseal_length);
+ if(ret != SGX_SUCCESS)
+ {
+ switch(ret)
+ {
+ case SGX_ERROR_MAC_MISMATCH:
+ /* MAC of the sealed data is incorrect.
+ The sealed data has been tampered.*/
+ break;
+ case SGX_ERROR_INVALID_ATTRIBUTE:
+ /*Indicates attribute field of the sealed data is incorrect.*/
+ break;
+ case SGX_ERROR_INVALID_ISVSVN:
+ /* Indicates isv_svn field of the sealed data is greater than
+ the enclave’s ISVSVN. This is a downgraded enclave.*/
+ break;
+ case SGX_ERROR_INVALID_CPUSVN:
+ /* Indicates cpu_svn field of the sealed data is greater than
+ the platform’s cpu_svn. enclave is on a downgraded platform.*/
+ break;
+ case SGX_ERROR_INVALID_KEYNAME:
+ /*Indicates key_name field of the sealed data is incorrect.*/
+ break;
+ default:
+ /*other errors*/
+ break;
+ }
+ return ret;
+ }
+ ret = verify_mc(&temp_unseal);
+ if (ret == SGX_SUCCESS)
+ memcpy(data_unsealed,&temp_unseal,sizeof(replay_protected_pay_load));
+ /* remember to clear secret data after been used by memset_s */
+ memset_s(&temp_unseal, sizeof(replay_protected_pay_load), 0,
+ sizeof(replay_protected_pay_load));
+ return ret;
+}
+
+
+
+
+
+uint32_t create_sealed_policy(uint8_t* sealed_log, uint32_t sealed_log_size )
+{
+ uint32_t ret = 0;
+ int busy_retry_times = 2;
+ replay_protected_pay_load data2seal;
+ memset(&data2seal, 0, sizeof(data2seal));
+ uint32_t size = sgx_calc_sealed_data_size(0,
+ sizeof(replay_protected_pay_load));
+ if(sealed_log_size != size)
+ return SGX_ERROR_INVALID_PARAMETER;
+ do{
+ ret = sgx_create_pse_session();
+ }while (ret == SGX_ERROR_BUSY && busy_retry_times--);
+ if (ret != SGX_SUCCESS)
+ return ret;
+ do
+ {
+ ret = sgx_create_monotonic_counter(&data2seal.mc,&data2seal.mc_value);
+ if(ret != SGX_SUCCESS)
+ {
+ switch(ret)
+ {
+ case SGX_ERROR_SERVICE_UNAVAILABLE:
+ /* Architecture Enclave Service Manager is not installed or not
+ working properly.*/
+ break;
+ case SGX_ERROR_SERVICE_TIMEOUT:
+ /* retry the operation later*/
+ break;
+ case SGX_ERROR_BUSY:
+ /* retry the operation later*/
+ break;
+ case SGX_ERROR_MC_OVER_QUOTA:
+ /* SGX Platform Service enforces a quota scheme on the Monotonic
+ Counters a SGX app can maintain. the enclave has reached the
+ quota.*/
+ break;
+ case SGX_ERROR_MC_USED_UP:
+ /* the Monotonic Counter has been used up and cannot create
+ Monotonic Counter anymore.*/
+ break;
+ default:
+ /*other errors*/
+ break;
+ }
+ break;
+ }
+
+ /* secret should be provisioned into enclave after the enclave attests to
+ the secret owner.
+ For example, the server that delivers the encrypted DRM content.
+ In this sample code, a random number is used to represent the secret */
+ ret = sgx_read_rand(data2seal.secret, REPLAY_PROTECTED_SECRET_SIZE);
+ if(ret != SGX_SUCCESS)
+ break;
+ data2seal.log.release_version = 0;
+ /* the secret can be updated for 5 times */
+ data2seal.log.max_release_version =
+ REPLAY_PROTECTED_PAY_LOAD_MAX_RELEASE_VERSION;
+
+ /*sealing the plaintext to ciphertext. The ciphertext can be delivered
+ outside of enclave.*/
+ ret = sgx_seal_data(0, NULL,sizeof(data2seal),(uint8_t*)&data2seal,
+ sealed_log_size, (sgx_sealed_data_t*)sealed_log);
+ } while (0);
+
+ /* remember to clear secret data after been used by memset_s */
+ memset_s(&data2seal, sizeof(replay_protected_pay_load), 0,
+ sizeof(replay_protected_pay_load));
+ sgx_close_pse_session();
+ return ret;
+}
+uint32_t perform_sealed_policy(const uint8_t* sealed_log,
+ uint32_t sealed_log_size)
+{
+ uint32_t ret = 0;
+ int busy_retry_times = 2;
+ replay_protected_pay_load data_unsealed;
+ if(sealed_log_size != sgx_calc_sealed_data_size(0,
+ sizeof(replay_protected_pay_load)))
+ return SGX_ERROR_INVALID_PARAMETER;
+ do{
+ ret = sgx_create_pse_session();
+ }while (ret == SGX_ERROR_BUSY && busy_retry_times--);
+ if (ret != SGX_SUCCESS)
+ return ret;
+ ret = verify_sealed_data((const sgx_sealed_data_t*) sealed_log,
+ &data_unsealed);
+ if (SGX_SUCCESS == ret)
+ {
+ /* release the secret to perform the requested functions,
+ for example, decrypt the DRM content*/
+ }
+ else
+ {
+ /* activity log update fail to verify activity log,
+ refuse to release the secret */
+ }
+ sgx_close_pse_session();
+
+ /* remember to clear secret data after been used by memset_s */
+ memset_s(&data_unsealed, sizeof(data_unsealed),
+ 0, sizeof(replay_protected_pay_load) );
+ return ret;
+
+}
+
+
+uint32_t update_sealed_policy(uint8_t* sealed_log, uint32_t sealed_log_size)
+{
+ uint32_t ret = 0;
+ int busy_retry_times = 2;
+ replay_protected_pay_load data_unsealed;
+ replay_protected_pay_load data2seal;
+ if(sealed_log_size != sgx_calc_sealed_data_size(0,
+ sizeof(replay_protected_pay_load)))
+ return SGX_ERROR_INVALID_PARAMETER;
+ do{
+ ret = sgx_create_pse_session();
+ }while (ret == SGX_ERROR_BUSY && busy_retry_times--);
+ if (ret != SGX_SUCCESS)
+ return ret;
+ do
+ {
+ ret = verify_sealed_data((sgx_sealed_data_t*) sealed_log,
+ &data_unsealed);
+ if(ret != SGX_SUCCESS)
+ break;
+
+ memcpy(&data2seal,&data_unsealed, sizeof(replay_protected_pay_load));
+
+ ret = sgx_increment_monotonic_counter(&data2seal.mc,
+ &data2seal.mc_value);
+ if(ret != SGX_SUCCESS)
+ {
+ switch(ret)
+ {
+ case SGX_ERROR_SERVICE_UNAVAILABLE:
+ /* Architecture Enclave Service Manager is not installed or not
+ working properly.*/
+ break;
+ case SGX_ERROR_SERVICE_TIMEOUT:
+ /* retry the operation*/
+ break;
+ case SGX_ERROR_BUSY:
+ /* retry the operation later*/
+ break;
+ case SGX_ERROR_MC_NOT_FOUND:
+ /* The Monotonic Counter was deleted or invalidated.
+ This might happen under certain conditions.
+ For example, the Monotonic Counter has been deleted, the SGX
+ Platform Service lost its data or the system is under attack. */
+ break;
+ case SGX_ERROR_MC_NO_ACCESS_RIGHT:
+ /* The Monotonic Counter is not accessible by this enclave.
+ This might happen under certain conditions.
+ For example, the SGX Platform Service lost its data or the
+ system is under attack. */
+ break;
+ default:
+ /*other errors*/
+ break;
+ }
+ break;
+ }
+
+ /* If the counter value returns doesn't match the expected value,
+ some other entity has updated the counter, for example, another instance
+ of this enclave. The system might be under attack */
+ if(data2seal.mc_value!= data_unsealed.mc_value+1)
+ {
+ ret = REPLAY_DETECTED;
+ break;
+ }
+
+ if(data2seal.log.release_version >= data2seal.log.max_release_version)
+ {
+ /* the max release version has reached, cannot update. Delete the
+ monotonic_counter, whether the deleting is successful or not. */
+ (void)sgx_destroy_monotonic_counter(&data2seal.mc);
+ ret= MAX_RELEASE_REACHED;
+ break;
+ }
+
+ /* next release versiona */
+ data2seal.log.release_version++;
+ /* release next data2seal.secret, here is a sample */
+ for(int i = 0; i< REPLAY_PROTECTED_SECRET_SIZE; i++)
+ data2seal.secret[i]++;
+
+ /* seal the new log */
+ ret = sgx_seal_data(0, NULL, sizeof(data2seal), (uint8_t*)&data2seal,
+ sealed_log_size, (sgx_sealed_data_t*)sealed_log);
+ } while (0);
+
+ /* remember to clear secret data after been used by memset_s */
+ memset_s(&data_unsealed, sizeof(replay_protected_pay_load), 0,
+ sizeof(replay_protected_pay_load));
+
+ /* remember to clear secret data after been used by memset_s */
+ memset_s(&data2seal, sizeof(replay_protected_pay_load), 0,
+ sizeof(replay_protected_pay_load));
+ sgx_close_pse_session();
+ return ret;
+}
+uint32_t delete_sealed_policy(const uint8_t* sealed_log,
+ uint32_t sealed_log_size)
+{
+ uint32_t ret = 0;
+ int busy_retry_times = 2;
+ replay_protected_pay_load data_unsealed;
+ if(sealed_log_size != sgx_calc_sealed_data_size(0,
+ sizeof(replay_protected_pay_load)))
+ return SGX_ERROR_INVALID_PARAMETER;
+ do{
+ ret = sgx_create_pse_session();
+ }while (ret == SGX_ERROR_BUSY && busy_retry_times--);
+ if (ret != SGX_SUCCESS)
+ return ret;
+ do
+ {
+ ret = verify_sealed_data((const sgx_sealed_data_t*) sealed_log,
+ &data_unsealed);
+ if(ret != SGX_SUCCESS)
+ break;
+ ret = sgx_destroy_monotonic_counter(&data_unsealed.mc);
+ if(ret != SGX_SUCCESS)
+ {
+ switch(ret)
+ {
+ case SGX_ERROR_SERVICE_UNAVAILABLE:
+ /* Architecture Enclave Service Manager is not installed or not
+ working properly.*/
+ break;
+ case SGX_ERROR_SERVICE_TIMEOUT:
+ /* retry the operation later*/
+ break;
+ case SGX_ERROR_BUSY:
+ /* retry the operation later*/
+ break;
+ case SGX_ERROR_MC_NOT_FOUND:
+ /* the the Monotonic Counter ID is invalid.*/
+ break;
+ case SGX_ERROR_MC_NO_ACCESS_RIGHT:
+ /* the Monotonic Counter is not accessible by this enclave.
+ This might happen under certain conditions.
+ For example, the SGX Platform Service lost its data or
+ the system is under attack. */
+ break;
+ default:
+ /*other errors*/
+ break;
+ }
+ }
+ } while (0);
+ /* remember to clear secret data after been used by memset_s */
+ memset_s(&data_unsealed, sizeof(replay_protected_pay_load), 0,
+ sizeof(replay_protected_pay_load));
+ sgx_close_pse_session();
+ return ret;
+}
+
+/* The secret required to render service is stored together with the time based
+policy.If an attack tampered with or destroyed the time based policy data, the
+service won't be rendered */
+#define TIME_BASED_SECRET_SIZE 16
+typedef struct _time_based_pay_load
+{
+ sgx_time_source_nonce_t nonce;
+ sgx_time_t timestamp_base;
+ uint8_t secret[TIME_BASED_SECRET_SIZE];
+ sgx_time_t lease_duration;
+}time_based_pay_load;
+
+
+uint32_t create_time_based_policy(uint8_t* sealed_log,
+ uint32_t sealed_log_size )
+{
+ uint32_t ret = 0;
+ int busy_retry_times = 2;
+ time_based_pay_load payload2seal;
+ memset(&payload2seal, 0, sizeof(time_based_pay_load));
+ uint32_t size = sgx_calc_sealed_data_size(0,sizeof(payload2seal));
+ if(sealed_log_size != size)
+ return SGX_ERROR_INVALID_PARAMETER;
+ do{
+ ret = sgx_create_pse_session();
+ }while (ret == SGX_ERROR_BUSY && busy_retry_times--);
+ if (ret != SGX_SUCCESS)
+ return ret;
+ do
+ {
+ ret = sgx_get_trusted_time(&payload2seal.timestamp_base,
+ &payload2seal.nonce);
+ if(ret != SGX_SUCCESS)
+ {
+ switch(ret)
+ {
+ case SGX_ERROR_SERVICE_UNAVAILABLE:
+ /* Architecture Enclave Service Manager is not installed or not
+ working properly.*/
+ break;
+ case SGX_ERROR_SERVICE_TIMEOUT:
+ /* retry the operation*/
+ break;
+ case SGX_ERROR_BUSY:
+ /* retry the operation later*/
+ break;
+ default:
+ /*other errors*/
+ break;
+ }
+ break;
+ }
+ /*secret should be provisioned into enclave after the enclave attests to
+ the secret owner, for example, the server that delivers the encrypted
+ DRM content.
+ In this sample code, a random number is used to represent the secret*/
+ ret = sgx_read_rand(payload2seal.secret, TIME_BASED_SECRET_SIZE);
+ if(ret != SGX_SUCCESS)
+ break;
+ payload2seal.lease_duration = TIME_BASED_LEASE_DURATION_SECOND;
+ /* sead the pay load */
+ ret = sgx_seal_data(0, NULL,
+ sizeof(payload2seal), (uint8_t*)&payload2seal,
+ sealed_log_size, (sgx_sealed_data_t*)sealed_log);
+ }while(0);
+ /* clear the plaintext secret after used */
+ memset_s(&payload2seal, sizeof(payload2seal), 0,
+ sizeof(time_based_pay_load));
+ sgx_close_pse_session();
+ return ret;
+}
+
+uint32_t perform_time_based_policy(const uint8_t* sealed_log,
+ uint32_t sealed_log_size )
+{
+ uint32_t ret = 0;
+ int busy_retry_times = 2;
+ time_based_pay_load unsealed_data;
+ uint32_t data2seal_length = sizeof(time_based_pay_load);
+
+ uint32_t size = sgx_calc_sealed_data_size(0,sizeof(time_based_pay_load));
+ if(sealed_log_size != size)
+ return SGX_ERROR_INVALID_PARAMETER;
+
+
+ ret = sgx_unseal_data((const sgx_sealed_data_t*)sealed_log, NULL, 0,
+ (uint8_t*)&unsealed_data, &data2seal_length);
+ if(ret != SGX_SUCCESS)
+ {
+ switch(ret)
+ {
+ case SGX_ERROR_MAC_MISMATCH:
+ /* MAC of the sealed data is incorrect. the sealed data has been
+ tampered.*/
+ break;
+ case SGX_ERROR_INVALID_ATTRIBUTE:
+ /*Indicates attribute field of the sealed data is incorrect.*/
+ break;
+ case SGX_ERROR_INVALID_ISVSVN:
+ /* Indicates isv_svn field of the sealed data is greater than the
+ enclave’s ISVSVN. This is a downgraded enclave.*/
+ break;
+ case SGX_ERROR_INVALID_CPUSVN:
+ /* Indicates cpu_svn field of the sealed data is greater than the
+ platform’s cpu_svn. enclave is on a downgraded platform.*/
+ break;
+ case SGX_ERROR_INVALID_KEYNAME:
+ /*Indicates key_name field of the sealed data is incorrect.*/
+ break;
+ default:
+ /*other errors*/
+ break;
+ }
+ return ret;
+ }
+ do{
+ ret = sgx_create_pse_session();
+ }while (ret == SGX_ERROR_BUSY && busy_retry_times--);
+ if (ret != SGX_SUCCESS)
+ {
+ memset_s(&unsealed_data, sizeof(unsealed_data), 0,
+ sizeof(time_based_pay_load));
+ return ret;
+ }
+ do
+ {
+ sgx_time_source_nonce_t nonce = {0};
+ sgx_time_t current_timestamp;
+ ret = sgx_get_trusted_time(¤t_timestamp, &nonce);
+ if(ret != SGX_SUCCESS)
+ {
+ switch(ret)
+ {
+ case SGX_ERROR_SERVICE_UNAVAILABLE:
+ /* Architecture Enclave Service Manager is not installed or not
+ working properly.*/
+ break;
+ case SGX_ERROR_SERVICE_TIMEOUT:
+ /* retry the operation*/
+ break;
+ case SGX_ERROR_BUSY:
+ /* retry the operation later*/
+ break;
+ default:
+ /*other errors*/
+ break;
+ }
+ break;
+ }
+ /*source nonce must be the same, otherwise time source is changed and
+ the two timestamps are not comparable.*/
+ if (memcmp(&nonce,&unsealed_data.nonce,
+ sizeof(sgx_time_source_nonce_t)))
+ {
+ ret = TIMESOURCE_CHANGED;
+ break;
+ }
+
+ /* This should not happen.
+ SGX Platform service guarantees that the time stamp reading moves
+ forward, unless the time source is changed.*/
+ if(current_timestamp < unsealed_data.timestamp_base)
+ {
+ ret = TIMESTAMP_UNEXPECTED;
+ break;
+ }
+ /*compare lease_duration and timestamp_diff
+ if lease_duration is less than difference of current time and base time,
+ lease tern has expired.*/
+ if(current_timestamp - unsealed_data.timestamp_base >
+ unsealed_data.lease_duration)
+ {
+ ret = LEASE_EXPIRED;
+ break;
+ }
+ }while(0);
+ if (SGX_SUCCESS == ret)
+ {
+ /* release the secret to render service, for example, decrypt the DRM
+ content*/
+ }
+ else
+ {
+ /* The secret is not released. the service won't be rendered and the DRM
+ content can be deleted.*/
+ }
+ /* clear the plaintext secret after used */
+ memset_s(&unsealed_data, sizeof(unsealed_data), 0,
+ sizeof(time_based_pay_load));
+ sgx_close_pse_session();
+ return ret;
+}
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.edl b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.edl
new file mode 100644
index 0000000000..734c069443
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.edl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+enclave {
+ from "sgx_tae_service.edl" import *;
+ trusted {
+ /* define ECALLs here. */
+ public uint32_t create_sealed_policy([out, size=sealed_log_size]
+ uint8_t* sealed_log, uint32_t sealed_log_size );
+ public uint32_t perform_sealed_policy([in, size=sealed_log_size]
+ const uint8_t* sealed_log, uint32_t sealed_log_size);
+ public uint32_t update_sealed_policy([in,out, size=sealed_log_size]
+ uint8_t* sealed_log, uint32_t sealed_log_size);
+ public uint32_t delete_sealed_policy([in, size=sealed_log_size]
+ const uint8_t* sealed_log, uint32_t sealed_log_size);
+ public uint32_t create_time_based_policy([out, size=sealed_log_size]
+ uint8_t* sealed_log, uint32_t sealed_log_size );
+ public uint32_t perform_time_based_policy([in, size=sealed_log_size]
+ const uint8_t* sealed_log, uint32_t sealed_log_size );
+ };
+};
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.lds b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.lds
new file mode 100644
index 0000000000..59398b53ab
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave.lds
@@ -0,0 +1,9 @@
+DRM_enclave.so
+{
+ global:
+ g_global_data_sim;
+ g_global_data;
+ enclave_entry;
+ local:
+ *;
+};
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave_private.pem b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave_private.pem
new file mode 100644
index 0000000000..0213c3b29a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/DRM_enclave/DRM_enclave_private.pem
@@ -0,0 +1,39 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIG5AIBAAKCAYEA6z8U4C+5v4kDzMO8cn7PkXrql2VVaKqF2cygZgfhKpaDTT67
+QkXIcOW4EbBYFlQffQYH528lmaETZD+WXFrMjlb/l51XRJT9dXqAcV+rhIAd4hTZ
+onWjjQVAwwuiLvcknjk8KvP7scLKh+8JfN5SSoY4iNPL1/9E59Kkfo7kbLAMLEKo
+Lp7H26vU8euSD/5gbnz21bIwpsRHnZcTQqMK2McSscCjuzpEg3a7ebEo0bHeykjN
+X/0Ci6Ef9h42XdoyMR7bXVCf97m9Y7wMbPFodmI4yBLoTnRL1dp4rgV+CvOv5bUX
+lYnZVHfkCAuhiFh+mPmct6dBvpXcA38/0CIHn0X6B393r5G5EyttcDi8COUWR/gu
+wo2j5cDVDgvDptR90gOCm630jRvN8LDA/UDBxCX4SGLdTupg+vmQZ63xaAcLJ4la
+1vQrta7YWiLBzn21KXN+uSHaaphlbcNNtE2iR+Cy/SMTUsPuNgS5QZS4z0Joi0UT
+AbW+MX+1+KlanX6dAgEDAoIBgQCc1LiVdSZ/sK0zLShMVIpg/Jxk7jjwca6RMxWZ
+WpYcZFeI1HzW2TBLQ9ALyuVkOBT+BAVE9MO7wLeYKmQ9kd20Of+6aOTYY1OjpwBL
+lR0DABPsDeZsTm0IrisssmwfT22+0NLHTVJ2gdxan1uolDbcWXsF4oflVNiajG2p
+tJhIdV1y1xrJvy/nx+NL8mFf/ur0U085IXXEgtppD2IsbLHl2gx2gG0nfC2s+dJR
+IMXhIT8xhd4//gGya2qkFCQ+kXWEL6vwbPK+Ki/Vv/64357294JUIqUajbqtlMQs
+oDiatOKgl6KvnjikDFLXwV1T7Y9VsQyDdiEFrFhKunQrYe15euCT21OxAl8JSLF9
+7VO6SzrfMxL4+gOIotCuTuXnu8wgJSNehKQLTjmVRjHxSx+aMnstiXQAtE95HXxV
+wSmpxlKL3dZcho0RU19Nm6Ctb8ZRT6eTRiUDAcC61oPb7nbqq7xWhEBniTRJwW9d
+eOwsy1Ua7/dkWA3F0jqu+WxO3SsCgcEA+EheAwG6GJ+4q2cPTqu11jFbjTWBjPQS
+pH7vGdb9w+5ZfdokJw+NPZ9ZS+UNqRliLQr1u55g/pZxBqvE0Z7VqpP7jo2gutqS
+WGAOkwDudF39h8zoGee1cSI7bTIHD9XCp9xbsUdIAxZB9pfnC7LcFZjGRE20daqD
+onpcPQiHX0a1IIalW8eI+xH2NFiBHlTeQsRZZZYJFFVX9ilywYug9L6VRIPWFzHw
+TTqOZqlO8DVK41s76nRQEea6FpA7ftKNAoHBAPKO+3GrecHavPe0/wj2RC29mbyp
+bxmroSz8Y1E+K172Anb3f2cM9yDGDniEh+FaxWtlFDbXrzd85oy7zL1wTb55rZso
+2WszmCzeVKBTz/0WQHFeqjMu6SeqYJtjY7tlCPnvcdyftnkQNZovjwedNkdBeT/G
++tgxZiLS+aoDq4oW2jU18/BizyCf0zFgz6wBLWy3qfaimdHAbF9YFSjcTvMggzbY
+3KBEL3ooA862B5vcHf+B5AC9WXbdo9ui/KhgUQKBwQClhZQCASa7FSXHmgo0cnk5
+dj0IzlZd+AxtqfS75KktSZD+kW1vX7N+ajuH7gkbZkFzXKPSaZX/DvYEcoM2aePH
+DVJfCRXR5ww66rRiAJ74PqkFM0Vmmnj2FtJIzAS1OSxv6D0g2jACDtakZUSydz1j
+uy7YM82jxwJsUZLTWwTqLyNrBG49L7CnYU7NkFYUOJQsguZDuVti44/5cPcrsmtN
+1GODAo66IUreJwmZxjSgI4dCPNKcTYq2mdFkYCep4bMCgcEAobSnoRz71pHTT83/
+W07YHn5mfcZKER0WHf2Xi37HlKQBpKT/mgikwIQJpa2v65HY8kNizzp0z6iZsyfd
+06Az1FEeZ3CQ8iJlcz7jFY01U2Qq9j8cIh9GGnGVvOztJ5iwpp+hPb/O+2AjvB+0
+r74kL4D7f9n8kCDuweH7xq0dBrnmziP39Zc0wGqMy5XfyADI8yUb+cG74Sry6jq4
+xeg0ohWszzs9wC10/BqtNHlaZ+gT/6vtVdOQ+ekX58H9xZWLAoHBANWGCebDFakk
+3DQNsd/U1U0j43uLmbxUAvuA9kNr/sHl7TiZH7dWg/IGZHmHh6tlCTvx9ylTSddR
+/x8vVS8OEzujZqfmW0ZYXp153cQIgsuPNWOqRildGo/5NZ08vCFN4kdEMO6E3v/i
+Ph0rq8CWnkwTgMjw3ohHdgDEOq0Spvm2pt7DmlcNXas6YImBEjetSXOzQ02GWSma
+8zeqi62mm8d75KhGLTgMYo7xZpXzxnQnUmRoh/c1XLCrnoj3dXK6kw==
+-----END RSA PRIVATE KEY-----
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/Makefile b/sgx-jvm/linux-sgx/SampleCode/SealedData/Makefile
new file mode 100644
index 0000000000..07f6819ca0
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/Makefile
@@ -0,0 +1,248 @@
+#
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+
+######## SGX SDK Settings ########
+
+SGX_SDK ?= /opt/intel/sgxsdk
+SGX_MODE ?= HW
+SGX_ARCH ?= x64
+SGX_DEBUG ?= 1
+
+ifeq ($(shell getconf LONG_BIT), 32)
+ SGX_ARCH := x86
+else ifeq ($(findstring -m32, $(CXXFLAGS)), -m32)
+ SGX_ARCH := x86
+endif
+
+ifeq ($(SGX_ARCH), x86)
+ SGX_COMMON_CFLAGS := -m32
+ SGX_LIBRARY_PATH := $(SGX_SDK)/lib
+ SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x86/sgx_sign
+ SGX_EDGER8R := $(SGX_SDK)/bin/x86/sgx_edger8r
+else
+ SGX_COMMON_CFLAGS := -m64
+ SGX_LIBRARY_PATH := $(SGX_SDK)/lib64
+ SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x64/sgx_sign
+ SGX_EDGER8R := $(SGX_SDK)/bin/x64/sgx_edger8r
+endif
+
+ifeq ($(SGX_DEBUG), 1)
+ifeq ($(SGX_PRERELEASE), 1)
+$(error Cannot set SGX_DEBUG and SGX_PRERELEASE at the same time!!)
+endif
+endif
+
+ifeq ($(SGX_DEBUG), 1)
+ SGX_COMMON_CFLAGS += -O0 -g
+else
+ SGX_COMMON_CFLAGS += -O2
+endif
+
+######## App Settings ########
+
+ifneq ($(SGX_MODE), HW)
+ Urts_Library_Name := sgx_urts_sim
+else
+ Urts_Library_Name := sgx_urts
+endif
+
+App_Cpp_Files := $(wildcard DRM_app/*.cpp)
+App_Include_Paths := -I$(SGX_SDK)/include
+
+App_C_Flags := $(SGX_COMMON_CFLAGS) -fPIC -Wno-attributes $(App_Include_Paths)
+
+# Three configuration modes - Debug, prerelease, release
+# Debug - Macro DEBUG enabled.
+# Prerelease - Macro NDEBUG and EDEBUG enabled.
+# Release - Macro NDEBUG enabled.
+ifeq ($(SGX_DEBUG), 1)
+ App_C_Flags += -DDEBUG -UNDEBUG -UEDEBUG
+else ifeq ($(SGX_PRERELEASE), 1)
+ App_C_Flags += -DNDEBUG -DEDEBUG -UDEBUG
+else
+ App_C_Flags += -DNDEBUG -UEDEBUG -UDEBUG
+endif
+
+App_Cpp_Flags := $(App_C_Flags) -std=c++11
+App_Link_Flags := $(SGX_COMMON_CFLAGS) -L$(SGX_LIBRARY_PATH) -l$(Urts_Library_Name) -L. -lpthread -Wl,-rpath=$(CURDIR)/sample_libcrypto -Wl,-rpath=$(CURDIR)
+
+ifneq ($(SGX_MODE), HW)
+ App_Link_Flags += -lsgx_uae_service_sim
+else
+ App_Link_Flags += -lsgx_uae_service
+endif
+
+App_Cpp_Objects := $(App_Cpp_Files:.cpp=.o)
+
+App_Name := app
+
+######## Enclave Settings ########
+
+ifneq ($(SGX_MODE), HW)
+ Trts_Library_Name := sgx_trts_sim
+ Service_Library_Name := sgx_tservice_sim
+else
+ Trts_Library_Name := sgx_trts
+ Service_Library_Name := sgx_tservice
+endif
+Crypto_Library_Name := sgx_tcrypto
+
+Enclave_Cpp_Files := DRM_enclave/DRM_enclave.cpp
+Enclave_Include_Paths := -I$(SGX_SDK)/include -I$(SGX_SDK)/include/tlibc -I$(SGX_SDK)/include/libcxx
+
+CC_BELOW_4_9 := $(shell expr "`$(CC) -dumpversion`" \< "4.9")
+ifeq ($(CC_BELOW_4_9), 1)
+ Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -ffunction-sections -fdata-sections -fstack-protector
+else
+ Enclave_C_Flags := $(SGX_COMMON_CFLAGS) -nostdinc -fvisibility=hidden -fpie -ffunction-sections -fdata-sections -fstack-protector-strong
+endif
+Enclave_C_Flags += $(Enclave_Include_Paths)
+Enclave_Cpp_Flags := $(Enclave_C_Flags) -std=c++11 -nostdinc++
+
+# To generate a proper enclave, it is recommended to follow below guideline to link the trusted libraries:
+# 1. Link sgx_trts with the `--whole-archive' and `--no-whole-archive' options,
+# so that the whole content of trts is included in the enclave.
+# 2. For other libraries, you just need to pull the required symbols.
+# Use `--start-group' and `--end-group' to link these libraries.
+# Do NOT move the libraries linked with `--start-group' and `--end-group' within `--whole-archive' and `--no-whole-archive' options.
+# Otherwise, you may get some undesirable errors.
+Enclave_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) \
+ -Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \
+ -Wl,--start-group -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \
+ -Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \
+ -Wl,-pie,-eenclave_entry -Wl,--export-dynamic \
+ -Wl,--defsym,__ImageBase=0 -Wl,--gc-sections \
+ -Wl,--version-script=DRM_enclave/DRM_enclave.lds
+
+Enclave_Cpp_Objects := $(Enclave_Cpp_Files:.cpp=.o)
+
+Enclave_Name := DRM_enclave.so
+Signed_Enclave_Name := DRM_enclave.signed.so
+Enclave_Config_File := DRM_enclave/DRM_enclave.config.xml
+
+ifeq ($(SGX_MODE), HW)
+ifeq ($(SGX_DEBUG), 1)
+ Build_Mode = HW_DEBUG
+else ifeq ($(SGX_PRERELEASE), 1)
+ Build_Mode = HW_PRERELEASE
+else
+ Build_Mode = HW_RELEASE
+endif
+else
+ifeq ($(SGX_DEBUG), 1)
+ Build_Mode = SIM_DEBUG
+else ifeq ($(SGX_PRERELEASE), 1)
+ Build_Mode = SIM_PRERELEASE
+else
+ Build_Mode = SIM_RELEASE
+endif
+endif
+
+
+.PHONY: all run
+
+ifeq ($(Build_Mode), HW_RELEASE)
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(App_Name) $(Enclave_Name)
+ @echo "The project has been built in release hardware mode."
+ @echo "Please sign the $(Enclave_Name) first with your signing key before you run the $(App_Name) to launch and access the enclave."
+ @echo "To sign the enclave use the command:"
+ @echo " $(SGX_ENCLAVE_SIGNER) sign -key -enclave $(Enclave_Name) -out <$(Signed_Enclave_Name)> -config $(Enclave_Config_File)"
+ @echo "You can also sign the enclave using an external signing tool."
+ @echo "To build the project in simulation mode set SGX_MODE=SIM. To build the project in prerelease mode set SGX_PRERELEASE=1 and SGX_MODE=HW."
+else
+all: .config_$(Build_Mode)_$(SGX_ARCH) $(App_Name) $(Signed_Enclave_Name)
+ifeq ($(Build_Mode), HW_DEBUG)
+ @echo "The project has been built in debug hardware mode."
+else ifeq ($(Build_Mode), SIM_DEBUG)
+ @echo "The project has been built in debug simulation mode."
+else ifeq ($(Build_Mode), HW_PRERELEASE)
+ @echo "The project has been built in pre-release hardware mode."
+else ifeq ($(Build_Mode), SIM_PRERELEASE)
+ @echo "The project has been built in pre-release simulation mode."
+else
+ @echo "The project has been built in release simulation mode."
+endif
+endif
+
+run: all
+ifneq ($(Build_Mode), HW_RELEASE)
+ @$(CURDIR)/$(App_Name)
+ @echo "RUN => $(App_Name) [$(SGX_MODE)|$(SGX_ARCH), OK]"
+endif
+
+.config_$(Build_Mode)_$(SGX_ARCH):
+ @rm -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) DRM_app/DRM_enclave_u.* $(Enclave_Cpp_Objects) DRM_enclave/DRM_enclave_t.*
+ @touch .config_$(Build_Mode)_$(SGX_ARCH)
+
+######## App Objects ########
+
+DRM_app/DRM_enclave_u.c: $(SGX_EDGER8R) DRM_enclave/DRM_enclave.edl
+ @cd DRM_app && $(SGX_EDGER8R) --untrusted ../DRM_enclave/DRM_enclave.edl --search-path ../DRM_enclave --search-path $(SGX_SDK)/include
+ @echo "GEN => $@"
+
+DRM_app/DRM_enclave_u.o: DRM_app/DRM_enclave_u.c
+ @$(CC) $(App_C_Flags) -c $< -o $@
+ @echo "CC <= $<"
+
+DRM_app/%.o: DRM_app/%.cpp
+ @$(CXX) $(App_Cpp_Flags) -c $< -o $@
+ @echo "CXX <= $<"
+
+$(App_Name): DRM_app/DRM_enclave_u.o $(App_Cpp_Objects)
+ @$(CXX) $^ -o $@ $(App_Link_Flags)
+ @echo "LINK => $@"
+
+######## Enclave Objects ########
+
+DRM_enclave/DRM_enclave_t.c: $(SGX_EDGER8R) DRM_enclave/DRM_enclave.edl
+ @cd DRM_enclave && $(SGX_EDGER8R) --trusted ../DRM_enclave/DRM_enclave.edl --search-path ../DRM_enclave --search-path $(SGX_SDK)/include
+ @echo "GEN => $@"
+
+DRM_enclave/DRM_enclave_t.o: DRM_enclave/DRM_enclave_t.c
+ @$(CC) $(Enclave_C_Flags) -c $< -o $@
+ @echo "CC <= $<"
+
+DRM_enclave/%.o: DRM_enclave/%.cpp
+ @$(CXX) $(Enclave_Cpp_Flags) -c $< -o $@
+ @echo "CXX <= $<"
+
+$(Enclave_Name): DRM_enclave/DRM_enclave_t.o $(Enclave_Cpp_Objects)
+ @$(CXX) $^ -o $@ $(Enclave_Link_Flags)
+ @echo "LINK => $@"
+
+$(Signed_Enclave_Name): $(Enclave_Name)
+ @$(SGX_ENCLAVE_SIGNER) sign -key DRM_enclave/DRM_enclave_private.pem -enclave $(Enclave_Name) -out $@ -config $(Enclave_Config_File)
+ @echo "SIGN => $@"
+
+.PHONY: clean
+
+clean:
+ @rm -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) DRM_app/DRM_enclave_u.* $(Enclave_Cpp_Objects) DRM_enclave/DRM_enclave_t.*
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/README.txt b/sgx-jvm/linux-sgx/SampleCode/SealedData/README.txt
new file mode 100644
index 0000000000..7c1723dd3c
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/README.txt
@@ -0,0 +1,29 @@
+----------------------------
+Purpose of SealedData
+----------------------------
+The project demonstrates:
+- How an application enclave can encrypt and integrity-protect enclave secrets
+to store them outside the enclave
+- How an application enclave can use Monotonic Counter to implement
+replay-protected policy, and Trusted Time to enforce time based policy
+
+------------------------------------
+How to Build/Execute the Sample Code
+------------------------------------
+1. Install Intel(R) Software Guard Extensions (Intel(R) SGX) SDK for Linux* OS
+2. Build the project with the prepared Makefile:
+ a. Hardware Mode, Debug build:
+ $ make
+ b. Hardware Mode, Pre-release build:
+ $ make SGX_PRERELEASE=1 SGX_DEBUG=0
+ c. Hardware Mode, Release build:
+ $ make SGX_DEBUG=0
+ d. Simulation Mode, Debug build:
+ $ make SGX_MODE=SIM
+ e. Simulation Mode, Pre-release build:
+ $ make SGX_MODE=SIM SGX_PRERELEASE=1 SGX_DEBUG=0
+ f. Simulation Mode, Release build:
+ $ make SGX_MODE=SIM SGX_DEBUG=0
+3. Execute the binary directly:
+ $ ./app
+4. Remember to "make clean" before switching build mode
diff --git a/sgx-jvm/linux-sgx/SampleCode/SealedData/include/sealed_data_defines.h b/sgx-jvm/linux-sgx/SampleCode/SealedData/include/sealed_data_defines.h
new file mode 100644
index 0000000000..dcf569cbc9
--- /dev/null
+++ b/sgx-jvm/linux-sgx/SampleCode/SealedData/include/sealed_data_defines.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+
+#pragma once
+#ifndef _SEALED_DATA_DEFINES_H_
+#define _SEALED_DATA_DEFINES_H_
+
+#include "sgx_error.h"
+
+#define PLATFORM_SERVICE_DOWNGRADED 0xF001
+
+#define REPLAY_DETECTED 0xF002
+#define MAX_RELEASE_REACHED 0xF003
+
+/* equal to sgx_calc_sealed_data_size(0,sizeof(replay_protected_pay_load))) */
+#define SEALED_REPLAY_PROTECTED_PAY_LOAD_SIZE 620
+#define REPLAY_PROTECTED_PAY_LOAD_MAX_RELEASE_VERSION 5
+
+#define TIMESOURCE_CHANGED 0xF004
+#define TIMESTAMP_UNEXPECTED 0xF005
+#define LEASE_EXPIRED 0xF006
+
+/* equal tosgx_calc_sealed_data_size(0,sizeof(time_based_pay_load))) */
+#define TIME_BASED_PAY_LOAD_SIZE 624
+#define TIME_BASED_LEASE_DURATION_SECOND 3
+
+#endif
diff --git a/sgx-jvm/linux-sgx/buildenv.mk b/sgx-jvm/linux-sgx/buildenv.mk
index 2a2295285e..dacbcb2244 100644
--- a/sgx-jvm/linux-sgx/buildenv.mk
+++ b/sgx-jvm/linux-sgx/buildenv.mk
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -29,6 +29,7 @@
#
#
+
# -----------------------------------------------------------------------------
# Function : parent-dir
# Arguments: 1: path
@@ -66,7 +67,12 @@ INCLUDE :=
CUR_DIR := $(realpath $(call parent-dir,$(lastword $(wordlist 2,$(words $(MAKEFILE_LIST)),x $(MAKEFILE_LIST)))))
# turn on stack protector for SDK
-COMMON_FLAGS += -fstack-protector
+CC_BELOW_4_9 := $(shell expr "`$(CC) -dumpversion`" \< "4.9")
+ifeq ($(CC_BELOW_4_9), 1)
+ COMMON_FLAGS += -fstack-protector
+else
+ COMMON_FLAGS += -fstack-protector-strong
+endif
ifdef DEBUG
COMMON_FLAGS += -ggdb -DDEBUG -UNDEBUG
@@ -79,6 +85,8 @@ ifdef SE_SIM
COMMON_FLAGS += -DSE_SIM
endif
+COMMON_FLAGS += -ffunction-sections -fdata-sections
+
# turn on compiler warnings as much as possible
COMMON_FLAGS += -Wall -Wextra -Winit-self -Wpointer-arith -Wreturn-type \
-Waddress -Wsequence-point -Wformat-security \
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/ae_ipp.h b/sgx-jvm/linux-sgx/common/inc/internal/ae_ipp.h
index 3fad09cdff..dc652a5a14 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/ae_ipp.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/ae_ipp.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/arch.h b/sgx-jvm/linux-sgx/common/inc/internal/arch.h
index 624276e920..1b2cb2a2dd 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/arch.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/arch.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -44,13 +44,10 @@
#pragma pack(push, 1)
-#if !defined(__cplusplus) || defined(__INTEL_COMPILER) || (defined(SE_GNU) && !defined(__GXX_EXPERIMENTAL_CXX0X__))
+#define STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
#define _ASSERT_CONCAT(a, b) a##b
#define ASSERT_CONCAT(a, b) _ASSERT_CONCAT(a, b)
-#define se_static_assert(e) typedef char ASSERT_CONCAT(assert_line, __LINE__)[(e)?1:-1]
-#else
-#define se_static_assert(e) static_assert(e,#e)
-#endif
+#define se_static_assert(e) typedef char ASSERT_CONCAT(assert_line, __LINE__)[(e)?1:-1] STATIC_ASSERT_UNUSED_ATTRIBUTE
se_static_assert(sizeof(sgx_key_request_t) == 512);
se_static_assert(sizeof(sgx_target_info_t) == 512);
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/cpprt_internal.h b/sgx-jvm/linux-sgx/common/inc/internal/cpprt_internal.h
index 7916930f52..8bbda20100 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/cpprt_internal.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/cpprt_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/cpputil.h b/sgx-jvm/linux-sgx/common/inc/internal/cpputil.h
index 9a0cec13c2..e3375522fe 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/cpputil.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/cpputil.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/cpuid.h b/sgx-jvm/linux-sgx/common/inc/internal/cpuid.h
index b3ee8f5db9..a16c45db2d 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/cpuid.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/cpuid.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/dh.h b/sgx-jvm/linux-sgx/common/inc/internal/dh.h
index 76c347f588..a3fff26aad 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/dh.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/dh.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/driver_api.h b/sgx-jvm/linux-sgx/common/inc/internal/driver_api.h
index c0e20232e7..ba02aa4f04 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/driver_api.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/driver_api.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/ecp_interface.h b/sgx-jvm/linux-sgx/common/inc/internal/ecp_interface.h
index d3b7515cd5..d3e1150729 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/ecp_interface.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/ecp_interface.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/elf_util.h b/sgx-jvm/linux-sgx/common/inc/internal/elf_util.h
index 408c42f642..40296309ac 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/elf_util.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/elf_util.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/enclave_creator.h b/sgx-jvm/linux-sgx/common/inc/internal/enclave_creator.h
index c7f25088de..3cc5c6371c 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/enclave_creator.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/enclave_creator.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/global_data.h b/sgx-jvm/linux-sgx/common/inc/internal/global_data.h
index be1e97eec8..cdebf487e4 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/global_data.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/global_data.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/global_init.h b/sgx-jvm/linux-sgx/common/inc/internal/global_init.h
index d7a36530cb..5bee7de52d 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/global_init.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/global_init.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/inst.h b/sgx-jvm/linux-sgx/common/inc/internal/inst.h
index cd09c5a939..d5af1200d4 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/inst.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/inst.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/ipp_wrapper.h b/sgx-jvm/linux-sgx/common/inc/internal/ipp_wrapper.h
index 242a041c3b..da6cb384e0 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/ipp_wrapper.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/ipp_wrapper.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/linux/cpuid_gnu.h b/sgx-jvm/linux-sgx/common/inc/internal/linux/cpuid_gnu.h
index 5fd907162f..06473f9278 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/linux/cpuid_gnu.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/linux/cpuid_gnu.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/linux/linux-regs.h b/sgx-jvm/linux-sgx/common/inc/internal/linux/linux-regs.h
index 1ebed38720..b7396f389e 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/linux/linux-regs.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/linux/linux-regs.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/linux/xsave_gnu.h b/sgx-jvm/linux-sgx/common/inc/internal/linux/xsave_gnu.h
index 5466ba5de6..c653f0c867 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/linux/xsave_gnu.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/linux/xsave_gnu.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/metadata.h b/sgx-jvm/linux-sgx/common/inc/internal/metadata.h
index 031af632e2..8fa482563e 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/metadata.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/metadata.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -38,7 +38,10 @@
/* version of metadata */
#define MAJOR_VERSION 1 /* MAJOR_VERSION should not larger than 0ffffffff */
-#define MINOR_VERSION 3 /* MINOR_VERSION should not larger than 0ffffffff */
+#define MINOR_VERSION 4 /* MINOR_VERSION should not larger than 0ffffffff */
+
+#define SGX_1_5_MAJOR_VERSION 1 //MAJOR_VERSION should not larger than 0ffffffff
+#define SGX_1_5_MINOR_VERSION 3 //MINOR_VERSION should not larger than 0ffffffff
#define META_DATA_MAKE_VERSION(major, minor) (((uint64_t)major)<<32 | minor)
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/oal/uae_oal_api.h b/sgx-jvm/linux-sgx/common/inc/internal/oal/uae_oal_api.h
index 42c917dddb..8d305d0017 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/oal/uae_oal_api.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/oal/uae_oal_api.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/routine.h b/sgx-jvm/linux-sgx/common/inc/internal/routine.h
index c753b2e2bf..c08884a7d0 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/routine.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/routine.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -52,4 +52,4 @@ sgx_status_t SGXAPI sgx_ecall(const sgx_enclave_id_t enclave_id, const int proc,
}
#endif
-#endif
\ No newline at end of file
+#endif
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/rts.h b/sgx-jvm/linux-sgx/common/inc/internal/rts.h
index 61a7711501..2d62d92d9c 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/rts.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/rts.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/rts_cmd.h b/sgx-jvm/linux-sgx/common/inc/internal/rts_cmd.h
index 671c2c90d1..8eaea8c657 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/rts_cmd.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/rts_cmd.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_atomic.h b/sgx-jvm/linux-sgx/common/inc/internal/se_atomic.h
index f4de235e8d..c471ea266e 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_atomic.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_atomic.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,26 +35,24 @@
inline uint32_t se_atomic_inc(volatile uint32_t *mem)
{
- int ret;
-
- __asm__ __volatile__ ("lock; xaddl %0, %1"
- : "=r" (ret), "=m" (*mem)
- : "0" (1), "m" (*mem)
- );
-
- return ret + 1;
+ return __sync_add_and_fetch(mem, 1);
}
inline uint32_t se_atomic_dec(uint32_t volatile *mem)
{
- int ret;
-
- __asm__ __volatile__ ("lock; xaddl %0, %1"
- : "=r" (ret), "=m" (*mem)
- : "0" (-1), "m" (*mem)
- );
-
- return ret - 1;
+ return __sync_sub_and_fetch(mem, 1);
}
+inline uint64_t se_atomic_inc64(volatile uint64_t *mem)
+{
+ return __sync_add_and_fetch(mem, 1);
+}
+
+inline uint64_t se_atomic_dec64(uint64_t volatile *mem)
+{
+ return __sync_sub_and_fetch(mem, 1);
+}
+
+
+
#endif
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_cdefs.h b/sgx-jvm/linux-sgx/common/inc/internal/se_cdefs.h
index 12be808120..c1572add78 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_cdefs.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_cdefs.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -93,10 +93,11 @@
#endif
#define SGX_ACCESS_VERSION(libname, num) \
- MY_EXTERN const char *sgx_##libname##_version; \
- const char * __attribute__((destructor)) libname##_access_version_dummy##num() \
- { \
- return sgx_##libname##_version; \
+ MY_EXTERN char sgx_##libname##_version[]; \
+ MY_EXTERN char * __attribute__((destructor)) libname##_access_version_dummy##num() \
+ { \
+ sgx_##libname##_version[0] = 's'; \
+ return sgx_##libname##_version; \
}
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_cpu_feature.h b/sgx-jvm/linux-sgx/common/inc/internal/se_cpu_feature.h
index 8b3edbfa66..48e281a681 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_cpu_feature.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_cpu_feature.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_cpu_feature_defs.h b/sgx-jvm/linux-sgx/common/inc/internal/se_cpu_feature_defs.h
index 20983b96d7..581168f25d 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_cpu_feature_defs.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_cpu_feature_defs.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_debugger_lib.h b/sgx-jvm/linux-sgx/common/inc/internal/se_debugger_lib.h
index 97e4e36546..c9eb6c4001 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_debugger_lib.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_debugger_lib.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_enclave_type.h b/sgx-jvm/linux-sgx/common/inc/internal/se_enclave_type.h
index bd450e3918..f3c24f75c9 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_enclave_type.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_enclave_type.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_error_internal.h b/sgx-jvm/linux-sgx/common/inc/internal/se_error_internal.h
index b98aed81d7..4f4e493e8b 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_error_internal.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_error_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_event.h b/sgx-jvm/linux-sgx/common/inc/internal/se_event.h
index 3672fd3246..354f78c5c3 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_event.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_event.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_lock.hpp b/sgx-jvm/linux-sgx/common/inc/internal/se_lock.hpp
index 68aedf2cf5..c7bd1d16a5 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_lock.hpp
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_lock.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_macro.h b/sgx-jvm/linux-sgx/common/inc/internal/se_macro.h
index 4b465ac71b..88866a0066 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_macro.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_macro.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -37,4 +37,4 @@
#define SGX_HYPERV_ECO
#endif
- #endif
\ No newline at end of file
+ #endif
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_map.h b/sgx-jvm/linux-sgx/common/inc/internal/se_map.h
index 2b1889a838..69234f1263 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_map.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_map.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_memcpy.h b/sgx-jvm/linux-sgx/common/inc/internal/se_memcpy.h
index f7cd259993..ce2984b678 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_memcpy.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_memcpy.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_memory.h b/sgx-jvm/linux-sgx/common/inc/internal/se_memory.h
index 9b707e0051..25737d35f1 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_memory.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_memory.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_page_attr.h b/sgx-jvm/linux-sgx/common/inc/internal/se_page_attr.h
index 9bafac8af5..1a27b54ed5 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_page_attr.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_page_attr.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_quote_internal.h b/sgx-jvm/linux-sgx/common/inc/internal/se_quote_internal.h
index ab2ea160f4..73d2368f13 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_quote_internal.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_quote_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_rwlock.h b/sgx-jvm/linux-sgx/common/inc/internal/se_rwlock.h
index 62e15b60c1..6f4b5c54b8 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_rwlock.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_rwlock.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_stdio.h b/sgx-jvm/linux-sgx/common/inc/internal/se_stdio.h
index 9f5dc3adab..d516142d30 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_stdio.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_stdio.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_string.h b/sgx-jvm/linux-sgx/common/inc/internal/se_string.h
index e5185617df..b36c292516 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_string.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_string.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_thread.h b/sgx-jvm/linux-sgx/common/inc/internal/se_thread.h
index d6432b80b1..bac13d9452 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_thread.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_thread.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_time.h b/sgx-jvm/linux-sgx/common/inc/internal/se_time.h
index d1492021ea..d623ee2c2d 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_time.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_time.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_trace.h b/sgx-jvm/linux-sgx/common/inc/internal/se_trace.h
index 68967939d7..bae2630973 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_trace.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_trace.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_types.h b/sgx-jvm/linux-sgx/common/inc/internal/se_types.h
index c3b29e047a..f5e414692c 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_types.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_types.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_vendor.h b/sgx-jvm/linux-sgx/common/inc/internal/se_vendor.h
index ce2f1674bc..2896f6bea4 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_vendor.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_vendor.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_version.h b/sgx-jvm/linux-sgx/common/inc/internal/se_version.h
index 84814cfc28..b08d6fe89e 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_version.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_version.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -28,5 +28,5 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
-#define STRFILEVER "1.7.100.36470"
+#define STRFILEVER "1.9.100.39124"
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/se_wrapper.h b/sgx-jvm/linux-sgx/common/inc/internal/se_wrapper.h
index 0edf25d8be..c2cb3a89cd 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/se_wrapper.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/se_wrapper.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/sgx_memset_s.h b/sgx-jvm/linux-sgx/common/inc/internal/sgx_memset_s.h
index 64956b384a..2324513a65 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/sgx_memset_s.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/sgx_memset_s.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/sgx_profile.h b/sgx-jvm/linux-sgx/common/inc/internal/sgx_profile.h
index 3c83d1a396..07c3e08607 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/sgx_profile.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/sgx_profile.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/sgx_read_rand.h b/sgx-jvm/linux-sgx/common/inc/internal/sgx_read_rand.h
index 05d79861f3..6aa178014b 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/sgx_read_rand.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/sgx_read_rand.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/sgx_sha256_128.h b/sgx-jvm/linux-sgx/common/inc/internal/sgx_sha256_128.h
index 52602d0ec2..03882b5182 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/sgx_sha256_128.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/sgx_sha256_128.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/tae_service_internal.h b/sgx-jvm/linux-sgx/common/inc/internal/tae_service_internal.h
index 948402c2bd..f707574fe3 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/tae_service_internal.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/tae_service_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/thread_data.h b/sgx-jvm/linux-sgx/common/inc/internal/thread_data.h
index da2bfe7abc..aee91226c2 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/thread_data.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/thread_data.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/trts_inst.h b/sgx-jvm/linux-sgx/common/inc/internal/trts_inst.h
index 09ed8ae9f5..c7a30bd9e8 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/trts_inst.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/trts_inst.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/uae_service_internal.h b/sgx-jvm/linux-sgx/common/inc/internal/uae_service_internal.h
index 75428cadef..ab929f558b 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/uae_service_internal.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/uae_service_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/uncopyable.h b/sgx-jvm/linux-sgx/common/inc/internal/uncopyable.h
index b271953f79..a34f8b6f1e 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/uncopyable.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/uncopyable.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/util.h b/sgx-jvm/linux-sgx/common/inc/internal/util.h
index ce066ec32a..2920cfcc22 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/util.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/util.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/internal/xsave.h b/sgx-jvm/linux-sgx/common/inc/internal/xsave.h
index 431d453542..53adb63e13 100644
--- a/sgx-jvm/linux-sgx/common/inc/internal/xsave.h
+++ b/sgx-jvm/linux-sgx/common/inc/internal/xsave.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx.h b/sgx-jvm/linux-sgx/common/inc/sgx.h
index 7695c65d04..47fc9f165a 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_attributes.h b/sgx-jvm/linux-sgx/common/inc/sgx_attributes.h
index 665ce88547..b314c300f3 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_attributes.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_attributes.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -39,14 +39,14 @@
#define SGX_FLAGS_DEBUG 0x0000000000000002ULL /* If set, then the enclave is debug */
#define SGX_FLAGS_MODE64BIT 0x0000000000000004ULL /* If set, then the enclave is 64 bit */
#define SGX_FLAGS_PROVISION_KEY 0x0000000000000010ULL /* If set, then the enclave has access to provision key */
-#define SGX_FLAGS_EINITOKEN_KEY 0x0000000000000020ULL /* If set, then the enclave has access to EINITOKEN key */
-#define SGX_FLAGS_RESERVED (~(SGX_FLAGS_INITTED | SGX_FLAGS_DEBUG | SGX_FLAGS_MODE64BIT | SGX_FLAGS_PROVISION_KEY | SGX_FLAGS_EINITOKEN_KEY))
+#define SGX_FLAGS_EINITTOKEN_KEY 0x0000000000000020ULL /* If set, then the enclave has access to EINITTOKEN key */
+#define SGX_FLAGS_RESERVED (~(SGX_FLAGS_INITTED | SGX_FLAGS_DEBUG | SGX_FLAGS_MODE64BIT | SGX_FLAGS_PROVISION_KEY | SGX_FLAGS_EINITTOKEN_KEY))
/* XSAVE Feature Request Mask */
-#define SGX_XFRM_LEGACY 0x0000000000000003ULL /* Legacy XFRM */
-#define SGX_XFRM_AVX 0x0000000000000006ULL /* AVX */
-#define SGX_XFRM_AVX512 0x00000000000000E6ULL /* AVX-512 - not supported */
-#define SGX_XFRM_MPX 0x0000000000000018ULL /* MPX - not supported */
+#define SGX_XFRM_LEGACY 0x0000000000000003ULL /* Legacy XFRM which includes the basic feature bits required by SGX, x87 state(0x01) and SSE state(0x02) */
+#define SGX_XFRM_AVX 0x0000000000000006ULL /* AVX XFRM which includes AVX state(0x04) and SSE state(0x02) required by AVX */
+#define SGX_XFRM_AVX512 0x00000000000000E6ULL /* AVX-512 XFRM - not supported */
+#define SGX_XFRM_MPX 0x0000000000000018ULL /* MPX XFRM - not supported */
#define SGX_XFRM_RESERVED (~(SGX_XFRM_LEGACY | SGX_XFRM_AVX))
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_capable.h b/sgx-jvm/linux-sgx/common/inc/sgx_capable.h
new file mode 100644
index 0000000000..d139cd75ea
--- /dev/null
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_capable.h
@@ -0,0 +1,90 @@
+/*
+* Copyright 2011-2017 Intel Corporation
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+*
+* 1. Redistributions of source code must retain the above copyright notice,
+* this list of conditions and the following disclaimer.
+*
+* 2. Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+*
+* 3. Neither the name of the copyright holder nor the names of its
+* contributors may be used to endorse or promote products derived from
+* this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#pragma once
+
+#ifndef _SGX_CAPABLE_H_
+#define _SGX_CAPABLE_H_
+
+#include "sgx_error.h"
+#include "sgx_defs.h"
+
+#if defined(_MSC_VER)
+#include
+#endif
+
+typedef enum _sgx_device_status_t {
+ SGX_ENABLED,
+ SGX_DISABLED_REBOOT_REQUIRED, /* A reboot is required to finish enabling SGX */
+ SGX_DISABLED_LEGACY_OS, /* SGX is disabled and a Software Control Interface is not available to enable it */
+ SGX_DISABLED, /* SGX is not enabled on this platform. More details are unavailable. */
+ SGX_DISABLED_SCI_AVAILABLE, /* SGX is disabled, but a Software Control Interface is available to enable it */
+ SGX_DISABLED_MANUAL_ENABLE, /* SGX is disabled, but can be enabled manually in the BIOS setup */
+ SGX_DISABLED_HYPERV_ENABLED, /* Detected an unsupported version of Windows* 10 with Hyper-V enabled */
+ SGX_DISABLED_UNSUPPORTED_CPU, /* SGX is not supported by this CPU */
+} sgx_device_status_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Function to check if the client platform is SGX enabled.
+ *
+ * @param sgx_capable[out] The SGX capable status of the client platform.
+ * 1 - Platform is SGX enabled or the Software Control Interface is available to configure SGX
+ * 0 - SGX not available
+ * @return If the function succeeds, return SGX_SUCCESS, any other value indicates an error.
+ */
+sgx_status_t sgx_is_capable(int* sgx_capable);
+
+/*
+ * Function used to enable SGX device through EFI.
+ *
+ * @param sgx_device_status[out] The status of SGX device.
+ * @return If the function succeeds, return SGX_SUCCESS, any other value indicates an error.
+ */
+sgx_status_t sgx_cap_enable_device(sgx_device_status_t* sgx_device_status);
+
+/*
+* Function used to query SGX device status.
+*
+* @param sgx_device_status[out] The status of SGX device.
+* @return If the function succeeds, return SGX_SUCCESS, any other value indicates an error.
+*/
+sgx_status_t SGXAPI sgx_cap_get_status(sgx_device_status_t* sgx_device_status);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_cpuid.h b/sgx-jvm/linux-sgx/common/inc/sgx_cpuid.h
index 2d4221280b..d0bb8f0388 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_cpuid.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_cpuid.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_defs.h b/sgx-jvm/linux-sgx/common/inc/sgx_defs.h
index 4b0a658283..8cf1b8882b 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_defs.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_defs.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -48,6 +48,8 @@
# define SGX_DLLIMPORT
# define SGX_UBRIDGE(attr, fname, args...) attr fname args
+# define SGX_DEPRECATED __attribute__((deprecated))
+
#define SGX_NOCONVENTION /* Empty. No calling convention specified. */
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_dh.h b/sgx-jvm/linux-sgx/common/inc/sgx_dh.h
index 9860271a0b..f7f14de1f3 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_dh.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_dh.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_ecp_types.h b/sgx-jvm/linux-sgx/common/inc/sgx_ecp_types.h
index ef935d103b..833440a130 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_ecp_types.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_ecp_types.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_edger8r.h b/sgx-jvm/linux-sgx/common/inc/sgx_edger8r.h
index f3da7873df..5d159a7b02 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_edger8r.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_edger8r.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_eid.h b/sgx-jvm/linux-sgx/common/inc/sgx_eid.h
index ea2dfc6e28..b47273c75e 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_eid.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_eid.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_error.h b/sgx-jvm/linux-sgx/common/inc/sgx_error.h
index d093fd8a1e..f15da687af 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_error.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_error.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -72,8 +72,8 @@ typedef enum _status_t
SGX_ERROR_INVALID_ISVSVN = SGX_MK_ERROR(0x3004), /* The isv svn is greater than the enclave's isv svn */
SGX_ERROR_INVALID_KEYNAME = SGX_MK_ERROR(0x3005), /* The key name is an unsupported value */
- SGX_ERROR_SERVICE_UNAVAILABLE = SGX_MK_ERROR(0x4001), /* Indicates aesm didn't response or the requested service is not supported */
- SGX_ERROR_SERVICE_TIMEOUT = SGX_MK_ERROR(0x4002), /* The request to aesm time out */
+ SGX_ERROR_SERVICE_UNAVAILABLE = SGX_MK_ERROR(0x4001), /* Indicates aesm didn't respond or the requested service is not supported */
+ SGX_ERROR_SERVICE_TIMEOUT = SGX_MK_ERROR(0x4002), /* The request to aesm timed out */
SGX_ERROR_AE_INVALID_EPIDBLOB = SGX_MK_ERROR(0x4003), /* Indicates epid blob verification error */
SGX_ERROR_SERVICE_INVALID_PRIVILEGE = SGX_MK_ERROR(0x4004), /* Enclave has no privilege to get launch token */
SGX_ERROR_EPID_MEMBER_REVOKED = SGX_MK_ERROR(0x4005), /* The EPID group membership is revoked. */
@@ -86,6 +86,21 @@ typedef enum _status_t
SGX_ERROR_MC_USED_UP = SGX_MK_ERROR(0x400e), /* Monotonic counters are used out */
SGX_ERROR_MC_OVER_QUOTA = SGX_MK_ERROR(0x400f), /* Monotonic counters exceeds quota limitation */
SGX_ERROR_KDF_MISMATCH = SGX_MK_ERROR(0x4011), /* Key derivation function doesn't match during key exchange */
+ SGX_ERROR_UNRECOGNIZED_PLATFORM = SGX_MK_ERROR(0x4012), /* EPID Provisioning failed due to platform not recognized by backend server*/
+
+ SGX_ERROR_NO_PRIVILEGE = SGX_MK_ERROR(0x5002), /* Not enough privilege to perform the operation */
+
+
+ /* SGX errors are only used in the file API when there is no appropriate EXXX (EINVAL, EIO etc.) error code */
+ SGX_ERROR_FILE_BAD_STATUS = SGX_MK_ERROR(0x7001), /* The file is in bad status, run sgx_clearerr to try and fix it */
+ SGX_ERROR_FILE_NO_KEY_ID = SGX_MK_ERROR(0x7002), /* The Key ID field is all zeros, can't re-generate the encryption key */
+ SGX_ERROR_FILE_NAME_MISMATCH = SGX_MK_ERROR(0x7003), /* The current file name is different then the original file name (not allowed, substitution attack) */
+ SGX_ERROR_FILE_NOT_SGX_FILE = SGX_MK_ERROR(0x7004), /* The file is not an SGX file */
+ SGX_ERROR_FILE_CANT_OPEN_RECOVERY_FILE = SGX_MK_ERROR(0x7005), /* A recovery file can't be opened, so flush operation can't continue (only used when no EXXX is returned) */
+ SGX_ERROR_FILE_CANT_WRITE_RECOVERY_FILE = SGX_MK_ERROR(0x7006), /* A recovery file can't be written, so flush operation can't continue (only used when no EXXX is returned) */
+ SGX_ERROR_FILE_RECOVERY_NEEDED = SGX_MK_ERROR(0x7007), /* When openeing the file, recovery is needed, but the recovery process failed */
+ SGX_ERROR_FILE_FLUSH_FAILED = SGX_MK_ERROR(0x7008), /* fflush operation (to disk) failed (only used when no EXXX is returned) */
+ SGX_ERROR_FILE_CLOSE_FAILED = SGX_MK_ERROR(0x7009), /* fclose operation (to disk) failed (only used when no EXXX is returned) */
} sgx_status_t;
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_intrin.h b/sgx-jvm/linux-sgx/common/inc/sgx_intrin.h
index 237a1cd6f1..253a68e8dd 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_intrin.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_intrin.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_key.h b/sgx-jvm/linux-sgx/common/inc/sgx_key.h
index b607747843..113b720315 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_key.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_key.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -43,7 +43,7 @@
#include "sgx_attributes.h"
/* Key Name */
-#define SGX_KEYSELECT_EINITOKEN 0x0000
+#define SGX_KEYSELECT_EINITTOKEN 0x0000
#define SGX_KEYSELECT_PROVISION 0x0001
#define SGX_KEYSELECT_PROVISION_SEAL 0x0002
#define SGX_KEYSELECT_REPORT 0x0003
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_key_exchange.h b/sgx-jvm/linux-sgx/common/inc/sgx_key_exchange.h
index 570945f013..be065b568b 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_key_exchange.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_key_exchange.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_quote.h b/sgx-jvm/linux-sgx/common/inc/sgx_quote.h
index aec125e893..8c85b54c90 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_quote.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_quote.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_report.h b/sgx-jvm/linux-sgx/common/inc/sgx_report.h
index 8d26087397..51dfde29c2 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_report.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_report.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -63,7 +63,7 @@ typedef uint16_t sgx_prod_id_t;
#define SGX_TARGET_INFO_RESERVED1_BYTES 4
#define SGX_TARGET_INFO_RESERVED2_BYTES 456
-typedef struct _targe_info_t
+typedef struct _target_info_t
{
sgx_measurement_t mr_enclave; /* ( 0) The MRENCLAVE of the target enclave */
sgx_attributes_t attributes; /* ( 32) The ATTRIBUTES field of the target enclave */
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_spinlock.h b/sgx-jvm/linux-sgx/common/inc/sgx_spinlock.h
index 77d8084856..87562c951a 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_spinlock.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_spinlock.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tae_service.edl b/sgx-jvm/linux-sgx/common/inc/sgx_tae_service.edl
index 9b19a8026b..46fcf33b18 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_tae_service.edl
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tae_service.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tae_service.h b/sgx-jvm/linux-sgx/common/inc/sgx_tae_service.h
index 687f230607..7887b9cda8 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_tae_service.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tae_service.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -68,6 +68,14 @@ typedef struct _ps_sec_prop_desc
uint8_t sgx_ps_sec_prop_desc[256];
} sgx_ps_sec_prop_desc_t;
+typedef struct _ps_sec_prop_desc_ex
+{
+ sgx_ps_sec_prop_desc_t ps_sec_prop_desc;
+ sgx_measurement_t pse_mrsigner;
+ sgx_prod_id_t pse_prod_id;
+ sgx_isv_svn_t pse_isv_svn;
+} sgx_ps_sec_prop_desc_ex_t;
+
#pragma pack(pop)
/* create a session, call it before using Platform Service */
@@ -79,6 +87,9 @@ sgx_status_t SGXAPI sgx_close_pse_session(void);
/* get a data structure describing the Security Property of the Platform Service */
sgx_status_t SGXAPI sgx_get_ps_sec_prop(sgx_ps_sec_prop_desc_t* security_property);
+/* get a data structure describing the Security Property of the Platform Service */
+sgx_status_t SGXAPI sgx_get_ps_sec_prop_ex(sgx_ps_sec_prop_desc_ex_t* security_property);
+
/* provides the trusted platform current time */
sgx_status_t SGXAPI sgx_get_trusted_time(
sgx_time_t* current_time,
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tcrypto.h b/sgx-jvm/linux-sgx/common/inc/sgx_tcrypto.h
index 8ecf0b32d0..7b6976a611 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_tcrypto.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tcrypto.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -52,12 +52,21 @@
#define SGX_CMAC_KEY_SIZE 16
#define SGX_CMAC_MAC_SIZE 16
#define SGX_AESCTR_KEY_SIZE 16
+#define SGX_RSA3072_KEY_SIZE 384
+#define SGX_RSA3072_PRI_EXP_SIZE 384
+#define SGX_RSA3072_PUB_EXP_SIZE 4
typedef struct _sgx_ec256_dh_shared_t
{
uint8_t s[SGX_ECP256_KEY_SIZE];
} sgx_ec256_dh_shared_t;
+typedef struct _sgx_ec256_dh_shared512_t
+{
+ uint8_t x[SGX_ECP256_KEY_SIZE];
+ uint8_t y[SGX_ECP256_KEY_SIZE];
+} sgx_ec256_dh_shared512_t;
+
typedef struct _sgx_ec256_private_t
{
uint8_t r[SGX_ECP256_KEY_SIZE];
@@ -75,6 +84,20 @@ typedef struct _sgx_ec256_signature_t
uint32_t y[SGX_NISTP_ECP256_KEY_SIZE];
} sgx_ec256_signature_t;
+typedef struct _sgx_rsa3072_public_key_t
+{
+ uint8_t mod[SGX_RSA3072_KEY_SIZE];
+ uint8_t exp[SGX_RSA3072_PUB_EXP_SIZE];
+} sgx_rsa3072_public_key_t;
+
+typedef struct _sgx_rsa3072_private_key_t
+{
+ uint8_t mod[SGX_RSA3072_KEY_SIZE];
+ uint8_t exp[SGX_RSA3072_PRI_EXP_SIZE];
+} sgx_rsa3072_private_key_t;
+
+typedef uint8_t sgx_rsa3072_signature_t[SGX_RSA3072_KEY_SIZE];
+
typedef void* sgx_sha_state_handle_t;
typedef void* sgx_cmac_state_handle_t;
typedef void* sgx_ecc_state_handle_t;
@@ -114,6 +137,12 @@ typedef enum {
} sgx_generic_ecresult_t;
+typedef enum {
+ SGX_RSA_VALID, /* validation pass successfully */
+
+ SGX_RSA_INVALID_SIGNATURE /* invalid signature */
+} sgx_rsa_result_t;
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -431,7 +460,7 @@ extern "C" {
* The private key p_private is a number that lies in the range of [1, n-1] where n is
* the order of the elliptic curve base point.
*
- * The public key p_public is an elliptic curve point such that p_public = p_private ?G,
+ * The public key p_public is an elliptic curve point such that p_public = p_private *G,
* where G is the base point of the elliptic curve.
*
* The context of the point p_public as an elliptic curve point must be created by using
@@ -477,19 +506,19 @@ extern "C" {
*
* According to the scheme, Alice and Bob perform the following operations:
* 1. Alice calculates her own public key pubKeyA by using her private key
- * privKeyA: pubKeyA = privKeyA ?G, where G is the base point of the elliptic curve.
+ * privKeyA: pubKeyA = privKeyA *G, where G is the base point of the elliptic curve.
* 2. Alice passes the public key to Bob.
* 3. Bob calculates his own public key pubKeyB by using his private key
- * privKeyB: pubKeyB = privKeyB ?G, where G is a base point of the elliptic curve.
+ * privKeyB: pubKeyB = privKeyB *G, where G is a base point of the elliptic curve.
* 4. Bob passes the public key to Alice.
* 5. Alice gets Bob's public key and calculates the secret point shareA. When calculating,
* she uses her own private key and Bob's public key and applies the following formula:
- * shareA = privKeyA ?pubKeyB = privKeyA ?privKeyB ?G.
+ * shareA = privKeyA *pubKeyB = privKeyA *privKeyB *G.
* 6. Bob gets Alice's public key and calculates the secret point shareB. When calculating,
* he uses his own private key and Alice's public key and applies the following formula:
- * shareB = privKeyB ?pubKeyA = privKeyB ?privKeyA ?G.
+ * shareB = privKeyB *pubKeyA = privKeyB *privKeyA *G.
*
- * Because the following equation is true privKeyA ?privKeyB ?G = privKeyB ?privKeyA ?G,
+ * Because the following equation is true privKeyA *privKeyB *G = privKeyB *privKeyA *G,
* the result of both calculations is the same, that is, the equation shareA = shareB is true.
* The secret point serves as a secret key.
*
@@ -514,6 +543,19 @@ extern "C" {
sgx_ec256_dh_shared_t *p_shared_key,
sgx_ecc_state_handle_t ecc_handle);
+ /* Computes 512-bit DH shared key based on private B key (local) and remote public Ga Key
+ * Parameters:
+ * Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h
+ * Inputs: sgx_ecc_state_handle_t ecc_handle - Handle to the ECC crypto system
+ * sgx_ec256_private_t *p_private_b - Pointer to the local private key
+ * sgx_ec256_public_t *p_public_ga - Pointer to the remote public key
+ * Output: sgx_ec256_dh_shared512_t *p_shared_key - Pointer to the 512-bit shared DH key
+ */
+ sgx_status_t SGXAPI sgx_ecc256_compute_shared_dhkey512(sgx_ec256_private_t *p_private_b,
+ sgx_ec256_public_t *p_public_ga,
+ sgx_ec256_dh_shared512_t *p_shared_key,
+ sgx_ecc_state_handle_t ecc_handle);
+
/** Computes signature for data based on private key.
*
* A message digest is a fixed size number derived from the original message with
@@ -581,6 +623,50 @@ extern "C" {
uint8_t *p_result,
sgx_ecc_state_handle_t ecc_handle);
+ /** Computes signature for a given data based on RSA 3072 private key
+ *
+ * A digital signature over a message consists of a 3072 bit number.
+ *
+ * Return: If private key, signature or data pointer is NULL,
+ * SGX_ERROR_INVALID_PARAMETER is returned.
+ * If the signing process fails then SGX_ERROR_UNEXPECTED is returned.
+ * Parameters:
+ * Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h
+ * Inputs: uint8_t *p_data - Pointer to the data to be signed
+ * uint32_t data_size - Size of the data to be signed
+ * sgx_rsa3072_private_key_t *p_private - Pointer to the private key
+ * Output: sgx_rsa3072_signature_t *p_signature - Pointer to the signature output
+ */
+ sgx_status_t sgx_rsa3072_sign(const uint8_t *p_data,
+ uint32_t data_size,
+ const sgx_rsa3072_private_key_t *p_private,
+ sgx_rsa3072_signature_t *p_signature);
+
+ /** Verifies the signature for the given data based on the RSA 3072 public key.
+ *
+ * A digital signature over a message consists of a 3072 bit number.
+ *
+ * The typical result of the digital signature verification is one of the two values:
+ * SGX_Generic_ECValid - Digital signature is valid
+ * SGX_Generic_ECInvalidSignature - Digital signature is not valid
+ *
+ * Return: If public key, signature, result or data pointer is NULL,
+ * SGX_ERROR_INVALID_PARAMETER is returned.
+ * If the verification process fails then SGX_ERROR_UNEXPECTED is returned.
+ * Parameters:
+ * Return: sgx_status_t - SGX_SUCCESS or failure as defined in sgx_error.h
+ * Inputs: uint8_t *p_data - Pointer to the data to be verified
+ * uint32_t data_size - Size of the data to be verified
+ * sgx_rsa3072_public_key_t *p_public - Pointer to the public key
+ * sgx_rsa3072_signature_t *p_signature - Pointer to the signature
+ * Output: sgx_rsa_result_t *p_result - Pointer to the result of verification check
+ */
+ sgx_status_t sgx_rsa3072_verify(const uint8_t *p_data,
+ uint32_t data_size,
+ const sgx_rsa3072_public_key_t *p_public,
+ const sgx_rsa3072_signature_t *p_signature,
+ sgx_rsa_result_t *p_result);
+
#ifdef __cplusplus
}
#endif
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_thread.h b/sgx-jvm/linux-sgx/common/inc/sgx_thread.h
index ee0274c9e3..f90c5a3a8c 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_thread.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_thread.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -38,14 +38,14 @@
typedef uintptr_t sgx_thread_t;
-typedef struct sgx_thread_queue
+typedef struct _sgx_thread_queue_t
{
sgx_thread_t m_first; /* first element */
sgx_thread_t m_last; /* last element */
} sgx_thread_queue_t;
/* Mutex */
-typedef struct sgx_thread_mutex
+typedef struct _sgx_thread_mutex_t
{
size_t m_refcount;
uint32_t m_control;
@@ -65,13 +65,13 @@ typedef struct sgx_thread_mutex
#define SGX_THREAD_MUTEX_INITIALIZER \
SGX_THREAD_NONRECURSIVE_MUTEX_INITIALIZER
-typedef struct sgx_thread_mutex_attr
+typedef struct _sgx_thread_mutex_attr_t
{
unsigned char m_dummy; /* for C syntax check */
} sgx_thread_mutexattr_t;
/* Condition Variable */
-typedef struct sgx_thread_cond
+typedef struct _sgx_thread_cond_t
{
volatile uint32_t m_lock; /* use sgx_spinlock_t */
sgx_thread_queue_t m_queue;
@@ -79,7 +79,7 @@ typedef struct sgx_thread_cond
#define SGX_THREAD_COND_INITIALIZER {0, {SGX_THREAD_T_NULL, SGX_THREAD_T_NULL}}
-typedef struct sgx_thread_cond_attr
+typedef struct _sgx_thread_cond_attr_t
{
unsigned char m_dummy; /* for C syntax check */
} sgx_thread_condattr_t;
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tkey_exchange.edl b/sgx-jvm/linux-sgx/common/inc/sgx_tkey_exchange.edl
index 179418d0ce..fa231e9406 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_tkey_exchange.edl
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tkey_exchange.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tkey_exchange.h b/sgx-jvm/linux-sgx/common/inc/sgx_tkey_exchange.h
index eb8e27f6e3..f69f7b1346 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_tkey_exchange.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tkey_exchange.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -121,7 +121,7 @@ typedef sgx_status_t(*sgx_ra_derive_secret_keys_t)(
* shared keys (SMK, SK, MK and VK).
* @param p_context The output context for the subsequent remote attestation
* and key exchange process, to be used in sgx_ra_get_msg1 and
- * sgx_ra_get_msg2.
+ * sgx_ra_proc_msg2.
* @return sgx_status_t SGX_SUCCESS Indicates success.
* SGX_ERROR_INVALID_PARAMETER Indicates an error that
* the input parameters are
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tprotected_fs.edl b/sgx-jvm/linux-sgx/common/inc/sgx_tprotected_fs.edl
new file mode 100644
index 0000000000..6371de5d60
--- /dev/null
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tprotected_fs.edl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+enclave {
+
+from "sgx_tae_service.edl" import *;
+
+ untrusted {
+ void* u_sgxprotectedfs_exclusive_file_open([in, string] const char* filename, uint8_t read_only, [out] int64_t* file_size, [out] int32_t* error_code);
+ uint8_t u_sgxprotectedfs_check_if_file_exists([in, string] const char* filename);
+ int32_t u_sgxprotectedfs_fread_node([user_check] void* f, uint64_t node_number, [out, size=node_size] uint8_t* buffer, uint32_t node_size);
+ int32_t u_sgxprotectedfs_fwrite_node([user_check] void* f, uint64_t node_number, [in, size=node_size] uint8_t* buffer, uint32_t node_size);
+ int32_t u_sgxprotectedfs_fclose([user_check] void* f);
+ uint8_t u_sgxprotectedfs_fflush([user_check] void* f);
+ int32_t u_sgxprotectedfs_remove([in, string] const char* filename);
+
+ void* u_sgxprotectedfs_recovery_file_open([in, string] const char* filename);
+ uint8_t u_sgxprotectedfs_fwrite_recovery_node([user_check] void* f, [in, count=data_length] uint8_t* data, uint32_t data_length);
+ int32_t u_sgxprotectedfs_do_file_recovery([in, string] const char* filename, [in, string] const char* recovery_filename, uint32_t node_size);
+ };
+};
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tprotected_fs.h b/sgx-jvm/linux-sgx/common/inc/sgx_tprotected_fs.h
new file mode 100644
index 0000000000..104439c21b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tprotected_fs.h
@@ -0,0 +1,276 @@
+/*
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Intel Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/**
+* File: sgx_tprotected_fs.h
+* Description:
+* Interface for file API
+*/
+
+#pragma once
+
+#ifndef _SGX_TPROTECTED_FS_H_
+#define _SGX_TPROTECTED_FS_H_
+
+#include
+
+#include "sgx_defs.h"
+#include "sgx_key.h"
+
+#define SGX_FILE void
+
+#define EOF (-1)
+
+#define SEEK_SET 0
+#define SEEK_CUR 1
+#define SEEK_END 2
+
+#define FILENAME_MAX 260
+#define FOPEN_MAX 20
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* sgx_fopen
+ * Purpose: open existing protected file (created with previous call to sgc_fopen) or create a new one (see c++ fopen documentation for more details).
+ *
+ * Parameters:
+ * filename - [IN] the name of the file to open/create.
+ * mode - [IN] open mode. only supports 'r' or 'w' or 'a' (one and only one of them must be present), and optionally 'b' and/or '+'.
+ * key - [IN] encryption key that will be used for the file encryption
+ * NOTE - the key is actually used as a KDK (key derivation key) and only for the meta-data node, and not used directly for the encryption of any part of the file
+ * this is important in order to prevent hitting the key wear-out problem, and some other issues with GCM encryptions using the same key
+ *
+ * Return value:
+ * SGX_FILE* - pointer to the newly created file handle, NULL if an error occurred - check errno for the error code.
+*/
+SGX_FILE* SGXAPI sgx_fopen(const char* filename, const char* mode, const sgx_key_128bit_t *key);
+
+
+/* sgx_fopen_auto_key
+* Purpose: open existing protected file (created with previous call to sgc_fopen_auto_key) or create a new one (see c++ fopen documentation for more details).
+* this API doesn't require a key from the user, and instead uses the enclave's SEAL key as a KDK for deriving the mete-data encryption keys
+* using the SEAL key as a KDK, may result losing file access in cases of disaster-recovery or in cases of VM migration in servers
+* users that any of these scenarious apply to them, are advised to use sgx_fopen, where they can provide their own key and manage the keys provisioning for those scenarious
+* for further information, please read the SGX SDK manual
+*
+* Parameters:
+* filename - [IN] the name of the file to open/create.
+* mode - [IN] open mode. only supports 'r' or 'w' or 'a' (one and only one of them must be present), and optionally 'b' and/or '+'.
+*
+* Return value:
+* SGX_FILE* - pointer to the newly created file handle, NULL if an error occurred - check errno for the error code.
+*/
+SGX_FILE* SGXAPI sgx_fopen_auto_key(const char* filename, const char* mode);
+
+
+/* sgx_fwrite
+ * Purpose: write data to a file (see c++ fwrite documentation for more details).
+ *
+ * Parameters:
+ * ptr - [IN] pointer to the input data buffer
+ * size - [IN] size of data block
+ * count - [IN] count of data blocks to write
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ *
+ * Return value:
+ * size_t - number of 'size' blocks written to the file, 0 in case of an error - check sgx_ferror for error code
+*/
+size_t SGXAPI sgx_fwrite(const void* ptr, size_t size, size_t count, SGX_FILE* stream);
+
+
+/* sgx_fread
+ * Purpose: read data from a file (see c++ fread documentation for more details).
+ *
+ * Parameters:
+ * ptr - [OUT] pointer to the output data buffer
+ * size - [IN] size of data block
+ * count - [IN] count of data blocks to write
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ *
+ * Return value:
+ * size_t - number of 'size' blocks read from the file, 0 in case of an error - check sgx_ferror for error code
+*/
+size_t SGXAPI sgx_fread(void* ptr, size_t size, size_t count, SGX_FILE* stream);
+
+
+/* sgx_ftell
+ * Purpose: get the current value of the position indicator of the file (see c++ ftell documentation for more details).
+ *
+ * Parameters:
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ *
+ * Return value:
+ * int64_t - the current value of the position indicator, -1 on error - check errno for the error code
+*/
+int64_t SGXAPI sgx_ftell(SGX_FILE* stream);
+
+
+/* sgx_fseek
+ * Purpose: set the current value of the position indicator of the file (see c++ fseek documentation for more details).
+ *
+ * Parameters:
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ * offset - [IN] the new required value, relative to the origin parameter
+ * origin - [IN] the origin from which to calculate the offset (SEEK_SET, SEEK_CUR or SEEK_END)
+ *
+ * Return value:
+ * int32_t - result, 0 on success, -1 in case of an error - check sgx_ferror for error code
+*/
+int32_t SGXAPI sgx_fseek(SGX_FILE* stream, int64_t offset, int origin);
+
+
+/* sgx_fflush
+ * Purpose: force actual write of all the cached data to the disk (see c++ fflush documentation for more details).
+ *
+ * Parameters:
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ *
+ * Return value:
+ * int32_t - result, 0 on success, 1 in case of an error - check sgx_ferror for error code
+*/
+int32_t SGXAPI sgx_fflush(SGX_FILE* stream);
+
+
+/* sgx_ferror
+ * Purpose: get the latest operation error code (see c++ ferror documentation for more details).
+ *
+ * Parameters:
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ *
+ * Return value:
+ * int32_t - the error code, 0 means no error, anything else is the latest operation error code
+*/
+int32_t SGXAPI sgx_ferror(SGX_FILE* stream);
+
+
+/* sgx_feof
+ * Purpose: did the file's position indicator hit the end of the file in a previous read operation (see c++ feof documentation for more details).
+ *
+ * Parameters:
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ *
+ * Return value:
+ * int32_t - 1 - end of file was reached, 0 - end of file wasn't reached
+*/
+int32_t SGXAPI sgx_feof(SGX_FILE* stream);
+
+
+/* sgx_clearerr
+ * Purpose: try to clear an error in the file status, also clears the end-of-file flag (see c++ clearerr documentation for more details).
+ * call sgx_ferror or sgx_feof after a call to this function to learn if it was successful or not
+ *
+ * Parameters:
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ *
+ * Return value:
+ * none
+*/
+void SGXAPI sgx_clearerr(SGX_FILE* stream);
+
+
+/* sgx_fclose
+ * Purpose: close an open file handle (see c++ fclose documentation for more details).
+ * after a call to this function, the handle is invalid even if an error is returned
+ *
+ * Parameters:
+ * stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key)
+ *
+ * Return value:
+ * int32_t - result, 0 - file was closed successfully, 1 - there were errors during the operation
+*/
+int32_t SGXAPI sgx_fclose(SGX_FILE* stream);
+
+
+/* sgx_remove
+ * Purpose: delete a file from the file system (see c++ remove documentation for more details).
+ *
+ * Parameters:
+ * filename - [IN] the name of the file to remvoe.
+ *
+ * Return value:
+ * int32_t - result, 0 - success, 1 - there was an error, check errno for the error code
+*/
+int32_t SGXAPI sgx_remove(const char* filename);
+
+
+/* sgx_fexport_auto_key
+* Purpose: export the last key that was used in the encryption of the file.
+* with this key we can import the file in a different enclave/system
+* NOTE - 1. in order for this function to work, the file should not be opened in any other process
+* 2. this function only works with files created with sgx_fopen_auto_key
+*
+* Parameters:
+* filename - [IN] the name of the file to export the encryption key from.
+* key - [OUT] the exported encryption key
+*
+* Return value:
+* int32_t - result, 0 - success, 1 - there was an error, check errno for the error code
+*/
+int32_t SGXAPI sgx_fexport_auto_key(const char* filename, sgx_key_128bit_t *key);
+
+
+/* sgx_fimport_auto_key
+* Purpose: import a file that was created in a different enclave/system and make it a local file
+* after this call return successfully, the file can be opened with sgx_fopen_auto_key
+* NOTE - this function only works with files created with sgx_fopen_auto_key
+*
+* Parameters:
+* filename - [IN] the name of the file to be imported.
+* key - [IN] the encryption key, exported with a call to sgx_fexport_auto_key in the source enclave/system
+*
+* Return value:
+* int32_t - result, 0 - success, 1 - there was an error, check errno for the error code
+*/
+int32_t SGXAPI sgx_fimport_auto_key(const char* filename, const sgx_key_128bit_t *key);
+
+
+/* sgx_fclear_cache
+* Purpose: scrubs and delete the internal cache used by the file, any changed data is flushed to disk before deletion
+* Note - only the secrets that were in the cache are deleted, the file structure itself still holds keys and plain file data
+* if a user wishes to remove all secrets from memory, he should close the file handle with sgx_fclose
+*
+* Parameters:
+* stream - [IN] the file handle (opened with sgx_fopen or sgx_fopen_auto_key
+*
+* Return value:
+* int32_t - result, 0 - success, 1 - there was an error, check errno for the error code
+*/
+int32_t SGXAPI sgx_fclear_cache(SGX_FILE* stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _SGX_TPROTECTED_FS_H_
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_trts.h b/sgx-jvm/linux-sgx/common/inc/sgx_trts.h
index 1a669f78d2..de55921481 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_trts.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_trts.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_trts_exception.h b/sgx-jvm/linux-sgx/common/inc/sgx_trts_exception.h
index 41280aff4d..b71f418a0d 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_trts_exception.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_trts_exception.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -125,7 +125,7 @@ extern "C" {
* exception_handler - a pointer to the handler to be called.
* Return Value
* handler - success
- * NULL - fail
+ * NULL - fail
*/
void * SGXAPI sgx_register_exception_handler(int is_first_handler, sgx_exception_handler_t exception_handler);
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tseal.h b/sgx-jvm/linux-sgx/common/inc/sgx_tseal.h
index fa93227800..57cabd430f 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_tseal.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tseal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -85,10 +85,12 @@ extern "C" {
*
* Return Value:
* uint32_t - The number of bytes in the optional additional MAC buffer
+ * If the function fails, the return value is UINT32_MAX
*/
uint32_t sgx_get_add_mac_txt_len(const sgx_sealed_data_t* p_sealed_data);
/* sgx_get_encrypt_txt_len
+ * Purpose: This function is used to determine how much memory to allocate for the decrypted data returned by the sgx_unseal_data function
*
* Parameter:
* p_sealed_data - [IN] Pointer to the sgx_sealed_data_t structure which was populated by the sgx_seal_data function
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_tstdc.edl b/sgx-jvm/linux-sgx/common/inc/sgx_tstdc.edl
index e92e2218c3..e5cd26f039 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_tstdc.edl
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_tstdc.edl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_uae_service.h b/sgx-jvm/linux-sgx/common/inc/sgx_uae_service.h
index ff668b131b..59990edcd4 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_uae_service.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_uae_service.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -74,6 +74,21 @@ sgx_status_t SGXAPI sgx_init_quote(
/*
+ * Function used to calculate quote size.
+ *
+ * @param p_sig_rl[in] OPTIONAL Signature Revocation List.
+ * @param sig_rl_size[in] Signature Revocation List size, in bytes.
+ * @param p_quote_size[out] Quote size, in bytes.
+ * @return If quote size is calculated,return SGX_SUCCESS, otherwise return
+ * SGX_ERROR_INVALID_PARAMETER to indicate special error condition.
+ */
+sgx_status_t SGXAPI sgx_calc_quote_size(
+ const uint8_t *p_sig_rl,
+ uint32_t sig_rl_size,
+ uint32_t* p_quote_size);
+
+/*
+ * [DEPRECATED] Use sgx_calc_quote_size function instead of this one
* Function used to get quote size.
*
* @param p_sig_rl[in] OPTIONAL Signature Revocation List.
@@ -81,6 +96,7 @@ sgx_status_t SGXAPI sgx_init_quote(
* @return If quote size is calculated,return SGX_SCCUESS, otherwise return
* SGX_ERROR_INVALID_PARAMETER to indicate special error condition.
*/
+SGX_DEPRECATED
sgx_status_t SGXAPI sgx_get_quote_size(
const uint8_t *p_sig_rl,
uint32_t* p_quote_size);
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_ukey_exchange.h b/sgx-jvm/linux-sgx/common/inc/sgx_ukey_exchange.h
index 0f1e79f506..03b993b794 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_ukey_exchange.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_ukey_exchange.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -118,7 +118,7 @@ sgx_status_t SGXAPI sgx_ra_get_msg1(
sgx_ra_msg1_t *p_msg1);
/*
- * sgx_ra_get_msg2 is used to process the remote attestation and key exchange
+ * sgx_ra_proc_msg2 is used to process the remote attestation and key exchange
* protocol message 2 from the service provider and generate message 3 to send
* to the service provider. If the service provider accepts message 3,
* negotiated session keys between the application enclave and the service
@@ -134,7 +134,7 @@ sgx_status_t SGXAPI sgx_ra_get_msg1(
* generated by sgx_edger8r. The application enclave should
* link with sgx_tkey_exchange library and import the
* sgx_tkey_exchange.edl in the application enclave's EDL
- * file to expose the ECALL proxy for sgx_ra_get_msg2.
+ * file to expose the ECALL proxy for sgx_ra_proc_msg2.
* @param p_get_msg3 Function pointer of the ECALL proxy sgx_ra_get_msg3_trusted
* generated by sgx_edger8r. The application enclave should
* link with sgx_tkey_exchange library and import the
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_urts.h b/sgx-jvm/linux-sgx/common/inc/sgx_urts.h
index c1bfa65183..f90a2d084e 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_urts.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_urts.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/sgx_utils.h b/sgx-jvm/linux-sgx/common/inc/sgx_utils.h
index 0d8420b753..37b600b319 100644
--- a/sgx-jvm/linux-sgx/common/inc/sgx_utils.h
+++ b/sgx-jvm/linux-sgx/common/inc/sgx_utils.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/stdc++/exception b/sgx-jvm/linux-sgx/common/inc/stdc++/exception
index 0389bfd199..5a0118c48f 100644
--- a/sgx-jvm/linux-sgx/common/inc/stdc++/exception
+++ b/sgx-jvm/linux-sgx/common/inc/stdc++/exception
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/stdc++/linux/typeinfo b/sgx-jvm/linux-sgx/common/inc/stdc++/linux/typeinfo
index a32df180f6..6c6d9dd536 100644
--- a/sgx-jvm/linux-sgx/common/inc/stdc++/linux/typeinfo
+++ b/sgx-jvm/linux-sgx/common/inc/stdc++/linux/typeinfo
@@ -133,6 +133,16 @@ namespace std
bad_typeid& operator=(const bad_typeid &__rhs) throw();
virtual const char* what() const throw();
};
+
+ class bad_array_new_length: public bad_alloc
+ {
+ public:
+ bad_array_new_length() throw();
+ bad_array_new_length(const bad_array_new_length&) throw();
+ bad_array_new_length& operator=(const bad_array_new_length&) throw();
+ virtual ~bad_array_new_length();
+ virtual const char *what() const throw();
+ };
}
#endif /* _LINUX_TYPEINFO_ */
diff --git a/sgx-jvm/linux-sgx/common/inc/stdc++/new b/sgx-jvm/linux-sgx/common/inc/stdc++/new
index fbf11fb67d..b120435fc4 100644
--- a/sgx-jvm/linux-sgx/common/inc/stdc++/new
+++ b/sgx-jvm/linux-sgx/common/inc/stdc++/new
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/stdc++/typeinfo b/sgx-jvm/linux-sgx/common/inc/stdc++/typeinfo
index fa9c05e737..0496dec68f 100644
--- a/sgx-jvm/linux-sgx/common/inc/stdc++/typeinfo
+++ b/sgx-jvm/linux-sgx/common/inc/stdc++/typeinfo
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/inc/tlibc/setjmp.h b/sgx-jvm/linux-sgx/common/inc/tlibc/setjmp.h
index ac5627f7ea..0c198cae02 100644
--- a/sgx-jvm/linux-sgx/common/inc/tlibc/setjmp.h
+++ b/sgx-jvm/linux-sgx/common/inc/tlibc/setjmp.h
@@ -40,11 +40,11 @@
#define _SETJMP_H_
#ifndef _JB_ATTRIBUTES
-#define _JB_ATTRIBUTES /**/
+#define _JB_ATTRIBUTES /**/
#else
#endif
#ifndef _BSD_JBSLOT_T_
-#define _BSD_JBSLOT_T_ long
+#define _BSD_JBSLOT_T_ long
#endif
#define _JBLEN 8
@@ -55,9 +55,10 @@ typedef _BSD_JBSLOT_T_ jmp_buf[_JBLEN] _JB_ATTRIBUTES;
#define __returns_twice __attribute__((__returns_twice__))
#define __dead
+
__BEGIN_DECLS
-int _setjmp(jmp_buf) __returns_twice;
-void _longjmp(jmp_buf, int) __dead;
+int setjmp(jmp_buf) __returns_twice;
+void longjmp(jmp_buf, int) __dead;
__END_DECLS
#endif /* !_SETJMP_H_ */
diff --git a/sgx-jvm/linux-sgx/common/inc/tlibc/sys/_types.h b/sgx-jvm/linux-sgx/common/inc/tlibc/sys/_types.h
index b1b315c7ed..0fd68f914f 100644
--- a/sgx-jvm/linux-sgx/common/inc/tlibc/sys/_types.h
+++ b/sgx-jvm/linux-sgx/common/inc/tlibc/sys/_types.h
@@ -42,8 +42,13 @@ typedef short __int16_t;
typedef unsigned short __uint16_t;
typedef int __int32_t;
typedef unsigned int __uint32_t;
+#ifdef __x86_64__
+typedef long __int64_t;
+typedef unsigned long __uint64_t;
+#else
typedef long long __int64_t;
typedef unsigned long long __uint64_t;
+#endif
/* 7.18.1.2 Minimum-width integer types */
typedef __int8_t __int_least8_t;
@@ -105,7 +110,7 @@ typedef long __clock_t;
typedef long __time_t;
typedef __builtin_va_list __va_list;
-typedef int __wint_t;
+typedef unsigned int __wint_t;
/* wctype_t and wctrans_t are defined in wchar.h */
typedef unsigned long int __wctype_t;
typedef int * __wctrans_t;
diff --git a/sgx-jvm/linux-sgx/common/inc/tlibc/sys/stdint.h b/sgx-jvm/linux-sgx/common/inc/tlibc/sys/stdint.h
index b76cc52ed8..7149079afc 100644
--- a/sgx-jvm/linux-sgx/common/inc/tlibc/sys/stdint.h
+++ b/sgx-jvm/linux-sgx/common/inc/tlibc/sys/stdint.h
@@ -110,17 +110,29 @@ typedef __uintmax_t uintmax_t;
#define INT8_MIN (-0x7f - 1)
#define INT16_MIN (-0x7fff - 1)
#define INT32_MIN (-0x7fffffff - 1)
+#ifdef __x86_64__
+#define INT64_MIN (-0x7fffffffffffffffL - 1)
+#else
#define INT64_MIN (-0x7fffffffffffffffLL - 1)
+#endif
#define INT8_MAX 0x7f
#define INT16_MAX 0x7fff
#define INT32_MAX 0x7fffffff
+#ifdef __x86_64__
+#define INT64_MAX 0x7fffffffffffffffL
+#else
#define INT64_MAX 0x7fffffffffffffffLL
+#endif
#define UINT8_MAX 0xff
#define UINT16_MAX 0xffff
#define UINT32_MAX 0xffffffffU
+#ifdef __x86_64__
+#define UINT64_MAX 0xffffffffffffffffUL
+#else
#define UINT64_MAX 0xffffffffffffffffULL
+#endif
/* 7.18.2.2 Limits of minimum-width integer types */
#define INT_LEAST8_MIN INT8_MIN
diff --git a/sgx-jvm/linux-sgx/common/se_wrapper/Makefile b/sgx-jvm/linux-sgx/common/se_wrapper/Makefile
index 0cf6f20ebd..d1481ebd01 100644
--- a/sgx-jvm/linux-sgx/common/se_wrapper/Makefile
+++ b/sgx-jvm/linux-sgx/common/se_wrapper/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/dh.cpp b/sgx-jvm/linux-sgx/common/src/dh.cpp
index 6b01601b9f..72079de936 100644
--- a/sgx-jvm/linux-sgx/common/src/dh.cpp
+++ b/sgx-jvm/linux-sgx/common/src/dh.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/ecp.cpp b/sgx-jvm/linux-sgx/common/src/ecp.cpp
index ea632f9443..c542106b85 100644
--- a/sgx-jvm/linux-sgx/common/src/ecp.cpp
+++ b/sgx-jvm/linux-sgx/common/src/ecp.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/ipp_bn.cpp b/sgx-jvm/linux-sgx/common/src/ipp_bn.cpp
index 03b7cb6826..853b23c73e 100644
--- a/sgx-jvm/linux-sgx/common/src/ipp_bn.cpp
+++ b/sgx-jvm/linux-sgx/common/src/ipp_bn.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/ipp_rsa_key.cpp b/sgx-jvm/linux-sgx/common/src/ipp_rsa_key.cpp
index e1ccd5513e..acf0ecee60 100644
--- a/sgx-jvm/linux-sgx/common/src/ipp_rsa_key.cpp
+++ b/sgx-jvm/linux-sgx/common/src/ipp_rsa_key.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/ipp_rsa_pub_key.cpp b/sgx-jvm/linux-sgx/common/src/ipp_rsa_pub_key.cpp
index dfc3fc3488..a7cc4ae69a 100644
--- a/sgx-jvm/linux-sgx/common/src/ipp_rsa_pub_key.cpp
+++ b/sgx-jvm/linux-sgx/common/src/ipp_rsa_pub_key.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/se_event.c b/sgx-jvm/linux-sgx/common/src/se_event.c
index 132e48b204..290c06b50c 100644
--- a/sgx-jvm/linux-sgx/common/src/se_event.c
+++ b/sgx-jvm/linux-sgx/common/src/se_event.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/se_map.c b/sgx-jvm/linux-sgx/common/src/se_map.c
index 687d035012..4041bd11ca 100644
--- a/sgx-jvm/linux-sgx/common/src/se_map.c
+++ b/sgx-jvm/linux-sgx/common/src/se_map.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/se_memory.c b/sgx-jvm/linux-sgx/common/src/se_memory.c
index d860b6bc34..afc447c010 100644
--- a/sgx-jvm/linux-sgx/common/src/se_memory.c
+++ b/sgx-jvm/linux-sgx/common/src/se_memory.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/se_rwlock.c b/sgx-jvm/linux-sgx/common/src/se_rwlock.c
index 9164a123f7..204ea7a172 100644
--- a/sgx-jvm/linux-sgx/common/src/se_rwlock.c
+++ b/sgx-jvm/linux-sgx/common/src/se_rwlock.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/se_thread.c b/sgx-jvm/linux-sgx/common/src/se_thread.c
index b188a049d1..d35400b06c 100644
--- a/sgx-jvm/linux-sgx/common/src/se_thread.c
+++ b/sgx-jvm/linux-sgx/common/src/se_thread.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/se_time.c b/sgx-jvm/linux-sgx/common/src/se_time.c
index 20bc84fc38..413a9e3a39 100644
--- a/sgx-jvm/linux-sgx/common/src/se_time.c
+++ b/sgx-jvm/linux-sgx/common/src/se_time.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/se_trace.c b/sgx-jvm/linux-sgx/common/src/se_trace.c
index ff81de827d..77fb09d8f6 100644
--- a/sgx-jvm/linux-sgx/common/src/se_trace.c
+++ b/sgx-jvm/linux-sgx/common/src/se_trace.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/sgx_profile.cpp b/sgx-jvm/linux-sgx/common/src/sgx_profile.cpp
index 17244cd008..59d2ede74a 100644
--- a/sgx-jvm/linux-sgx/common/src/sgx_profile.cpp
+++ b/sgx-jvm/linux-sgx/common/src/sgx_profile.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/sgx_read_rand.cpp b/sgx-jvm/linux-sgx/common/src/sgx_read_rand.cpp
index 410ea6979c..5268d24689 100644
--- a/sgx-jvm/linux-sgx/common/src/sgx_read_rand.cpp
+++ b/sgx-jvm/linux-sgx/common/src/sgx_read_rand.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/common/src/sgx_sha256_128.cpp b/sgx-jvm/linux-sgx/common/src/sgx_sha256_128.cpp
index a12618b7d1..352d5c288d 100644
--- a/sgx-jvm/linux-sgx/common/src/sgx_sha256_128.cpp
+++ b/sgx-jvm/linux-sgx/common/src/sgx_sha256_128.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/sgx-jvm/linux-sgx/download_prebuilt.sh b/sgx-jvm/linux-sgx/download_prebuilt.sh
index 2d8214786e..21cf639de5 100755
--- a/sgx-jvm/linux-sgx/download_prebuilt.sh
+++ b/sgx-jvm/linux-sgx/download_prebuilt.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -32,37 +32,36 @@
top_dir=`dirname $0`
-#out_dir=$top_dir/psw/ae/data/prebuilt
out_dir=$top_dir
-optlib_name=optimized_libs-1.7.100.35958.tar
-ae_file_name=prebuilt-ae-1.7.100.35958.tar
-server_url_path=https://download.01.org/intel-sgx/linux-1.7/
+optlib_name=optimized_libs-1.9.100.39124.tar
+ae_file_name=prebuilt-ae-1.9.100.39124.tar
+server_url_path=https://download.01.org/intel-sgx/linux-1.9/
server_optlib_url=$server_url_path/$optlib_name
server_ae_url=$server_url_path/$ae_file_name
-optlib_md5=d873e20155fceb870c2e14771cc2258a
-ae_md5=ca7cf31f1e9fee06feea44732cfbc908
+optlib_sha256=239cae39f87934d56c4eb919a4702c6ac82c19957b9a8d56c02b10eb4e27f573
+ae_sha256=c2f86a1e8483b91c5517c99d196599492f3106d4b2f9f7523fd9eaf59b9ed37b
rm -rf $out_dir/$optlib_name
wget $server_optlib_url -P $out_dir
if [ $? -ne 0 ]; then
echo "Fail to download file $server_optlib_url"
exit -1
fi
-md5sum $out_dir/$optlib_name > check_sum.txt
-grep $optlib_md5 check_sum.txt
+sha256sum $out_dir/$optlib_name > check_sum.txt
+grep $optlib_sha256 check_sum.txt
if [ $? -ne 0 ]; then
echo "File $server_optlib_url checksum failure"
exit -1
fi
rm -rf $out_dir/$ae_file_name
-wget $server_ae_url -P $out_dir
+wget $server_ae_url -P $out_dir
if [ $? -ne 0 ]; then
echo "Fail to download file $server_ae_url"
exit -1
fi
-md5sum $out_dir/$ae_file_name > check_sum.txt
-grep $ae_md5 check_sum.txt
+sha256sum $out_dir/$ae_file_name > check_sum.txt
+grep $ae_sha256 check_sum.txt
if [ $? -ne 0 ]; then
- echo "File $server_optlib_url checksum failure"
+ echo "File $server_ae_url checksum failure"
exit -1
fi
diff --git a/sgx-jvm/linux-sgx/external/DALSdk/JHI/linux/jhi.h b/sgx-jvm/linux-sgx/external/DALSdk/JHI/linux/jhi.h
new file mode 100644
index 0000000000..846d28a598
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/DALSdk/JHI/linux/jhi.h
@@ -0,0 +1,521 @@
+/*
+ Copyright 2010-2016 Intel Corporation
+
+ This software is licensed to you in accordance
+ with the agreement between you and Intel Corporation.
+
+ Alternatively, you can use this file in compliance
+ with the Apache license, Version 2.
+
+
+ Apache License, Version 2.0
+
+ Licensed 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.
+*/
+
+/**
+********************************************************************************
+**
+** @file jhi.h
+**
+** @brief Defines exported interfaces for JHI.DLL
+**
+** @author Elad Dabool
+**
+********************************************************************************
+*/
+
+#ifndef __JHI_H__
+#define __JHI_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "typedefs.h"
+
+// Format: Major.Minor.ReverseDate
+#define JHI_VERSION "1.13.20161115"
+
+//------------------------------------------------------------
+// Common & External Interfaces
+//------------------------------------------------------------
+
+typedef PVOID JHI_HANDLE ;
+typedef UINT32 JHI_RET ;
+typedef PVOID JHI_SESSION_HANDLE;
+
+//------------------------------------------------------------
+// Define Linkage for the functions
+//------------------------------------------------------------
+
+#define JHI_EXPORT __declspec(dllexport) JHI_RET
+
+
+//----------------------------------------------------------------------------------------------------------------
+// JHI 7.1 return codes - not used in 8.0 and above (backward compatibility only), JHI 8.0 return codes are listed below
+//----------------------------------------------------------------------------------------------------------------
+#define JHI_FILE_MISSING_SRC 0x101 // Source File not found in install/uninstall or unable to load
+ // file in SendAndRecv
+#define JHI_FILE_ERROR_AUTH 0x102 // Attempted to load the file, but FW returned back
+ // a manifest failure check and rejected it
+#define JHI_FILE_ERROR_DELETE 0x104 // Unable to remove file corresponding to the UUID in uninstall
+ // Maybe permission issues
+#define JHI_FILE_INVALID 0x105 // Invalid file - bad characters or larger than 64K
+#define JHI_FILE_ERROR_OPEN 0x106 // Unable to open file. Maybe permission issues
+#define JHI_FILE_UUID_MISMATCH 0x107 // UUIDs dont match between applet file and function input
+#define JHI_FILE_IDENTICAL 0x108 // downloaded applet matches existing one in Jom
+
+#define JHI_INVALID_COMMAND 0x202 // invalid JHI interface command
+#define JHI_ILLEGAL_VALUE 0x204 // validation failed on input parameters
+
+#define JHI_COMMS_ERROR 0x300 // Communications error due to HECI timeouts
+ // or ME auto resets or any other COMMS error
+#define JHI_SERVICE_INVALID_GUID 0x302 // Invalid COM guid (from DLL)
+
+#define JHI_APPLET_TIMEOUT 0x401 // This may be a result of a Java code in VM in an infinite loop.
+ // TL will kill applet in JOM and return error code
+#define JHI_APPID_NOT_EXIST 0x402 // If appid is not present in app table
+#define JHI_JOM_FATAL 0x403 //JOM fatal error
+#define JHI_JOM_OVERFLOW 0x404 //exceeds max installed applets or active sessions in JOM
+#define JHI_JOM_ERROR_DOWNLOAD 0x405 //JOM download error
+#define JHI_JOM_ERROR_UNLOAD 0x406 //JOM unload error
+
+#define JHI_ERROR_LOGGING 0x500 // Error in logging
+
+#define JHI_UNKNOWN_ERROR 0x600 // Any other error
+
+//----------------------------------------------------------------------------------------------------------------
+// JHI 8.0 return codes
+//----------------------------------------------------------------------------------------------------------------
+
+// General JHI Return Code
+#define JHI_SUCCESS 0x00 // general success response
+#define JHI_INVALID_HANDLE 0x201 // invalid JHI handle
+#define JHI_INVALID_PARAMS 0x203 // passed a null pointer to a required argument / illegal arguments passed to API function
+#define JHI_INVALID_APPLET_GUID JHI_ILLEGAL_VALUE // the applet UUID is invalid
+#define JHI_SERVICE_UNAVAILABLE 0x301 // there is no connection to JHI service
+#define JHI_ERROR_REGISTRY 0x501 // error for any registry based access or registry corruption
+#define JHI_ERROR_REPOSITORY_NOT_FOUND 0x1000 // when cannot find applets repository directory
+#define JHI_INTERNAL_ERROR 0x601 // an unexpected internal error happened.
+#define JHI_INVALID_BUFFER_SIZE 0x1001 // used a buffer that is larger than JHI_BUFFER_MAX
+#define JHI_INVALID_COMM_BUFFER 0x1002 // JVM_COMM_BUFFER passed to function is invalid
+
+// Install errors
+#define JHI_INVALID_INSTALL_FILE 0x1003 // the dalp file path is invalid
+#define JHI_READ_FROM_FILE_FAILED 0x1004 // failed to read DALP file
+#define JHI_INVALID_PACKAGE_FORMAT 0x1005 // dalp file format is not a valid
+#define JHI_FILE_ERROR_COPY 0x103 // applet file could not be copied to repository
+#define JHI_INVALID_INIT_BUFFER 0x1006 // passed an invalid init buffer to the function
+#define JHI_FILE_NOT_FOUND JHI_FILE_MISSING_SRC // could not find the specified dalp file
+#define JHI_INVALID_FILE_EXTENSION 0x1007 // applets package file must end with .dalp extension.
+#define JHI_MAX_INSTALLED_APPLETS_REACHED JHI_JOM_OVERFLOW // exceeds max applets allowed, need to uninstall an applet.
+#define JHI_INSTALL_FAILURE_SESSIONS_EXISTS 0x1008 // could not install because there are open sessions.
+#define JHI_INSTALL_FAILED 0x1009 // no compatible applet was found in the DALP file
+#define JHI_SVL_CHECK_FAIL 0x1040 // install failed due to an svl check
+#define JHI_ILLEGAL_PLATFORM_ID 0x1041 // install failed due to an illegal platform id
+
+// Uninstall errors
+#define JHI_DELETE_FROM_REPOSITORY_FAILURE JHI_FILE_ERROR_DELETE // unable to delete applet DALP file from repository
+#define JHI_UNINSTALL_FAILURE_SESSIONS_EXISTS 0x100A // for app uninstallation errors
+
+// Create Session errors
+#define JHI_APPLET_NOT_INSTALLED JHI_APPID_NOT_EXIST // trying to create a session of uninstalled applet
+#define JHI_MAX_SESSIONS_REACHED 0x100C // exceeds max sessions allowed, need to close a session.
+#define JHI_SHARED_SESSION_NOT_SUPPORTED 0x100D // the applet does not support shared sessions.
+#define JHI_MAX_SHARED_SESSION_REACHED 0x100E // failed to get session handle due to maximun handles limit.
+#define JHI_FIRMWARE_OUT_OF_RESOURCES 0x1018 // request causes the VM to exceed its memory quota
+#define JHI_ONLY_SINGLE_INSTANCE_ALLOWED 0x1019 // trying to create more than a single instance of an applet
+#define JHI_OPERATION_NOT_PERMITTED 0x101A // userspace tried to perform a kernel space operation
+
+// Close Session errors
+#define JHI_INVALID_SESSION_HANDLE 0x100F // the session handle is not of an active session.
+
+// Send And Recieve errors
+#define JHI_INSUFFICIENT_BUFFER 0x200 // buffer overflow - response greater than supplied Rx buffer
+#define JHI_APPLET_FATAL 0x400 // This may be a result of uncaught exception or unusual applet
+ // error that results in applet being terminated by TL VM.
+#define JHI_APPLET_BAD_STATE 0x407 // Applet in bad state, need to reopen the session
+
+// Register/Unregister session events
+#define JHI_SESSION_NOT_REGISTERED 0x1010 // trying to unregister a session that is not registered for events.
+#define JHI_SESSION_ALREADY_REGSITERED 0x1011 // Registration to an event is done only once.
+#define JHI_EVENTS_NOT_SUPPORTED 0x1012 // events are not supported for this type of session
+
+// Get Applet Property errors:
+#define JHI_APPLET_PROPERTY_NOT_SUPPORTED 0x1013 // Returned when calling GetAppletProperty with invalid property
+
+// Init errors
+#define JHI_SPOOLER_NOT_FOUND 0x1014 // cannot find the spooler file
+#define JHI_INVALID_SPOOLER 0x1015 // cannot download spooler / create an instance of the spooler
+#define JHI_NO_CONNECTION_TO_FIRMWARE JHI_COMMS_ERROR // JHI has no connection to the VM
+
+// DLL errors
+#define JHI_VM_DLL_FILE_NOT_FOUND 0x1016 // VM DLL is missing from the exe path
+#define JHI_VM_DLL_VERIFY_FAILED 0x1017 // DLL Signature or Publisher name are not valid.
+
+// IAC errors
+#define JHI_IAC_SERVER_SESSION_EXIST 0x1020 // May occur when trying to create two sessions on an IAC server applet
+#define JHI_IAC_SERVER_INTERNAL_SESSIONS_EXIST 0x1021 // May occur when trying to close an IAC server applet session that has internal sessions
+
+// Access control errors
+#define JHI_MISSING_ACCESS_CONTROL 0x1030 // Will return from install when trying to install an applet which uses an API that it is not permitted to.
+
+// SD session errors
+#define JHI_ERROR_OEM_SIGNING_DISABLED 0x1050 // May occur if DAL OEAM signing is disabled
+#define JHI_ERROR_SD_PUBLICKEY_HASH_FAILED 0x1051 // May occur if there is a mismatch in the public key hash of an SD
+#define JHI_ERROR_SD_DB_NO_FREE_SLOT 0x1052 // In case reached max installed SDs in DB
+#define JHI_ERROR_SD_TA_INSTALLATION_UNALLOWED 0x1053 // TA installation is not allowed for SD
+
+// -----------------------------------------------------------
+// Buffer size limitation is 2MB
+// JHI will not accept any buffer with greater size.
+//
+// Note that this size limitiation does not mark the maximum buffer size an applet can recieve,
+// applet max buffer size changes from one applet to another.
+//
+// This applies for all JHI API function that use buffers such as:
+// SendAndRecieve, CreateSession, GetAppletProperty.
+// -----------------------------------------------------------
+#define JHI_BUFFER_MAX 2097152
+
+
+//------------------------------------------------------------
+// Applet version macros
+//------------------------------------------------------------
+// While applet version is represented in a Major.Minor format (i.e. 1.0)
+// the VM repersntation of an applet version (that can be obtained using JHI_GetAppletProperty) is as an integer that combine both major and minor version.
+// in order to perform the transition between to two representation we offer the following macros:
+
+/*
+ Make VM Applet Version (32bit) from a Major.Minor format
+
+ Bits:
+ 00-07 - Major
+ 08-15 - Minor
+ 15-31 - Reserved (All Zero)
+*/
+#define MK_APPLET_VER(maj, min) ( (UINT32) \
+ (maj & 0x000000FFUL) | \
+ ((min << 8) & 0x0000FF00UL) & \
+ (0x0000FFFFUL) )
+
+/* Extract Applet Major Version from a VM integer representation (num) */
+#define MAJOR_APPLET_VER(num) ((UINT8) (num & 0x000000FFUL))
+
+/* Extract Applet Minor Version from a VM integer representation (num) */
+#define MINOR_APPLET_VER(num) ((UINT8) ((num & 0x0000FF00UL) >> 8))
+
+
+//------------------------------------------------------------
+// JHI Events
+//------------------------------------------------------------
+
+// this enum lists the types of data received by JHI event
+typedef enum _JHI_EVENT_DATA_TYPE
+{
+ JHI_DATA_FROM_APPLET = 0, // the event raised by an applet session
+ JHI_DATA_FROM_SERVICE = 1 // the event raised by JHI service
+}JHI_EVENT_DATA_TYPE;
+
+//this struct repersents the data received upon a JHI event
+typedef struct {
+ UINT32 datalen; // byte length of the event data
+ UINT8* data; // the buffer that contains the event data
+ JHI_EVENT_DATA_TYPE dataType; // the event type
+}JHI_EVENT_DATA;
+
+// This is the format for a callback function that is used in order to
+// receive session events.
+typedef void (*JHI_EventFunc)(JHI_SESSION_HANDLE SessionHandle, JHI_EVENT_DATA EventData);
+
+
+//------------------------------------------------------------
+// JHI Version info.
+//------------------------------------------------------------
+
+// this enum lists the communication types that are used
+// by JHI in order to communicate with the firmware
+typedef enum _JHI_COMMUNICATION_TYPE
+{
+ JHI_SOCKETS = 0, // communication by sockets
+ JHI_HECI = 1 // communication by HECI
+} JHI_COMMUNICATION_TYPE;
+
+#define VERSION_BUFFER_SIZE 50
+
+// this enum lists the platfom types that are supported by JHI
+typedef enum _JHI_PLATFROM_ID
+{
+ ME = 0, // Intel(R) Management Engine (Intel(R) ME)
+ SEC = 1,
+ CSE = 2,
+ INVALID_PLATFORM_ID = -1
+} JHI_PLATFROM_ID;
+
+// This enum lists the VM types that are supported by JHI
+typedef enum _JHI_VM_TYPE
+{
+ JHI_VM_TYPE_INVALID = -1,
+ JHI_VM_TYPE_TL = 0,
+ JHI_VM_TYPE_BEIHAI = 1, // Alias of BHv1 for backward compatibility
+ JHI_VM_TYPE_BEIHAI_V1 = 1,
+ JHI_VM_TYPE_BEIHAI_V2 = 2
+} JHI_VM_TYPE;
+
+// Different VM plugin types used by JHI
+typedef enum _JHI_PLUGIN_TYPE
+{
+ JHI_PLUGIN_TYPE_INVALID = 0,
+ JHI_PLUGIN_TYPE_TL = 1,
+ JHI_PLUGIN_TYPE_BEIHAI_V1 = 2,
+ JHI_PLUGIN_TYPE_BEIHAI_V2 = 3
+} JHI_PLUGIN_TYPE;
+
+
+// this struct contains information about the JHI service and the
+// firmware versions, and additional info
+typedef struct
+{
+ char jhi_version[VERSION_BUFFER_SIZE]; // the version of the JHI service
+ char fw_version[VERSION_BUFFER_SIZE]; // the version of the firmware
+ JHI_COMMUNICATION_TYPE comm_type; // the communication type between JHI and the firmware
+ JHI_PLATFROM_ID platform_id; // the platform supported by the JHI service
+ JHI_VM_TYPE vm_type; // the VM type supported by the JHI service
+ UINT32 reserved[19]; // reserved bits
+} JHI_VERSION_INFO;
+
+
+//------------------------------------------------------------
+// Session info
+//------------------------------------------------------------
+
+// this enum lists the states of a session
+typedef enum _JHI_SESSION_STATE
+{
+ JHI_SESSION_STATE_ACTIVE = 0, // the session is active
+ JHI_SESSION_STATE_NOT_EXISTS = 1 // the session does not exists
+} JHI_SESSION_STATE;
+
+// this struct contains information for a given session
+typedef struct
+{
+ JHI_SESSION_STATE state; // the session state
+ UINT32 flags; // the flags used when this session created
+ UINT32 reserved[20]; // reserved bits
+} JHI_SESSION_INFO;
+
+//------------------------------------------------------------
+// Create Session flags
+//------------------------------------------------------------
+// this enum lists the flags that used when creating a session
+//
+#define JHI_NO_FLAGS 0 // no flags to be used
+#define JHI_SHARED_SESSION 1 // create a shared session, or receive a handle for an existing shared session
+
+//------------------------------------------------------------
+// Data Buffer
+//------------------------------------------------------------
+typedef struct
+{
+ PVOID buffer;
+ UINT32 length ;
+} DATA_BUFFER ;
+
+
+//------------------------------------------------------------
+// For Tx and Rx downto the MEI routine
+// DON'T ADD MEMBERS IN
+//------------------------------------------------------------
+typedef struct
+{
+ DATA_BUFFER TxBuf [1] ;
+
+ //--------------------!!!!!!!!!!!--------------------//
+ // Dont add members in between TxBuf[1] & RxBuf[1] //
+ // The code that uses this depends on it //
+ //--------------------!!!!!!!!!!!--------------------//
+
+ DATA_BUFFER RxBuf [1] ;
+
+ // You may add anything here
+} JVM_COMM_BUFFER ;
+
+
+
+
+//------------------------------------------------------------
+// Function Prototypes
+
+
+//------------------------------------------------------------
+// Function: JHI_Initialize
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_Initialize (
+ OUT JHI_HANDLE* ppHandle,
+ IN PVOID context,
+ IN UINT32 flags
+) ;
+
+//------------------------------------------------------------
+// Function: JHI_Deinit
+//------------------------------------------------------------
+JHI_EXPORT JHI_Deinit(IN JHI_HANDLE handle) ;
+
+
+//------------------------------------------------------------
+// Function: JHI_SendAndRecv
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_SendAndRecv2(
+ IN JHI_HANDLE handle,
+ IN JHI_SESSION_HANDLE SessionHandle,
+ IN INT32 nCommandId,
+ INOUT JVM_COMM_BUFFER* pComm,
+ OUT INT32* responseCode);
+
+//------------------------------------------------------------
+// Function: JHI_Install
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_Install2 (
+ IN const JHI_HANDLE handle,
+ IN const char* AppId,
+ IN const FILECHAR* srcFile
+);
+
+//------------------------------------------------------------
+// Function: JHI_Uninstall
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_Uninstall(
+ IN JHI_HANDLE handle,
+ IN const char* AppId
+);
+
+//------------------------------------------------------------
+// Function: JHI_GetAppletProperty
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_GetAppletProperty(
+ IN JHI_HANDLE handle,
+ IN const char* AppId,
+ INOUT JVM_COMM_BUFFER* pComm
+);
+
+//------------------------------------------------------------
+// Function: JHI_CreateSession
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_CreateSession (
+ IN const JHI_HANDLE handle,
+ IN const char* AppId,
+ IN UINT32 flags,
+ IN DATA_BUFFER* initBuffer,
+ OUT JHI_SESSION_HANDLE* pSessionHandle
+);
+
+//------------------------------------------------------------
+// Function: JHI_GetSessionsCount
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_GetSessionsCount(
+ IN const JHI_HANDLE handle,
+ IN const char* AppId,
+ OUT UINT32* SessionsCount
+);
+
+//------------------------------------------------------------
+// Function: JHI_CloseSession
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_CloseSession(
+ IN const JHI_HANDLE handle,
+ IN JHI_SESSION_HANDLE* pSessionHandle
+);
+
+//------------------------------------------------------------
+// Function: JHI_ForceCloseSession
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_ForceCloseSession(
+IN const JHI_HANDLE handle,
+IN JHI_SESSION_HANDLE* pSessionHandle
+);
+
+//------------------------------------------------------------
+// Function: JHI_GetSessionInfo
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_GetSessionInfo(
+ IN const JHI_HANDLE handle,
+ IN JHI_SESSION_HANDLE SessionHandle,
+ OUT JHI_SESSION_INFO* SessionInfo
+);
+
+#ifdef __ANDROID__
+//------------------------------------------------------------
+// Function: JHI_ClearSessions
+//
+JHI_RET
+JHI_ClearSessions(
+ IN const JHI_HANDLE handle,
+ IN int ApplicationPid
+);
+
+//------------------------------------------------------------
+// Function: JHI_GetSessionsCount
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_CreateSessionProcess (
+ IN const JHI_HANDLE handle,
+ IN const char* AppId,
+ IN int SessionPid,
+ IN UINT32 flags,
+ IN DATA_BUFFER* initBuffer,
+ OUT JHI_SESSION_HANDLE* pSessionHandle
+);
+#endif //__ANDROID__
+
+//------------------------------------------------------------
+// Function: JHI_RegisterEvent
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_RegisterEvents(
+ IN const JHI_HANDLE handle,
+ IN JHI_SESSION_HANDLE SessionHandle,
+ IN JHI_EventFunc pEventFunction);
+
+//------------------------------------------------------------
+// Function: JHI_UnRegisterEvent
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_UnRegisterEvents(
+ IN const JHI_HANDLE handle,
+ IN JHI_SESSION_HANDLE SessionHandle);
+
+//------------------------------------------------------------
+// Function: JHI_GetVersionInfo
+//------------------------------------------------------------
+JHI_EXPORT
+JHI_GetVersionInfo (
+ IN const JHI_HANDLE handle,
+ OUT JHI_VERSION_INFO* pVersionInfo);
+
+#ifdef __cplusplus
+};
+#endif
+
+
+#endif
\ No newline at end of file
diff --git a/sgx-jvm/linux-sgx/external/DALSdk/JHI/linux/typedefs.h b/sgx-jvm/linux-sgx/external/DALSdk/JHI/linux/typedefs.h
new file mode 100644
index 0000000000..5e4b02fb96
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/DALSdk/JHI/linux/typedefs.h
@@ -0,0 +1,101 @@
+/*
+ Copyright 2010-2016 Intel Corporation
+
+ This software is licensed to you in accordance
+ with the agreement between you and Intel Corporation.
+
+ Alternatively, you can use this file in compliance
+ with the Apache license, Version 2.
+
+
+ Apache License, Version 2.0
+
+ Licensed 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.
+*/
+
+/**
+********************************************************************************
+**
+** @file typedefs.h
+**
+** @brief Contains common type declarations used throughout the code
+**
+** @author Ranjit Narjala
+**
+********************************************************************************
+*/
+
+#ifndef _TYPEDEFS_H_
+#define _TYPEDEFS_H_
+
+#include
+#include
+
+#ifdef _WIN32
+#include
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef uint8_t UINT8;
+typedef uint16_t UINT16;
+typedef uint32_t UINT32;
+typedef int8_t INT8;
+typedef int16_t INT16;
+typedef int32_t INT32;
+typedef void * PVOID;
+
+#ifdef _WIN32
+typedef wchar_t FILECHAR;
+#else
+typedef char TCHAR;
+typedef char FILECHAR;
+#define __declspec(x)
+#endif /* _WIN32 */
+
+#ifndef IN
+#define IN // Defines an input parameter
+#endif
+
+#ifndef OUT
+#define OUT // Defines an output parameter
+#endif
+
+#ifndef INOUT
+#define INOUT // Defines an input/output parameter
+#endif
+
+#ifndef TRUE
+#define TRUE 1 // True value for a BOOLEAN
+#endif
+#ifndef FALSE
+#define FALSE 0 // False value for a BOOLEAN
+#endif
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#ifndef NULL
+#ifdef __cplusplus
+// Define NULL pointer value under C++
+#define NULL 0
+#else
+// Define NULL pointer value non-C++
+#define NULL ((void *)0)
+#endif
+#endif
+
+#endif // _TYPEDEFS_H
\ No newline at end of file
diff --git a/sgx-jvm/linux-sgx/external/crypto_px/Makefile b/sgx-jvm/linux-sgx/external/crypto_px/Makefile
index 6739cdaf32..963b221853 100644
--- a/sgx-jvm/linux-sgx/external/crypto_px/Makefile
+++ b/sgx-jvm/linux-sgx/external/crypto_px/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2011-2016 Intel Corporation. All rights reserved.
+# Copyright (C) 2011-2017 Intel Corporation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -43,7 +43,7 @@ INC := -I./include \
-I./sources/ippcp/src
SRCS := $(wildcard ./sources/ippcp/src/*.c)
-OBJS := $(SRCS:.c=.o)
+OBJS := $(sort $(SRCS:.c=.o))
libcrypto_px.a: $(OBJS)
ar crv $@ $^
@@ -59,4 +59,6 @@ clean:
@$(RM) $(OBJS) libcrypto_px.a
.PHONY: rebuild
-rebuild: clean all
+rebuild:
+ $(MAKE) clean
+ $(MAKE) all
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/CHANGELOG.md b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/CHANGELOG.md
new file mode 100644
index 0000000000..36657a302c
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/CHANGELOG.md
@@ -0,0 +1,87 @@
+# Intel(R) EPID SDK ChangeLog {#ChangeLog}
+
+## [3.0.0]
+
+### New in This Release
+
+* Support for verification of EPID 1.1 members.
+
+* Make-based build system support.
+
+* Sample material includes compressed keys.
+
+* Enhanced documentation, including step-by-step walkthroughs of
+ example applications.
+
+* Validated on additional IoT platforms.
+
+ - Ostro Linux
+
+ - Snappy Ubuntu Core
+
+
+### Changes
+
+* A new verifier API has been added to set the basename to be used for
+ verification. Verifier APIs that used to accept basenames now use
+ the basename set via EpidVerifierSetBasename.
+
+* The verifier pre-computation structure has been changed to include
+ the group ID to allow detection of errors that result from providing
+ a pre-computation blob from a different group to EpidVerifierCreate.
+
+
+### Fixes
+
+* The kEpidxxxRevoked enums have been renamed to be consistent with
+ other result return values.
+
+
+### Known Issues
+
+* SHA-512/256 hash algorithm is not supported.
+
+
+## [2.0.0] - 2016-07-20
+
+### New in This Release
+
+* Signed binary issuer material support.
+
+ - Binary issuer material validation APIs.
+
+ - Updated sample issuer material.
+
+ - Updated samples that parse signed binary issuer material.
+
+* Compressed member private key support.
+
+* Validated on additional IoT platforms.
+
+ - Windows 10 IoT Core
+
+ - WindRiver IDP
+
+
+### Changes
+
+* The default hash algorithm has changed. It is now SHA-512.
+
+* Functions that returned `EpidNullPtrErr` now return `EpidBadArgErr`
+ instead.
+
+
+### Fixes
+
+* Updated build flags to work around GCC 4.8.5 defect.
+
+
+## [1.0.0] - 2016-03-03
+
+### New in This Release
+
+* Basic sign and verify functionality
+
+* Dynamic join support for member
+
+* Apache 2.0 License
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/LICENSE.txt b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/LICENSE.txt
new file mode 100644
index 0000000000..2afcf387aa
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/LICENSE.txt
@@ -0,0 +1,249 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright {yyyy} {name of copyright owner}
+
+ Licensed 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.
+
+
+=======================================================================
+
+Intel(R) Enhanced Privacy ID (Intel(R) EPID) SDK Subcomponents:
+
+The Intel(R) EPID SDK contains subcomponents with separate copyright notices
+and license terms. Your use of the source code for these subcomponents
+is subject to the terms and conditions of the following licenses.
+
+
+-----------------------------------------------------------------------
+The BSD 3-Clause License
+-----------------------------------------------------------------------
+
+The Intel(R) EPID SDK bundles portions of the following under the BSD 3-Clause
+License:
+
+ - Google Test (https://github.com/google/googletest)
+ Copyright 2008, Google Inc.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/Makefile.in b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/Makefile.in
new file mode 100644
index 0000000000..449d978ba7
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/Makefile.in
@@ -0,0 +1,130 @@
+#!/usr/bin/make -f
+include ../../buildenv.mk
+
+#variables are set by configure
+prefix = @prefix@
+installdir = $(prefix)/
+epidinstalldir = $(installdir)/epid-sdk
+CFLAGS = @CFLAGS@
+
+#g++ flags
+CXX_FLAGS := $(CFLAGS) -O2 -Werror -Wall -Wextra -Wno-missing-braces \
+ -Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-unused-function \
+ -fno-strict-aliasing -Wno-unused-but-set-variable -Wno-comment -DNDEBUG -fPIC
+#gcc flags
+CC_FLAGS := $(CXX_FLAGS) -D_IPP_v50_ -D_IPP_DEBUG
+
+#intel c++ compiler flags
+ICPC_FLAGS := $(CFLAGS) -O2 -Werror -Wall -Wextra -DNDEBUG
+#intel c compiler flags
+ICC_FLAGS := $(ICPC_FLAGS) -D_IPP_v50_ -D_IPP_DEBUG
+
+#check if architecture was specified
+#or take it by shell command
+ifeq ($(findstring -m32,$(CFLAGS)),-m32)
+ ARCH = x86
+ CXXFLAGS += -m32
+else ifeq ($(findstring -m64,$(CFLAGS)),-m64)
+ ARCH = x86_64
+ CXXFLAGS += -m64
+else
+ ARCH := $(shell uname -m)
+endif
+
+#set tools and flags depending on specified compiler
+ifeq ($(CC),icc)
+ CFLAGS := $(ICC_FLAGS)
+ CXXFLAGS := $(ICPC_FLAGS)
+ AR = xiar
+else ifeq ($(CC),cc)
+ CFLAGS := $(CC_FLAGS)
+ifeq ($(ARCH),x86)
+ CFLAGS += -m32
+endif
+else
+ CFLAGS := $(CC_FLAGS)
+ CXXFLAGS := $(CXX_FLAGS)
+ ARCH = x86
+endif
+
+#set c++11 for all c++ compilers
+CXXFLAGS += -std=c++0x
+
+#set flags for unit tests executables
+GTEST_FLAGS = --gtest_color=yes \
+ --gtest_print_time=1 \
+ --gtest_output=xml
+
+export CC AR LDFLAGS ARCH CFLAGS
+export CXX CXXFLAGS
+export epidinstalldir
+export GTEST_FLAGS
+
+#just output
+$(info $$ccompiler is [${CC}])
+$(info $$cxxcompiler is [${CXX}])
+$(info $$architecture is [${ARCH}])
+
+#targets part
+all: ipp common member verifier dropt
+
+clean:
+ $(MAKE) -C ./ext/ipp/sources/ippcp clean
+ $(MAKE) -C ./ext/ipp/sources/ippcpepid clean
+ $(MAKE) -C ./epid/common/ clean
+ $(MAKE) -C ./epid/member/ clean
+ $(MAKE) -C ./epid/verifier/ clean
+ $(MAKE) -C ./example/util/ clean
+ $(MAKE) -C ./example/ clean
+ $(MAKE) -C ./tools/ clean
+ $(MAKE) -C ./ext/gtest/ clean
+ $(MAKE) -C ./epid/common-testhelper/ clean
+ $(MAKE) -C ./ext/dropt/ clean
+
+install:
+ $(MAKE) -C ./ext/ipp/sources/ippcp install
+ $(MAKE) -C ./ext/ipp/sources/ippcpepid install
+ $(MAKE) -C ./epid/common/ install
+ $(MAKE) -C ./epid/member/ install
+ $(MAKE) -C ./epid/verifier/ install
+ $(MAKE) -C ./example/ install
+ $(MAKE) -C ./tools/ install
+ $(MAKE) -C ./epid/common-testhelper/ install
+
+uninstall:
+ rm -rf $(epidinstalldir)
+
+ipp:
+ $(MAKE) -C ./ext/ipp/sources/ippcp all
+ $(MAKE) -C ./ext/ipp/sources/ippcpepid all ARCH=$(ARCH)
+
+common:
+ $(MAKE) -C ./epid/common/ all
+
+member:
+ $(MAKE) -C ./epid/member/ all
+
+verifier:
+ $(MAKE) -C ./epid/verifier/ all
+
+dropt:
+ $(MAKE) -C ./ext/dropt/ all
+
+examples_util:
+ $(MAKE) -C ./example/util/ all
+
+check:
+ $(MAKE) -C ./ext/gtest/ all
+ $(MAKE) -C ./epid/common-testhelper/ all
+ $(MAKE) -C ./epid/common-testhelper/ check
+ $(MAKE) -C ./epid/common/ check
+ $(MAKE) -C ./epid/member/ check
+ $(MAKE) -C ./epid/verifier/ check
+
+examples:
+ $(MAKE) -C ./example/ all
+
+epid_tools:
+ $(MAKE) -C ./tools/ all
+
+build: all check install
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/NOTICE.txt b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/NOTICE.txt
new file mode 100644
index 0000000000..3a89982c85
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/NOTICE.txt
@@ -0,0 +1,23 @@
+Intel(R) Enhanced Privacy ID (Intel(R) EPID) SDK
+Copyright 2016 Intel Corporation
+
+==========
+
+The Intel(R) EPID SDK contains subcomponents with separate copyright notices
+and license terms.
+
+Your use of the source code for the these subcomponents is subject to
+the terms and conditions of their respective licenses.
+
+See the LICENSE.txt file for a list of subcomponents and dependencies and
+their respective licenses.
+
+----------
+
+The source code used for math primitives in the Intel(R) EPID SDK is a
+subset of the Intel(R) Integrated Performance Primitives (Intel(R) IPP)
+Cryptography library (v9.0.3) written in C.
+For higher performance, you can use the commercial version of the
+Intel(R) IPP Cryptography libraries, which are available at
+https://software.intel.com/articles/download-ipp-cryptography-libraries.
+
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/README.md b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/README.md
new file mode 100644
index 0000000000..5cb5c5f4ac
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/README.md
@@ -0,0 +1,57 @@
+# Intel(R) EPID SDK
+
+The Intel(R) Enhanced Privacy ID Software Development Kit
+
+Intel(R) EPID SDK enables adding Intel(R) EPID support to applications
+and platforms.
+
+Intel(R) EPID is a cryptographic protocol which enables the remote
+authentication of a trusted platform whilst preserving the user's
+privacy.
+
+* For a given public key there are many (e.g., millions) of private
+ keys. The key holders form a group.
+
+* Any key holder may sign against the one public key.
+
+* No one can tell which private key signed the data. This is the
+ privacy property.
+
+You can use Intel(R) EPID as a foundational building block for a
+multitude of security solutions.
+
+
+## Prerequisites
+
+* [Python](http://www.python.org)
+
+* [SCons](http://www.scons.org/)
+
+* [Parts](https://bitbucket.org/sconsparts/parts)
+
+* A C/C++ compiler supported by Parts
+
+
+## What's New in This Release
+
+See [CHANGELOG.md](CHANGELOG.md).
+
+
+## Documentation
+
+See [doc/index.html](doc/index.html) to browse the html
+documentation.
+
+
+## License
+
+See [LICENSE.txt](LICENSE.txt).
+
+
+## Math Primitives
+
+The source code used for math primitives in the Intel(R) EPID SDK is a
+subset of the Intel(R) IPP Cryptography library (v9.0.3) written in
+C. For higher performance, you can use the commercial version of the
+IPP Cryptography libraries, which are available at
+https://software.intel.com/articles/download-ipp-cryptography-libraries.
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/SConstruct b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/SConstruct
new file mode 100644
index 0000000000..195222d8c4
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/SConstruct
@@ -0,0 +1,237 @@
+############################################################################
+# Copyright 2016 Intel Corporation
+#
+# Licensed 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.
+############################################################################
+
+"""use scons -k to invoke all builds regardless of unit test failures
+"""
+import string
+import sys
+import SCons.Script
+import os.path
+from parts import *
+
+print "**************** TOOLS ****************"
+print '* Python Version:', string.split(sys.version, " ", 1)[0]
+print '* SCons Version:', SCons.__version__
+print '* Parts Version:', PartsExtensionVersion()
+print "***************************************"
+
+def PrintCompilerVersion(env):
+ """
+ Function to print version of compilers used for build
+ Args:
+ env: Environment to get compilers version
+ """
+ res = ''
+ if 'INTELC_VERSION' in env:
+ res += 'ICC ' + env['INTELC_VERSION'] + ';'
+ if 'MSVC_VERSION' in env:
+ res += 'MS ' + env['MSVC_VERSION'] + ';'
+ if 'GXX_VERSION' in env:
+ res += 'GXX ' + env['GXX_VERSION'] + ';'
+ if 'GCC_VERSION' in env:
+ res += 'GCC ' + env['GCC_VERSION'] + ';'
+ print 'Compiler Version: ', res
+
+def include_parts(part_list, **kwargs):
+ for parts_file in part_list:
+ if os.path.isfile(DefaultEnvironment().subst(parts_file)):
+ Part(parts_file=parts_file, **kwargs)
+
+######## Part groups ####################################################
+ipp_parts = ['ext/ipp/ippcp.parts',
+ 'ext/ipp/ippcpepid.parts',
+ 'ext/ipp/ippcommon.parts']
+utest_parts = ['ext/gtest/gtest.parts',
+ 'epid/common-testhelper/common-testhelper.parts']
+common_parts = ['epid/common/common.parts']
+member_parts = ['epid/member/member.parts']
+verifier_parts = ['epid/verifier/verifier.parts']
+util_parts = ['example/util/util.parts']
+example_parts = ['ext/dropt/dropt.parts',
+ 'example/verifysig/verifysig.parts',
+ 'example/signmsg/signmsg.parts',
+ 'example/data/data.parts',
+ 'example/compressed_data/compressed_data.parts']
+tools_parts = ['tools/revokegrp/revokegrp.parts',
+ 'tools/revokekey/revokekey.parts',
+ 'tools/revokesig/revokesig.parts',
+ 'tools/extractkeys/extractkeys.parts',
+ 'tools/extractgrps/extractgrps.parts']
+testbot_test_parts = ['test/testbot/testbot.parts',
+ 'test/testbot/signmsg/signmsg_testbot.parts',
+ 'test/testbot/verifysig/verifysig_testbot.parts',
+ 'test/testbot/integration/integration_testbot.parts',
+ 'test/testbot/ssh_remote/ssh_remote_testbot.parts',
+ 'test/testbot/revokegrp/revokegrp_testbot.parts',
+ 'test/testbot/revokekey/revokekey_testbot.parts',
+ 'test/testbot/revokesig/revokesig_testbot.parts',
+ 'test/testbot/extractkeys/extractkeys_testbot.parts',
+ 'test/testbot/extractgrps/extractgrps_testbot.parts']
+package_parts = ['ext/gtest/gtest.parts',
+ 'ext/ipp/ippcommon.parts',
+ 'ext/ipp/ippcp.parts',
+ 'ext/ipp/ippcpepid.parts',
+ 'package.parts']
+internal_tools_parts = ['ext/dropt/dropt.parts',
+ 'tools/ikgfwrapper/ikgfwrapper.parts']
+######## End Part groups ###############################################
+######## Commandline option setup #######################################
+product_variants = [
+ 'production',
+ 'internal-test',
+ 'package-epid-sdk',
+ 'internal-tools'
+]
+
+default_variant = 'production'
+
+def is_production():
+ return GetOption("product-variant") == 'production'
+
+def is_internal_test():
+ return GetOption("product-variant") == 'internal-test'
+
+def is_internal_tools():
+ return GetOption("product-variant") == 'internal-tools'
+
+def is_package():
+ return GetOption("product-variant") == 'package-epid-sdk'
+
+def use_commercial_ipp():
+ return GetOption("use-commercial-ipp")
+
+def variant_dirname():
+ s = GetOption("product-variant")
+ if s == 'production':
+ return 'epid-sdk'
+ elif s == 'package-epid-sdk':
+ return 'epid-sdk'
+ else:
+ return s
+
+AddOption("--product-variant", "--prod-var", nargs=1,
+ help=("Select product variant to build. Possible "
+ "options are: {0}. The default is {1} if no option "
+ "is specified").format(", ".join(product_variants),
+ default_variant),
+ action='store', dest='product-variant', type='choice',
+ choices=product_variants, default=default_variant)
+
+AddOption("--use-commercial-ipp",
+ help=("Link with commercial IPP. The IPPROOT environment variable "
+ "must be set."),
+ action='store_true', dest='use-commercial-ipp',
+ default=False)
+
+SetOptionDefault("PRODUCT_VARIANT", variant_dirname())
+
+######## End Commandline option setup ###################################
+
+
+# fix for parts 0.10.8 until we get better logic to extract ${CC}
+SetOptionDefault('PARTS_USE_SHORT_TOOL_NAMES', 1)
+
+def set_default_production_options():
+ SetOptionDefault('TARGET_PLATFORM', 'x86_64')
+ SetOptionDefault('CONFIG', 'release')
+
+ SetOptionDefault('TARGET_VARIANT', '${TARGET_OS}-${TARGET_ARCH}')
+
+ SetOptionDefault('INSTALL_ROOT',
+ '#_install/${PRODUCT_VARIANT}')
+
+ SetOptionDefault('INSTALL_TOOLS_BIN',
+ '$INSTALL_ROOT/tools')
+
+ SetOptionDefault('INSTALL_SAMPLE_BIN',
+ '$INSTALL_ROOT/example')
+
+ SetOptionDefault('INSTALL_EPID_INCLUDE',
+ '$INSTALL_ROOT/include/epid')
+
+ SetOptionDefault('INSTALL_IPP_INCLUDE',
+ '$INSTALL_ROOT/include/ext/ipp/include')
+
+ SetOptionDefault('INSTALL_TEST_BIN',
+ '$INSTALL_ROOT/test')
+
+ SetOptionDefault('INSTALL_LIB',
+ '$INSTALL_ROOT/lib/${TARGET_VARIANT}')
+
+ SetOptionDefault('INSTALL_SAMPLE_DATA',
+ '$INSTALL_ROOT/example')
+
+ SetOptionDefault('INSTALL_TOOLS_DATA',
+ '$INSTALL_ROOT/tools')
+
+ SetOptionDefault('PACKAGE_DIR',
+ '#_package')
+
+ SetOptionDefault('PACKAGE_ROOT',
+ '#_package/${PRODUCT_VARIANT}')
+
+ SetOptionDefault('ROOT',
+ '#')
+
+ SetOptionDefault('PACKAGE_NAME',
+ '{PRODUCT_VARIANT}')
+
+if is_production():
+ set_default_production_options()
+ ipp_mode = ['install_lib']
+ if use_commercial_ipp():
+ ipp_mode.append('use_commercial_ipp')
+ include_parts(ipp_parts, mode=ipp_mode,
+ INSTALL_INCLUDE='${INSTALL_IPP_INCLUDE}')
+ include_parts(utest_parts + common_parts +
+ member_parts + verifier_parts,
+ mode=['install_lib'],
+ INSTALL_INCLUDE='${INSTALL_EPID_INCLUDE}')
+ include_parts(util_parts + example_parts,
+ INSTALL_INCLUDE='${INSTALL_EPID_INCLUDE}',
+ INSTALL_BIN='${INSTALL_SAMPLE_BIN}',
+ INSTALL_DATA='${INSTALL_SAMPLE_DATA}')
+ include_parts(tools_parts,
+ INSTALL_BIN='${INSTALL_TOOLS_BIN}',
+ INSTALL_DATA='${INSTALL_TOOLS_DATA}')
+ PrintCompilerVersion(DefaultEnvironment())
+ Default('all')
+ Default('run_utest::')
+
+if is_internal_test():
+ set_default_production_options()
+ include_parts(ipp_parts)
+ include_parts(utest_parts + common_parts +
+ member_parts + verifier_parts)
+ include_parts(util_parts + example_parts,
+ INSTALL_BIN='${INSTALL_SAMPLE_BIN}',
+ INSTALL_DATA='${INSTALL_SAMPLE_DATA}')
+ include_parts(tools_parts, INSTALL_BIN='${INSTALL_TOOLS_BIN}')
+ include_parts(testbot_test_parts)
+ Default('all')
+
+if is_internal_tools():
+ set_default_production_options()
+ include_parts(ipp_parts + utest_parts + common_parts + util_parts)
+ include_parts(internal_tools_parts, INSTALL_BIN='${INSTALL_TOOLS_BIN}')
+ Default('ikgfwrapper')
+
+if is_package():
+ set_default_production_options()
+ include_parts(package_parts,
+ mode=['install_package'],
+ INSTALL_TOP_LEVEL='${PACKAGE_ROOT}')
+ Default('package')
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/configure b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/configure
new file mode 100755
index 0000000000..02a6d411ea
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/configure
@@ -0,0 +1,3799 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for Intel(R) EPID SDK .
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 &1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='Intel(R) EPID SDK'
+PACKAGE_TARNAME='intel-r--epid-sdk'
+PACKAGE_VERSION=' '
+PACKAGE_STRING='Intel(R) EPID SDK '
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_default_prefix=`pwd`/_install
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+ac_ct_CXX
+CXXFLAGS
+CXX
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CXX
+CXXFLAGS
+CCC'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures Intel(R) EPID SDK to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root
+ [DATAROOTDIR/doc/intel-r--epid-sdk]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of Intel(R) EPID SDK :";;
+ esac
+ cat <<\_ACEOF
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L if you have libraries in a
+ nonstandard directory
+ LIBS libraries to pass to the linker, e.g. -l
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
+ you have headers in a nonstandard directory
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+Intel(R) EPID SDK configure
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by Intel(R) EPID SDK $as_me , which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# save flags
+CFLAGS_OLD="$CFLAGS"
+CPPFLAGS_OLD="$CPPFLAGS"
+
+#c compiler priority
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in gcc icc cc
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in gcc icc cc
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include
+#include
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+#c++ compiler priority
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ icpc c++
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ icpc c++
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# restore flags
+CFLAGS="$CFLAGS_OLD"
+CPPFLAGS="$CPPFLAGS_OLD"
+
+# default install path is current directory
+
+ac_config_files="$ac_config_files Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by Intel(R) EPID SDK $as_me , which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+Intel(R) EPID SDK config.status
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' >$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X " :F $CONFIG_FILES "
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+
+ esac
+
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/configure.ac b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/configure.ac
new file mode 100644
index 0000000000..c5d3082725
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/configure.ac
@@ -0,0 +1,20 @@
+AC_INIT([Intel(R) EPID SDK],[ ])
+
+# save flags
+CFLAGS_OLD="$CFLAGS"
+CPPFLAGS_OLD="$CPPFLAGS"
+
+#c compiler priority
+AC_PROG_CC([gcc icc cc])
+#c++ compiler priority
+AC_PROG_CXX([g++ icpc c++])
+
+# restore flags
+CFLAGS="$CFLAGS_OLD"
+CPPFLAGS="$CPPFLAGS_OLD"
+
+# default install path is current directory
+AC_PREFIX_DEFAULT([`pwd`/_install])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/epid_params-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/epid_params-testhelper.cc
new file mode 100644
index 0000000000..f1be7e9e1a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/epid_params-testhelper.cc
@@ -0,0 +1,216 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Intel(R) EPID 1.1 parameters C++ wrapper implementation.
+ */
+
+#include
+
+#include "epid/common-testhelper/1.1/epid_params-testhelper.h"
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+#include "epid/common-testhelper/bignum_wrapper-testhelper.h"
+
+extern "C" {
+#include "epid/common/math/src/ecgroup-internal.h"
+#include "epid/common/math/src/finitefield-internal.h"
+#include "epid/common/math/src/pairing-internal.h"
+}
+
+#ifndef COUNT_OF
+#define COUNT_OF(a) (sizeof(a) / sizeof((a)[0]))
+#endif // COUNT_OF
+
+Epid11ParamsObj::Epid11ParamsObj() {
+ // construct Fq finite field
+ FiniteFieldObj fq(this->q_str_);
+
+ // Create G1
+ // G1 is an elliptic curve group E(Fq).It can be initialized as follows:
+ // Set G1 = E(Fq).init(p, q, h, a, b, g1.x, g1.y)
+ G1 = EcGroupObj(&fq, FfElementObj(&fq, a_str_), FfElementObj(&fq, b_str_),
+ FfElementObj(&fq, g1_str_.x), FfElementObj(&fq, g1_str_.y),
+ BigNumObj(p_str_), BigNumObj(h_str_));
+
+ // construct Fq1 finite field
+ FiniteFieldObj fq1(this->q1_str_);
+
+ // Create G3
+ // G3 is an elliptic curve group E(Fq) as well (but with different
+ // parameters).
+ // It can be initialized as follows:
+ // Set G3 = Fq.init(p', q', h', a', b', g3.x, g3.y)
+ G3 =
+ EcGroupObj(&fq1, FfElementObj(&fq1, a1_str_), FfElementObj(&fq1, b1_str_),
+ FfElementObj(&fq1, g3_str_.x), FfElementObj(&fq1, g3_str_.y),
+ BigNumObj(p1_str_), BigNumObj(h1_str_));
+
+ // construct Fqd finite field
+ FiniteFieldObj fqd(fq, this->coeffs_str_, COUNT_OF(this->coeffs_str_));
+
+ // Fqk ground element is {-qnr, 0, 0}
+ FfElementObj neg_qnr(&fq);
+ THROW_ON_EPIDERR(FfNeg(fq, FfElementObj(&fq, qnr_str), neg_qnr));
+ Fq3ElemStr ground_element_str = {0};
+ THROW_ON_EPIDERR(WriteFfElement(fq, neg_qnr, &ground_element_str.a[0],
+ sizeof(ground_element_str.a[0])));
+ FfElementObj ground_element(&fqd, ground_element_str);
+
+ // construct GT:=Fqk finite field
+ GT = FiniteFieldObj(fqd, ground_element, 2);
+
+ // G2 is an elliptic curve group E(Fqd).It can be initialized as follows:
+
+ FfElementObj qnr(&fq, qnr_str);
+
+ // twista = (a * qnr * qnr) mod q
+ FfElementObj twista_fq(&fq, a_str_);
+ THROW_ON_EPIDERR(FfMul(fq, twista_fq, qnr, twista_fq));
+ THROW_ON_EPIDERR(FfMul(fq, twista_fq, qnr, twista_fq));
+ Fq3ElemStr twista_str = {0};
+ THROW_ON_EPIDERR(
+ WriteFfElement(fq, twista_fq, &twista_str.a[0], sizeof(twista_str.a[0])));
+
+ // twistb = (b * qnr * qnr * qnr) mod q
+ FfElementObj twistb_fq(&fq, b_str_);
+ THROW_ON_EPIDERR(FfMul(fq, twistb_fq, qnr, twistb_fq));
+ THROW_ON_EPIDERR(FfMul(fq, twistb_fq, qnr, twistb_fq));
+ THROW_ON_EPIDERR(FfMul(fq, twistb_fq, qnr, twistb_fq));
+ Fq3ElemStr twistb_str = {0};
+ THROW_ON_EPIDERR(
+ WriteFfElement(fq, twistb_fq, &twistb_str.a[0], sizeof(twistb_str.a[0])));
+
+ // cofactor is 1 for G2
+ const BigNumStr h2_str_ = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}};
+
+ // Create G2
+ // Set G2 = E(Fqd).init(orderG2, param(Fqd), twista, twistb, g2.x, g2.y).
+ G2 = EcGroupObj(&fqd, FfElementObj(&fqd, twista_str),
+ FfElementObj(&fqd, twistb_str), FfElementObj(&fqd, g2x_str_),
+ FfElementObj(&fqd, g2y_str_), BigNumObj(orderG2_str),
+ BigNumObj(h2_str_));
+}
+
+const BigNumStr Epid11ParamsObj::p_str_ = {
+ {{0x00, 0x00, 0x89, 0x57, 0x3F, 0x17, 0x47, 0x30, 0x8C, 0x43, 0xD5, 0xEE,
+ 0x41, 0x97, 0x96, 0x19, 0x72, 0xBB, 0x86, 0x88, 0xED, 0x4B, 0xEF, 0x04,
+ 0xAB, 0xAE, 0xC3, 0x8E, 0xEC, 0x51, 0xC3, 0xD3}}};
+
+const BigNumStr Epid11ParamsObj::q_str_ = {
+ {{0x09, 0xF9, 0x24, 0xE5, 0xD9, 0xBC, 0x67, 0x7F, 0x81, 0x0D, 0xF0, 0x25,
+ 0x58, 0xF7, 0x53, 0x13, 0xA9, 0x8A, 0xA6, 0x10, 0x47, 0x65, 0x5D, 0x73,
+ 0x9E, 0xF1, 0x94, 0xEB, 0x05, 0xB1, 0xA7, 0x11}}};
+
+const std::vector Epid11ParamsObj::h_str_ = {0x00, 0x00, 0x12, 0x97};
+const FqElemStr Epid11ParamsObj::a_str_ = {
+ {{0x05, 0x53, 0xD7, 0xC8, 0x81, 0xF7, 0x78, 0xC2, 0x2C, 0x37, 0xB6, 0xC0,
+ 0x16, 0x3E, 0x68, 0x24, 0x3A, 0x84, 0x78, 0x1C, 0x0A, 0xDF, 0x9B, 0xB3,
+ 0xED, 0x21, 0xC4, 0x46, 0xE5, 0xA7, 0xA3, 0x92}}};
+const FqElemStr Epid11ParamsObj::b_str_ = {
+ {{0x00, 0x3A, 0x2E, 0x39, 0x0E, 0x10, 0xD8, 0xAC, 0x47, 0xCB, 0x29, 0xC8,
+ 0xF1, 0x2C, 0x7F, 0x11, 0x99, 0x2A, 0x18, 0xB7, 0xEF, 0x73, 0x48, 0xA6,
+ 0xBE, 0x70, 0xA6, 0x8B, 0x97, 0x34, 0x8A, 0xB1}}};
+
+const BigNumStr Epid11ParamsObj::coeffs_str_[3] = {
+ {{{0x02, 0x16, 0x7A, 0x61, 0x53, 0xDD, 0xF6, 0xE2, 0x89, 0x15, 0xA0, 0x94,
+ 0xF1, 0xB5, 0xDC, 0x65, 0x21, 0x15, 0x62, 0xE1, 0x7D, 0xC5, 0x43, 0x89,
+ 0xEE, 0xB4, 0xEF, 0xC8, 0xA0, 0x8E, 0x34, 0x0F}}},
+
+ {{{0x04, 0x82, 0x27, 0xE1, 0xEB, 0x98, 0x64, 0xC2, 0x8D, 0x8F, 0xDD, 0x0E,
+ 0x82, 0x40, 0xAE, 0xD4, 0x31, 0x63, 0xD6, 0x46, 0x32, 0x16, 0x85, 0x7A,
+ 0xB7, 0x18, 0x68, 0xB8, 0x17, 0x02, 0x81, 0xA6}}},
+
+ {{{0x06, 0x20, 0x76, 0xE8, 0x54, 0x54, 0x53, 0xB4, 0xA9, 0xD8, 0x44, 0x4B,
+ 0xAA, 0xFB, 0x1C, 0xFD, 0xAE, 0x15, 0xCA, 0x29, 0x79, 0xA6, 0x24, 0xA4,
+ 0x0A, 0xF6, 0x1E, 0xAC, 0xED, 0xFB, 0x10, 0x41}}}};
+
+const FqElemStr Epid11ParamsObj::qnr_str = {
+ {0x08, 0x66, 0xA7, 0x67, 0x36, 0x6E, 0x62, 0x71, 0xB7, 0xA6, 0x52, 0x94,
+ 0x8F, 0xFB, 0x25, 0x9E, 0xE6, 0x4F, 0x25, 0xE5, 0x26, 0x9A, 0x2B, 0x6E,
+ 0x7E, 0xF8, 0xA6, 0x39, 0xAE, 0x46, 0xAA, 0x24}};
+
+const std::vector Epid11ParamsObj::orderG2_str = {
+ 0x00, 0x03, 0xDF, 0xFC, 0xBE, 0x2F, 0x5C, 0x2E, 0x45, 0x49, 0x7A, 0x2A,
+ 0x91, 0xBA, 0xD1, 0x3E, 0x01, 0xEC, 0x5F, 0xC2, 0x15, 0x14, 0x10, 0xB3,
+ 0x28, 0x5E, 0x56, 0xCC, 0x26, 0x51, 0x24, 0x93, 0x0E, 0x6C, 0x99, 0x96,
+ 0x38, 0xE0, 0x7D, 0x68, 0x8C, 0xB7, 0x97, 0x23, 0xF4, 0xAC, 0x4D, 0xBC,
+ 0x5E, 0x01, 0x15, 0xFF, 0x45, 0x60, 0x08, 0x13, 0xCD, 0x59, 0xD7, 0x73,
+ 0xB0, 0x0C, 0x20, 0x5E, 0xAB, 0xAA, 0x24, 0x31, 0xE2, 0x2A, 0xA2, 0x53,
+ 0x8A, 0xF7, 0x86, 0xD5, 0x19, 0x78, 0xC5, 0x55, 0x9C, 0x08, 0xB7, 0xE2,
+ 0xF4, 0xD0, 0x37, 0x74, 0x93, 0x56, 0x62, 0x7B, 0x95, 0xCC, 0x2C, 0xB0};
+
+const BigNumStr Epid11ParamsObj::p1_str_ = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84,
+ 0xF3, 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51}}};
+
+const BigNumStr Epid11ParamsObj::q1_str_ = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}}};
+
+const std::vector Epid11ParamsObj::h1_str_ = {0x00, 0x00, 0x00, 0x01};
+
+const FqElemStr Epid11ParamsObj::a1_str_ = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC}}};
+const FqElemStr Epid11ParamsObj::b1_str_ = {
+ {{0x5A, 0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7, 0xB3, 0xEB, 0xBD, 0x55,
+ 0x76, 0x98, 0x86, 0xBC, 0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6,
+ 0x3B, 0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B}}};
+
+const Epid11G1ElemStr Epid11ParamsObj::g1_str_ = {
+ {{{0x07, 0x78, 0x3B, 0x0D, 0xFE, 0x4A, 0xA3, 0x19, 0x49, 0xB0, 0xCE, 0xAF,
+ 0x3F, 0x74, 0x0F, 0x32, 0x16, 0x0C, 0x8B, 0x46, 0x94, 0x5B, 0xA5, 0xB0,
+ 0xE4, 0x8A, 0xDA, 0xD8, 0x88, 0x32, 0x90, 0x53}}},
+ {{{0x08, 0xF7, 0xA2, 0xAA, 0xBA, 0x62, 0xB3, 0xFE, 0x29, 0x80, 0xC9, 0x5B,
+ 0x63, 0x53, 0xC8, 0x24, 0x3C, 0x7C, 0x1F, 0x4C, 0xDA, 0xCD, 0xE5, 0x5F,
+ 0xA2, 0x36, 0x93, 0x04, 0x3C, 0x3A, 0xBC, 0x2E}}}};
+const Fq3ElemStr Epid11ParamsObj::g2x_str_ = {
+ {{{{0x02, 0x10, 0x9A, 0xF4, 0x06, 0x32, 0x30, 0x89, 0xCB, 0x95, 0xE9, 0x55,
+ 0x0E, 0x9D, 0xAF, 0x0E, 0x98, 0xCD, 0xCA, 0xDC, 0xB1, 0xFF, 0xFC, 0xD1,
+ 0x45, 0x66, 0xBB, 0x86, 0x46, 0x1E, 0x8C, 0x30}}},
+ {{{0x04, 0x78, 0x53, 0xE1, 0x3F, 0x96, 0xC5, 0xE4, 0x15, 0x23, 0x7B, 0x1F,
+ 0x3F, 0x2C, 0xD3, 0x95, 0x40, 0xBC, 0x7A, 0x31, 0x1F, 0x14, 0x38, 0x9E,
+ 0x1A, 0xA5, 0xD6, 0x63, 0x10, 0x91, 0xE4, 0xD3}}},
+ {{{0x00, 0xB4, 0x02, 0xBC, 0x47, 0xFA, 0xA6, 0x29, 0x82, 0x0B, 0xB1, 0xD5,
+ 0xFF, 0xF2, 0xE6, 0xB0, 0xC6, 0xAE, 0xE8, 0x7B, 0x91, 0xD9, 0xEE, 0x66,
+ 0x07, 0x1F, 0xFD, 0xA2, 0xE7, 0x02, 0x66, 0xDD}}}}};
+
+const Fq3ElemStr Epid11ParamsObj::g2y_str_ = {
+ {{{{0x05, 0x2E, 0xF8, 0xC6, 0xC1, 0x6A, 0xEF, 0x3C, 0xC1, 0x95, 0xF6, 0x26,
+ 0xCE, 0x5E, 0x55, 0xD1, 0x64, 0x13, 0x28, 0xB1, 0x18, 0x57, 0xD8, 0x1B,
+ 0x84, 0xFA, 0xEC, 0x7E, 0x5D, 0x99, 0x06, 0x49}}},
+ {{{0x05, 0x73, 0x35, 0xA9, 0xA7, 0xF2, 0xA1, 0x92, 0x5F, 0x3E, 0x7C, 0xDF,
+ 0xAC, 0xFE, 0x0F, 0xF5, 0x08, 0xD0, 0x3C, 0xAE, 0xCD, 0x58, 0x00, 0x5F,
+ 0xD0, 0x84, 0x7E, 0xEA, 0x63, 0x57, 0xFE, 0xC6}}},
+ {{{0x01, 0x56, 0xDA, 0xF3, 0x72, 0x61, 0xDA, 0xC6, 0x93, 0xB0, 0xAC, 0xEF,
+ 0xAA, 0xD4, 0x51, 0x6D, 0xCA, 0x71, 0x1E, 0x06, 0x73, 0xEA, 0x83, 0xB2,
+ 0xB1, 0x99, 0x4A, 0x4D, 0x4A, 0x0D, 0x35, 0x07}}}}};
+const Epid11G3ElemStr Epid11ParamsObj::g3_str_ = {
+ {{{0x6B, 0x17, 0xD1, 0xF2, 0xE1, 0x2C, 0x42, 0x47, 0xF8, 0xBC, 0xE6, 0xE5,
+ 0x63, 0xA4, 0x40, 0xF2, 0x77, 0x03, 0x7D, 0x81, 0x2D, 0xEB, 0x33, 0xA0,
+ 0xF4, 0xA1, 0x39, 0x45, 0xD8, 0x98, 0xC2, 0x96}}},
+ {{{0x4F, 0xE3, 0x42, 0xE2, 0xFE, 0x1A, 0x7F, 0x9B, 0x8E, 0xE7, 0xEB, 0x4A,
+ 0x7C, 0x0F, 0x9E, 0x16, 0x2B, 0xCE, 0x33, 0x57, 0x6B, 0x31, 0x5E, 0xCE,
+ 0xCB, 0xB6, 0x40, 0x68, 0x37, 0xBF, 0x51, 0xF5}}}};
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/epid_params-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/epid_params-testhelper.h
new file mode 100644
index 0000000000..82b80d3cd3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/epid_params-testhelper.h
@@ -0,0 +1,78 @@
+/*############################################################################
+# Copyright 2016 Intel Corporation
+#
+# Licensed 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.
+############################################################################*/
+
+/*!
+* \file
+* \brief Intel(R) EPID 1.1 parameters C++ wrapper interface.
+*/
+#ifndef EPID_COMMON_TESTHELPER_1_1_EPID_PARAMS_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_1_1_EPID_PARAMS_TESTHELPER_H_
+
+#include
+#include
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+#include "epid/common/math/finitefield.h"
+#include "epid/common/math/ecgroup.h"
+#include "epid/common/1.1/types.h"
+}
+
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+#include "epid/common-testhelper/ecgroup_wrapper-testhelper.h"
+#include "epid/common-testhelper/ecpoint_wrapper-testhelper.h"
+
+class Epid11ParamsObj {
+ public:
+ Epid11ParamsObj();
+
+ // This class instances are not meant to be copied.
+ // Explicitly delete copy constructor and assignment operator.
+ Epid11ParamsObj(const Epid11ParamsObj&) = delete;
+ Epid11ParamsObj& operator=(const Epid11ParamsObj&) = delete;
+
+ virtual ~Epid11ParamsObj() {}
+
+ FiniteFieldObj GT;
+ EcGroupObj G1;
+ EcGroupObj G2;
+ EcGroupObj G3;
+
+ private:
+ static const BigNumStr p_str_;
+ static const BigNumStr q_str_;
+ static const std::vector h_str_;
+ static const FqElemStr a_str_;
+ static const FqElemStr b_str_;
+ static const BigNumStr coeffs_str_[3];
+ static const FqElemStr qnr_str;
+
+ static const std::vector orderG2_str;
+
+ static const BigNumStr p1_str_;
+ static const BigNumStr q1_str_;
+ static const std::vector h1_str_;
+ static const FqElemStr a1_str_;
+ static const FqElemStr b1_str_;
+
+ static const Epid11G1ElemStr g1_str_;
+ static const Fq3ElemStr g2x_str_;
+ static const Fq3ElemStr g2y_str_;
+ static const Epid11G3ElemStr g3_str_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_1_1_EPID_PARAMS_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/epid_grpcrt.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/epid_grpcrt.inc
new file mode 100644
index 0000000000..b3ba691bd4
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/epid_grpcrt.inc
@@ -0,0 +1,52 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 group public key
+ * Group : grpX
+ */
+//unsigned char epid_grpcrt_dat[] = {
+ 0x00, 0x00, 0x00, 0x7b, 0x08, 0x4a, 0x9d, 0x2e, 0xf9, 0x4f, 0x78, 0x02,
+ 0xd7, 0x89, 0x75, 0xb4, 0xe7, 0x25, 0x26, 0x9f, 0x00, 0x57, 0xad, 0x33,
+ 0x30, 0xea, 0xa9, 0x6c, 0x00, 0x9e, 0x8b, 0xc8, 0x13, 0x23, 0xcb, 0x06,
+ 0x04, 0xbe, 0x42, 0x74, 0x11, 0x07, 0xb1, 0x06, 0xd7, 0xef, 0x5f, 0x66,
+ 0x87, 0xd9, 0xfa, 0xdd, 0x53, 0xae, 0xd7, 0xf4, 0x54, 0xf8, 0xd0, 0x21,
+ 0x75, 0xe0, 0x07, 0x44, 0xc9, 0xc3, 0x4e, 0xf7, 0x06, 0xd8, 0xa9, 0x90,
+ 0x02, 0x8f, 0xca, 0xa5, 0x73, 0x36, 0x24, 0x03, 0xc9, 0xa8, 0x7e, 0x9d,
+ 0x64, 0x12, 0xac, 0xa7, 0xbd, 0x17, 0x7f, 0x7c, 0x96, 0x8d, 0x2e, 0x13,
+ 0xd9, 0xb2, 0x69, 0x47, 0x09, 0xdb, 0xe3, 0xbf, 0xbc, 0xa1, 0x34, 0x0f,
+ 0xc6, 0xe2, 0x00, 0x3d, 0x98, 0xa3, 0x7d, 0xab, 0xd4, 0x0e, 0xec, 0xde,
+ 0x4f, 0x97, 0xa9, 0xbb, 0xdd, 0x60, 0x94, 0x24, 0x7b, 0xb3, 0xf5, 0x94,
+ 0x02, 0x43, 0x78, 0x9f, 0x54, 0xc1, 0x21, 0x3a, 0x2b, 0x4d, 0x12, 0x65,
+ 0x2f, 0x51, 0x94, 0xc6, 0x34, 0x24, 0xd9, 0x7b, 0x06, 0x3a, 0xc4, 0xf5,
+ 0x56, 0xeb, 0x32, 0xe3, 0xee, 0x7b, 0xad, 0x6b, 0x04, 0x90, 0x86, 0x31,
+ 0x18, 0x2a, 0xa4, 0xcf, 0xa3, 0x90, 0xa5, 0x80, 0x7b, 0xae, 0x3b, 0xb1,
+ 0x77, 0x03, 0xe7, 0x7e, 0xf2, 0xfc, 0x6d, 0x3a, 0xab, 0x8f, 0xbf, 0x95,
+ 0x40, 0xed, 0x08, 0x03, 0x01, 0x05, 0x86, 0xf5, 0x42, 0xea, 0x4d, 0xf7,
+ 0x4f, 0xef, 0x46, 0xdf, 0x8f, 0xe8, 0x2d, 0xbb, 0x5d, 0x0d, 0x2f, 0x4f,
+ 0xf4, 0xd8, 0x31, 0xc6, 0x5a, 0x97, 0x98, 0x44, 0xcf, 0x42, 0x5a, 0xf3,
+ 0x03, 0x5f, 0xb6, 0x38, 0x45, 0x5a, 0x15, 0x1e, 0xb9, 0x54, 0xfa, 0x2c,
+ 0x3f, 0x68, 0x7b, 0x4e, 0x85, 0x35, 0xf3, 0x5b, 0xe5, 0xdc, 0x96, 0x2b,
+ 0x18, 0x84, 0x5e, 0x1e, 0x53, 0xdc, 0x22, 0x23, 0x06, 0x08, 0x91, 0x5a,
+ 0x2d, 0x27, 0xe2, 0x12, 0x69, 0xfa, 0xab, 0x19, 0x7c, 0x47, 0x6b, 0xec,
+ 0xde, 0xc6, 0x25, 0xd4, 0x43, 0xb4, 0x65, 0x23, 0x61, 0x0f, 0x1f, 0x2d,
+ 0xfd, 0xb1, 0x18, 0xb0, 0x04, 0x8e, 0x1a, 0xc5, 0x95, 0x9a, 0x0e, 0x37,
+ 0x7c, 0x5e, 0x95, 0x38, 0xc2, 0xcf, 0xfa, 0x1f, 0xe3, 0x3a, 0x2b, 0x85,
+ 0xa5, 0xfd, 0x6b, 0xc4, 0x1d, 0xfb, 0x47, 0x27, 0xaf, 0xc1, 0x94, 0xcd
+// };
+//unsigned int epid_grpcrt_dat_len = 392;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0.inc
new file mode 100644
index 0000000000..75b62e0446
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "test message"
+ * Basename: "basename1"
+ * SigRl : group x sigrl
+ */
+ //unsigned char sig_sha256_bsn0_msg0_dat[] = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53,
+ 0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09,
+ 0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72,
+ 0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64,
+ 0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb,
+ 0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04,
+ 0x7b, 0xfc, 0x0a, 0x6c, 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41,
+ 0x3a, 0xc6, 0x01, 0x3a, 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c,
+ 0x84, 0xde, 0xc3, 0x3b, 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44,
+ 0x25, 0x98, 0x89, 0xdb, 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86,
+ 0x63, 0x8c, 0xe1, 0x93, 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2,
+ 0x05, 0x39, 0x5a, 0xef, 0x26, 0xf8, 0x6c, 0x41, 0x5d, 0x7f, 0xb2, 0x63,
+ 0x92, 0x5c, 0xf4, 0x82, 0xa3, 0x93, 0xe3, 0x02, 0x14, 0x55, 0x47, 0x99,
+ 0xa5, 0xf9, 0xf7, 0xad, 0x1f, 0x66, 0x23, 0x50, 0x08, 0xab, 0x10, 0x95,
+ 0x9a, 0x0c, 0x0f, 0x62, 0xca, 0xcb, 0x63, 0x6f, 0xc6, 0xb3, 0xb1, 0x06,
+ 0x52, 0x33, 0x56, 0xad, 0x8e, 0xac, 0xfe, 0xe4, 0x56, 0x88, 0xed, 0x8e,
+ 0xdd, 0xa4, 0x20, 0x7f, 0x03, 0xb7, 0x4c, 0xda, 0xb1, 0x70, 0x9d, 0x8c,
+ 0x5b, 0x34, 0x08, 0x37, 0x84, 0xbc, 0xd0, 0x54, 0xdf, 0x52, 0x40, 0x41,
+ 0xfe, 0x58, 0x48, 0x86, 0x43, 0x51, 0xa9, 0x7d, 0x53, 0x21, 0x01, 0xe6,
+ 0x06, 0x2b, 0xd0, 0xd3, 0x8a, 0xe0, 0xb6, 0xc3, 0xad, 0xb3, 0x6c, 0x12,
+ 0x75, 0x50, 0x19, 0xd2, 0x69, 0xc7, 0x41, 0x98, 0xf3, 0xfb, 0x5c, 0x58,
+ 0xe0, 0x8c, 0x0b, 0x22, 0x6f, 0x05, 0xa1, 0x0e, 0x45, 0xce, 0x2e, 0x83,
+ 0xd8, 0xd9, 0xeb, 0xc9, 0x9a, 0x81, 0x38, 0x1d, 0x33, 0x9a, 0x16, 0x9f,
+ 0x4c, 0x06, 0xf0, 0xb2, 0xc1, 0x1d, 0xb8, 0x54, 0xe4, 0x0f, 0x61, 0x36,
+ 0xd8, 0xbc, 0xbf, 0x0c, 0x60, 0x71, 0xde, 0x72, 0x10, 0x0e, 0x0a, 0x30,
+ 0x04, 0x60, 0x00, 0x00, 0x78, 0xb5, 0xb6, 0xc2, 0xdd, 0x20, 0x6a, 0xb5,
+ 0xdf, 0x61, 0x64, 0xd0, 0xa9, 0x02, 0x88, 0x4c, 0xdd, 0x2b, 0x81, 0x79,
+ 0x2e, 0x50, 0xb6, 0x1c, 0xaa, 0xf0, 0x74, 0x31, 0x31, 0x34, 0x00, 0x00,
+ 0x0a, 0xd1, 0xbf, 0x34, 0xa2, 0x84, 0xc8, 0x9b, 0xdf, 0xdc, 0xb5, 0x95,
+ 0x4a, 0xad, 0x76, 0xc2, 0xc6, 0xb0, 0xa3, 0x77, 0x25, 0x76, 0xb3, 0x2e,
+ 0x34, 0xfb, 0x79, 0x16, 0x0a, 0x7c, 0x00, 0xaf, 0x5b, 0x22, 0x71, 0x98,
+ 0xb6, 0xeb, 0x67, 0x3d, 0x94, 0x4a, 0xb6, 0x5e, 0x99, 0x81, 0xc5, 0x96,
+ 0x91, 0x55, 0xba, 0x2f, 0x16, 0x01, 0x4e, 0xe1, 0x25, 0xad, 0xca, 0x94,
+ 0x88, 0x60, 0x3b, 0xa2, 0x56, 0x0a, 0x94, 0x0b, 0x2c, 0x3e, 0xd0, 0x8f,
+ 0x15, 0x07, 0x3d, 0xd5, 0xbe, 0x72, 0x3e, 0x2d, 0x06, 0x74, 0xff, 0x06,
+ 0xed, 0x47, 0x28, 0x08, 0x0c, 0xa0, 0x6f, 0xdb, 0x75, 0x55, 0x32, 0xdc,
+ 0x97, 0x47, 0x60, 0x4e, 0x6f, 0xb4, 0x29, 0x89, 0x0c, 0x00, 0x00, 0x37,
+ 0x1e, 0xcd, 0x0f, 0x66, 0x09, 0x7d, 0x33, 0x9a, 0xdc, 0x47, 0x28, 0xf7,
+ 0x91, 0xf3, 0xc2, 0xbc, 0x3a, 0xa9, 0x05, 0x62, 0xfc, 0xdd, 0x8c, 0x65,
+ 0xc2, 0xa8, 0x14, 0x55, 0x52, 0x00, 0x00, 0x11, 0xed, 0x83, 0xfc, 0x60,
+ 0x97, 0x7e, 0x5e, 0x15, 0xe0, 0x43, 0xdb, 0x01, 0x0b, 0xc7, 0x93, 0xa0,
+ 0xef, 0x08, 0xf6, 0x4f, 0x91, 0xda, 0x83, 0x14, 0x34, 0x0d, 0x4f, 0x25,
+ 0xaf, 0x00, 0x00, 0x80, 0x3d, 0xc0, 0x9e, 0x85, 0xc8, 0x48, 0x35, 0xf8,
+ 0xd2, 0x7b, 0x6b, 0xcf, 0xfc, 0xe9, 0xe4, 0x59, 0x6d, 0x06, 0x4e, 0x12,
+ 0x56, 0x00, 0xbc, 0xb4, 0x6e, 0x20, 0x3a, 0xf4, 0x34, 0x00, 0x00, 0x2e,
+ 0x06, 0xcd, 0x93, 0x4f, 0x39, 0x62, 0x0b, 0xb1, 0x12, 0xf4, 0x49, 0x22,
+ 0xe5, 0x55, 0x29, 0x08, 0xd0, 0x51, 0x02, 0x14, 0xc3, 0xc5, 0x6d, 0xa3,
+ 0xb0, 0xd9, 0x67, 0x61, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_bsn0_msg0_dat_len = 577;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0_single_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0_single_entry.inc
new file mode 100644
index 0000000000..f00bee5460
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0_single_entry.inc
@@ -0,0 +1,97 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "test message"
+ * Basename: "basename1"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_sha256_bsn0_msg0_dat[] = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c,
+ 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a,
+ 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b,
+ 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb,
+ 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93,
+ 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2, 0x05, 0x39, 0x5a, 0xef,
+ 0x26, 0xf8, 0x6c, 0x41, 0x5d, 0x7f, 0xb2, 0x63, 0x92, 0x5c, 0xf4, 0x82,
+ 0xa3, 0x93, 0xe3, 0x02, 0x14, 0x55, 0x47, 0x99, 0xa5, 0xf9, 0xf7, 0xad,
+ 0x1f, 0x66, 0x23, 0x50, 0x08, 0xab, 0x10, 0x95, 0x9a, 0x0c, 0x0f, 0x62,
+ 0xca, 0xcb, 0x63, 0x6f, 0xc6, 0xb3, 0xb1, 0x06, 0x52, 0x33, 0x56, 0xad,
+ 0x8e, 0xac, 0xfe, 0xe4, 0x56, 0x88, 0xed, 0x8e, 0xdd, 0xa4, 0x20, 0x7f,
+ 0x03, 0xb7, 0x4c, 0xda, 0xb1, 0x70, 0x9d, 0x8c, 0x5b, 0x34, 0x08, 0x37,
+ 0x84, 0xbc, 0xd0, 0x54, 0xdf, 0x52, 0x40, 0x41, 0xfe, 0x58, 0x48, 0x86,
+ 0x43, 0x51, 0xa9, 0x7d, 0x53, 0x21, 0x01, 0xe6, 0x06, 0x2b, 0xd0, 0xd3,
+ 0x8a, 0xe0, 0xb6, 0xc3, 0xad, 0xb3, 0x6c, 0x12, 0x75, 0x50, 0x19, 0xd2,
+ 0x69, 0xc7, 0x41, 0x98, 0xf3, 0xfb, 0x5c, 0x58, 0xe0, 0x8c, 0x0b, 0x22,
+ 0x6f, 0x05, 0xa1, 0x0e, 0x45, 0xce, 0x2e, 0x83, 0xd8, 0xd9, 0xeb, 0xc9,
+ 0x9a, 0x81, 0x38, 0x1d, 0x33, 0x9a, 0x16, 0x9f, 0x4c, 0x06, 0xf0, 0xb2,
+ 0xc1, 0x1d, 0xb8, 0x54, 0xe4, 0x0f, 0x61, 0x36, 0xd8, 0xbc, 0xbf, 0x0c,
+ 0x60, 0x71, 0xde, 0x72, 0x10, 0x0e, 0x0a, 0x30, 0x04, 0x60, 0x00, 0x00,
+ 0x78, 0xb5, 0xb6, 0xc2, 0xdd, 0x20, 0x6a, 0xb5, 0xdf, 0x61, 0x64, 0xd0,
+ 0xa9, 0x02, 0x88, 0x4c, 0xdd, 0x2b, 0x81, 0x79, 0x2e, 0x50, 0xb6, 0x1c,
+ 0xaa, 0xf0, 0x74, 0x31, 0x31, 0x34, 0x00, 0x00, 0x0a, 0xd1, 0xbf, 0x34,
+ 0xa2, 0x84, 0xc8, 0x9b, 0xdf, 0xdc, 0xb5, 0x95, 0x4a, 0xad, 0x76, 0xc2,
+ 0xc6, 0xb0, 0xa3, 0x77, 0x25, 0x76, 0xb3, 0x2e, 0x34, 0xfb, 0x79, 0x16,
+ 0x0a, 0x7c, 0x00, 0xaf, 0x5b, 0x22, 0x71, 0x98, 0xb6, 0xeb, 0x67, 0x3d,
+ 0x94, 0x4a, 0xb6, 0x5e, 0x99, 0x81, 0xc5, 0x96, 0x91, 0x55, 0xba, 0x2f,
+ 0x16, 0x01, 0x4e, 0xe1, 0x25, 0xad, 0xca, 0x94, 0x88, 0x60, 0x3b, 0xa2,
+ 0x56, 0x0a, 0x94, 0x0b, 0x2c, 0x3e, 0xd0, 0x8f, 0x15, 0x07, 0x3d, 0xd5,
+ 0xbe, 0x72, 0x3e, 0x2d, 0x06, 0x74, 0xff, 0x06, 0xed, 0x47, 0x28, 0x08,
+ 0x0c, 0xa0, 0x6f, 0xdb, 0x75, 0x55, 0x32, 0xdc, 0x97, 0x47, 0x60, 0x4e,
+ 0x6f, 0xb4, 0x29, 0x89, 0x0c, 0x00, 0x00, 0x37, 0x1e, 0xcd, 0x0f, 0x66,
+ 0x09, 0x7d, 0x33, 0x9a, 0xdc, 0x47, 0x28, 0xf7, 0x91, 0xf3, 0xc2, 0xbc,
+ 0x3a, 0xa9, 0x05, 0x62, 0xfc, 0xdd, 0x8c, 0x65, 0xc2, 0xa8, 0x14, 0x55,
+ 0x52, 0x00, 0x00, 0x11, 0xed, 0x83, 0xfc, 0x60, 0x97, 0x7e, 0x5e, 0x15,
+ 0xe0, 0x43, 0xdb, 0x01, 0x0b, 0xc7, 0x93, 0xa0, 0xef, 0x08, 0xf6, 0x4f,
+ 0x91, 0xda, 0x83, 0x14, 0x34, 0x0d, 0x4f, 0x25, 0xaf, 0x00, 0x00, 0x80,
+ 0x3d, 0xc0, 0x9e, 0x85, 0xc8, 0x48, 0x35, 0xf8, 0xd2, 0x7b, 0x6b, 0xcf,
+ 0xfc, 0xe9, 0xe4, 0x59, 0x6d, 0x06, 0x4e, 0x12, 0x56, 0x00, 0xbc, 0xb4,
+ 0x6e, 0x20, 0x3a, 0xf4, 0x34, 0x00, 0x00, 0x2e, 0x06, 0xcd, 0x93, 0x4f,
+ 0x39, 0x62, 0x0b, 0xb1, 0x12, 0xf4, 0x49, 0x22, 0xe5, 0x55, 0x29, 0x08,
+ 0xd0, 0x51, 0x02, 0x14, 0xc3, 0xc5, 0x6d, 0xa3, 0xb0, 0xd9, 0x67, 0x61,
+ 0xec,
+
+ 0x00, 0x00, 0x00, 0x01,
+
+ 0x00, 0x00, 0x00, 0x01,
+
+ 0x70, 0x1a, 0x63, 0xed, 0x78, 0xb4, 0xfa, 0xe1, 0x22, 0xc8, 0xfc, 0xd7,
+ 0xfb, 0xf4, 0x63, 0x1f, 0xcf, 0x82, 0x02, 0x28, 0xe5, 0x70, 0xe0, 0x4e,
+ 0x73, 0xbd, 0xdf, 0xa2, 0xaf, 0x5a, 0xfe, 0xc8, 0x58, 0x95, 0xed, 0x67,
+ 0xc9, 0xcf, 0x41, 0xe9, 0x5c, 0xd9, 0x71, 0x30, 0x7a, 0xa2, 0x8e, 0xfb,
+ 0xb2, 0x59, 0xd8, 0x12, 0x47, 0x5d, 0x9f, 0x8b, 0x2f, 0x8c, 0xb9, 0x2c,
+ 0xb5, 0x12, 0x3d, 0x4c, 0x46, 0x06, 0x99, 0x02, 0xe5, 0x20, 0x99, 0x77,
+ 0x98, 0x29, 0x51, 0xb2, 0xee, 0x7b, 0x6e, 0xd9, 0xed, 0xbc, 0x1d, 0xf3,
+ 0xfe, 0xe5, 0xdb, 0x98, 0x02, 0x1e, 0xc7, 0x6b, 0x87, 0xdb, 0x81, 0x74,
+ 0x3c, 0x40, 0xbf, 0x24, 0xcb, 0xce, 0xc5, 0x3a, 0xd0, 0xd3, 0x5d, 0xd9,
+ 0x2c, 0xaf, 0xe0, 0x33, 0x84, 0xb6, 0xc4, 0xa3, 0xd5, 0x54, 0xdb, 0x18,
+ 0x6d, 0x10, 0x02, 0x90, 0x00, 0xc1, 0xdc, 0x59, 0x76, 0xdb, 0x0e, 0x72,
+ 0x49, 0xa8, 0x6f, 0xb1, 0x8e, 0x7b, 0xbe, 0xf8, 0xf6, 0x93, 0xe0, 0x1a,
+ 0xcc, 0xac, 0xe8, 0x4d, 0xe4, 0x41, 0xc3, 0xe8, 0xaa, 0x4a, 0x25, 0x96,
+ 0xd4, 0xc2, 0x9a, 0x87
+//};
+// unsigned int sig_sha256_bsn0_msg0_dat_len = 733;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0_three_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0_three_entry.inc
new file mode 100644
index 0000000000..7c80fe71b6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg0_three_entry.inc
@@ -0,0 +1,127 @@
+/*############################################################################
+# Copyright 2016 Intel Corporation
+#
+# Licensed 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.
+############################################################################*/
+/*!
+* \file
+* \brief Test data.
+*
+* Type : Intel(R) EPID 1.1 Signature
+* Group : grpX
+* Signer : member0
+* HashAlg : Sha256
+* Message : "test message"
+* Basename: "basename1"
+* SigRl : group x sigrl
+*/
+//unsigned char epid_sig_dat[] = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c,
+ 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a,
+ 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b,
+ 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb,
+ 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93,
+ 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2, 0x06, 0x88, 0x3b, 0x78,
+ 0xf9, 0x69, 0x8f, 0x4f, 0x80, 0x9b, 0xc6, 0x38, 0x30, 0x10, 0x12, 0x82,
+ 0x31, 0x00, 0x61, 0x15, 0x2f, 0x4d, 0x56, 0x14, 0x67, 0x30, 0x24, 0xb9,
+ 0xeb, 0xed, 0x75, 0x80, 0x06, 0x23, 0xbe, 0x49, 0x73, 0x18, 0x07, 0xf0,
+ 0xd7, 0xd1, 0xe9, 0x20, 0x39, 0xfc, 0x94, 0xb2, 0xaf, 0x72, 0xd6, 0xe5,
+ 0x3d, 0x29, 0x40, 0xc0, 0x6c, 0x58, 0x4e, 0xe9, 0xe8, 0x49, 0x5d, 0x8e,
+ 0x08, 0x04, 0x55, 0xec, 0x09, 0x9e, 0x63, 0x24, 0x50, 0x5b, 0xc5, 0x08,
+ 0x5d, 0xb9, 0xd2, 0xcf, 0x70, 0x48, 0xd3, 0x2e, 0x53, 0x12, 0x97, 0x5e,
+ 0xa4, 0xa5, 0x9f, 0xb5, 0xc4, 0xd3, 0x5e, 0xc3, 0x05, 0x33, 0x98, 0x86,
+ 0xcd, 0xac, 0x34, 0x41, 0xee, 0xf5, 0x03, 0x05, 0xed, 0x4b, 0xca, 0x08,
+ 0xc8, 0x31, 0x63, 0xce, 0x9e, 0xd8, 0xe2, 0xba, 0x9a, 0x0d, 0x7e, 0x5e,
+ 0x79, 0xc1, 0x13, 0xd4, 0xa4, 0xe6, 0x5e, 0x44, 0x54, 0xad, 0x61, 0xb8,
+ 0x99, 0xb7, 0xaf, 0xdc, 0x54, 0xf8, 0x3e, 0x5d, 0x47, 0xa9, 0x05, 0xdb,
+ 0xb6, 0xc1, 0x85, 0x1f, 0xaf, 0xb1, 0xe1, 0x0d, 0xd4, 0x71, 0x1b, 0x91,
+ 0x29, 0x69, 0x02, 0xd6, 0x0b, 0xd4, 0x33, 0x66, 0x4b, 0x5e, 0x00, 0x00,
+ 0x13, 0x3e, 0x2c, 0x68, 0xd2, 0x0b, 0x68, 0x2c, 0x22, 0x9d, 0x2d, 0xf0,
+ 0x74, 0x29, 0x87, 0x58, 0xb9, 0xa0, 0xc2, 0xdb, 0xd8, 0x68, 0xba, 0x46,
+ 0xc7, 0x75, 0x5b, 0x94, 0x4c, 0x4c, 0x00, 0x00, 0x41, 0x7b, 0xde, 0xfb,
+ 0xe0, 0x3c, 0x45, 0xf4, 0xf1, 0x9e, 0x70, 0x52, 0x37, 0x39, 0x20, 0xf6,
+ 0xb9, 0xa8, 0x0f, 0x49, 0x58, 0x4a, 0x72, 0x46, 0x31, 0xe5, 0xad, 0x92,
+ 0x47, 0x88, 0x00, 0xf1, 0x59, 0x15, 0x9e, 0x42, 0x7a, 0x60, 0x15, 0x74,
+ 0xc9, 0x37, 0x64, 0x10, 0x21, 0x83, 0x2d, 0x3c, 0xcd, 0xd1, 0xc1, 0xa1,
+ 0x85, 0x1b, 0x08, 0x2e, 0x8c, 0xb8, 0xfd, 0xe7, 0xb7, 0x82, 0xc4, 0xa2,
+ 0xa4, 0x71, 0x40, 0x1c, 0x1f, 0xf9, 0x7d, 0x7d, 0xf5, 0x2c, 0xd6, 0x63,
+ 0x2e, 0x7e, 0x34, 0x69, 0x8a, 0x1b, 0xdf, 0x7b, 0x01, 0x01, 0x92, 0xfc,
+ 0xa3, 0xc8, 0xb4, 0xa1, 0x0e, 0x18, 0x40, 0x96, 0xa1, 0xdf, 0xf2, 0xcb,
+ 0x75, 0x9d, 0x90, 0x54, 0xb0, 0x00, 0x00, 0x53, 0x86, 0xa4, 0x1c, 0xa8,
+ 0x29, 0x33, 0xda, 0x92, 0xe4, 0xab, 0x77, 0x79, 0x70, 0xe4, 0x84, 0xa9,
+ 0x5f, 0xdf, 0x8a, 0x23, 0x7d, 0xb0, 0xc6, 0x57, 0x22, 0x41, 0x7f, 0x99,
+ 0x5b, 0x00, 0x00, 0x4f, 0x52, 0x39, 0xde, 0xce, 0x9e, 0xc3, 0xf8, 0xa1,
+ 0x42, 0xf0, 0x71, 0xda, 0x5c, 0x43, 0xde, 0xe0, 0xdd, 0x88, 0x8a, 0xe5,
+ 0xb8, 0x38, 0xb1, 0x60, 0x75, 0xee, 0x1b, 0x04, 0xbb, 0x00, 0x00, 0x47,
+ 0xd6, 0xef, 0x11, 0x6f, 0xb8, 0x98, 0x06, 0x17, 0x14, 0x2d, 0x40, 0x5a,
+ 0xbd, 0x6a, 0x2d, 0xae, 0xb6, 0x04, 0x70, 0x56, 0x52, 0x4d, 0x6c, 0x1f,
+ 0x2d, 0x43, 0x1f, 0xad, 0x82, 0x00, 0x00, 0x1f, 0xb9, 0xdf, 0x3c, 0xf7,
+ 0xac, 0x90, 0x1c, 0x7a, 0xfc, 0x07, 0xf8, 0x01, 0x50, 0x52, 0x30, 0xba,
+ 0xc2, 0xb4, 0x7c, 0x0a, 0x0c, 0x25, 0xae, 0xd6, 0x6a, 0x38, 0x8d, 0xe1,
+ 0x13,
+
+ 0x00, 0x00, 0x00, 0x03,
+
+ 0x00, 0x00, 0x00, 0x03,
+
+ 0x98, 0x4f, 0xd9, 0x6a, 0x1f, 0xaa, 0xfc, 0xfb, 0x38, 0xbf, 0x49, 0x9e,
+ 0xd5, 0x1b, 0xc6, 0x48, 0xac, 0xeb, 0xc4, 0x1a, 0xec, 0x7c, 0xeb, 0xd9,
+ 0x1b, 0x02, 0xa4, 0xbc, 0x1d, 0x1a, 0x73, 0x79, 0x3f, 0x56, 0x15, 0x80,
+ 0x70, 0x94, 0x7b, 0xfe, 0xfc, 0x7a, 0x02, 0x4a, 0x16, 0xd1, 0x6b, 0x71,
+ 0xaa, 0x89, 0x12, 0xbe, 0x34, 0xc1, 0x08, 0xbf, 0xd7, 0xf8, 0xae, 0xc9,
+ 0xeb, 0xe9, 0xb3, 0xb8, 0xa5, 0x5f, 0x11, 0xfc, 0x6d, 0x4e, 0x9a, 0x86,
+ 0xe4, 0x67, 0xdf, 0xcc, 0xb6, 0xab, 0xf8, 0xee, 0x65, 0xf7, 0x19, 0x28,
+ 0x8c, 0x71, 0x60, 0xb0, 0x70, 0xc3, 0x7f, 0x20, 0xf0, 0xfa, 0x5f, 0xc8,
+ 0x09, 0xe4, 0xd1, 0x9f, 0xf4, 0x69, 0x00, 0xb9, 0x63, 0xc9, 0xc0, 0xa9,
+ 0xad, 0x62, 0x1f, 0x7c, 0xbb, 0xfc, 0x81, 0xe7, 0xc7, 0x37, 0xd1, 0xb4,
+ 0x59, 0x8f, 0x9a, 0xcf, 0x20, 0x2d, 0x9b, 0x6b, 0x9a, 0x1a, 0x4f, 0x28,
+ 0xdd, 0x4f, 0x9b, 0x2d, 0x4f, 0x20, 0x47, 0x70, 0xed, 0x85, 0xbc, 0x55,
+ 0x63, 0x9a, 0x37, 0xfd, 0xf1, 0xd7, 0xf1, 0x19, 0x37, 0x85, 0x2b, 0x55,
+ 0xcc, 0x8a, 0xfd, 0x67,
+
+ 0x49, 0x3a, 0x78, 0x1c, 0x57, 0x03, 0x7d, 0x84, 0x3c, 0xf4, 0x19, 0x6a,
+ 0xd2, 0x98, 0xcb, 0xe6, 0x6c, 0x7f, 0xf9, 0xa4, 0x80, 0xf8, 0x86, 0xc1,
+ 0x6f, 0xe2, 0x31, 0xd9, 0xeb, 0x92, 0x39, 0xd8, 0x9e, 0xcd, 0x78, 0xbf,
+ 0x50, 0xc5, 0xb8, 0xeb, 0xec, 0xcb, 0x3f, 0x96, 0x2c, 0x11, 0x01, 0x7f,
+ 0xb2, 0xd2, 0xc6, 0xf9, 0x01, 0xe5, 0x5d, 0x69, 0xed, 0xf0, 0xd5, 0xf4,
+ 0x2e, 0x1f, 0x68, 0x6f, 0xde, 0x76, 0x65, 0x91, 0x25, 0x86, 0xfe, 0xe4,
+ 0x55, 0xd1, 0x43, 0x2a, 0x19, 0x2e, 0xd8, 0x38, 0x1a, 0xec, 0x2b, 0xc9,
+ 0x14, 0xc3, 0x54, 0xd6, 0xe2, 0x7e, 0xd3, 0xe7, 0x77, 0xc8, 0x77, 0x75,
+ 0x28, 0x3d, 0xb6, 0x6e, 0xac, 0x29, 0x4c, 0x70, 0xcc, 0xa5, 0x50, 0xad,
+ 0xf1, 0x29, 0xf5, 0xea, 0xa5, 0x44, 0xda, 0xc1, 0xc5, 0x47, 0x39, 0x8e,
+ 0xbb, 0xa9, 0x63, 0xf9, 0x4c, 0xe9, 0x5a, 0xa4, 0x58, 0x2c, 0x33, 0xc7,
+ 0x24, 0x4b, 0x03, 0x54, 0xb4, 0xdb, 0x41, 0x51, 0xa7, 0x9a, 0x89, 0x46,
+ 0x27, 0x49, 0x08, 0xe6, 0x64, 0xca, 0xb7, 0xd2, 0x1c, 0xfa, 0x62, 0x2b,
+ 0x01, 0xb0, 0xb7, 0x98,
+
+ 0xd3, 0x7d, 0x29, 0xfb, 0x5e, 0x1f, 0x3a, 0x27, 0xc1, 0x26, 0xdc, 0x52,
+ 0x48, 0x16, 0xfa, 0x89, 0xb9, 0x68, 0x2e, 0xfb, 0xb8, 0xa2, 0xc0, 0x1a,
+ 0x74, 0xc5, 0x39, 0x1e, 0xe1, 0x9f, 0x25, 0x09, 0x02, 0xe6, 0x26, 0xda,
+ 0x39, 0x8c, 0xf0, 0x73, 0xa5, 0x2d, 0x59, 0x6e, 0xde, 0x5d, 0x64, 0x66,
+ 0x96, 0x87, 0x0e, 0x08, 0xa2, 0x78, 0x96, 0x7c, 0x8c, 0x54, 0xa4, 0x54,
+ 0xf1, 0x3c, 0x81, 0x44, 0xd5, 0x30, 0x4c, 0x2a, 0xdb, 0x5a, 0xbd, 0x13,
+ 0x5f, 0xa5, 0x7e, 0xbf, 0x7c, 0x9d, 0x51, 0x8b, 0x17, 0x49, 0xce, 0x4c,
+ 0x33, 0xaa, 0x7f, 0x6e, 0x8d, 0xdb, 0x18, 0x77, 0x02, 0x5b, 0xc6, 0x88,
+ 0x65, 0xf3, 0x94, 0x99, 0x6d, 0xcd, 0xa5, 0xa7, 0xa4, 0xbd, 0x62, 0xfa,
+ 0x36, 0x7c, 0xa5, 0xd7, 0x3c, 0xe3, 0x6b, 0x7e, 0x36, 0x02, 0x57, 0xa5,
+ 0xd2, 0x8e, 0x28, 0xa9, 0x4b, 0xc0, 0xca, 0xf2, 0xe9, 0x92, 0x86, 0x55,
+ 0xeb, 0x63, 0xc4, 0x7f, 0x45, 0x7f, 0x2f, 0xbb, 0x89, 0xa5, 0xa6, 0x10,
+ 0xe9, 0x4f, 0x98, 0x08, 0x43, 0xc8, 0x53, 0xad, 0x07, 0x8a, 0xb0, 0xe7,
+ 0x8e, 0x8f, 0x7b, 0x45,
+//};
+//unsigned int epid_sig_dat_len = 1053;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg1.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg1.inc
new file mode 100644
index 0000000000..0c42c86000
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn0_msg1.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "test1"
+ * Basename: "basename1"
+ * SigRl : group x sigrl
+ */
+ //unsigned char sig_sha256_bsn0_msg1_dat[] = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53,
+ 0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09,
+ 0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72,
+ 0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64,
+ 0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb,
+ 0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04,
+ 0x7b, 0xfc, 0x0a, 0x6c, 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41,
+ 0x3a, 0xc6, 0x01, 0x3a, 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c,
+ 0x84, 0xde, 0xc3, 0x3b, 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44,
+ 0x25, 0x98, 0x89, 0xdb, 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86,
+ 0x63, 0x8c, 0xe1, 0x93, 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2,
+ 0x03, 0xf0, 0x18, 0x3e, 0x21, 0xd3, 0x65, 0xa6, 0x2f, 0x7e, 0x85, 0xa9,
+ 0x9f, 0x7b, 0x28, 0x4e, 0xf0, 0x9c, 0xd1, 0xda, 0xc4, 0x4b, 0xe4, 0x8f,
+ 0xc0, 0xe1, 0x4c, 0xaf, 0xcf, 0x85, 0xf7, 0x5c, 0x01, 0x1a, 0x15, 0xd9,
+ 0x4c, 0xf5, 0xdc, 0xc6, 0xce, 0xc5, 0x95, 0x3c, 0x1f, 0xe6, 0x57, 0x3c,
+ 0xbd, 0x8f, 0x5d, 0x05, 0x6e, 0xf9, 0xa3, 0x1e, 0xfb, 0x11, 0x18, 0x0e,
+ 0xfa, 0x07, 0x3b, 0xfd, 0x06, 0xdb, 0x21, 0xaa, 0x13, 0x05, 0xf3, 0x49,
+ 0x63, 0xb2, 0x8e, 0x1d, 0x22, 0x58, 0x53, 0x32, 0xd5, 0x86, 0xcf, 0xd2,
+ 0x2b, 0xfb, 0xf0, 0xe7, 0x56, 0x63, 0xd7, 0x12, 0xd5, 0xe0, 0xa8, 0x71,
+ 0x03, 0x1c, 0xe4, 0x83, 0x1d, 0x58, 0x63, 0xad, 0xa0, 0x48, 0xf3, 0x69,
+ 0x6b, 0xbd, 0x04, 0x4b, 0x81, 0xc7, 0x11, 0xa0, 0x26, 0x48, 0x9d, 0x12,
+ 0xe7, 0x13, 0x20, 0xb4, 0x15, 0xec, 0xbb, 0x06, 0xd1, 0x8e, 0x61, 0xb1,
+ 0xac, 0x11, 0x77, 0x86, 0x4c, 0x03, 0x6a, 0x9a, 0xe6, 0x3a, 0xd7, 0x2b,
+ 0xc8, 0x12, 0xf5, 0xa7, 0x0a, 0x8b, 0x3d, 0xa3, 0x23, 0xdc, 0x66, 0x66,
+ 0x7e, 0x67, 0x19, 0x62, 0x65, 0x60, 0xe8, 0x36, 0x48, 0x97, 0x18, 0xfd,
+ 0xbf, 0x43, 0x00, 0x00, 0x12, 0xa8, 0x4b, 0x8b, 0xf4, 0x38, 0x73, 0x30,
+ 0x84, 0xbd, 0x3e, 0xeb, 0x88, 0xe4, 0x52, 0xd1, 0xd2, 0xb4, 0x35, 0x05,
+ 0x38, 0x66, 0x5c, 0x4f, 0x56, 0xa1, 0x9a, 0x71, 0x82, 0x30, 0x00, 0x00,
+ 0x3f, 0x2e, 0x31, 0x92, 0x93, 0x40, 0x32, 0x64, 0xf0, 0x5c, 0xfa, 0x4e,
+ 0x69, 0xf8, 0xe6, 0x13, 0x7e, 0x7d, 0x1f, 0xb0, 0x32, 0x76, 0x1c, 0x39,
+ 0x42, 0xcf, 0x58, 0xa4, 0xe7, 0x16, 0x00, 0x6f, 0x16, 0x43, 0x7f, 0xa4,
+ 0x4e, 0x58, 0x7d, 0x50, 0xd0, 0x4a, 0x02, 0x89, 0xeb, 0x57, 0x06, 0x8e,
+ 0x61, 0x90, 0x50, 0x1d, 0x29, 0xbf, 0x31, 0xaa, 0x58, 0x2b, 0xa2, 0xc2,
+ 0x0d, 0x23, 0x37, 0x25, 0x15, 0xfd, 0xfc, 0x9c, 0x64, 0xa1, 0xea, 0x12,
+ 0x32, 0x2c, 0x96, 0x24, 0xa9, 0xa8, 0x75, 0x18, 0x5f, 0xb4, 0xf8, 0xfe,
+ 0xd9, 0xf2, 0xd9, 0x44, 0x45, 0xfe, 0x4e, 0x8a, 0xb7, 0x68, 0x0f, 0x6b,
+ 0x5e, 0x05, 0xab, 0xec, 0x1b, 0x5e, 0xcd, 0x44, 0x6a, 0x00, 0x00, 0x33,
+ 0x45, 0xea, 0x26, 0x29, 0x78, 0xe5, 0x0b, 0x40, 0xe5, 0xe0, 0xe2, 0x78,
+ 0xdb, 0x9a, 0xf8, 0xef, 0xa5, 0x3b, 0x54, 0x57, 0x0a, 0x4a, 0x2c, 0x47,
+ 0xd0, 0x1d, 0x55, 0xd8, 0x5e, 0x00, 0x00, 0x30, 0xc0, 0x99, 0xac, 0xcf,
+ 0xb3, 0x0e, 0xd1, 0xf0, 0xc3, 0xfb, 0x47, 0xf5, 0x7e, 0xaa, 0xb7, 0xba,
+ 0x05, 0x21, 0x04, 0xcd, 0x12, 0x07, 0x3f, 0xb6, 0x12, 0x1b, 0x3b, 0x19,
+ 0x12, 0x00, 0x00, 0x3a, 0x2b, 0x9e, 0x80, 0x2a, 0x14, 0x1b, 0x21, 0x81,
+ 0xf8, 0x79, 0xfb, 0xe7, 0x9a, 0x60, 0x90, 0x66, 0x81, 0x65, 0x24, 0x49,
+ 0x27, 0x80, 0x18, 0x29, 0x42, 0x8c, 0xaa, 0xd9, 0xb8, 0x00, 0x00, 0x4e,
+ 0x0b, 0x8c, 0x7e, 0x01, 0xad, 0x83, 0xd1, 0xaa, 0xb4, 0xa3, 0x75, 0xd9,
+ 0x42, 0xa0, 0x9f, 0x1c, 0xd9, 0x05, 0x10, 0x78, 0x78, 0x60, 0xe6, 0xe5,
+ 0xa3, 0x24, 0x79, 0x47, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_bsn0_msg1_dat_len = 577;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn1_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn1_msg0.inc
new file mode 100644
index 0000000000..a13cf0431e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_bsn1_msg0.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "test message"
+ * Basename: "basename2"
+ * SigRl : group x sigrl
+ */
+ //unsigned char sig_sha256_bsn1_msg0_dat[] = {
+ 0x67, 0x58, 0xb2, 0x9c, 0xad, 0x61, 0x1f, 0xfb,
+ 0x74, 0x23, 0xea, 0x40, 0xe9, 0x66, 0x26, 0xb0, 0x43, 0xdc, 0x7e, 0xc7,
+ 0x48, 0x88, 0x56, 0x59, 0xf3, 0x35, 0x9f, 0xdb, 0xfa, 0xa2, 0x49, 0x51,
+ 0x85, 0x35, 0x42, 0x50, 0x8e, 0x79, 0x79, 0xc0, 0x6c, 0xcc, 0x39, 0x0b,
+ 0xad, 0x3b, 0x39, 0x33, 0xae, 0xb2, 0xa1, 0xc5, 0x28, 0x6f, 0x48, 0x3a,
+ 0xd2, 0x63, 0x5d, 0xfb, 0x1b, 0x1f, 0x8a, 0x63, 0x84, 0xdc, 0x2d, 0xad,
+ 0x3b, 0x98, 0x3f, 0xc3, 0x8e, 0x18, 0xd7, 0xea, 0x18, 0x50, 0x0c, 0x50,
+ 0x42, 0x77, 0xb2, 0x59, 0xf5, 0xd5, 0x38, 0xc3, 0x8d, 0x57, 0xf4, 0xe7,
+ 0xb8, 0x74, 0x5a, 0x9e, 0x32, 0x75, 0xd1, 0xb4, 0xb3, 0x64, 0xbc, 0x23,
+ 0xcd, 0x98, 0x29, 0x7a, 0x77, 0x51, 0xfc, 0x26, 0x81, 0x41, 0x9b, 0xf6,
+ 0x21, 0xad, 0xc1, 0xd9, 0xab, 0x30, 0x25, 0x8d, 0x0c, 0x3b, 0x62, 0xe2,
+ 0x05, 0xe1, 0x05, 0xdd, 0x55, 0x7e, 0xf6, 0x7a, 0x66, 0xf9, 0x64, 0x67,
+ 0x2b, 0x57, 0x0b, 0xd1, 0x83, 0x12, 0xfa, 0x67, 0x4d, 0x29, 0x3e, 0x86,
+ 0x91, 0xbb, 0x4c, 0x9a, 0x50, 0xf4, 0xba, 0xab, 0x02, 0x46, 0x36, 0x83,
+ 0x12, 0x54, 0xf6, 0x5e, 0xcb, 0xd7, 0xcd, 0x8c, 0x47, 0x72, 0x43, 0xf4,
+ 0x5f, 0x8b, 0x9f, 0xa6, 0x31, 0x38, 0x8c, 0x52, 0xde, 0x16, 0x0f, 0xe5,
+ 0xea, 0x3b, 0x51, 0x18, 0x06, 0xda, 0xec, 0x18, 0x94, 0xdc, 0xb2, 0x32,
+ 0xc8, 0x0f, 0xfd, 0x43, 0x15, 0x9c, 0x91, 0xb2, 0xf4, 0x90, 0xb6, 0x9c,
+ 0xb8, 0xcd, 0x49, 0xfc, 0x27, 0xff, 0x68, 0x33, 0xc3, 0x06, 0xb9, 0x05,
+ 0x04, 0x9b, 0x71, 0x83, 0x6b, 0xf0, 0x95, 0x31, 0x16, 0x70, 0x30, 0xc9,
+ 0x4b, 0xcd, 0x63, 0x85, 0xc6, 0xf4, 0x3f, 0xe9, 0x35, 0x19, 0x02, 0x61,
+ 0x91, 0x52, 0xda, 0x47, 0xcf, 0x40, 0xed, 0x40, 0xda, 0x8d, 0xe3, 0xbb,
+ 0x31, 0xee, 0xf6, 0x3e, 0x83, 0x6a, 0x20, 0xc0, 0x38, 0xc6, 0xb1, 0x5d,
+ 0x78, 0xff, 0x2b, 0x5e, 0x90, 0x53, 0x04, 0xb0, 0x25, 0x49, 0x04, 0xb4,
+ 0x38, 0x1f, 0x56, 0xfe, 0x15, 0x23, 0x7d, 0xbc, 0x31, 0xc6, 0x38, 0x71,
+ 0xe5, 0xa3, 0x00, 0x00, 0x0b, 0x8c, 0x01, 0xef, 0x56, 0x72, 0x20, 0x1d,
+ 0x30, 0x95, 0x62, 0x3c, 0x37, 0x91, 0x32, 0x94, 0xf3, 0xa4, 0x73, 0x68,
+ 0x6c, 0xda, 0x11, 0x7f, 0x3e, 0x33, 0xa2, 0x35, 0xcb, 0x7c, 0x00, 0x00,
+ 0x43, 0xb9, 0x97, 0x4e, 0x4b, 0xcc, 0x01, 0x30, 0xea, 0xba, 0xcf, 0x5a,
+ 0x4a, 0x4c, 0x35, 0xdc, 0x2a, 0xfa, 0x3a, 0xa7, 0x8b, 0x07, 0x50, 0x1b,
+ 0x28, 0x83, 0x5f, 0x12, 0xd5, 0x3f, 0x00, 0x93, 0x24, 0x59, 0x9b, 0x1c,
+ 0x46, 0xd6, 0x1b, 0x85, 0x23, 0x4d, 0x05, 0xf2, 0x14, 0x00, 0x31, 0xe0,
+ 0x53, 0x85, 0x0b, 0x0a, 0xa5, 0x75, 0x6d, 0x74, 0x65, 0x87, 0x12, 0xa5,
+ 0x2f, 0x98, 0x23, 0x2f, 0x93, 0x21, 0x24, 0x93, 0x1e, 0x4e, 0x51, 0x0e,
+ 0x7a, 0x46, 0x01, 0x0b, 0x9b, 0xc8, 0xc7, 0xb0, 0xd0, 0x5d, 0x6a, 0x54,
+ 0xc5, 0x76, 0xf3, 0xdb, 0x40, 0xe1, 0x9e, 0xd0, 0x33, 0x32, 0xd5, 0x13,
+ 0x57, 0xf9, 0x74, 0x20, 0x86, 0x6b, 0xa8, 0xfb, 0xb9, 0x00, 0x00, 0x17,
+ 0xb0, 0xa5, 0x95, 0x02, 0x3c, 0x4e, 0x02, 0x73, 0x38, 0xc7, 0xbb, 0x5f,
+ 0xef, 0x48, 0x70, 0xde, 0xf4, 0xa4, 0x45, 0x4c, 0x7d, 0x9c, 0x19, 0xc8,
+ 0x98, 0x56, 0x13, 0xe3, 0x31, 0x00, 0x00, 0x6b, 0xdb, 0xe4, 0x38, 0x71,
+ 0xdc, 0x95, 0xf0, 0x40, 0xb1, 0xc8, 0xcd, 0x88, 0xe2, 0x75, 0xc1, 0xeb,
+ 0x7f, 0xb0, 0x6f, 0x9a, 0x46, 0xca, 0x1a, 0xb3, 0xf3, 0xc9, 0xe4, 0x56,
+ 0xaa, 0x00, 0x00, 0x6b, 0x89, 0xf7, 0xd9, 0x55, 0x3c, 0x9f, 0xd6, 0xf6,
+ 0x71, 0x0e, 0xc3, 0xe8, 0xbf, 0xe1, 0x3a, 0x91, 0x1d, 0xe8, 0x8d, 0x9d,
+ 0x1d, 0x20, 0x08, 0x4e, 0x2e, 0x04, 0x9c, 0xd0, 0x06, 0x00, 0x00, 0x23,
+ 0x5c, 0x31, 0x9b, 0x46, 0x4a, 0xff, 0x19, 0x16, 0x89, 0x06, 0x35, 0x58,
+ 0xdf, 0xf4, 0x2d, 0x17, 0x04, 0x21, 0x28, 0x80, 0x66, 0x2c, 0x48, 0xb6,
+ 0x4f, 0xee, 0xd0, 0xe5, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_bsn1_msg0_dat_len = 577;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_rndbase_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_rndbase_msg0.inc
new file mode 100644
index 0000000000..470e82cfa4
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_rndbase_msg0.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "test message"
+ * Basename: None (random base)
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_sha256_rndbase_msg0_dat[] = {
+ 0x0a, 0x53, 0xeb, 0x13, 0xda, 0x3e, 0xc9, 0xe9,
+ 0x7d, 0xed, 0x23, 0xd3, 0xd0, 0x71, 0xf4, 0xdb, 0xf7, 0x36, 0x83, 0x24,
+ 0x09, 0x87, 0x20, 0x5d, 0x48, 0x2d, 0x6c, 0x3a, 0xf3, 0xe2, 0x46, 0xcd,
+ 0x8b, 0x2a, 0xaf, 0x60, 0x6b, 0xe3, 0x64, 0x9c, 0x9e, 0x6a, 0x6d, 0x05,
+ 0xb0, 0xf9, 0x61, 0xc6, 0x60, 0xd6, 0x70, 0xcf, 0xa6, 0x9f, 0x4a, 0xc0,
+ 0x7b, 0x3a, 0xb6, 0xa2, 0xbd, 0x85, 0xcf, 0x2b, 0xce, 0x9e, 0xf0, 0x48,
+ 0x85, 0xf9, 0x65, 0xf5, 0x73, 0x2c, 0xfc, 0x52, 0x21, 0x7e, 0xfa, 0x85,
+ 0xfc, 0x6a, 0x06, 0xad, 0xa5, 0xce, 0x3d, 0xb6, 0xe0, 0xc8, 0x34, 0x38,
+ 0x01, 0x8e, 0xea, 0x76, 0x99, 0xb4, 0x52, 0x99, 0xa7, 0x89, 0x86, 0x18,
+ 0x5f, 0xd9, 0xef, 0x06, 0x99, 0xeb, 0x63, 0x54, 0xd5, 0x8d, 0x44, 0x9b,
+ 0xb0, 0xa2, 0x86, 0xed, 0x1f, 0x85, 0xf7, 0x2e, 0x26, 0xfd, 0x31, 0xd9,
+ 0x05, 0x9b, 0x64, 0x1c, 0x73, 0x26, 0xeb, 0xce, 0xce, 0x77, 0xa1, 0xef,
+ 0x58, 0x16, 0x56, 0x7f, 0xaa, 0xa9, 0xc0, 0x21, 0x94, 0xa5, 0xa2, 0xdb,
+ 0xe8, 0x12, 0x00, 0x5f, 0x1e, 0x87, 0x42, 0x53, 0x08, 0x04, 0xa7, 0xe9,
+ 0x14, 0xd9, 0x9a, 0x56, 0xb1, 0x63, 0x5a, 0x64, 0x67, 0xa8, 0xb9, 0x96,
+ 0xff, 0xa6, 0x89, 0x47, 0xf3, 0xd9, 0x15, 0x82, 0xf6, 0x11, 0x9a, 0x39,
+ 0xc1, 0x85, 0x87, 0xac, 0x09, 0xdd, 0x35, 0xcf, 0x01, 0x34, 0xd7, 0x7f,
+ 0x6f, 0xe6, 0xfa, 0xa8, 0x5d, 0x12, 0x42, 0xa4, 0x32, 0x3a, 0x63, 0x76,
+ 0x46, 0xe5, 0xbe, 0x4d, 0xfb, 0xb4, 0xba, 0xa3, 0x64, 0x8e, 0x97, 0xfe,
+ 0x05, 0xe4, 0x86, 0xc6, 0x3d, 0xd7, 0x2e, 0xaf, 0xcf, 0xa4, 0x83, 0x66,
+ 0xe2, 0x84, 0x99, 0xf5, 0x55, 0x3f, 0xdf, 0x1e, 0x86, 0x2b, 0x61, 0x35,
+ 0xc2, 0x4b, 0x07, 0xc6, 0xa7, 0xe2, 0x59, 0x3e, 0xa8, 0xc7, 0x47, 0x34,
+ 0x42, 0xdb, 0x72, 0xec, 0xe6, 0x67, 0x85, 0xeb, 0xbe, 0xdd, 0x02, 0x37,
+ 0x1a, 0xc1, 0x7c, 0xea, 0xf1, 0x43, 0x19, 0xe1, 0x38, 0xb6, 0x82, 0x13,
+ 0x78, 0xeb, 0xe4, 0xa2, 0xe6, 0xd7, 0x26, 0x27, 0x4f, 0x33, 0x75, 0xaa,
+ 0x4c, 0x76, 0x00, 0x00, 0x75, 0x35, 0x2a, 0xdf, 0x8a, 0x7e, 0x29, 0xa8,
+ 0x12, 0xb7, 0x53, 0xaa, 0x51, 0x8a, 0x69, 0x2f, 0xa1, 0xf2, 0x4b, 0xac,
+ 0x33, 0x8e, 0xc6, 0xaa, 0xb3, 0x89, 0x2d, 0xa0, 0xf1, 0x61, 0x00, 0x00,
+ 0x5c, 0xb7, 0x83, 0x21, 0x28, 0x00, 0x91, 0xbd, 0x39, 0x38, 0xf0, 0x45,
+ 0x9b, 0xf7, 0xd3, 0x36, 0x13, 0x22, 0x04, 0x39, 0x6c, 0x5b, 0x0e, 0xb0,
+ 0x7b, 0x31, 0x8f, 0xa6, 0xe6, 0xd2, 0x00, 0x15, 0xa8, 0xec, 0xf1, 0xc2,
+ 0x68, 0xc8, 0x68, 0x75, 0xf3, 0xef, 0x66, 0x60, 0x35, 0x88, 0x5f, 0xae,
+ 0x3d, 0xd9, 0x26, 0x8e, 0x54, 0xdb, 0xc4, 0x5d, 0xf1, 0xb5, 0x57, 0xc2,
+ 0x1b, 0xca, 0x18, 0x65, 0xd8, 0xb5, 0x4d, 0xa8, 0xfa, 0x7a, 0x12, 0x6d,
+ 0xca, 0x65, 0x19, 0x26, 0x4d, 0x2c, 0xf6, 0x15, 0x3d, 0xbf, 0x18, 0xce,
+ 0xc8, 0x83, 0xbd, 0x7f, 0xe8, 0x73, 0xb4, 0xba, 0xbd, 0xcd, 0xc9, 0xe1,
+ 0x03, 0xa6, 0x36, 0x1d, 0xe6, 0x4b, 0xf1, 0x79, 0xc2, 0x00, 0x00, 0x86,
+ 0x29, 0x09, 0x23, 0xe9, 0x08, 0x76, 0x02, 0xc2, 0xea, 0x06, 0xc6, 0x46,
+ 0xfd, 0x41, 0x5e, 0x10, 0x9e, 0x45, 0xf2, 0x68, 0xb1, 0x7c, 0xbf, 0x27,
+ 0x7e, 0x5f, 0x35, 0xa1, 0x61, 0x00, 0x00, 0x00, 0xef, 0x17, 0x44, 0x9a,
+ 0xf0, 0xe7, 0xb7, 0xb1, 0xef, 0x64, 0xc1, 0xe9, 0x1c, 0xec, 0x23, 0x28,
+ 0x38, 0xb2, 0x68, 0x5d, 0x57, 0x22, 0x8d, 0x17, 0x34, 0x39, 0x90, 0x73,
+ 0x9e, 0x00, 0x00, 0x32, 0xca, 0xac, 0xa4, 0xf3, 0xe0, 0xf1, 0xd4, 0x76,
+ 0xc8, 0x66, 0x52, 0xa1, 0x1c, 0x77, 0x12, 0x1b, 0x12, 0xa4, 0xf1, 0xa7,
+ 0x61, 0x58, 0xb3, 0xd8, 0x6d, 0xa4, 0x38, 0x6f, 0xd7, 0x00, 0x00, 0x0b,
+ 0xf7, 0xc6, 0xc9, 0xa2, 0x7b, 0x65, 0x26, 0x33, 0xaf, 0xbc, 0xd9, 0x5c,
+ 0x07, 0x57, 0x59, 0x14, 0xac, 0x40, 0x71, 0xbd, 0x25, 0x9c, 0xbb, 0x52,
+ 0x9e, 0x2a, 0x64, 0x70, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_rndbase_msg0_dat_len = 577;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_rndbase_msg1.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_rndbase_msg1.inc
new file mode 100644
index 0000000000..4682ed3d8f
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member0/sig_sha256_rndbase_msg1.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "test1"
+ * Basename: None (random base)
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_sha256_rndbase_msg1_dat[] = {
+ 0x35, 0xac, 0x96, 0x37, 0xa4, 0x82, 0x58, 0xa1,
+ 0xf5, 0xa1, 0xd2, 0x6b, 0x65, 0x56, 0xb6, 0xee, 0x8f, 0x8d, 0xc8, 0xc7,
+ 0x8f, 0x54, 0x66, 0xad, 0xcc, 0x84, 0x5f, 0x7b, 0x97, 0x16, 0x3e, 0xa8,
+ 0x66, 0x20, 0x05, 0xb5, 0x3c, 0x84, 0xf9, 0xa2, 0x00, 0xd8, 0x0d, 0x61,
+ 0x93, 0x93, 0x0e, 0x81, 0x86, 0x1b, 0xe5, 0x53, 0xc0, 0xbe, 0xf1, 0x84,
+ 0x42, 0x75, 0x22, 0x60, 0xa3, 0xcf, 0x88, 0x35, 0x41, 0xf0, 0x0e, 0xd8,
+ 0x1c, 0x2f, 0xa0, 0x46, 0x2d, 0xbd, 0x5c, 0xee, 0xa1, 0xdb, 0xe3, 0x20,
+ 0x4c, 0xd3, 0x27, 0xe0, 0x92, 0x28, 0x85, 0x01, 0xbd, 0xe4, 0x13, 0x47,
+ 0x37, 0xaf, 0x30, 0xb7, 0x93, 0xce, 0x4d, 0x2c, 0x43, 0x31, 0xa7, 0x96,
+ 0x62, 0x53, 0xa5, 0x1b, 0x93, 0x49, 0x37, 0xb0, 0x7c, 0x67, 0x8e, 0x9e,
+ 0xf6, 0xe2, 0x5e, 0x3c, 0xcb, 0xcc, 0x2f, 0xc0, 0x50, 0x8f, 0xf4, 0xaa,
+ 0x04, 0x8d, 0x7b, 0x15, 0xf9, 0x89, 0xa6, 0x2f, 0x8a, 0xc3, 0xa0, 0x07,
+ 0x32, 0x6f, 0x25, 0x3c, 0x88, 0xa4, 0xf2, 0x93, 0x3c, 0x49, 0xe7, 0x84,
+ 0xb0, 0xc6, 0x77, 0xb3, 0x84, 0xcb, 0x0b, 0xb9, 0x00, 0x44, 0xd1, 0xca,
+ 0xea, 0x1e, 0xcc, 0xe2, 0x6f, 0xe9, 0x2b, 0x73, 0xfe, 0x13, 0x07, 0x27,
+ 0x36, 0x36, 0xc7, 0x0b, 0x7d, 0x76, 0xa2, 0xde, 0x96, 0xb1, 0x4a, 0xe4,
+ 0x05, 0x5f, 0x35, 0x1e, 0x01, 0x01, 0xfd, 0x80, 0x5f, 0x5a, 0xfd, 0x55,
+ 0x80, 0xe6, 0x76, 0xd9, 0xec, 0xfc, 0x1c, 0x4a, 0xf0, 0x3c, 0xec, 0x47,
+ 0x62, 0xca, 0x80, 0x12, 0x94, 0x7f, 0x3d, 0xc8, 0xe1, 0x7d, 0xdd, 0x20,
+ 0x01, 0xe3, 0x48, 0xdc, 0x78, 0xef, 0x45, 0x49, 0x30, 0x8d, 0xeb, 0xae,
+ 0x2a, 0x5a, 0x82, 0x40, 0x61, 0x16, 0xdb, 0x5c, 0x4c, 0x04, 0x0b, 0xc1,
+ 0x51, 0x64, 0xfb, 0x43, 0x2d, 0x71, 0xef, 0xf1, 0x76, 0xe4, 0xb6, 0xb8,
+ 0x9d, 0x27, 0x4f, 0xf4, 0x23, 0xaf, 0x56, 0x9f, 0x44, 0x7c, 0xb0, 0xb7,
+ 0x87, 0x89, 0xce, 0x05, 0xec, 0x06, 0xc3, 0x7f, 0xa1, 0x6c, 0xc3, 0xe1,
+ 0xa7, 0xd8, 0x02, 0xfc, 0x70, 0xd0, 0xd3, 0x40, 0x95, 0x85, 0x1c, 0x4b,
+ 0x15, 0x62, 0x00, 0x00, 0x62, 0xfb, 0xc3, 0x15, 0x6d, 0xf8, 0x4b, 0x50,
+ 0x52, 0xfd, 0xc9, 0x3a, 0xaf, 0x43, 0x22, 0x5e, 0xab, 0x76, 0x5a, 0x35,
+ 0x25, 0x32, 0x4c, 0x07, 0xf4, 0x03, 0xb6, 0x01, 0x09, 0xd8, 0x00, 0x00,
+ 0x32, 0x15, 0x7f, 0x79, 0xfe, 0x69, 0x79, 0x1c, 0x34, 0xe3, 0xdf, 0x9a,
+ 0xef, 0x31, 0xf4, 0x79, 0xad, 0x38, 0xf1, 0xee, 0x89, 0x95, 0x46, 0x56,
+ 0x82, 0x04, 0x7a, 0xda, 0xd5, 0x23, 0x00, 0x2b, 0x11, 0xa1, 0x5a, 0xc6,
+ 0x23, 0x46, 0xde, 0x9c, 0x86, 0x99, 0x4f, 0xd0, 0xf7, 0x10, 0xe7, 0x1d,
+ 0xd7, 0xed, 0xbd, 0xb1, 0x95, 0xcf, 0x2b, 0x2d, 0x97, 0x46, 0x1e, 0x95,
+ 0x69, 0x7d, 0x21, 0x11, 0x33, 0x37, 0x10, 0x17, 0xee, 0xb7, 0x64, 0x48,
+ 0x08, 0xf9, 0xd3, 0x56, 0xb5, 0xa8, 0x74, 0xb2, 0xc6, 0xe4, 0x07, 0x42,
+ 0x42, 0x30, 0x4c, 0x5e, 0x30, 0x1f, 0xce, 0x0e, 0x65, 0x03, 0x23, 0xfd,
+ 0x1b, 0x19, 0x73, 0xa5, 0xdb, 0xb0, 0x91, 0x11, 0xcd, 0x00, 0x00, 0x21,
+ 0x27, 0xb7, 0x3b, 0x45, 0x88, 0xc4, 0xbc, 0x47, 0xfb, 0x2d, 0xaf, 0x28,
+ 0x25, 0xb9, 0x7b, 0x38, 0xa6, 0xdd, 0x9c, 0x86, 0x56, 0xcc, 0xf2, 0x24,
+ 0xd0, 0x9a, 0xc9, 0x9e, 0x94, 0x00, 0x00, 0x76, 0xf1, 0xe7, 0xb1, 0xad,
+ 0x26, 0xbf, 0x5e, 0x04, 0xd1, 0x6e, 0x95, 0x18, 0x12, 0x8d, 0xce, 0x45,
+ 0xeb, 0x91, 0xce, 0xaa, 0x88, 0x7c, 0x65, 0xd5, 0x74, 0x9b, 0x05, 0xa4,
+ 0x3d, 0x00, 0x00, 0x11, 0x70, 0x70, 0xcc, 0x62, 0xe4, 0x70, 0xa3, 0x65,
+ 0x0a, 0x3e, 0xbe, 0xac, 0xbe, 0xdc, 0xeb, 0x2f, 0xe4, 0xe6, 0xec, 0x10,
+ 0x3a, 0x5a, 0x90, 0xd8, 0xb6, 0xa2, 0x4a, 0x3f, 0x27, 0x00, 0x00, 0x10,
+ 0x15, 0x11, 0xc1, 0x14, 0x9e, 0x53, 0x4e, 0x02, 0xe3, 0x1b, 0x90, 0x3e,
+ 0x3a, 0x65, 0xa4, 0x87, 0xaa, 0x24, 0xa0, 0x16, 0x59, 0x54, 0x7f, 0x10,
+ 0xb4, 0x73, 0x67, 0x55, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_rndbase_msg1_dat_len = 577;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member1/sig_sha256_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member1/sig_sha256_bsn0_msg0.inc
new file mode 100644
index 0000000000..13704b18bb
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/member1/sig_sha256_bsn0_msg0.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : member1
+ * HashAlg : Sha256
+ * Message : "test message"
+ * Basename: "basename1"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_sha256_bsn0_msg0_dat[] = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53,
+ 0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09,
+ 0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72,
+ 0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64,
+ 0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb,
+ 0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70, 0x2e, 0x50, 0xd9, 0xca,
+ 0x8f, 0x12, 0x5b, 0xfc, 0xc8, 0x02, 0x58, 0xff, 0xc9, 0xb8, 0xc1, 0x91,
+ 0x59, 0x33, 0x1e, 0xdb, 0x17, 0x8c, 0x2b, 0x24, 0x03, 0x8f, 0x1a, 0xcd,
+ 0x6b, 0x69, 0x1d, 0xd0, 0xa5, 0x79, 0x11, 0x92, 0x6b, 0x26, 0xe2, 0xc5,
+ 0xec, 0xa8, 0x85, 0x7b, 0xe0, 0x4f, 0xb0, 0x3c, 0x41, 0xc2, 0xa5, 0x8e,
+ 0xb9, 0x74, 0xe6, 0xa5, 0x69, 0xca, 0x86, 0x34, 0xf0, 0x74, 0xaa, 0x95,
+ 0x03, 0x5a, 0xbe, 0x40, 0xcd, 0x53, 0x62, 0x56, 0x50, 0x42, 0x0c, 0x75,
+ 0xe3, 0x93, 0x3a, 0x87, 0x69, 0x0d, 0x18, 0x71, 0xd0, 0xfb, 0x5e, 0xd9,
+ 0xf9, 0x58, 0xb0, 0x8b, 0x64, 0xd5, 0x35, 0x17, 0x03, 0x45, 0x25, 0x4e,
+ 0x6b, 0x10, 0x1c, 0x1e, 0x87, 0x4d, 0xe1, 0x79, 0xf4, 0x41, 0x61, 0xf5,
+ 0x45, 0xf0, 0x72, 0x37, 0x41, 0x0c, 0x11, 0x74, 0x48, 0x98, 0x0e, 0xb4,
+ 0x65, 0x25, 0xcf, 0xad, 0x06, 0x2c, 0x1f, 0x4f, 0x01, 0xf8, 0x8b, 0xa6,
+ 0x79, 0xe3, 0x53, 0xf9, 0xe6, 0x26, 0xa1, 0x08, 0xdf, 0x0f, 0x6f, 0xff,
+ 0x92, 0x6b, 0xcb, 0x4c, 0x6a, 0x66, 0xe2, 0xb0, 0xad, 0x37, 0x05, 0xba,
+ 0x03, 0x27, 0xef, 0xad, 0x48, 0xb9, 0xd3, 0xe3, 0x10, 0xba, 0x28, 0xf7,
+ 0x76, 0xf6, 0xd1, 0xe3, 0x8d, 0x17, 0x3d, 0xdc, 0x38, 0xd0, 0x2c, 0xa4,
+ 0x34, 0xc8, 0x04, 0x39, 0xe8, 0xfb, 0xd6, 0xa0, 0x98, 0x64, 0x75, 0xbd,
+ 0xa9, 0xfb, 0x8e, 0x8b, 0x3a, 0x51, 0xa8, 0x0d, 0x75, 0x89, 0x9f, 0xe9,
+ 0x23, 0xe0, 0xfe, 0x3d, 0x52, 0x67, 0x95, 0xf6, 0x12, 0xe7, 0x9f, 0x23,
+ 0xfd, 0xba, 0xcb, 0xc8, 0xc5, 0x76, 0xca, 0x19, 0xb6, 0xfe, 0x00, 0x78,
+ 0x63, 0x0c, 0x00, 0x00, 0x17, 0x98, 0x13, 0xf3, 0x2e, 0xd1, 0x6c, 0xa1,
+ 0x58, 0x54, 0x4f, 0xcb, 0x68, 0xae, 0xe9, 0xbc, 0x52, 0xfc, 0x95, 0x4b,
+ 0x31, 0x23, 0x44, 0x30, 0x99, 0xdf, 0x40, 0x7f, 0xb8, 0xb1, 0x00, 0x00,
+ 0x3b, 0x35, 0x7b, 0x2b, 0xaf, 0xd7, 0x5f, 0x53, 0xeb, 0x10, 0x66, 0xa9,
+ 0x68, 0x23, 0xea, 0xbc, 0xa0, 0xdc, 0xb4, 0x4a, 0x1f, 0xd5, 0x15, 0x46,
+ 0x99, 0xb3, 0x7b, 0x44, 0xc9, 0xfc, 0x00, 0x47, 0x6e, 0xac, 0x44, 0xeb,
+ 0x65, 0x06, 0x7a, 0x3a, 0x57, 0xa1, 0x18, 0x4a, 0x70, 0x33, 0x7a, 0x5b,
+ 0x8f, 0x26, 0x5f, 0xfb, 0x13, 0x72, 0x58, 0xbd, 0xec, 0xc4, 0xe7, 0x7a,
+ 0x65, 0x18, 0xb4, 0x8b, 0x68, 0xa0, 0x53, 0x3f, 0xc0, 0x26, 0x67, 0xca,
+ 0x1c, 0xd4, 0x3d, 0x60, 0x62, 0x2f, 0x9f, 0x8c, 0xac, 0xd1, 0x80, 0xfd,
+ 0x9b, 0x6f, 0xe1, 0xd1, 0x3c, 0x65, 0x4e, 0x0d, 0x34, 0xca, 0x85, 0xe4,
+ 0x55, 0xf7, 0x4e, 0x41, 0x28, 0xea, 0xab, 0xef, 0x96, 0x00, 0x00, 0x54,
+ 0xbf, 0x83, 0x72, 0x76, 0x1c, 0xe5, 0xe5, 0x2e, 0xfc, 0xc7, 0x8a, 0x13,
+ 0xd8, 0x92, 0x5c, 0xab, 0x9e, 0x00, 0xf2, 0xbe, 0xf9, 0xfb, 0x63, 0x30,
+ 0xf5, 0x53, 0xa2, 0x99, 0x49, 0x00, 0x00, 0x0b, 0x9f, 0x78, 0x17, 0xc2,
+ 0xa5, 0x4f, 0xc1, 0x38, 0xe1, 0x75, 0xf6, 0x46, 0x2a, 0x8e, 0x45, 0xdf,
+ 0xbd, 0x39, 0xa0, 0x6d, 0xf8, 0x75, 0x68, 0xce, 0x73, 0xad, 0x56, 0xea,
+ 0xe0, 0x00, 0x00, 0x0e, 0xc6, 0xa7, 0x88, 0x43, 0xc2, 0xdb, 0xbf, 0x73,
+ 0xa3, 0xa1, 0xdb, 0x46, 0xd8, 0x89, 0xca, 0xea, 0x11, 0xf7, 0x6c, 0x47,
+ 0xea, 0x0d, 0xdd, 0x52, 0x7d, 0x33, 0xef, 0x65, 0xdb, 0x00, 0x00, 0x0f,
+ 0x48, 0xd4, 0x3f, 0xbc, 0x4e, 0xc3, 0xd9, 0x59, 0x52, 0x65, 0xbb, 0xbc,
+ 0x13, 0xa0, 0xb8, 0x51, 0xef, 0xdc, 0x11, 0x94, 0xa6, 0xc4, 0x09, 0x83,
+ 0x3d, 0xe2, 0x7e, 0x09, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_bsn0_msg0_dat_len = 577;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey000.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey000.inc
new file mode 100644
index 0000000000..b1dc8e888b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey000.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data for revoked privrl.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : privrevoked->member000
+ * HashAlg : Sha256
+ * Message : "test message"
+ * Basename: "basename1"
+ * SigRl : groupx empty sigrl
+ */
+ //unsigned char sig_sha256_bsn0_msg0_revkey000_dat[] = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53,
+ 0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09,
+ 0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72,
+ 0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64,
+ 0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb,
+ 0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70, 0x06, 0x29, 0x78, 0xfc,
+ 0x10, 0xfc, 0x2c, 0xde, 0x10, 0xe7, 0xe0, 0x6b, 0xdd, 0x0a, 0x9a, 0xb7,
+ 0x0e, 0xad, 0x06, 0x41, 0x61, 0x2b, 0x4f, 0xc8, 0x31, 0x84, 0x64, 0x22,
+ 0xbb, 0xe1, 0x83, 0x77, 0x98, 0x03, 0x0e, 0x5c, 0x01, 0x38, 0xd1, 0x9b,
+ 0x29, 0x3f, 0xc3, 0x6f, 0x1d, 0x1a, 0x92, 0x9f, 0xab, 0x47, 0x6f, 0x42,
+ 0xf4, 0x79, 0x96, 0xae, 0x74, 0x45, 0xbf, 0x33, 0xb5, 0x93, 0xf6, 0x74,
+ 0x06, 0xbb, 0xf0, 0x0c, 0x9f, 0x2a, 0x41, 0x1f, 0xc9, 0x90, 0x34, 0x41,
+ 0xf5, 0xdc, 0xcc, 0x65, 0x7e, 0xfc, 0x00, 0xec, 0x9a, 0x50, 0x76, 0x2c,
+ 0xc9, 0x39, 0x1b, 0x17, 0x19, 0x4e, 0x41, 0xa6, 0x03, 0xcc, 0xc6, 0xd9,
+ 0xcd, 0x5e, 0x24, 0xeb, 0x5b, 0xaf, 0x2c, 0x44, 0xdc, 0x29, 0x71, 0x8f,
+ 0x6e, 0x24, 0x86, 0xfa, 0x58, 0x6c, 0x0b, 0x67, 0x8a, 0xf9, 0xb9, 0x36,
+ 0x41, 0xdb, 0xa4, 0x3f, 0x00, 0x8c, 0xa8, 0x10, 0x9c, 0xca, 0xc8, 0xbd,
+ 0x7b, 0x08, 0x9c, 0xb0, 0x20, 0x10, 0x2b, 0x63, 0xff, 0x25, 0x19, 0x48,
+ 0x69, 0x85, 0x92, 0x74, 0xc1, 0x3c, 0x26, 0x9a, 0x9c, 0x10, 0x42, 0x42,
+ 0x08, 0xe2, 0x9f, 0x98, 0xee, 0xb8, 0xc7, 0x6e, 0x0a, 0x87, 0x8a, 0x27,
+ 0x6d, 0xe7, 0x27, 0x22, 0xcf, 0x23, 0x14, 0x8c, 0x4e, 0xfe, 0x33, 0x3b,
+ 0xa4, 0x14, 0x3e, 0x37, 0x6a, 0x39, 0xfe, 0x12, 0xd0, 0x5b, 0xa5, 0x08,
+ 0x3d, 0x85, 0x71, 0xeb, 0xa5, 0xe8, 0x5a, 0x9f, 0xcb, 0xb4, 0xdb, 0xce,
+ 0x32, 0x49, 0x9a, 0xba, 0xda, 0x37, 0x23, 0x45, 0x16, 0x50, 0x60, 0x15,
+ 0x4b, 0xc1, 0xfd, 0xfb, 0x00, 0x9c, 0x67, 0xae, 0xc0, 0x98, 0xbb, 0x63,
+ 0x52, 0x7b, 0x00, 0x00, 0x82, 0xec, 0xd1, 0xd1, 0x45, 0xd6, 0x9e, 0x42,
+ 0x9a, 0x18, 0xe7, 0x1e, 0x52, 0x27, 0xed, 0x65, 0x90, 0x95, 0xc1, 0x79,
+ 0x3d, 0x0b, 0x2e, 0x84, 0xdd, 0xcc, 0xdc, 0xc3, 0x46, 0x17, 0x00, 0x00,
+ 0x7c, 0xce, 0x2e, 0x41, 0xd1, 0x68, 0xa8, 0xdb, 0xea, 0x42, 0x7a, 0x67,
+ 0xf7, 0x6b, 0xae, 0xb4, 0xc2, 0xdf, 0x8d, 0xbb, 0xd5, 0xdb, 0x1c, 0x88,
+ 0xca, 0x68, 0x4a, 0xc9, 0xdb, 0x18, 0x00, 0x9a, 0x1b, 0x74, 0xf0, 0x79,
+ 0xfc, 0xa8, 0x10, 0xb3, 0xec, 0x6b, 0x48, 0xdf, 0xbc, 0x89, 0xd6, 0x78,
+ 0xb4, 0xff, 0xb1, 0xae, 0x76, 0xec, 0x97, 0xa1, 0x72, 0x8e, 0xfe, 0x1d,
+ 0x30, 0xa3, 0xda, 0x64, 0x59, 0xf8, 0x28, 0x5b, 0xa5, 0x9c, 0x05, 0x2c,
+ 0x96, 0x45, 0x00, 0xd4, 0xb5, 0xab, 0x93, 0x2e, 0x34, 0x04, 0x09, 0x15,
+ 0x22, 0x9e, 0xf3, 0x44, 0x5e, 0xaa, 0xfc, 0xce, 0x1f, 0x05, 0x67, 0xe2,
+ 0x58, 0xa8, 0x88, 0xb2, 0x77, 0x5d, 0x23, 0x41, 0x9a, 0x00, 0x00, 0x5f,
+ 0xed, 0x04, 0x87, 0x17, 0x46, 0xcb, 0xb3, 0x94, 0x07, 0x58, 0xa5, 0xc2,
+ 0x98, 0xaa, 0xc1, 0x58, 0x30, 0x1f, 0x45, 0x28, 0xad, 0xbf, 0xce, 0x7d,
+ 0xb6, 0xb7, 0x80, 0x8f, 0x57, 0x00, 0x00, 0x2d, 0x5b, 0xc3, 0x9f, 0x99,
+ 0xb6, 0xb4, 0x15, 0x98, 0x4b, 0xb7, 0x3c, 0xb1, 0x1a, 0x7a, 0x78, 0xcd,
+ 0x03, 0xd0, 0xe7, 0x36, 0x1e, 0xdc, 0x13, 0x28, 0x5d, 0xdc, 0x4b, 0x47,
+ 0x18, 0x00, 0x00, 0x61, 0x3d, 0xa0, 0x18, 0x14, 0xbd, 0x62, 0xdc, 0x75,
+ 0xf5, 0xfc, 0xf4, 0xcc, 0x34, 0x9b, 0x9a, 0x7f, 0x61, 0xaa, 0x18, 0x1c,
+ 0xe3, 0x54, 0x51, 0xb5, 0x0c, 0xe2, 0xa6, 0x90, 0x0b, 0x00, 0x00, 0x19,
+ 0x92, 0x07, 0x28, 0xc1, 0x79, 0xd1, 0xb2, 0xba, 0x4b, 0xcb, 0x7e, 0x85,
+ 0x67, 0x24, 0xab, 0x74, 0x63, 0xe8, 0x47, 0x4a, 0x30, 0x1c, 0x26, 0x18,
+ 0x98, 0x43, 0x16, 0xc6, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_bsn0_msg0_revkey000_dat_len = 573;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey001.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey001.inc
new file mode 100644
index 0000000000..151527fee6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey001.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data for revoked privrl.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : privrevoked->member001
+ * HashAlg : Sha256
+ * Message : "test message"
+ * Basename: "basename1"
+ * SigRl : groupx empty sigrl
+ */
+ //unsigned char sig_sha256_bsn0_msg0_revkey000_dat[] = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53,
+ 0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09,
+ 0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72,
+ 0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64,
+ 0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb,
+ 0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70, 0x26, 0xbb, 0xb1, 0x25,
+ 0x06, 0xa9, 0xaf, 0xff, 0x35, 0xc2, 0xb5, 0x36, 0x4b, 0xbd, 0x36, 0xc3,
+ 0x64, 0x50, 0x9a, 0x59, 0xf6, 0x50, 0x84, 0x70, 0xfd, 0xcd, 0xfb, 0x13,
+ 0x9a, 0x07, 0x32, 0x7b, 0xc7, 0x7c, 0xff, 0x33, 0x99, 0x8e, 0xb1, 0x86,
+ 0x45, 0xb6, 0xea, 0xc2, 0x90, 0x33, 0xdc, 0x1e, 0x63, 0x26, 0x26, 0xe1,
+ 0xe4, 0x57, 0x3d, 0x9c, 0x61, 0x3a, 0x50, 0x14, 0x3d, 0xbb, 0x22, 0x9b,
+ 0x00, 0xfc, 0x22, 0xec, 0x97, 0xe9, 0x65, 0xdd, 0x83, 0x81, 0xf3, 0xf2,
+ 0x21, 0x66, 0x73, 0xa3, 0x5a, 0x43, 0x9c, 0x0e, 0x00, 0x19, 0x89, 0x3b,
+ 0x0a, 0xad, 0xa1, 0xa8, 0xad, 0x86, 0x5c, 0xc2, 0x07, 0xd3, 0x9c, 0xa0,
+ 0xa7, 0x08, 0xb0, 0x5e, 0x01, 0xe2, 0xf9, 0xcc, 0x55, 0x3c, 0x13, 0x40,
+ 0x8c, 0x8f, 0x9f, 0x2d, 0x6d, 0xb0, 0x94, 0x5c, 0x7b, 0xb3, 0x2d, 0xea,
+ 0x12, 0xd4, 0x3f, 0x84, 0x03, 0x6d, 0x19, 0xbc, 0x4d, 0x29, 0x44, 0x8d,
+ 0xa5, 0x5c, 0xc2, 0x5e, 0x20, 0x1f, 0x1f, 0xdd, 0x1d, 0x02, 0x96, 0x4c,
+ 0x23, 0xa1, 0xe0, 0xe6, 0x66, 0x67, 0x41, 0x2f, 0xcb, 0xb7, 0x61, 0x60,
+ 0x05, 0xa9, 0x80, 0x8a, 0xd0, 0x7b, 0x4e, 0xb4, 0xc0, 0xdd, 0xf4, 0xd7,
+ 0xd1, 0x6d, 0x7f, 0xab, 0x50, 0xbf, 0xbc, 0x9b, 0x68, 0xf3, 0x4b, 0xd9,
+ 0xee, 0x25, 0x4e, 0x32, 0x93, 0xc2, 0x3d, 0x2d, 0x2e, 0xa8, 0xc8, 0x40,
+ 0xc6, 0xca, 0xa4, 0xb4, 0xf2, 0xb9, 0xc8, 0x76, 0xb0, 0x48, 0x71, 0xe3,
+ 0xf7, 0x2d, 0x55, 0x0b, 0xdb, 0x17, 0xc6, 0x15, 0x07, 0x96, 0x45, 0x65,
+ 0x4e, 0xd8, 0xb1, 0x08, 0xc4, 0xd6, 0x6b, 0x40, 0x1f, 0x6d, 0xb9, 0xc0,
+ 0x35, 0x31, 0x00, 0x00, 0x2b, 0x55, 0xb4, 0x60, 0x26, 0x2c, 0x5d, 0xab,
+ 0xf3, 0x66, 0x09, 0x2d, 0x33, 0xd6, 0x74, 0x34, 0x39, 0xba, 0x76, 0xfc,
+ 0xc3, 0xfd, 0x10, 0x3a, 0x72, 0x30, 0x53, 0x8d, 0x8b, 0x82, 0x00, 0x00,
+ 0x50, 0x41, 0x2f, 0x3f, 0x08, 0x27, 0x68, 0x63, 0x02, 0xdd, 0xb1, 0x1b,
+ 0x42, 0xd2, 0x2d, 0x26, 0x97, 0xa3, 0x13, 0x04, 0xe3, 0x6e, 0x8b, 0x19,
+ 0x5a, 0x14, 0xf9, 0x0d, 0xa2, 0x67, 0x00, 0xd0, 0x38, 0x85, 0x83, 0xf7,
+ 0x0b, 0x26, 0x97, 0x66, 0x91, 0x20, 0xbb, 0x27, 0x22, 0xaa, 0x6e, 0x6b,
+ 0x36, 0x1a, 0xa6, 0x1e, 0x0a, 0xb2, 0x83, 0x37, 0xf8, 0xea, 0xc2, 0x6c,
+ 0x35, 0xa5, 0x71, 0xfd, 0xec, 0x97, 0x69, 0x28, 0xa0, 0x22, 0xcd, 0x4a,
+ 0x2f, 0x7b, 0x64, 0x48, 0x5c, 0xfe, 0x6d, 0xdc, 0x71, 0x2d, 0x1e, 0x66,
+ 0xea, 0x89, 0x9f, 0x52, 0x0c, 0xc4, 0x48, 0x91, 0x7e, 0xae, 0x02, 0xbf,
+ 0x92, 0xe7, 0xa5, 0xcb, 0x38, 0xe7, 0xe1, 0x2a, 0xc2, 0x00, 0x00, 0x11,
+ 0x06, 0xe4, 0x48, 0x68, 0xe7, 0xe1, 0x35, 0x4c, 0xd5, 0x21, 0x1f, 0x47,
+ 0x3f, 0x1f, 0x60, 0xd3, 0x54, 0x8f, 0x5c, 0xf6, 0xba, 0x39, 0xaa, 0x3e,
+ 0x25, 0x83, 0x9c, 0xd2, 0xbe, 0x00, 0x00, 0x60, 0xda, 0xd4, 0xae, 0x6b,
+ 0xb3, 0x48, 0xbc, 0x59, 0x10, 0x01, 0x25, 0xe5, 0xe1, 0x8f, 0x24, 0x3f,
+ 0x32, 0x34, 0x29, 0x73, 0x42, 0x22, 0x6f, 0xa4, 0x32, 0x47, 0x8d, 0xde,
+ 0x82, 0x00, 0x00, 0x35, 0x27, 0x8b, 0xfb, 0x4d, 0x69, 0x4d, 0xb0, 0xcb,
+ 0xf0, 0x02, 0x19, 0xde, 0xe1, 0x64, 0x82, 0x66, 0xd6, 0x44, 0x51, 0x7c,
+ 0x25, 0x95, 0xf7, 0x6c, 0x1a, 0x68, 0xd9, 0xbf, 0x77, 0x00, 0x00, 0x66,
+ 0x94, 0x58, 0x4c, 0x22, 0x52, 0x46, 0xa5, 0x8c, 0x26, 0x13, 0xa1, 0xdd,
+ 0x3e, 0x2b, 0xd1, 0x81, 0x09, 0x64, 0xb9, 0xc3, 0x1a, 0x2e, 0xb7, 0xc6,
+ 0xee, 0xbc, 0x28, 0xc9, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_bsn0_msg0_revkey000_dat_len = 573;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey002.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey002.inc
new file mode 100644
index 0000000000..c2ddb24965
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey002.inc
@@ -0,0 +1,79 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data for revoked privrl.
+ *
+ * Type : Intel(R) EPID 1.1 Signature
+ * Group : grpX
+ * Signer : privrevoked->member002
+ * HashAlg : Sha256
+ * Message : "test message"
+ * Basename: "basename1"
+ * SigRl : groupx empty sigrl
+ */
+ //unsigned char sig_sha256_bsn0_msg0_revkey000_dat[] = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53,
+ 0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09,
+ 0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72,
+ 0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64,
+ 0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb,
+ 0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70, 0x09, 0xbd, 0x15, 0x9f,
+ 0x7f, 0x5f, 0x39, 0x6a, 0xe4, 0x92, 0x3b, 0x9c, 0x63, 0xed, 0xd4, 0x84,
+ 0xb7, 0xda, 0xff, 0xea, 0xb5, 0x5d, 0x17, 0xc2, 0xeb, 0x29, 0x16, 0xd8,
+ 0xbc, 0x59, 0x33, 0xd2, 0xd5, 0x6d, 0x89, 0xdf, 0xe4, 0x17, 0x8a, 0xa0,
+ 0x94, 0x9d, 0x29, 0xcb, 0xc7, 0x97, 0x63, 0x35, 0x5a, 0x50, 0xa4, 0x0d,
+ 0x93, 0x34, 0x39, 0x39, 0xf9, 0x46, 0xa1, 0xa8, 0x81, 0x18, 0xf7, 0xc9,
+ 0x05, 0xb5, 0x07, 0xcf, 0x2e, 0xa4, 0xbf, 0x69, 0x99, 0x98, 0x32, 0x2f,
+ 0xa9, 0x1d, 0x65, 0x0c, 0x48, 0x5f, 0xd8, 0x1f, 0x9f, 0xba, 0x21, 0x3a,
+ 0xf5, 0x34, 0xae, 0x30, 0xa7, 0xbc, 0xa0, 0x0a, 0x06, 0x9f, 0xfc, 0xe0,
+ 0x7c, 0xea, 0x0c, 0xc4, 0xbc, 0x59, 0x6e, 0x71, 0x90, 0x2e, 0x5d, 0x76,
+ 0x31, 0x12, 0x2d, 0x62, 0x05, 0xd1, 0x72, 0xe6, 0xb7, 0x5d, 0x11, 0x5f,
+ 0xd4, 0x67, 0x8e, 0x50, 0x02, 0x19, 0xb0, 0x26, 0x74, 0xdb, 0x7c, 0x21,
+ 0x8c, 0xd8, 0xff, 0x12, 0xb7, 0xa6, 0x49, 0xfc, 0x3f, 0x9a, 0xed, 0x8c,
+ 0x5e, 0x99, 0xfb, 0xa2, 0xd7, 0xff, 0x88, 0x54, 0x09, 0xd6, 0x26, 0x2c,
+ 0x04, 0xa6, 0x4d, 0xb3, 0xec, 0x6c, 0x76, 0xc1, 0x67, 0x2d, 0xfd, 0xa4,
+ 0xfb, 0x69, 0x61, 0x49, 0xf7, 0x38, 0x4d, 0x25, 0xd6, 0x93, 0x0b, 0xee,
+ 0x3d, 0x19, 0x92, 0xb4, 0x6b, 0x36, 0x4c, 0x63, 0x33, 0x90, 0x51, 0xc4,
+ 0x5e, 0x41, 0x0c, 0xe8, 0x4c, 0x3d, 0x50, 0xd9, 0x88, 0x27, 0xe7, 0xfb,
+ 0x40, 0xe6, 0x1d, 0x12, 0x0c, 0x6e, 0x63, 0x45, 0x46, 0xa2, 0x89, 0x60,
+ 0x14, 0x14, 0xc3, 0x75, 0xe0, 0xf1, 0x86, 0x74, 0x7d, 0x8d, 0xf4, 0x81,
+ 0xd7, 0x35, 0x00, 0x00, 0x35, 0x79, 0x11, 0x1d, 0xc0, 0x44, 0x4b, 0x09,
+ 0x72, 0x8d, 0x46, 0x63, 0xc7, 0xfa, 0x37, 0x4a, 0xe8, 0xcd, 0x9f, 0x1b,
+ 0x3e, 0xb6, 0x3b, 0x51, 0x46, 0x2a, 0x33, 0xde, 0xdd, 0x2a, 0x00, 0x00,
+ 0x3f, 0x8e, 0x95, 0xe4, 0x17, 0x26, 0xf4, 0x6a, 0x99, 0xf6, 0x19, 0x0b,
+ 0x4d, 0x44, 0x32, 0x63, 0x95, 0xff, 0x2b, 0x23, 0x79, 0xa4, 0xfe, 0xd7,
+ 0x16, 0x91, 0x5b, 0x88, 0x6d, 0x54, 0x00, 0x76, 0xae, 0xc3, 0xca, 0x2b,
+ 0x12, 0x25, 0x9a, 0x14, 0xde, 0x25, 0x96, 0x40, 0xdf, 0x54, 0x7b, 0x4c,
+ 0x79, 0x1e, 0xe0, 0x1d, 0x91, 0xdc, 0xd1, 0x90, 0x71, 0x52, 0x1a, 0x70,
+ 0xad, 0xd8, 0xc2, 0x53, 0x7e, 0xf1, 0x8c, 0xbd, 0x6b, 0x25, 0xab, 0x8e,
+ 0xd6, 0x93, 0x7a, 0xa9, 0x03, 0x96, 0xde, 0x7b, 0xad, 0x06, 0x5d, 0x26,
+ 0x5a, 0xdf, 0x9f, 0x1f, 0x2e, 0x57, 0xf9, 0x5d, 0xde, 0xe2, 0xe6, 0xf3,
+ 0x70, 0x2a, 0xac, 0xfd, 0x43, 0xa1, 0x8e, 0xc6, 0xf1, 0x00, 0x00, 0x72,
+ 0x7e, 0xb4, 0x6d, 0xbf, 0x32, 0x69, 0xeb, 0x71, 0x19, 0x03, 0x91, 0x9d,
+ 0xca, 0x98, 0xe9, 0x84, 0x34, 0xb7, 0xab, 0x33, 0x00, 0x1a, 0xf4, 0x4e,
+ 0x48, 0x0d, 0xc3, 0xe9, 0xe7, 0x00, 0x00, 0x08, 0x05, 0x73, 0xf4, 0xb0,
+ 0x38, 0xaa, 0xe1, 0xba, 0xd5, 0x11, 0x49, 0x21, 0xb2, 0x04, 0x8c, 0xba,
+ 0xd5, 0xb8, 0xcc, 0xf8, 0x29, 0x78, 0x4a, 0x80, 0xd8, 0x0e, 0xac, 0x04,
+ 0x00, 0x00, 0x00, 0x0c, 0xc1, 0xe7, 0xcd, 0xac, 0xb9, 0xea, 0x87, 0xae,
+ 0x15, 0xa2, 0x47, 0xf1, 0x4e, 0x28, 0x03, 0x38, 0x59, 0x11, 0xd5, 0x08,
+ 0xc0, 0x71, 0x23, 0xfe, 0x8e, 0x3e, 0xbc, 0x2d, 0xde, 0x00, 0x00, 0x05,
+ 0xd9, 0x48, 0xc2, 0x69, 0x3b, 0x6d, 0x03, 0x3b, 0x3b, 0xc5, 0xfe, 0x1d,
+ 0xd9, 0x7b, 0xb7, 0x20, 0x2f, 0xa8, 0x3c, 0x03, 0xc4, 0x5a, 0x74, 0xeb,
+ 0xed, 0x9b, 0x18, 0xb6, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00
+//};
+//unsigned int sig_sha256_bsn0_msg0_revkey000_dat_len = 573;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrl.inc
new file mode 100644
index 0000000000..3b55ca6bb9
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrl.inc
@@ -0,0 +1,43 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 private-key based revocation list
+ * Group : grpX
+ */
+//unsigned char privrl_dat[] = {
+ // Group ID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RLver
+ 0x00, 0x00, 0x00, 0x03,
+ // n1
+ 0x00, 0x00, 0x00, 0x03,
+ // f[1]
+ 0x00, 0x00, 0x3f, 0x47, 0x7d, 0x79, 0x63, 0x82,
+ 0x72, 0x64, 0x0e, 0x44, 0xd4, 0x1a, 0x05, 0xae, 0xf0, 0x04, 0x15, 0x15,
+ 0xc7, 0x3f, 0x31, 0xdf, 0x1e, 0x57, 0x5b, 0x59, 0xcb, 0x85, 0xd4, 0xbd,
+ // f[2]
+ 0x00, 0x00, 0x47, 0xe5, 0xea, 0x2e, 0x35, 0x1c,
+ 0x6e, 0xcb, 0x99, 0xfc, 0xa6, 0x30, 0xd2, 0xf4, 0x31, 0x38, 0xc3, 0x6e,
+ 0x28, 0xee, 0xfb, 0x02, 0x5a, 0x33, 0xc1, 0xe7, 0xf7, 0x5c, 0xb4, 0xcf,
+ // f[3]
+ 0x00, 0x00, 0x06, 0x77, 0x9f, 0xc2, 0xf7, 0x86,
+ 0x3e, 0x45, 0x56, 0xfe, 0x8b, 0xd1, 0x03, 0x5a, 0x0d, 0xe5, 0xc5, 0x24,
+ 0x11, 0x4b, 0x22, 0x29, 0x04, 0x48, 0xa5, 0x7b, 0x09, 0xc9, 0x61, 0xcc,
+//};
+// unsigned int privrl_dat_len = 108;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrl_single_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrl_single_entry.inc
new file mode 100644
index 0000000000..b7eb7444a6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/privrl_single_entry.inc
@@ -0,0 +1,35 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 private-key based revocation list
+ * Group : grpX
+ */
+//unsigned char privrl_dat[] = {
+ // Group ID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RLver
+ 0x00, 0x00, 0x00, 0x01,
+ // n1
+ 0x00, 0x00, 0x00, 0x01,
+ // f[1]
+ 0x00, 0x00, 0x3f, 0x47, 0x7d, 0x79, 0x63, 0x82,
+ 0x72, 0x64, 0x0e, 0x44, 0xd4, 0x1a, 0x05, 0xae, 0xf0, 0x04, 0x15, 0x15,
+ 0xc7, 0x3f, 0x31, 0xdf, 0x1e, 0x57, 0x5b, 0x59, 0xcb, 0x85, 0xd4, 0xbd,
+//};
+//unsigned int privrl_dat_len = 44;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sig_sha256_bsnrnd_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sig_sha256_bsnrnd_msg0.inc
new file mode 100644
index 0000000000..00a0d120fe
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sig_sha256_bsnrnd_msg0.inc
@@ -0,0 +1,78 @@
+//unsigned char sig_sha256_bsnrnd_msg0_dat[] = {
+//Basic sig
+0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53,
+0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09,
+0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72,
+0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64,
+0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb,
+0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70, 0xaa, 0x5f, 0x63, 0xcf,
+0x9d, 0x40, 0x8b, 0xba, 0xe7, 0x33, 0xd7, 0x8b, 0xd4, 0x05, 0x91, 0x30,
+0x28, 0xcb, 0x41, 0xb6, 0x8c, 0x3a, 0x90, 0x10, 0x37, 0x06, 0x14, 0x17,
+0x5f, 0xfd, 0x56, 0x71, 0x66, 0xaf, 0x13, 0xc8, 0xfc, 0xdd, 0x9d, 0xf2,
+0x0d, 0xc2, 0x8a, 0x06, 0x5c, 0x6d, 0x0b, 0xf8, 0x25, 0xcd, 0xe2, 0x9e,
+0xad, 0x52, 0xf3, 0x29, 0x4e, 0xb0, 0x5b, 0x3f, 0x22, 0xe8, 0x1f, 0xb2,
+0x06, 0xc7, 0x32, 0x18, 0x81, 0xbf, 0xd4, 0x19, 0x03, 0xcc, 0x09, 0x78,
+0x72, 0xcc, 0x40, 0x88, 0x38, 0x27, 0x25, 0x14, 0x7a, 0x9b, 0x25, 0xb9,
+0x92, 0x67, 0x98, 0x92, 0x5d, 0x5c, 0xaf, 0x1d, 0x08, 0xc6, 0x26, 0xa5,
+0x68, 0xa3, 0x89, 0xc4, 0x28, 0x9f, 0x9c, 0x7a, 0x0e, 0x02, 0xcf, 0x34,
+0x3b, 0x37, 0x78, 0x5b, 0x1d, 0x64, 0x17, 0x47, 0x4f, 0x75, 0xb4, 0xcc,
+0x8b, 0x7d, 0xa7, 0xe1, 0x04, 0x3b, 0x70, 0x67, 0xfb, 0xae, 0x06, 0xb9,
+0x38, 0xdf, 0x13, 0x2e, 0x40, 0x95, 0x2c, 0x09, 0x2a, 0xca, 0xfd, 0x18,
+0x32, 0x1c, 0x8b, 0x11, 0x1e, 0x43, 0xd2, 0x1c, 0x25, 0xd9, 0x72, 0x0b,
+0x04, 0xb8, 0x46, 0x6d, 0xc5, 0xf9, 0xf8, 0x1c, 0xf2, 0x7b, 0xe6, 0x8a,
+0xec, 0xa8, 0x2f, 0xd8, 0x05, 0x1f, 0x82, 0x4f, 0x9f, 0xd7, 0xf7, 0x15,
+0x4e, 0xe2, 0xd2, 0x1b, 0xe0, 0xf7, 0xef, 0x90, 0x48, 0x77, 0x13, 0x24,
+0x5d, 0xcb, 0x79, 0x7d, 0x0f, 0xc0, 0x1e, 0x6e, 0x87, 0x79, 0x04, 0x41,
+0xcd, 0xfb, 0x4d, 0x47, 0xa6, 0x6c, 0x39, 0x10, 0xed, 0x45, 0x5f, 0xd1,
+0x5f, 0x18, 0x5d, 0x68, 0x1d, 0x80, 0xfd, 0x68, 0xf1, 0x7c, 0xaf, 0x9a,
+0xd7, 0x34, 0x00, 0x00, 0x75, 0xdb, 0xe0, 0x83, 0x3c, 0x49, 0x9d, 0x2e,
+0xd1, 0x6c, 0x94, 0x7e, 0x7d, 0xb7, 0x35, 0x63, 0x2f, 0x5a, 0x45, 0x6c,
+0x96, 0x9d, 0x97, 0x38, 0xf4, 0xa9, 0x99, 0xe9, 0x2c, 0x55, 0x00, 0x00,
+0x4d, 0x8d, 0xac, 0x38, 0x12, 0x22, 0x42, 0x2e, 0xdc, 0x38, 0x05, 0xa3,
+0xc8, 0x13, 0x81, 0x4c, 0x6d, 0x92, 0x13, 0x2e, 0x25, 0x95, 0x96, 0x81,
+0x61, 0xf3, 0xe5, 0x45, 0xa0, 0x85, 0x00, 0xa2, 0x2d, 0x0f, 0xc3, 0x4d,
+0xbe, 0xd9, 0x0a, 0xc0, 0x24, 0x48, 0xf4, 0x5e, 0xb3, 0x58, 0xd9, 0x2a,
+0x89, 0x1b, 0x2b, 0x83, 0x75, 0xea, 0xd7, 0x2d, 0x85, 0x7a, 0xa4, 0x06,
+0x4f, 0x2b, 0x9d, 0x0d, 0x32, 0xeb, 0x9f, 0x94, 0xe1, 0x68, 0xe5, 0x66,
+0x16, 0xc3, 0xf5, 0x75, 0xed, 0x66, 0xef, 0x97, 0xb5, 0x3f, 0x70, 0x20,
+0x23, 0x01, 0x0d, 0x0f, 0x56, 0xfd, 0x18, 0xe2, 0xe1, 0x18, 0x2d, 0xdc,
+0x83, 0xb9, 0x16, 0xd4, 0x4e, 0xc6, 0x3b, 0x29, 0x76, 0x00, 0x00, 0x85,
+0x6c, 0x54, 0x1b, 0x03, 0x74, 0xa7, 0x9f, 0xcf, 0x8c, 0x47, 0x02, 0xc9,
+0xcd, 0x59, 0xb3, 0xc9, 0x51, 0xf2, 0xf7, 0x1f, 0x48, 0x8d, 0x70, 0x7b,
+0x4d, 0xd3, 0xaf, 0xc4, 0x07, 0x00, 0x00, 0x87, 0xcc, 0x24, 0x58, 0x59,
+0x80, 0x79, 0x14, 0xff, 0xce, 0x74, 0xf2, 0xe6, 0x24, 0x5e, 0x5c, 0x41,
+0x9b, 0x5f, 0x9d, 0x64, 0x1b, 0x11, 0x60, 0x64, 0x77, 0x60, 0xd0, 0x52,
+0xac, 0x00, 0x00, 0x15, 0x44, 0x28, 0x8f, 0x55, 0xb0, 0x45, 0x5b, 0x82,
+0x40, 0x57, 0x8b, 0x45, 0xcf, 0x71, 0x79, 0x72, 0xc3, 0x47, 0x0e, 0x65,
+0x6e, 0xc8, 0x1a, 0x29, 0x87, 0xa7, 0xe3, 0x1f, 0x57, 0x00, 0x00, 0x64,
+0x32, 0xfc, 0xe8, 0x2a, 0x2e, 0x94, 0xbd, 0x62, 0xa0, 0xcc, 0xb2, 0x67,
+0x65, 0x57, 0xa6, 0x28, 0x8a, 0xd6, 0x46, 0x9d, 0xac, 0x08, 0xca, 0x3a,
+0x79, 0xe4, 0x04, 0x95, 0xb8,
+//RLver
+0x00, 0x00, 0x00, 0x02,
+//n2
+0x00, 0x00, 0x00, 0x01,
+//NrProof1 = 160
+ //T
+0x5e, 0xcc, 0x94, 0xe3, 0x67, 0x5d, 0xb5, 0x71, 0xe0, 0x28, 0x34,
+0x2e, 0xd1, 0x10, 0xff, 0x25, 0xc0, 0x3a, 0x1a, 0x2c, 0xde, 0x13, 0xe9,
+0x7e, 0x5a, 0xde, 0xc3, 0xa6, 0x04, 0x02, 0xbd, 0xf6, 0xaa, 0x4a, 0xf4,
+0xf9, 0x82, 0x31, 0xda, 0x8b, 0x44, 0xfb, 0x35, 0xcf, 0xb5, 0x4e, 0x5a,
+0x82, 0x5c, 0x11, 0xa6, 0xab, 0xdf, 0x13, 0xa9, 0x00, 0x2c, 0x95, 0xf9,
+0x9a, 0x2c, 0x9b, 0x12, 0x15,
+ //c
+0x1f, 0x7f, 0x9a, 0xc0, 0x84, 0xaa, 0x74,
+0x3e, 0x19, 0x8b, 0xb6, 0x10, 0xb6, 0xc3, 0x99, 0xaa, 0x02, 0x18, 0x62,
+0xc9, 0xa9, 0x0c, 0x26, 0x66, 0x9a, 0x1c, 0x9b, 0xc8, 0x6f, 0xaf, 0xac,
+0x06,
+ //smu
+0x9a, 0x84, 0xf4, 0xf0, 0x29, 0x48, 0x08, 0x6e, 0x43, 0xa8, 0x98,
+0xc6, 0x9f, 0x36, 0x91, 0x06, 0x25, 0x32, 0xa3, 0x57, 0x52, 0x68, 0x81,
+0x18, 0xac, 0xdc, 0xb8, 0xb4, 0x75, 0xa8, 0x85, 0xb0,
+ //snu
+0x5b, 0x3d, 0xd6,
+0xaa, 0x6e, 0xb7, 0x9a, 0x96, 0x01, 0x19, 0xb3, 0x36, 0xaa, 0x88, 0x91,
+0xff, 0x69, 0x5d, 0xf0, 0xa3, 0x9c, 0xfa, 0xd0, 0xcb, 0x60, 0xc8, 0xe7,
+0xeb, 0xab, 0xd4, 0x62, 0xff,
+//};
+//unsigned int sig_sha256_bsnrnd_msg0_dat_len = 733;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_first_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_first_entry.inc
new file mode 100644
index 0000000000..bef6878401
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_first_entry.inc
@@ -0,0 +1,68 @@
+/*############################################################################
+# Copyright 2016 Intel Corporation
+#
+# Licensed 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.
+############################################################################*/
+/*!
+* \file
+* \brief Test data.
+*
+* Type : Intel(R) EPID 1.1 signature based revocation list
+* Group : grpX
+* Revoked signature : Member0/sig_sha256_bsn0_msg0 last entry
+*/
+//unsigned char epid_sigrevlist_dat[] = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RLver
+ 0x00, 0x00, 0x00, 0x03,
+ // n2
+ 0x00, 0x00, 0x00, 0x03,
+ // B, K - revoked signature to test
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c,
+ 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a,
+ 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b,
+ 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb,
+ 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93,
+ 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x6e, 0xdf, 0x9f, 0xe3, 0xe0, 0x8d, 0xe4, 0x0b,
+ 0xbb, 0x86, 0x12, 0xd7, 0xc5, 0xd8, 0x14, 0x5e, 0x67, 0xbd, 0x1d, 0xa5,
+ 0x0b, 0xdb, 0xf5, 0x87, 0x36, 0x6c, 0xda, 0x81, 0x2a, 0x8c, 0x2e, 0x78,
+ 0xef, 0x6c, 0x42, 0xb2, 0xcd, 0x40, 0xda, 0xd3, 0x22, 0xf4, 0xd9, 0x7e,
+ 0x34, 0x78, 0x49, 0x41, 0x0d, 0x1e, 0x64, 0xc1, 0x43, 0xa1, 0xb0, 0xe9,
+ 0x6c, 0x45, 0xe2, 0x2d, 0xc3, 0xeb, 0xc8, 0x14,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x95, 0x8b, 0x05, 0x1e, 0x8b, 0xa5, 0x21, 0xdd,
+ 0x63, 0xfd, 0x1a, 0x36, 0xb7, 0x42, 0x04, 0x92, 0x10, 0xe6, 0x29, 0x22,
+ 0xc8, 0x97, 0xb1, 0x28, 0x01, 0x45, 0x95, 0xf1, 0x2a, 0xa0, 0x86, 0x41,
+ 0xc4, 0x4c, 0xb6, 0x3b, 0x45, 0x23, 0x6e, 0x8d, 0x6e, 0x07, 0xc7, 0x5b,
+ 0xe5, 0x46, 0xca, 0xd0, 0x68, 0x99, 0xb6, 0x30, 0x7b, 0x70, 0xb0, 0x92,
+ 0x48, 0xc2, 0x89, 0xb6, 0x27, 0x3b, 0x95, 0x89,
+// };
+// unsigned int epid_sigrevlist_dat_len = 400;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_last_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_last_entry.inc
new file mode 100644
index 0000000000..ebd42ab37b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_last_entry.inc
@@ -0,0 +1,68 @@
+/*############################################################################
+# Copyright 2016 Intel Corporation
+#
+# Licensed 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.
+############################################################################*/
+/*!
+* \file
+* \brief Test data.
+*
+* Type : Intel(R) EPID 1.1 signature based revocation list
+* Group : grpX
+* Revoked signature : Member0/sig_sha256_bsn0_msg0 last entry
+*/
+//unsigned char epid_sigrevlist_dat[] = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RLver
+ 0x00, 0x00, 0x00, 0x03,
+ // n2
+ 0x00, 0x00, 0x00, 0x03,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x6e, 0xdf, 0x9f, 0xe3, 0xe0, 0x8d, 0xe4, 0x0b,
+ 0xbb, 0x86, 0x12, 0xd7, 0xc5, 0xd8, 0x14, 0x5e, 0x67, 0xbd, 0x1d, 0xa5,
+ 0x0b, 0xdb, 0xf5, 0x87, 0x36, 0x6c, 0xda, 0x81, 0x2a, 0x8c, 0x2e, 0x78,
+ 0xef, 0x6c, 0x42, 0xb2, 0xcd, 0x40, 0xda, 0xd3, 0x22, 0xf4, 0xd9, 0x7e,
+ 0x34, 0x78, 0x49, 0x41, 0x0d, 0x1e, 0x64, 0xc1, 0x43, 0xa1, 0xb0, 0xe9,
+ 0x6c, 0x45, 0xe2, 0x2d, 0xc3, 0xeb, 0xc8, 0x14,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x95, 0x8b, 0x05, 0x1e, 0x8b, 0xa5, 0x21, 0xdd,
+ 0x63, 0xfd, 0x1a, 0x36, 0xb7, 0x42, 0x04, 0x92, 0x10, 0xe6, 0x29, 0x22,
+ 0xc8, 0x97, 0xb1, 0x28, 0x01, 0x45, 0x95, 0xf1, 0x2a, 0xa0, 0x86, 0x41,
+ 0xc4, 0x4c, 0xb6, 0x3b, 0x45, 0x23, 0x6e, 0x8d, 0x6e, 0x07, 0xc7, 0x5b,
+ 0xe5, 0x46, 0xca, 0xd0, 0x68, 0x99, 0xb6, 0x30, 0x7b, 0x70, 0xb0, 0x92,
+ 0x48, 0xc2, 0x89, 0xb6, 0x27, 0x3b, 0x95, 0x89,
+ // B, K - revoked signature to test
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c,
+ 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a,
+ 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b,
+ 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb,
+ 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93,
+ 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2,
+// };
+// unsigned int epid_sigrevlist_dat_len = 400;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_middle_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_middle_entry.inc
new file mode 100644
index 0000000000..c8c01c7cc1
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_middle_entry.inc
@@ -0,0 +1,68 @@
+/*############################################################################
+# Copyright 2016 Intel Corporation
+#
+# Licensed 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.
+############################################################################*/
+/*!
+* \file
+* \brief Test data.
+*
+* Type : Intel(R) EPID 1.1 signature based revocation list
+* Group : grpX
+* Revoked signature : Member0/sig_sha256_bsn0_msg0 last entry
+*/
+//unsigned char epid_sigrevlist_dat[] = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RLver
+ 0x00, 0x00, 0x00, 0x03,
+ // n2
+ 0x00, 0x00, 0x00, 0x03,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x6e, 0xdf, 0x9f, 0xe3, 0xe0, 0x8d, 0xe4, 0x0b,
+ 0xbb, 0x86, 0x12, 0xd7, 0xc5, 0xd8, 0x14, 0x5e, 0x67, 0xbd, 0x1d, 0xa5,
+ 0x0b, 0xdb, 0xf5, 0x87, 0x36, 0x6c, 0xda, 0x81, 0x2a, 0x8c, 0x2e, 0x78,
+ 0xef, 0x6c, 0x42, 0xb2, 0xcd, 0x40, 0xda, 0xd3, 0x22, 0xf4, 0xd9, 0x7e,
+ 0x34, 0x78, 0x49, 0x41, 0x0d, 0x1e, 0x64, 0xc1, 0x43, 0xa1, 0xb0, 0xe9,
+ 0x6c, 0x45, 0xe2, 0x2d, 0xc3, 0xeb, 0xc8, 0x14,
+ // B, K - revoked signature to test
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c,
+ 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a,
+ 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b,
+ 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb,
+ 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93,
+ 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x95, 0x8b, 0x05, 0x1e, 0x8b, 0xa5, 0x21, 0xdd,
+ 0x63, 0xfd, 0x1a, 0x36, 0xb7, 0x42, 0x04, 0x92, 0x10, 0xe6, 0x29, 0x22,
+ 0xc8, 0x97, 0xb1, 0x28, 0x01, 0x45, 0x95, 0xf1, 0x2a, 0xa0, 0x86, 0x41,
+ 0xc4, 0x4c, 0xb6, 0x3b, 0x45, 0x23, 0x6e, 0x8d, 0x6e, 0x07, 0xc7, 0x5b,
+ 0xe5, 0x46, 0xca, 0xd0, 0x68, 0x99, 0xb6, 0x30, 0x7b, 0x70, 0xb0, 0x92,
+ 0x48, 0xc2, 0x89, 0xb6, 0x27, 0x3b, 0x95, 0x89,
+// };
+// unsigned int epid_sigrevlist_dat_len = 400;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_single_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_single_entry.inc
new file mode 100644
index 0000000000..aaa0a8bbdf
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grp_x/sigrl_member0_sig_bsn0_msg0_revoked_single_entry.inc
@@ -0,0 +1,44 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 signature based revocation list
+ * Group : grpX
+ * Revoked signature : Member0/sig_sha256_bsn0_msg0 single entry
+ */
+//unsigned char sigrl_dat[] = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RLver
+ 0x00, 0x00, 0x00, 0x01,
+ // n2
+ 0x00, 0x00, 0x00, 0x01,
+ // B, K - revoked signature to test
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c,
+ 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a,
+ 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b,
+ 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb,
+ 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93,
+ 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2,
+//};
+//unsigned int sigrl_dat_len = 140;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_first_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_first_entry.inc
new file mode 100644
index 0000000000..c005e32234
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_first_entry.inc
@@ -0,0 +1,38 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 group revocation list grpX revoked first entry
+ * 0 32 64 96 128 Bit
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | RLVer = 3 | n3 = 3 | gid[1] = 0x7b | gid[2] = 0x12 |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *
+ * 128 160 Bit
+ * +-+-+-+-+-+-+-+-+
+ * | gid[2] = 0x5f |
+ * +-+-+-+-+-+-+-+-+
+ *
+ * 0x7b is revoked gid
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x12,
+ 0x00, 0x00, 0x00, 0x5f
+//};
+//unsigned int grprl_dat_len = 20;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_last_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_last_entry.inc
new file mode 100644
index 0000000000..c239ce2e91
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_last_entry.inc
@@ -0,0 +1,38 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 group revocation list grpX revoked last entry
+ * 0 32 64 96 128 Bit
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | RLVer = 3 | n3 = 3 | gid[1] = 0x4e | gid[2] = 0x12 |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *
+ * 128 160 Bit
+ * +-+-+-+-+-+-+-+-+
+ * | gid[2] = 0x7b |
+ * +-+-+-+-+-+-+-+-+
+ *
+ * 0x7b is revoked gid
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x12,
+ 0x00, 0x00, 0x00, 0x7b
+//};
+//unsigned int grprl_dat_len = 20;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_middle_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_middle_entry.inc
new file mode 100644
index 0000000000..bbddb315c3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_middle_entry.inc
@@ -0,0 +1,38 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 group revocation list grpX revoked middle entry
+ * 0 32 64 96 128 Bit
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | RLVer = 3 | n3 = 3 | gid[1] = 0x4e | gid[2] = 0x7b |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *
+ * 128 160 Bit
+ * +-+-+-+-+-+-+-+-+
+ * | gid[2] = 0x6c |
+ * +-+-+-+-+-+-+-+-+
+ *
+ * 0x7b is revoked gid
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x7b,
+ 0x00, 0x00, 0x00, 0x6c
+//};
+//unsigned int grprl_dat_len = 20;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_single_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_single_entry.inc
new file mode 100644
index 0000000000..e25cce391a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/testdata/grprl_revoked_grp_x_single_entry.inc
@@ -0,0 +1,32 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 1.1 group revocation list single entry grpX revoked
+ * 0 32 64 96 Bit
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ * | RLVer = 3 | n3 = 1 | gid[0] = 0x7b |
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ *
+ * 0x7b is revoked gid
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x7b
+//};
+//unsigned int grprl_dat_len = 12;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/verifier_wrapper-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/verifier_wrapper-testhelper.cc
new file mode 100644
index 0000000000..cea2e06d72
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/verifier_wrapper-testhelper.cc
@@ -0,0 +1,54 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief EcGroup C++ wrapper implementation.
+ */
+#include
+#include
+#include
+
+#include "epid/common-testhelper/1.1/verifier_wrapper-testhelper.h"
+
+Epid11VerifierCtxObj::Epid11VerifierCtxObj(Epid11GroupPubKey const& pub_key)
+ : ctx_(nullptr) {
+ auto sts = Epid11VerifierCreate(&pub_key, nullptr, &ctx_);
+ if (kEpidNoErr != sts) {
+ printf("%s(%d): %s\n", __FILE__, __LINE__, "test defect:");
+ throw std::logic_error(std::string("Failed to call: ") +
+ "Epid11VerifierCreate()");
+ }
+}
+
+Epid11VerifierCtxObj::Epid11VerifierCtxObj(Epid11GroupPubKey const& pub_key,
+ Epid11VerifierPrecomp const& precomp)
+ : ctx_(nullptr) {
+ auto sts = Epid11VerifierCreate(&pub_key, &precomp, &ctx_);
+ if (kEpidNoErr != sts) {
+ printf("%s(%d): %s\n", __FILE__, __LINE__, "test defect:");
+ throw std::logic_error(std::string("Failed to call: ") +
+ "Epid11VerifierCreate()");
+ }
+}
+
+Epid11VerifierCtxObj::~Epid11VerifierCtxObj() { Epid11VerifierDelete(&ctx_); }
+
+Epid11VerifierCtx* Epid11VerifierCtxObj::ctx() const { return ctx_; }
+
+Epid11VerifierCtxObj::operator Epid11VerifierCtx*() const { return ctx_; }
+
+Epid11VerifierCtxObj::operator const Epid11VerifierCtx*() const { return ctx_; }
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/verifier_wrapper-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/verifier_wrapper-testhelper.h
new file mode 100644
index 0000000000..f3c351ac05
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/1.1/verifier_wrapper-testhelper.h
@@ -0,0 +1,56 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Verifier C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_1_1_VERIFIER_WRAPPER_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_1_1_VERIFIER_WRAPPER_TESTHELPER_H_
+
+extern "C" {
+#include "epid/verifier/1.1/api.h"
+}
+
+/// C++ Wrapper to manage memory for VerifierCtx via RAII
+class Epid11VerifierCtxObj {
+ public:
+ /// Create an Epid11VerifierCtx
+ explicit Epid11VerifierCtxObj(Epid11GroupPubKey const& pub_key);
+ /// Create an Epid11VerifierCtx given precomputation blob
+ Epid11VerifierCtxObj(Epid11GroupPubKey const& pub_key,
+ Epid11VerifierPrecomp const& precomp);
+
+ // This class instances are not meant to be copied.
+ // Explicitly delete copy constructor and assignment operator.
+ Epid11VerifierCtxObj(const Epid11VerifierCtxObj&) = delete;
+ Epid11VerifierCtxObj& operator=(const Epid11VerifierCtxObj&) = delete;
+
+ /// Destroy the Epid11VerifierCtx
+ ~Epid11VerifierCtxObj();
+ /// get a pointer to the stored Epid11VerifierCtx
+ Epid11VerifierCtx* ctx() const;
+ /// cast operator to get the pointer to the stored Epid11VerifierCtx
+ operator Epid11VerifierCtx*() const;
+ /// const cast operator to get the pointer to the stored Epid11VerifierCtx
+ operator const Epid11VerifierCtx*() const;
+
+ private:
+ /// The stored VerifierCtx
+ Epid11VerifierCtx* ctx_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_1_1_VERIFIER_WRAPPER_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/Makefile b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/Makefile
new file mode 100644
index 0000000000..74e9749008
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/Makefile
@@ -0,0 +1,63 @@
+#!/usr/bin/make -f
+
+#define variables
+GTEST_INCLUDE_DIR = ../../ext
+TEST_INSTALL_DIR = $(epidinstalldir)/test/
+
+COMMON_TESTHELPER_INCLUDE_DIR = ../..
+COMMON_TESTHELPER_11_INCLUDE_DIR = ../../1.1
+COMMON_TESTHELPER_SRC = $(wildcard ./*.cc)
+COMMON_TESTHELPER_SRC += $(wildcard ./1.1/*.cc)
+COMMON_TESTHELPER_UTEST_SRC = $(wildcard ./unittests/*.cc)
+COMMON_TESTHELPER_OBJ = $(sort $(COMMON_TESTHELPER_SRC:.cc=.o))
+COMMON_TESTHELPER_UTEST_OBJ = $(sort $(COMMON_TESTHELPER_UTEST_SRC:.cc=.o))
+COMMON_TESTHELPER_LIB = ./libcommon-testhelper.a
+COMMON_TESTHELPER_UTEST_EXE = ./unittests/common-testhelper-utest
+
+LIB_COMMON_TESTHELPER_DIR = .
+LIB_COMMON_DIR = ../common
+LIB_IPPCP_DIR = ../../ext/ipp/sources/ippcp/src
+LIB_IPPCPEPID_DIR = ../../ext/ipp/sources/ippcpepid/src
+
+#set flags for linker
+LDFLAGS += -L$(GTEST_INCLUDE_DIR)/gtest -L$(LIB_COMMON_TESTHELPER_DIR) \
+ -L$(LIB_COMMON_DIR) -L$(LIB_IPPCPEPID_DIR) -L$(LIB_IPPCP_DIR) \
+ -lgtest -lcommon-testhelper -lcommon -lippcpepid -lippcp
+
+#target part
+$(COMMON_TESTHELPER_LIB): $(COMMON_TESTHELPER_OBJ)
+ $(AR) rc $(COMMON_TESTHELPER_LIB) $(COMMON_TESTHELPER_OBJ)
+ ranlib $(COMMON_TESTHELPER_LIB)
+
+$(COMMON_TESTHELPER_OBJ): %.o: %.cc
+ $(CXX) -o $@ $(CXXFLAGS) -I$(COMMON_TESTHELPER_INCLUDE_DIR) -c $^
+
+$(COMMON_TESTHELPER_UTEST_EXE): $(COMMON_TESTHELPER_UTEST_OBJ)
+ $(CXX) -o $@ $^ $(CXXFLAGS) $(LDFLAGS)
+
+$(COMMON_TESTHELPER_UTEST_OBJ): %.o: %.cc
+ $(CXX) -o $@ $(CXXFLAGS) -I$(COMMON_TESTHELPER_INCLUDE_DIR) \
+ -I$(COMMON_TESTHELPER_11_INCLUDE_DIR) -I$(GTEST_INCLUDE_DIR) -c $^
+
+build: all
+
+all: $(COMMON_TESTHELPER_LIB)
+
+install:
+#install tests if they exist
+ifneq (,$(wildcard $(COMMON_TESTHELPER_UTEST_EXE)))
+ mkdir -p '$(TEST_INSTALL_DIR)'
+ cp $(COMMON_TESTHELPER_UTEST_EXE) '$(TEST_INSTALL_DIR)'
+endif
+
+check: $(COMMON_TESTHELPER_UTEST_EXE) run
+
+run:
+ $(COMMON_TESTHELPER_UTEST_EXE) $(GTEST_FLAGS)
+
+clean:
+ rm -f $(COMMON_TESTHELPER_OBJ) \
+ $(COMMON_TESTHELPER_LIB) \
+ $(COMMON_TESTHELPER_UTEST_OBJ) \
+ $(COMMON_TESTHELPER_UTEST_EXE) \
+ *.xml
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/bignum_wrapper-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/bignum_wrapper-testhelper.cc
new file mode 100644
index 0000000000..75585e2a38
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/bignum_wrapper-testhelper.cc
@@ -0,0 +1,123 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Bignum C++ wrapper implementation.
+ */
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/bignum_wrapper-testhelper.h"
+#include "epid/common/math/bignum.h"
+
+/// bignum deleter type
+struct BigNumDeleter {
+ /// bignum deleter
+ void operator()(BigNum* bn) {
+ if (bn) {
+ DeleteBigNum(&bn);
+ }
+ }
+};
+
+/// bignum deleter singlton
+BigNumDeleter bignum_deleter;
+
+/// Internal state of the bignum wrapper
+struct BigNumObj::State {
+ /// size of the stored BigNum
+ size_t size;
+
+ /// The stored BigNum
+ std::shared_ptr bn_;
+
+ /// Default initializing constructor
+ State() : size(0), bn_() {}
+
+ /// write a new value
+ void write(unsigned char const* buf, size_t buflen, size_t len) {
+ bool orig_has_data = (buf != nullptr) && (buflen > 0);
+ std::shared_ptr bn;
+ BigNum* bn_ptr = nullptr;
+ THROW_ON_EPIDERR(NewBigNum(len, &bn_ptr));
+ bn.reset(bn_ptr, bignum_deleter);
+ size = len;
+ if (orig_has_data) {
+ THROW_ON_EPIDERR(ReadBigNum(buf, buflen, bn.get()));
+ }
+ bn_ = bn;
+ }
+};
+
+BigNumObj::BigNumObj() : state_(new State) {
+ state_->write(nullptr, 0, sizeof(BigNumStr));
+}
+
+BigNumObj::BigNumObj(BigNumObj const& other) : state_(new State) {
+ bool orig_has_data = other.state_->bn_.get() != nullptr;
+ std::vector buf;
+ if (orig_has_data) {
+ buf.resize(other.state_->size);
+ THROW_ON_EPIDERR(WriteBigNum(other.state_->bn_.get(), buf.size(), &buf[0]));
+ }
+ state_->write(&buf[0], other.state_->size, buf.size());
+}
+
+BigNumObj& BigNumObj::operator=(BigNumObj const& other) {
+ bool orig_has_data = other.state_->bn_.get() != nullptr;
+ std::vector buf;
+ if (orig_has_data) {
+ buf.resize(other.state_->size);
+ THROW_ON_EPIDERR(WriteBigNum(other.state_->bn_.get(), buf.size(), &buf[0]));
+ }
+ state_->write(&buf[0], other.state_->size, buf.size());
+ return *this;
+}
+
+BigNumObj::BigNumObj(size_t data_size_bytes) : state_(new State) {
+ state_->write(nullptr, 0, data_size_bytes);
+}
+
+BigNumObj::BigNumObj(size_t data_size_bytes,
+ std::vector const& bytes)
+ : state_(new State) {
+ state_->write(&bytes[0], bytes.size(), data_size_bytes);
+}
+
+BigNumObj::BigNumObj(size_t data_size_bytes, BigNumStr const& bytes)
+ : state_(new State) {
+ state_->write((unsigned char const*)&bytes, sizeof(BigNumStr),
+ data_size_bytes);
+}
+
+BigNumObj::BigNumObj(std::vector const& bytes)
+ : state_(new State) {
+ state_->write(&bytes[0], bytes.size(), bytes.size());
+}
+
+BigNumObj::BigNumObj(BigNumStr const& bytes) : state_(new State) {
+ state_->write((unsigned char const*)&bytes, sizeof(BigNumStr),
+ sizeof(BigNumStr));
+}
+
+BigNumObj::~BigNumObj() {}
+
+BigNumObj::operator BigNum*() { return state_->bn_.get(); }
+
+BigNumObj::operator const BigNum*() const { return state_->bn_.get(); }
+
+BigNum* BigNumObj::get() { return state_->bn_.get(); }
+
+BigNum const* BigNumObj::getc() const { return state_->bn_.get(); }
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/bignum_wrapper-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/bignum_wrapper-testhelper.h
new file mode 100644
index 0000000000..6008e65928
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/bignum_wrapper-testhelper.h
@@ -0,0 +1,69 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Bignum C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_BIGNUM_WRAPPER_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_BIGNUM_WRAPPER_TESTHELPER_H_
+
+#include
+#include
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+}
+
+/*!
+Wrapper class to provide Resource Allocation is Initialization handling
+for BigNum
+*/
+class BigNumObj {
+ public:
+ /// Create a BigNum of default size ( sizeof(BigNumStr) )
+ BigNumObj();
+ /// copy constructor
+ BigNumObj(BigNumObj const& other);
+ /// assignment operator
+ BigNumObj& operator=(BigNumObj const& other);
+ /// Create a BigNum of specific size
+ explicit BigNumObj(size_t data_size_bytes);
+ /// Create a BigNum of specific size and initialize it to bytes
+ BigNumObj(size_t data_size_bytes, std::vector const& bytes);
+ /// Create a BigNum of specific size and initialize it to bytes
+ BigNumObj(size_t data_size_bytes, BigNumStr const& bytes);
+ /// Create a BigNum the same size as bytes and initialize it to bytes
+ explicit BigNumObj(std::vector const& bytes);
+ /// Create a BigNum the same size as bytes and initialize it to bytes
+ explicit BigNumObj(BigNumStr const& bytes);
+ /// Destroy the Bignum
+ ~BigNumObj();
+ /// cast operator to get the pointer to the stored BigNum
+ operator BigNum*();
+ /// const cast operator to get the pointer to the stored BigNum
+ operator const BigNum*() const;
+ /// Get the underlying pointer
+ BigNum* get();
+ /// Get the underlying pointer
+ BigNum const* getc() const;
+
+ private:
+ struct State;
+ std::unique_ptr state_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_BIGNUM_WRAPPER_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/common-testhelper.parts b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/common-testhelper.parts
new file mode 100644
index 0000000000..99365c9dcd
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/common-testhelper.parts
@@ -0,0 +1,91 @@
+############################################################################
+# Copyright 2016 Intel Corporation
+#
+# Licensed 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.
+############################################################################
+Import('*')
+env.PartName('common-testhelper')
+
+src_files = Pattern(src_dir='.',
+ includes=['*-testhelper.cc'],
+ excludes=[],
+ recursive=False).files()
+inc_files = Pattern(src_dir='.',
+ includes=['*-testhelper.h'],
+ excludes=[],
+ recursive=False).files()
+epid11_src_files = Pattern(src_dir='1.1',
+ includes=['*-testhelper.cc'],
+ excludes=[],
+ recursive=False).files()
+epid11_inc_files = Pattern(src_dir='1.1',
+ includes=['*-testhelper.h'],
+ excludes=[],
+ recursive=False).files()
+test_data_files = Pattern(src_dir='testdata',
+ includes=['*'],
+ excludes=[],
+ recursive=True)
+epid11_test_data_files = Pattern(src_dir='1.1/testdata',
+ includes=['*'],
+ excludes=[],
+ recursive=True)
+
+# unit tests
+utest_files = Pattern(src_dir='.',
+ includes=['*-test.cc'],
+ excludes=[],
+ recursive=True).files()
+
+if 'install_package' in env['MODE']:
+ env.InstallTopLevel(src_files, sub_dir='epid/${PART_SHORT_NAME}')
+ env.InstallTopLevel(inc_files, sub_dir='epid/${PART_SHORT_NAME}')
+ env.InstallTopLevel(utest_files,
+ sub_dir='epid/${PART_SHORT_NAME}/unittests')
+ env.InstallTopLevel(test_data_files,
+ sub_dir='epid/${PART_SHORT_NAME}/testdata')
+
+ env.InstallTopLevel(epid11_src_files, sub_dir='epid/${PART_SHORT_NAME}/1.1')
+ env.InstallTopLevel(epid11_inc_files, sub_dir='epid/${PART_SHORT_NAME}/1.1')
+ env.InstallTopLevel(epid11_test_data_files,
+ sub_dir='epid/${PART_SHORT_NAME}/1.1/testdata')
+
+ parts_file = ['common-testhelper.parts']
+ env.InstallTopLevel(parts_file, sub_dir='epid/${PART_SHORT_NAME}')
+ makefile = ['Makefile']
+ env.InstallTopLevel(makefile, sub_dir='epid/${PART_SHORT_NAME}')
+else:
+ env.DependsOn([
+ Component('common'),
+ ])
+
+ env.Append(CPPPATH='#')
+
+ testenv = env.Clone()
+
+ outputs = env.Library('${PART_NAME}', src_files + epid11_src_files)
+ env.Sdk(outputs)
+
+ testenv['UNIT_TEST_TARGET_NAME'] = "${PART_NAME}-${UNIT_TEST_TARGET}"
+ testenv.UnitTest("utest",
+ utest_files,
+ command_args=[
+ '--gtest_color=yes',
+ '--gtest_print_time=1',
+ '--gtest_output=xml',
+ '--gtest_filter=**',
+ ],
+ make_pdb=(env.isConfigBasedOn('debug')),
+ depends=[Component('gtest'),
+ Component('common-testhelper')],
+ INSTALL_BIN='${INSTALL_TEST_BIN}')
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecgroup_wrapper-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecgroup_wrapper-testhelper.cc
new file mode 100644
index 0000000000..3ce5959515
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecgroup_wrapper-testhelper.cc
@@ -0,0 +1,126 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief EcGroup C++ wrapper implementation.
+ */
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common/math/bignum.h"
+#include "epid/common-testhelper/ecgroup_wrapper-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+#include "epid/common-testhelper/bignum_wrapper-testhelper.h"
+
+/// ecgroup deleter type
+struct EcGroupDeleter {
+ /// ecgroup deleter
+ void operator()(EcGroup* ptr) {
+ if (ptr) {
+ DeleteEcGroup(&ptr);
+ }
+ }
+};
+
+/// ecgroup deleter singlton
+EcGroupDeleter ecgroup_deleter;
+
+/// Internal state of the ecgroup wrapper
+struct EcGroupObj::State {
+ /// The stored EcGroup
+ std::shared_ptr group_;
+ FiniteFieldObj fintefield_;
+
+ /// constructor
+ State() : group_(nullptr, ecgroup_deleter) {}
+
+ // State instances are not meant to be copied.
+ // Explicitly delete copy constructor and assignment operator.
+ State(const State&) = delete;
+ State& operator=(const State&) = delete;
+
+ /// destructor
+ ~State() {}
+};
+
+EcGroupObj::EcGroupObj() : state_(new State()) {
+ const BigNumStr q_str = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2, 0x5E,
+ 0xEE, 0x71, 0xA4, 0x9F, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x98, 0x0A, 0x82,
+ 0xD3, 0x29, 0x2D, 0xDB, 0xAE, 0xD3, 0x30, 0x13}}};
+ const FqElemStr b_str = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}}};
+ const BigNumStr p_str = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2, 0x5E,
+ 0xEE, 0x71, 0xA4, 0x9E, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x99, 0x92, 0x1A,
+ 0xF6, 0x2D, 0x53, 0x6C, 0xD1, 0x0B, 0x50, 0x0D}}};
+ const BigNumStr h1 = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}};
+ const G1ElemStr g1_str = {
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}},
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}}}};
+ FiniteFieldObj fq(q_str);
+ EcGroup* temp = nullptr;
+ NewEcGroup(fq, FfElementObj(&fq), FfElementObj(&fq, b_str),
+ FfElementObj(&fq, g1_str.x), FfElementObj(&fq, g1_str.y),
+ BigNumObj(p_str), BigNumObj(h1), &temp);
+ state_->group_.reset(temp, ecgroup_deleter);
+ state_->fintefield_ = fq;
+}
+
+EcGroupObj::EcGroupObj(EcGroupObj const& other) : state_(new State) {
+ state_->group_ = other.state_->group_;
+ state_->fintefield_ = other.state_->fintefield_;
+}
+
+EcGroupObj& EcGroupObj::operator=(EcGroupObj const& other) {
+ state_->group_ = other.state_->group_;
+ state_->fintefield_ = other.state_->fintefield_;
+ return *this;
+}
+
+EcGroupObj::EcGroupObj(FiniteFieldObj* ff, FfElement const* a,
+ FfElement const* b, FfElement const* x,
+ FfElement const* y, BigNum const* order,
+ BigNum const* cofactor)
+ : state_(new State) {
+ EcGroup* temp = nullptr;
+ NewEcGroup(*ff, a, b, x, y, order, cofactor, &temp);
+ state_->group_.reset(temp, ecgroup_deleter);
+ state_->fintefield_ = *ff;
+}
+
+EcGroupObj::~EcGroupObj() {}
+
+EcGroupObj::operator EcGroup*() { return state_->group_.get(); }
+
+EcGroupObj::operator const EcGroup*() const { return state_->group_.get(); }
+
+EcGroup* EcGroupObj::get() { return state_->group_.get(); }
+
+EcGroup const* EcGroupObj::getc() const { return state_->group_.get(); }
+
+size_t EcGroupObj::GetElementMaxSize() const {
+ return 2 * state_->fintefield_.GetElementMaxSize();
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecgroup_wrapper-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecgroup_wrapper-testhelper.h
new file mode 100644
index 0000000000..4969134eb8
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecgroup_wrapper-testhelper.h
@@ -0,0 +1,68 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief EcGroup C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_ECGROUP_WRAPPER_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_ECGROUP_WRAPPER_TESTHELPER_H_
+
+#include
+#include
+
+extern "C" {
+#include "epid/common/math/ecgroup.h"
+}
+
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+
+/*!
+Wrapper class to provide Resource Allocation is Initialization handling
+for EcGroup
+*/
+class EcGroupObj {
+ public:
+ /// constructor
+ EcGroupObj();
+ /// copy constructor
+ EcGroupObj(EcGroupObj const& other);
+ /// assignment operator
+ EcGroupObj& operator=(EcGroupObj const& other);
+ /// Create a EcGroup
+ explicit EcGroupObj(FiniteFieldObj* ff, FfElement const* a,
+ FfElement const* b, FfElement const* x,
+ FfElement const* y, BigNum const* order,
+ BigNum const* cofactor);
+ /// Destroy the EcGroup
+ ~EcGroupObj();
+ /// cast operator to get the pointer to the stored EcGroup
+ operator EcGroup*();
+ /// const cast operator to get the pointer to the stored EcGroup
+ operator const EcGroup*() const;
+ /// Get the underlying pointer
+ EcGroup* get();
+ /// Get the underlying pointer
+ EcGroup const* getc() const;
+ /// Get maximum size of group element
+ size_t GetElementMaxSize() const;
+
+ private:
+ struct State;
+ std::unique_ptr state_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_ECGROUP_WRAPPER_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecpoint_wrapper-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecpoint_wrapper-testhelper.cc
new file mode 100644
index 0000000000..f1aa18ce41
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecpoint_wrapper-testhelper.cc
@@ -0,0 +1,128 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief EcPoint C++ wrapper implementation.
+ */
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/ecpoint_wrapper-testhelper.h"
+#include "epid/common-testhelper/ecgroup_wrapper-testhelper.h"
+#include "epid/common/math/bignum.h"
+
+/// ecpoint deleter type
+struct EcPointDeleter {
+ /// ecpoint deleter
+ void operator()(EcPoint* ptr) {
+ if (ptr) {
+ DeleteEcPoint(&ptr);
+ }
+ }
+};
+
+/// ecpoint deleter singlton
+EcPointDeleter ecpoint_deleter;
+
+/// Internal state of the ecpoint wrapper
+struct EcPointObj::State {
+ /// The containing field
+ EcGroupObj group_;
+ /// The stored EcPoint
+ std::shared_ptr point_;
+
+ State() : group_(), point_() {}
+ /// write a new value
+ void write(EcGroupObj* group, unsigned char const* buf, size_t buflen) {
+ group_ = *group;
+ bool orig_has_data = (buf != nullptr) && (buflen > 0);
+ std::shared_ptr point;
+ EcPoint* point_ptr;
+ THROW_ON_EPIDERR(NewEcPoint(group_, &point_ptr));
+ point.reset(point_ptr, ecpoint_deleter);
+ if (orig_has_data) {
+ THROW_ON_EPIDERR(ReadEcPoint(group_, buf, buflen, point.get()));
+ }
+ point_ = point;
+ }
+};
+
+EcPointObj::EcPointObj() : state_(new State) {}
+
+EcPointObj::EcPointObj(EcPointObj const& other) : state_(new State) {
+ std::vector buf = other.data();
+ state_->write(&other.state_->group_, &buf[0], buf.size());
+}
+
+EcPointObj& EcPointObj::operator=(EcPointObj const& other) {
+ std::vector buf = other.data();
+ state_->write(&other.state_->group_, &buf[0], buf.size());
+ return *this;
+}
+
+EcPointObj::EcPointObj(EcGroupObj* group) : state_(new State) {
+ state_->write(group, nullptr, 0);
+}
+
+EcPointObj::EcPointObj(EcGroupObj* group, G1ElemStr const& bytes)
+ : state_(new State) {
+ init(group, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+EcPointObj::EcPointObj(EcGroupObj* group, G2ElemStr const& bytes)
+ : state_(new State) {
+ init(group, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+EcPointObj::EcPointObj(EcGroupObj* group, Epid11G2ElemStr const& bytes)
+ : state_(new State) {
+ init(group, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+EcPointObj::EcPointObj(EcGroupObj* group,
+ std::vector const& bytes)
+ : state_(new State) {
+ init(group, &bytes[0], bytes.size());
+}
+
+EcPointObj::EcPointObj(EcGroupObj* group, void const* bytes, size_t size)
+ : state_(new State) {
+ init(group, (unsigned char const*)bytes, size);
+}
+
+void EcPointObj::init(EcGroupObj* group, unsigned char const* bytes,
+ size_t size) {
+ state_->write(group, bytes, size);
+}
+
+EcPointObj::~EcPointObj() {}
+
+EcPointObj::operator EcPoint*() { return state_->point_.get(); }
+
+EcPointObj::operator const EcPoint*() const { return state_->point_.get(); }
+
+EcPoint* EcPointObj::get() { return state_->point_.get(); }
+
+EcPoint const* EcPointObj::getc() const { return state_->point_.get(); }
+
+std::vector EcPointObj::data() const {
+ std::vector buf;
+ if (state_->point_.get() != nullptr) {
+ buf.resize(state_->group_.GetElementMaxSize());
+ THROW_ON_EPIDERR(WriteEcPoint(state_->group_, state_->point_.get(), &buf[0],
+ buf.size()));
+ }
+ return buf;
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecpoint_wrapper-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecpoint_wrapper-testhelper.h
new file mode 100644
index 0000000000..87b3af2442
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ecpoint_wrapper-testhelper.h
@@ -0,0 +1,78 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief EcPoint C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_ECPOINT_WRAPPER_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_ECPOINT_WRAPPER_TESTHELPER_H_
+
+#include
+#include
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+#include "epid/common/math/ecgroup.h"
+#include "epid/common/1.1/types.h"
+}
+
+class EcGroupObj;
+
+/*!
+Wrapper class to provide Resource Allocation is Initialization handling
+for EcPoint
+*/
+class EcPointObj {
+ public:
+ /// constructor
+ EcPointObj();
+ /// copy constructor
+ EcPointObj(EcPointObj const& other);
+ /// assignment operator
+ EcPointObj& operator=(EcPointObj const& other);
+ /// Create an EcPoint
+ explicit EcPointObj(EcGroupObj* group);
+ /// Create an EcPoint
+ EcPointObj(EcGroupObj* group, G1ElemStr const& bytes);
+ /// Create an EcPoint
+ EcPointObj(EcGroupObj* group, G2ElemStr const& bytes);
+ /// Create an EcPoint
+ EcPointObj(EcGroupObj* group, Epid11G2ElemStr const& bytes);
+ /// Create an EcPoint
+ EcPointObj(EcGroupObj* group, std::vector const& bytes);
+ /// Create an EcPoint
+ EcPointObj(EcGroupObj* group, void const* bytes, size_t size);
+ /// Destroy the EcPoint
+ ~EcPointObj();
+ /// cast operator to get the pointer to the stored EcPoint
+ operator EcPoint*();
+ /// const cast operator to get the pointer to the stored EcPoint
+ operator const EcPoint*() const;
+ /// Get the underlying pointer
+ EcPoint* get();
+ /// Get the underlying pointer
+ EcPoint const* getc() const;
+ /// Get element bytes
+ std::vector data() const;
+
+ private:
+ void init(EcGroupObj* group, unsigned char const* bytes, size_t size);
+ struct State;
+ std::unique_ptr state_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_ECPOINT_WRAPPER_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/epid_params-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/epid_params-testhelper.cc
new file mode 100644
index 0000000000..57fa53bc2b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/epid_params-testhelper.cc
@@ -0,0 +1,164 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Intel(R) EPID parameters C++ wrapper implementation.
+ */
+
+#include
+#include
+
+#include "epid/common-testhelper/epid_params-testhelper.h"
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+
+extern "C" {
+#include "epid/common/math/src/ecgroup-internal.h"
+#include "epid/common/math/src/finitefield-internal.h"
+#include "epid/common/math/src/pairing-internal.h"
+}
+
+Epid20Params::Epid20Params() {
+ // construct Fq finite field
+ fq = FiniteFieldObj(q_str_);
+
+ // construct Fq^2 finite field
+ FfElementObj neg_beta(&fq);
+ THROW_ON_EPIDERR(FfNeg(fq, FfElementObj(&fq, beta_str_), neg_beta));
+ fq2 = FiniteFieldObj(fq, neg_beta, 2);
+
+ // construct Fq^6 finite field
+ FfElementObj neg_xi(&fq2);
+ THROW_ON_EPIDERR(FfNeg(fq2, FfElementObj(&fq2, xi_str_), neg_xi));
+ fq6 = FiniteFieldObj(fq2, neg_xi, 3);
+
+ // construct Fq^12 finite field
+ FfElementObj neg_v(&fq6);
+ THROW_ON_EPIDERR(FfNeg(fq6, FfElementObj(&fq6, v_str_), neg_v));
+ GT = FiniteFieldObj(fq6, neg_v, 2);
+
+ const BigNumStr h1 = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}};
+
+ // Create G1
+ // G1 is an elliptic curve group E(Fq).It can be initialized as follows :
+ // Set G1 = E(Fq).init(p, q, n = p, h = 1, a = 0, b, g1.x, g1.y).
+ G1 = EcGroupObj(&fq, FfElementObj(&fq), FfElementObj(&fq, b_str_),
+ FfElementObj(&fq, g1_str_.x), FfElementObj(&fq, g1_str_.y),
+ BigNumObj(p_str_), BigNumObj(h1));
+
+ // set h = 2q - p, aka cofactor
+ std::vector cofactor_str(
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfc, 0xf0, 0xcd, 0x46, 0xe5, 0xf2, 0x5e, 0xee, 0x71, 0xa4, 0xa0,
+ 0x0c, 0xdc, 0x65, 0xfb, 0x12, 0x96, 0x82, 0xea, 0xb0, 0x25, 0x08, 0x4a,
+ 0x8c, 0x9b, 0x10, 0x19});
+ // set n = p * h, AKA order
+ std::vector order_str(
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xe1, 0x9a, 0x8d, 0xcb, 0xe4, 0xc7,
+ 0x38, 0xfa, 0x9b, 0x98, 0x4d, 0x1c, 0x12, 0x9f, 0x64, 0x97, 0xe8, 0x54,
+ 0xa3, 0x0a, 0x81, 0xac, 0x42, 0xf9, 0x39, 0x16, 0xa7, 0x70, 0x21, 0xdc,
+ 0xfb, 0xb6, 0xe7, 0x7e, 0x1f, 0x5b, 0x55, 0xcc, 0x4e, 0x84, 0xcd, 0x19,
+ 0x4f, 0x49, 0x20, 0x94, 0xb5, 0xd8, 0x12, 0xa0, 0x2e, 0x7f, 0x40, 0x13,
+ 0xb2, 0xfa, 0xa1, 0x45});
+
+ // Compute xi' = Fq2.inverse(xi).
+ FfElementObj inv_xi(&fq2);
+ THROW_ON_EPIDERR(FfInv(fq2, FfElementObj(&fq2, xi_str_), inv_xi));
+ // Compute b' = Fq2.mul(xi', b).
+ FfElementObj b_dash(&fq2);
+ THROW_ON_EPIDERR(FfMul(fq2, inv_xi.get(), FfElementObj(&fq, b_str_), b_dash));
+
+ // Set G2 = E(Fq2).init(p, param(Fq2), n, h, 0, b', g2.x, g2.y)
+ G2 = EcGroupObj(&fq2, FfElementObj(&fq2), b_dash,
+ FfElementObj(&fq2, &g2_str_.x, sizeof(g2_str_.x)),
+ FfElementObj(&fq2, &g2_str_.y, sizeof(g2_str_.y)),
+ BigNumObj(order_str), BigNumObj(cofactor_str));
+}
+
+const BigNumStr Epid20Params::q_str_ = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2, 0x5E,
+ 0xEE, 0x71, 0xA4, 0x9F, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x98, 0x0A, 0x82,
+ 0xD3, 0x29, 0x2D, 0xDB, 0xAE, 0xD3, 0x30, 0x13}}};
+const FqElemStr Epid20Params::beta_str_ = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2, 0x5E,
+ 0xEE, 0x71, 0xA4, 0x9F, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x98, 0x0A, 0x82,
+ 0xD3, 0x29, 0x2D, 0xDB, 0xAE, 0xD3, 0x30, 0x12}}};
+const Fq6ElemStr Epid20Params::v_str_ = {
+ {{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}}};
+
+const BigNumStr Epid20Params::p_str_ = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2, 0x5E,
+ 0xEE, 0x71, 0xA4, 0x9E, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x99, 0x92, 0x1A,
+ 0xF6, 0x2D, 0x53, 0x6C, 0xD1, 0x0B, 0x50, 0x0D}}};
+const FqElemStr Epid20Params::b_str_ = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}}};
+const FqElemStr Epid20Params::h_str_ = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}};
+const G1ElemStr Epid20Params::g1_str_ = {
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}},
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}}}};
+const Fq2ElemStr Epid20Params::xi_str_ = {
+ {{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}}},
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}}}};
+const G2ElemStr Epid20Params::g2_str_ = {
+ {{{{0xE2, 0x01, 0x71, 0xC5, 0x4A, 0xA3, 0xDA, 0x05, 0x21, 0x67, 0x04, 0x13,
+ 0x74, 0x3C, 0xCF, 0x22, 0xD2, 0x5D, 0x52, 0x68, 0x3D, 0x32, 0x47, 0x0E,
+ 0xF6, 0x02, 0x13, 0x43, 0xBF, 0x28, 0x23, 0x94}}},
+ {{{0x59, 0x2D, 0x1E, 0xF6, 0x53, 0xA8, 0x5A, 0x80, 0x46, 0xCC, 0xDC, 0x25,
+ 0x4F, 0xBB, 0x56, 0x56, 0x43, 0x43, 0x3B, 0xF6, 0x28, 0x96, 0x53, 0xE2,
+ 0x7D, 0xF7, 0xB2, 0x12, 0xBA, 0xA1, 0x89, 0xBE}}}},
+ {{{{0xAE, 0x60, 0xA4, 0xE7, 0x51, 0xFF, 0xD3, 0x50, 0xC6, 0x21, 0xE7, 0x03,
+ 0x31, 0x28, 0x26, 0xBD, 0x55, 0xE8, 0xB5, 0x9A, 0x4D, 0x91, 0x68, 0x38,
+ 0x41, 0x4D, 0xB8, 0x22, 0xDD, 0x23, 0x35, 0xAE}}},
+ {{{0x1A, 0xB4, 0x42, 0xF9, 0x89, 0xAF, 0xE5, 0xAD, 0xF8, 0x02, 0x74, 0xF8,
+ 0x76, 0x45, 0xE2, 0x53, 0x2C, 0xDC, 0x61, 0x81, 0x90, 0x93, 0xD6, 0x13,
+ 0x2C, 0x90, 0xFE, 0x89, 0x51, 0xB9, 0x24, 0x21}}}}};
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/epid_params-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/epid_params-testhelper.h
new file mode 100644
index 0000000000..42e2a5cfab
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/epid_params-testhelper.h
@@ -0,0 +1,72 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Intel(R) EPID 2.0 parameters C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_EPID_PARAMS_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_EPID_PARAMS_TESTHELPER_H_
+
+#include
+#include "epid/common/types.h"
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+#include "epid/common/math/finitefield.h"
+#include "epid/common/math/ecgroup.h"
+}
+
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+#include "epid/common-testhelper/ecgroup_wrapper-testhelper.h"
+#include "epid/common-testhelper/ecpoint_wrapper-testhelper.h"
+#include "epid/common-testhelper/bignum_wrapper-testhelper.h"
+
+class Epid20Params {
+ public:
+ Epid20Params();
+
+ // This class instances are not meant to be copied.
+ // Explicitly delete copy constructor and assignment operator.
+ Epid20Params(const Epid20Params&) = delete;
+ Epid20Params& operator=(const Epid20Params&) = delete;
+
+ virtual ~Epid20Params() {}
+
+ FiniteFieldObj GT;
+ EcGroupObj G1;
+ EcGroupObj G2;
+
+ private:
+ static const BigNumStr q_str_;
+ static const FqElemStr beta_str_;
+ static const Fq6ElemStr v_str_;
+
+ static const BigNumStr p_str_;
+ static const FqElemStr b_str_;
+ static const FqElemStr h_str_;
+ static const G1ElemStr g1_str_;
+
+ static const Fq2ElemStr xi_str_;
+ static const G2ElemStr g2_str_;
+
+ FiniteFieldObj fq;
+ FiniteFieldObj fq2;
+ FiniteFieldObj fq6;
+};
+
+#endif // EPID_COMMON_TESTHELPER_EPID_PARAMS_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/errors-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/errors-testhelper.h
new file mode 100644
index 0000000000..f61de1b3de
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/errors-testhelper.h
@@ -0,0 +1,41 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Error handling C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_ERRORS_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_ERRORS_TESTHELPER_H_
+
+#include
+#include
+#include
+#include
+#include
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+}
+
+/// Macro used to indicate fatal error during unit test run
+#define THROW_ON_EPIDERR(actual) \
+ if (kEpidNoErr != actual) { \
+ printf("%s(%d): error: %s\n", __FILE__, __LINE__, "test defect"); \
+ throw std::logic_error(std::string("Failed to call: ") + #actual); \
+ }
+
+#endif // EPID_COMMON_TESTHELPER_ERRORS_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ffelement_wrapper-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ffelement_wrapper-testhelper.cc
new file mode 100644
index 0000000000..675142e0af
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ffelement_wrapper-testhelper.cc
@@ -0,0 +1,146 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief FfElement C++ wrapper implementation.
+ */
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+#include "epid/common/math/bignum.h"
+
+/// ffelement deleter type
+struct FfElementDeleter {
+ /// ffelement deleter
+ void operator()(FfElement* ffe) {
+ if (ffe) {
+ DeleteFfElement(&ffe);
+ }
+ }
+};
+
+/// ffelement deleter singlton
+FfElementDeleter ff_element_deleter;
+
+/// Internal state of the ffelement wrapper
+struct FfElementObj::State {
+ /// The containing field
+ FiniteFieldObj ff_;
+ /// size of the element data
+ size_t size;
+ /// The stored FfElement
+ std::shared_ptr ffe_;
+
+ State() : ff_(), size(0), ffe_() {}
+ /// write a new value
+ void write(FiniteFieldObj* ff, unsigned char const* buf, size_t buflen) {
+ ff_ = *ff;
+ bool orig_has_data = (buf != nullptr) && (buflen > 0);
+ std::shared_ptr ffe;
+ FfElement* ffe_ptr;
+ THROW_ON_EPIDERR(NewFfElement(ff_, &ffe_ptr));
+ ffe.reset(ffe_ptr, ff_element_deleter);
+ size = buflen;
+ if (orig_has_data) {
+ THROW_ON_EPIDERR(ReadFfElement(ff_, buf, buflen, ffe.get()));
+ }
+ ffe_ = ffe;
+ }
+};
+
+FfElementObj::FfElementObj() : state_(new State) {}
+
+FfElementObj::FfElementObj(FfElementObj const& other) : state_(new State) {
+ std::vector buf = other.data();
+ state_->write(&other.state_->ff_, &buf[0], buf.size());
+}
+
+FfElementObj& FfElementObj::operator=(FfElementObj const& other) {
+ std::vector buf = other.data();
+ state_->write(&other.state_->ff_, &buf[0], buf.size());
+ return *this;
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff) : state_(new State) {
+ state_->write(ff, nullptr, 0);
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff, FpElemStr const& bytes)
+ : state_(new State) {
+ init(ff, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff, FqElemStr const& bytes)
+ : state_(new State) {
+ init(ff, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff, Fq2ElemStr const& bytes)
+ : state_(new State) {
+ init(ff, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff, Fq3ElemStr const& bytes)
+ : state_(new State) {
+ init(ff, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff, Fq6ElemStr const& bytes)
+ : state_(new State) {
+ init(ff, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff, Fq12ElemStr const& bytes)
+ : state_(new State) {
+ init(ff, (unsigned char*)&bytes, sizeof(bytes));
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff,
+ std::vector const& bytes)
+ : state_(new State) {
+ init(ff, &bytes[0], bytes.size());
+}
+
+FfElementObj::FfElementObj(FiniteFieldObj* ff, void const* bytes, size_t size)
+ : state_(new State) {
+ init(ff, (unsigned char const*)bytes, size);
+}
+
+void FfElementObj::init(FiniteFieldObj* ff, unsigned char const* bytes,
+ size_t size) {
+ state_->write(ff, bytes, size);
+}
+
+FfElementObj::~FfElementObj() {}
+
+FfElementObj::operator FfElement*() { return state_->ffe_.get(); }
+
+FfElementObj::operator const FfElement*() const { return state_->ffe_.get(); }
+
+FfElement* FfElementObj::get() { return state_->ffe_.get(); }
+
+FfElement const* FfElementObj::getc() const { return state_->ffe_.get(); }
+
+std::vector FfElementObj::data() const {
+ std::vector buf;
+ if (state_->ffe_.get() != nullptr) {
+ buf.resize(state_->ff_.GetElementMaxSize());
+ THROW_ON_EPIDERR(
+ WriteFfElement(state_->ff_, state_->ffe_.get(), &buf[0], buf.size()));
+ }
+ return buf;
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ffelement_wrapper-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ffelement_wrapper-testhelper.h
new file mode 100644
index 0000000000..df09065b8b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/ffelement_wrapper-testhelper.h
@@ -0,0 +1,84 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief FfElement C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_FFELEMENT_WRAPPER_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_FFELEMENT_WRAPPER_TESTHELPER_H_
+
+#include
+#include
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+#include "epid/common/math/finitefield.h"
+#include "epid/common/1.1/types.h"
+}
+
+class FiniteFieldObj;
+
+/*!
+Wrapper class to provide Resource Allocation is Initialization handling
+for FfElement
+*/
+class FfElementObj {
+ public:
+ /// constructor
+ FfElementObj();
+ /// copy constructor
+ FfElementObj(FfElementObj const& other);
+ /// assignment operator
+ FfElementObj& operator=(FfElementObj const& other);
+ /// Create a FfElement
+ explicit FfElementObj(FiniteFieldObj* ff);
+ /// Create a FfElement
+ FfElementObj(FiniteFieldObj* ff, FpElemStr const& bytes);
+ /// Create a FfElement
+ FfElementObj(FiniteFieldObj* ff, FqElemStr const& bytes);
+ /// Create a FfElement
+ FfElementObj(FiniteFieldObj* ff, Fq2ElemStr const& bytes);
+ /// Create a FfElement
+ FfElementObj(FiniteFieldObj* ff, Fq3ElemStr const& bytes);
+ /// Create a FfElement
+ FfElementObj(FiniteFieldObj* ff, Fq6ElemStr const& bytes);
+ /// Create a FfElement
+ FfElementObj(FiniteFieldObj* ff, Fq12ElemStr const& bytes);
+ /// Create a FfElement
+ FfElementObj(FiniteFieldObj* ff, std::vector const& bytes);
+ /// Create a FfElement
+ FfElementObj(FiniteFieldObj* ff, void const* bytes, size_t size);
+ /// Destroy the FfElement
+ ~FfElementObj();
+ /// cast operator to get the pointer to the stored FfElement
+ operator FfElement*();
+ /// const cast operator to get the pointer to the stored FfElement
+ operator const FfElement*() const;
+ /// Get the underlying pointer
+ FfElement* get();
+ /// Get the underlying pointer
+ FfElement const* getc() const;
+ /// Get element bytes
+ std::vector data() const;
+
+ private:
+ void init(FiniteFieldObj* ff, unsigned char const* bytes, size_t size);
+ struct State;
+ std::unique_ptr state_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_FFELEMENT_WRAPPER_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/finite_field_wrapper-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/finite_field_wrapper-testhelper.cc
new file mode 100644
index 0000000000..12bf5d3df1
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/finite_field_wrapper-testhelper.cc
@@ -0,0 +1,177 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief FiniteField C++ wrapper implementation.
+ */
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common/math/bignum.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+
+/// finite field deleter type
+struct FiniteFieldDeleter {
+ /// finite field deleter
+ void operator()(FiniteField* ff) {
+ if (ff) {
+ DeleteFiniteField(&ff);
+ }
+ }
+};
+
+/// finite field deleter singlton
+FiniteFieldDeleter finite_field_deleter;
+
+/// Internal state of the finite field wrapper
+struct FiniteFieldObj::State {
+ /// Inner state of complex fields
+ struct InnerState {
+ /// The ground field
+ FiniteFieldObj gf_;
+ };
+ /// Inner state
+ /*!
+ We store a pointer to InnerState so simple fields
+ that are not composed from other fields do not result
+ in an infinite series of fields.
+
+ Instead simple fields have a NULL inner_state and
+ complex fields have it set.
+ */
+ InnerState* inner_state;
+
+ /// The stored FiniteField
+ std::shared_ptr ff_;
+
+ /// Maximum size of field element
+ size_t size_;
+
+ /// constructor
+ State() : ff_(nullptr, finite_field_deleter), size_(0) {
+ inner_state = nullptr;
+ }
+
+ // State instances are not meant to be copied.
+ // Explicitly delete copy constructor and assignment operator.
+ State(const State&) = delete;
+ State& operator=(const State&) = delete;
+
+ /// destructor
+ ~State() {
+ if (inner_state) {
+ delete inner_state;
+ inner_state = nullptr;
+ }
+ }
+
+ /// setter for inner_state
+ void SetInnerState(FiniteFieldObj const& gf) {
+ if (!inner_state) {
+ inner_state = new InnerState;
+ inner_state->gf_ = gf;
+ }
+ }
+
+ /// setter for inner_state
+ void SetInnerState(InnerState* state) {
+ if (state) {
+ if (!inner_state) {
+ inner_state = new InnerState;
+ }
+ if (!inner_state) {
+ inner_state->gf_ = state->gf_;
+ }
+ } else {
+ if (inner_state) {
+ delete inner_state;
+ inner_state = nullptr;
+ }
+ }
+ }
+};
+
+FiniteFieldObj::FiniteFieldObj() : state_(new State()) {
+ /*
+ to avoid a bug in ipp this is one less than the
+ actual max value we could take.
+ */
+ const BigNumStr max_prime = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFe};
+ FiniteField* temp = nullptr;
+ NewFiniteField(&max_prime, &temp);
+ state_->ff_.reset(temp, finite_field_deleter);
+ state_->size_ = sizeof(max_prime);
+}
+
+FiniteFieldObj::FiniteFieldObj(FiniteFieldObj const& other)
+ : state_(new State) {
+ state_->ff_ = other.state_->ff_;
+ state_->size_ = other.state_->size_;
+ state_->SetInnerState(other.state_->inner_state);
+}
+
+FiniteFieldObj& FiniteFieldObj::operator=(FiniteFieldObj const& other) {
+ state_->ff_ = other.state_->ff_;
+ state_->size_ = other.state_->size_;
+ state_->SetInnerState(other.state_->inner_state);
+ return *this;
+}
+
+FiniteFieldObj::FiniteFieldObj(BigNumStr const& prime) : state_(new State) {
+ FiniteField* temp = nullptr;
+ NewFiniteField(&prime, &temp);
+ state_->ff_.reset(temp, finite_field_deleter);
+ state_->size_ = sizeof(prime);
+}
+
+FiniteFieldObj::FiniteFieldObj(FiniteFieldObj const& ground_field,
+ FfElementObj const& ground_element, int degree)
+ : state_(new State) {
+ FiniteField* temp = nullptr;
+ state_->SetInnerState(ground_field);
+ NewFiniteFieldViaBinomalExtension(ground_field, ground_element, degree,
+ &temp);
+ state_->ff_.reset(temp, finite_field_deleter);
+ state_->size_ = ground_field.GetElementMaxSize() * degree;
+}
+
+FiniteFieldObj::FiniteFieldObj(FiniteFieldObj const& ground_field,
+ BigNumStr const* irr_polynomial, int degree)
+ : state_(new State) {
+ FiniteField* temp = nullptr;
+ state_->SetInnerState(ground_field);
+ NewFiniteFieldViaPolynomialExtension(ground_field, irr_polynomial, degree,
+ &temp);
+ state_->ff_.reset(temp, finite_field_deleter);
+ state_->size_ = ground_field.GetElementMaxSize() * degree;
+}
+
+FiniteFieldObj::~FiniteFieldObj() {}
+
+FiniteFieldObj::operator FiniteField*() { return state_->ff_.get(); }
+
+FiniteFieldObj::operator const FiniteField*() const {
+ return state_->ff_.get();
+}
+
+FiniteField* FiniteFieldObj::get() { return state_->ff_.get(); }
+
+FiniteField const* FiniteFieldObj::getc() const { return state_->ff_.get(); }
+
+size_t FiniteFieldObj::GetElementMaxSize() const { return state_->size_; }
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/finite_field_wrapper-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/finite_field_wrapper-testhelper.h
new file mode 100644
index 0000000000..ceebc4c0ea
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/finite_field_wrapper-testhelper.h
@@ -0,0 +1,71 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief FiniteField C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_FINITE_FIELD_WRAPPER_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_FINITE_FIELD_WRAPPER_TESTHELPER_H_
+
+#include
+#include
+
+extern "C" {
+#include "epid/common/math/finitefield.h"
+}
+
+class FfElementObj;
+
+/*!
+Wrapper class to provide Resource Allocation is Initialization handling
+for FiniteField
+*/
+class FiniteFieldObj {
+ public:
+ /// constructor
+ FiniteFieldObj();
+ /// copy constructor
+ FiniteFieldObj(FiniteFieldObj const& other);
+ /// assignment operator
+ FiniteFieldObj& operator=(FiniteFieldObj const& other);
+ /// Create a FiniteField
+ explicit FiniteFieldObj(BigNumStr const& prime);
+ /// Create a FiniteField
+ FiniteFieldObj(FiniteFieldObj const& ground_field,
+ FfElementObj const& ground_element, int degree);
+ /// Create a FiniteField
+ FiniteFieldObj(FiniteFieldObj const& ground_field,
+ BigNumStr const* irr_polynomial, int degree);
+ /// Destroy the FiniteField
+ ~FiniteFieldObj();
+ /// cast operator to get the pointer to the stored FiniteField
+ operator FiniteField*();
+ /// const cast operator to get the pointer to the stored FiniteField
+ operator const FiniteField*() const;
+ /// Get the underlying pointer
+ FiniteField* get();
+ /// Get the underlying pointer
+ FiniteField const* getc() const;
+ /// Get maximum size of field element
+ size_t GetElementMaxSize() const;
+
+ private:
+ struct State;
+ std::unique_ptr state_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_FINITE_FIELD_WRAPPER_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/octstr-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/octstr-testhelper.cc
new file mode 100644
index 0000000000..86ce1931f3
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/octstr-testhelper.cc
@@ -0,0 +1,126 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief OctString handling utility implementation.
+ */
+#include "epid/common-testhelper/octstr-testhelper.h"
+extern "C" {
+#include "epid/common/src/memory.h"
+}
+#include "ext/ipp/include/ippcp.h"
+
+/// Internal function to delete BigNum
+void delete_BigNum(IppsBigNumState** bn) {
+ if (*bn) {
+ SAFE_FREE(*bn);
+ }
+}
+/// Internal function to create BigNum from an OctStr256
+EpidStatus create_BigNum(IppsBigNumState** bn, const OctStr256* str) {
+ EpidStatus result = kEpidErr;
+ IppsBigNumState* ipp_bn_ctx = nullptr;
+ do {
+ IppStatus sts = ippStsNoErr;
+ unsigned int byte_size = sizeof(OctStr256);
+ unsigned int word_size =
+ (unsigned int)((byte_size + sizeof(Ipp32u) - 1) / sizeof(Ipp32u));
+ int bignum_ctx_size = 0;
+
+ if (!bn || !str) {
+ return kEpidBadArgErr;
+ }
+
+ sts = ippsBigNumGetSize(word_size, &bignum_ctx_size);
+ if (ippStsNoErr != sts) {
+ if (ippStsLengthErr == sts) {
+ result = kEpidBadArgErr;
+ } else {
+ result = kEpidMathErr;
+ }
+ break;
+ }
+ // Allocate space for ipp bignum context
+ ipp_bn_ctx = (IppsBigNumState*)SAFE_ALLOC(bignum_ctx_size);
+ if (!ipp_bn_ctx) {
+ result = kEpidMemAllocErr;
+ break;
+ }
+ // Initialize ipp bignum context
+ sts = ippsBigNumInit(word_size, ipp_bn_ctx);
+ if (sts != ippStsNoErr) {
+ if (sts == ippStsLengthErr) {
+ result = kEpidBadArgErr;
+ } else {
+ result = kEpidMathErr;
+ }
+ break;
+ }
+
+ sts = ippsSetOctString_BN((Ipp8u*)str, byte_size, ipp_bn_ctx);
+ if (sts != ippStsNoErr) {
+ if (sts == ippStsLengthErr) {
+ result = kEpidBadArgErr;
+ } else {
+ result = kEpidMathErr;
+ }
+ break;
+ }
+ *bn = ipp_bn_ctx;
+ result = kEpidNoErr;
+ } while (0);
+
+ if (result != kEpidNoErr) {
+ SAFE_FREE(ipp_bn_ctx);
+ }
+ return result;
+}
+
+EpidStatus Cmp_OctStr256(const OctStr256* pA, const OctStr256* pB,
+ unsigned int* pResult) {
+ EpidStatus result = kEpidErr;
+ IppsBigNumState* ipp_a_ctx = nullptr;
+ IppsBigNumState* ipp_b_ctx = nullptr;
+
+ do {
+ IppStatus sts = ippStsNoErr;
+ if (!pA || !pB || !pResult) {
+ return kEpidBadArgErr;
+ }
+ result = create_BigNum(&ipp_a_ctx, pA);
+ if (kEpidNoErr != result) {
+ break;
+ }
+ result = create_BigNum(&ipp_b_ctx, pB);
+ if (kEpidNoErr != result) {
+ break;
+ }
+ sts = ippsCmp_BN(ipp_a_ctx, ipp_b_ctx, pResult);
+ if (ippStsNoErr != sts) {
+ if (ippStsContextMatchErr == sts || ippStsRangeErr == sts ||
+ ippStsLengthErr == sts || ippStsOutOfRangeErr == sts) {
+ result = kEpidBadArgErr;
+ } else {
+ result = kEpidMathErr;
+ }
+ }
+ } while (0);
+
+ delete_BigNum(&ipp_a_ctx);
+ delete_BigNum(&ipp_b_ctx);
+ return result;
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/octstr-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/octstr-testhelper.h
new file mode 100644
index 0000000000..1d60062d75
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/octstr-testhelper.h
@@ -0,0 +1,47 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief OctString handling utility interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_OCTSTR_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_OCTSTR_TESTHELPER_H_
+
+#include "epid/common/errors.h"
+#include "epid/common/types.h"
+
+/// Compares 2 OctStr256
+/*!
+
+if A==B, then pResult = 0
+if A > B, then pResult = 1
+if A < B, then pResult = 2
+
+\param[in] pA
+OctStr256 A
+\param[in] pB
+OctStr256 B
+\param[out] pResult
+Comparison Result
+
+\returns ::EpidStatus
+
+*/
+EpidStatus Cmp_OctStr256(const OctStr256* pA, const OctStr256* pB,
+ unsigned int* pResult);
+
+#endif // EPID_COMMON_TESTHELPER_OCTSTR_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/prng-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/prng-testhelper.h
new file mode 100644
index 0000000000..f3008e1ae4
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/prng-testhelper.h
@@ -0,0 +1,90 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Pseudo random number generator interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_PRNG_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_PRNG_TESTHELPER_H_
+
+#if defined(_WIN32) || defined(_WIN64)
+#define __STDCALL __stdcall
+#else
+#define __STDCALL
+#endif
+#include // for CHAR_BIT
+#include
+
+/// Return status for Prng Generate function
+typedef enum {
+ kPrngNoErr = 0, //!< no error
+ kPrngErr = -999, //!< unspecified error
+ kPrngNotImpl, //!< not implemented error
+ kPrngBadArgErr //!< incorrect arg to function
+} PrngStatus;
+
+/// Pseudo random number generator (prng) class.
+class Prng {
+ public:
+ Prng() : seed_(1) { set_seed(seed_); }
+ ~Prng() {}
+ /// Retrieve seed
+ unsigned int get_seed() const { return seed_; }
+ /// Set seed for random number generator
+ void set_seed(unsigned int val) {
+ seed_ = val;
+ generator_.seed(seed_);
+ }
+ /// Generates random number
+ static int __STDCALL Generate(unsigned int* random_data, int num_bits,
+ void* user_data) {
+ unsigned int num_bytes = num_bits / CHAR_BIT;
+ unsigned int num_words = num_bytes / sizeof(unsigned int);
+ unsigned int extra_bytes = num_bytes % sizeof(unsigned int);
+ if (!random_data) {
+ return kPrngBadArgErr;
+ }
+ if (num_bits <= 0) {
+ return kPrngBadArgErr;
+ }
+ Prng* myprng = (Prng*)user_data;
+ std::uniform_int_distribution<> dis(0x0, 0xffff);
+ if (num_words > 0) {
+ for (unsigned int n = 0; n < num_words; n++) {
+ random_data[n] =
+ (dis(myprng->generator_) << 16) + dis(myprng->generator_);
+ }
+ }
+ if (extra_bytes > 0) {
+ unsigned int data =
+ (dis(myprng->generator_) << 16) + dis(myprng->generator_);
+ unsigned char* byte_data = (unsigned char*)&data;
+ unsigned char* random_bytes = (unsigned char*)&random_data[num_words];
+ for (unsigned int n = 0; n < extra_bytes; n++) {
+ random_bytes[n] = byte_data[n];
+ }
+ }
+
+ return kPrngNoErr;
+ }
+
+ private:
+ unsigned int seed_;
+ std::mt19937 generator_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_PRNG_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/gpubkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/gpubkey.inc
new file mode 100644
index 0000000000..0ed0ded412
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/gpubkey.inc
@@ -0,0 +1,53 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+// gpubkey
+0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
+0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
+
+0x89, 0x33, 0xA7, 0x86, 0xD7, 0x71, 0xCC, 0x80,
+0x46, 0x4B, 0x42, 0xC3, 0xE7, 0xBA, 0x1A, 0x54,
+0x85, 0x8A, 0x21, 0x8E, 0x29, 0x91, 0xA9, 0x60,
+0x41, 0xF9, 0xA5, 0xD9, 0x7B, 0x5F, 0x54, 0x49,
+0x2A, 0x89, 0x8C, 0x10, 0x0E, 0x26, 0x0D, 0xE8,
+0x36, 0x6A, 0x9E, 0x6F, 0x79, 0xFF, 0xF1, 0xCD,
+0xA7, 0xCD, 0xAC, 0x1F, 0x92, 0x33, 0x3A, 0xD9,
+0x7C, 0xF5, 0xCD, 0x38, 0x48, 0x01, 0x4F, 0xC5,
+0x6F, 0xEA, 0x50, 0x60, 0x59, 0x09, 0xDA, 0x44,
+0x21, 0xC2, 0xD0, 0x86, 0xE6, 0x00, 0x63, 0x59,
+0xA9, 0xFB, 0x35, 0x13, 0x4E, 0x13, 0xB1, 0x47,
+0x36, 0xD7, 0xBD, 0xF6, 0x0A, 0x35, 0x74, 0x7D,
+0x36, 0xC5, 0x67, 0xA2, 0x03, 0xB7, 0x38, 0x31,
+0x16, 0xA8, 0x5D, 0x64, 0x3F, 0xE6, 0xF1, 0x94,
+0x37, 0x09, 0x8C, 0x20, 0x17, 0xAC, 0x2F, 0x55,
+0x9E, 0xED, 0xB3, 0xC7, 0x73, 0xC0, 0x1C, 0xBB,
+0xBF, 0xF7, 0x18, 0xCE, 0x4F, 0xD4, 0xE3, 0x67,
+0x75, 0xE4, 0xD9, 0x51, 0xFB, 0x1B, 0x22, 0xF9,
+0x72, 0x2E, 0xC1, 0x76, 0x2A, 0xE1, 0x4A, 0x6E,
+0x88, 0xD6, 0x2D, 0x71, 0xF4, 0xC4, 0x6D, 0xAC,
+0x8C, 0xBD, 0xE7, 0x2B, 0xB1, 0x40, 0x15, 0x93,
+0xBD, 0x97, 0xD4, 0x84, 0x90, 0xEF, 0x4E, 0xFD,
+0x78, 0x25, 0xAB, 0xDF, 0x16, 0xF3, 0x46, 0x52,
+0x16, 0x96, 0xAE, 0x50, 0x88, 0x96, 0x18, 0x73,
+0xC1, 0xD1, 0x73, 0xF0, 0x67, 0xC8, 0x8D, 0xBB,
+0x4E, 0xBC, 0x6A, 0x40, 0xE6, 0x1E, 0x7D, 0x36,
+0x8C, 0xF4, 0xB1, 0xF1, 0x5F, 0x26, 0x4F, 0x43,
+0x0A, 0x36, 0xD4, 0x67, 0xD4, 0x79, 0x3F, 0xB8,
+0x69, 0x6F, 0x9C, 0x33, 0xD3, 0xDB, 0xC6, 0xCE,
+0x42, 0xE3, 0x46, 0x87, 0xD6, 0x65, 0xAC, 0xC9,
+0x71, 0xF1, 0xA9, 0x8F, 0x78, 0x45, 0x9A, 0xEF,
+0x1C, 0xE4, 0x45, 0x84, 0x3D, 0x8A, 0x27, 0x51,
+
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha256_sigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha256_sigrl.inc
new file mode 100644
index 0000000000..c009b344a9
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha256_sigrl.inc
@@ -0,0 +1,1222 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: grp01
+ * Signer: member0
+ * HashAlg: Sha256
+ * Message: "test message"
+ * Basename: None (random base)
+ * SigRl: SigRl of group
+ */
+0xb3, 0x6f, 0xff, 0x81, 0xe2, 0x1b, 0x17,
+0xeb, 0x3d, 0x75, 0x3d, 0x61, 0x7e, 0x27,
+0xb0, 0xcb, 0xd0, 0x6d, 0x8f, 0x9d, 0x64,
+0xce, 0xe3, 0xce, 0x43, 0x4c, 0x62, 0xfd,
+0xb5, 0x80, 0xe0, 0x99, 0x3a, 0x7, 0x56,
+0x80, 0xe0, 0x88, 0x59, 0xa4, 0xfd, 0xb5,
+0xb7, 0x9d, 0xe9, 0x4d, 0xae, 0x9c, 0xee,
+0x3d, 0x66, 0x42, 0x82, 0x45, 0x7e, 0x7f,
+0xd8, 0x69, 0x3e, 0xa1, 0x74, 0xf4, 0x59,
+0xee, 0x50, 0xda, 0xbf, 0xc4, 0x59, 0xcc,
+0x11, 0xf3, 0x49, 0xd8, 0xbb, 0x51, 0xfc,
+0xa7, 0x15, 0xf9, 0x4d, 0xbb, 0x7c, 0x27,
+0xaa, 0x0, 0x2c, 0xa2, 0x91, 0x7b, 0x36,
+0xa3, 0x2c, 0x60, 0x96, 0x16, 0x38, 0xff,
+0xe4, 0x4a, 0x42, 0x13, 0x3, 0xdb, 0x88,
+0x6f, 0xe3, 0x4f, 0xd6, 0xf2, 0x47, 0x10,
+0xed, 0xeb, 0xa0, 0xaf, 0x71, 0xc3, 0x6,
+0x10, 0x30, 0x55, 0x91, 0xf0, 0xf2, 0x70,
+0xe0, 0x10, 0x1b, 0x7f, 0xb4, 0x3, 0xc2,
+0x0, 0x70, 0xb2, 0x77, 0x20, 0xbf, 0x6c,
+0x49, 0xee, 0xfa, 0xf2, 0xca, 0x6, 0x99,
+0x9c, 0x54, 0xe3, 0x29, 0x1b, 0x17, 0x6a,
+0xb1, 0x5e, 0x92, 0xa0, 0x27, 0xac, 0x81,
+0x91, 0x33, 0x39, 0x6a, 0xf9, 0x60, 0xb,
+0xe4, 0xcd, 0xa2, 0xe8, 0xde, 0x74, 0xb2,
+0xbe, 0x58, 0xaa, 0x96, 0x3e, 0xdd, 0x5f,
+0xc0, 0x3c, 0xe5, 0x94, 0x1b, 0xfd, 0x78,
+0xa8, 0x44, 0x48, 0x32, 0x91, 0x89, 0xb0,
+0xf0, 0x9e, 0x56, 0x87, 0x76, 0xee, 0x24,
+0xfe, 0xf5, 0xf, 0x69, 0x95, 0xc, 0xfe,
+0xcc, 0xce, 0x22, 0xd7, 0x33, 0xe3, 0xe5,
+0x86, 0xa3, 0xb9, 0x42, 0x6f, 0x7b, 0xe4,
+0x86, 0x95, 0xec, 0xc3, 0x8, 0x43, 0xf6,
+0xba, 0x26, 0x1c, 0xbd, 0x8b, 0x21, 0xa7,
+0x82, 0x91, 0x22, 0xdb, 0x62, 0x4c, 0xff,
+0x85, 0x8f, 0x10, 0xb7, 0xb1, 0x40, 0xa7,
+0x44, 0x80, 0x20, 0xb4, 0x61, 0xf9, 0xf4,
+0x98, 0xad, 0xb4, 0x35, 0xf7, 0x1e, 0x11,
+0xa1, 0x77, 0xe4, 0xf2, 0x60, 0x68, 0x96,
+0x9, 0x62, 0x6c, 0x35, 0xd2, 0x73, 0x43,
+0x6a, 0x12, 0xc3, 0x2b, 0x5d, 0xe3, 0xc4,
+0x68, 0x2f, 0x5a, 0x69, 0x56, 0xb6, 0x40,
+0x26, 0x11, 0xb9, 0xff, 0x67, 0xb, 0xec,
+0xdc, 0x53, 0x86, 0xe2, 0x83, 0xfb, 0x75,
+0xa1, 0x48, 0xd1, 0x3a, 0xaf, 0xaf, 0x29,
+0x53, 0xce, 0xd1, 0x24, 0xb5, 0xf8, 0x6e,
+0x9, 0xab, 0x2b, 0xe4, 0xf0, 0xfe, 0x19,
+0x66, 0x65, 0xc1, 0x73, 0x91, 0x9d, 0xe5,
+0xe1, 0x89, 0x24, 0x17, 0xa8, 0xba, 0x73,
+0x10, 0xbe, 0x6b, 0xf6, 0x45, 0xbc, 0xe5,
+0x3e, 0x97, 0x0, 0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x32, 0x27, 0xce, 0xbd, 0x3d,
+0xe0, 0xa, 0x5a, 0x61, 0x29, 0xaa, 0xe0,
+0xda, 0x63, 0x27, 0x6f, 0x7a, 0xae, 0x85,
+0xf9, 0x9a, 0x4d, 0x38, 0xe, 0x7, 0x7d,
+0xc4, 0xbc, 0x3e, 0xef, 0x50, 0xc5, 0x39,
+0x43, 0x3d, 0x1f, 0xb1, 0xd3, 0x86, 0x5a,
+0x47, 0x4c, 0x19, 0xf6, 0xf3, 0x13, 0x22,
+0x92, 0x6c, 0x3d, 0xe2, 0x29, 0x6a, 0xe6,
+0xb7, 0xf1, 0x26, 0xd8, 0x31, 0xa1, 0xe9,
+0x8f, 0x97, 0xd7, 0xc8, 0x2e, 0x80, 0x1d,
+0x98, 0xc, 0x1a, 0xbe, 0x7b, 0xef, 0xd5,
+0x7c, 0x1, 0x86, 0xcd, 0x4d, 0xe0, 0xcd,
+0xc9, 0x75, 0xe8, 0x43, 0x11, 0x2, 0x5c,
+0x12, 0x54, 0xe6, 0x79, 0xbd, 0x81, 0x75,
+0xd, 0x7e, 0xd, 0x2, 0xc3, 0x73, 0x85,
+0xee, 0x9e, 0x41, 0x81, 0x6a, 0xf9, 0x7,
+0x95, 0x21, 0x2f, 0x45, 0x60, 0xb2, 0x1a,
+0x3b, 0x83, 0x1, 0x76, 0x9e, 0xf6, 0x4,
+0x5c, 0x52, 0xa1, 0x53, 0x4c, 0x0, 0xfc,
+0x4f, 0x2c, 0xe, 0x70, 0xd9, 0x9, 0x6c,
+0x2b, 0x5b, 0x8c, 0xed, 0xc3, 0xfe, 0xbb,
+0xbc, 0xa4, 0x2d, 0x51, 0x9f, 0xa8, 0x69,
+0x43, 0x7c, 0xe3, 0x82, 0x49, 0x1a, 0x90,
+0xc0, 0xfd, 0x9c, 0x69, 0xe0, 0x20, 0xdb,
+0x40, 0x5c, 0xf7, 0x16, 0x15, 0x24, 0xaa,
+0x6, 0x5e, 0xb5, 0x39, 0xb8, 0x0, 0x79,
+0x5d, 0xc1, 0x72, 0x89, 0xa2, 0x14, 0xdf,
+0xdc, 0x2b, 0x6b, 0x70, 0x66, 0xd9, 0xd,
+0x23, 0x47, 0x67, 0xb3, 0x8c, 0x9c, 0x8a,
+0xea, 0xa5, 0x5c, 0x79, 0x4b, 0xaa, 0x16,
+0x82, 0xb7, 0x4f, 0xdf, 0x55, 0x24, 0xf7,
+0x72, 0x4e, 0x4b, 0xaf, 0xc2, 0x8c, 0xfe,
+0x82, 0x70, 0x49, 0x30, 0xa6, 0xd4, 0x97,
+0xa5, 0x7c, 0xec, 0x42, 0xd6, 0x1, 0xbe,
+0x66, 0x35, 0xf7, 0x28, 0xce, 0xe0, 0xab,
+0x6a, 0xfc, 0x69, 0xf3, 0x6b, 0xea, 0xd5,
+0xa5, 0xbf, 0xd, 0x6d, 0xc3, 0xbf, 0xaa,
+0xb2, 0x69, 0x35, 0xe7, 0xdb, 0x51, 0x3a,
+0x59, 0x8, 0x1, 0xb7, 0xd8, 0x7a, 0x95,
+0xa8, 0xa5, 0xc8, 0x6a, 0xaa, 0x30, 0x25,
+0x4f, 0x59, 0x45, 0x70, 0xce, 0x95, 0x70,
+0x70, 0xec, 0xf2, 0xaa, 0x3c, 0xa2, 0x3,
+0xcb, 0xb8, 0x3f, 0x1d, 0x64, 0x66, 0x26,
+0xc2, 0x2d, 0xa, 0xfc, 0x1a, 0x1e, 0x89,
+0xfd, 0xfd, 0xaa, 0x51, 0xb7, 0x72, 0xad,
+0xb3, 0x98, 0xe1, 0x8, 0x58, 0x10, 0x56,
+0x87, 0xaf, 0x5a, 0x71, 0x68, 0x94, 0x11,
+0x50, 0x3b, 0xae, 0x96, 0xfe, 0x34, 0x73,
+0x41, 0xcd, 0x9f, 0xf3, 0x70, 0xbc, 0xad,
+0xb, 0xb5, 0x76, 0x6a, 0x7d, 0x9c, 0x64,
+0x5d, 0x0, 0xed, 0xf1, 0xfa, 0xd4, 0xed,
+0x73, 0xdf, 0x25, 0xe, 0x74, 0xd1, 0x5d,
+0x5f, 0xf3, 0x86, 0x69, 0x61, 0x4a, 0xda,
+0x39, 0xd5, 0x4b, 0xf, 0x94, 0xd, 0x14,
+0xc8, 0x43, 0x33, 0xf9, 0xfd, 0x92, 0x46,
+0x77, 0x8f, 0xef, 0xc8, 0xb8, 0x35, 0xa3,
+0x6b, 0x3b, 0xf4, 0x29, 0x6e, 0x58, 0xa8,
+0xe4, 0x9a, 0xbd, 0xe6, 0x17, 0x18, 0x12,
+0x5f, 0x78, 0xde, 0xf9, 0xa9, 0x54, 0x83,
+0xd1, 0xa3, 0xbe, 0xf9, 0xe7, 0x3, 0xab,
+0xe1, 0x7, 0xe4, 0xa9, 0x4, 0x9f, 0x86,
+0xff, 0xf7, 0x88, 0x2, 0x3, 0xe8, 0xe9,
+0xa, 0xf2, 0x8a, 0xf8, 0x70, 0xbb, 0xc9,
+0xc1, 0xb9, 0x6, 0x29, 0x25, 0x94, 0x70,
+0xc4, 0x3, 0xdd, 0x9a, 0x51, 0x3a, 0xfc,
+0x45, 0x1a, 0xc6, 0xac, 0x56, 0x80, 0x18,
+0x3c, 0x4b, 0x1d, 0xb, 0x6c, 0x1a, 0x73,
+0xd1, 0xdd, 0xae, 0x7f, 0xe2, 0x48, 0x3a,
+0xe5, 0xb6, 0xf5, 0x1a, 0xf3, 0xc5, 0x2a,
+0x79, 0x93, 0x3, 0x41, 0x88, 0x5d, 0x86,
+0x2, 0x26, 0xbd, 0x93, 0x7f, 0xdf, 0xc9,
+0x49, 0xaa, 0x79, 0x66, 0x62, 0x50, 0x81,
+0xf5, 0xef, 0x1, 0xeb, 0x61, 0xd1, 0x64,
+0x6c, 0xe0, 0xa8, 0x2, 0xb8, 0xff, 0x3e,
+0x6e, 0x3c, 0xf5, 0xd2, 0x81, 0xbe, 0x9c,
+0x45, 0x7a, 0x77, 0x83, 0x38, 0x76, 0x7f,
+0x28, 0x25, 0x47, 0xc7, 0xe1, 0x8c, 0xae,
+0x99, 0x81, 0x79, 0xa9, 0xd1, 0x3d, 0x9e,
+0x6a, 0xfc, 0x40, 0x8b, 0xc5, 0xbd, 0x2d,
+0xf7, 0x91, 0x8f, 0x5, 0x83, 0x13, 0x10,
+0x2, 0x84, 0xc2, 0xc6, 0x8d, 0x18, 0x5f,
+0x23, 0x7e, 0x1b, 0x60, 0xc6, 0x66, 0x24,
+0xba, 0xd8, 0xf4, 0x3d, 0x76, 0xc6, 0xd2,
+0x1, 0xe9, 0x85, 0xb7, 0x44, 0x1c, 0xd4,
+0x59, 0xe8, 0xa4, 0xe0, 0x88, 0x8b, 0xad,
+0x34, 0xd5, 0x36, 0x2e, 0xc2, 0x16, 0x82,
+0x1, 0x2f, 0x92, 0x75, 0x98, 0x88, 0xb2,
+0xcb, 0x34, 0xcd, 0xb8, 0x6, 0x40, 0x84,
+0xbb, 0x99, 0xd, 0x79, 0x5f, 0xca, 0xca,
+0x9c, 0xbf, 0x2f, 0xd3, 0x2a, 0x1, 0x8f,
+0xea, 0xff, 0xcd, 0x24, 0x2b, 0x4b, 0xfd,
+0xef, 0xeb, 0x96, 0xc3, 0xca, 0xa5, 0x39,
+0x91, 0x3, 0x6f, 0x73, 0xc5, 0x72, 0x41,
+0x42, 0x17, 0xd, 0x4a, 0x2f, 0xa, 0x7e,
+0x12, 0x1f, 0x73, 0xd6, 0x80, 0x64, 0x69,
+0xf0, 0xe1, 0xd3, 0x74, 0x31, 0xa8, 0x8a,
+0x24, 0xaa, 0xd6, 0x8f, 0x39, 0x95, 0xbd,
+0x13, 0x39, 0x99, 0xa5, 0xa4, 0x7b, 0x78,
+0x80, 0x3f, 0xad, 0x19, 0x18, 0x28, 0x37,
+0x54, 0xd3, 0x42, 0x43, 0x95, 0x9d, 0x22,
+0xc3, 0x1b, 0x63, 0x9a, 0x2f, 0xea, 0xa7,
+0x94, 0x88, 0x62, 0x34, 0x5b, 0xae, 0x44,
+0xf1, 0xda, 0xd8, 0x55, 0x8b, 0xe6, 0x24,
+0xd5, 0xce, 0x77, 0x75, 0xd9, 0x71, 0x2b,
+0xb7, 0xb7, 0x62, 0x2d, 0xb8, 0xa2, 0xd8,
+0x2c, 0x38, 0xc4, 0x3a, 0x6, 0x34, 0xd0,
+0xe9, 0x74, 0xb9, 0xba, 0xe7, 0xb9, 0xe8,
+0x97, 0x80, 0xdd, 0x65, 0xd6, 0x5b, 0xeb,
+0x7f, 0xdf, 0x38, 0xe9, 0x30, 0x43, 0x3e,
+0xc5, 0x28, 0xb4, 0xb7, 0x47, 0xae, 0xfa,
+0xf9, 0x53, 0xa7, 0xd, 0x3e, 0x82, 0xd4,
+0x60, 0xf8, 0xa9, 0xa4, 0x16, 0x6d, 0xfb,
+0x84, 0x57, 0x7a, 0xeb, 0x80, 0x71, 0xff,
+0x55, 0xbd, 0x42, 0xe8, 0xd0, 0x1c, 0xf,
+0xd, 0xe1, 0x38, 0xac, 0x69, 0xd0, 0xb1,
+0x4c, 0x8f, 0x26, 0x5b, 0xe0, 0x4, 0xa2,
+0xe8, 0xd1, 0x72, 0x15, 0x24, 0x97, 0x51,
+0x7, 0x85, 0x54, 0xed, 0x6f, 0xc4, 0xa0,
+0xac, 0xed, 0x67, 0x6, 0x7d, 0x92, 0x5,
+0x79, 0x4, 0x2f, 0x5e, 0x4e, 0x9e, 0x69,
+0x33, 0xc3, 0x43, 0xc9, 0x89, 0x8, 0xfa,
+0x7a, 0x8d, 0x86, 0x2d, 0x27, 0x37, 0x32,
+0xdf, 0x9, 0x94, 0x86, 0x5f, 0x21, 0x97,
+0x25, 0xc, 0xb3, 0xbd, 0xe, 0x61, 0xf4,
+0x53, 0xfd, 0xac, 0xbb, 0xd2, 0x4d, 0x9a,
+0xd1, 0x6e, 0xfc, 0x99, 0x3, 0xc1, 0x3f,
+0x4c, 0x1a, 0xcb, 0x0, 0x4a, 0x54, 0xd2,
+0xa9, 0x26, 0x32, 0x46, 0xe0, 0x5a, 0x60,
+0x1, 0x58, 0x59, 0xca, 0x2d, 0x19, 0xf4,
+0xc0, 0x18, 0x4b, 0x7a, 0xc6, 0x83, 0xab,
+0xf0, 0xbf, 0xb2, 0x82, 0x49, 0x9b, 0x15,
+0x31, 0xa0, 0x65, 0x4, 0x72, 0xc, 0xbe,
+0x1b, 0x70, 0x34, 0x7d, 0xe4, 0x44, 0xbf,
+0x78, 0x5e, 0xca, 0x41, 0x27, 0x8b, 0x8c,
+0xba, 0x53, 0xa7, 0x7b, 0xb7, 0x77, 0xe2,
+0xa3, 0x2e, 0x69, 0x6, 0x12, 0xcc, 0x5f,
+0x8, 0xea, 0x7a, 0x72, 0x23, 0xc9, 0x66,
+0xa6, 0x3a, 0x56, 0x23, 0x3d, 0xee, 0x93,
+0x57, 0x2a, 0xca, 0x63, 0x6a, 0xb3, 0x77,
+0x82, 0xac, 0xe0, 0xe4, 0x23, 0xd0, 0x16,
+0x3, 0x7c, 0x3a, 0x74, 0x7b, 0xc3, 0xa6,
+0xbe, 0x72, 0xe1, 0x9a, 0xe7, 0x73, 0x6e,
+0xcb, 0x70, 0x74, 0x7e, 0xab, 0xac, 0xec,
+0x80, 0x57, 0xa6, 0x38, 0x68, 0x8f, 0x54,
+0x41, 0xa9, 0xb, 0x0, 0x77, 0x2, 0xa8,
+0xad, 0x92, 0x64, 0x6d, 0xd2, 0xee, 0x2f,
+0x2c, 0x42, 0x40, 0xec, 0x4a, 0x45, 0x33,
+0x4f, 0x55, 0xc, 0x4b, 0x51, 0x3c, 0x10,
+0x22, 0x27, 0xa4, 0xe1, 0x89, 0x3a, 0x90,
+0xe5, 0xe0, 0x97, 0x10, 0xe2, 0x89, 0x63,
+0x16, 0xb9, 0x59, 0x1e, 0xcb, 0xf2, 0xb0,
+0xe8, 0xbf, 0x7b, 0x5a, 0x8f, 0x67, 0xec,
+0xb0, 0x98, 0xb0, 0x4b, 0xed, 0x5b, 0xd8,
+0xbe, 0x4f, 0x33, 0xb9, 0x5, 0xb4, 0x4d,
+0x40, 0x91, 0x83, 0x5d, 0xc, 0x9b, 0x56,
+0x60, 0xa8, 0xdc, 0xf9, 0xdd, 0xfb, 0xb5,
+0x6, 0xcd, 0x6d, 0xc2, 0x44, 0x9a, 0xdd,
+0xf, 0x1a, 0xe0, 0x18, 0x62, 0xb0, 0x90,
+0xb1, 0xed, 0xa9, 0x11, 0xcb, 0x8c, 0x1,
+0xb2, 0x78, 0x62, 0x9a, 0x8f, 0x37, 0x2,
+0xac, 0xbc, 0xc5, 0x23, 0x36, 0xfd, 0xe,
+0x73, 0x15, 0x27, 0x1, 0x17, 0xc9, 0xc6,
+0xf5, 0x79, 0x80, 0xee, 0x68, 0x47, 0xb4,
+0x8f, 0xfd, 0xdb, 0x11, 0x1c, 0x7f, 0x3e,
+0xcd, 0x78, 0xdd, 0x7, 0x80, 0x55, 0xe7,
+0xbc, 0xfb, 0x11, 0xe1, 0xca, 0xcf, 0x65,
+0x75, 0x5c, 0x73, 0xf2, 0x28, 0x9b, 0x7a,
+0x24, 0xd0, 0x9f, 0x43, 0x85, 0xe4, 0x62,
+0x8d, 0x90, 0x53, 0xec, 0xcd, 0xba, 0xdc,
+0xc3, 0x96, 0x3e, 0x12, 0x22, 0xc, 0x52,
+0x59, 0x8c, 0xa3, 0x18, 0x86, 0x6b, 0xbe,
+0xc8, 0x65, 0x66, 0xe2, 0x6e, 0x1c, 0xfc,
+0x7b, 0x8c, 0xd5, 0xaa, 0xcc, 0xc2, 0xb9,
+0x3, 0x1e, 0xf2, 0x10, 0x92, 0x45, 0xf1,
+0xf0, 0xe0, 0xf, 0x68, 0x4a, 0x92, 0xf8,
+0x6d, 0x19, 0x83, 0xf9, 0xe7, 0xe9, 0xb2,
+0x47, 0x17, 0xd6, 0x39, 0x59, 0x55, 0xd3,
+0x96, 0xd0, 0xfd, 0xe7, 0xdc, 0xb7, 0x12,
+0x35, 0xbe, 0xaa, 0xb0, 0xc4, 0xe8, 0x83,
+0x25, 0xc0, 0x42, 0xc4, 0x42, 0xd9, 0x41,
+0x38, 0xcd, 0xcb, 0x86, 0x58, 0x83, 0x2c,
+0xef, 0xf4, 0x90, 0x95, 0x56, 0x6, 0x24,
+0x1, 0x5, 0x4c, 0xdc, 0xcd, 0x80, 0xa6,
+0xd6, 0x4, 0xc0, 0xd4, 0xc3, 0x42, 0x99,
+0x8c, 0xa4, 0x97, 0x98, 0x4f, 0xaf, 0x98,
+0x27, 0x47, 0x62, 0x9b, 0x25, 0x94, 0xaf,
+0x27, 0x61, 0x6c, 0x13, 0x7d, 0x5f, 0x1a,
+0x3d, 0x43, 0x3d, 0x49, 0x3e, 0x96, 0x1f,
+0x8d, 0xc3, 0x5c, 0x17, 0x3, 0x3c, 0xe,
+0xd, 0xc5, 0xf7, 0x21, 0x5c, 0xcc, 0x81,
+0x3c, 0x49, 0xfa, 0xfd, 0x1c, 0xc5, 0x7d,
+0x51, 0x34, 0x5d, 0xcd, 0x6a, 0x67, 0x7e,
+0x63, 0x9a, 0x57, 0xd3, 0x49, 0x94, 0xda,
+0x7b, 0xb1, 0xa7, 0xf, 0xc0, 0xcb, 0xe6,
+0x8a, 0x94, 0x2e, 0x6e, 0xc7, 0x49, 0xf8,
+0x7f, 0xea, 0xe2, 0xe3, 0xb3, 0x46, 0x19,
+0x5, 0xaf, 0x9f, 0x7e, 0x65, 0x42, 0xd8,
+0x18, 0xa4, 0xf2, 0x31, 0xa3, 0x1f, 0xb3,
+0x93, 0x8b, 0xe5, 0x5c, 0x5e, 0x44, 0xd3,
+0xc5, 0xce, 0xd0, 0xe, 0x4d, 0xe9, 0x70,
+0x4f, 0x57, 0xa4, 0x18, 0x5f, 0x26, 0xc,
+0x46, 0x74, 0x7e, 0xf4, 0x55, 0x5d, 0xc,
+0x16, 0xc9, 0xcc, 0xc5, 0xe9, 0x42, 0xfa,
+0x60, 0xbf, 0x62, 0x4f, 0x46, 0x38, 0x9c,
+0x2a, 0x26, 0x86, 0x73, 0xab, 0x24, 0x29,
+0x23, 0x49, 0x72, 0x9e, 0x8c, 0x97, 0xf2,
+0x5b, 0x54, 0xbe, 0xf8, 0x4, 0x1d, 0xa5,
+0xe7, 0x21, 0x9d, 0xa0, 0x5e, 0xf7, 0xbf,
+0x1c, 0xfe, 0xec, 0xee, 0x28, 0xac, 0x6,
+0x6e, 0xc6, 0x3a, 0x4f, 0xe4, 0xf3, 0xb5,
+0x27, 0x98, 0x28, 0x84, 0xef, 0x62, 0xf,
+0xc0, 0x14, 0x1c, 0xf6, 0x63, 0x88, 0xdf,
+0x2, 0xfb, 0x84, 0x76, 0x6a, 0x1f, 0x30,
+0x3e, 0x77, 0x79, 0x46, 0x9b, 0x24, 0x5b,
+0x63, 0x5e, 0x82, 0x7f, 0x43, 0x0, 0xdd,
+0x41, 0xc9, 0x61, 0xf6, 0x25, 0x38, 0xee,
+0x6b, 0xf, 0xcd, 0xa2, 0x19, 0xcd, 0x21,
+0x8e, 0x57, 0x94, 0xcb, 0xda, 0x87, 0x3a,
+0xe1, 0xf4, 0xc6, 0x91, 0xce, 0xf6, 0x85,
+0x92, 0xf6, 0xf9, 0x55, 0x84, 0x16, 0x7e,
+0x88, 0x69, 0x43, 0xbf, 0x9b, 0xd5, 0x14,
+0xc6, 0xf2, 0x86, 0xf2, 0x79, 0xae, 0xb8,
+0x1d, 0xf, 0xde, 0xcd, 0xf, 0xbf, 0x5f,
+0x18, 0x11, 0xd2, 0x83, 0xc1, 0x55, 0x77,
+0x6b, 0xdc, 0x13, 0x6d, 0x6e, 0x6, 0x76,
+0x9, 0xdc, 0xa2, 0xe5, 0x13, 0xe0, 0xa5,
+0x40, 0x30, 0xa7, 0x67, 0x85, 0x82, 0x92,
+0xec, 0xaa, 0xa1, 0x1, 0x32, 0x76, 0xd9,
+0x20, 0x21, 0xef, 0xe, 0xb, 0x51, 0xee,
+0xbd, 0xf1, 0xca, 0x7, 0x8b, 0x3d, 0xb0,
+0xca, 0xc1, 0x23, 0x4b, 0x2e, 0x4b, 0x55,
+0x1e, 0x82, 0xea, 0x5d, 0x9f, 0x4b, 0x77,
+0xc9, 0x7e, 0xb6, 0xe, 0x4b, 0xc6, 0x45,
+0x53, 0xa8, 0xfd, 0xcf, 0x8f, 0x66, 0x41,
+0x4a, 0x1, 0x79, 0x4f, 0x41, 0x53, 0x67,
+0xc2, 0x50, 0xc5, 0xfe, 0xea, 0x66, 0xab,
+0x63, 0xe4, 0xed, 0xaa, 0x78, 0xba, 0x59,
+0xef, 0x91, 0x15, 0xe7, 0xc1, 0xcf, 0x6b,
+0x0, 0xc3, 0x9, 0xba, 0x66, 0x7d, 0x3f,
+0x1a, 0x5c, 0x39, 0x89, 0xaf, 0x44, 0x7e,
+0x37, 0xe6, 0x8e, 0x5, 0x75, 0xd9, 0xcb,
+0xe8, 0x3c, 0x6, 0xc0, 0xca, 0xce, 0xba,
+0x27, 0x13, 0x58, 0x5e, 0x17, 0x86, 0x22,
+0xfd, 0x57, 0x29, 0xb5, 0x55, 0xb, 0xf7,
+0xdc, 0x7d, 0x6b, 0x4e, 0xd6, 0x4c, 0x39,
+0x10, 0x71, 0x1f, 0x55, 0xcd, 0x58, 0x5d,
+0x4e, 0x4e, 0x5a, 0xee, 0x80, 0x66, 0xae,
+0x6e, 0xe6, 0x4e, 0x8f, 0x97, 0xfd, 0x88,
+0xba, 0x92, 0xc4, 0x2e, 0x9a, 0xe, 0x15,
+0xff, 0xad, 0x1c, 0x21, 0xda, 0x5, 0x8d,
+0x6, 0x61, 0x54, 0x2e, 0x6, 0xb1, 0xd1,
+0xa1, 0xb, 0x87, 0xe, 0xf6, 0x95, 0x7f,
+0xa5, 0xf7, 0x1c, 0x24, 0xa7, 0x5f, 0xab,
+0xf7, 0x33, 0x26, 0x6e, 0xb3, 0x53, 0x3,
+0xd7, 0x8b, 0x24, 0x8a, 0x83, 0xfe, 0x21,
+0x7d, 0xcb, 0x55, 0x37, 0x34, 0x58, 0xdc,
+0x7a, 0x1d, 0x62, 0x2a, 0x79, 0xaf, 0x1d,
+0xe1, 0x97, 0xfb, 0xbe, 0x37, 0x1d, 0xa7,
+0xcd, 0x7f, 0x65, 0x9a, 0x5, 0x8d, 0x4e,
+0xe, 0x83, 0x66, 0x9d, 0xb8, 0xbf, 0x30,
+0x57, 0xe8, 0xbf, 0x8, 0x8d, 0x91, 0xa3,
+0x9b, 0xe4, 0xf6, 0x7, 0xd2, 0xc5, 0x14,
+0x0, 0x42, 0x6, 0xaa, 0xe8, 0x32, 0x8e,
+0x63, 0x99, 0x5c, 0x88, 0x6a, 0x3a, 0x50,
+0xb6, 0x40, 0xf9, 0x0, 0x63, 0xbc, 0x1b,
+0x9d, 0xcf, 0xa7, 0x39, 0x18, 0xab, 0x76,
+0x87, 0xa1, 0xad, 0x4b, 0xeb, 0x7d, 0x0,
+0xab, 0x45, 0x79, 0xb9, 0x17, 0x8b, 0x2a,
+0xf8, 0x1c, 0x1, 0x1a, 0x11, 0xda, 0xf2,
+0x8, 0x7e, 0x4, 0x66, 0x67, 0xc0, 0xb8,
+0xa3, 0x12, 0x4f, 0x57, 0xb2, 0x45, 0xda,
+0xbb, 0x93, 0x54, 0x5b, 0xc5, 0xaf, 0x2f,
+0xe5, 0x6a, 0x2c, 0xcc, 0x6a, 0x44, 0x9c,
+0xe5, 0x10, 0xba, 0x6, 0x27, 0x25, 0xe7,
+0x24, 0x31, 0x3a, 0xaf, 0x7d, 0xb1, 0x86,
+0x1e, 0xb1, 0xa9, 0x3c, 0xc8, 0xea, 0x9c,
+0xa6, 0x93, 0xf2, 0x45, 0x6a, 0xde, 0x13,
+0xfb, 0x6, 0x32, 0xd3, 0x4b, 0x4d, 0x83,
+0x76, 0x9, 0x12, 0xf2, 0x1e, 0xdc, 0xb2,
+0xae, 0x5d, 0x6a, 0x87, 0x5d, 0xbc, 0xd1,
+0x94, 0x8, 0xec, 0x1c, 0xf4, 0x61, 0x82,
+0x67, 0xa1, 0x33, 0x7c, 0x98, 0x3c, 0xfc,
+0x14, 0xdb, 0x4e, 0x0, 0x3f, 0x16, 0x5f,
+0x4b, 0x72, 0xe4, 0x89, 0xbc, 0xf4, 0x4c,
+0x99, 0x5f, 0x51, 0x4e, 0xfb, 0xb0, 0xaf,
+0x29, 0xf4, 0xe2, 0x30, 0x8e, 0x74, 0x5,
+0xc0, 0x45, 0xc1, 0xc2, 0xe, 0xde, 0x70,
+0x58, 0x9e, 0x80, 0x6d, 0x87, 0x49, 0x83,
+0xc2, 0xaa, 0x25, 0x46, 0x94, 0x8e, 0x23,
+0x21, 0x0, 0x3a, 0x43, 0xcf, 0x34, 0x34,
+0x1c, 0x42, 0x13, 0x3e, 0x10, 0xd4, 0x1d,
+0x35, 0xf3, 0x60, 0x26, 0xe5, 0x69, 0xbd,
+0x2c, 0x3c, 0xc6, 0xb, 0xb6, 0xa4, 0xd1,
+0x51, 0x22, 0x1, 0xac, 0xb2, 0xab, 0x84,
+0x21, 0xdd, 0x7e, 0x50, 0x8b, 0x11, 0x77,
+0x1, 0x32, 0x6, 0xd0, 0xf3, 0x7f, 0x28,
+0x2c, 0xb5, 0x7e, 0x83, 0x84, 0xc7, 0x41,
+0x5e, 0xc1, 0xd6, 0x14, 0x21, 0xcf, 0x84,
+0x69, 0xff, 0x1a, 0xf4, 0x3d, 0xca, 0x53,
+0x8b, 0x30, 0x83, 0x96, 0xc9, 0xef, 0xa1,
+0xc6, 0x9e, 0xc6, 0x7d, 0x55, 0x5d, 0xb7,
+0x7, 0x16, 0x4, 0x77, 0x12, 0xb2, 0xc5,
+0x55, 0xa0, 0x32, 0xc0, 0x1, 0xae, 0xdb,
+0x1, 0x9b, 0x8f, 0x81, 0xf2, 0xc7, 0xb1,
+0xef, 0x75, 0x87, 0x1, 0x5e, 0x8c, 0x75,
+0x7f, 0x42, 0x3, 0x45, 0x2f, 0x45, 0x15,
+0x69, 0xa6, 0x81, 0xd0, 0x31, 0x69, 0x30,
+0x7c, 0xc0, 0xc0, 0xa6, 0x24, 0xd5, 0xca,
+0xc2, 0xe0, 0x26, 0xee, 0xc7, 0xa0, 0x6b,
+0x83, 0xe0, 0x83, 0x6b, 0xee, 0xab, 0xa8,
+0xe4, 0x1e, 0x5f, 0x48, 0x54, 0xd4, 0x40,
+0x5c, 0xd, 0x2e, 0x63, 0xf4, 0xde, 0x9a,
+0x76, 0xb, 0xc1, 0x26, 0x73, 0x53, 0xfd,
+0x1b, 0xac, 0xf1, 0x60, 0x5a, 0x9d, 0xb6,
+0x7a, 0x54, 0x81, 0xcd, 0x31, 0xb5, 0xd9,
+0x66, 0x40, 0xae, 0x11, 0xc6, 0xf3, 0x93,
+0x8f, 0xfe, 0x28, 0x3, 0x8e, 0x20, 0x36,
+0xb7, 0x1f, 0xab, 0xd3, 0x99, 0xb9, 0x4c,
+0x5, 0x72, 0xfc, 0x16, 0xe1, 0x78, 0xb8,
+0xa4, 0x1b, 0x8c, 0xe2, 0xf7, 0x1e, 0x62,
+0x9e, 0x4b, 0x57, 0x2d, 0x47, 0x87, 0x34,
+0x55, 0xaa, 0x7f, 0xfd, 0x6b, 0x5e, 0x3a,
+0x3f, 0xc0, 0xb3, 0x69, 0xe8, 0x58, 0x11,
+0x3d, 0x7, 0xb, 0x79, 0x4c, 0xae, 0xc9,
+0x39, 0x87, 0x27, 0xba, 0x67, 0x79, 0xcd,
+0x2a, 0x78, 0x81, 0x47, 0x24, 0xaf, 0x83,
+0xc, 0xd, 0xfb, 0xe1, 0xc5, 0x1a, 0xc2,
+0x38, 0x36, 0xe6, 0xfa, 0x4f, 0xb3, 0xe4,
+0xa3, 0x1a, 0xc5, 0x9b, 0x16, 0x87, 0xb4,
+0x7f, 0xd2, 0x9d, 0xf5, 0xde, 0xba, 0x9d,
+0x13, 0xc, 0x75, 0x30, 0x48, 0xe6, 0x91,
+0x11, 0x98, 0x30, 0x6d, 0xa8, 0x9, 0xc5,
+0x76, 0x45, 0x64, 0x54, 0x8a, 0xa1, 0xd6,
+0xa0, 0xdd, 0x5f, 0x9e, 0x6b, 0x86, 0x49,
+0xbe, 0xf8, 0x99, 0xdf, 0x40, 0x5a, 0x18,
+0x2e, 0xe8, 0x98, 0x68, 0x2, 0xbc, 0xa6,
+0xfe, 0x15, 0xe9, 0x4a, 0x7, 0x9f, 0x18,
+0x34, 0x41, 0x9, 0x73, 0x47, 0xd7, 0x0,
+0x5, 0x99, 0x80, 0x4, 0x58, 0x3, 0x24,
+0x12, 0x59, 0x69, 0xcf, 0x2b, 0xb4, 0x11,
+0xd7, 0x8, 0xa6, 0xfa, 0x86, 0xb4, 0xe0,
+0x32, 0x5e, 0x9f, 0x8d, 0xbb, 0x91, 0xe3,
+0x83, 0x83, 0x8c, 0x26, 0x9e, 0x71, 0x26,
+0x8c, 0xbc, 0x3a, 0x84, 0x2a, 0xba, 0xe2,
+0x55, 0x75, 0xa8, 0x52, 0x9, 0x91, 0xeb,
+0xef, 0x8f, 0x6c, 0x2a, 0xa8, 0x88, 0x8a,
+0xc5, 0xd1, 0x5d, 0x4a, 0x5f, 0xe, 0xac,
+0xe2, 0xc9, 0xd3, 0x36, 0xf4, 0xa9, 0x1a,
+0x37, 0xbd, 0x1, 0xb9, 0x4, 0x4d, 0x86,
+0x8c, 0x4d, 0x6b, 0xce, 0x6a, 0x6c, 0xba,
+0x6c, 0x4d, 0xc5, 0x34, 0x54, 0x1d, 0xe5,
+0x61, 0x85, 0x6d, 0x53, 0xc3, 0xf8, 0x75,
+0x17, 0xad, 0xbc, 0xd4, 0x66, 0x76, 0x8a,
+0x84, 0xb6, 0xd7, 0x42, 0xaf, 0x9b, 0xaf,
+0xbd, 0xee, 0xaf, 0x51, 0xe5, 0x1c, 0x17,
+0x57, 0x66, 0x6e, 0xac, 0x93, 0x8d, 0xef,
+0xaf, 0xaf, 0xb4, 0xa1, 0x3, 0xfe, 0x82,
+0x86, 0xa6, 0xa6, 0xc4, 0x30, 0x17, 0x5c,
+0x90, 0x8e, 0xa1, 0x17, 0xa8, 0x92, 0x23,
+0x1d, 0xc, 0x57, 0xbc, 0x24, 0xcb, 0x7b,
+0x7c, 0x72, 0x93, 0x2a, 0xf0, 0x78, 0xf6,
+0xa6, 0x71, 0xb, 0x81, 0x2a, 0x41, 0x37,
+0xda, 0xfd, 0xc1, 0xc1, 0xc3, 0x5d, 0x29,
+0x59, 0x99, 0xe1, 0x78, 0x9d, 0x7e, 0x2c,
+0xba, 0xf7, 0xf5, 0x99, 0xb1, 0x2b, 0x51,
+0x26, 0xb5, 0x93, 0xae, 0x1e, 0xd1, 0x94,
+0xdf, 0x30, 0x55, 0x10, 0xa4, 0xe6, 0xb9,
+0x33, 0x74, 0xb2, 0x4c, 0x5e, 0xdf, 0x83,
+0xf1, 0xd4, 0x2c, 0x3e, 0x46, 0x55, 0xed,
+0xb, 0x16, 0x71, 0xb2, 0xf7, 0xac, 0x69,
+0x3d, 0x7b, 0x31, 0x70, 0xf9, 0xc3, 0x38,
+0xdc, 0x8d, 0xaa, 0x56, 0x81, 0x2c, 0x21,
+0x3c, 0xb5, 0x16, 0x5c, 0x98, 0xfe, 0x53,
+0x6c, 0x7d, 0x8b, 0x3c, 0xc9, 0x35, 0x1f,
+0x8, 0xd2, 0x41, 0x4e, 0x2b, 0x7, 0xaa,
+0xde, 0x85, 0xc4, 0x77, 0xe5, 0xfb, 0xec,
+0x7f, 0x48, 0x6a, 0x94, 0x73, 0xbf, 0xa3,
+0x77, 0x34, 0xb7, 0xe3, 0x90, 0xa6, 0x99,
+0xb8, 0x2f, 0x7d, 0x0, 0xef, 0x5f, 0xd7,
+0xa7, 0x10, 0x16, 0xf9, 0xd5, 0x98, 0x79,
+0xd4, 0x49, 0x57, 0xf0, 0x4b, 0x70, 0xed,
+0x2f, 0x81, 0x53, 0x35, 0x1d, 0xef, 0x82,
+0xa7, 0x15, 0xcb, 0x69, 0x59, 0x90, 0x1d,
+0x5c, 0x58, 0xc2, 0x1c, 0x73, 0x2a, 0x5a,
+0xd4, 0x13, 0x6e, 0xa, 0x15, 0xc0, 0xc5,
+0x64, 0xea, 0xd1, 0xf1, 0x14, 0x62, 0x97,
+0xb1, 0x7e, 0x8c, 0xa0, 0x8c, 0xbd, 0xe3,
+0x6b, 0x11, 0x71, 0xb0, 0xff, 0xf7, 0xe0,
+0xa, 0x2d, 0xaa, 0x8, 0x64, 0x65, 0x6b,
+0x32, 0xe5, 0x87, 0x40, 0x4d, 0x87, 0xa7,
+0xb3, 0x8b, 0x26, 0x79, 0xd, 0xed, 0x99,
+0x5c, 0xae, 0x4e, 0x2b, 0x5d, 0x21, 0xb6,
+0xc4, 0xf0, 0x1b, 0x47, 0xc4, 0xcc, 0xc3,
+0x62, 0xc3, 0x77, 0x54, 0x45, 0x4, 0x66,
+0x99, 0xeb, 0x51, 0x44, 0x6e, 0xb9, 0x7c,
+0xd5, 0x90, 0x68, 0xa8, 0x77, 0xcf, 0x3e,
+0xe6, 0x20, 0xc9, 0xbc, 0x2f, 0xf1, 0x91,
+0x11, 0xc, 0x36, 0x12, 0xec, 0xd6, 0xcb,
+0xfe, 0xcf, 0x38, 0x5, 0x39, 0x9e, 0x9,
+0xae, 0x54, 0x25, 0x78, 0xa9, 0x64, 0xc4,
+0xd1, 0x83, 0x45, 0xac, 0x73, 0xdd, 0x96,
+0x88, 0x52, 0x7, 0xf, 0x6e, 0x2d, 0xa4,
+0x0, 0xc3, 0xbd, 0xd2, 0xcc, 0xd1, 0xb0,
+0xd2, 0x9d, 0xf4, 0xc6, 0xbe, 0xcd, 0x95,
+0x11, 0xed, 0x62, 0x4, 0x8, 0x23, 0x5,
+0x88, 0xc7, 0x3d, 0x76, 0x81, 0x5, 0x9a,
+0x6f, 0x5a, 0x2a, 0xd6, 0xbb, 0x7c, 0x3,
+0x34, 0xea, 0x35, 0x9b, 0x75, 0x6c, 0x44,
+0x18, 0xb0, 0x61, 0xd6, 0x6c, 0x6e, 0xf9,
+0xfd, 0x12, 0x9c, 0x17, 0xc3, 0x89, 0x16,
+0x3d, 0x8d, 0x6, 0x47, 0x5d, 0x99, 0xc9,
+0x9a, 0x7c, 0xdf, 0xb3, 0xc2, 0x5f, 0x4,
+0xf2, 0xf3, 0xb7, 0x72, 0xf8, 0x3, 0x4c,
+0xe1, 0x53, 0x18, 0x13, 0x5f, 0xbd, 0x74,
+0x9f, 0xa1, 0xc9, 0xa8, 0x5, 0x4c, 0xb6,
+0x9d, 0xa1, 0xd5, 0x29, 0xec, 0x44, 0x7a,
+0x61, 0xe8, 0x74, 0x12, 0x30, 0x32, 0xa4,
+0x1f, 0x32, 0xaf, 0x44, 0x4, 0xe3, 0x8,
+0x94, 0xbd, 0x13, 0x9f, 0x19, 0x12, 0x68,
+0x87, 0x2e, 0x9c, 0xa0, 0xe5, 0x5a, 0xd,
+0x4d, 0x88, 0x8f, 0x3b, 0xfb, 0x7c, 0xd6,
+0xf7, 0x76, 0x7c, 0x69, 0x9c, 0x41, 0x8c,
+0xa0, 0xeb, 0x3c, 0x2a, 0xdd, 0xbd, 0x26,
+0x85, 0x61, 0xd2, 0x80, 0x25, 0xa1, 0xdc,
+0xc7, 0x92, 0xd7, 0xe6, 0xa9, 0xdf, 0x6c,
+0xf3, 0x64, 0xc3, 0x93, 0xaf, 0xef, 0xe8,
+0xd1, 0xc4, 0x23, 0x1a, 0xe1, 0xa0, 0xac,
+0xc2, 0x9c, 0x3e, 0x54, 0xaf, 0x7a, 0xe1,
+0x67, 0xe1, 0x2b, 0x9d, 0xa, 0xa4, 0xe9,
+0x6, 0x2, 0xfa, 0x98, 0xd, 0xd8, 0xdf,
+0x37, 0xa6, 0x21, 0xe2, 0x8b, 0xd0, 0xe0,
+0x27, 0xee, 0xa0, 0x9b, 0xf0, 0xc9, 0xe,
+0xfc, 0xad, 0x8, 0x9f, 0x5e, 0x8b, 0x2d,
+0xf0, 0x45, 0x45, 0x55, 0x29, 0xd1, 0xe3,
+0xb3, 0x95, 0x81, 0x0, 0x86, 0x44, 0x36,
+0x99, 0x78, 0x3e, 0x76, 0xb7, 0xa, 0x88,
+0xda, 0xb6, 0x6f, 0xb6, 0xd2, 0xcd, 0xe0,
+0x41, 0x8d, 0x49, 0x49, 0x7b, 0x36, 0xa0,
+0x52, 0x22, 0x51, 0xa8, 0xb7, 0xd0, 0x4f,
+0x20, 0xef, 0xb, 0xf6, 0x7d, 0x6b, 0x10,
+0xde, 0x6e, 0xaf, 0xe8, 0x4a, 0xe6, 0x91,
+0xea, 0x2b, 0x7f, 0x7d, 0x97, 0x98, 0xb6,
+0xcb, 0x9a, 0x31, 0x76, 0x78, 0xeb, 0x9,
+0x10, 0xed, 0x27, 0x29, 0xcd, 0xe6, 0x34,
+0x48, 0x9e, 0xb9, 0x3f, 0x89, 0xc, 0x93,
+0x65, 0xc0, 0x5, 0x8, 0x2b, 0x5c, 0x82,
+0x77, 0x4e, 0x46, 0xdd, 0x7e, 0x5e, 0x42,
+0xe0, 0x43, 0xb8, 0x30, 0xd8, 0xb, 0xfc,
+0xab, 0xb2, 0x35, 0x55, 0x50, 0x1c, 0xfa,
+0xc6, 0x6, 0xaf, 0xff, 0xfe, 0xeb, 0x64,
+0x3, 0x5, 0x6e, 0x33, 0x19, 0x57, 0xb0,
+0x4f, 0xc6, 0x86, 0x99, 0x1b, 0x3e, 0x9c,
+0xb2, 0xb3, 0xf9, 0x2c, 0xba, 0xaf, 0xbb,
+0xe6, 0x87, 0x63, 0x2b, 0xd7, 0x22, 0xa0,
+0x79, 0xce, 0x17, 0x9f, 0x45, 0x68, 0x3b,
+0xd6, 0x55, 0xf1, 0xe0, 0x22, 0x9c, 0x25,
+0x9a, 0x5b, 0xa5, 0xd1, 0xcd, 0x8f, 0x2c,
+0x3c, 0x35, 0x93, 0x36, 0x66, 0x3a, 0x32,
+0xa1, 0x43, 0x3, 0xd4, 0xe3, 0xf3, 0xbe,
+0xdd, 0x36, 0xd7, 0x1c, 0xdb, 0xf9, 0x33,
+0xab, 0x59, 0x3c, 0x18, 0xb1, 0x79, 0xd5,
+0x24, 0x7, 0x70, 0xd0, 0x43, 0xf6, 0xf7,
+0x61, 0x72, 0xef, 0xc5, 0x8e, 0x7b, 0xd0,
+0x92, 0x7b, 0x6a, 0x4d, 0x98, 0x43, 0xf6,
+0xfa, 0xb2, 0x4d, 0xde, 0x1f, 0xbf, 0xe2,
+0x69, 0x75, 0x9d, 0x3a, 0x12, 0x24, 0xe6,
+0xf2, 0xd0, 0xb2, 0x6e, 0x35, 0x43, 0x1c,
+0x14, 0xc6, 0x7f, 0xa4, 0x5d, 0x6f, 0x80,
+0xfe, 0x64, 0x60, 0x88, 0xbe, 0x74, 0x85,
+0x88, 0x24, 0x6, 0xe2, 0xe5, 0xb5, 0xdc,
+0xc7, 0x4b, 0x16, 0xcc, 0x11, 0xec, 0xb5,
+0xbc, 0x31, 0xc8, 0xa3, 0x24, 0x13, 0x16,
+0xe6, 0xa5, 0xdb, 0x14, 0x9b, 0x75, 0x25,
+0x9, 0xc8, 0x28, 0x68, 0xa6, 0x8c, 0x7f,
+0x80, 0x5c, 0x48, 0x70, 0x47, 0x1e, 0x6a,
+0x14, 0x17, 0xbc, 0x84, 0x16, 0xb7, 0x7,
+0x5f, 0x25, 0x3a, 0x7d, 0x6f, 0x3, 0x8f,
+0xe8, 0xb7, 0x1c, 0x14, 0xff, 0x73, 0xc8,
+0xd4, 0x94, 0x3c, 0x37, 0x77, 0xec, 0x8f,
+0x95, 0xf4, 0xf3, 0x8a, 0x0, 0x4, 0x8a,
+0x3e, 0xb5, 0x77, 0xc0, 0x7b, 0x5f, 0x7b,
+0xb3, 0xe0, 0xe8, 0xd4, 0x9a, 0xfd, 0x90,
+0xb6, 0x61, 0xe7, 0x61, 0x9, 0x80, 0xfd,
+0x47, 0x68, 0xb0, 0x28, 0x92, 0x94, 0x3a,
+0x3e, 0xcd, 0x1b, 0x3e, 0xed, 0xc0, 0xc0,
+0x24, 0x14, 0x9a, 0xce, 0x32, 0x46, 0xe3,
+0x6d, 0xef, 0x29, 0xa0, 0x8b, 0x14, 0xc,
+0x8a, 0x7b, 0x2f, 0xde, 0xba, 0xb6, 0x4e,
+0xf4, 0x46, 0x39, 0xe5, 0x2c, 0x76, 0xa1,
+0x9d, 0xf2, 0x64, 0xfa, 0xbc, 0xac, 0x7a,
+0x9d, 0xef, 0x8, 0x38, 0xc, 0xaf, 0xc,
+0xff, 0xd3, 0x3a, 0x58, 0x9c, 0xdb, 0xae,
+0x7c, 0x16, 0x36, 0x45, 0xba, 0x4f, 0xd1,
+0xcf, 0xbf, 0x3a, 0x5a, 0x99, 0xf8, 0x66,
+0x65, 0x7a, 0xcb, 0x93, 0xad, 0xba, 0x40,
+0x66, 0x60, 0xb5, 0x32, 0x10, 0x88, 0xe5,
+0xd5, 0xc5, 0xfe, 0xf3, 0x18, 0xa4, 0x62,
+0xff, 0x3, 0x9, 0x9a, 0xf6, 0x13, 0x1d,
+0x1d, 0x6f, 0xa1, 0xf9, 0xa9, 0xe0, 0x21,
+0x40, 0x57, 0x59, 0x4f, 0x52, 0xa5, 0x22,
+0xb1, 0x30, 0xa8, 0xa1, 0x55, 0x5f, 0x82,
+0x2d, 0xf4, 0x58, 0x94, 0x77, 0x3f, 0x7b,
+0xaf, 0x30, 0xaf, 0x91, 0xcd, 0xb0, 0x63,
+0x60, 0x80, 0x9f, 0xf3, 0xd9, 0xb2, 0xd,
+0x15, 0xc5, 0xab, 0xa4, 0x18, 0xa5, 0x5c,
+0x9b, 0x2a, 0x3e, 0x5f, 0x52, 0x26, 0xa2,
+0x71, 0xe, 0x64, 0xcb, 0xb0, 0x59, 0x9d,
+0x1a, 0x65, 0xa4, 0x8a, 0x7, 0xcd, 0x6a,
+0x31, 0xe8, 0xf9, 0x1, 0x41, 0x7e, 0x69,
+0x98, 0x55, 0x4a, 0xee, 0xcc, 0x28, 0x35,
+0x23, 0x38, 0xd7, 0xeb, 0xe6, 0x41, 0x91,
+0x5e, 0xf8, 0xa8, 0x25, 0x67, 0x44, 0x75,
+0xd, 0xaf, 0x0, 0xff, 0x83, 0xd2, 0xd2,
+0xc2, 0xd4, 0xf7, 0xbb, 0xcd, 0x87, 0x84,
+0xe1, 0x90, 0x0, 0xfb, 0x85, 0xd1, 0x12,
+0xac, 0x36, 0x72, 0xb6, 0x57, 0xae, 0x41,
+0x47, 0x1e, 0x1, 0x5d, 0x38, 0x48, 0xb2,
+0x6e, 0xd9, 0xe4, 0xda, 0x9b, 0xba, 0xcc,
+0xf5, 0x7, 0x91, 0xf6, 0xb0, 0xe8, 0x1d,
+0x4c, 0x88, 0x6e, 0x28, 0xf2, 0x1b, 0x3d,
+0xe0, 0x33, 0xd1, 0xdd, 0x4b, 0x68, 0xd7,
+0x8f, 0xcd, 0xc9, 0x43, 0x74, 0x36, 0x69,
+0xa7, 0xe9, 0x2d, 0xa6, 0x75, 0x59, 0xb,
+0x49, 0x24, 0x27, 0xb6, 0x1d, 0xc9, 0xa,
+0x4, 0x61, 0xce, 0x6e, 0x8b, 0x0, 0x88,
+0x72, 0x46, 0x40, 0xaa, 0xc5, 0x92, 0xf2,
+0x2e, 0xf, 0x29, 0x9d, 0xc9, 0xa3, 0x5b,
+0x39, 0xe5, 0xde, 0xf1, 0x26, 0x2a, 0xd4,
+0x1a, 0x1e, 0x1c, 0x33, 0x20, 0x58, 0x6e,
+0x2b, 0xd9, 0xf4, 0x81, 0x77, 0xcd, 0x47,
+0xba, 0x98, 0x2c, 0x2f, 0xf5, 0x9, 0x8d,
+0xe5, 0xd0, 0xa2, 0x9f, 0x11, 0x4, 0xf9,
+0xc2, 0x5e, 0xe8, 0x66, 0xa9, 0x66, 0xb5,
+0xee, 0x12, 0x2d, 0x43, 0x85, 0xa3, 0x57,
+0x9a, 0x7a, 0x29, 0xc3, 0x6a, 0x65, 0xca,
+0xa2, 0x3b, 0x34, 0x84, 0x35, 0xd8, 0x39,
+0xda, 0x71, 0xb6, 0xd0, 0xda, 0xe9, 0x4,
+0x3e, 0x95, 0x3, 0x72, 0x6e, 0x4b, 0x4d,
+0x58, 0x97, 0x1b, 0x4c, 0x31, 0xb2, 0x5d,
+0xf, 0x3b, 0x44, 0x4, 0x0, 0x8c, 0x9f,
+0xfa, 0x40, 0x3d, 0x8f, 0xa4, 0x70, 0x4b,
+0x38, 0x69, 0xcf, 0x4f, 0xc, 0xd5, 0xc7,
+0x2a, 0x24, 0xec, 0xb6, 0x5d, 0x6, 0xcd,
+0x69, 0x88, 0x41, 0x27, 0x37, 0xc3, 0x23,
+0x43, 0x87, 0x28, 0x70, 0x31, 0x74, 0x77,
+0x8b, 0xca, 0x4b, 0x73, 0x4a, 0x33, 0xbb,
+0xb7, 0xa0, 0x68, 0xe6, 0x27, 0x1e, 0x6d,
+0xc5, 0xf5, 0x49, 0x74, 0x5e, 0x7c, 0xbe,
+0xb1, 0x25, 0x5b, 0x2, 0x91, 0x8f, 0xde,
+0x35, 0x5d, 0x5b, 0xfd, 0xc0, 0xe0, 0x3d,
+0x7e, 0x5b, 0x56, 0x1a, 0x15, 0x77, 0x69,
+0x1, 0x7b, 0x2d, 0x4e, 0x86, 0xb9, 0x1b,
+0x5a, 0x1d, 0xc4, 0x4e, 0x7f, 0x5, 0x31,
+0x58, 0x2c, 0xf5, 0xdd, 0xeb, 0xb8, 0x2d,
+0x4e, 0x5c, 0xa2, 0xc0, 0x94, 0x60, 0xde,
+0xc0, 0x2c, 0xb7, 0x1b, 0x9d, 0xff, 0x15,
+0x99, 0x9d, 0x34, 0x84, 0x8e, 0xf8, 0x32,
+0xa, 0xb4, 0xc3, 0xe4, 0x8c, 0xf6, 0x9e,
+0x5f, 0xc1, 0xde, 0x71, 0x85, 0xe7, 0xc8,
+0x8f, 0x77, 0x5b, 0xf4, 0x69, 0x50, 0xcf,
+0x86, 0xda, 0x9a, 0x52, 0x11, 0x1e, 0x9d,
+0x93, 0xb2, 0xb7, 0x5, 0x4a, 0x3b, 0xf3,
+0x30, 0xd9, 0x6d, 0xe0, 0x6f, 0x50, 0x28,
+0xcd, 0x8, 0x1a, 0x99, 0x3e, 0x7e, 0xd3,
+0x90, 0x97, 0x66, 0xb9, 0x3a, 0x97, 0xb2,
+0xb5, 0xea, 0x6d, 0x28, 0xa9, 0x35, 0x50,
+0x0, 0x12, 0x94, 0xc5, 0xd3, 0xcc, 0x4b,
+0x52, 0x7d, 0x2a, 0x2e, 0x92, 0x19, 0xde,
+0x61, 0xf8, 0x21, 0x33, 0x13, 0xc5, 0x3,
+0x7f, 0x33, 0x3, 0x13, 0x2e, 0xa7, 0x9f,
+0x38, 0xe9, 0x5c, 0xd, 0xa3, 0xda, 0x4f,
+0xd9, 0xb3, 0x5f, 0x9, 0xdd, 0x58, 0xa2,
+0x80, 0x20, 0x89, 0x30, 0x14, 0x34, 0xb5,
+0x5, 0x71, 0x84, 0x25, 0x68, 0x24, 0x37,
+0x30, 0x53, 0x19, 0xa1, 0xe0, 0xac, 0x52,
+0x65, 0x49, 0x5e, 0x3b, 0xca, 0xcc, 0xb7,
+0xc3, 0xe2, 0xce, 0xfb, 0x90, 0x42, 0x1e,
+0xbe, 0x94, 0xb0, 0xa1, 0x19, 0x8f, 0xde,
+0x5, 0xde, 0x69, 0x16, 0x39, 0x72, 0x4e,
+0x94, 0x45, 0x6a, 0xe4, 0xf1, 0x30, 0x25,
+0xc1, 0xd5, 0xf, 0xcb, 0xe7, 0xa1, 0x31,
+0x66, 0x4b, 0xae, 0x36, 0x7b, 0xfd, 0x88,
+0x48, 0x25, 0x44, 0xd7, 0x85, 0xeb, 0xce,
+0xcd, 0x2b, 0xec, 0x63, 0x82, 0xbf, 0xc5,
+0x17, 0xb9, 0x5, 0xb, 0x14, 0x9, 0x1f,
+0x98, 0xb6, 0x6, 0x38, 0xc8, 0x20, 0x58,
+0x4, 0xc7, 0xf8, 0x95, 0xc8, 0xaa, 0xee,
+0x1f, 0x88, 0x2f, 0xc1, 0x3f, 0x4f, 0x3d,
+0x7b, 0x4a, 0xdd, 0xfc, 0x11, 0x2a, 0xaf,
+0x11, 0xd, 0xbf, 0xe6, 0xd3, 0xa3, 0x2c,
+0xd1, 0x2b, 0xb9, 0x7a, 0xaa, 0xad, 0xc6,
+0x2d, 0xbb, 0x22, 0x84, 0x98, 0x2, 0x4d,
+0x1f, 0x37, 0x6b, 0x86, 0xd7, 0xdd, 0xbc,
+0x1f, 0x69, 0x44, 0x87, 0x70, 0xe, 0x3f,
+0x4e, 0xe, 0x76, 0xdb, 0x18, 0x4a, 0x8e,
+0x3d, 0x65, 0x3b, 0xae, 0x7e, 0xca, 0x6c,
+0x8d, 0x7f, 0x6a, 0xf9, 0x38, 0xf6, 0x25,
+0x55, 0xc1, 0xd8, 0x4c, 0xd0, 0xb6, 0x2c,
+0x8e, 0x15, 0xa, 0x88, 0x63, 0xd3, 0xda,
+0xda, 0xab, 0xf3, 0x22, 0x9d, 0xd1, 0x26,
+0x1b, 0x13, 0x3d, 0x9d, 0x90, 0x3b, 0xd6,
+0xb9, 0x92, 0xfd, 0x21, 0x5f, 0xb2, 0xb8,
+0xe6, 0xa6, 0xd7, 0xb9, 0x29, 0x13, 0x5e,
+0xa3, 0x22, 0x1c, 0x31, 0xc2, 0xd6, 0xd7,
+0xa9, 0x5a, 0x14, 0xf6, 0x4, 0x7f, 0xba,
+0x92, 0x49, 0x41, 0x4c, 0x14, 0xb1, 0xe,
+0x26, 0xc0, 0x6c, 0xa9, 0xe3, 0x8c, 0xf7,
+0xd3, 0xa8, 0x1f, 0x2, 0xd6, 0xc0, 0x1a,
+0xf1, 0x5f, 0x7e, 0xd2, 0x13, 0xb5, 0xd2,
+0xb1, 0xf9, 0x44, 0x57, 0x9d, 0xd1, 0x1d,
+0xb6, 0x55, 0x20, 0x2a, 0x68, 0x52, 0xaf,
+0xa9, 0x6e, 0x28, 0x41, 0x9, 0x2b, 0xe8,
+0x49, 0x6d, 0x13, 0x32, 0x83, 0xd8, 0x1d,
+0x86, 0xf2, 0x73, 0x53, 0xcb, 0x89, 0x92,
+0xf1, 0xd8, 0x8e, 0xab, 0xab, 0xce, 0x32,
+0xe5, 0x8e, 0xda, 0xab, 0xbe, 0xcd, 0x8b,
+0x9c, 0xe0, 0xd0, 0x23, 0xfc, 0x1e, 0x1f,
+0xf9, 0x94, 0x4f, 0x26, 0xa2, 0x86, 0xfe,
+0x26, 0x50, 0x51, 0xf6, 0xdd, 0x1b, 0x7f,
+0x7c, 0x13, 0xe8, 0xcc, 0x91, 0x77, 0x1f,
+0xe7, 0xc0, 0x54, 0x2a, 0xe9, 0x60, 0xf3,
+0x8b, 0x8e, 0x58, 0x2a, 0x24, 0x15, 0x0,
+0x48, 0xa3, 0x9c, 0x68, 0xa3, 0x6a, 0x21,
+0x89, 0xf1, 0x62, 0x92, 0xa8, 0x78, 0x18,
+0x3e, 0x95, 0x62, 0x2b, 0xfa, 0x76, 0xa1,
+0xa1, 0xfb, 0xed, 0x16, 0x89, 0xef, 0x74,
+0xbb, 0x16, 0xef, 0x78, 0x9c, 0x4, 0xb2,
+0x51, 0xe1, 0x15, 0x5f, 0xf3, 0xd5, 0x21,
+0xf8, 0x54, 0x76, 0xfd, 0xda, 0xd9, 0x70,
+0x81, 0xd2, 0x45, 0x29, 0x8, 0xf8, 0xfd,
+0x21, 0x56, 0x82, 0x59, 0x5, 0x70, 0x29,
+0xe9, 0x1, 0x55, 0xb6, 0xc5, 0x53, 0xee,
+0x30, 0x18, 0xa7, 0xae, 0x9f, 0xc4, 0x2c,
+0xd, 0x4d, 0x13, 0x9, 0x48, 0xde, 0x91,
+0xcf, 0x3, 0xdd, 0xf5, 0xe8, 0xb3, 0x50,
+0x82, 0x99, 0x75, 0x83, 0x72, 0x55, 0xb2,
+0x6b, 0x95, 0x1e, 0xeb, 0x5a, 0x2c, 0xd1,
+0xc3, 0x38, 0xc8, 0xd5, 0x5f, 0x2d, 0x3e,
+0xd9, 0xc, 0xea, 0xc7, 0xb8, 0x5c, 0x9,
+0x24, 0x21, 0xbd, 0x2a, 0x31, 0x75, 0x94,
+0xe7, 0x8, 0x35, 0x25, 0x5a, 0xf, 0x25,
+0x59, 0xfe, 0xf7, 0x96, 0x75, 0x5b, 0xd1,
+0xd6, 0x91, 0x3b, 0xcf, 0x6d, 0x5f, 0xbd,
+0x40, 0x59, 0x5e, 0xbe, 0xde, 0xf, 0x36,
+0x97, 0x85, 0x9e, 0xa6, 0x95, 0xf6, 0xa0,
+0x18, 0x44, 0xaf, 0x56, 0x8c, 0x65, 0x48,
+0x81, 0x91, 0xfe, 0x87, 0x60, 0x7, 0xa9,
+0x91, 0xb7, 0xed, 0xb5, 0x7c, 0x63, 0x1d,
+0x84, 0x51, 0xd7, 0x15, 0x0, 0xda, 0xa0,
+0x39, 0x96, 0xb6, 0x4d, 0x3a, 0x3c, 0x7b,
+0xd9, 0xe3, 0x7a, 0x6, 0x31, 0x62, 0x17,
+0xfe, 0x84, 0x5f, 0x59, 0xed, 0xa2, 0x45,
+0x6, 0xda, 0x41, 0xa9, 0x0, 0xca, 0x60,
+0x62, 0x77, 0x27, 0xdf, 0x9a, 0xa, 0x64,
+0xc4, 0x7d, 0xbe, 0x8, 0x98, 0x6b, 0xd7,
+0x67, 0xe1, 0xca, 0x90, 0x24, 0xc4, 0x34,
+0xa5, 0x84, 0x9f, 0xc9, 0xa, 0xdd, 0x36,
+0xd1, 0x58, 0x94, 0xcf, 0x68, 0xf7, 0x4b,
+0xfd, 0x1f, 0x9a, 0x7f, 0xc0, 0x9c, 0xa0,
+0x63, 0x5d, 0x3f, 0x27, 0x60, 0x33, 0x13,
+0xef, 0x6d, 0x58, 0xd8, 0x9d, 0x75, 0xfc,
+0x9d, 0x73, 0x89, 0xb3, 0x4, 0x8, 0xe,
+0x79, 0x8f, 0xe8, 0xfa, 0xde, 0xd8, 0x94,
+0x21, 0x97, 0x22, 0x37, 0x2b, 0xdb, 0xe9,
+0x2, 0x9f, 0x7, 0xa7, 0xe4, 0xad, 0x79,
+0x51, 0xe3, 0xcd, 0x92, 0xeb, 0x72, 0x1b,
+0xf1, 0x3d, 0x3f, 0xf4, 0x16, 0xa3, 0x40,
+0x50, 0x2, 0x8f, 0xcf, 0x2, 0xfc, 0x33,
+0x61, 0x11, 0xea, 0xfb, 0x37, 0x1, 0xbe,
+0xa1, 0xc6, 0xee, 0xe8, 0x37, 0x84, 0xd1,
+0x9c, 0xfe, 0xbf, 0x23, 0x98, 0x60, 0xb3,
+0x49, 0x71, 0x1e, 0xfa, 0xbf, 0x90, 0x73,
+0x8f, 0x41, 0xc0, 0xef, 0x70, 0x46, 0xa2,
+0x9d, 0x4c, 0x22, 0x92, 0x90, 0xae, 0xd8,
+0xee, 0x2a, 0xe2, 0x24, 0xfa, 0x75, 0xe7,
+0x63, 0x1a, 0xaa, 0xfa, 0xcf, 0xdc, 0x54,
+0x1f, 0x73, 0x63, 0xe3, 0xf9, 0x5e, 0x73,
+0xff, 0x11, 0xd2, 0x39, 0x1a, 0xa, 0x38,
+0x56, 0x3e, 0xa0, 0xaa, 0xf6, 0x72, 0x4c,
+0x36, 0x1a, 0xf, 0xd7, 0xe2, 0x91, 0x46,
+0xe6, 0xaa, 0xe2, 0xdc, 0x3f, 0xf0, 0xac,
+0x0, 0x98, 0x32, 0xcc, 0x3a, 0x4a, 0xa8,
+0xab, 0x8b, 0xa6, 0xfd, 0x59, 0xd, 0xed,
+0x1, 0xc7, 0xee, 0x38, 0x80, 0xb3, 0x52,
+0x9e, 0x8, 0x69, 0x44, 0xf9, 0x7, 0x4b,
+0xf6, 0xf7, 0xb4, 0x34, 0xa8, 0xa1, 0xfa,
+0x36, 0xf2, 0x96, 0xf0, 0xf5, 0xc4, 0x8f,
+0x29, 0x80, 0x8c, 0x3e, 0xa1, 0x15, 0x6a,
+0xb6, 0x33, 0xfe, 0x91, 0x4a, 0x4d, 0x8c,
+0x5f, 0x8, 0xdf, 0x5c, 0xb3, 0xda, 0x4b,
+0xb3, 0xa5, 0xad, 0xcb, 0xec, 0x19, 0xc9,
+0xf0, 0xe2, 0x93, 0xc9, 0x1f, 0x5f, 0xc3,
+0xed, 0x9d, 0x3f, 0x52, 0x20, 0x4a, 0x5a,
+0x10, 0x46, 0x72, 0xc8, 0x1, 0xa7, 0x43,
+0xed, 0x58, 0x87, 0xd4, 0x96, 0xf1, 0x61,
+0xea, 0xce, 0xbd, 0x42, 0xa3, 0x1c, 0xf,
+0x67, 0xb6, 0xb5, 0x75, 0xe6, 0x7a, 0xad,
+0x70, 0x9f, 0x25, 0x99, 0x0, 0xd3, 0x19,
+0x15, 0xc4, 0x17, 0xe0, 0xe6, 0xb1, 0x81,
+0xbc, 0xd9, 0x34, 0xc4, 0x96, 0x9e, 0x6,
+0xf4, 0x89, 0xfe, 0x28, 0xac, 0x51, 0x8,
+0x1c, 0x60, 0x1b, 0x5, 0x8b, 0x1b, 0x79,
+0x2, 0x74, 0xb9, 0xa7, 0x55, 0x6f, 0x7a,
+0x94, 0xc7, 0x5a, 0x84, 0x6d, 0x6a, 0x3e,
+0x19, 0xe, 0xd1, 0xe9, 0x76, 0xf5, 0x5d,
+0x6a, 0x7e, 0x3c, 0x3c, 0x3b, 0xb3, 0x73,
+0x28, 0x5a, 0x89, 0xa2, 0x33, 0x42, 0x67,
+0xf, 0xd, 0x33, 0x1a, 0x1a, 0xf6, 0xfe,
+0x3c, 0x3a, 0xf2, 0xd7, 0x6d, 0x67, 0x40,
+0xfc, 0x70, 0xde, 0xc1, 0xf6, 0x46, 0xa2,
+0x36, 0xde, 0xb1, 0x19, 0x2a, 0x3e, 0x39,
+0xb, 0xa7, 0xf9, 0x42, 0x69, 0xc0, 0xd9,
+0xfc, 0xfb, 0x56, 0xe7, 0x73, 0x3e, 0xf8,
+0xd8, 0x92, 0xe7, 0xfa, 0xe, 0x6c, 0x9d,
+0x81, 0x2, 0x7f, 0xe6, 0x2f, 0x1e, 0x6f,
+0x59, 0x81, 0x7c, 0xe8, 0x10, 0x34, 0x76,
+0x4, 0x57, 0x56, 0xed, 0x15, 0x20, 0x4b,
+0x4e, 0x16, 0x2c, 0x99, 0x57, 0xdb, 0xd,
+0x18, 0xf7, 0xaa, 0xd3, 0x89, 0x24, 0x50,
+0x18, 0x32, 0xf, 0x75, 0xea, 0x10, 0x5,
+0xe9, 0x1b, 0xfb, 0x6c, 0x6c, 0xf, 0xf1,
+0x27, 0x83, 0x1f, 0x13, 0x91, 0x69, 0xe7,
+0x9f, 0x60, 0xc4, 0x93, 0x7c, 0xe0, 0x37,
+0x30, 0x8b, 0x4b, 0xb1, 0xd9, 0x4f, 0x82,
+0x4c, 0xa9, 0xce, 0x1d, 0xc9, 0x48, 0x2f,
+0xcc, 0x21, 0x1b, 0x8c, 0x6a, 0xc1, 0xa,
+0xa5, 0x44, 0x57, 0x98, 0xec, 0x10, 0x1d,
+0xd7, 0x5f, 0xf3, 0x53, 0x76, 0x96, 0x6c,
+0xe2, 0x46, 0x38, 0xac, 0x47, 0xb7, 0x77,
+0xc9, 0x49, 0xaa, 0xae, 0xe7, 0xab, 0x20,
+0xaa, 0x8e, 0x2a, 0x58, 0x5a, 0x80, 0xe3,
+0x88, 0xde, 0x7, 0x1c, 0x3, 0xfd, 0xe6,
+0x69, 0x29, 0x16, 0xc6, 0x2d, 0xa7, 0x12,
+0x66, 0xb2, 0x3f, 0x8a, 0xb0, 0x74, 0xb1,
+0x0, 0x3c, 0x4d, 0xd9, 0x6b, 0x12, 0xf9,
+0xbf, 0x4e, 0xda, 0x29, 0x32, 0x27, 0xd5,
+0x5b, 0x9a, 0xb9, 0xc5, 0x2b, 0x58, 0x78,
+0x6c, 0x4, 0x5a, 0xb, 0xa1, 0x16, 0xb9,
+0xc1, 0x27, 0xb6, 0x93, 0x7c, 0x74, 0x52,
+0x53, 0xa, 0xec, 0x63, 0x67, 0x62, 0x8a,
+0x3a, 0xf1, 0x6d, 0x73, 0x32, 0x4e, 0x93,
+0x2a, 0xce, 0x1f, 0x32, 0x9e, 0xa6, 0x5e,
+0xa9, 0xcc, 0xd3, 0xe0, 0x30, 0x29, 0x85,
+0x36, 0x13, 0xe9, 0xdd, 0x8a, 0x26, 0x78,
+0xe8, 0xa2, 0x8d, 0xd3, 0xf9, 0xf2, 0x14,
+0xf4, 0xb0, 0x55, 0x8f, 0x6e, 0x93, 0x90,
+0x70, 0x42, 0xaa, 0x93, 0x7c, 0xaa, 0x3c,
+0x14, 0xee, 0x2c, 0xa6, 0x4c, 0x79, 0x5d,
+0xd1, 0x15, 0xcb, 0x18, 0x45, 0x2c, 0x15,
+0x4d, 0x96, 0x9a, 0x8, 0xec, 0xde, 0xfb,
+0xa6, 0x26, 0x64, 0xcd, 0x3f, 0x85, 0x46,
+0xa6, 0x20, 0xe7, 0x1b, 0xc4, 0xa1, 0xe4,
+0xbf, 0x57, 0x40, 0x8d, 0x12, 0x2b, 0x8,
+0x88, 0xa3, 0x7a, 0x7d, 0x82, 0xfa, 0xc4,
+0xe3, 0x5b, 0xa6, 0x55, 0x63, 0xec, 0x7c,
+0x23, 0xd0, 0xbc, 0x9a, 0xbb, 0x1b, 0xce,
+0x21, 0x6a, 0x92, 0xf, 0xa3, 0xd2, 0xcd,
+0x93, 0x74, 0x81, 0x2a, 0xa0, 0x26, 0xde,
+0xf1, 0x70, 0x5b, 0x7e, 0xbf, 0x2b, 0xc3,
+0x91, 0x8a, 0xbf, 0xfb, 0xa0, 0xf, 0x10,
+0x4, 0x9e, 0xa5, 0xad, 0xdd, 0xbd, 0x90,
+0xe, 0x3f, 0xbb, 0xc4, 0xc0, 0xb3, 0xc6,
+0x15, 0x8a, 0xb2, 0x0, 0x6a, 0xcc, 0x4e,
+0x7c, 0xca, 0x21, 0x51, 0x63, 0xb6, 0xc2,
+0x71, 0x38, 0xf6, 0x5f, 0x50, 0x91, 0xab,
+0x87, 0xd3, 0xb9, 0xad, 0x44, 0x37, 0x3d,
+0x2e, 0x93, 0x43, 0xd2, 0x5b, 0xcd, 0xa9,
+0x8c, 0xec, 0xfb, 0xcc, 0x49, 0xb0, 0xa9,
+0x77, 0x66, 0x12, 0x15, 0x6, 0xbd, 0x43,
+0x86, 0x6c, 0x2a, 0xeb, 0x62, 0x58, 0x25,
+0xa5, 0x23, 0xaf, 0xe2, 0x4, 0x7a, 0x61,
+0xb8, 0x25, 0x3a, 0x4, 0x39, 0xe3, 0x15,
+0x10, 0x1e, 0x8d, 0x4a, 0x42, 0x5f, 0x81,
+0xe2, 0xac, 0x28, 0x4a, 0x25, 0x35, 0x5,
+0xb7, 0x20, 0xab, 0xbb, 0xc4, 0x45, 0xef,
+0xc4, 0xf7, 0xf1, 0x41, 0xf9, 0x58, 0x3a,
+0x67, 0x14, 0xba, 0xc3, 0x76, 0x41, 0x58,
+0x8, 0x6f, 0x90, 0x6e, 0xe0, 0x51, 0x19,
+0xf, 0x94, 0x60, 0x7c, 0x8, 0x81, 0xd4,
+0xc9, 0xbc, 0x7, 0xfd, 0x2b, 0xf2, 0xa8,
+0x1b, 0xfa, 0x4a, 0xe5, 0x3d, 0xf3, 0xe7,
+0x84, 0xff, 0x9e, 0xee, 0x44, 0xb8, 0xee,
+0xbb, 0xd0, 0xd5, 0xfb, 0xc9, 0xd7, 0x7c,
+0xc8, 0x28, 0xd2, 0x2c, 0x46, 0x3f, 0xee,
+0xd3, 0x7, 0x5c, 0xed, 0x50, 0x3a, 0x92,
+0x6e, 0xd, 0xdf, 0x75, 0x55, 0x2f, 0xf8,
+0x46, 0x58, 0x17, 0x0, 0x94, 0xc9, 0x1d,
+0xc, 0x96, 0xee, 0x44, 0x33, 0xcc, 0x7d,
+0xf7, 0xd3, 0x52, 0x4d, 0x92, 0x66, 0x4e,
+0xdd, 0xe1, 0x18, 0xa3, 0x94, 0xae, 0x82,
+0x6d, 0x80, 0x75, 0xc1, 0x65, 0x42, 0x3f,
+0xc8, 0x96, 0x2c, 0xb, 0xb, 0x7b, 0x18,
+0x65, 0x90, 0x57, 0xc6, 0x22, 0x38, 0xf2,
+0xce, 0x5, 0x9e, 0xd6, 0xcc, 0x7d, 0x7b,
+0x75, 0x90, 0x4e, 0xda, 0xd, 0x28, 0x63,
+0xea, 0x8c, 0xd6, 0x8a, 0x8a, 0x74, 0x38,
+0x61, 0xf7, 0xbd, 0xd, 0x5b, 0x5f, 0x50,
+0x70, 0x23, 0x78, 0x2b, 0xc5, 0xb1, 0x2c,
+0xac, 0x26, 0x37, 0xf9, 0xf1, 0xa8, 0x95,
+0x74, 0xb7, 0x2d, 0xf3, 0xeb, 0xb4, 0x78,
+0x9e, 0xfe, 0xd5, 0x7c, 0xad, 0xd1, 0x18,
+0x26, 0xb5, 0x84, 0x64, 0x6f, 0x80, 0xc,
+0x9a, 0xe9, 0x9, 0xbc, 0x47, 0x26, 0x88,
+0x52, 0x95, 0x3c, 0xab, 0x4d, 0x8, 0x42,
+0x81, 0x69, 0x3, 0xd8, 0xf4, 0x31, 0x9a,
+0x2f, 0x3, 0xa3, 0xcc, 0x1f, 0xb4, 0x11,
+0xd1, 0x82, 0x7, 0xa7, 0x93, 0xac, 0xb2,
+0x8b, 0x7, 0xba, 0x46, 0x67, 0x6a, 0x2c,
+0xde, 0x62, 0x53, 0x15, 0xd1, 0x70, 0x6d,
+0x9, 0x30, 0xa9, 0xf, 0xb3, 0x3d, 0x8b,
+0xb1, 0xc, 0xd6, 0x88, 0xcd, 0xa6, 0xf4,
+0xee, 0x22, 0xc0, 0x1a, 0x18, 0x1b, 0x42,
+0xbc, 0x34, 0xb1, 0x57, 0x48, 0x9, 0x5b,
+0x5b, 0xb1, 0x7, 0xfb, 0x45, 0x97, 0x8e,
+0x25, 0x40, 0x2, 0xd8, 0xaa, 0x64, 0x6f,
+0x8c, 0xa, 0xd7, 0xfd, 0x4c, 0xad, 0x35,
+0x97, 0xc5, 0xbe, 0xf9, 0x3d, 0x86, 0x15,
+0x3c, 0x7c, 0xd9, 0x72, 0x8, 0x6b, 0xdf,
+0xff, 0x30, 0x32, 0x94, 0x23, 0xa7, 0x71,
+0x27, 0x39, 0xa6, 0x16, 0x75, 0x4f, 0x6a,
+0x45, 0x51, 0x74, 0xcc, 0xe7, 0xfe, 0xa2,
+0x7d, 0xf8, 0xe8, 0x2e, 0x1d, 0x8c, 0xe9,
+0xba, 0xca, 0x89, 0xc4, 0x29, 0x1c, 0x9a,
+0x24, 0x4f, 0x50, 0xe5, 0x2c, 0x55, 0x12,
+0x9, 0x17, 0xae, 0x75, 0x31, 0xac, 0x2,
+0x86, 0x1f, 0x85, 0xf4, 0x1d, 0x5c, 0x3,
+0x13, 0x3f, 0xe0, 0x12, 0xdb, 0xfc, 0x6d,
+0x7c, 0x30, 0xfd, 0x53, 0x56, 0xbe, 0x14,
+0xce, 0x19, 0x19, 0xab, 0x43, 0x62, 0xcd,
+0xd7, 0x4b, 0x24, 0x11, 0xc7, 0x6a, 0x80,
+0xe7, 0xcb, 0x98, 0x47, 0x79, 0x8a, 0xf,
+0x72, 0x5b, 0xd2, 0xf8, 0xf7, 0x10, 0x3e,
+0x21, 0xfa, 0x37, 0xdf, 0xe3, 0xa6, 0xfb,
+0x21, 0x47, 0xf4, 0x95, 0x9a, 0x88, 0xe3,
+0x51, 0x82, 0x5c, 0xa6, 0xe0, 0x24, 0xf4,
+0x5f, 0x74, 0x25, 0x24, 0x78, 0x81, 0xe7,
+0x3d, 0x37, 0x1c, 0xda, 0xbc, 0x0, 0x46,
+0x86, 0x3a, 0x7d, 0x36, 0xe5, 0x35, 0x6d,
+0xdc, 0x6d, 0x64, 0xbf, 0xe1, 0x26, 0x7b,
+0x5c, 0xb0, 0xe5, 0x75, 0xd3, 0xcd, 0x4c,
+0x12, 0xf, 0x0, 0x3e, 0x2d, 0x8a, 0x9e,
+0xc, 0xa6, 0xb1, 0xf1, 0x18, 0xc3, 0x74,
+0xc5, 0xc2, 0xf7, 0xdb, 0xc4, 0x70, 0xf,
+0x21, 0x41, 0xa5, 0xb7, 0x67, 0x16, 0x2f,
+0xef, 0xd6, 0x3c, 0xa5, 0x96, 0xa7, 0xb8,
+0x5c, 0x87, 0x39, 0x4e, 0x85, 0xbc, 0x80,
+0xdd, 0x66, 0x5b, 0xa7, 0xfc, 0x53, 0xb3,
+0x1c, 0x14, 0xae, 0xb9, 0xd4, 0xef, 0xce,
+0x7b, 0xb5, 0x10, 0x89, 0x7e, 0xd2, 0xc9,
+0xb4, 0x6b, 0xfe, 0xb5, 0x9d, 0x35, 0xf2,
+0x6f, 0xb6, 0x79, 0xfb, 0x5, 0x7, 0x6e,
+0xdc, 0x8e, 0xa8, 0x2f, 0xdf, 0x73, 0x87,
+0xed, 0x33, 0x14, 0x4e, 0xbb, 0x88, 0x68,
+0x3c, 0x82, 0x44, 0x3b, 0xce, 0xba, 0xa8,
+0x72, 0xf5, 0x3e, 0xdd, 0xcc, 0x48, 0x9,
+0xe, 0xfe, 0xb3, 0x3, 0x1f, 0xd9, 0x4,
+0x85, 0xbc, 0x2, 0xa7, 0x84, 0x3d, 0xc2,
+0x4d, 0xf0, 0x1d, 0x14, 0x6b, 0xd0, 0x99,
+0xb3, 0xe, 0x7b, 0xdd, 0xdd, 0x82, 0xd6,
+0x9b, 0xf8, 0x8c, 0xf8, 0x9e, 0xf8, 0x3,
+0x10, 0x49, 0xfb, 0x24, 0x5d, 0xe2, 0x35,
+0xc3, 0xb1, 0x50, 0xdc, 0x53, 0xd2, 0xa3,
+0xce, 0xa1, 0xc5, 0x75, 0x4b, 0x9e, 0x63,
+0x7a, 0xd3, 0x1f, 0x6d, 0x4c, 0xb0, 0xee,
+0x16, 0x90, 0x1a, 0x51, 0x59, 0x8, 0x9a,
+0xd8, 0x3, 0xac, 0x6b, 0x0, 0xb8, 0x71,
+0xb7, 0x26, 0xc8, 0x14, 0x35, 0xe, 0x99,
+0x27, 0xd5, 0x36, 0xd2, 0xee, 0x6c, 0xf,
+0xed, 0x7a, 0x29, 0x89, 0xeb, 0x1c, 0x60,
+0x73, 0xd8, 0x50, 0x4d, 0x4a, 0x74, 0x30,
+0xa0, 0x85, 0xe4, 0x52, 0x59, 0x56, 0xca,
+0xcf, 0xa4, 0xad, 0x80, 0x59, 0x57, 0x13,
+0xae, 0xd7, 0x99, 0x26, 0x7a, 0x7d, 0xbe,
+0xbf, 0xf7, 0xf2, 0x30, 0xc9, 0xc2, 0x12,
+0xd6, 0x54, 0x53, 0x9d, 0x2e, 0xca, 0x56,
+0x4d, 0xc0, 0xff, 0x8d, 0x24, 0xe8, 0x5e,
+0x4b, 0x97, 0xb, 0x27, 0x77, 0x5a, 0x60,
+0x2e, 0x72, 0x36, 0xdb, 0xde, 0x48, 0x27,
+0x7c, 0xe4, 0xb2, 0xed, 0x38, 0xf8, 0x13,
+0x9e, 0xfd, 0x5c, 0x48, 0xf, 0x6f, 0x6e,
+0x74, 0xd6, 0x69, 0x2, 0x9b, 0x54, 0xec,
+0xda, 0xc9, 0x8f, 0x77, 0xa0, 0x49, 0x42,
+0x1, 0x74, 0x2, 0x6, 0x17, 0x5e, 0x85,
+0x9e, 0x85, 0x13, 0x5f, 0x12, 0x2e, 0xf4,
+0xd, 0xcc, 0x7f, 0x41, 0xdc, 0xd5, 0xa2,
+0xd6, 0x4a, 0x1e, 0x16, 0xd5, 0xdf, 0x39,
+0xd2, 0x36, 0x43, 0x1d, 0x8f, 0xb5, 0xc5,
+0x90, 0x71, 0xec, 0xb1, 0x9e, 0x32, 0x54,
+0xb2, 0x2e, 0x10, 0xe4, 0x92, 0x21, 0x79,
+0x3b, 0xa2, 0x25, 0xf0, 0x49, 0x19, 0xb5,
+0xf4, 0x8c, 0xff, 0xf2, 0x85, 0x81, 0xc0,
+0x53, 0xc8, 0xa8, 0x8e, 0x61, 0x7d, 0x50,
+0xd4, 0x3a, 0x6a, 0x7b, 0x9f, 0xb2, 0xd9,
+0x7b, 0xf6, 0x8a, 0xe4, 0x6, 0x70, 0xe6,
+0x6e, 0xb9, 0x78, 0x26, 0x9b, 0x9c, 0xcd,
+0x90, 0x27, 0xdc, 0xed, 0xc4, 0xd6, 0x93,
+0xd0, 0x89, 0xe4, 0xd0, 0x15, 0x77, 0x24,
+0x4d, 0x64, 0x81, 0x60, 0xa8, 0x8a, 0xd7,
+0xfd, 0xd6, 0x4c, 0x47, 0x27, 0xf7, 0x9,
+0xea, 0xa1, 0xfa, 0x1c, 0x75, 0x6f, 0xe5,
+0xf4, 0xdb, 0xa6, 0xa6, 0xc4, 0xa1, 0xc0,
+0x40, 0x4d, 0x46, 0xa5, 0xc1, 0x66, 0xc1,
+0x1b, 0x1, 0x2b, 0x9e, 0x91, 0xd4, 0xb8,
+0x68, 0xa0, 0x24, 0x2a, 0x1c, 0x37, 0x42,
+0x4b, 0xd8, 0x3b, 0x7f, 0x4e, 0x1d, 0x4e,
+0xb, 0x5f, 0x6a, 0x17, 0xfa, 0xb8, 0x21,
+0x88, 0x87, 0x58, 0x42, 0x77, 0x86, 0xea,
+0x3, 0xf, 0xf2, 0x15, 0x95, 0xf3, 0x16,
+0xf1, 0x8e, 0xee, 0x95, 0xba, 0x7d, 0x75,
+0x8c, 0xd0, 0x4e, 0x63, 0x2, 0x1a, 0xc6,
+0x5e, 0x1, 0x20, 0x44, 0xd7, 0x21, 0x43,
+0x40, 0xd9, 0xd1, 0x82, 0xa9, 0x23, 0x4c,
+0x68, 0x88, 0x94, 0xfa, 0x47, 0x56, 0x45,
+0x31, 0x58, 0x2c, 0x1c, 0x6e, 0x56, 0x31,
+0x37, 0x10, 0x6b, 0x2e, 0xda, 0xac, 0x69,
+0x8c, 0xd2, 0x7a, 0x66, 0x8d, 0xa5, 0x26,
+0x1f, 0xf6, 0x3e, 0xe0, 0x1, 0xb0, 0x7,
+0xe1, 0xd9, 0xff, 0x8c, 0x4b, 0x8e, 0x17,
+0x1b, 0xcc, 0x47, 0x76, 0xed, 0xbd, 0xd6,
+0x94, 0x21, 0xb7, 0x8f, 0x5e, 0xb4, 0x1c,
+0xd1, 0x49, 0x83, 0x25, 0x6f, 0x63, 0xe8,
+0x28, 0xa5, 0x51, 0xd7, 0xdb, 0x82, 0x9f,
+0xd9, 0xb1, 0x32, 0x38, 0xa5, 0xd0, 0x59,
+0x2d, 0x97, 0xd, 0xb5, 0x14, 0xe5, 0x2f,
+0xb9, 0xb2, 0x2a, 0xb, 0x96, 0xf6, 0x77,
+0x86, 0xf3, 0xa9, 0xe0, 0x96, 0x76, 0x1f,
+0x66, 0xc0, 0x78, 0xff, 0xd1, 0x26, 0xfb,
+0xe7, 0x94, 0x81, 0x72, 0xe9, 0xdd, 0xa4,
+0x1a, 0x7a, 0xdc, 0x95, 0x9e, 0x2c, 0x6d,
+0x41, 0xfb, 0x3c, 0x67, 0x66, 0xa5, 0xa,
+0x84, 0x43, 0xb8, 0x80, 0x45, 0x54, 0xd9,
+0x69, 0x70, 0x93, 0x52, 0xaf, 0xbb, 0xe7,
+0xd4, 0x39, 0x22, 0xd5, 0x40, 0xa2, 0xf7,
+0xee, 0x21, 0xe8, 0x8e, 0x81, 0xb6, 0x33,
+0x12, 0x72, 0x7, 0x70, 0x7c, 0x52, 0x9a,
+0x62, 0xd1, 0x52, 0x33, 0x51, 0x11, 0x7f,
+0x1c, 0x9f, 0x43, 0xe6, 0xa0, 0xc2, 0x99,
+0xea, 0xc4, 0xd6, 0x92, 0xb8, 0x75, 0x64,
+0x42, 0x83, 0x4, 0x9d, 0x42, 0xd4, 0x4b,
+0x55, 0x4e, 0xef, 0xd9, 0x10, 0x7e, 0xe4,
+0x5e, 0xa0, 0x4f, 0x47, 0x16, 0xc2, 0x54,
+0x22, 0x3f, 0x37, 0x1, 0x31, 0x90, 0x34,
+0xc5, 0x15, 0x5a, 0x4a, 0x88, 0x9, 0xdb,
+0x49, 0x9, 0xd7, 0xd2, 0x34, 0x54, 0xd7,
+0xb4, 0xdc, 0xa5, 0x6d, 0x10, 0x3b, 0x19,
+0x4c, 0x81, 0x5f, 0x2f, 0x5a, 0xe2, 0x54,
+0xc5, 0xd0, 0x2, 0xf0, 0x6c, 0xc5, 0x3a,
+0x1d, 0x59, 0x41, 0xf3, 0x30, 0x33, 0xf7,
+0xfc, 0x1, 0x69, 0xba, 0x87, 0xbc, 0x9f,
+0x30, 0x3b, 0x68, 0xb7, 0xb1, 0xf5, 0x19,
+0x33, 0xdb, 0xd2, 0xf5, 0x3a, 0x8b, 0xb0,
+0xdf, 0x8, 0x63, 0xce, 0x7a, 0x8, 0xcc,
+0x81, 0x97, 0x9b, 0x3f, 0xc, 0x91, 0x46,
+0x8d, 0x3c, 0x9d, 0x7b, 0xea, 0x27, 0x3b,
+0x3f, 0xa5, 0x16, 0x27, 0xe9, 0x54, 0x87,
+0xda, 0x84, 0xfd, 0x16, 0x24, 0x71, 0xd3,
+0xce, 0x9d, 0xa3, 0x4d, 0x34, 0xeb, 0x92,
+0xf8, 0x5f, 0xa9, 0x1a, 0x47, 0x6d, 0xc,
+0x44, 0x7b, 0xd3, 0x4d, 0xe7, 0xfe, 0x7,
+0xa4, 0x25, 0xfe, 0x9d, 0x9a, 0x94, 0x9a,
+0x34, 0x6a, 0x3b, 0x50, 0xcc, 0x41, 0xdc,
+0x5f, 0x28, 0x4, 0x3d, 0x3a, 0xc2, 0x58,
+0x40, 0xc0, 0xa, 0x63, 0x1, 0x6e, 0xb,
+0x9, 0xc1, 0xc7, 0x42, 0x0, 0x72, 0xa0,
+0x45, 0xa6, 0x11, 0x53, 0x23, 0x7b, 0x42,
+0x0, 0x46, 0x9b, 0x1e, 0x7a, 0xde, 0x96,
+0x7b, 0x48, 0x40, 0xda, 0x5b, 0x20, 0xf,
+0xb6, 0x79, 0xc6, 0x5c, 0x4b, 0xb0, 0x4f,
+0xf7, 0xa1, 0x93, 0x34, 0x6, 0x73, 0xb5,
+0x9d, 0x94, 0xc0, 0xd, 0x11, 0x4e, 0xfa,
+0xc2, 0x71, 0xb4, 0x2d, 0x68, 0xf6, 0x72,
+0x4a, 0xe4, 0x40, 0xa3, 0xc5, 0x3c, 0x2f,
+0x5e, 0x70, 0x1d, 0xfb, 0x66, 0xff, 0xed,
+0x9a, 0x22, 0x85, 0x96, 0x41, 0xf, 0x7c,
+0xc, 0xc7, 0x86, 0x6a, 0xc4, 0xd8, 0xa9,
+0x59, 0x55, 0x69, 0xa3, 0xd0, 0x85, 0x6c,
+0xae, 0xd2, 0x97, 0xf1, 0x54, 0xeb, 0xf1,
+0x59, 0x29, 0xa6, 0x89, 0xb5, 0xfa, 0xd,
+0x10, 0xe7, 0xd6, 0xb5, 0xfe, 0xb0, 0xc7,
+0x1a, 0x65, 0x62, 0xfa, 0xce, 0x31, 0xb7,
+0x8d, 0x64, 0x93, 0x5b, 0xfb, 0x6, 0x31,
+0x19, 0xee, 0xb2, 0x54, 0xc9, 0x3c, 0xdb,
+0xbe, 0xb0, 0xc1, 0xc3, 0x95, 0xb, 0x9f,
+0xcd, 0xa2, 0x35, 0x29, 0xcf, 0x2b, 0xa0,
+0xf2, 0x9b, 0x21, 0x5a, 0xa, 0xbe, 0x2a,
+0x99, 0xfa, 0x60, 0xa1, 0x4c, 0x15, 0x2a,
+0x6d, 0xec, 0xc6, 0x86, 0x49, 0x6, 0xcc,
+0x50, 0xe6, 0xf9, 0xe4, 0xa9, 0xa2, 0x39,
+0x24, 0x8e, 0xcb, 0xa0, 0xb7, 0x32, 0x2b,
+0xab, 0x2f, 0xfb, 0x8f, 0xdf, 0x31, 0x9f,
+0xfe, 0x5b, 0x55, 0xbd, 0xb4, 0x61, 0xb4,
+0xfe, 0xe1, 0x26, 0xd5, 0x6e, 0x61, 0xde,
+0xd9, 0x7a, 0x56, 0xa8, 0x57, 0x56, 0x74,
+0xf2, 0xcb, 0xd3, 0xc2, 0xf8, 0xe8, 0x4,
+0x49, 0x4c, 0x22, 0x45, 0x6d, 0x46, 0x30,
+0x92, 0xf2, 0xdd, 0x45, 0x98, 0xe3, 0x8e,
+0x71, 0xaf, 0x7d, 0x1b, 0x3, 0xa6, 0x7c,
+0x42, 0x88, 0xae, 0xc8, 0xe1, 0x11, 0x55,
+0x1a, 0x10, 0x42, 0x9a, 0x7a, 0x11, 0x4a,
+0xe, 0x53, 0x36, 0xcc, 0x6b, 0x4b, 0x86,
+0x7, 0x38, 0xe9, 0xf9, 0x66, 0xcc, 0x71,
+0xa1, 0xf, 0x16, 0xd7, 0x92, 0x16, 0x9,
+0x9d, 0xc0, 0xc3, 0x38, 0xdb, 0xcb, 0xb5,
+0xd4, 0x42, 0xf0, 0xc, 0x90, 0xb, 0xad,
+0x93, 0x1e, 0x50, 0x23, 0xe8, 0x9a, 0xe1,
+0xd0, 0xf9, 0x67, 0xc4, 0x89, 0xc9, 0x7,
+0xdc, 0x96, 0xfd, 0xa6, 0x9a, 0x2a, 0x6,
+0xff, 0x12, 0x44, 0x30, 0xa3, 0x62, 0xe2,
+0x82, 0x8a, 0x62, 0x61, 0xa5, 0x22, 0x2d,
+0x65, 0xcf, 0x2c, 0x39, 0x32, 0x65, 0x94,
+0x8b, 0xb5, 0x14, 0xbb, 0xbe, 0xfb, 0x83,
+0xe4, 0x83, 0x4c, 0x84, 0x38, 0x35, 0xa4,
+0xbc, 0x11, 0x13, 0x2b, 0xc6, 0x45, 0x67,
+0x48, 0x42, 0x79, 0xf4, 0xbe, 0x65, 0xe9,
+0x38, 0xdc, 0xea, 0x96, 0xc1, 0xb5, 0x35,
+0xd3, 0xa5, 0x7d, 0x52, 0x16, 0xf2, 0x3c,
+0xbd, 0x2d, 0x9c, 0x67, 0xb0, 0x5c, 0x69,
+0x21, 0x7a, 0x22, 0xdd, 0xc6, 0x80, 0x4,
+0x9e, 0xcd, 0x1a, 0xfd, 0x77, 0xa9, 0xa0,
+0x40, 0x1f, 0xd9, 0xfb, 0x17, 0x99, 0xec,
+0x4e, 0x69, 0x86, 0x7f, 0xf, 0x32, 0xea,
+0x1e, 0xe9, 0x12, 0x64, 0xe, 0xef, 0x30,
+0x9b, 0xfd, 0xf7, 0xfb, 0x9c, 0x24, 0x2f,
+0x5f, 0x79, 0x83, 0x7c, 0x41, 0x57, 0x85,
+0xa1, 0xcf, 0x55, 0xda, 0xf, 0xce, 0xd7,
+0x43, 0xa1, 0x3c, 0xe3, 0x17, 0xa7, 0x66,
+0x44, 0xac, 0x51, 0xc2, 0x46, 0x2e, 0x2d,
+0x88, 0x61, 0xc5, 0xea, 0xc9, 0x9d, 0x3,
+0xdc, 0xc2, 0x9f, 0x21, 0x6, 0xfe, 0xed,
+0xb1, 0x38, 0xef, 0x7a, 0x88, 0xfd, 0x9,
+0xfe, 0x2b, 0x50, 0xd8, 0xcc, 0x2b, 0xb,
+0xb1, 0x2b, 0x8c, 0x7e, 0xd7, 0x7d, 0x54,
+0x1, 0xb8, 0xd7, 0x2b, 0xf7, 0xfd, 0xdf,
+0x3f, 0xe6, 0xde, 0x5a, 0xa2, 0x9e, 0x45,
+0xc, 0x37, 0xf1, 0x1a, 0xa0, 0xd1, 0x87,
+0x7c, 0xd9, 0x16, 0x7e, 0x66, 0x97, 0xd2,
+0x7e, 0x4a, 0xb3, 0x2f, 0x53, 0x24, 0xd5,
+0xd6, 0x22, 0xa2, 0x2e, 0xf9, 0x22, 0x43,
+0x8d, 0x65, 0x6b, 0x6a, 0xb7, 0xdf, 0xb4,
+0x60, 0x3d, 0x4b, 0x10, 0x72, 0xc, 0x82,
+0x3a, 0x72, 0x13, 0xe5, 0x76, 0x1e, 0x6d,
+0x21, 0xce, 0xec, 0x6, 0x8b, 0x98, 0x73,
+0xb7, 0x6b, 0x9d, 0xed, 0x52, 0x42, 0x10,
+0x38, 0xf1, 0x6d, 0xeb, 0xd2, 0x77, 0x9c,
+0xc9, 0x8d, 0x44, 0x9e, 0xf1, 0x26, 0x5,
+0xc7, 0x94, 0xdd, 0x8e, 0xe0, 0xc7, 0x7b,
+0xe2, 0x98, 0x8b, 0xd, 0x36, 0x92, 0x74,
+0xf7, 0x7c, 0xf2, 0x98, 0xd5, 0x19, 0x34,
+0xab, 0x59, 0xd, 0xcb, 0x7a, 0x2b, 0x71,
+0x3f, 0xfc, 0x73, 0xa0, 0x51, 0x8a, 0xe6,
+0xd8, 0xa1, 0x76, 0x25, 0xe3, 0x7, 0xd1,
+0xc2, 0xf6, 0x4f, 0x84, 0x50, 0xd6, 0xdd,
+0x92, 0xeb, 0x8c, 0x45, 0xfe, 0xbf, 0xdd,
+0x40, 0x1a, 0x4b, 0xff, 0x84, 0x47, 0x44,
+0xad, 0x78, 0x75, 0x42, 0x20, 0xae, 0xa7,
+0x91, 0x23, 0xda, 0xde, 0xc6, 0x68, 0x9f,
+0xb3, 0x10, 0xc4, 0x3, 0xf, 0xa8, 0x5,
+0x5d, 0xb0, 0xec, 0x33, 0x1f, 0xf5, 0xd3,
+0x57, 0x9b, 0xab, 0xcd, 0xb3, 0xe2, 0xdc,
+0x2d, 0xf7, 0xa3, 0xd3, 0x78, 0x56, 0xb1,
+0xcf, 0x82, 0x8d, 0x2c, 0x65, 0x4a, 0xde,
+0x17, 0xe7, 0xcc, 0xb8, 0xf2, 0xe, 0x9b,
+0x67, 0xf4, 0x3a, 0x76, 0xeb, 0x66, 0xd5,
+0x15, 0x2a, 0xc, 0xa0, 0x5b, 0xc, 0xfb,
+0xcd, 0x7f, 0x65, 0x7d, 0xee, 0x12, 0xba,
+0x2b, 0xd7, 0x2a, 0x5f, 0xc, 0x1c, 0x8d,
+0x89, 0x51, 0x60, 0x9c, 0x17, 0x24, 0xe1,
+0x48, 0xa2, 0x9c, 0xd5, 0x72, 0xa1, 0x25,
+0x95, 0x9a, 0xa6, 0x4a, 0x2, 0x54, 0x68,
+0x53, 0xe1, 0x5c, 0xea, 0x6a, 0xc2, 0xcd,
+0x63, 0x86, 0x96, 0xaa, 0xbf, 0xd0, 0x52,
+0x92, 0x3d, 0x5d, 0x3, 0x76, 0x67, 0xe8,
+0x4c, 0xf5, 0x33, 0xc0, 0x7, 0xcd, 0xa6,
+0x75, 0x8f, 0x5c, 0x82, 0x8e, 0x8e, 0xbf,
+0x1f, 0xdb, 0x91, 0x94, 0x41, 0x51, 0x11,
+0x78, 0x9a, 0x53, 0x40, 0x99, 0x74, 0x1c,
+0x2f, 0x46, 0x37, 0x2b, 0x26, 0x2a, 0xcf,
+0x1e, 0x4f, 0x43, 0x7b, 0x72, 0x61, 0x94,
+0x9d, 0xd9, 0xf5, 0xb7, 0x37, 0x4e, 0x6f,
+0x63, 0x25, 0xfc, 0x0, 0xc0, 0x72, 0x17,
+0x6a, 0xec, 0x15, 0x37, 0x2, 0x3e, 0xc8,
+0x78, 0xd0, 0xf3, 0xe4, 0x32, 0xa6, 0x60,
+0xcf, 0xf8, 0xe8, 0xb8, 0x23, 0x37, 0x43,
+0x94, 0xff, 0xbe, 0xfd, 0xa7, 0x3b, 0x54,
+0x4d, 0x40, 0x3f, 0x8, 0x3a, 0x7d, 0x57,
+0x7e, 0x7b, 0x79, 0xe8, 0x91, 0x1c, 0x47,
+0x50, 0xe6, 0xde, 0xa3, 0x27, 0x50, 0x21,
+0x8, 0xef, 0x89, 0x64, 0xec, 0x77, 0x0,
+0x49, 0xd5, 0xab, 0xcf, 0xc0, 0xd6, 0xbe,
+0x3c, 0x3f, 0x8, 0xae, 0x6, 0x73, 0x24,
+0x56, 0x91, 0xff, 0xb, 0xe0, 0xa5, 0xe7,
+0x2d, 0x69, 0x7, 0xa5, 0xb5, 0xe3, 0x4e,
+0xa9, 0xc7, 0x19, 0x7e, 0xc4, 0xa1, 0x8a,
+0xc1, 0xc1, 0x9f, 0x22, 0xbf, 0x76, 0xf2,
+0x10, 0x8d, 0x78, 0xd8, 0xad, 0x4f, 0xef,
+0xd8, 0x90, 0x97, 0x37, 0x13, 0x38, 0x99,
+0x36, 0xab, 0x2b, 0x7d, 0x77, 0xe4, 0x34,
+0x43, 0x17, 0x5a, 0x4e, 0x3c, 0xc7, 0xcd,
+0xb7, 0xbb, 0x69, 0x79, 0x75, 0x43, 0x3d,
+0xc2, 0x79, 0x7b, 0xfb, 0xff, 0xf5, 0x1,
+0x2f, 0xb2, 0x79, 0x82, 0x6, 0x28, 0x74,
+0xd9, 0x4d, 0x79, 0x23, 0xb4, 0xb2, 0xfb,
+0x26, 0x12, 0x8e, 0x42, 0x2f, 0x5e, 0xf9,
+0x62, 0xb2, 0x5e, 0x57, 0x13, 0x29, 0x75,
+0x49, 0x35, 0x7e, 0x11, 0x46, 0xdd, 0xf6,
+0x8d, 0x38, 0x6d, 0xea, 0x2d, 0x29, 0xce,
+0x22, 0x14, 0x77, 0xe0, 0xd3, 0x4f, 0x91,
+0x45, 0x7a, 0xb9, 0x43, 0x5d, 0xbf, 0xdc,
+0x9f, 0x71, 0xaf, 0x48, 0x52, 0xe6, 0x15,
+0x9f, 0xdb, 0xd9, 0xb2, 0x1b, 0x78, 0x6,
+0x4e, 0x7f, 0xfa, 0x13, 0x54, 0xf9, 0x82,
+0x4c, 0x21, 0x17, 0xe4, 0x53, 0x3, 0xdb,
+0x2f, 0x8, 0x7a, 0x29, 0xb6, 0x2e, 0xde,
+0x11, 0xce, 0xf7, 0x57, 0x5, 0x5, 0xdc,
+0xb5, 0xcf, 0x3, 0xe1, 0x98, 0x77, 0xe7,
+0xd5, 0x8b, 0x63, 0x74, 0x26, 0xea, 0xdd,
+0xfe, 0x5c, 0x59, 0x90, 0x44, 0x31, 0x73,
+0x51, 0x4e, 0x62, 0xcd, 0x5, 0x23, 0xed,
+0x24, 0x79, 0x52, 0x4a, 0x69, 0x64, 0x6b,
+0x2b, 0x7e, 0xf8, 0x51, 0x6e, 0xd1, 0x56,
+0x5b, 0x5a, 0xa3, 0x48, 0xcd, 0x5b, 0xc9,
+0x1b, 0xf7, 0x5e, 0x5f, 0x84, 0xf7, 0x3d,
+0x8a, 0xf7, 0x25, 0xbf, 0xc8, 0x80, 0x6,
+0x44, 0x96, 0x3e, 0x9c, 0x85, 0xbf, 0xad,
+0x64, 0xd4, 0x6e, 0xab, 0x2e, 0x4e, 0x8d,
+0x1b, 0xaa, 0x8a, 0x6a, 0xb9, 0x4e, 0x2a,
+0x73, 0xad, 0x2c, 0x14, 0xb2, 0xa2, 0xd4,
+0x4a, 0x75, 0x5c, 0x62, 0xa3, 0xf2, 0x53,
+0xef, 0xf2, 0x5b, 0x5a, 0x4a, 0xeb, 0x1b,
+0xba, 0x34, 0x5f, 0x66, 0x73, 0xd2, 0x19,
+0x55, 0x3d, 0x8c, 0x18, 0x32, 0x4c, 0x8,
+0x99, 0xf5, 0x4a, 0x52, 0xbd, 0x78, 0xbe,
+0x1f, 0x29, 0x91, 0xf0, 0x26, 0x25, 0xb5,
+0xb2, 0x6d, 0x2f, 0x22, 0xd8, 0x4d, 0x4,
+0xe1, 0x5e, 0x4d, 0x55, 0xec, 0x6f, 0x29,
+0x99, 0x1b, 0xe6, 0x4e, 0x8, 0xc1, 0x35,
+0x11, 0x28, 0x59, 0xdc, 0xd4, 0xa4, 0x3e,
+0x72, 0xdc, 0x31, 0x7a, 0x2b, 0x64, 0x83,
+0xa9, 0xdb, 0xd5, 0xfa, 0x46, 0x29, 0xaa,
+0x27, 0x34, 0x98, 0x36, 0xcc, 0x72, 0xa6,
+0xe2, 0x1c, 0x86, 0x7a, 0x94, 0xa4, 0x50,
+0xd8, 0x23, 0x3, 0x33, 0x7b, 0x14, 0xe,
+0xa2, 0x16, 0x77, 0x4d, 0x8b, 0x7c, 0x3c,
+0xda, 0xe2
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha384_sigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha384_sigrl.inc
new file mode 100644
index 0000000000..c3e1b0a84e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha384_sigrl.inc
@@ -0,0 +1,1222 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: grp01
+ * Signer: member0
+ * HashAlg: Sha384
+ * Message: "test message"
+ * Basename: None (random base)
+ * SigRl: SigRl of group
+ */
+0x36, 0x19, 0x27, 0x2c, 0xcf, 0xa0, 0x7a,
+0x44, 0x9c, 0xea, 0xe5, 0x77, 0x7e, 0x7d,
+0x12, 0x33, 0xd9, 0x21, 0x41, 0x58, 0x9b,
+0xaf, 0xcc, 0xa2, 0x2e, 0xe1, 0xe1, 0x27,
+0x70, 0xe6, 0x2f, 0x8e, 0x70, 0x9d, 0x7c,
+0x2b, 0x65, 0xf0, 0xd6, 0xe3, 0x89, 0x5b,
+0x8a, 0x82, 0x68, 0x2a, 0x2f, 0x44, 0xbb,
+0xba, 0xbe, 0xbf, 0xed, 0x94, 0x87, 0x5b,
+0xf4, 0x2a, 0xde, 0xb2, 0xe6, 0xee, 0x57,
+0x17, 0x71, 0xec, 0xf4, 0x3d, 0x7c, 0x44,
+0x2d, 0x77, 0x42, 0xc6, 0x22, 0x88, 0xc4,
+0x80, 0xe3, 0x99, 0x79, 0x7d, 0xe8, 0xf0,
+0xaf, 0x37, 0x67, 0x66, 0xe8, 0xa8, 0x63,
+0xd7, 0x88, 0xd6, 0xf7, 0x2e, 0x2b, 0x98,
+0xcc, 0x0a, 0x96, 0xef, 0x72, 0xfe, 0x47,
+0xf7, 0x46, 0x4c, 0x0b, 0x79, 0x94, 0x8c,
+0x6a, 0x1f, 0x09, 0x30, 0x31, 0x29, 0xd2,
+0x86, 0xed, 0x93, 0xd9, 0xed, 0x9e, 0x88,
+0xd2, 0x9b, 0x44, 0x15, 0x36, 0x91, 0x33,
+0x62, 0x44, 0xcf, 0xab, 0x0d, 0xf0, 0x24,
+0x86, 0x3f, 0x10, 0x74, 0x42, 0x37, 0xbb,
+0x1a, 0x67, 0xf4, 0x16, 0x61, 0xc7, 0x5e,
+0x30, 0x18, 0x86, 0x28, 0xa2, 0x3a, 0x68,
+0xe2, 0xec, 0x6e, 0xa4, 0x5f, 0x1e, 0x81,
+0xf1, 0x09, 0xcc, 0x8c, 0xde, 0xe5, 0x3f,
+0xc3, 0x6e, 0xfe, 0x19, 0x4f, 0x51, 0xa6,
+0x66, 0x69, 0xf2, 0x38, 0xac, 0xad, 0xd9,
+0xe8, 0xe2, 0x81, 0xdd, 0x0c, 0x74, 0x9a,
+0x76, 0x49, 0x7e, 0x33, 0x7a, 0xa8, 0x15,
+0xc0, 0x49, 0xee, 0xd5, 0xff, 0x6f, 0x53,
+0x27, 0x69, 0xcc, 0xb6, 0x4b, 0x55, 0xf7,
+0x64, 0xa1, 0x08, 0x46, 0x09, 0xb9, 0x18,
+0x0e, 0x97, 0x87, 0x2a, 0x41, 0x48, 0x5d,
+0x45, 0x3b, 0xea, 0xc5, 0x15, 0x7a, 0xe2,
+0x91, 0xee, 0x35, 0xea, 0x34, 0xd4, 0x89,
+0x96, 0xf1, 0x74, 0x63, 0x06, 0xc7, 0x43,
+0x69, 0xc6, 0x9a, 0x75, 0x30, 0x45, 0x87,
+0x8a, 0x3b, 0x64, 0x60, 0xa0, 0xfb, 0x73,
+0xc3, 0x77, 0xde, 0x9d, 0xfb, 0x2d, 0x1a,
+0x03, 0xc2, 0xc6, 0x2d, 0x72, 0x31, 0x93,
+0xd9, 0xb1, 0x26, 0xd3, 0xb7, 0x51, 0xcb,
+0x4c, 0x95, 0x42, 0x55, 0xfc, 0x30, 0xa4,
+0x13, 0x4b, 0x2b, 0xe2, 0x99, 0x10, 0x3c,
+0x5c, 0x4d, 0xf6, 0xe5, 0x1b, 0x7a, 0x5a,
+0xbe, 0xb4, 0x23, 0x4b, 0x99, 0x3c, 0x93,
+0x63, 0x38, 0x84, 0x2b, 0xfe, 0xc1, 0x01,
+0xdd, 0x0b, 0xc7, 0x6f, 0x3c, 0x06, 0xbc,
+0x6f, 0x17, 0xb4, 0x95, 0x9d, 0xd3, 0xd1,
+0xfd, 0xea, 0xf3, 0x15, 0x47, 0xec, 0x07,
+0xa1, 0x22, 0xd0, 0x2d, 0xe8, 0xb8, 0xfb,
+0x33, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x32, 0x97, 0x36, 0xc2, 0x28,
+0x13, 0xa6, 0xce, 0x2a, 0x82, 0xf5, 0x7e,
+0xce, 0xdb, 0x7e, 0x95, 0x97, 0x71, 0xce,
+0xf0, 0xa6, 0xbd, 0x9a, 0x09, 0x6c, 0x4b,
+0x5c, 0x64, 0xbc, 0xb6, 0x56, 0xfb, 0x5c,
+0xec, 0x0e, 0xc6, 0x33, 0x54, 0xa0, 0x4d,
+0x21, 0xdf, 0x03, 0xc4, 0xc8, 0x6a, 0x28,
+0xa3, 0xde, 0x94, 0x2c, 0x1b, 0x81, 0x47,
+0x71, 0xe9, 0xe0, 0xe7, 0x2a, 0x2e, 0x37,
+0x04, 0x0a, 0x86, 0x0f, 0x57, 0x49, 0xfc,
+0x58, 0xc2, 0x79, 0xfa, 0x8f, 0x4a, 0xfa,
+0x41, 0x7a, 0x8e, 0xb1, 0xe0, 0x57, 0x41,
+0xe6, 0x7b, 0xad, 0xa9, 0x2f, 0x66, 0x89,
+0x76, 0x88, 0x72, 0x5f, 0xd7, 0xf8, 0xc9,
+0xdd, 0x64, 0x6d, 0x92, 0xe8, 0x5e, 0xce,
+0x15, 0xb3, 0xa0, 0xf1, 0x2a, 0x24, 0xe0,
+0x09, 0xf7, 0xb5, 0x77, 0x27, 0xff, 0x15,
+0xd3, 0xaf, 0x33, 0x45, 0xe0, 0x33, 0x15,
+0xef, 0xb7, 0x38, 0x23, 0xf2, 0x20, 0x1d,
+0xd6, 0xc1, 0x6a, 0x37, 0x1d, 0xda, 0xfb,
+0xf4, 0xa7, 0x29, 0x60, 0xf7, 0x45, 0x50,
+0x0a, 0x9f, 0xcb, 0xa7, 0xc4, 0x17, 0x8d,
+0x7d, 0x91, 0x3f, 0xb8, 0xa9, 0xcb, 0x0f,
+0x89, 0x16, 0x2a, 0x1d, 0xc6, 0xef, 0xc7,
+0x53, 0xe6, 0x53, 0xbf, 0x7c, 0x3d, 0xed,
+0x79, 0x88, 0xd6, 0xbb, 0xf8, 0x2d, 0xeb,
+0x1a, 0x87, 0xd4, 0xee, 0xc4, 0x30, 0xbd,
+0xa0, 0x36, 0x98, 0xe5, 0x0a, 0xa5, 0x04,
+0xb5, 0xaa, 0x25, 0x00, 0xc8, 0x0b, 0xee,
+0x66, 0xe8, 0xc4, 0x6e, 0x9f, 0xb9, 0xea,
+0x29, 0xdb, 0xb2, 0x70, 0xfc, 0x75, 0xc8,
+0xef, 0x52, 0xd7, 0x4b, 0xa0, 0x15, 0x9c,
+0xf0, 0x4a, 0xc5, 0xbe, 0xe0, 0xbd, 0x4f,
+0xe7, 0x07, 0x61, 0x69, 0xa4, 0xd8, 0xf0,
+0x6a, 0x2e, 0x8e, 0x7f, 0xf2, 0x1f, 0x98,
+0x77, 0x9f, 0x19, 0xed, 0x1b, 0x39, 0x5a,
+0xa1, 0xec, 0x26, 0xcd, 0xae, 0xe9, 0x13,
+0xd5, 0x33, 0x86, 0xc7, 0x68, 0xc7, 0x18,
+0xcf, 0xb0, 0x58, 0x11, 0x08, 0xe1, 0xe3,
+0x79, 0x91, 0x29, 0x60, 0xc6, 0x3a, 0x31,
+0x20, 0xc5, 0x82, 0xbb, 0x63, 0x7f, 0x57,
+0x31, 0xef, 0x91, 0xf5, 0xe7, 0x68, 0x19,
+0x29, 0x99, 0x01, 0x22, 0x53, 0x86, 0x41,
+0x34, 0xf9, 0xb6, 0x46, 0x03, 0x78, 0xfb,
+0xf3, 0x67, 0x33, 0x8a, 0x18, 0x7e, 0x0e,
+0x18, 0x6e, 0xa0, 0x93, 0xfe, 0x3c, 0xa8,
+0x47, 0xb0, 0xe9, 0xee, 0x27, 0x4f, 0x25,
+0x29, 0x0f, 0x96, 0xa0, 0x26, 0xe7, 0xa6,
+0xd6, 0xf2, 0x03, 0x85, 0x3b, 0x2e, 0xc6,
+0x78, 0xe7, 0x77, 0x8d, 0x4f, 0xba, 0x03,
+0x55, 0xeb, 0xdb, 0xac, 0x3d, 0x77, 0xdf,
+0xdc, 0x27, 0xad, 0x71, 0x6c, 0xb9, 0xee,
+0x87, 0xc8, 0x51, 0x3f, 0xe5, 0xe1, 0xa0,
+0x3d, 0x42, 0xc9, 0xf2, 0x87, 0x7b, 0x0b,
+0xe3, 0x68, 0xbc, 0xbc, 0xea, 0x79, 0xd2,
+0x99, 0x0a, 0x9c, 0x29, 0x38, 0xb9, 0x96,
+0x3a, 0xaa, 0xd5, 0x0f, 0xdf, 0xf8, 0xb7,
+0x3b, 0xab, 0x35, 0x51, 0xbf, 0xa4, 0x60,
+0xd2, 0xc8, 0xeb, 0x22, 0x9d, 0xc6, 0x51,
+0x85, 0xc9, 0xc1, 0xd7, 0xe3, 0xd5, 0xa4,
+0x2b, 0x76, 0x6f, 0xd1, 0x2a, 0x9a, 0xd3,
+0x73, 0xca, 0xe7, 0x48, 0xc4, 0xa4, 0xa6,
+0x11, 0xa9, 0x91, 0x03, 0xb8, 0xaa, 0xaf,
+0xb0, 0xf7, 0x51, 0x7b, 0x4b, 0xed, 0x49,
+0x65, 0x39, 0x76, 0xf4, 0x60, 0xbf, 0x01,
+0x2f, 0xeb, 0x80, 0x9b, 0x4e, 0x51, 0xf2,
+0x7d, 0xd4, 0x99, 0xab, 0x78, 0x49, 0x43,
+0x05, 0x88, 0x8d, 0xee, 0xcc, 0x39, 0x32,
+0xf8, 0xc2, 0x51, 0x7e, 0xd3, 0x58, 0x26,
+0x01, 0xb2, 0x41, 0xc1, 0x9e, 0x38, 0x7e,
+0xab, 0x05, 0x48, 0xbe, 0x95, 0x09, 0x9f,
+0x02, 0x01, 0x15, 0xa6, 0x3d, 0xfa, 0xa7,
+0xf9, 0xac, 0xe4, 0xc0, 0xb1, 0x22, 0x82,
+0xfc, 0x37, 0x9b, 0xbd, 0xdb, 0xec, 0x23,
+0x3e, 0xec, 0xd8, 0x64, 0x35, 0xe9, 0x81,
+0xab, 0x15, 0x54, 0x28, 0x65, 0xf3, 0x2b,
+0xe1, 0x3e, 0x9e, 0x6c, 0x45, 0x43, 0xdf,
+0x76, 0x00, 0x37, 0xf4, 0x52, 0x8b, 0x68,
+0xce, 0xb4, 0xe6, 0x24, 0x0f, 0x39, 0x03,
+0x8a, 0x75, 0x78, 0x62, 0x68, 0xa6, 0x4d,
+0x37, 0x32, 0x8e, 0xf6, 0x8c, 0x3e, 0xa3,
+0xc8, 0xb2, 0xbf, 0x43, 0x03, 0x29, 0x2c,
+0x1c, 0xa4, 0xde, 0x60, 0x54, 0xaa, 0x0e,
+0x7a, 0xe2, 0x4e, 0xf0, 0x8f, 0x46, 0x95,
+0xdf, 0x00, 0xbc, 0x53, 0xf2, 0x64, 0x96,
+0xa2, 0x20, 0x7e, 0x45, 0xfa, 0x81, 0xa9,
+0x93, 0x3a, 0x69, 0xa8, 0x5a, 0x17, 0xd8,
+0xf0, 0x49, 0x3d, 0x1d, 0x82, 0x88, 0x5f,
+0x37, 0x83, 0x7b, 0x08, 0xa9, 0x22, 0xc3,
+0xa4, 0x2f, 0x2c, 0x21, 0x9f, 0x01, 0x9c,
+0x61, 0xc4, 0x6a, 0x3a, 0x45, 0x59, 0xc0,
+0x0e, 0x8b, 0x5d, 0xf8, 0xc6, 0xbf, 0x30,
+0xc3, 0xec, 0xa0, 0xff, 0xdb, 0xda, 0xd3,
+0x3e, 0x7d, 0x72, 0x04, 0x8f, 0x68, 0x76,
+0xe6, 0x30, 0xb2, 0x13, 0xde, 0x8c, 0xe9,
+0x07, 0xc2, 0xbf, 0x3a, 0x78, 0xf0, 0xf0,
+0xd4, 0xc1, 0xdb, 0x64, 0x69, 0x26, 0x5d,
+0x4f, 0xac, 0x98, 0x66, 0x4d, 0x20, 0x0d,
+0xc0, 0x9c, 0x56, 0x94, 0xd8, 0xe2, 0x84,
+0xa9, 0x32, 0x4c, 0x10, 0x47, 0x68, 0x2b,
+0x33, 0x8c, 0x16, 0xb0, 0xf9, 0x35, 0x36,
+0x2f, 0xcd, 0x3b, 0xbd, 0x31, 0x03, 0x70,
+0xcf, 0x5b, 0x4c, 0x50, 0xdf, 0xd7, 0x54,
+0xc0, 0x2f, 0x85, 0x7f, 0xee, 0xd1, 0x9a,
+0xde, 0xfe, 0x9f, 0x3d, 0xce, 0x08, 0xc4,
+0xd0, 0x8d, 0x96, 0x0f, 0x30, 0xdd, 0x60,
+0x4f, 0x37, 0xf8, 0xf1, 0x10, 0x5e, 0x10,
+0x3f, 0xfc, 0xbb, 0x6b, 0x7b, 0x7d, 0x9c,
+0xe3, 0xf0, 0x27, 0xab, 0xa6, 0x9a, 0x70,
+0xae, 0x18, 0xa0, 0x9a, 0xa7, 0x48, 0xb2,
+0xf8, 0x28, 0xe3, 0x20, 0x76, 0x67, 0xaf,
+0x3f, 0xb2, 0x5e, 0x59, 0x4c, 0x84, 0x9c,
+0xc7, 0x6e, 0x41, 0x30, 0xbf, 0xfe, 0x9b,
+0xb8, 0x9b, 0xab, 0x40, 0x09, 0xfd, 0x02,
+0x99, 0x79, 0x9f, 0x39, 0xb4, 0x40, 0x73,
+0xb3, 0x3e, 0xa0, 0x5e, 0xa0, 0x5c, 0x74,
+0x5d, 0x21, 0xfc, 0x00, 0x57, 0xbf, 0x23,
+0xda, 0xae, 0x49, 0xac, 0x6a, 0x10, 0xe6,
+0x1e, 0x1b, 0x19, 0xe6, 0xce, 0x41, 0x6c,
+0x3c, 0xe7, 0x45, 0x3c, 0xcb, 0x75, 0xa9,
+0xd7, 0x60, 0x0d, 0x43, 0x69, 0x1e, 0xc2,
+0x47, 0xea, 0x07, 0x46, 0x2c, 0x58, 0x25,
+0x1e, 0x10, 0xe9, 0xc8, 0x8a, 0x14, 0x85,
+0x6f, 0x49, 0x37, 0xd7, 0xfb, 0x07, 0xbb,
+0xfa, 0xc2, 0x4e, 0x9d, 0xaf, 0x4c, 0xe6,
+0xb8, 0xad, 0x1b, 0x70, 0x8c, 0x74, 0xda,
+0xb4, 0x38, 0x57, 0xa7, 0x42, 0x4e, 0xe2,
+0x84, 0xfb, 0x97, 0x4e, 0x46, 0x2c, 0xad,
+0x37, 0xc0, 0x10, 0x62, 0x6c, 0x07, 0xea,
+0x06, 0xc4, 0x5a, 0x29, 0xfb, 0x4c, 0x0f,
+0xc6, 0x9e, 0x5f, 0xcd, 0xd6, 0x33, 0xc6,
+0x1b, 0x92, 0x76, 0x99, 0xa3, 0xe7, 0x13,
+0x92, 0x0b, 0x27, 0x3b, 0x75, 0xb2, 0x3f,
+0x9c, 0x6b, 0x4e, 0x96, 0x9f, 0xfc, 0xed,
+0x36, 0xb7, 0x69, 0x3d, 0xe2, 0x64, 0xa9,
+0xb8, 0xdf, 0x46, 0x67, 0x6e, 0xc2, 0x2f,
+0x5e, 0xf9, 0x24, 0x2b, 0xea, 0x6c, 0xde,
+0x00, 0x14, 0x4a, 0xe0, 0x8e, 0x43, 0x0b,
+0x2b, 0xcb, 0xf4, 0x93, 0x76, 0x97, 0x74,
+0x61, 0xaf, 0x2e, 0x7d, 0xfe, 0x11, 0x74,
+0x03, 0x8f, 0x38, 0x32, 0x7c, 0x1f, 0xf6,
+0x46, 0x68, 0xac, 0x29, 0x48, 0x3e, 0x63,
+0xac, 0x64, 0x10, 0x97, 0x1a, 0x22, 0x67,
+0x09, 0x51, 0x0c, 0x46, 0x7e, 0xab, 0x21,
+0x72, 0xbf, 0x12, 0x69, 0x99, 0x7c, 0xef,
+0x07, 0x39, 0x33, 0x63, 0xf8, 0x16, 0x70,
+0xe8, 0x25, 0x62, 0x90, 0xa4, 0xa4, 0x37,
+0x0e, 0xcc, 0x8b, 0xc4, 0x6b, 0x77, 0x3f,
+0xbd, 0xe7, 0xe8, 0xaa, 0xf1, 0x2c, 0x70,
+0x00, 0xb3, 0x13, 0x91, 0xa9, 0x01, 0x2e,
+0x8b, 0xc4, 0xf7, 0x4b, 0xe9, 0xc8, 0x6c,
+0x3f, 0xfe, 0x3d, 0x99, 0x71, 0x95, 0x04,
+0x01, 0x58, 0x62, 0x43, 0x2b, 0x38, 0xdc,
+0x11, 0x03, 0x08, 0x98, 0x14, 0x7e, 0x71,
+0xf4, 0xa6, 0x3d, 0xac, 0x02, 0x05, 0x97,
+0xfe, 0xf0, 0x54, 0xd8, 0x4c, 0xd3, 0x11,
+0xbc, 0x9f, 0x6a, 0x4b, 0x40, 0xd0, 0x5c,
+0x53, 0xd5, 0x5c, 0x8d, 0xfa, 0x90, 0x95,
+0x73, 0x7e, 0xb6, 0xba, 0x4d, 0x08, 0xf5,
+0xb7, 0x46, 0x89, 0xf6, 0x9d, 0x82, 0x72,
+0xce, 0x0d, 0xfc, 0x0e, 0x01, 0x07, 0x5a,
+0xd8, 0xee, 0x8d, 0x20, 0x09, 0xfe, 0x2b,
+0x08, 0x63, 0x62, 0xc6, 0xdb, 0x1d, 0xac,
+0x9b, 0xbc, 0x97, 0x15, 0xba, 0x45, 0x1f,
+0x05, 0x1a, 0xe4, 0xbb, 0x1a, 0xeb, 0x2a,
+0xc6, 0x3a, 0xd5, 0xdc, 0x14, 0x90, 0x90,
+0x29, 0x8d, 0xe1, 0x2b, 0x37, 0x50, 0x63,
+0x1f, 0xcc, 0x73, 0xbe, 0x46, 0x69, 0xeb,
+0x67, 0x75, 0xd6, 0x18, 0xc7, 0xde, 0x39,
+0xd3, 0x26, 0x1f, 0xd3, 0xca, 0x39, 0x5f,
+0x93, 0xf2, 0x5d, 0x94, 0x69, 0x3b, 0xbc,
+0x68, 0x2e, 0x02, 0x6c, 0x07, 0x7d, 0xa9,
+0x2a, 0xc7, 0xf7, 0xf9, 0x5c, 0xfd, 0x05,
+0xb5, 0x5b, 0x5c, 0x07, 0xab, 0x26, 0xf5,
+0xd5, 0xbd, 0x34, 0xdc, 0xf7, 0x73, 0x6e,
+0x07, 0xc4, 0xca, 0x72, 0xe9, 0x82, 0x3f,
+0x6f, 0x79, 0xff, 0xd7, 0xb6, 0xbe, 0x7a,
+0xf7, 0xab, 0x49, 0x8c, 0xd5, 0xa2, 0x34,
+0xb8, 0x9b, 0xe7, 0xca, 0x1f, 0x6e, 0x29,
+0x08, 0x7e, 0xd9, 0x44, 0x7f, 0xda, 0x23,
+0x0e, 0x99, 0xf7, 0xd0, 0x2f, 0x12, 0x68,
+0xac, 0xbc, 0x41, 0xe0, 0x40, 0x5a, 0x3b,
+0xee, 0x85, 0xb2, 0x49, 0x67, 0xd3, 0xee,
+0xe2, 0x24, 0x5f, 0xb8, 0x89, 0x45, 0xad,
+0xeb, 0x92, 0xf1, 0x86, 0x43, 0x15, 0x7e,
+0x21, 0xbc, 0x06, 0xba, 0xe3, 0x78, 0xf8,
+0x85, 0xc0, 0x90, 0x71, 0x16, 0xdb, 0x6f,
+0x21, 0x0b, 0xd4, 0x69, 0x34, 0x35, 0x4e,
+0x1c, 0xc1, 0x83, 0x2b, 0x4e, 0x2f, 0x2f,
+0xb4, 0xf5, 0x2b, 0x94, 0x91, 0xdf, 0x97,
+0x65, 0xd0, 0x79, 0x74, 0xd7, 0x61, 0x12,
+0x3e, 0xf8, 0xaa, 0xfe, 0x74, 0x54, 0x09,
+0x38, 0x0c, 0xdf, 0x0f, 0x2c, 0x21, 0xb7,
+0x75, 0xf7, 0xb7, 0x39, 0x48, 0xdb, 0xbe,
+0xee, 0x88, 0x61, 0xb9, 0x46, 0x2a, 0x5e,
+0x34, 0xf9, 0x27, 0x9b, 0xeb, 0x9a, 0x68,
+0xba, 0xc6, 0x9f, 0x5d, 0xc7, 0xf3, 0x02,
+0x93, 0x9a, 0xf5, 0x2f, 0xa8, 0xe0, 0xac,
+0x9d, 0xb8, 0x2d, 0x2e, 0xd2, 0x2e, 0x19,
+0x40, 0x31, 0xa2, 0xe9, 0x40, 0x8d, 0xb5,
+0x0c, 0xda, 0x09, 0xe2, 0x70, 0x5a, 0x57,
+0x78, 0x50, 0x26, 0xfe, 0xa1, 0x75, 0x37,
+0x74, 0xa3, 0x19, 0xd9, 0xf3, 0x9b, 0xf5,
+0x66, 0x12, 0x1e, 0xb9, 0x1a, 0x25, 0xad,
+0x94, 0x64, 0x5e, 0x82, 0x93, 0xc6, 0x66,
+0xd6, 0xeb, 0x48, 0xff, 0x8f, 0x7d, 0xa1,
+0x9d, 0x24, 0xd2, 0xf5, 0x84, 0xf9, 0x1b,
+0xa5, 0xaa, 0xed, 0xec, 0xb5, 0xc4, 0x9e,
+0xaf, 0xda, 0x54, 0x5d, 0x32, 0xfd, 0xe1,
+0x4f, 0x77, 0xa9, 0xdb, 0x77, 0x50, 0x54,
+0x75, 0xcd, 0x4e, 0x9a, 0xd9, 0x87, 0x25,
+0xae, 0x5a, 0x73, 0x36, 0x5d, 0x80, 0xa8,
+0x70, 0x76, 0x8a, 0xc5, 0x42, 0xb2, 0xc1,
+0xed, 0x8e, 0x3b, 0xf8, 0x1c, 0xbf, 0x99,
+0x8a, 0x9b, 0x5d, 0x83, 0xf8, 0x55, 0x91,
+0xd9, 0xd9, 0xc0, 0xa8, 0xfc, 0x42, 0xdb,
+0xd8, 0x42, 0xcf, 0x65, 0x45, 0x14, 0xac,
+0x06, 0x65, 0x93, 0x74, 0x3c, 0xa0, 0x61,
+0x24, 0xb1, 0x17, 0x4c, 0xab, 0xb4, 0x67,
+0xd5, 0xbc, 0x0a, 0x2d, 0x42, 0xea, 0x87,
+0xad, 0x56, 0xb4, 0xf7, 0xb0, 0xed, 0x44,
+0xff, 0xe6, 0x10, 0xec, 0x19, 0x22, 0xb6,
+0xfc, 0x1f, 0xc4, 0x3c, 0x6c, 0x43, 0x7f,
+0x0a, 0xb6, 0x9c, 0xed, 0x3d, 0x66, 0xd3,
+0x43, 0xc8, 0xe5, 0x33, 0x13, 0x1d, 0xd1,
+0xaa, 0x0b, 0xa6, 0x59, 0xed, 0x60, 0xb2,
+0xa8, 0x5e, 0xee, 0x00, 0x2f, 0x73, 0xf3,
+0xa3, 0xdc, 0x8d, 0x9a, 0xb6, 0xa3, 0x6f,
+0x9a, 0x20, 0x9f, 0xfe, 0xb9, 0xb8, 0xe8,
+0x49, 0x22, 0x93, 0xe2, 0xc0, 0xf1, 0x66,
+0xe0, 0xbe, 0x32, 0x94, 0x13, 0x4b, 0x4a,
+0x70, 0xa0, 0xfe, 0xfb, 0xa3, 0xe7, 0x99,
+0xd0, 0x9d, 0xc1, 0x89, 0x91, 0xe4, 0x78,
+0xc3, 0xf0, 0xb2, 0xae, 0x27, 0x71, 0xc8,
+0x87, 0x1d, 0xaa, 0x40, 0x44, 0x23, 0x68,
+0x9f, 0x51, 0xd5, 0x8b, 0x88, 0xf3, 0x29,
+0x2f, 0xf5, 0xdf, 0x31, 0xa5, 0xcd, 0x8e,
+0xc2, 0x16, 0x2f, 0x0f, 0x69, 0x45, 0xb8,
+0x9b, 0x23, 0xda, 0x29, 0xa6, 0x3c, 0xb8,
+0xc4, 0x81, 0x5c, 0x25, 0x1e, 0x88, 0x7e,
+0x30, 0x47, 0xe4, 0x4b, 0xea, 0x6a, 0xb2,
+0xe7, 0x78, 0x21, 0xe0, 0xec, 0x4f, 0x36,
+0xad, 0x1a, 0xe1, 0x1c, 0x9c, 0x83, 0xfb,
+0x51, 0xb1, 0x0b, 0x92, 0x1d, 0x04, 0xb2,
+0xe3, 0xf8, 0xf9, 0xb0, 0x67, 0x7a, 0x55,
+0x11, 0xb9, 0x24, 0xc5, 0x8d, 0x25, 0x74,
+0x49, 0x47, 0xb8, 0x6b, 0xc2, 0xe3, 0x84,
+0xef, 0x3a, 0x32, 0x46, 0x60, 0x1f, 0x5e,
+0xa4, 0x5f, 0x9e, 0x20, 0x3a, 0x6e, 0xc5,
+0x7e, 0x4b, 0xa5, 0x05, 0x46, 0xa4, 0x15,
+0xdd, 0x60, 0x3c, 0xda, 0xd9, 0x52, 0x20,
+0x59, 0xa3, 0x12, 0x6d, 0x03, 0xda, 0x88,
+0x60, 0xd6, 0xeb, 0x6b, 0x2a, 0x38, 0x35,
+0xe6, 0x4a, 0xbf, 0x57, 0xe9, 0x1d, 0x50,
+0x40, 0xd9, 0x74, 0xe9, 0xc5, 0x03, 0x2a,
+0xde, 0x1e, 0x95, 0xc7, 0xd4, 0xd2, 0x58,
+0x70, 0xdb, 0x20, 0xaa, 0x46, 0x94, 0x55,
+0xd8, 0x19, 0xc7, 0xe6, 0xd4, 0x9b, 0x25,
+0x4f, 0x5d, 0xf9, 0x57, 0x9d, 0xb3, 0x21,
+0x31, 0x95, 0x7c, 0xb6, 0xcb, 0x67, 0x4d,
+0x2f, 0xd7, 0xa7, 0xdd, 0xe5, 0x08, 0xf7,
+0x2e, 0xab, 0x37, 0xee, 0xb0, 0x78, 0x51,
+0x9b, 0xfd, 0xda, 0x9f, 0xe2, 0x8f, 0xc0,
+0x7d, 0xfd, 0x72, 0xd6, 0xa1, 0x5f, 0x05,
+0x73, 0x9b, 0x8d, 0xbf, 0xb1, 0x21, 0xd1,
+0x6f, 0x9b, 0x6d, 0x40, 0x68, 0x0e, 0x68,
+0x5c, 0x56, 0xfe, 0xae, 0xf1, 0xa6, 0x19,
+0x18, 0x16, 0xb9, 0xa5, 0xc3, 0x3b, 0x2c,
+0xcc, 0x15, 0x6d, 0xad, 0x01, 0xc3, 0x9c,
+0xcd, 0xce, 0xd2, 0xdb, 0x17, 0x07, 0x54,
+0x44, 0x2b, 0xa5, 0xaf, 0xe7, 0x65, 0xe8,
+0x2e, 0x71, 0xf3, 0xe3, 0x0d, 0xb1, 0xe4,
+0x07, 0x57, 0xb9, 0x83, 0x9f, 0xae, 0x98,
+0x1f, 0xc0, 0x1a, 0xc9, 0x94, 0x22, 0xe1,
+0x4c, 0xad, 0x1e, 0xc8, 0x6b, 0x34, 0x9a,
+0x0a, 0xeb, 0xd4, 0x83, 0x0e, 0xb1, 0x34,
+0x56, 0xdb, 0x9a, 0xca, 0xbb, 0x0d, 0x34,
+0x9c, 0x38, 0x74, 0x6b, 0xee, 0x67, 0x65,
+0xb4, 0xee, 0xb3, 0x65, 0xc4, 0x22, 0xeb,
+0x4b, 0x7d, 0x67, 0xe5, 0x83, 0x8d, 0xf4,
+0x92, 0x02, 0x88, 0xad, 0x85, 0xe7, 0xbd,
+0xfd, 0x9f, 0xd8, 0x55, 0x86, 0x8e, 0x0d,
+0x1a, 0xff, 0x1a, 0x0a, 0x5d, 0xf9, 0x0a,
+0xc3, 0xa3, 0x66, 0x35, 0xab, 0x09, 0x3c,
+0xfc, 0x3e, 0x81, 0xe7, 0xd2, 0xa2, 0x7c,
+0xf2, 0xb3, 0x0a, 0x18, 0x1b, 0xcb, 0xfa,
+0x3f, 0x6c, 0x2a, 0x9c, 0x56, 0x54, 0x6c,
+0xf6, 0xf6, 0xb8, 0xae, 0x63, 0xd0, 0x3b,
+0x03, 0xad, 0xc2, 0xb5, 0xe3, 0x17, 0x7e,
+0x60, 0x04, 0x76, 0x12, 0x2b, 0x86, 0x6a,
+0x9e, 0x7d, 0xa4, 0x92, 0x14, 0x61, 0x47,
+0x76, 0xb4, 0x8c, 0x27, 0x4e, 0x4b, 0xc6,
+0x52, 0x63, 0x8f, 0xa0, 0x17, 0xf6, 0x32,
+0x2c, 0x91, 0x5c, 0x14, 0x20, 0xb5, 0xf7,
+0x5a, 0xf2, 0x4e, 0xcf, 0xd3, 0x7b, 0x04,
+0xe6, 0xb9, 0xe5, 0x09, 0xa0, 0x53, 0xfd,
+0x60, 0x0c, 0x83, 0xb2, 0xb9, 0xcb, 0xd2,
+0xfb, 0xc3, 0x16, 0x48, 0x8d, 0xcf, 0xec,
+0xd8, 0xf2, 0x68, 0x46, 0x8f, 0x5a, 0x26,
+0x1c, 0x4e, 0x31, 0x7e, 0x65, 0x4b, 0xc7,
+0xd6, 0x4e, 0x9d, 0xe4, 0x06, 0x98, 0x1e,
+0xef, 0x79, 0x41, 0xfe, 0x9d, 0xe1, 0x68,
+0xbf, 0x45, 0x17, 0xb7, 0x34, 0x90, 0x7c,
+0xa6, 0xf2, 0xe7, 0xa7, 0x59, 0xc0, 0x12,
+0xb0, 0xce, 0x62, 0x1c, 0x22, 0x31, 0x52,
+0x8d, 0x3f, 0x55, 0x41, 0x92, 0x0a, 0xa5,
+0x1e, 0x1d, 0x3c, 0x84, 0xd2, 0x51, 0xe7,
+0x6b, 0x4a, 0xb5, 0x10, 0x01, 0xec, 0x76,
+0x5b, 0xda, 0x57, 0xe4, 0x11, 0xcd, 0x6f,
+0x40, 0x3e, 0xe6, 0x48, 0x22, 0x86, 0xd6,
+0xb6, 0x7c, 0x43, 0x84, 0x82, 0x70, 0x3e,
+0x35, 0x24, 0xaf, 0x79, 0x55, 0xe5, 0x36,
+0xcf, 0x3e, 0x02, 0xcf, 0x25, 0x02, 0xb6,
+0xd4, 0xc3, 0x17, 0x68, 0xba, 0x60, 0x94,
+0xf4, 0x3d, 0x7a, 0x0b, 0x48, 0xc1, 0xc6,
+0xd6, 0xf3, 0x1a, 0x08, 0x05, 0x20, 0x3e,
+0x88, 0x59, 0x83, 0x75, 0xa9, 0x1f, 0xd3,
+0x79, 0x81, 0x81, 0xac, 0xb3, 0x94, 0xd1,
+0x67, 0x5b, 0x6e, 0xcd, 0x04, 0x79, 0x91,
+0x8e, 0x6e, 0xa5, 0x2a, 0x06, 0x9d, 0x49,
+0x7c, 0x58, 0x91, 0xcf, 0xae, 0x88, 0xc0,
+0xc9, 0x19, 0xb4, 0xcc, 0x4e, 0x6e, 0x06,
+0x50, 0xf6, 0x3c, 0x3e, 0xc7, 0x48, 0xb1,
+0x9e, 0x32, 0xe3, 0x54, 0x05, 0xac, 0x41,
+0xd8, 0x31, 0xb6, 0xb3, 0x6e, 0xf1, 0x4d,
+0xfe, 0xd4, 0x38, 0x2e, 0xff, 0x2f, 0x3a,
+0x61, 0xa3, 0xe7, 0x77, 0x99, 0xcb, 0x27,
+0xb8, 0x26, 0xab, 0xc4, 0x10, 0xe3, 0xdf,
+0x93, 0x05, 0x2b, 0x95, 0x7e, 0xca, 0x2e,
+0x6c, 0xe2, 0x9b, 0x29, 0x67, 0xfd, 0x73,
+0x91, 0x61, 0x2b, 0xa4, 0x5d, 0xea, 0x95,
+0xe2, 0x63, 0xae, 0xe8, 0x43, 0x98, 0x2e,
+0x15, 0x09, 0xf4, 0x98, 0x5d, 0x9c, 0x98,
+0x4f, 0x74, 0x63, 0x9d, 0x5d, 0x93, 0xda,
+0x26, 0x36, 0xb7, 0xb0, 0xf9, 0xe5, 0x04,
+0x9c, 0xeb, 0xaf, 0x94, 0x72, 0xa1, 0xf5,
+0xf1, 0x7f, 0xa1, 0xeb, 0x32, 0x0a, 0x9a,
+0x90, 0xc5, 0xbb, 0xb8, 0x55, 0x05, 0x91,
+0xe0, 0x0c, 0xd6, 0x1e, 0x8f, 0xfd, 0xd8,
+0xe7, 0xf5, 0xb4, 0x2f, 0xf3, 0xa4, 0xe1,
+0x1b, 0x95, 0x30, 0xcf, 0x1f, 0x72, 0xfc,
+0xbb, 0x6d, 0x4d, 0x06, 0x80, 0x68, 0xe0,
+0x98, 0x77, 0x97, 0x66, 0x2c, 0x48, 0x3b,
+0xa6, 0xb9, 0x1d, 0x76, 0x02, 0x6c, 0x7a,
+0x9e, 0x3e, 0xf9, 0x2f, 0x4b, 0x1a, 0xae,
+0x34, 0x03, 0x39, 0xe2, 0x7f, 0x1e, 0x5a,
+0x29, 0x8d, 0x45, 0xac, 0x2e, 0x85, 0x91,
+0xd0, 0x37, 0xcf, 0xe0, 0x84, 0x02, 0x13,
+0x13, 0x69, 0xd7, 0x8a, 0xc6, 0xbc, 0x07,
+0xb4, 0x1c, 0xa0, 0xa7, 0x18, 0x73, 0x26,
+0x8d, 0xad, 0xae, 0x67, 0xc3, 0x83, 0x88,
+0x46, 0x52, 0x90, 0x23, 0x40, 0xd1, 0x04,
+0x50, 0xbe, 0x57, 0x0c, 0x37, 0x13, 0x8f,
+0x29, 0x8a, 0xcd, 0xc0, 0x67, 0xb7, 0x97,
+0xfa, 0x41, 0xf5, 0x88, 0x2f, 0x63, 0x4a,
+0x5b, 0xd2, 0x60, 0xc0, 0x76, 0xfa, 0xa8,
+0xbb, 0xfc, 0x8a, 0xc1, 0x07, 0x2a, 0x31,
+0x01, 0xf8, 0x31, 0x43, 0xdc, 0x13, 0x86,
+0xb1, 0x46, 0x6d, 0xb8, 0xd5, 0xc7, 0x14,
+0xa8, 0xab, 0x99, 0xd6, 0x54, 0x48, 0x9e,
+0x60, 0xf9, 0xf5, 0x74, 0xd9, 0xa9, 0xcc,
+0xbd, 0x1c, 0xa9, 0xce, 0xc2, 0xa6, 0x18,
+0x21, 0xad, 0x44, 0x72, 0x71, 0x8d, 0xd7,
+0x91, 0xcd, 0x4f, 0x9d, 0x98, 0x39, 0x2e,
+0x62, 0xe2, 0xbf, 0x8b, 0xab, 0xb0, 0x8c,
+0xda, 0xa7, 0x44, 0x45, 0xcf, 0xff, 0xfd,
+0x0e, 0xee, 0xd7, 0xcb, 0xbb, 0x09, 0x6d,
+0x86, 0xb2, 0x31, 0x54, 0xcd, 0xca, 0x49,
+0x67, 0x5c, 0x7f, 0x49, 0x90, 0xf3, 0xb3,
+0x95, 0x8d, 0x25, 0xed, 0x4e, 0x84, 0x28,
+0xb3, 0xbf, 0x68, 0xc1, 0xc6, 0x32, 0xa0,
+0x66, 0xb0, 0x07, 0x25, 0xc5, 0x26, 0xfb,
+0x76, 0x9e, 0x73, 0xed, 0x63, 0x19, 0x2f,
+0xb1, 0x3e, 0xb0, 0xc7, 0x8c, 0xd8, 0x7d,
+0x60, 0xb5, 0x0a, 0x0c, 0x57, 0x0d, 0xac,
+0xa5, 0xa3, 0xa4, 0x94, 0x4b, 0x07, 0x7d,
+0xc3, 0x4e, 0x99, 0x32, 0x34, 0x95, 0x7b,
+0x99, 0xea, 0x30, 0x93, 0x16, 0x81, 0x61,
+0x86, 0x6b, 0xa7, 0x28, 0xd9, 0x62, 0xf0,
+0x0e, 0x48, 0x5f, 0xad, 0x97, 0x1b, 0x8b,
+0x14, 0x4e, 0x10, 0xa7, 0xac, 0xf7, 0xa1,
+0x86, 0x43, 0x53, 0x73, 0x90, 0xc4, 0x4b,
+0xb9, 0xcb, 0x56, 0x8a, 0x54, 0xd0, 0xbb,
+0xa5, 0xcb, 0xbb, 0x7b, 0xb1, 0xb0, 0x22,
+0x82, 0x58, 0x85, 0xdd, 0x80, 0x78, 0xfb,
+0x2d, 0x67, 0x23, 0x38, 0xdb, 0x96, 0xe1,
+0x98, 0xc6, 0x07, 0xed, 0xd0, 0x8a, 0xeb,
+0x29, 0xda, 0xdd, 0xc9, 0x14, 0xea, 0xe9,
+0xeb, 0x3b, 0x5e, 0xd1, 0x06, 0x80, 0xb8,
+0x3e, 0x87, 0x49, 0x23, 0x5c, 0xcf, 0x47,
+0x20, 0xd4, 0x84, 0x2c, 0xba, 0xc7, 0x4b,
+0x0c, 0xf5, 0xfd, 0xa9, 0x36, 0xdd, 0x32,
+0x97, 0x78, 0x6b, 0x52, 0x4a, 0xac, 0x73,
+0xb6, 0x38, 0x58, 0x6c, 0xc4, 0x2c, 0xbe,
+0x57, 0xbc, 0xd2, 0x29, 0xad, 0xb0, 0xfc,
+0xd9, 0xcf, 0x0d, 0x4d, 0x8d, 0x85, 0x80,
+0x50, 0x8e, 0x35, 0xf1, 0x9a, 0x9f, 0x19,
+0x05, 0xb8, 0x65, 0x0f, 0x1b, 0xc5, 0xca,
+0xb9, 0xbb, 0x66, 0xf9, 0x18, 0x6a, 0x2b,
+0x45, 0x6f, 0x98, 0xe5, 0x09, 0xd4, 0x7b,
+0x84, 0x50, 0x3d, 0x44, 0x58, 0xf7, 0xa7,
+0xc8, 0xf3, 0xef, 0xa1, 0x5c, 0x0e, 0x9c,
+0x7f, 0xbf, 0x6d, 0xfd, 0x54, 0xcc, 0xe0,
+0xf8, 0xa9, 0x41, 0x85, 0x55, 0xfa, 0x0e,
+0xa2, 0x89, 0xc8, 0xcf, 0xd8, 0x6e, 0x6b,
+0x1d, 0x96, 0x9f, 0x48, 0xf9, 0xa2, 0x67,
+0xff, 0xf0, 0x86, 0x3d, 0x03, 0xc5, 0x73,
+0x5c, 0xeb, 0x9f, 0xe1, 0x1e, 0x5d, 0x06,
+0x59, 0x2e, 0xfa, 0x69, 0x41, 0x6f, 0x8b,
+0x5a, 0x51, 0x9a, 0x75, 0x0d, 0x6a, 0x94,
+0x51, 0xac, 0xb9, 0xb4, 0x31, 0xe1, 0xea,
+0x38, 0xe4, 0x91, 0x1a, 0x59, 0xb1, 0xd5,
+0x94, 0x3a, 0x7a, 0x9f, 0x5d, 0xb6, 0xe0,
+0x46, 0x33, 0x5c, 0x2d, 0xb4, 0x5e, 0x5d,
+0xaf, 0x0a, 0x24, 0x0a, 0xae, 0x39, 0xe5,
+0xef, 0xc4, 0xb1, 0x26, 0xad, 0x42, 0x1f,
+0xc3, 0x12, 0x79, 0xb8, 0x60, 0xcc, 0x23,
+0x28, 0x6d, 0x11, 0x41, 0x27, 0x08, 0x8f,
+0xbd, 0x12, 0xbe, 0x71, 0x5f, 0x48, 0x99,
+0x88, 0xa0, 0xa0, 0x34, 0xb5, 0x0e, 0x72,
+0xe3, 0x99, 0x7d, 0x88, 0x14, 0x1c, 0x3e,
+0x3d, 0x9b, 0x1e, 0xe0, 0x6b, 0x2b, 0xb6,
+0xd6, 0x3d, 0xe3, 0x86, 0xdf, 0x31, 0x61,
+0x5e, 0x4a, 0xba, 0xf6, 0x9d, 0xd4, 0xf9,
+0x8c, 0xdf, 0x59, 0x8a, 0x47, 0x2d, 0x04,
+0x95, 0x64, 0x2c, 0x0f, 0x9e, 0xcb, 0xf9,
+0x08, 0x37, 0x47, 0x43, 0x23, 0xe5, 0x16,
+0x5b, 0x73, 0xbe, 0xc1, 0x8f, 0x24, 0x59,
+0x36, 0xa7, 0xa9, 0xa8, 0x63, 0xd5, 0x25,
+0xfc, 0xf7, 0x64, 0x6a, 0x16, 0x2d, 0x03,
+0xe3, 0x44, 0x2a, 0xc8, 0xa9, 0x0a, 0xe4,
+0xb8, 0x11, 0xc0, 0xd8, 0x7f, 0x82, 0x96,
+0x79, 0x79, 0x0c, 0xdb, 0xe0, 0x09, 0xfb,
+0x0b, 0x84, 0x7a, 0x44, 0x91, 0x68, 0x15,
+0xec, 0x7d, 0x20, 0x43, 0x87, 0xd8, 0x99,
+0x4c, 0xda, 0xa5, 0xf1, 0xe1, 0xa8, 0xfb,
+0x7e, 0x07, 0x2a, 0x98, 0x43, 0x87, 0x69,
+0xa3, 0xb0, 0x68, 0xce, 0xdd, 0xad, 0xb0,
+0x1f, 0x26, 0x1e, 0x60, 0x4f, 0x92, 0xc8,
+0x74, 0xb3, 0xee, 0xee, 0x53, 0x73, 0x97,
+0x03, 0xa0, 0x5a, 0x84, 0x9f, 0x9b, 0x79,
+0x2b, 0x6b, 0xbb, 0xec, 0x95, 0xa6, 0x97,
+0x01, 0x47, 0x45, 0xd7, 0x07, 0x77, 0x86,
+0x19, 0x43, 0x8d, 0x9a, 0x44, 0x7c, 0xb5,
+0xfc, 0xa3, 0x47, 0x2b, 0xaf, 0x60, 0x26,
+0x6e, 0x7e, 0x85, 0xb6, 0x72, 0x26, 0xec,
+0x11, 0xe4, 0xf9, 0x11, 0xea, 0x0f, 0xba,
+0xe1, 0x17, 0x3c, 0xe6, 0x73, 0x4d, 0x03,
+0x25, 0x1d, 0xcf, 0x45, 0x07, 0x78, 0x01,
+0xfa, 0x31, 0x88, 0xc9, 0xe1, 0x23, 0x72,
+0x0f, 0x29, 0x19, 0x54, 0xa9, 0x81, 0xaa,
+0x0e, 0xa5, 0x76, 0x1a, 0xb9, 0x38, 0xbd,
+0xae, 0x53, 0xf8, 0xa6, 0x53, 0x4b, 0xc9,
+0xa8, 0x80, 0xeb, 0xbc, 0x24, 0xf6, 0xf3,
+0xb9, 0x3d, 0x53, 0x53, 0xf0, 0x13, 0xfe,
+0x3b, 0x5a, 0x60, 0xb9, 0x8a, 0x32, 0x7e,
+0x7a, 0x6f, 0xd2, 0xe5, 0x1b, 0x23, 0x66,
+0xb4, 0x3b, 0xc3, 0xf6, 0x1f, 0x62, 0xd5,
+0xe4, 0x26, 0x62, 0x38, 0xc0, 0x7f, 0xce,
+0xa4, 0x14, 0x11, 0xe9, 0xfa, 0x97, 0x64,
+0x4e, 0x0f, 0x82, 0x6f, 0x82, 0x82, 0x2d,
+0x2a, 0xd0, 0xc0, 0xd3, 0x66, 0x37, 0x87,
+0x1b, 0x9d, 0xaf, 0x2c, 0xbd, 0xe3, 0xb2,
+0x15, 0x36, 0x75, 0x65, 0x1c, 0x68, 0xbc,
+0x4d, 0x64, 0xe6, 0x50, 0x82, 0x0a, 0x4f,
+0x4b, 0x0d, 0x2c, 0x89, 0x63, 0x50, 0x18,
+0x48, 0x3c, 0xcf, 0xa8, 0xa8, 0xd8, 0x03,
+0xb8, 0xab, 0xed, 0x3a, 0x81, 0x1e, 0x90,
+0x00, 0x37, 0xd6, 0x45, 0xb5, 0x3b, 0xaf,
+0x3f, 0xa2, 0x65, 0xed, 0x94, 0xcf, 0x64,
+0xb7, 0xa5, 0x8c, 0xc5, 0xed, 0x82, 0xac,
+0x80, 0x08, 0x7e, 0xd2, 0x5b, 0x80, 0xfd,
+0xf3, 0xc7, 0x7c, 0x1b, 0xb0, 0x94, 0xb3,
+0xd4, 0x75, 0x3c, 0xf6, 0x66, 0x84, 0xb1,
+0xc5, 0x3c, 0x16, 0x9c, 0x02, 0x65, 0xb6,
+0x32, 0x7c, 0xd6, 0xbf, 0xf7, 0x38, 0xab,
+0xc3, 0x66, 0xa3, 0x2f, 0x19, 0x00, 0x40,
+0xd3, 0xd0, 0x97, 0xf2, 0x77, 0x09, 0x57,
+0x68, 0xcf, 0xce, 0x25, 0x7e, 0x7c, 0xec,
+0x31, 0xf6, 0xed, 0x1d, 0xdc, 0xbb, 0xa3,
+0x4b, 0x24, 0xb3, 0x94, 0x56, 0xed, 0xd8,
+0x59, 0x01, 0x4c, 0x45, 0xff, 0x9d, 0x8c,
+0xbf, 0xa1, 0x40, 0x19, 0xdc, 0x17, 0x04,
+0x8d, 0xd4, 0x43, 0x9e, 0xa0, 0x0a, 0xca,
+0x9d, 0x1e, 0xc7, 0xf5, 0x50, 0xad, 0x6b,
+0x99, 0x75, 0xda, 0x4b, 0xfc, 0x4f, 0x92,
+0x5e, 0x3c, 0x49, 0xb7, 0x0e, 0xf6, 0xda,
+0x35, 0xa7, 0x17, 0xd3, 0xb7, 0x30, 0xc9,
+0x7b, 0x50, 0xcc, 0x09, 0x29, 0xa4, 0xfa,
+0xc0, 0x63, 0xaf, 0xee, 0x0e, 0xfb, 0x06,
+0x69, 0x4a, 0x2f, 0x38, 0xf9, 0x3e, 0x42,
+0x22, 0xd1, 0x08, 0xe6, 0x75, 0xd1, 0x07,
+0xb6, 0x76, 0x11, 0x60, 0xe7, 0x03, 0x07,
+0x11, 0x3a, 0x2f, 0x38, 0x5e, 0x2b, 0xc7,
+0x65, 0xb6, 0x2c, 0x62, 0xf6, 0x4c, 0xb7,
+0xb6, 0xae, 0x56, 0x4c, 0x6d, 0xfe, 0x86,
+0xd6, 0x8b, 0x25, 0x04, 0xc1, 0x9c, 0x8c,
+0x87, 0x66, 0x1a, 0x7b, 0xe9, 0xf4, 0x0c,
+0xc0, 0xdb, 0xca, 0xf2, 0x8a, 0x8f, 0x0b,
+0xdb, 0x9d, 0xfe, 0xf5, 0x38, 0x09, 0x74,
+0xac, 0xd8, 0x7e, 0x7c, 0x1b, 0xc4, 0xda,
+0x71, 0x73, 0x00, 0x0b, 0x3f, 0x1b, 0xb0,
+0xbc, 0xd4, 0xe4, 0xf3, 0x14, 0x43, 0xb7,
+0x51, 0xd0, 0x38, 0x82, 0x77, 0x39, 0xa2,
+0x16, 0x0e, 0xc5, 0xd5, 0x90, 0x70, 0xb2,
+0x92, 0x4b, 0xb7, 0xb3, 0x7c, 0xad, 0x3a,
+0xf9, 0xd6, 0x53, 0x3f, 0xf8, 0xdb, 0x03,
+0x10, 0x14, 0x4f, 0x7c, 0x47, 0x64, 0x24,
+0xd2, 0xd8, 0xec, 0x72, 0x73, 0xc8, 0x21,
+0x81, 0xcc, 0xb5, 0x11, 0xd2, 0x8c, 0xbc,
+0xe1, 0x27, 0xa7, 0xe5, 0x76, 0xae, 0x92,
+0x19, 0x23, 0x99, 0x43, 0x8f, 0x3b, 0xee,
+0xd5, 0x62, 0xf8, 0x5c, 0xbf, 0x9f, 0xb9,
+0xa8, 0x65, 0xdb, 0xf6, 0x86, 0xff, 0x9b,
+0x2c, 0xe6, 0x80, 0x0b, 0x80, 0x17, 0x12,
+0x48, 0x81, 0x81, 0x79, 0x7d, 0xae, 0xc9,
+0x15, 0x79, 0x45, 0xa7, 0x45, 0x3a, 0x97,
+0xf5, 0x9a, 0x67, 0xaf, 0x07, 0x35, 0x28,
+0x61, 0xf1, 0x16, 0x0b, 0x89, 0x5e, 0xa8,
+0x63, 0x38, 0x24, 0xd9, 0x21, 0x7b, 0xa4,
+0x4e, 0x63, 0x4e, 0x26, 0xc5, 0x31, 0xcf,
+0x9e, 0x9b, 0x7e, 0xce, 0x94, 0x58, 0x95,
+0x63, 0x36, 0x88, 0xa8, 0x96, 0x1b, 0xd5,
+0xfd, 0x24, 0xfc, 0xc3, 0xaf, 0x39, 0xb2,
+0x12, 0x18, 0xb7, 0xe4, 0x93, 0xb3, 0x7c,
+0x73, 0x38, 0x2d, 0x63, 0xb6, 0x3b, 0xce,
+0xa9, 0x0e, 0xb8, 0xa5, 0x4b, 0x97, 0x63,
+0x92, 0xcf, 0xd9, 0xd9, 0x67, 0x40, 0x17,
+0x42, 0x4b, 0xc8, 0xdf, 0x4c, 0x14, 0x3b,
+0x3c, 0x23, 0x91, 0xf2, 0x57, 0x38, 0x23,
+0x8e, 0x66, 0xf0, 0xfd, 0x3b, 0x9e, 0x4d,
+0x93, 0x23, 0x49, 0xed, 0x96, 0xf7, 0x1b,
+0x11, 0x55, 0x55, 0x86, 0x2f, 0x09, 0xe1,
+0x57, 0xa8, 0xc2, 0x54, 0x1a, 0x81, 0x85,
+0x50, 0x64, 0xfc, 0x16, 0x0b, 0x0c, 0x20,
+0x24, 0xb5, 0x62, 0x8f, 0x21, 0xc1, 0xe8,
+0x14, 0x7e, 0xec, 0x8c, 0xa4, 0x82, 0x3b,
+0xb9, 0xfc, 0x3e, 0xfd, 0x96, 0x17, 0xe0,
+0xcf, 0x6f, 0x21, 0x67, 0xb5, 0x76, 0x39,
+0x8b, 0xf6, 0x98, 0xff, 0xbb, 0x7f, 0xd6,
+0x8c, 0xdb, 0x4a, 0xba, 0xdf, 0xd6, 0x52,
+0xfa, 0x53, 0x2e, 0x82, 0x7e, 0x1c, 0x1e,
+0x63, 0x7c, 0x35, 0x39, 0xde, 0x9f, 0x5f,
+0xc4, 0xbe, 0xe2, 0xcd, 0xcf, 0x43, 0x40,
+0x55, 0x98, 0x6a, 0x21, 0x8e, 0xac, 0x93,
+0x90, 0x98, 0x6f, 0xcf, 0xe5, 0x88, 0x13,
+0x27, 0x5c, 0x88, 0xad, 0x16, 0x9a, 0x2f,
+0x5f, 0x8b, 0x88, 0xfd, 0x01, 0x9a, 0x75,
+0x56, 0x5f, 0xd4, 0x6f, 0xc7, 0x20, 0x30,
+0xe2, 0xf6, 0x97, 0x77, 0xee, 0xa1, 0xd4,
+0x50, 0x26, 0x3a, 0x3f, 0x9e, 0x5a, 0x75,
+0xa8, 0xce, 0xf5, 0x4f, 0x2e, 0xfc, 0xee,
+0x87, 0xb2, 0xe9, 0x92, 0x5e, 0xce, 0x09,
+0x12, 0x1b, 0x56, 0x3e, 0x28, 0xb1, 0x2c,
+0x1f, 0xe4, 0x59, 0x09, 0x75, 0x1a, 0xdf,
+0x3e, 0x91, 0x79, 0x0f, 0x71, 0x36, 0x6d,
+0xb2, 0xcd, 0x82, 0x0c, 0x9d, 0x3d, 0xfa,
+0x0f, 0x8c, 0xf8, 0xc2, 0x65, 0xa6, 0xae,
+0x42, 0xe5, 0x73, 0x0d, 0x6e, 0x26, 0x92,
+0x8e, 0x1d, 0x88, 0x2f, 0x2c, 0xa5, 0x92,
+0x8b, 0xac, 0xa8, 0x60, 0x1d, 0xbc, 0xbe,
+0x03, 0x04, 0x53, 0x5d, 0xf9, 0x33, 0x12,
+0x8b, 0xc2, 0x6c, 0x5a, 0xf4, 0x68, 0x4d,
+0x94, 0x65, 0x06, 0xa5, 0xa3, 0x06, 0x62,
+0x82, 0xb6, 0x4d, 0xf3, 0x76, 0x9d, 0xdc,
+0x69, 0xb8, 0xef, 0xf5, 0x80, 0xa5, 0xc6,
+0xfe, 0xe1, 0xcc, 0xb3, 0x5a, 0xa9, 0x8a,
+0x70, 0x33, 0xc6, 0x9f, 0x33, 0xdb, 0x51,
+0xc1, 0x10, 0x00, 0xea, 0x2d, 0x37, 0x51,
+0x63, 0x55, 0xe7, 0x7f, 0x75, 0x41, 0x9f,
+0x7a, 0x79, 0xb7, 0x05, 0xfa, 0xf4, 0x11,
+0x05, 0xf2, 0x8b, 0x5e, 0xc0, 0x34, 0x26,
+0x25, 0xa0, 0x00, 0xe5, 0xf5, 0x7a, 0x82,
+0xec, 0x11, 0xdf, 0xd4, 0x68, 0x87, 0x69,
+0x81, 0x40, 0xff, 0x1a, 0x3d, 0xc7, 0x37,
+0xe1, 0x94, 0x42, 0xa5, 0xdf, 0xc0, 0xeb,
+0x38, 0x82, 0x2d, 0x33, 0xf7, 0x9d, 0x6c,
+0x7c, 0xee, 0xa4, 0x3e, 0x37, 0x73, 0xfc,
+0x3b, 0x2c, 0xd9, 0x0c, 0x5b, 0x7a, 0x18,
+0x9c, 0xe3, 0x53, 0xc5, 0xbb, 0x02, 0xc2,
+0x4a, 0x03, 0xb3, 0xeb, 0xe9, 0x74, 0xc3,
+0xf6, 0xeb, 0xab, 0xe9, 0x24, 0xbf, 0x7a,
+0x0f, 0xfd, 0x35, 0xe1, 0x7f, 0xb2, 0x38,
+0x60, 0xb9, 0x4d, 0x24, 0x15, 0x5d, 0x74,
+0x27, 0x16, 0xe9, 0x57, 0x63, 0x2d, 0x62,
+0x82, 0x7e, 0x41, 0xc4, 0xe9, 0xc7, 0x64,
+0x91, 0x6e, 0x41, 0xbe, 0x01, 0x19, 0xce,
+0x0f, 0x14, 0x42, 0xd5, 0x7f, 0xbb, 0x8b,
+0x28, 0x7f, 0x79, 0xa8, 0xf7, 0xdc, 0x70,
+0xe2, 0x09, 0xc9, 0x93, 0x23, 0xae, 0x13,
+0x96, 0x7d, 0xb2, 0x75, 0x18, 0xbd, 0xee,
+0x88, 0x76, 0xb1, 0x97, 0xb5, 0xf7, 0x7b,
+0x85, 0x32, 0x43, 0xb8, 0xec, 0xf7, 0x2b,
+0x77, 0x99, 0x59, 0xbd, 0xc5, 0x15, 0x3c,
+0x3f, 0x6f, 0xa2, 0x16, 0x1e, 0x47, 0x1c,
+0x9c, 0x80, 0x3a, 0x7e, 0xcd, 0xb8, 0xad,
+0x53, 0xf5, 0x04, 0xcc, 0x7e, 0x8b, 0x4e,
+0x6c, 0x65, 0x52, 0x1c, 0x8a, 0x7a, 0xa6,
+0x30, 0x6a, 0x6f, 0xc2, 0xf5, 0x26, 0xf8,
+0xc9, 0xa6, 0xb1, 0x47, 0x18, 0x16, 0x3d,
+0x38, 0x47, 0x95, 0xa5, 0x16, 0xb2, 0x95,
+0x77, 0xad, 0x2b, 0xdf, 0xf8, 0x27, 0xc8,
+0x7c, 0xf7, 0xa0, 0x12, 0x13, 0xa1, 0xcb,
+0xd0, 0xd3, 0x01, 0x7f, 0x51, 0x89, 0x88,
+0x55, 0x73, 0x66, 0x18, 0x4b, 0xa5, 0xfa,
+0xd9, 0xde, 0xb5, 0xde, 0x2d, 0x4f, 0xe5,
+0x99, 0xda, 0x1c, 0x0d, 0xaf, 0x8d, 0xaf,
+0xaa, 0x33, 0x37, 0x97, 0xd9, 0xca, 0x53,
+0x1a, 0x9f, 0x8c, 0xd0, 0x56, 0xb9, 0x5b,
+0xb2, 0x99, 0xad, 0x8e, 0x85, 0x00, 0x97,
+0xf1, 0x23, 0xb0, 0x2c, 0xd7, 0x6c, 0x22,
+0xb8, 0x55, 0xcf, 0xb9, 0x96, 0x49, 0xbb,
+0xe2, 0x02, 0x58, 0x07, 0xd1, 0xb0, 0x05,
+0xc5, 0xe5, 0x9a, 0xd9, 0xce, 0x3e, 0xa9,
+0xd0, 0x27, 0x32, 0x8a, 0x59, 0xd4, 0xde,
+0xde, 0x7a, 0x9a, 0x7e, 0x34, 0x08, 0xfc,
+0xbc, 0xbe, 0x32, 0x96, 0xd0, 0x4d, 0x70,
+0x16, 0xac, 0x9f, 0xa9, 0xca, 0x0d, 0xe8,
+0x50, 0xcd, 0x0c, 0x41, 0xfe, 0x43, 0xe0,
+0x97, 0x75, 0xb9, 0x11, 0xc3, 0x48, 0xe7,
+0xfa, 0x5b, 0xf3, 0x92, 0x7f, 0x3a, 0x50,
+0xe4, 0xd7, 0x49, 0xe0, 0x22, 0x79, 0x2a,
+0x19, 0x7e, 0x21, 0x08, 0xf9, 0x5b, 0x87,
+0x13, 0x8d, 0xf1, 0x02, 0x10, 0x14, 0xe9,
+0x11, 0xfa, 0xb2, 0xd5, 0x08, 0xdb, 0xbc,
+0x95, 0x79, 0x8d, 0xce, 0x53, 0x41, 0xd7,
+0xf9, 0x72, 0x6d, 0xe3, 0x95, 0x0e, 0x51,
+0x18, 0x30, 0x2a, 0xe5, 0x3c, 0x57, 0xb1,
+0x3a, 0x5a, 0xbb, 0x3c, 0x8e, 0x90, 0x20,
+0x1e, 0x70, 0x2c, 0x97, 0x17, 0x5b, 0x02,
+0x0b, 0x4f, 0x78, 0x9c, 0x91, 0x9a, 0x77,
+0x87, 0xbc, 0x40, 0x9d, 0x15, 0xbe, 0xf4,
+0x19, 0x1f, 0xb3, 0x60, 0x6b, 0x31, 0x2c,
+0xd2, 0xdf, 0xf5, 0xae, 0xaa, 0x2d, 0xb1,
+0x52, 0xb5, 0x2b, 0x0d, 0x44, 0x79, 0x30,
+0x3e, 0x60, 0x5b, 0x35, 0xd5, 0x21, 0xaf,
+0xec, 0xed, 0xbb, 0x94, 0xf9, 0xf4, 0x76,
+0x05, 0x16, 0x50, 0x1e, 0x57, 0x7f, 0xfc,
+0x76, 0xf1, 0x30, 0x95, 0xae, 0xa2, 0xad,
+0xce, 0x24, 0x4a, 0x08, 0xc6, 0xf8, 0xd8,
+0x8d, 0x88, 0xb7, 0x5d, 0x59, 0x27, 0x93,
+0xe1, 0x74, 0xbe, 0xa2, 0x48, 0x15, 0x1f,
+0x44, 0x88, 0x4f, 0x72, 0xd8, 0x51, 0x3b,
+0xdf, 0x74, 0x4c, 0xd7, 0x60, 0x6c, 0x99,
+0x79, 0xf3, 0xdc, 0xd5, 0xbc, 0xf8, 0x57,
+0x13, 0x4d, 0x2b, 0x91, 0xbe, 0x94, 0xa8,
+0x31, 0x74, 0x49, 0x7e, 0x40, 0xca, 0x8b,
+0xe9, 0xf5, 0x83, 0x90, 0x86, 0x8f, 0xa3,
+0x46, 0xcf, 0x4a, 0xbc, 0xf5, 0xc9, 0x03,
+0xb4, 0x25, 0xaa, 0xe6, 0xd5, 0xeb, 0xcc,
+0x20, 0x0d, 0x58, 0x05, 0x2c, 0x6d, 0xd5,
+0xbe, 0x38, 0xd5, 0x97, 0x40, 0x1b, 0x9e,
+0xfc, 0x5f, 0x56, 0xe5, 0x3c, 0xb3, 0x99,
+0x7a, 0x44, 0x62, 0x2f, 0xef, 0x5a, 0x1b,
+0x36, 0x3e, 0x84, 0xf1, 0xde, 0x24, 0xf6,
+0x48, 0x24, 0xc0, 0x20, 0xf3, 0xb3, 0x8c,
+0x77, 0xd0, 0xb4, 0xa3, 0xba, 0xad, 0x1d,
+0xf9, 0x27, 0xc4, 0x79, 0x4c, 0x2a, 0x8a,
+0x05, 0xfc, 0x84, 0x9c, 0x11, 0x71, 0xce,
+0x12, 0x00, 0xdf, 0x5c, 0xaa, 0xc2, 0x4e,
+0xdf, 0x7b, 0xdb, 0x2f, 0x22, 0x19, 0x9e,
+0xb2, 0xf6, 0x34, 0x35, 0xc5, 0x22, 0xcf,
+0x07, 0x4b, 0x99, 0xc6, 0x39, 0x3b, 0x9d,
+0x5e, 0xd0, 0x4f, 0x06, 0x41, 0xb4, 0x2e,
+0xd1, 0x8d, 0x22, 0x41, 0x45, 0x58, 0x46,
+0x29, 0xe0, 0x26, 0x38, 0x45, 0x00, 0xdb,
+0x6c, 0xfc, 0xc4, 0x9f, 0xe5, 0xb3, 0x3b,
+0xba, 0x57, 0x82, 0x51, 0x2d, 0xef, 0x3e,
+0xc1, 0x65, 0x89, 0x3d, 0x85, 0x62, 0xe9,
+0x58, 0x1c, 0x27, 0x77, 0xa0, 0xcb, 0x2d,
+0x33, 0x88, 0x2c, 0xb7, 0x32, 0xa5, 0x55,
+0xdb, 0xe5, 0x33, 0x88, 0x5f, 0x72, 0xb1,
+0x91, 0x9b, 0xe0, 0xab, 0x41, 0x59, 0x85,
+0x8e, 0xd1, 0x4f, 0xb9, 0x64, 0x43, 0x82,
+0x31, 0x1e, 0x39, 0x43, 0x9c, 0x78, 0xfd,
+0x1c, 0x77, 0xa5, 0x87, 0x09, 0x9e, 0x13,
+0x22, 0x45, 0x0c, 0x9a, 0xf7, 0xa9, 0x57,
+0x19, 0x7a, 0x40, 0xfa, 0x81, 0x66, 0xd6,
+0x89, 0x41, 0x92, 0xb4, 0x97, 0x13, 0xf9,
+0xf4, 0x84, 0xde, 0xe3, 0x37, 0x6e, 0xce,
+0x49, 0xd8, 0xa7, 0x1a, 0x27, 0xad, 0xb5,
+0xe1, 0x06, 0x8e, 0x3d, 0xf5, 0xa0, 0x79,
+0xd8, 0x91, 0xca, 0x15, 0x0b, 0xca, 0x80,
+0x82, 0xbc, 0xf8, 0x68, 0x9b, 0xa5, 0x3f,
+0x68, 0x1c, 0x9f, 0x68, 0xd1, 0x25, 0xc3,
+0x2c, 0xb3, 0xe9, 0x45, 0x2d, 0x01, 0x81,
+0x75, 0x2f, 0xf2, 0x50, 0x7b, 0xca, 0x7c,
+0xe2, 0x1e, 0x17, 0x47, 0x34, 0x25, 0x8e,
+0x5a, 0x04, 0xe4, 0x6c, 0xd2, 0xad, 0x7f,
+0xaa, 0xaa, 0xc8, 0x1d, 0x2a, 0xaa, 0x62,
+0x16, 0x31, 0x4b, 0x88, 0x1d, 0x2d, 0xd5,
+0x31, 0x96, 0x15, 0xa7, 0xb0, 0xa6, 0x0c,
+0xc4, 0xef, 0xcb, 0xb9, 0x86, 0x8a, 0xfe,
+0xb9, 0x99, 0xc8, 0x73, 0xd5, 0x3a, 0xa0,
+0x24, 0x06, 0x1b, 0x89, 0x45, 0xc0, 0x38,
+0x33, 0xcc, 0xae, 0xab, 0x10, 0x31, 0xed,
+0x68, 0x0d, 0x9b, 0x3c, 0xa7, 0xde, 0xac,
+0x3f, 0x97, 0x0c, 0x3e, 0xca, 0x02, 0xaa,
+0xe2, 0x87, 0x7c, 0x61, 0xfe, 0x7e, 0x82,
+0x32, 0x20, 0xcf, 0x84, 0x12, 0x78, 0x37,
+0x1e, 0x4c, 0xb0, 0xe6, 0x4e, 0x54, 0x84,
+0x5e, 0xa0, 0x93, 0x6b, 0xa3, 0x59, 0x71,
+0xcf, 0x40, 0x7a, 0xda, 0x28, 0x19, 0xf1,
+0x6a, 0x6f, 0xb7, 0x1e, 0xe0, 0xcd, 0xbc,
+0x99, 0xb7, 0x6e, 0x2d, 0x2b, 0xdd, 0xf7,
+0xea, 0x81, 0x65, 0x39, 0xd2, 0x90, 0xd3,
+0xbc, 0x64, 0xb5, 0x2c, 0xeb, 0xb4, 0xaf,
+0x4e, 0x9c, 0x50, 0x67, 0x60, 0xc3, 0xd2,
+0x56, 0xb3, 0x34, 0x94, 0xbb, 0x4d, 0xeb,
+0x4c, 0x8f, 0x7f, 0x31, 0x8a, 0xe1, 0xd8,
+0xf9, 0x18, 0x62, 0x4d, 0xa4, 0xb6, 0x4a,
+0x80, 0xa8, 0x09, 0x85, 0x2c, 0x1a, 0x14,
+0x3c, 0xa9, 0xab, 0x28, 0xef, 0x35, 0x37,
+0x7c, 0xdc, 0x69, 0x0e, 0x8f, 0x82, 0xa0,
+0xfb, 0xb4, 0x86, 0xcc, 0xd9, 0x07, 0x1a,
+0x2d, 0x53, 0xa9, 0x5b, 0x46, 0xf7, 0xf2,
+0xcb, 0x7a, 0x85, 0x62, 0x89, 0xc8, 0x53,
+0x08, 0x24, 0xfc, 0x11, 0x10, 0xfb, 0x4f,
+0x31, 0xa3, 0xcd, 0xd5, 0x75, 0x91, 0xbd,
+0x18, 0xb3, 0xaa, 0x40, 0xed, 0xda, 0xe9,
+0x83, 0xcc, 0x46, 0xb4, 0x1f, 0xb8, 0xd8,
+0x11, 0xbf, 0xa6, 0x83, 0x58, 0x93, 0xfc,
+0xe2, 0xc7, 0x0d, 0xa0, 0x13, 0xd0, 0x6d,
+0xe2, 0xb7, 0x50, 0xc9, 0xcb, 0x41, 0x8b,
+0xfd, 0xa6, 0xf7, 0x25, 0xe1, 0xb6, 0x40,
+0x69, 0xbc, 0xd5, 0x80, 0x3d, 0xbb, 0x7b,
+0x30, 0xf7, 0x84, 0x2f, 0x04, 0xb8, 0x22,
+0xc8, 0x33, 0xc4, 0x26, 0x30, 0xd1, 0x50,
+0x53, 0x13, 0xd1, 0x45, 0xfc, 0x0c, 0x33,
+0xb9, 0xa8, 0xc2, 0x41, 0x29, 0x0c, 0x4e,
+0x98, 0xb9, 0x43, 0xc2, 0x7b, 0x24, 0x68,
+0x77, 0xcc, 0xad, 0x7e, 0x62, 0x51, 0x7d,
+0x1d, 0x34, 0xaf, 0x08, 0xa8, 0x15, 0x24,
+0x2d, 0xbe, 0x9c, 0x9f, 0xb3, 0xb8, 0x6b,
+0x29, 0x68, 0x4e, 0x07, 0x6f, 0xfb, 0xe1,
+0xc8, 0x27, 0x5b, 0x3c, 0xef, 0x8f, 0x85,
+0x79, 0x75, 0x42, 0xfb, 0xab, 0x59, 0x9c,
+0x8c, 0x18, 0x10, 0x0f, 0xc4, 0x74, 0x24,
+0xfe, 0x82, 0x7f, 0xb6, 0x6c, 0xfd, 0xc0,
+0xc5, 0xd6, 0xa6, 0x23, 0x7c, 0x26, 0xf1,
+0x28, 0x09, 0x32, 0xa3, 0x59, 0x5f, 0x98,
+0x52, 0x70, 0x40, 0x1e, 0x75, 0xfc, 0x3f,
+0xad, 0xa2, 0xa6, 0xc2, 0xea, 0xf9, 0x1d,
+0xbc, 0xd9, 0x6a, 0xa3, 0x48, 0x18, 0x15,
+0x01, 0x99, 0x5c, 0xe1, 0x23, 0x76, 0xeb,
+0x35, 0x1a, 0xfb, 0xdb, 0xcc, 0xc8, 0x49,
+0xf0, 0x4a, 0xfd, 0xf6, 0x5d, 0x20, 0x42,
+0x78, 0xf5, 0xf5, 0x44, 0x0b, 0x11, 0x77,
+0xc4, 0xd4, 0x0f, 0x60, 0xb3, 0xc9, 0xe1,
+0x04, 0xa0, 0xe6, 0xc1, 0x2e, 0xb6, 0x1d,
+0x9d, 0x1d, 0xeb, 0x1c, 0xa2, 0x85, 0x0c,
+0x1b, 0x8d, 0xb0, 0xa8, 0xea, 0x4c, 0x12,
+0x2d, 0xf6, 0x85, 0xf0, 0xe9, 0x3f, 0x17,
+0x2f, 0x3d, 0xe4, 0x03, 0x29, 0x5a, 0xe7,
+0x95, 0x1e, 0x6c, 0xea, 0x8e, 0x92, 0x15,
+0x98, 0x83, 0xcb, 0xec, 0x4a, 0x84, 0x39,
+0x7a, 0xc0, 0xc7, 0xd8, 0x97, 0x79, 0xcc,
+0x6a, 0x9a, 0x4a, 0x3e, 0xfb, 0x4f, 0xd1,
+0x64, 0xd9, 0xf7, 0xb2, 0xc4, 0xcc, 0xd3,
+0x9c, 0x22, 0x55, 0xc3, 0xbc, 0xf8, 0xf8,
+0x2e, 0x35, 0x37, 0x05, 0x47, 0x43, 0x26,
+0x43, 0xb3, 0x96, 0x1c, 0xd4, 0x1a, 0xc7,
+0x2b, 0xdd, 0x5a, 0x9c, 0xb4, 0x58, 0x3a,
+0x9f, 0x24, 0x9d, 0x82, 0x31, 0x21, 0x44,
+0x81, 0x44, 0x67, 0x78, 0xcb, 0x57, 0x20,
+0xd3, 0xdc, 0x54, 0x4b, 0x2b, 0xd6, 0xa7,
+0xff, 0x83, 0x8e, 0x6b, 0xa9, 0xac, 0xb1,
+0x25, 0xf7, 0x33, 0xad, 0xbe, 0xc6, 0x83,
+0xd1, 0x9c, 0x72, 0x12, 0x61, 0xc9, 0xf2,
+0xc2, 0x4a, 0xe0, 0x7f, 0x5d, 0xab, 0xb8,
+0x6f, 0x94, 0xad, 0x78, 0x8c, 0x98, 0x58,
+0xa0, 0x31, 0xf8, 0x73, 0xec, 0x61, 0x54,
+0xd1, 0x3f, 0x46, 0xd1, 0xa2, 0xe9, 0x9a,
+0x99, 0x8f, 0x32, 0xa2, 0x23, 0x9f, 0xf3,
+0xc0, 0xa2, 0xfd, 0x23, 0x5c, 0x93, 0x82,
+0xfa, 0xfe, 0xce, 0x28, 0xdf, 0xa2, 0x32,
+0xf6, 0x2c, 0x67, 0xeb, 0x0f, 0x7c, 0x43,
+0xab, 0xd9, 0xbd, 0x1c, 0x38, 0xf4, 0x80,
+0x12, 0xb8, 0x14, 0x05, 0x8e, 0xab, 0x62,
+0x47, 0x6a, 0xa8, 0xa4, 0x89, 0xfd, 0xf5,
+0x85, 0x8a, 0xea, 0x2c, 0x58, 0x3e, 0x95,
+0xe5, 0x6a, 0x6f, 0xd3, 0x63, 0x47, 0x3c,
+0xfb, 0xdb, 0x6c, 0x94, 0xb0, 0xcf, 0x97,
+0xdd, 0xfc, 0xde, 0xa9, 0x5e, 0x67, 0x49,
+0x37, 0x55, 0xe5, 0xd4, 0x25, 0xbc, 0x95,
+0x58, 0x9d, 0xf7, 0x08, 0x05, 0x34, 0x32,
+0xbf, 0x4f, 0xf1, 0xf5, 0x3a, 0x59, 0x1c,
+0x55, 0x6b, 0xbd, 0x14, 0x83, 0x29, 0xbe,
+0x4f, 0xab, 0xe2, 0xc0, 0xc7, 0x52, 0xf6,
+0x6e, 0x73, 0x60, 0x35, 0x35, 0x27, 0x73,
+0x9f, 0xcc, 0x07, 0xee, 0xbd, 0x2c, 0xbb,
+0x47, 0x46, 0x1f, 0xdf, 0x05, 0xd8, 0xcf,
+0x5e, 0xc9, 0x5a, 0xa7, 0x46, 0xdb, 0xcd,
+0x98, 0xb4, 0xf1, 0x2a, 0x90, 0xbf, 0xad,
+0x39, 0x73, 0x9e, 0x78, 0xf7, 0x40, 0xda,
+0x1b, 0xc9, 0xe0, 0x1f, 0x24, 0xd4, 0x4f,
+0xee, 0x3c, 0x97, 0x15, 0xa9, 0x05, 0xd0,
+0xa1, 0x8b, 0x81, 0x57, 0xb1, 0xe8, 0x55,
+0x25, 0xa2, 0x2b, 0x2c, 0x10, 0xf2, 0x3e,
+0x0e, 0xb2, 0xea, 0x7c, 0x63, 0x9b, 0x01,
+0x54, 0x26, 0x20, 0xd3, 0xc5, 0x2b, 0x76,
+0xe6, 0xc9, 0x34, 0x84, 0xf0, 0xf5, 0xb5,
+0x50, 0xb9, 0xd9, 0x9a, 0xba, 0x2a, 0x7a,
+0xd6, 0xea, 0xec, 0x1a, 0xee, 0xbe, 0x5a,
+0x6b, 0x9e, 0xa7, 0x7a, 0x34, 0xe6, 0xf7,
+0xb7, 0x97, 0x57, 0xba, 0x6f, 0x56, 0xe8,
+0xc7, 0xc0, 0xa1, 0xfe, 0x5d, 0xf0, 0x0f,
+0x06, 0xf5, 0xbc, 0x4d, 0x68, 0x75, 0x39,
+0x3d, 0x93, 0x4e, 0x1f, 0xb7, 0xcd, 0xc6,
+0x3f, 0x5a, 0xf2, 0x71, 0x79, 0xbe, 0x8a,
+0x44, 0xe4, 0x8f, 0xad, 0x1b, 0xaf, 0x6d,
+0x2e, 0x27, 0xd2, 0xd3, 0x0e, 0xfb, 0x1c,
+0x62, 0x75, 0x7d, 0xaf, 0x0d, 0xf0, 0x45,
+0x77, 0xf0, 0xfc, 0xbd, 0x4b, 0xae, 0xe9,
+0x0e, 0xb4, 0xed, 0x4a, 0xf9, 0x6c, 0x34,
+0xbf, 0x94, 0x94, 0x0c, 0xf9, 0xd1, 0x66,
+0x37, 0x90, 0xba, 0x1e, 0x62, 0x61, 0xbf,
+0xc8, 0xed, 0x9f, 0xf0, 0x9d, 0xf5, 0xa2,
+0x5f, 0x22, 0x5b, 0xcf, 0x22, 0xb0, 0x91,
+0xe8, 0x17, 0x56, 0x0d, 0xf4, 0x60, 0x5e,
+0x77, 0x97, 0x42, 0xb6, 0x33, 0xdb, 0xcd,
+0x5f, 0x04, 0xa2, 0x7c, 0x1e, 0xb2, 0xd7,
+0xc9, 0xf5, 0x4d, 0xdf, 0x76, 0xe7, 0xb1,
+0x83, 0xa5, 0x72, 0x13, 0xf1, 0x27, 0x65,
+0x49, 0x7f, 0x05, 0x6e, 0x35, 0xab, 0x73,
+0xcb, 0x09, 0x49, 0x14, 0x1f, 0xf1, 0xa6,
+0x85, 0x8b, 0x61, 0x3a, 0xb7, 0xe0, 0x1d,
+0x87, 0xeb, 0x34, 0x44, 0xd8, 0xd4, 0x12,
+0x7b, 0x82, 0xa1, 0xb6, 0x77, 0x53, 0xd7,
+0x36, 0x39, 0x64, 0x49, 0xbd, 0xd1, 0xb4,
+0x3d, 0xea, 0x4d, 0x0b, 0x50, 0x5d, 0x0a,
+0x5d, 0x64, 0xa2, 0xac, 0x7d, 0x6c, 0x6a,
+0x2c, 0x01, 0x75, 0x1b, 0xbd, 0x19, 0xf6,
+0x4a, 0xe6, 0x83, 0x0b, 0x23, 0x5f, 0xe2,
+0xe8, 0x15, 0x70, 0x2c, 0x63, 0x68, 0xde,
+0x1c, 0xf8, 0xd4, 0x41, 0xab, 0x0e, 0xf0,
+0x39, 0xbe, 0x3c, 0x46, 0xfd, 0x2b, 0xcb,
+0x21, 0x88, 0x4c, 0xdf, 0xf8, 0x91, 0x3b,
+0x83, 0xa1, 0x3e, 0xaa, 0xc6, 0xc0, 0xd9,
+0x1d, 0xac, 0x0c, 0x79, 0xec, 0x23, 0xed,
+0xde, 0x4a, 0xcc, 0x33, 0xdb, 0x5a, 0x81,
+0x3b, 0xee, 0xa6, 0x22, 0x4d, 0x87, 0x43,
+0x29, 0x1a, 0x3f, 0xdd, 0xe3, 0xc5, 0x1a,
+0x3b, 0x8f, 0x22, 0x42, 0xa9, 0x43, 0xdf,
+0x07, 0x2e, 0x0c, 0xc0, 0x6f, 0x69, 0x9d,
+0x1f, 0x03, 0x4a, 0xc2, 0x8f, 0x2e, 0x07,
+0x09, 0x20, 0xa8, 0xbb, 0xb4, 0x63, 0xd1,
+0x12, 0x09, 0xf6, 0xd6, 0x01, 0xa4, 0x25,
+0x74, 0xa8, 0xb9, 0x56, 0x82, 0xdb, 0x78,
+0xe8, 0x41, 0xbb, 0xc6, 0x18, 0xc5, 0x86,
+0xa3, 0xea, 0xbf, 0x90, 0x2c, 0xdd, 0x15,
+0xe0, 0x4a, 0x21, 0xd4, 0x42, 0x94, 0x94,
+0xf4, 0x48, 0x62, 0x97, 0x25, 0xc7, 0xcd,
+0x44, 0x88, 0x20, 0xd6, 0x05, 0x4b, 0x96,
+0x89, 0xd0, 0x3e, 0x0d, 0x9f, 0xa3, 0x24,
+0xf8, 0xf8, 0xed, 0x7e, 0xe1, 0x64, 0xa9,
+0x03, 0x04, 0x07, 0x19, 0x5f, 0x1c, 0x08,
+0x59, 0xef, 0x5e, 0xa6, 0xe0, 0xe4, 0x79,
+0xd7, 0xd9, 0x15, 0x83, 0xc8, 0x67, 0xf4,
+0xaa, 0x89, 0xaf, 0xa1, 0x85, 0x09, 0x6d,
+0xc5, 0x4c, 0x09, 0xd2, 0xf9, 0x91, 0x37,
+0x73, 0xa1, 0x87, 0x5e, 0x2e, 0x00, 0x81,
+0x1b, 0xea, 0xf2, 0x01, 0xf0, 0x30, 0x36,
+0xdd, 0x69, 0x9d, 0xf5, 0x30, 0x3d, 0x25,
+0x9f, 0xef, 0xd9, 0xf3, 0x18, 0x23, 0x1a,
+0x49, 0x72, 0x66, 0x7f, 0xda, 0x95, 0xea,
+0x50, 0x7c, 0xe8, 0x98, 0x1a, 0x11, 0xdc,
+0xec, 0xb8, 0x0b, 0x10, 0x65, 0x9c, 0xfe,
+0xdd, 0xf1, 0x09, 0x13, 0xfb, 0xc4, 0xea,
+0x49, 0x12, 0x30, 0x07, 0x6a, 0x0c, 0x52,
+0x2f, 0x63, 0xf8, 0x53, 0xe5, 0x9e, 0x66,
+0xaf, 0x6d, 0xe3, 0xc3, 0xbd, 0x1f, 0xf7,
+0x9b, 0x1f, 0x52, 0xb8, 0x9b, 0x8e, 0x63,
+0x4c, 0x95, 0xb4, 0x92, 0x7c, 0x7f, 0x23,
+0x76, 0x07, 0x3a, 0x48, 0xdc, 0x88, 0x4b,
+0x43, 0xf2, 0xea, 0x57, 0x07, 0xf6, 0xcc,
+0x8a, 0x9c, 0x0e, 0x7f, 0x9e, 0x75, 0x98,
+0xf5, 0x25, 0x9e, 0x19, 0x41, 0x4f, 0x5b,
+0xb1, 0xee, 0x70, 0x69, 0xf4, 0x23, 0xb5,
+0xba, 0x59, 0x5f, 0x7c, 0x1e, 0x76, 0x6b,
+0xb4, 0xd6, 0x77, 0x51, 0xf8, 0xd7, 0xdf,
+0x55, 0x5c, 0x85, 0x50, 0x5c, 0xd0, 0x12,
+0xd0, 0x38, 0x4e, 0x7b, 0xee, 0xa8, 0x6c,
+0xd8, 0x33, 0x04, 0xf1, 0x9d, 0x90, 0xd3,
+0xf1, 0x78, 0x88, 0x79, 0xce, 0x72, 0xc1,
+0x0c, 0xad, 0x9b, 0xae, 0x50, 0x1b, 0x9e,
+0xfd, 0xb4, 0x44, 0x31, 0x85, 0x82, 0xe6,
+0x9e, 0xe4, 0xe8, 0x5f, 0x14, 0xe2, 0x37,
+0x87, 0x2f, 0x79, 0x8e, 0xb0, 0xd8, 0x6d,
+0xae, 0x2d, 0xa5, 0xcc, 0x9c, 0xeb, 0xd0,
+0x49, 0x8b, 0xa1, 0xa7, 0xc1, 0x5e, 0x2c,
+0xfe, 0x61, 0x6b, 0x3b, 0x39, 0xd3, 0x20,
+0x6a, 0x77, 0x4c, 0xa0, 0x13, 0xa7, 0x68,
+0xc8, 0x34, 0x95, 0x71, 0x26, 0x31, 0x02,
+0x7e, 0x26, 0x87, 0x5a, 0x2c, 0x8b, 0xd3,
+0x3b, 0x30, 0x94, 0xa6, 0x04, 0x03, 0xcd,
+0xbf, 0x4b, 0x53, 0x46, 0xe5, 0x37, 0xf1,
+0xa7, 0x16, 0xad, 0x23, 0x3a, 0x7f, 0x5d,
+0x43, 0x22, 0x5c, 0xdb, 0xfd, 0x6c, 0xd1,
+0x41, 0x69, 0xc1, 0x2a, 0x63, 0x6c, 0x02,
+0xe9, 0x9c, 0xa1, 0x26, 0xa6, 0x4a, 0xa5,
+0xaa, 0x18, 0xa9, 0xb7, 0x71, 0x6f, 0x4b,
+0x52, 0x06, 0xc7, 0x52, 0xfd, 0x33, 0xe3,
+0x1d, 0x48, 0x16, 0x3b, 0x76, 0x96, 0x83,
+0xd8, 0xc1, 0xb6, 0x8e, 0xdb, 0xf9, 0x19,
+0xb0, 0xc3, 0xae, 0xf8, 0x73, 0xa3, 0x90,
+0x56, 0xba, 0x83, 0x60, 0xaa, 0x56, 0x5b,
+0xbd, 0xa7, 0x2d, 0x38, 0xc0, 0xc4, 0xac,
+0xe9, 0x13, 0xdf, 0x29, 0xd8, 0xf7, 0x9e,
+0xc4, 0xf0, 0x9b, 0x7b, 0x15, 0xbf, 0xd7,
+0x50, 0x8f, 0xf6, 0x61, 0xd9, 0x30, 0x59,
+0xb6, 0x05, 0xd5, 0xfe, 0x9e, 0xf5, 0x5c,
+0x5b, 0x54, 0x3a, 0x18, 0x7a, 0xd2, 0x68,
+0x47, 0x42, 0x82, 0x39, 0xf0, 0xdd, 0x9a,
+0x1b, 0x90, 0x1c, 0x52, 0xe7, 0xed, 0xac,
+0xb3, 0x52, 0xbd, 0x6b, 0x19, 0x90, 0x8f,
+0xc4, 0xe4, 0x80, 0x2a, 0x86, 0xb4, 0x9c,
+0x8c, 0x83, 0x45, 0x6b, 0x3b, 0x03, 0x99,
+0xa7, 0xe8, 0x7b, 0x34, 0xda, 0x8a, 0x0c,
+0xc7, 0x1d, 0xcd, 0x31, 0x41, 0xe6, 0x44,
+0xd9, 0xcf, 0xea, 0x58, 0x2f, 0x0f, 0x56,
+0x6e, 0xe1, 0xc1, 0x8b, 0x53, 0xa6, 0xdb,
+0xf2, 0xad, 0x68, 0x13, 0x54, 0x43, 0xb5,
+0x2d, 0xb8, 0x0d, 0x77, 0xbd, 0x48, 0xae,
+0xbc, 0x80, 0x27, 0x61, 0xdc, 0x20, 0xca,
+0x8c, 0x41, 0xb0, 0x51, 0xd6, 0xfb, 0xd2,
+0x93, 0x39, 0xb7, 0x59, 0x41, 0x91, 0xd5,
+0x5d, 0xdc, 0xbd, 0xd7, 0x3a, 0xad, 0xaa,
+0x41, 0xe2, 0xcb, 0x6b, 0xbe, 0xd1, 0x97,
+0x50, 0x6b, 0x38, 0xaa, 0x64, 0x38, 0x3f,
+0x08, 0xe2, 0xf8, 0xa8, 0x64, 0x3c, 0xc4,
+0x33, 0xdc, 0x19, 0x00, 0xbb, 0x19, 0x63,
+0xc0, 0xd1, 0x74, 0x9c, 0x2a, 0x4e, 0x82,
+0x17, 0x12, 0xda, 0x0e, 0x7f, 0x30, 0x86,
+0x3d, 0x49, 0x6a, 0xce, 0xbd, 0xbc, 0x2f,
+0xc8, 0xc5, 0x3d, 0xaa, 0xf0, 0x31, 0xa4,
+0xe8, 0x50, 0x7e, 0xb6, 0xf0, 0xfd, 0xe9,
+0x8c, 0x00, 0x7f, 0xfa, 0x56, 0xba, 0x29,
+0x82, 0xc1, 0x2a, 0xfa, 0x70, 0x2b, 0x8f,
+0x42, 0xc2, 0x54, 0x61, 0xd2, 0xec, 0xe4,
+0x9c, 0x8a, 0xe3, 0x28, 0xa1, 0x88, 0x3d,
+0x96, 0xfd, 0x36, 0x64, 0x5e, 0x63, 0xa9,
+0xc8, 0x6c, 0x65, 0x69, 0x46, 0x74, 0x23,
+0x7a, 0x30, 0x08, 0xe3, 0x37, 0x01, 0xe8,
+0xe5, 0x2d, 0xed, 0xd9, 0xb9, 0x14, 0x53,
+0x76, 0x87, 0x0e, 0x9f, 0xf3, 0x36, 0xc4,
+0xec, 0xef, 0x3b, 0xee, 0xd2, 0x04, 0x8f,
+0xb1, 0xca, 0x5f, 0xbd, 0xbf, 0xd2, 0xa4,
+0xbb, 0x63, 0x2f, 0x00, 0x59, 0xb6, 0x78,
+0x03, 0x56, 0x74, 0x42, 0x14, 0x27, 0x21,
+0x09, 0x05, 0xa5, 0xfd, 0x61, 0x03, 0x39,
+0xff, 0x23, 0x51, 0xa4, 0x45, 0x40, 0x9c,
+0x0e, 0x1e, 0xaa, 0x93, 0xdc, 0x28, 0xe0,
+0xd4, 0xfc, 0x7d, 0x4d, 0x80, 0x6a, 0x1a,
+0x0e, 0xfc, 0xe5, 0xdb, 0x3a, 0x05, 0x49,
+0xed, 0x56, 0x9d, 0x4f, 0x17, 0x79, 0x9b,
+0x6d, 0x0f, 0x1e, 0xd0, 0x10, 0x5a, 0xfa,
+0xd7, 0x08, 0x25, 0x2f, 0x1d, 0xef, 0x5e,
+0x9a, 0xc4, 0x44, 0xff, 0x41, 0x50, 0xfb,
+0x5a, 0x5f, 0x14, 0x60, 0x49, 0xbc, 0x52,
+0x68, 0xf2, 0xf0, 0x44, 0xc9, 0x20, 0x72,
+0xc5, 0xbf, 0x91, 0xc6, 0x93, 0x7d, 0x9f,
+0xde, 0x0f, 0x66, 0x90, 0xa6, 0x0b, 0x66,
+0x74, 0xc8, 0x71, 0x54, 0xc3, 0x42, 0xd8,
+0xa5, 0xe0, 0xba, 0xf1, 0x50, 0x1d, 0x39,
+0x33, 0x0b, 0xa1, 0x9d, 0xfa, 0xf7, 0xe7,
+0xa0, 0xf9, 0xf6, 0xe6, 0xb7, 0xe0, 0x20,
+0xe6, 0x95, 0xcc, 0xe1, 0x84, 0x9c, 0xce,
+0xab, 0x61, 0x14, 0xdc, 0xa6, 0x22, 0xda,
+0xf7, 0x14, 0xc5, 0x58, 0x4b, 0xae, 0x1c,
+0xd6, 0xcf, 0xce, 0x32, 0x4d, 0x20, 0x1d,
+0x1c, 0xae, 0x26, 0xf5, 0xa8, 0x47, 0x18,
+0x28, 0x05, 0x83, 0xcd, 0xd7, 0x11, 0xc5,
+0x4c, 0xf4, 0x39, 0xe6, 0x1b, 0x54, 0xf9,
+0x6c, 0x1a, 0x43, 0xc4, 0x02, 0xf4, 0xb7,
+0x06, 0xaa, 0xca, 0xda, 0x13, 0x64, 0xee,
+0xf4, 0xfc, 0xc7, 0x28, 0x13, 0x57, 0xeb,
+0x9c, 0x2c, 0xa0, 0x2e, 0x1d, 0x3c, 0xd4,
+0x8f, 0xcd, 0x15, 0x9d, 0x3d, 0x5a, 0x0b,
+0xe8, 0xce, 0x70, 0x70, 0xe1, 0x8f, 0x46,
+0x0b, 0xeb, 0x63, 0x7c, 0xd1, 0x2c, 0x7e,
+0xe5, 0x6b, 0x4b, 0x1d, 0x4e, 0x22, 0xd1,
+0x1a, 0x10, 0xc4, 0x00, 0x04, 0xf6, 0x37,
+0x9f, 0x67, 0xe4, 0x37, 0xef, 0x3a, 0xa6,
+0x28, 0x09, 0x9d, 0x2b, 0xd2, 0x6b, 0xf8,
+0x95, 0xe1, 0xf7, 0x19, 0x22, 0x34, 0xd0,
+0xca, 0x8a, 0x05, 0x2d, 0x1f, 0x4d, 0x8a,
+0x02, 0x59, 0x8e, 0x06, 0x3b, 0x36, 0xd8,
+0x7d, 0x70, 0x52, 0xcd, 0x55, 0xd3, 0x94,
+0x5c, 0x7b, 0xb4, 0x84, 0x91, 0x29, 0x4b,
+0xb2, 0x86, 0xba, 0xdd, 0xc7, 0xb5, 0x48,
+0xd5, 0xde, 0x6f, 0x9c, 0x2c, 0xcf, 0xd8,
+0xd8, 0xcc, 0x34, 0xcf, 0x54, 0x0a, 0xc4,
+0xb5, 0xb0, 0x79, 0x87, 0x50, 0xdb, 0xdf,
+0x39, 0xa7, 0x8a, 0x38, 0x9e, 0x97, 0xa9,
+0xac, 0x5e, 0x42, 0xaa, 0xc0, 0xfb, 0xe4,
+0xf5, 0x08, 0xfb, 0xd7, 0xa9, 0x80, 0x1e,
+0x13, 0x22, 0xa3, 0x44, 0x46, 0x99, 0x96,
+0xc9, 0x77, 0xa1, 0xc1, 0xdf, 0xdf, 0x93,
+0x8f, 0xf2, 0xd0, 0xda, 0x1f, 0x0f, 0xfb,
+0xb1, 0x8e, 0x06, 0x17, 0x4a, 0x10, 0xb2,
+0x73, 0xa5, 0x2a, 0x26, 0x59, 0x81, 0x33,
+0xba, 0xd7, 0x26, 0x5a, 0x60, 0x1f, 0x02,
+0x42, 0xd9, 0xca, 0xde, 0x01, 0x85, 0xb3,
+0xb6, 0x4d, 0x38, 0x00, 0x98, 0xbd, 0xab,
+0xd1, 0xc3, 0x9c, 0x18, 0x67, 0x76, 0x73,
+0xc6, 0x55, 0x3a, 0xbf, 0x5d, 0x3d, 0x65,
+0x1e, 0x50, 0x74, 0x31, 0x4f, 0x2d, 0x2a,
+0x81, 0x91, 0x98, 0x91, 0xfb, 0x67, 0x5d,
+0xdb, 0x13, 0x5d, 0xaf, 0xdc, 0x90, 0x87,
+0x9d, 0x55, 0xb4, 0xbc, 0xa9, 0x3a, 0x73,
+0xca, 0x2e, 0x22, 0xad, 0x64, 0xb2, 0xdf,
+0x61, 0xbe, 0x85, 0x3b, 0xee, 0x50, 0xda,
+0x90, 0x80, 0xb4, 0xaf, 0x13, 0xcb, 0xb6,
+0x5c, 0xd0, 0x68, 0xc2, 0x21, 0x8e, 0x26,
+0x34, 0xd1, 0xd6, 0x1b, 0x67, 0x3b, 0xce,
+0xc3, 0x22, 0x45, 0x00, 0x1c, 0x2e, 0xe5,
+0xbc, 0x10, 0x6f, 0x8d, 0x45, 0x0f, 0x1e,
+0x8e, 0x77, 0x3d, 0xee, 0x8f, 0x7d, 0x94,
+0x34, 0x24, 0xf9, 0xca, 0x55, 0xaa, 0x99,
+0x63, 0x24, 0x55, 0x22, 0x3c, 0x3a, 0xee,
+0x42, 0x9f, 0x2e, 0xfd, 0xb2, 0xad, 0x10,
+0xe7, 0x34, 0xec, 0x9f, 0x1b, 0x06, 0x88,
+0x7a, 0xba, 0x5d, 0xf8, 0xb7, 0x62, 0x0e,
+0x6a, 0x84, 0x23, 0x1c, 0xfa, 0x15, 0xba,
+0xe1, 0xcf, 0xa1, 0xb8, 0x88, 0xe2, 0x16,
+0x5c, 0xdf, 0x15, 0x18, 0x42, 0xd5, 0x9c,
+0xc7, 0x08, 0xfe, 0x9d, 0x50, 0x56, 0x72,
+0x53, 0x99, 0x19, 0xb5, 0x67, 0x40, 0x96,
+0x5f, 0x0c, 0x94, 0xcf, 0xa8, 0xc9, 0xbe,
+0xcf, 0xb1, 0x7d, 0xf4, 0x55, 0xa4, 0x5e,
+0xc0, 0xae, 0x03, 0x91, 0x98, 0x6e, 0x29,
+0x56, 0xbb, 0xa3, 0xb2, 0xea, 0x45, 0xfb,
+0xcb, 0x45, 0x33, 0x84, 0x0c, 0x14, 0x2d,
+0x9d, 0x09, 0x72, 0x4f, 0x01, 0x58, 0x86,
+0x07, 0x83, 0x3e, 0xfc, 0xa5, 0x89, 0x4e,
+0xa7, 0xe4, 0xfd, 0x5e, 0x61, 0x47, 0x98,
+0xa8, 0xec, 0x05, 0xdc, 0xe4, 0x92, 0x85,
+0x5f, 0xd5, 0xeb, 0x26, 0x4f, 0x19, 0xde,
+0xa1, 0xf6, 0xcd, 0xd4, 0xfa, 0x5e, 0x45,
+0x25, 0x13, 0x39, 0x93, 0x80, 0x59, 0x90,
+0xbf, 0xee, 0x0e, 0x74, 0x41, 0xdd, 0x41,
+0xe2, 0x85, 0x9d, 0x39, 0xa1, 0xa1, 0xdf,
+0xa0, 0x89, 0x7e, 0x79, 0x7c, 0xb9, 0x78,
+0x12, 0x6b, 0x3f, 0x11, 0x59, 0x47, 0x34,
+0x5b, 0x14, 0xb9, 0x98, 0x4e, 0x73, 0x46,
+0x5a, 0xdf, 0xeb, 0x2f, 0x24, 0x22, 0x6a,
+0x1c, 0x26, 0xe5, 0x07, 0x51, 0xee, 0x43,
+0x95, 0xdd, 0xb0, 0xb2, 0x7a, 0x10, 0x0a,
+0xcd, 0xdb, 0x8f, 0x62, 0x0c, 0xca, 0xb9,
+0xd5, 0x07, 0x87, 0xde, 0x94, 0xb0, 0xc8,
+0xa8, 0xa4, 0x32, 0xb6, 0x48, 0xb7, 0xbe,
+0xce, 0x02, 0x43, 0x7e, 0x1f, 0x67, 0xbe,
+0x60, 0x26, 0xa3, 0xb8, 0xa8, 0xb0, 0x89,
+0xca, 0xd3, 0x92, 0x1f, 0xbb, 0xf8, 0x6a,
+0xcb, 0xb3, 0x65, 0x44, 0x9e, 0x8b, 0xaa,
+0x94, 0x77, 0x68, 0x1b, 0x38, 0xa1, 0x41,
+0x9f, 0x54, 0xae, 0xd4, 0x4e, 0x61, 0x71,
+0x8e, 0x78, 0x59, 0x93, 0x9c, 0xc5, 0x00,
+0xa6, 0xd1, 0x0c, 0x69, 0x09, 0xbe, 0x59,
+0x7c, 0xd7, 0x82, 0x30, 0x8b, 0xa2, 0x4a,
+0xba, 0x7f, 0xb7, 0xe5, 0x5e, 0x91, 0x72,
+0x5f, 0xb9, 0x06, 0xfe, 0x72, 0x06, 0xd9,
+0xd3, 0xa4, 0xd3, 0xfa, 0xa2, 0xdb, 0xdb,
+0xfc, 0x5c, 0x41, 0xcf, 0x3f, 0x84, 0xc4,
+0x18, 0x9d, 0xe6, 0x93, 0x00, 0xe9, 0x19,
+0x4b, 0x99, 0x4a, 0xf6, 0x56, 0xd8, 0x89,
+0xd9, 0xbe, 0x7b, 0x75, 0xfd, 0x9b, 0x76,
+0xa0, 0xa7, 0x62, 0x27, 0xe1, 0xca, 0xd2,
+0x77, 0x06, 0x94, 0xd5, 0xc9, 0x0f, 0x32,
+0xaf, 0x46, 0x9e, 0xc9, 0xd1, 0x0d, 0xc2,
+0xfa, 0x62, 0x34, 0x9d, 0xe9, 0x67, 0x17,
+0xf3, 0x49, 0x8e, 0x10, 0x12, 0x69, 0x8b,
+0xe3, 0x3b, 0xfc, 0x73, 0x16, 0xf9, 0x81,
+0xea, 0xa1, 0x5a, 0x11, 0xa5, 0xfe, 0x7a,
+0x1b, 0xf4, 0x6c, 0xc1, 0xc0, 0xf9, 0x56,
+0x1b, 0xad, 0xe5, 0xc6, 0xf2, 0xfe, 0x44,
+0x5d, 0x5d, 0x16, 0x15, 0x5e, 0xe3, 0xdf,
+0x30, 0x21, 0x13, 0x7b, 0x3d, 0x84, 0x09,
+0x8c, 0x1c, 0x59, 0xa5, 0x22, 0x56, 0x28,
+0xa6, 0xac, 0x36, 0xf1, 0x9f, 0x76, 0x21,
+0x42, 0xc6, 0xf7, 0xb3, 0x12, 0xd6, 0x63,
+0x2c, 0x89, 0xf3, 0x96, 0xf8, 0x9f, 0x66,
+0xf2, 0x5c, 0xc8, 0x08, 0x59, 0xdd, 0x5d,
+0xe8, 0x1e, 0xee, 0x1b, 0xaa, 0xb5, 0x47,
+0x14, 0x77, 0xf0, 0x1f, 0x48, 0x59, 0x8a,
+0x59, 0x6b, 0x6e, 0x06, 0xfe, 0x10, 0x03,
+0x74, 0xef, 0xa1, 0xef, 0xed, 0x46, 0x78,
+0xac, 0x62, 0x9c, 0xf2, 0xd3, 0x77, 0x1d,
+0x40, 0xad, 0xdb, 0xab, 0xc7, 0x22, 0xf4,
+0xd1, 0x34, 0x71, 0xfc, 0x7e, 0xb1, 0xc5,
+0x4d, 0x85, 0x65, 0xb5, 0x3a, 0xba, 0xe4,
+0xe3, 0xa9, 0xe6, 0xd4, 0xd6, 0x68, 0xe5,
+0x5f, 0x06, 0x1b, 0x36, 0xdf, 0x86, 0x97,
+0xa0, 0x08, 0x4a, 0x40, 0x74, 0x75, 0x5c,
+0x21, 0x14, 0xe3, 0x2b, 0xb7, 0x88, 0x73,
+0x52, 0x10, 0x70, 0x94, 0x99, 0x85, 0x8f,
+0x08, 0xba, 0xac, 0xba, 0x73, 0x2e, 0x94,
+0x9b, 0xc4, 0xcf, 0xa6, 0x09, 0x9d, 0x46,
+0xcb, 0x71, 0x75, 0x42, 0x85, 0xba, 0xdf,
+0x94, 0xb4, 0x3c, 0xff, 0xcb, 0x57, 0x27,
+0xd2, 0x7c, 0xec, 0xd5, 0x24, 0x8c, 0xa6,
+0x5a, 0x04, 0x5d, 0x98, 0x65, 0x57, 0x1c,
+0xcb, 0x11, 0x1e, 0xfa, 0xe4, 0xfc, 0x53,
+0xb3, 0x4b, 0x62, 0x10, 0xb7, 0x64, 0xf0,
+0x54, 0x1a, 0x39, 0xf7, 0xcc, 0x15, 0x03,
+0x8d, 0xf6, 0xaf, 0x34, 0x05, 0x50, 0xce,
+0xc0, 0xc1, 0xd1, 0x14, 0x5d, 0x80, 0x37,
+0xd4, 0x51, 0x54, 0x3d, 0xdc, 0xa9, 0x8c,
+0x5e, 0xe2, 0xc2, 0x01, 0x86, 0x8c, 0x4b,
+0x71, 0xf5, 0xf2, 0x3a, 0xfa, 0xb9, 0x2c,
+0xec, 0x1b, 0xf8, 0xce, 0xce, 0xcf, 0xb5,
+0x63, 0x31, 0x66, 0xa3, 0x21, 0xe6, 0xfd,
+0x8b, 0x15, 0xd2, 0xff, 0xa5, 0x16, 0xab,
+0x93, 0x23, 0xf5, 0xf4, 0x33, 0x92, 0xd3,
+0x52, 0x05, 0x01, 0x42, 0x33, 0x36, 0x37,
+0x6c, 0x58, 0xa2, 0x21, 0x3d, 0x86, 0xbb,
+0x1e, 0x20, 0xc2, 0x6c, 0x50, 0x17, 0xc0,
+0x31, 0xcc, 0x55, 0xdc, 0x76, 0x5e, 0x32,
+0x9e, 0x5d, 0x54, 0x9d, 0xd3, 0xc9, 0xd9,
+0x2d, 0x1c, 0xbf, 0x2d, 0x27, 0x8c, 0xf2,
+0xf5, 0x22, 0x75, 0xbb, 0x8d, 0x27, 0x43,
+0xd6, 0xc2, 0x84, 0x28, 0x63, 0x95, 0x4d,
+0x13, 0x42, 0x80, 0x0a, 0x69, 0xaa, 0xef,
+0xa2, 0x79, 0x56, 0xb9, 0x9f, 0x35, 0x75,
+0x67, 0xaf, 0x13, 0x84, 0x68, 0xcb, 0xf5,
+0x1f, 0x35, 0x6f, 0xe1, 0x45, 0x9b, 0x22,
+0x69, 0x0a, 0x8f, 0x90, 0x7d, 0x37, 0x8e,
+0x7e, 0xaa, 0x8e, 0xef, 0x25, 0x22, 0xf5,
+0xe2, 0xa6, 0x69, 0xfb, 0x56, 0x79, 0xdc,
+0xcb, 0x9c, 0xcb, 0xf2, 0xc5, 0x8b, 0xbe,
+0x28, 0xc7, 0x75, 0x2f, 0x95, 0xf8, 0x36,
+0xac, 0x3c, 0x52, 0x4d, 0x96, 0x95, 0xc3,
+0xda, 0xb6, 0x0d, 0x45, 0x20, 0x1a, 0x25,
+0x80, 0x1e, 0x7b, 0xa5, 0x33, 0x62, 0xbf,
+0xb5, 0x66, 0xb5, 0x39, 0x0a, 0x86, 0xfb,
+0xcf, 0xb5, 0xfe, 0x66, 0x81, 0xc8, 0x87,
+0x0c, 0x69, 0x60, 0xbb, 0xc0, 0x39, 0xad,
+0x21, 0x04, 0xbe, 0x57, 0xea, 0xa2, 0x8b,
+0xf4, 0xde, 0x12, 0xbd, 0x58, 0x84, 0x21,
+0xe3, 0x95, 0x4f, 0x1c, 0x5f, 0x35, 0xea,
+0x2f, 0xed, 0x84, 0x43, 0x31, 0x88, 0x12,
+0x98, 0x4a, 0x68, 0xe1, 0x66, 0x7c, 0x81,
+0xc6, 0x57,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha512_sigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha512_sigrl.inc
new file mode 100644
index 0000000000..265b16633c
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test0_sha512_sigrl.inc
@@ -0,0 +1,1222 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: grp01
+ * Signer: member0
+ * HashAlg: Sha512
+ * Message: "test message"
+ * Basename: None (random base)
+ * SigRl: SigRl of group
+ */
+0x36, 0x19, 0x27, 0x2c, 0xcf, 0xa0, 0x7a,
+0x44, 0x9c, 0xea, 0xe5, 0x77, 0x7e, 0x7d,
+0x12, 0x33, 0xd9, 0x21, 0x41, 0x58, 0x9b,
+0xaf, 0xcc, 0xa2, 0x2e, 0xe1, 0xe1, 0x27,
+0x70, 0xe6, 0x2f, 0x8e, 0x70, 0x9d, 0x7c,
+0x2b, 0x65, 0xf0, 0xd6, 0xe3, 0x89, 0x5b,
+0x8a, 0x82, 0x68, 0x2a, 0x2f, 0x44, 0xbb,
+0xba, 0xbe, 0xbf, 0xed, 0x94, 0x87, 0x5b,
+0xf4, 0x2a, 0xde, 0xb2, 0xe6, 0xee, 0x57,
+0x17, 0x71, 0xec, 0xf4, 0x3d, 0x7c, 0x44,
+0x2d, 0x77, 0x42, 0xc6, 0x22, 0x88, 0xc4,
+0x80, 0xe3, 0x99, 0x79, 0x7d, 0xe8, 0xf0,
+0xaf, 0x37, 0x67, 0x66, 0xe8, 0xa8, 0x63,
+0xd7, 0x88, 0xd6, 0xf7, 0x2e, 0x2b, 0x98,
+0xcc, 0x0a, 0x96, 0xef, 0x72, 0xfe, 0x47,
+0xf7, 0x46, 0x4c, 0x0b, 0x79, 0x94, 0x8c,
+0x6a, 0x1f, 0x09, 0x30, 0x31, 0x29, 0xd2,
+0x86, 0xed, 0x93, 0xd9, 0xed, 0x9e, 0x88,
+0xd2, 0x9b, 0x44, 0x15, 0x36, 0x91, 0x33,
+0x62, 0x44, 0xcf, 0xab, 0x0d, 0xf0, 0x24,
+0x86, 0x3f, 0x10, 0x74, 0x42, 0x37, 0xbb,
+0x1a, 0x67, 0xf4, 0x16, 0x61, 0xc7, 0x5e,
+0x30, 0x18, 0x86, 0x28, 0xa2, 0x3a, 0x68,
+0xe2, 0xec, 0x6e, 0xa4, 0x5f, 0x1e, 0x81,
+0xf1, 0x09, 0xcc, 0x8c, 0xde, 0xe5, 0x3f,
+0xc3, 0x6e, 0xfe, 0x19, 0x4f, 0x51, 0xa6,
+0x66, 0x69, 0xf2, 0x38, 0xac, 0xad, 0xd9,
+0xe8, 0xe2, 0x81, 0x5d, 0xde, 0x68, 0xa8,
+0x7e, 0x87, 0xfc, 0x67, 0xda, 0x14, 0xab,
+0x14, 0xf0, 0x42, 0x73, 0x8b, 0x2f, 0x82,
+0x3b, 0xce, 0x2e, 0x1f, 0x8d, 0xc8, 0x6e,
+0x3a, 0x6a, 0x0e, 0x8b, 0x9f, 0x8d, 0x58,
+0xbc, 0x32, 0x42, 0x14, 0x07, 0x5c, 0x4c,
+0x51, 0xd8, 0xb6, 0x59, 0x29, 0xf7, 0xe7,
+0x68, 0xa7, 0x27, 0x43, 0x75, 0x2d, 0x6b,
+0x0b, 0x0a, 0x4f, 0x9e, 0x85, 0xe0, 0x84,
+0xf2, 0x65, 0x25, 0xbd, 0x33, 0x76, 0xb7,
+0xee, 0x5d, 0xab, 0x4d, 0x2e, 0x33, 0xfd,
+0x93, 0xff, 0x74, 0x4d, 0x23, 0x99, 0xb4,
+0xaa, 0x10, 0x3a, 0xa5, 0x41, 0xb4, 0x18,
+0x38, 0xfc, 0x20, 0x04, 0x69, 0xb9, 0x8e,
+0xae, 0x5f, 0x77, 0xd8, 0x92, 0x15, 0xa4,
+0x5b, 0x4b, 0x46, 0x75, 0xdc, 0x77, 0xf8,
+0xdb, 0x58, 0x7a, 0xf8, 0xd3, 0x50, 0xa6,
+0x3b, 0x52, 0x10, 0x8b, 0x0f, 0x5c, 0x3d,
+0xeb, 0xb9, 0xf0, 0x11, 0xe7, 0xab, 0x1d,
+0x24, 0xc6, 0x99, 0x13, 0xbf, 0xc6, 0x41,
+0xbd, 0xf8, 0x13, 0xe1, 0x06, 0xb8, 0xb5,
+0xb3, 0x94, 0xcb, 0xc1, 0x65, 0xf2, 0x9a,
+0x47, 0x05, 0x87, 0xb6, 0x81, 0x8d, 0xd9,
+0x19, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x32, 0x97, 0x36, 0xc2, 0x28,
+0x13, 0xa6, 0xce, 0x2a, 0x82, 0xf5, 0x7e,
+0xce, 0xdb, 0x7e, 0x95, 0x97, 0x71, 0xce,
+0xf0, 0xa6, 0xbd, 0x9a, 0x09, 0x6c, 0x4b,
+0x5c, 0x64, 0xbc, 0xb6, 0x56, 0xfb, 0x5c,
+0xec, 0x0e, 0xc6, 0x33, 0x54, 0xa0, 0x4d,
+0x21, 0xdf, 0x03, 0xc4, 0xc8, 0x6a, 0x28,
+0xa3, 0xde, 0x94, 0x2c, 0x1b, 0x81, 0x47,
+0x71, 0xe9, 0xe0, 0xe7, 0x2a, 0x2e, 0x37,
+0x04, 0x0a, 0x86, 0x0f, 0x9f, 0xa4, 0x25,
+0x70, 0xd8, 0x52, 0xf4, 0x03, 0xdc, 0x10,
+0x93, 0x37, 0x9e, 0x23, 0xd9, 0x95, 0x59,
+0x66, 0xa0, 0x65, 0x00, 0x10, 0x27, 0xb3,
+0x78, 0xf2, 0x4a, 0xef, 0xab, 0x60, 0xed,
+0x21, 0x22, 0xb6, 0x5d, 0x1e, 0x90, 0x16,
+0xdf, 0xcc, 0x94, 0x54, 0x01, 0x3f, 0x06,
+0xfa, 0xdc, 0x59, 0xb9, 0x68, 0x95, 0xd1,
+0x71, 0x59, 0x06, 0x1d, 0xfe, 0xf4, 0x16,
+0x57, 0x19, 0x01, 0xc1, 0xd0, 0x7d, 0x6d,
+0x41, 0xee, 0x8e, 0xe0, 0x11, 0xd1, 0x95,
+0xde, 0xb5, 0x11, 0xa5, 0x61, 0xc6, 0xbf,
+0xb4, 0x4c, 0x9b, 0xb2, 0xc1, 0xb7, 0x32,
+0xb0, 0x45, 0x1c, 0xd5, 0x9d, 0x4e, 0x50,
+0x52, 0xa6, 0x2a, 0x1d, 0xc6, 0xef, 0xc7,
+0x53, 0xe6, 0x53, 0xbf, 0x7c, 0x3d, 0xed,
+0x79, 0x88, 0xd6, 0xbb, 0xf8, 0x2d, 0xeb,
+0x1a, 0x87, 0xd4, 0xee, 0xc4, 0x30, 0xbd,
+0xa0, 0x36, 0x98, 0xe5, 0x0a, 0xa5, 0x04,
+0xb5, 0xaa, 0x25, 0x00, 0xc8, 0x0b, 0xee,
+0x66, 0xe8, 0xc4, 0x6e, 0x9f, 0xb9, 0xea,
+0x29, 0xdb, 0xb2, 0x70, 0xfc, 0x75, 0xc8,
+0xef, 0x52, 0xd7, 0x4b, 0xa0, 0x15, 0x9c,
+0xf0, 0x4a, 0xc5, 0x1a, 0x8f, 0x1e, 0xb3,
+0xf3, 0xdc, 0xe0, 0x95, 0x5a, 0x07, 0x7d,
+0x8c, 0xfd, 0x2d, 0xeb, 0x20, 0x3e, 0xce,
+0x59, 0x63, 0x65, 0x59, 0x41, 0xf5, 0xde,
+0x3b, 0xb9, 0xd3, 0x0d, 0x88, 0xbc, 0xf4,
+0xf2, 0x95, 0x89, 0x29, 0x75, 0xeb, 0xbc,
+0xc3, 0x80, 0xe3, 0x5e, 0x06, 0x84, 0x10,
+0xc6, 0xb2, 0xd4, 0x61, 0x99, 0x4f, 0xe8,
+0x34, 0xcc, 0xfb, 0x22, 0x61, 0x9f, 0x24,
+0xe1, 0x5f, 0xf2, 0x56, 0x54, 0x01, 0x05,
+0xde, 0x2c, 0x21, 0xb4, 0x20, 0xbf, 0x86,
+0x1e, 0xef, 0x88, 0x35, 0xfb, 0xac, 0xcf,
+0x94, 0xcf, 0xb3, 0x66, 0x58, 0x2c, 0x53,
+0xdf, 0x87, 0xc9, 0xa2, 0x27, 0xa8, 0xe4,
+0x10, 0xb0, 0xe9, 0xee, 0x27, 0x4f, 0x25,
+0x29, 0x0f, 0x96, 0xa0, 0x26, 0xe7, 0xa6,
+0xd6, 0xf2, 0x03, 0x85, 0x3b, 0x2e, 0xc6,
+0x78, 0xe7, 0x77, 0x8d, 0x4f, 0xba, 0x03,
+0x55, 0xeb, 0xdb, 0xac, 0x3d, 0x77, 0xdf,
+0xdc, 0x27, 0xad, 0x71, 0x6c, 0xb9, 0xee,
+0x87, 0xc8, 0x51, 0x3f, 0xe5, 0xe1, 0xa0,
+0x3d, 0x42, 0xc9, 0xf2, 0x87, 0x7b, 0x0b,
+0xe3, 0x68, 0xbc, 0xbc, 0xea, 0x79, 0xd2,
+0x99, 0x0a, 0xdc, 0x37, 0x39, 0x68, 0xf2,
+0x5d, 0x09, 0xe4, 0xba, 0xc6, 0xf6, 0xd9,
+0xfa, 0xab, 0x90, 0x2c, 0x0f, 0x08, 0x8d,
+0xca, 0x14, 0xe1, 0xd8, 0xe9, 0xc8, 0x38,
+0x63, 0x00, 0x5f, 0x87, 0xba, 0x7e, 0x83,
+0x1b, 0x7d, 0x31, 0xcb, 0x54, 0x50, 0xca,
+0xe0, 0x96, 0x34, 0x4b, 0xdc, 0x71, 0x17,
+0xcb, 0x79, 0x1b, 0xa2, 0xae, 0x6f, 0xf2,
+0x1f, 0x62, 0xc1, 0x24, 0xc2, 0x30, 0x77,
+0x6c, 0x51, 0x23, 0x62, 0x1c, 0x4b, 0x0f,
+0xb5, 0x63, 0xc1, 0xd6, 0x12, 0x10, 0x77,
+0x11, 0x35, 0x01, 0xd9, 0xbd, 0x90, 0x02,
+0x39, 0x8c, 0x2d, 0x12, 0xbe, 0x77, 0x02,
+0x65, 0x9c, 0x66, 0xa5, 0x5d, 0xbe, 0x18,
+0x01, 0xb2, 0x41, 0xc1, 0x9e, 0x38, 0x7e,
+0xab, 0x05, 0x48, 0xbe, 0x95, 0x09, 0x9f,
+0x02, 0x01, 0x15, 0xa6, 0x3d, 0xfa, 0xa7,
+0xf9, 0xac, 0xe4, 0xc0, 0xb1, 0x22, 0x82,
+0xfc, 0x37, 0x9b, 0xbd, 0xdb, 0xec, 0x23,
+0x3e, 0xec, 0xd8, 0x64, 0x35, 0xe9, 0x81,
+0xab, 0x15, 0x54, 0x28, 0x65, 0xf3, 0x2b,
+0xe1, 0x3e, 0x9e, 0x6c, 0x45, 0x43, 0xdf,
+0x76, 0x00, 0x37, 0xf4, 0x52, 0x8b, 0x68,
+0xce, 0xdb, 0x29, 0x71, 0x1d, 0x5e, 0x1f,
+0x94, 0x7f, 0x46, 0xfc, 0x2b, 0x34, 0x1b,
+0xbb, 0xee, 0x0e, 0xa5, 0x57, 0x8e, 0xe1,
+0x51, 0x4d, 0x54, 0xbc, 0x62, 0x19, 0xe3,
+0xec, 0x5d, 0x10, 0xa0, 0x94, 0x8d, 0x8d,
+0xb2, 0xca, 0x19, 0xac, 0x49, 0xa9, 0x4e,
+0x9a, 0x9f, 0xcc, 0x77, 0x1d, 0x3e, 0x14,
+0xe2, 0x99, 0xac, 0x58, 0x1d, 0xe0, 0xd0,
+0x7e, 0x01, 0xe2, 0x46, 0x4b, 0x22, 0x10,
+0x66, 0x04, 0x6a, 0x18, 0x3d, 0x60, 0x3c,
+0xc7, 0x13, 0x65, 0xb9, 0xba, 0x8e, 0xfe,
+0xf8, 0x2a, 0x37, 0x06, 0xf1, 0xd2, 0x84,
+0xc7, 0x80, 0xfc, 0x51, 0x8b, 0xbf, 0x7d,
+0xe1, 0x70, 0xd1, 0xc4, 0xf8, 0xa9, 0x30,
+0xc3, 0xec, 0xa0, 0xff, 0xdb, 0xda, 0xd3,
+0x3e, 0x7d, 0x72, 0x04, 0x8f, 0x68, 0x76,
+0xe6, 0x30, 0xb2, 0x13, 0xde, 0x8c, 0xe9,
+0x07, 0xc2, 0xbf, 0x3a, 0x78, 0xf0, 0xf0,
+0xd4, 0xc1, 0xdb, 0x64, 0x69, 0x26, 0x5d,
+0x4f, 0xac, 0x98, 0x66, 0x4d, 0x20, 0x0d,
+0xc0, 0x9c, 0x56, 0x94, 0xd8, 0xe2, 0x84,
+0xa9, 0x32, 0x4c, 0x10, 0x47, 0x68, 0x2b,
+0x33, 0x8c, 0x16, 0xb0, 0xf9, 0x35, 0x36,
+0x65, 0x53, 0xc8, 0x23, 0x7e, 0x6b, 0x07,
+0x2d, 0x2d, 0x32, 0x20, 0x1a, 0x4c, 0xe9,
+0xe9, 0x84, 0x25, 0x4d, 0xc3, 0x8e, 0x70,
+0xa6, 0x47, 0xd1, 0xe5, 0xfd, 0x72, 0xa6,
+0xf5, 0x7c, 0x9a, 0x93, 0x0e, 0x23, 0xe0,
+0x98, 0xb9, 0x64, 0x1f, 0x9a, 0x64, 0xc0,
+0xd4, 0x0a, 0xe5, 0xbb, 0x17, 0x3e, 0x3a,
+0x94, 0xe3, 0x81, 0xd6, 0x75, 0x5c, 0x8e,
+0xf3, 0xf6, 0x9f, 0x80, 0xb5, 0x1e, 0xef,
+0xd6, 0x58, 0x31, 0x8b, 0x94, 0xe0, 0xed,
+0x3a, 0x5b, 0xcf, 0xca, 0x26, 0x34, 0xe8,
+0xa1, 0x70, 0xc3, 0xbe, 0x23, 0x0a, 0x47,
+0x36, 0xeb, 0xc8, 0xfc, 0x8a, 0x26, 0xf7,
+0x60, 0x44, 0x48, 0x4e, 0x08, 0x40, 0x73,
+0xb3, 0x3e, 0xa0, 0x5e, 0xa0, 0x5c, 0x74,
+0x5d, 0x21, 0xfc, 0x00, 0x57, 0xbf, 0x23,
+0xda, 0xae, 0x49, 0xac, 0x6a, 0x10, 0xe6,
+0x1e, 0x1b, 0x19, 0xe6, 0xce, 0x41, 0x6c,
+0x3c, 0xe7, 0x45, 0x3c, 0xcb, 0x75, 0xa9,
+0xd7, 0x60, 0x0d, 0x43, 0x69, 0x1e, 0xc2,
+0x47, 0xea, 0x07, 0x46, 0x2c, 0x58, 0x25,
+0x1e, 0x10, 0xe9, 0xc8, 0x8a, 0x14, 0x85,
+0x6f, 0x49, 0x37, 0xd7, 0xfb, 0x07, 0x82,
+0x4a, 0x6a, 0x5a, 0x3e, 0x95, 0x7c, 0x2c,
+0x05, 0xc4, 0x50, 0x82, 0xaa, 0x9e, 0x6b,
+0x27, 0x35, 0x48, 0x42, 0x8e, 0x5a, 0x5f,
+0x4c, 0x7e, 0xd4, 0x7c, 0x08, 0x77, 0x1e,
+0x91, 0x42, 0xd8, 0x3f, 0xbe, 0xed, 0x3b,
+0x64, 0x58, 0x57, 0x95, 0xc7, 0x92, 0x94,
+0xcf, 0xce, 0x22, 0x73, 0xe3, 0x32, 0xe5,
+0x15, 0xa9, 0xbb, 0x6f, 0x27, 0xb9, 0xf3,
+0xf1, 0xe4, 0xfd, 0xaf, 0xf5, 0x02, 0x86,
+0xb2, 0x4e, 0x50, 0x5b, 0xef, 0xa0, 0xac,
+0x0c, 0xa9, 0xba, 0x78, 0xe1, 0xbe, 0x4d,
+0x1b, 0x74, 0x9f, 0x36, 0xa4, 0x58, 0x4b,
+0xcf, 0x7b, 0xc2, 0xac, 0x3f, 0x1d, 0x8a,
+0x9f, 0x81, 0x15, 0x70, 0x8e, 0x43, 0x0b,
+0x2b, 0xcb, 0xf4, 0x93, 0x76, 0x97, 0x74,
+0x61, 0xaf, 0x2e, 0x7d, 0xfe, 0x11, 0x74,
+0x03, 0x8f, 0x38, 0x32, 0x7c, 0x1f, 0xf6,
+0x46, 0x68, 0xac, 0x29, 0x48, 0x3e, 0x63,
+0xac, 0x64, 0x10, 0x97, 0x1a, 0x22, 0x67,
+0x09, 0x51, 0x0c, 0x46, 0x7e, 0xab, 0x21,
+0x72, 0xbf, 0x12, 0x69, 0x99, 0x7c, 0xef,
+0x07, 0x39, 0x33, 0x63, 0xf8, 0x16, 0x70,
+0xe8, 0x25, 0x62, 0x90, 0xa4, 0xd4, 0x10,
+0x77, 0xbf, 0x20, 0xac, 0x00, 0xc8, 0x85,
+0x12, 0x34, 0x52, 0x1a, 0x77, 0x2a, 0xb7,
+0x42, 0x27, 0xcf, 0x2d, 0x1b, 0x15, 0x29,
+0x60, 0xdc, 0x61, 0xdf, 0x0d, 0x97, 0xac,
+0x71, 0x86, 0xae, 0x93, 0x78, 0xdf, 0xc4,
+0xa2, 0x1a, 0xb9, 0x30, 0x23, 0xd0, 0x37,
+0xd4, 0x3a, 0x14, 0x67, 0x80, 0xb7, 0xfd,
+0x41, 0x89, 0xc3, 0x5b, 0x72, 0xa7, 0x55,
+0x76, 0xdf, 0x73, 0x43, 0x9d, 0x40, 0xd6,
+0xd8, 0x93, 0xee, 0x39, 0x54, 0xf3, 0x65,
+0x15, 0x76, 0xa9, 0x90, 0xe3, 0x5a, 0xea,
+0xda, 0xc9, 0x19, 0x9e, 0x4e, 0x30, 0x43,
+0x07, 0xcc, 0x24, 0x40, 0x73, 0x91, 0xaf,
+0x8d, 0x42, 0x65, 0x0e, 0x01, 0x07, 0x5a,
+0xd8, 0xee, 0x8d, 0x20, 0x09, 0xfe, 0x2b,
+0x08, 0x63, 0x62, 0xc6, 0xdb, 0x1d, 0xac,
+0x9b, 0xbc, 0x97, 0x15, 0xba, 0x45, 0x1f,
+0x05, 0x1a, 0xe4, 0xbb, 0x1a, 0xeb, 0x2a,
+0xc6, 0x3a, 0xd5, 0xdc, 0x14, 0x90, 0x90,
+0x29, 0x8d, 0xe1, 0x2b, 0x37, 0x50, 0x63,
+0x1f, 0xcc, 0x73, 0xbe, 0x46, 0x69, 0xeb,
+0x67, 0x75, 0xd6, 0x18, 0xc7, 0xde, 0x39,
+0xd3, 0x26, 0x1f, 0xd3, 0x92, 0x27, 0x65,
+0xec, 0xd0, 0x6a, 0xb3, 0xca, 0x84, 0x47,
+0x97, 0xb9, 0x07, 0x70, 0xc5, 0xcf, 0xa1,
+0xf0, 0x54, 0x99, 0x32, 0x1b, 0x1a, 0x15,
+0xd7, 0x49, 0xd3, 0x50, 0x36, 0x20, 0x99,
+0xde, 0xf8, 0xc3, 0x06, 0xa9, 0x99, 0x29,
+0x91, 0x9c, 0xed, 0xf5, 0xad, 0x30, 0x78,
+0x6f, 0xdb, 0xca, 0x37, 0x10, 0xf1, 0x8c,
+0xf5, 0x23, 0x0b, 0x08, 0x81, 0xf3, 0x89,
+0x1d, 0x82, 0xc2, 0x5c, 0x52, 0x69, 0x28,
+0x5e, 0x63, 0x82, 0x85, 0xc6, 0xc3, 0x7d,
+0x31, 0x64, 0x09, 0x7d, 0xac, 0xbc, 0x03,
+0x1e, 0xe0, 0xe9, 0xba, 0xf3, 0xc3, 0xfd,
+0xdd, 0xd2, 0x6d, 0x21, 0xd7, 0xa3, 0x9d,
+0x2c, 0x80, 0x5f, 0xb8, 0x89, 0x45, 0xad,
+0xeb, 0x92, 0xf1, 0x86, 0x43, 0x15, 0x7e,
+0x21, 0xbc, 0x06, 0xba, 0xe3, 0x78, 0xf8,
+0x85, 0xc0, 0x90, 0x71, 0x16, 0xdb, 0x6f,
+0x21, 0x0b, 0xd4, 0x69, 0x34, 0x35, 0x4e,
+0x1c, 0xc1, 0x83, 0x2b, 0x4e, 0x2f, 0x2f,
+0xb4, 0xf5, 0x2b, 0x94, 0x91, 0xdf, 0x97,
+0x65, 0xd0, 0x79, 0x74, 0xd7, 0x61, 0x12,
+0x3e, 0xf8, 0xaa, 0xfe, 0x74, 0x54, 0x09,
+0x38, 0x0c, 0xdf, 0xb7, 0x50, 0x9e, 0x03,
+0xab, 0x6d, 0xe4, 0x7c, 0x62, 0xe0, 0xc7,
+0x9d, 0x80, 0xa4, 0x02, 0x64, 0x1f, 0x4f,
+0x4b, 0x22, 0x5c, 0xf9, 0x10, 0xc1, 0xc8,
+0x5e, 0x73, 0x65, 0xd8, 0xd7, 0xf3, 0x5f,
+0xb4, 0xc9, 0x25, 0xbf, 0x55, 0xea, 0x09,
+0x14, 0x42, 0x69, 0x19, 0x5c, 0x2b, 0xfa,
+0x3d, 0x79, 0x2c, 0x66, 0xa4, 0x99, 0x63,
+0x96, 0x1c, 0xe0, 0xbb, 0x5a, 0x52, 0x65,
+0x56, 0x77, 0x2e, 0x47, 0x94, 0xc6, 0x4d,
+0x12, 0x03, 0xb0, 0x23, 0x89, 0x25, 0xc8,
+0x59, 0xdf, 0x1a, 0xb6, 0x01, 0x42, 0x45,
+0x12, 0x3a, 0xbd, 0xb6, 0x22, 0xbe, 0x7c,
+0x64, 0x04, 0x07, 0xe4, 0x90, 0xca, 0x55,
+0x94, 0x24, 0xd2, 0xf5, 0x84, 0xf9, 0x1b,
+0xa5, 0xaa, 0xed, 0xec, 0xb5, 0xc4, 0x9e,
+0xaf, 0xda, 0x54, 0x5d, 0x32, 0xfd, 0xe1,
+0x4f, 0x77, 0xa9, 0xdb, 0x77, 0x50, 0x54,
+0x75, 0xcd, 0x4e, 0x9a, 0xd9, 0x87, 0x25,
+0xae, 0x5a, 0x73, 0x36, 0x5d, 0x80, 0xa8,
+0x70, 0x76, 0x8a, 0xc5, 0x42, 0xb2, 0xc1,
+0xed, 0x8e, 0x3b, 0xf8, 0x1c, 0xbf, 0x99,
+0x8a, 0x9b, 0x5d, 0x83, 0xf8, 0x55, 0x91,
+0xd9, 0xd9, 0x80, 0x17, 0xde, 0xea, 0xa1,
+0xf2, 0x47, 0xc2, 0xbd, 0xfa, 0x3b, 0x47,
+0x1b, 0x57, 0xe0, 0xbd, 0x7d, 0xa5, 0x67,
+0x7a, 0x86, 0xae, 0x64, 0x74, 0x57, 0xd6,
+0x9d, 0x34, 0xe8, 0x48, 0xf8, 0x1d, 0xce,
+0x40, 0x32, 0x6e, 0xb4, 0x80, 0xaa, 0xae,
+0xb8, 0x10, 0x23, 0x1c, 0x03, 0x2d, 0x68,
+0x7c, 0x17, 0xb2, 0x10, 0xec, 0x22, 0xa4,
+0x11, 0x0a, 0xcb, 0xe8, 0xcc, 0x56, 0x11,
+0xe4, 0x61, 0xf2, 0x13, 0xf7, 0x9a, 0x67,
+0x3f, 0x82, 0x92, 0xcc, 0x56, 0xd7, 0xc4,
+0x2a, 0xd1, 0x49, 0x22, 0x9a, 0xa1, 0xcf,
+0x2a, 0xea, 0xe8, 0xd6, 0xac, 0x49, 0x3d,
+0x8a, 0x77, 0xc7, 0x3f, 0x29, 0xbf, 0x93,
+0x49, 0x22, 0x93, 0xe2, 0xc0, 0xf1, 0x66,
+0xe0, 0xbe, 0x32, 0x94, 0x13, 0x4b, 0x4a,
+0x70, 0xa0, 0xfe, 0xfb, 0xa3, 0xe7, 0x99,
+0xd0, 0x9d, 0xc1, 0x89, 0x91, 0xe4, 0x78,
+0xc3, 0xf0, 0xb2, 0xae, 0x27, 0x71, 0xc8,
+0x87, 0x1d, 0xaa, 0x40, 0x44, 0x23, 0x68,
+0x9f, 0x51, 0xd5, 0x8b, 0x88, 0xf3, 0x29,
+0x2f, 0xf5, 0xdf, 0x31, 0xa5, 0xcd, 0x8e,
+0xc2, 0x16, 0x2f, 0x0f, 0x69, 0x45, 0xb8,
+0x9b, 0xa5, 0x6f, 0x06, 0x43, 0x15, 0xbb,
+0xaa, 0xf0, 0xa1, 0xd4, 0x5e, 0xf8, 0xbb,
+0xe5, 0x8c, 0x83, 0x6a, 0x4b, 0x87, 0xf2,
+0xa9, 0x61, 0x48, 0xe2, 0xcb, 0x8a, 0xcf,
+0x0c, 0x77, 0x7d, 0x0b, 0xb9, 0x29, 0x80,
+0x69, 0x90, 0x41, 0x31, 0x6b, 0x02, 0x49,
+0xb7, 0xb6, 0x27, 0xca, 0x64, 0x2a, 0x1e,
+0xa4, 0x3c, 0xda, 0x95, 0xa1, 0xb0, 0xa2,
+0x81, 0x90, 0xce, 0xcd, 0x93, 0xc2, 0x88,
+0xac, 0xb2, 0x5f, 0x2c, 0x0e, 0x72, 0x05,
+0x9d, 0x93, 0xb3, 0x46, 0x30, 0x1f, 0xef,
+0xf4, 0xe9, 0xaf, 0x92, 0xb9, 0x92, 0x89,
+0xfc, 0xa6, 0x2e, 0xb4, 0x2a, 0xee, 0x34,
+0x27, 0xcf, 0xb7, 0xdb, 0x36, 0xf4, 0x88,
+0x60, 0xd6, 0xeb, 0x6b, 0x2a, 0x38, 0x35,
+0xe6, 0x4a, 0xbf, 0x57, 0xe9, 0x1d, 0x50,
+0x40, 0xd9, 0x74, 0xe9, 0xc5, 0x03, 0x2a,
+0xde, 0x1e, 0x95, 0xc7, 0xd4, 0xd2, 0x58,
+0x70, 0xdb, 0x20, 0xaa, 0x46, 0x94, 0x55,
+0xd8, 0x19, 0xc7, 0xe6, 0xd4, 0x9b, 0x25,
+0x4f, 0x5d, 0xf9, 0x57, 0x9d, 0xb3, 0x21,
+0x31, 0x95, 0x7c, 0xb6, 0xcb, 0x67, 0x4d,
+0x2f, 0xd7, 0xa7, 0xdd, 0xe5, 0x08, 0xf7,
+0xf2, 0x13, 0x99, 0x98, 0x84, 0x8d, 0xef,
+0x7d, 0xed, 0x17, 0xa1, 0x8c, 0x78, 0x45,
+0x36, 0x54, 0x78, 0xf3, 0xcb, 0x3d, 0x23,
+0x34, 0xcd, 0x94, 0xd8, 0x79, 0x88, 0x7d,
+0xca, 0x3b, 0x0b, 0x69, 0x21, 0xe0, 0x4b,
+0x5f, 0x5f, 0x56, 0x34, 0xba, 0x73, 0xb3,
+0xe5, 0x04, 0xf2, 0x76, 0xaf, 0x19, 0x8c,
+0x4b, 0x3c, 0xf2, 0xd7, 0x9d, 0x5e, 0x3e,
+0x0e, 0x0b, 0x74, 0xb1, 0xf4, 0x51, 0x5b,
+0x5f, 0x9f, 0xdc, 0xa5, 0x4f, 0x95, 0x05,
+0x3a, 0xb9, 0x60, 0x87, 0xc2, 0xda, 0xb1,
+0xa9, 0xc0, 0x85, 0xf6, 0xf4, 0x3c, 0xd9,
+0x3a, 0x39, 0x5d, 0x80, 0xfa, 0x93, 0x56,
+0xbc, 0x4c, 0x7e, 0xb1, 0x8a, 0x34, 0x9a,
+0x0a, 0xeb, 0xd4, 0x83, 0x0e, 0xb1, 0x34,
+0x56, 0xdb, 0x9a, 0xca, 0xbb, 0x0d, 0x34,
+0x9c, 0x38, 0x74, 0x6b, 0xee, 0x67, 0x65,
+0xb4, 0xee, 0xb3, 0x65, 0xc4, 0x22, 0xeb,
+0x4b, 0x7d, 0x67, 0xe5, 0x83, 0x8d, 0xf4,
+0x92, 0x02, 0x88, 0xad, 0x85, 0xe7, 0xbd,
+0xfd, 0x9f, 0xd8, 0x55, 0x86, 0x8e, 0x0d,
+0x1a, 0xff, 0x1a, 0x0a, 0x5d, 0xf9, 0x0a,
+0xc3, 0xa3, 0x66, 0x35, 0xab, 0x09, 0xe2,
+0x64, 0x25, 0x02, 0x6e, 0xbb, 0xca, 0x62,
+0xd2, 0xbe, 0x1e, 0xb1, 0x8f, 0x16, 0xb5,
+0x40, 0x56, 0x86, 0x97, 0x57, 0x35, 0xbf,
+0x1d, 0xdd, 0x70, 0x28, 0x1d, 0xd5, 0x0a,
+0x92, 0x9e, 0x94, 0x35, 0xcb, 0xdc, 0xe2,
+0x56, 0xc3, 0x6f, 0x46, 0x35, 0x73, 0xee,
+0xfd, 0x02, 0x6e, 0x63, 0xad, 0x46, 0x26,
+0xb8, 0x71, 0x6f, 0x4a, 0x67, 0x0d, 0x70,
+0x33, 0x82, 0x90, 0x90, 0x16, 0x00, 0xcd,
+0x54, 0x93, 0xb3, 0xc2, 0x67, 0xdf, 0x6f,
+0x23, 0x34, 0x29, 0x19, 0x02, 0xad, 0x0b,
+0xd0, 0x8e, 0xd9, 0xc8, 0x3d, 0x17, 0x10,
+0xc8, 0x0a, 0x6c, 0x1f, 0x62, 0x3e, 0xed,
+0x72, 0xde, 0x5c, 0x1b, 0x8d, 0xcf, 0xec,
+0xd8, 0xf2, 0x68, 0x46, 0x8f, 0x5a, 0x26,
+0x1c, 0x4e, 0x31, 0x7e, 0x65, 0x4b, 0xc7,
+0xd6, 0x4e, 0x9d, 0xe4, 0x06, 0x98, 0x1e,
+0xef, 0x79, 0x41, 0xfe, 0x9d, 0xe1, 0x68,
+0xbf, 0x45, 0x17, 0xb7, 0x34, 0x90, 0x7c,
+0xa6, 0xf2, 0xe7, 0xa7, 0x59, 0xc0, 0x12,
+0xb0, 0xce, 0x62, 0x1c, 0x22, 0x31, 0x52,
+0x8d, 0x3f, 0x55, 0x41, 0x92, 0x0a, 0xa5,
+0x1e, 0x1d, 0x3c, 0x84, 0xd2, 0xba, 0x5d,
+0x83, 0x83, 0xe9, 0x8e, 0xca, 0xbc, 0xb4,
+0x44, 0xc7, 0x9b, 0x7c, 0xdd, 0x3b, 0xcf,
+0xe2, 0xe3, 0x82, 0x3b, 0x05, 0x12, 0x2f,
+0xf1, 0x7a, 0x62, 0x72, 0xcb, 0xce, 0x3f,
+0xc4, 0xbc, 0xe9, 0x22, 0x34, 0x2f, 0x76,
+0xe7, 0x0f, 0xa3, 0xda, 0x73, 0x1c, 0xe9,
+0xe6, 0x51, 0x39, 0x85, 0xb0, 0xf2, 0xab,
+0xc3, 0x65, 0xd3, 0x18, 0xe5, 0xd7, 0xc4,
+0x64, 0x90, 0xee, 0xe4, 0x9c, 0xc3, 0x69,
+0xe7, 0x9a, 0x1a, 0x7d, 0x1e, 0x43, 0xc8,
+0xe2, 0x31, 0x50, 0x07, 0xd1, 0xb5, 0xb6,
+0x25, 0x56, 0x90, 0x19, 0x38, 0xb9, 0x3e,
+0x2b, 0x3e, 0xcd, 0xcd, 0x74, 0xc1, 0x40,
+0x61, 0xdb, 0xd4, 0xcf, 0xae, 0x88, 0xc0,
+0xc9, 0x19, 0xb4, 0xcc, 0x4e, 0x6e, 0x06,
+0x50, 0xf6, 0x3c, 0x3e, 0xc7, 0x48, 0xb1,
+0x9e, 0x32, 0xe3, 0x54, 0x05, 0xac, 0x41,
+0xd8, 0x31, 0xb6, 0xb3, 0x6e, 0xf1, 0x4d,
+0xfe, 0xd4, 0x38, 0x2e, 0xff, 0x2f, 0x3a,
+0x61, 0xa3, 0xe7, 0x77, 0x99, 0xcb, 0x27,
+0xb8, 0x26, 0xab, 0xc4, 0x10, 0xe3, 0xdf,
+0x93, 0x05, 0x2b, 0x95, 0x7e, 0xca, 0x2e,
+0x6c, 0xe2, 0x9b, 0x29, 0x84, 0xca, 0x6c,
+0xad, 0x9b, 0x59, 0xc6, 0x69, 0x03, 0x78,
+0x34, 0x13, 0xd6, 0x7f, 0xf9, 0x94, 0xcd,
+0xce, 0x79, 0x2b, 0x98, 0x2d, 0xc6, 0xb7,
+0xbe, 0xe2, 0x05, 0x2d, 0xdd, 0xae, 0x62,
+0x4c, 0xb9, 0x12, 0xc9, 0xfe, 0x0d, 0x8b,
+0x90, 0x19, 0xd1, 0x75, 0xfc, 0x5f, 0x6d,
+0x21, 0x86, 0x0b, 0x2d, 0x5f, 0xd1, 0x1c,
+0xde, 0xb4, 0x32, 0x69, 0x6b, 0x41, 0x6d,
+0xbe, 0xfe, 0xb9, 0x62, 0xba, 0x5d, 0x5b,
+0x28, 0x73, 0xd5, 0xdb, 0x7b, 0x71, 0x88,
+0x28, 0x86, 0xb2, 0x1a, 0x6c, 0xa7, 0x52,
+0x79, 0x84, 0x74, 0xd7, 0x40, 0xcf, 0x45,
+0xd7, 0x5a, 0xf3, 0x16, 0xa6, 0x32, 0x5c,
+0x82, 0x6d, 0x1d, 0x76, 0x02, 0x6c, 0x7a,
+0x9e, 0x3e, 0xf9, 0x2f, 0x4b, 0x1a, 0xae,
+0x34, 0x03, 0x39, 0xe2, 0x7f, 0x1e, 0x5a,
+0x29, 0x8d, 0x45, 0xac, 0x2e, 0x85, 0x91,
+0xd0, 0x37, 0xcf, 0xe0, 0x84, 0x02, 0x13,
+0x13, 0x69, 0xd7, 0x8a, 0xc6, 0xbc, 0x07,
+0xb4, 0x1c, 0xa0, 0xa7, 0x18, 0x73, 0x26,
+0x8d, 0xad, 0xae, 0x67, 0xc3, 0x83, 0x88,
+0x46, 0x52, 0x90, 0x23, 0x40, 0xd1, 0x04,
+0x50, 0xbe, 0x57, 0x2a, 0xb5, 0x53, 0x39,
+0x9e, 0x53, 0xb5, 0xcc, 0x15, 0xf2, 0xa7,
+0xae, 0xb1, 0x82, 0x64, 0xa1, 0x05, 0xfe,
+0xd5, 0xf7, 0x39, 0x8b, 0xbe, 0xe5, 0xbb,
+0xae, 0xab, 0xce, 0x4f, 0x60, 0x7b, 0x4c,
+0x2e, 0xc4, 0x3c, 0x32, 0x2c, 0xb1, 0x95,
+0x36, 0xb4, 0x10, 0xd6, 0xfc, 0xf3, 0xcc,
+0x03, 0x69, 0x82, 0xfa, 0xdd, 0x02, 0xfb,
+0xf6, 0xed, 0x44, 0x90, 0xec, 0x7a, 0xfa,
+0x74, 0xd4, 0xd9, 0x97, 0x1c, 0xd1, 0x69,
+0x5f, 0x87, 0xa9, 0x51, 0x1b, 0x00, 0x5d,
+0xf7, 0x12, 0xe0, 0xf1, 0xb0, 0xae, 0x33,
+0x09, 0xbc, 0xe9, 0xd0, 0x50, 0xac, 0x80,
+0x80, 0xb8, 0xe1, 0xa5, 0x7a, 0xd5, 0x65,
+0x1c, 0xee, 0xd7, 0xcb, 0xbb, 0x09, 0x6d,
+0x86, 0xb2, 0x31, 0x54, 0xcd, 0xca, 0x49,
+0x67, 0x5c, 0x7f, 0x49, 0x90, 0xf3, 0xb3,
+0x95, 0x8d, 0x25, 0xed, 0x4e, 0x84, 0x28,
+0xb3, 0xbf, 0x68, 0xc1, 0xc6, 0x32, 0xa0,
+0x66, 0xb0, 0x07, 0x25, 0xc5, 0x26, 0xfb,
+0x76, 0x9e, 0x73, 0xed, 0x63, 0x19, 0x2f,
+0xb1, 0x3e, 0xb0, 0xc7, 0x8c, 0xd8, 0x7d,
+0x60, 0xb5, 0x0a, 0x0c, 0x57, 0x0d, 0xac,
+0xa5, 0xa3, 0x12, 0x1e, 0x3a, 0xa3, 0x82,
+0xeb, 0xfb, 0x0d, 0x1a, 0x26, 0x22, 0xd6,
+0x25, 0x14, 0xa7, 0x4e, 0x72, 0x87, 0x62,
+0x8d, 0x7a, 0x25, 0x31, 0xbb, 0xb8, 0x89,
+0x62, 0x69, 0xf1, 0xff, 0xb4, 0xb7, 0x26,
+0x45, 0x80, 0x59, 0xce, 0x1b, 0x19, 0x22,
+0x4b, 0x6d, 0x31, 0x8f, 0xf7, 0x9c, 0xf2,
+0xf7, 0xe0, 0x1e, 0x4a, 0x7d, 0x5e, 0x6c,
+0xc2, 0x3e, 0x2d, 0x42, 0x96, 0xe6, 0xe8,
+0x7d, 0x3d, 0xdf, 0x8b, 0xbb, 0x8c, 0x64,
+0xc3, 0x45, 0x91, 0x67, 0x39, 0x6c, 0xcb,
+0x9b, 0x58, 0x4b, 0xde, 0x32, 0x6c, 0xc4,
+0xf2, 0x19, 0x5e, 0x27, 0x7e, 0xdc, 0xee,
+0x14, 0x69, 0x14, 0x83, 0x62, 0xa6, 0xb5,
+0x3e, 0x87, 0x49, 0x23, 0x5c, 0xcf, 0x47,
+0x20, 0xd4, 0x84, 0x2c, 0xba, 0xc7, 0x4b,
+0x0c, 0xf5, 0xfd, 0xa9, 0x36, 0xdd, 0x32,
+0x97, 0x78, 0x6b, 0x52, 0x4a, 0xac, 0x73,
+0xb6, 0x38, 0x58, 0x6c, 0xc4, 0x2c, 0xbe,
+0x57, 0xbc, 0xd2, 0x29, 0xad, 0xb0, 0xfc,
+0xd9, 0xcf, 0x0d, 0x4d, 0x8d, 0x85, 0x80,
+0x50, 0x8e, 0x35, 0xf1, 0x9a, 0x9f, 0x19,
+0x05, 0xb8, 0x65, 0x0f, 0x1b, 0xc5, 0xca,
+0xb9, 0x77, 0xb1, 0x00, 0xa1, 0x9a, 0x95,
+0xd7, 0x11, 0xcd, 0x8f, 0x56, 0xe3, 0x62,
+0xc9, 0xc5, 0x47, 0xf1, 0x2c, 0x0c, 0xd1,
+0xc2, 0x49, 0x17, 0xc0, 0xe4, 0xeb, 0xe4,
+0xa9, 0x1f, 0x34, 0x10, 0x0a, 0xc5, 0x54,
+0x8d, 0xb1, 0xb9, 0x4d, 0xf6, 0x89, 0xc2,
+0x86, 0x2c, 0xde, 0x32, 0xdd, 0x67, 0x01,
+0x0a, 0x37, 0xad, 0x0a, 0xa7, 0xa9, 0x6a,
+0x75, 0xdf, 0x18, 0x53, 0xf8, 0x54, 0xee,
+0x4e, 0x2a, 0x0b, 0x94, 0x09, 0x92, 0x54,
+0x20, 0x92, 0x93, 0x5a, 0x22, 0xb5, 0xc6,
+0x1a, 0x94, 0xed, 0xd5, 0x2b, 0xe7, 0xb6,
+0xe2, 0xdf, 0xc5, 0x4f, 0x17, 0xce, 0xfc,
+0xc2, 0x5a, 0xdb, 0x3b, 0xf9, 0x9d, 0xd5,
+0x94, 0x3a, 0x7a, 0x9f, 0x5d, 0xb6, 0xe0,
+0x46, 0x33, 0x5c, 0x2d, 0xb4, 0x5e, 0x5d,
+0xaf, 0x0a, 0x24, 0x0a, 0xae, 0x39, 0xe5,
+0xef, 0xc4, 0xb1, 0x26, 0xad, 0x42, 0x1f,
+0xc3, 0x12, 0x79, 0xb8, 0x60, 0xcc, 0x23,
+0x28, 0x6d, 0x11, 0x41, 0x27, 0x08, 0x8f,
+0xbd, 0x12, 0xbe, 0x71, 0x5f, 0x48, 0x99,
+0x88, 0xa0, 0xa0, 0x34, 0xb5, 0x0e, 0x72,
+0xe3, 0x99, 0x7d, 0x88, 0x14, 0x1c, 0x3e,
+0x13, 0xd6, 0xcd, 0x56, 0xb5, 0x46, 0xc6,
+0xed, 0x80, 0x78, 0x23, 0xb5, 0xfb, 0x53,
+0x7c, 0x5f, 0x9f, 0xb4, 0x21, 0x2c, 0xb7,
+0x4b, 0xbf, 0x5a, 0x67, 0xc7, 0x9a, 0x4f,
+0x59, 0x2f, 0x8f, 0x3b, 0x8a, 0x11, 0xde,
+0x5a, 0xa7, 0x66, 0xc5, 0x2b, 0xa7, 0x2d,
+0xde, 0xad, 0x85, 0x0c, 0x5d, 0x80, 0xf6,
+0x41, 0x38, 0x99, 0xdf, 0x1f, 0x27, 0x64,
+0x5c, 0xe5, 0x26, 0x6f, 0x2e, 0xbc, 0xb3,
+0x5e, 0x00, 0xf7, 0x9d, 0x1e, 0xdb, 0x35,
+0x7e, 0x70, 0x9d, 0xaf, 0x33, 0x5f, 0x01,
+0x79, 0xe2, 0x08, 0x4f, 0x50, 0x7b, 0xf0,
+0x10, 0xa5, 0xe8, 0x63, 0x36, 0x34, 0xe5,
+0x2e, 0x25, 0x1b, 0xfa, 0x1d, 0xd8, 0x99,
+0x4c, 0xda, 0xa5, 0xf1, 0xe1, 0xa8, 0xfb,
+0x7e, 0x07, 0x2a, 0x98, 0x43, 0x87, 0x69,
+0xa3, 0xb0, 0x68, 0xce, 0xdd, 0xad, 0xb0,
+0x1f, 0x26, 0x1e, 0x60, 0x4f, 0x92, 0xc8,
+0x74, 0xb3, 0xee, 0xee, 0x53, 0x73, 0x97,
+0x03, 0xa0, 0x5a, 0x84, 0x9f, 0x9b, 0x79,
+0x2b, 0x6b, 0xbb, 0xec, 0x95, 0xa6, 0x97,
+0x01, 0x47, 0x45, 0xd7, 0x07, 0x77, 0x86,
+0x19, 0x43, 0x8d, 0x9a, 0x44, 0x7c, 0xb4,
+0x85, 0x48, 0xcd, 0xa0, 0x9e, 0x94, 0xc3,
+0x41, 0x46, 0x40, 0xd5, 0x51, 0x75, 0x64,
+0x58, 0x36, 0x5a, 0xc9, 0x52, 0x48, 0x08,
+0xa4, 0xd3, 0xd9, 0x7e, 0x07, 0x74, 0x22,
+0xd9, 0xf3, 0x2d, 0x4d, 0x93, 0x8b, 0xad,
+0x79, 0xc1, 0x6a, 0x6d, 0xd6, 0x57, 0xc4,
+0xbf, 0x37, 0x03, 0xb1, 0x78, 0xf2, 0xf3,
+0x1c, 0x01, 0xd6, 0x09, 0x53, 0xb8, 0xb4,
+0x23, 0x54, 0xaf, 0x39, 0x8c, 0xa6, 0xf7,
+0x54, 0x19, 0x99, 0x53, 0xd1, 0x3a, 0x14,
+0x68, 0xf2, 0x00, 0x69, 0x03, 0xa3, 0xae,
+0x75, 0x46, 0x2e, 0x70, 0xe5, 0xde, 0x4c,
+0xe0, 0xec, 0x46, 0x94, 0xa6, 0x6d, 0x7b,
+0x9c, 0x96, 0x65, 0xeb, 0x1f, 0x62, 0xd5,
+0xe4, 0x26, 0x62, 0x38, 0xc0, 0x7f, 0xce,
+0xa4, 0x14, 0x11, 0xe9, 0xfa, 0x97, 0x64,
+0x4e, 0x0f, 0x82, 0x6f, 0x82, 0x82, 0x2d,
+0x2a, 0xd0, 0xc0, 0xd3, 0x66, 0x37, 0x87,
+0x1b, 0x9d, 0xaf, 0x2c, 0xbd, 0xe3, 0xb2,
+0x15, 0x36, 0x75, 0x65, 0x1c, 0x68, 0xbc,
+0x4d, 0x64, 0xe6, 0x50, 0x82, 0x0a, 0x4f,
+0x4b, 0x0d, 0x2c, 0x89, 0x63, 0x50, 0x18,
+0x48, 0x3c, 0xcf, 0xa8, 0xa8, 0x1b, 0xaa,
+0x62, 0x38, 0x79, 0x4d, 0x93, 0x79, 0xeb,
+0xcb, 0x54, 0x17, 0x76, 0xc2, 0x29, 0xf5,
+0x54, 0x34, 0x36, 0xe8, 0xfb, 0x87, 0x30,
+0xec, 0x67, 0xf1, 0x16, 0x26, 0x10, 0x6f,
+0xab, 0x0a, 0x9b, 0xea, 0x38, 0x16, 0x42,
+0x9f, 0x45, 0xbb, 0xbc, 0x88, 0x5c, 0x2d,
+0x03, 0xe0, 0xc0, 0xd9, 0xc9, 0x99, 0x8e,
+0xab, 0x5e, 0x6f, 0x57, 0xff, 0xe4, 0xe2,
+0xc4, 0x5a, 0xf8, 0x3d, 0x59, 0x12, 0x82,
+0x35, 0x2d, 0x92, 0x0f, 0x5b, 0xa3, 0xd0,
+0x25, 0xd7, 0xe5, 0xa9, 0xd1, 0xde, 0x73,
+0x78, 0x0b, 0x17, 0x6e, 0xa1, 0xf2, 0xfe,
+0x68, 0xba, 0xe0, 0x24, 0x26, 0x75, 0x58,
+0x18, 0x07, 0xa1, 0x94, 0x56, 0xed, 0xd8,
+0x59, 0x01, 0x4c, 0x45, 0xff, 0x9d, 0x8c,
+0xbf, 0xa1, 0x40, 0x19, 0xdc, 0x17, 0x04,
+0x8d, 0xd4, 0x43, 0x9e, 0xa0, 0x0a, 0xca,
+0x9d, 0x1e, 0xc7, 0xf5, 0x50, 0xad, 0x6b,
+0x99, 0x75, 0xda, 0x4b, 0xfc, 0x4f, 0x92,
+0x5e, 0x3c, 0x49, 0xb7, 0x0e, 0xf6, 0xda,
+0x35, 0xa7, 0x17, 0xd3, 0xb7, 0x30, 0xc9,
+0x7b, 0x50, 0xcc, 0x09, 0x29, 0xa4, 0xfa,
+0xc0, 0x63, 0xaf, 0xee, 0x71, 0x1d, 0x57,
+0xdf, 0x64, 0xfd, 0x32, 0x18, 0x7d, 0x28,
+0xb8, 0xca, 0xbe, 0x81, 0x5e, 0x89, 0x70,
+0xfe, 0x5f, 0xae, 0x82, 0x79, 0xf6, 0xf5,
+0x8f, 0x54, 0xfe, 0xe0, 0xc4, 0x12, 0x07,
+0x5e, 0x80, 0x4e, 0x74, 0x7b, 0x74, 0x1c,
+0xe2, 0x81, 0x77, 0xf8, 0x13, 0xae, 0xd9,
+0xf7, 0x2c, 0xc0, 0xc1, 0x0f, 0xbb, 0xcb,
+0xe1, 0xb3, 0x27, 0x2f, 0x08, 0x9d, 0x4a,
+0xc8, 0xdc, 0x09, 0xc3, 0x78, 0xba, 0x85,
+0x17, 0xb0, 0xa9, 0x2c, 0xaa, 0x1a, 0x0a,
+0x67, 0xea, 0x33, 0x3e, 0x03, 0x5f, 0xc6,
+0xd3, 0x0d, 0x50, 0xfd, 0x22, 0xb6, 0x12,
+0x35, 0x24, 0x82, 0xd7, 0x55, 0xc4, 0x6d,
+0x0e, 0xac, 0x38, 0x82, 0x77, 0x39, 0xa2,
+0x16, 0x0e, 0xc5, 0xd5, 0x90, 0x70, 0xb2,
+0x92, 0x4b, 0xb7, 0xb3, 0x7c, 0xad, 0x3a,
+0xf9, 0xd6, 0x53, 0x3f, 0xf8, 0xdb, 0x03,
+0x10, 0x14, 0x4f, 0x7c, 0x47, 0x64, 0x24,
+0xd2, 0xd8, 0xec, 0x72, 0x73, 0xc8, 0x21,
+0x81, 0xcc, 0xb5, 0x11, 0xd2, 0x8c, 0xbc,
+0xe1, 0x27, 0xa7, 0xe5, 0x76, 0xae, 0x92,
+0x19, 0x23, 0x99, 0x43, 0x8f, 0x3b, 0xee,
+0xd5, 0x62, 0xf8, 0xb5, 0x66, 0xc9, 0x66,
+0xee, 0xdc, 0x99, 0x49, 0xcc, 0x7f, 0x24,
+0xce, 0x25, 0xbc, 0xe1, 0x4e, 0xa4, 0x07,
+0x1c, 0xe8, 0x60, 0xe8, 0x2d, 0xdd, 0x0a,
+0x4f, 0x3f, 0x09, 0xf4, 0x28, 0xe6, 0x1b,
+0x74, 0xb0, 0xfa, 0xa8, 0xa9, 0x7d, 0xed,
+0xae, 0x9f, 0x3c, 0x5b, 0x32, 0xb6, 0x7f,
+0xfa, 0x3a, 0xc3, 0xbc, 0xb4, 0xe5, 0x81,
+0x63, 0x08, 0xc4, 0x4e, 0xa0, 0xaf, 0xd7,
+0x6e, 0xa1, 0x2d, 0x7f, 0xf1, 0x49, 0x97,
+0xde, 0xf0, 0xca, 0xe2, 0x94, 0xf5, 0x7f,
+0xd5, 0xf3, 0x96, 0x15, 0xb9, 0xc1, 0x1d,
+0x49, 0x0a, 0x05, 0xcb, 0xfd, 0x6a, 0xfd,
+0x3c, 0xc5, 0xcb, 0x0a, 0xaf, 0xde, 0x15,
+0x34, 0x0e, 0xb8, 0xa5, 0x4b, 0x97, 0x63,
+0x92, 0xcf, 0xd9, 0xd9, 0x67, 0x40, 0x17,
+0x42, 0x4b, 0xc8, 0xdf, 0x4c, 0x14, 0x3b,
+0x3c, 0x23, 0x91, 0xf2, 0x57, 0x38, 0x23,
+0x8e, 0x66, 0xf0, 0xfd, 0x3b, 0x9e, 0x4d,
+0x93, 0x23, 0x49, 0xed, 0x96, 0xf7, 0x1b,
+0x11, 0x55, 0x55, 0x86, 0x2f, 0x09, 0xe1,
+0x57, 0xa8, 0xc2, 0x54, 0x1a, 0x81, 0x85,
+0x50, 0x64, 0xfc, 0x16, 0x0b, 0x0c, 0x20,
+0x24, 0xb5, 0xce, 0x38, 0x21, 0xf4, 0xb1,
+0x84, 0xc4, 0xcb, 0x5a, 0x37, 0x47, 0xfc,
+0x24, 0x07, 0x00, 0x24, 0x6c, 0x94, 0xdf,
+0xa8, 0xaf, 0xd0, 0x3c, 0x80, 0xe7, 0x19,
+0xb1, 0xe2, 0xaa, 0x1c, 0xfb, 0xfc, 0xce,
+0xe0, 0x6b, 0x5c, 0xbe, 0x4a, 0xb0, 0xad,
+0x17, 0xf2, 0x47, 0xb3, 0x97, 0x70, 0x78,
+0x5d, 0x89, 0xe0, 0x7f, 0x8e, 0x8e, 0x19,
+0xe2, 0xc0, 0x11, 0x4e, 0x10, 0x0d, 0x67,
+0x4d, 0x21, 0x8e, 0x97, 0x90, 0xbb, 0xac,
+0xc0, 0x4a, 0x85, 0xdb, 0x5b, 0x9a, 0x91,
+0x62, 0x76, 0x39, 0x67, 0xb6, 0xe0, 0xfc,
+0x3f, 0xa4, 0x71, 0x1f, 0xa7, 0xae, 0x84,
+0x5b, 0xad, 0x84, 0x56, 0xae, 0x90, 0xe2,
+0xe2, 0xf6, 0x97, 0x77, 0xee, 0xa1, 0xd4,
+0x50, 0x26, 0x3a, 0x3f, 0x9e, 0x5a, 0x75,
+0xa8, 0xce, 0xf5, 0x4f, 0x2e, 0xfc, 0xee,
+0x87, 0xb2, 0xe9, 0x92, 0x5e, 0xce, 0x09,
+0x12, 0x1b, 0x56, 0x3e, 0x28, 0xb1, 0x2c,
+0x1f, 0xe4, 0x59, 0x09, 0x75, 0x1a, 0xdf,
+0x3e, 0x91, 0x79, 0x0f, 0x71, 0x36, 0x6d,
+0xb2, 0xcd, 0x82, 0x0c, 0x9d, 0x3d, 0xfa,
+0x0f, 0x8c, 0xf8, 0xc2, 0x65, 0xa6, 0xae,
+0x42, 0x93, 0x2c, 0xcd, 0x8b, 0x76, 0x4d,
+0x0e, 0xec, 0xd2, 0xd5, 0x43, 0xe3, 0xd6,
+0x61, 0xcc, 0xd9, 0x7e, 0x42, 0x09, 0xbd,
+0x0b, 0xaa, 0x95, 0xb0, 0x03, 0x5d, 0x87,
+0xd6, 0x15, 0xe8, 0x3e, 0x65, 0x1f, 0xc6,
+0xd8, 0x79, 0xfe, 0xa9, 0xc4, 0xbc, 0xc8,
+0x81, 0xf5, 0x0b, 0x75, 0xab, 0xc4, 0x12,
+0x1a, 0x6e, 0x76, 0xd9, 0xea, 0x58, 0xea,
+0x81, 0x99, 0x72, 0x8b, 0x3c, 0x2b, 0xca,
+0xff, 0xfd, 0xff, 0xb4, 0x07, 0xb5, 0x1d,
+0x0c, 0x7a, 0x55, 0x76, 0xf9, 0xb6, 0x7e,
+0xbd, 0xd7, 0x46, 0x07, 0x3e, 0x17, 0x96,
+0x24, 0xba, 0x94, 0xdf, 0xe4, 0x10, 0xeb,
+0xed, 0x37, 0xd0, 0xe2, 0xc2, 0x33, 0x26,
+0x25, 0xa0, 0x00, 0xe5, 0xf5, 0x7a, 0x82,
+0xec, 0x11, 0xdf, 0xd4, 0x68, 0x87, 0x69,
+0x81, 0x40, 0xff, 0x1a, 0x3d, 0xc7, 0x37,
+0xe1, 0x94, 0x42, 0xa5, 0xdf, 0xc0, 0xeb,
+0x38, 0x82, 0x2d, 0x33, 0xf7, 0x9d, 0x6c,
+0x7c, 0xee, 0xa4, 0x3e, 0x37, 0x73, 0xfc,
+0x3b, 0x2c, 0xd9, 0x0c, 0x5b, 0x7a, 0x18,
+0x9c, 0xe3, 0x53, 0xc5, 0xbb, 0x02, 0xc2,
+0x4a, 0x03, 0xb3, 0xeb, 0xe9, 0x74, 0xc3,
+0xb4, 0x2f, 0xfa, 0xc1, 0xf9, 0xa9, 0x22,
+0xf0, 0x53, 0xc4, 0x2a, 0x33, 0x24, 0x3c,
+0xbe, 0xb2, 0xf4, 0x72, 0xdf, 0x71, 0xf6,
+0x8c, 0x85, 0xb8, 0xb4, 0xef, 0xd3, 0x17,
+0x52, 0x68, 0xdc, 0xcd, 0xb8, 0x0d, 0x09,
+0xb5, 0x40, 0xdf, 0x0b, 0x4a, 0xbd, 0xee,
+0xd3, 0x92, 0x03, 0xbd, 0xff, 0x1f, 0x5c,
+0x6f, 0xb0, 0x4d, 0x94, 0x01, 0xf4, 0xca,
+0xdd, 0x86, 0xdc, 0x4e, 0x41, 0xe9, 0x49,
+0x08, 0x55, 0x01, 0x03, 0x49, 0x89, 0x9b,
+0xc1, 0x0b, 0x23, 0x52, 0xf8, 0xea, 0x2d,
+0x75, 0xdd, 0xb1, 0xb1, 0x2e, 0xa1, 0x91,
+0x10, 0x7c, 0x13, 0xe6, 0xe4, 0x47, 0x2c,
+0x08, 0x6e, 0xfc, 0xca, 0xf9, 0x47, 0x1c,
+0x9c, 0x80, 0x3a, 0x7e, 0xcd, 0xb8, 0xad,
+0x53, 0xf5, 0x04, 0xcc, 0x7e, 0x8b, 0x4e,
+0x6c, 0x65, 0x52, 0x1c, 0x8a, 0x7a, 0xa6,
+0x30, 0x6a, 0x6f, 0xc2, 0xf5, 0x26, 0xf8,
+0xc9, 0xa6, 0xb1, 0x47, 0x18, 0x16, 0x3d,
+0x38, 0x47, 0x95, 0xa5, 0x16, 0xb2, 0x95,
+0x77, 0xad, 0x2b, 0xdf, 0xf8, 0x27, 0xc8,
+0x7c, 0xf7, 0xa0, 0x12, 0x13, 0xa1, 0xcb,
+0xd0, 0xd3, 0x01, 0x7f, 0x51, 0x89, 0x0e,
+0xb1, 0x72, 0x5c, 0x08, 0x15, 0xa0, 0x20,
+0xd6, 0x10, 0x3e, 0xbe, 0xcb, 0x45, 0x30,
+0x92, 0x3d, 0xb7, 0xca, 0x4d, 0xff, 0xe0,
+0x0c, 0x17, 0x77, 0xbc, 0x92, 0x84, 0xf0,
+0x63, 0x39, 0xde, 0xb3, 0x31, 0x4b, 0x0b,
+0xe6, 0x4d, 0x8b, 0x8d, 0x81, 0xf7, 0xfb,
+0x51, 0xbf, 0x53, 0xeb, 0x23, 0x12, 0x6e,
+0x48, 0x28, 0xbe, 0xaa, 0x18, 0xff, 0x70,
+0x9f, 0x81, 0x87, 0x7e, 0xb3, 0x21, 0xba,
+0x44, 0x5a, 0x63, 0x60, 0x31, 0xf2, 0x62,
+0x2a, 0x92, 0x74, 0x31, 0x6a, 0x98, 0x4c,
+0xbd, 0x90, 0xe4, 0xd7, 0xbc, 0xab, 0xe7,
+0x51, 0xde, 0x08, 0x68, 0xa7, 0xcc, 0x28,
+0xdf, 0xac, 0xb1, 0x05, 0xca, 0x0d, 0xe8,
+0x50, 0xcd, 0x0c, 0x41, 0xfe, 0x43, 0xe0,
+0x97, 0x75, 0xb9, 0x11, 0xc3, 0x48, 0xe7,
+0xfa, 0x5b, 0xf3, 0x92, 0x7f, 0x3a, 0x50,
+0xe4, 0xd7, 0x49, 0xe0, 0x22, 0x79, 0x2a,
+0x19, 0x7e, 0x21, 0x08, 0xf9, 0x5b, 0x87,
+0x13, 0x8d, 0xf1, 0x02, 0x10, 0x14, 0xe9,
+0x11, 0xfa, 0xb2, 0xd5, 0x08, 0xdb, 0xbc,
+0x95, 0x79, 0x8d, 0xce, 0x53, 0x41, 0xd7,
+0xf9, 0x72, 0x6d, 0xe3, 0x95, 0x56, 0xb6,
+0xbb, 0x71, 0x77, 0xab, 0x07, 0xbd, 0xdd,
+0xeb, 0xc9, 0xb7, 0x26, 0xcd, 0x15, 0xbd,
+0x19, 0x88, 0xe9, 0x7c, 0xa0, 0xaa, 0x3e,
+0x64, 0xd1, 0xd9, 0x66, 0x91, 0xdd, 0x89,
+0x5d, 0xfc, 0x26, 0x2e, 0x0a, 0x9c, 0x87,
+0x88, 0x44, 0x2e, 0x54, 0x68, 0x98, 0x8b,
+0xa7, 0x23, 0xd6, 0xe2, 0x3a, 0x17, 0x2f,
+0xd9, 0x71, 0x89, 0xa6, 0xcb, 0x1d, 0xb8,
+0x21, 0xe6, 0x8d, 0x37, 0x30, 0xca, 0xcb,
+0xc5, 0x87, 0x61, 0x1b, 0x39, 0xca, 0xf5,
+0xe8, 0xd4, 0x3b, 0xa6, 0x3f, 0xdf, 0x19,
+0x34, 0x70, 0xeb, 0xb0, 0x5b, 0xb5, 0x2c,
+0x3f, 0x6f, 0x99, 0x4e, 0x21, 0x64, 0x64,
+0x3f, 0xb7, 0x01, 0x5d, 0x59, 0x27, 0x93,
+0xe1, 0x74, 0xbe, 0xa2, 0x48, 0x15, 0x1f,
+0x44, 0x88, 0x4f, 0x72, 0xd8, 0x51, 0x3b,
+0xdf, 0x74, 0x4c, 0xd7, 0x60, 0x6c, 0x99,
+0x79, 0xf3, 0xdc, 0xd5, 0xbc, 0xf8, 0x57,
+0x13, 0x4d, 0x2b, 0x91, 0xbe, 0x94, 0xa8,
+0x31, 0x74, 0x49, 0x7e, 0x40, 0xca, 0x8b,
+0xe9, 0xf5, 0x83, 0x90, 0x86, 0x8f, 0xa3,
+0x46, 0xcf, 0x4a, 0xbc, 0xf5, 0xc9, 0x03,
+0xb4, 0x25, 0xaa, 0xe6, 0x6c, 0xcf, 0xc6,
+0xbf, 0x90, 0x74, 0xf2, 0x6f, 0xa9, 0x5e,
+0xba, 0xee, 0x5f, 0x90, 0x07, 0x19, 0x75,
+0x41, 0xf4, 0x35, 0xe6, 0xd5, 0x05, 0xbe,
+0xdb, 0xc4, 0xc8, 0xc8, 0xce, 0x21, 0xe6,
+0xbf, 0xd9, 0xa3, 0x5f, 0xce, 0x63, 0x89,
+0xa0, 0xd4, 0x30, 0x5e, 0x48, 0xca, 0xb1,
+0x04, 0x5e, 0x78, 0xfa, 0xac, 0x9f, 0x98,
+0x2f, 0xb2, 0xe1, 0xfc, 0x2e, 0x76, 0xda,
+0xc5, 0x55, 0x7c, 0xcc, 0x40, 0x9e, 0xf0,
+0x42, 0x84, 0xb3, 0x69, 0x5a, 0x3c, 0x78,
+0xe7, 0x34, 0x7b, 0xf1, 0x6b, 0x8f, 0xc3,
+0x34, 0xfc, 0x4b, 0x56, 0xfc, 0x33, 0x93,
+0xb6, 0x01, 0x35, 0xbb, 0x94, 0xcd, 0xb3,
+0xef, 0x00, 0x4f, 0x06, 0x41, 0xb4, 0x2e,
+0xd1, 0x8d, 0x22, 0x41, 0x45, 0x58, 0x46,
+0x29, 0xe0, 0x26, 0x38, 0x45, 0x00, 0xdb,
+0x6c, 0xfc, 0xc4, 0x9f, 0xe5, 0xb3, 0x3b,
+0xba, 0x57, 0x82, 0x51, 0x2d, 0xef, 0x3e,
+0xc1, 0x65, 0x89, 0x3d, 0x85, 0x62, 0xe9,
+0x58, 0x1c, 0x27, 0x77, 0xa0, 0xcb, 0x2d,
+0x33, 0x88, 0x2c, 0xb7, 0x32, 0xa5, 0x55,
+0xdb, 0xe5, 0x33, 0x88, 0x5f, 0x72, 0xb1,
+0x91, 0x9b, 0xe0, 0x25, 0x31, 0x3b, 0x35,
+0x67, 0x27, 0x30, 0xda, 0x75, 0xcd, 0x78,
+0xa3, 0x2a, 0x6f, 0x0e, 0x80, 0xc9, 0xa7,
+0x69, 0x00, 0xed, 0x5d, 0x3f, 0x87, 0xa3,
+0x87, 0x11, 0xf5, 0x65, 0x07, 0xcb, 0xcd,
+0xb7, 0x31, 0x2b, 0x5a, 0x52, 0x19, 0x1e,
+0xa4, 0x7e, 0x93, 0x9e, 0xf5, 0x60, 0x7b,
+0xea, 0x8b, 0x0b, 0x6e, 0xbb, 0xe3, 0x85,
+0x04, 0xe6, 0x5b, 0xb9, 0x78, 0x61, 0x7f,
+0xe1, 0x1c, 0x6c, 0xff, 0x5d, 0x25, 0x8c,
+0x12, 0x86, 0xa6, 0xec, 0x30, 0x5d, 0x57,
+0x29, 0x6a, 0x3e, 0x8f, 0x96, 0xaf, 0xca,
+0x88, 0xf0, 0x17, 0xeb, 0xf1, 0x2f, 0xe0,
+0x07, 0x41, 0xe1, 0x47, 0x81, 0x48, 0x28,
+0x09, 0x2f, 0xf2, 0x50, 0x7b, 0xca, 0x7c,
+0xe2, 0x1e, 0x17, 0x47, 0x34, 0x25, 0x8e,
+0x5a, 0x04, 0xe4, 0x6c, 0xd2, 0xad, 0x7f,
+0xaa, 0xaa, 0xc8, 0x1d, 0x2a, 0xaa, 0x62,
+0x16, 0x31, 0x4b, 0x88, 0x1d, 0x2d, 0xd5,
+0x31, 0x96, 0x15, 0xa7, 0xb0, 0xa6, 0x0c,
+0xc4, 0xef, 0xcb, 0xb9, 0x86, 0x8a, 0xfe,
+0xb9, 0x99, 0xc8, 0x73, 0xd5, 0x3a, 0xa0,
+0x24, 0x06, 0x1b, 0x89, 0x45, 0xc0, 0x38,
+0x33, 0xcc, 0x25, 0xb0, 0xc9, 0xeb, 0xee,
+0x0b, 0xd3, 0xfe, 0xa6, 0x51, 0x84, 0xef,
+0xd4, 0x1c, 0x42, 0xc6, 0x04, 0x15, 0x33,
+0x98, 0xd6, 0xd7, 0x01, 0xf8, 0xc3, 0x29,
+0xe0, 0xeb, 0x5f, 0x28, 0x5a, 0xd1, 0xa6,
+0x90, 0x26, 0xac, 0x0a, 0x58, 0xed, 0x08,
+0x41, 0xe8, 0x5f, 0x84, 0x8f, 0xaf, 0x04,
+0x82, 0x1f, 0xa1, 0xf7, 0x3b, 0xbf, 0xd9,
+0x69, 0x98, 0xcc, 0x59, 0xb3, 0x7f, 0xde,
+0xa2, 0x55, 0x81, 0x8b, 0x88, 0xb2, 0x98,
+0xfd, 0x77, 0x7a, 0x32, 0x7b, 0x42, 0xe1,
+0x14, 0x94, 0xbf, 0x7c, 0xcf, 0x43, 0x73,
+0x51, 0x97, 0xda, 0xc3, 0x96, 0x79, 0x3a,
+0x0a, 0xf5, 0x0b, 0x5a, 0x9d, 0x60, 0x5d,
+0x4c, 0x8f, 0x7f, 0x31, 0x8a, 0xe1, 0xd8,
+0xf9, 0x18, 0x62, 0x4d, 0xa4, 0xb6, 0x4a,
+0x80, 0xa8, 0x09, 0x85, 0x2c, 0x1a, 0x14,
+0x3c, 0xa9, 0xab, 0x28, 0xef, 0x35, 0x37,
+0x7c, 0xdc, 0x69, 0x0e, 0x8f, 0x82, 0xa0,
+0xfb, 0xb4, 0x86, 0xcc, 0xd9, 0x07, 0x1a,
+0x2d, 0x53, 0xa9, 0x5b, 0x46, 0xf7, 0xf2,
+0xcb, 0x7a, 0x85, 0x62, 0x89, 0xc8, 0x53,
+0x08, 0x24, 0xfc, 0x11, 0x10, 0xfb, 0x4f,
+0x31, 0x21, 0x6f, 0x01, 0x10, 0xff, 0x2f,
+0x21, 0x48, 0x8e, 0x91, 0xa0, 0x91, 0xc7,
+0xaf, 0x0a, 0xf9, 0xb2, 0x3f, 0xe4, 0x61,
+0x83, 0x1b, 0x03, 0xb8, 0x66, 0x96, 0xd1,
+0x54, 0x85, 0xfc, 0xf1, 0x7d, 0x10, 0x3e,
+0xec, 0xcf, 0x2d, 0xe5, 0xaa, 0xe0, 0xde,
+0xa7, 0x20, 0x8a, 0x22, 0xca, 0x1a, 0x56,
+0x98, 0xb2, 0x7c, 0xe7, 0x6c, 0xf5, 0x2f,
+0x9e, 0x9e, 0x95, 0x43, 0xbc, 0x8a, 0x3d,
+0xcc, 0xa0, 0xdb, 0x49, 0x78, 0x36, 0x84,
+0x2e, 0x55, 0x49, 0x02, 0xb2, 0xdf, 0x5f,
+0x21, 0x1c, 0x2b, 0x97, 0xca, 0xc1, 0x8f,
+0xc1, 0x5d, 0xf2, 0xa4, 0x3c, 0xb7, 0x69,
+0xd0, 0x19, 0x5d, 0xea, 0xe6, 0x95, 0x7d,
+0x1d, 0x34, 0xaf, 0x08, 0xa8, 0x15, 0x24,
+0x2d, 0xbe, 0x9c, 0x9f, 0xb3, 0xb8, 0x6b,
+0x29, 0x68, 0x4e, 0x07, 0x6f, 0xfb, 0xe1,
+0xc8, 0x27, 0x5b, 0x3c, 0xef, 0x8f, 0x85,
+0x79, 0x75, 0x42, 0xfb, 0xab, 0x59, 0x9c,
+0x8c, 0x18, 0x10, 0x0f, 0xc4, 0x74, 0x24,
+0xfe, 0x82, 0x7f, 0xb6, 0x6c, 0xfd, 0xc0,
+0xc5, 0xd6, 0xa6, 0x23, 0x7c, 0x26, 0xf1,
+0x28, 0x09, 0x32, 0xa3, 0x59, 0x5f, 0x98,
+0x89, 0x6c, 0x22, 0xd6, 0x6b, 0x7d, 0x52,
+0x1c, 0xce, 0xbd, 0xbb, 0xf5, 0x1b, 0x8d,
+0x8d, 0xa2, 0xd4, 0x98, 0x30, 0x14, 0x69,
+0xd8, 0xae, 0x66, 0x36, 0x6e, 0x7c, 0xd8,
+0x82, 0x97, 0xa3, 0xac, 0x84, 0x35, 0xe3,
+0xeb, 0x09, 0x4b, 0x72, 0x43, 0xd7, 0x2b,
+0xc9, 0xc4, 0x72, 0xbe, 0x84, 0x2b, 0xfa,
+0x23, 0x95, 0x9c, 0x2f, 0x18, 0x45, 0x03,
+0xeb, 0x92, 0x9e, 0x0a, 0x46, 0xad, 0x01,
+0xc6, 0xea, 0xe1, 0xd3, 0xd8, 0x25, 0x50,
+0x1f, 0x8a, 0xb8, 0x19, 0xdb, 0x05, 0x17,
+0x74, 0x6d, 0x28, 0x1d, 0x8c, 0x4c, 0x29,
+0xde, 0xc2, 0x64, 0x96, 0x0a, 0x07, 0xf8,
+0xc5, 0xad, 0xcd, 0x5c, 0x1a, 0x92, 0x15,
+0x98, 0x83, 0xcb, 0xec, 0x4a, 0x84, 0x39,
+0x7a, 0xc0, 0xc7, 0xd8, 0x97, 0x79, 0xcc,
+0x6a, 0x9a, 0x4a, 0x3e, 0xfb, 0x4f, 0xd1,
+0x64, 0xd9, 0xf7, 0xb2, 0xc4, 0xcc, 0xd3,
+0x9c, 0x22, 0x55, 0xc3, 0xbc, 0xf8, 0xf8,
+0x2e, 0x35, 0x37, 0x05, 0x47, 0x43, 0x26,
+0x43, 0xb3, 0x96, 0x1c, 0xd4, 0x1a, 0xc7,
+0x2b, 0xdd, 0x5a, 0x9c, 0xb4, 0x58, 0x3a,
+0x9f, 0x24, 0x9d, 0x82, 0x31, 0x21, 0x43,
+0xa7, 0xc7, 0xb0, 0xe8, 0xf5, 0xf0, 0xd1,
+0xcd, 0x86, 0xe4, 0xf8, 0x98, 0x5e, 0x50,
+0x10, 0x87, 0xac, 0x79, 0x6f, 0x56, 0x3f,
+0xf6, 0x27, 0x87, 0x83, 0xa7, 0xc4, 0x45,
+0x10, 0x20, 0xca, 0x77, 0xca, 0x65, 0x04,
+0x6f, 0xd5, 0x54, 0x8f, 0xf8, 0xf3, 0x3c,
+0xd2, 0x4d, 0x6f, 0x46, 0xaa, 0xa8, 0x3d,
+0xb6, 0xdf, 0x24, 0xc3, 0xf8, 0xfe, 0x59,
+0x88, 0x47, 0x2c, 0x2d, 0xed, 0x76, 0x08,
+0x89, 0x55, 0x10, 0x42, 0xfc, 0xa4, 0x74,
+0x2b, 0xbf, 0x26, 0xe9, 0x9c, 0x52, 0x6b,
+0xa4, 0x3c, 0xad, 0x31, 0x76, 0x1d, 0x9f,
+0x09, 0xbf, 0xda, 0xde, 0xb1, 0x12, 0x3b,
+0xcb, 0x34, 0x6b, 0x44, 0x38, 0xf4, 0x80,
+0x12, 0xb8, 0x14, 0x05, 0x8e, 0xab, 0x62,
+0x47, 0x6a, 0xa8, 0xa4, 0x89, 0xfd, 0xf5,
+0x85, 0x8a, 0xea, 0x2c, 0x58, 0x3e, 0x95,
+0xe5, 0x6a, 0x6f, 0xd3, 0x63, 0x47, 0x3c,
+0xfb, 0xdb, 0x6c, 0x94, 0xb0, 0xcf, 0x97,
+0xdd, 0xfc, 0xde, 0xa9, 0x5e, 0x67, 0x49,
+0x37, 0x55, 0xe5, 0xd4, 0x25, 0xbc, 0x95,
+0x58, 0x9d, 0xf7, 0x08, 0x05, 0x34, 0x32,
+0xbf, 0x4f, 0xf1, 0xf5, 0x3a, 0x96, 0x7c,
+0xe5, 0xb7, 0xe3, 0x71, 0xac, 0x9e, 0x89,
+0xb6, 0x1c, 0xce, 0x7d, 0x10, 0x33, 0xc3,
+0x41, 0x5e, 0x9d, 0xa0, 0xff, 0x67, 0xcc,
+0xe6, 0xdb, 0x27, 0xa4, 0xe8, 0xe1, 0x80,
+0xf7, 0x67, 0x76, 0x42, 0xef, 0xd2, 0x48,
+0x65, 0x45, 0xd6, 0xea, 0x69, 0xd5, 0xb4,
+0x6f, 0xc7, 0x3c, 0xe7, 0xe3, 0x71, 0x88,
+0x23, 0x27, 0x77, 0x23, 0xb3, 0x65, 0x89,
+0x19, 0x52, 0x31, 0x7e, 0xe3, 0x78, 0x78,
+0xa5, 0x38, 0x4f, 0xff, 0x64, 0x18, 0x87,
+0x09, 0x5d, 0xc5, 0x82, 0x5f, 0xd4, 0xa4,
+0x28, 0x3a, 0x69, 0xb3, 0x80, 0xb1, 0x9f,
+0x04, 0xa1, 0x24, 0x9a, 0x6f, 0x15, 0xe2,
+0x09, 0xd6, 0xe2, 0xd3, 0xc5, 0x2b, 0x76,
+0xe6, 0xc9, 0x34, 0x84, 0xf0, 0xf5, 0xb5,
+0x50, 0xb9, 0xd9, 0x9a, 0xba, 0x2a, 0x7a,
+0xd6, 0xea, 0xec, 0x1a, 0xee, 0xbe, 0x5a,
+0x6b, 0x9e, 0xa7, 0x7a, 0x34, 0xe6, 0xf7,
+0xb7, 0x97, 0x57, 0xba, 0x6f, 0x56, 0xe8,
+0xc7, 0xc0, 0xa1, 0xfe, 0x5d, 0xf0, 0x0f,
+0x06, 0xf5, 0xbc, 0x4d, 0x68, 0x75, 0x39,
+0x3d, 0x93, 0x4e, 0x1f, 0xb7, 0xcd, 0xc6,
+0x3f, 0x5a, 0xf2, 0x71, 0xa3, 0x44, 0x5e,
+0x15, 0xd3, 0x84, 0x6c, 0xf8, 0xc8, 0xe8,
+0xb5, 0x31, 0xa3, 0x45, 0x58, 0xdd, 0xa6,
+0x63, 0x43, 0x73, 0xe2, 0x06, 0x52, 0x40,
+0x34, 0x0e, 0xb4, 0xea, 0x59, 0x5b, 0x9f,
+0xcb, 0xed, 0xd9, 0x41, 0x9d, 0xd4, 0x92,
+0x46, 0xa4, 0x47, 0x0a, 0x38, 0xde, 0x19,
+0xab, 0xdd, 0x98, 0x25, 0x2a, 0x46, 0xc9,
+0xb4, 0xb0, 0x15, 0xa2, 0xcf, 0x34, 0xff,
+0x82, 0x39, 0xa7, 0x17, 0xa3, 0x62, 0xe3,
+0xed, 0xa7, 0x7b, 0x62, 0x32, 0x0c, 0x46,
+0x96, 0xfd, 0x6c, 0x1b, 0x6d, 0x47, 0xb9,
+0x73, 0xb0, 0x65, 0x39, 0xea, 0x25, 0x71,
+0xd7, 0x77, 0x8a, 0x43, 0x58, 0x2b, 0x8c,
+0xa3, 0x1b, 0x72, 0x13, 0xf1, 0x27, 0x65,
+0x49, 0x7f, 0x05, 0x6e, 0x35, 0xab, 0x73,
+0xcb, 0x09, 0x49, 0x14, 0x1f, 0xf1, 0xa6,
+0x85, 0x8b, 0x61, 0x3a, 0xb7, 0xe0, 0x1d,
+0x87, 0xeb, 0x34, 0x44, 0xd8, 0xd4, 0x12,
+0x7b, 0x82, 0xa1, 0xb6, 0x77, 0x53, 0xd7,
+0x36, 0x39, 0x64, 0x49, 0xbd, 0xd1, 0xb4,
+0x3d, 0xea, 0x4d, 0x0b, 0x50, 0x5d, 0x0a,
+0x5d, 0x64, 0xa2, 0xac, 0x7d, 0x6c, 0x6a,
+0x2c, 0x01, 0x75, 0x04, 0xf8, 0x50, 0xfe,
+0x58, 0xb2, 0xe5, 0xaa, 0x7a, 0x30, 0x96,
+0x82, 0x98, 0x8b, 0x4c, 0xd5, 0x97, 0x5c,
+0xf8, 0xb6, 0xf0, 0x7d, 0xdd, 0xba, 0xdd,
+0xfd, 0xf2, 0xd6, 0xea, 0x6b, 0xbd, 0x9d,
+0xcd, 0x63, 0x33, 0x9b, 0x4f, 0xf2, 0x3c,
+0x3b, 0x17, 0x2e, 0x46, 0xbf, 0xaf, 0xc5,
+0x97, 0x32, 0x14, 0x34, 0x99, 0x94, 0xc9,
+0xa9, 0x10, 0x91, 0xe7, 0x51, 0x3b, 0x42,
+0x8d, 0x74, 0x8b, 0x57, 0x28, 0x20, 0x3f,
+0xd1, 0xdc, 0xf9, 0xd4, 0x0f, 0x87, 0x5b,
+0xd5, 0x2f, 0x74, 0x44, 0xc3, 0xc7, 0xbe,
+0xcd, 0x17, 0x0c, 0xbf, 0xe4, 0x62, 0xa1,
+0x43, 0x34, 0x17, 0x08, 0x46, 0x30, 0xa0,
+0x85, 0x20, 0xa8, 0xbb, 0xb4, 0x63, 0xd1,
+0x12, 0x09, 0xf6, 0xd6, 0x01, 0xa4, 0x25,
+0x74, 0xa8, 0xb9, 0x56, 0x82, 0xdb, 0x78,
+0xe8, 0x41, 0xbb, 0xc6, 0x18, 0xc5, 0x86,
+0xa3, 0xea, 0xbf, 0x90, 0x2c, 0xdd, 0x15,
+0xe0, 0x4a, 0x21, 0xd4, 0x42, 0x94, 0x94,
+0xf4, 0x48, 0x62, 0x97, 0x25, 0xc7, 0xcd,
+0x44, 0x88, 0x20, 0xd6, 0x05, 0x4b, 0x96,
+0x89, 0xd0, 0x3e, 0x0d, 0x9f, 0xa3, 0x24,
+0xf8, 0xf8, 0xb1, 0x44, 0xa9, 0x37, 0x55,
+0xdb, 0x2c, 0x51, 0xb8, 0x8c, 0x6b, 0x4e,
+0x36, 0xaa, 0xb9, 0x56, 0x0b, 0xda, 0x62,
+0x49, 0x97, 0xac, 0x9b, 0x62, 0xaa, 0x90,
+0x4e, 0xe3, 0xce, 0xa9, 0x04, 0x5f, 0x7f,
+0xcc, 0x3d, 0x97, 0xaf, 0x73, 0xb8, 0x4a,
+0x2f, 0xdc, 0x5b, 0xd8, 0x3a, 0xc3, 0xb4,
+0x98, 0x7a, 0x2b, 0xd5, 0x24, 0x6b, 0x50,
+0xe1, 0xbe, 0x1f, 0x24, 0x1d, 0xff, 0xb6,
+0xfb, 0x93, 0xe3, 0xb5, 0x06, 0x75, 0x07,
+0x64, 0xb1, 0xb0, 0x78, 0x0d, 0xf7, 0xa9,
+0x06, 0x1f, 0x9f, 0x80, 0x57, 0xb1, 0x25,
+0xca, 0xdb, 0x58, 0xc7, 0x79, 0xfd, 0x18,
+0xac, 0x71, 0xc2, 0x3b, 0x54, 0xd7, 0x38,
+0x49, 0x12, 0x30, 0x07, 0x6a, 0x0c, 0x52,
+0x2f, 0x63, 0xf8, 0x53, 0xe5, 0x9e, 0x66,
+0xaf, 0x6d, 0xe3, 0xc3, 0xbd, 0x1f, 0xf7,
+0x9b, 0x1f, 0x52, 0xb8, 0x9b, 0x8e, 0x63,
+0x4c, 0x95, 0xb4, 0x92, 0x7c, 0x7f, 0x23,
+0x76, 0x07, 0x3a, 0x48, 0xdc, 0x88, 0x4b,
+0x43, 0xf2, 0xea, 0x57, 0x07, 0xf6, 0xcc,
+0x8a, 0x9c, 0x0e, 0x7f, 0x9e, 0x75, 0x98,
+0xf5, 0x25, 0x9e, 0x19, 0x41, 0x4f, 0x5b,
+0xb1, 0x86, 0x94, 0x7a, 0x52, 0xf6, 0xdc,
+0x0f, 0x8f, 0x2f, 0x29, 0x52, 0x9f, 0x0a,
+0x50, 0x3a, 0xac, 0xe4, 0x59, 0xbb, 0x6d,
+0xae, 0x3a, 0x89, 0xf8, 0x5d, 0x9a, 0xd5,
+0x1f, 0x6b, 0x58, 0x1e, 0xc9, 0xe9, 0x1a,
+0xdf, 0x63, 0xd1, 0xea, 0xb6, 0x51, 0x10,
+0x91, 0xe2, 0x9c, 0xa0, 0x48, 0xc3, 0x39,
+0xa2, 0x80, 0xfc, 0x3f, 0x21, 0x74, 0xe5,
+0xd4, 0x4f, 0x83, 0x95, 0x09, 0x00, 0x82,
+0x59, 0x94, 0x78, 0xad, 0x63, 0x7f, 0x97,
+0xbf, 0x27, 0x7d, 0x93, 0x4f, 0x4f, 0x8e,
+0x98, 0x74, 0x76, 0xa1, 0x8a, 0x91, 0xb5,
+0x22, 0xf0, 0x81, 0x03, 0x53, 0xc9, 0xc0,
+0xd0, 0x5a, 0x30, 0xe5, 0x63, 0x66, 0x20,
+0x6a, 0x77, 0x4c, 0xa0, 0x13, 0xa7, 0x68,
+0xc8, 0x34, 0x95, 0x71, 0x26, 0x31, 0x02,
+0x7e, 0x26, 0x87, 0x5a, 0x2c, 0x8b, 0xd3,
+0x3b, 0x30, 0x94, 0xa6, 0x04, 0x03, 0xcd,
+0xbf, 0x4b, 0x53, 0x46, 0xe5, 0x37, 0xf1,
+0xa7, 0x16, 0xad, 0x23, 0x3a, 0x7f, 0x5d,
+0x43, 0x22, 0x5c, 0xdb, 0xfd, 0x6c, 0xd1,
+0x41, 0x69, 0xc1, 0x2a, 0x63, 0x6c, 0x02,
+0xe9, 0x9c, 0xa1, 0x26, 0xa6, 0x4a, 0xa5,
+0xe3, 0xd1, 0xd3, 0x75, 0x73, 0x0b, 0x6b,
+0x7c, 0x52, 0x84, 0x0d, 0x1e, 0x7c, 0xdc,
+0xb2, 0xf8, 0x61, 0x74, 0x83, 0x26, 0x91,
+0x59, 0xf2, 0x6d, 0x6f, 0x08, 0x0e, 0x31,
+0xd8, 0xc6, 0xdd, 0x4c, 0xb5, 0x4a, 0x16,
+0x62, 0x83, 0x21, 0xf2, 0x93, 0xe2, 0x4e,
+0x32, 0x22, 0x0b, 0x29, 0x79, 0xcc, 0x9f,
+0x7e, 0xaf, 0x39, 0x5f, 0x5f, 0x70, 0xf3,
+0x60, 0x3c, 0xc2, 0x52, 0x03, 0x4b, 0x7c,
+0xef, 0x98, 0x95, 0xd2, 0xb1, 0xf0, 0x33,
+0xdf, 0xa9, 0x82, 0x2e, 0x17, 0x9d, 0x89,
+0xe2, 0xa9, 0xd8, 0x61, 0x62, 0x30, 0x7b,
+0x1c, 0x07, 0x2b, 0xc3, 0xe1, 0x29, 0x80,
+0x4e, 0x36, 0x98, 0x14, 0x75, 0xed, 0xac,
+0xb3, 0x52, 0xbd, 0x6b, 0x19, 0x90, 0x8f,
+0xc4, 0xe4, 0x80, 0x2a, 0x86, 0xb4, 0x9c,
+0x8c, 0x83, 0x45, 0x6b, 0x3b, 0x03, 0x99,
+0xa7, 0xe8, 0x7b, 0x34, 0xda, 0x8a, 0x0c,
+0xc7, 0x1d, 0xcd, 0x31, 0x41, 0xe6, 0x44,
+0xd9, 0xcf, 0xea, 0x58, 0x2f, 0x0f, 0x56,
+0x6e, 0xe1, 0xc1, 0x8b, 0x53, 0xa6, 0xdb,
+0xf2, 0xad, 0x68, 0x13, 0x54, 0x43, 0xb5,
+0x2d, 0xb8, 0x0d, 0x77, 0xbd, 0x48, 0x2a,
+0x50, 0xe8, 0x47, 0xac, 0xbc, 0xb5, 0x15,
+0x58, 0x45, 0xa9, 0x6d, 0xfb, 0x62, 0x13,
+0xe1, 0x77, 0xb7, 0x21, 0x17, 0x18, 0x8a,
+0xd8, 0xf8, 0x96, 0xdb, 0xdf, 0x33, 0x92,
+0x0b, 0xea, 0x18, 0x66, 0x08, 0x28, 0x47,
+0xbd, 0xa1, 0xd7, 0x3b, 0x00, 0x50, 0x84,
+0xa0, 0xd6, 0xc9, 0xf9, 0x9a, 0x9e, 0x25,
+0xab, 0x43, 0x07, 0x4d, 0x89, 0x11, 0xe4,
+0xaf, 0x01, 0xf1, 0xf3, 0x2a, 0x42, 0xa8,
+0xbe, 0xea, 0xcd, 0x17, 0x5b, 0x99, 0x5d,
+0xdf, 0xf4, 0x2e, 0xe8, 0x1d, 0xee, 0x1b,
+0x3a, 0x91, 0x70, 0x50, 0x82, 0xa7, 0xb5,
+0x17, 0x7c, 0xe1, 0x35, 0x8b, 0xe4, 0x43,
+0x29, 0x8d, 0x52, 0xb9, 0x56, 0xba, 0x29,
+0x82, 0xc1, 0x2a, 0xfa, 0x70, 0x2b, 0x8f,
+0x42, 0xc2, 0x54, 0x61, 0xd2, 0xec, 0xe4,
+0x9c, 0x8a, 0xe3, 0x28, 0xa1, 0x88, 0x3d,
+0x96, 0xfd, 0x36, 0x64, 0x5e, 0x63, 0xa9,
+0xc8, 0x6c, 0x65, 0x69, 0x46, 0x74, 0x23,
+0x7a, 0x30, 0x08, 0xe3, 0x37, 0x01, 0xe8,
+0xe5, 0x2d, 0xed, 0xd9, 0xb9, 0x14, 0x53,
+0x76, 0x87, 0x0e, 0x9f, 0xf3, 0x36, 0xc4,
+0xec, 0xef, 0x3b, 0xee, 0xd2, 0x2d, 0x97,
+0x94, 0x1d, 0xe7, 0x94, 0xe7, 0xe0, 0xb3,
+0x03, 0x52, 0xb1, 0x65, 0xdd, 0x9e, 0xe3,
+0x44, 0xaf, 0xba, 0x77, 0x09, 0x1e, 0x70,
+0xc8, 0xc2, 0xc5, 0x32, 0x52, 0xcf, 0xa3,
+0x0b, 0x74, 0x50, 0xda, 0x9e, 0xfa, 0xa7,
+0x66, 0x02, 0x1d, 0xac, 0xd5, 0xc5, 0x0c,
+0x87, 0xbd, 0x48, 0xd5, 0x43, 0x8c, 0xbc,
+0xd7, 0x93, 0x54, 0x76, 0x9e, 0xbe, 0x99,
+0x24, 0x18, 0xb2, 0xc0, 0xcb, 0x51, 0x38,
+0x08, 0xd0, 0x2b, 0x72, 0x4b, 0xa5, 0xeb,
+0xc2, 0x3f, 0x08, 0x5e, 0x0a, 0x75, 0x0c,
+0x96, 0xdb, 0xe0, 0xf0, 0x40, 0x0d, 0x9d,
+0xf0, 0xcb, 0x20, 0x38, 0xf3, 0x7e, 0xce,
+0x5a, 0x73, 0x7e, 0x44, 0xc9, 0x20, 0x72,
+0xc5, 0xbf, 0x91, 0xc6, 0x93, 0x7d, 0x9f,
+0xde, 0x0f, 0x66, 0x90, 0xa6, 0x0b, 0x66,
+0x74, 0xc8, 0x71, 0x54, 0xc3, 0x42, 0xd8,
+0xa5, 0xe0, 0xba, 0xf1, 0x50, 0x1d, 0x39,
+0x33, 0x0b, 0xa1, 0x9d, 0xfa, 0xf7, 0xe7,
+0xa0, 0xf9, 0xf6, 0xe6, 0xb7, 0xe0, 0x20,
+0xe6, 0x95, 0xcc, 0xe1, 0x84, 0x9c, 0xce,
+0xab, 0x61, 0x14, 0xdc, 0xa6, 0x22, 0xda,
+0xf7, 0x14, 0xc5, 0x58, 0x90, 0x20, 0xa0,
+0x8b, 0x0b, 0x0f, 0xb3, 0x70, 0xcd, 0xbc,
+0xe0, 0xc9, 0xa5, 0x33, 0x1e, 0xfd, 0x94,
+0xe8, 0x7c, 0xe4, 0x0b, 0xc9, 0x65, 0x25,
+0xa1, 0xed, 0x44, 0x87, 0xb5, 0xb0, 0x23,
+0x85, 0xad, 0x67, 0xcb, 0xf4, 0x3b, 0xeb,
+0xd5, 0x6c, 0xfb, 0x9e, 0xe2, 0x3f, 0xed,
+0x99, 0x48, 0x99, 0xf4, 0xbe, 0x9a, 0x88,
+0x72, 0x82, 0x71, 0x6c, 0x07, 0x3b, 0x77,
+0x9b, 0xd7, 0xd9, 0xb1, 0x89, 0x0c, 0x62,
+0x07, 0x67, 0xeb, 0xca, 0x1d, 0xf4, 0x1b,
+0x39, 0x03, 0x7c, 0xd7, 0xf9, 0x07, 0x89,
+0xc1, 0x80, 0xca, 0xfd, 0xf2, 0x19, 0xa2,
+0x58, 0xef, 0x8f, 0xea, 0x93, 0x15, 0x4a,
+0xfd, 0x90, 0xe4, 0x37, 0xef, 0x3a, 0xa6,
+0x28, 0x09, 0x9d, 0x2b, 0xd2, 0x6b, 0xf8,
+0x95, 0xe1, 0xf7, 0x19, 0x22, 0x34, 0xd0,
+0xca, 0x8a, 0x05, 0x2d, 0x1f, 0x4d, 0x8a,
+0x02, 0x59, 0x8e, 0x06, 0x3b, 0x36, 0xd8,
+0x7d, 0x70, 0x52, 0xcd, 0x55, 0xd3, 0x94,
+0x5c, 0x7b, 0xb4, 0x84, 0x91, 0x29, 0x4b,
+0xb2, 0x86, 0xba, 0xdd, 0xc7, 0xb5, 0x48,
+0xd5, 0xde, 0x6f, 0x9c, 0x2c, 0xcf, 0xd8,
+0xd8, 0xcc, 0x34, 0xb0, 0x6a, 0x59, 0xc7,
+0x3e, 0x3d, 0xe7, 0xe6, 0x89, 0x98, 0x83,
+0xa4, 0x5d, 0xa9, 0x8d, 0x54, 0xa0, 0xb8,
+0x9a, 0x32, 0xe3, 0x49, 0xc0, 0x25, 0x4e,
+0x29, 0x1b, 0xb9, 0x49, 0x8b, 0x65, 0x16,
+0x1f, 0xaa, 0x90, 0xbf, 0x2a, 0x64, 0x0f,
+0x7a, 0x86, 0x57, 0x84, 0x47, 0xd6, 0x0e,
+0xf2, 0x52, 0xaa, 0xe2, 0x0a, 0xc9, 0xb3,
+0xdd, 0x5e, 0xda, 0xf1, 0xca, 0x81, 0x5c,
+0x11, 0xed, 0x03, 0xdc, 0xc6, 0xff, 0x82,
+0x8a, 0xa8, 0xac, 0x93, 0x9a, 0x77, 0xd7,
+0xdf, 0x22, 0x33, 0xf8, 0xb6, 0xf5, 0x04,
+0xb5, 0x25, 0x96, 0x1a, 0x78, 0x28, 0x75,
+0x75, 0xaf, 0xc7, 0xbf, 0x14, 0xe3, 0x48,
+0xb2, 0x55, 0x3a, 0xbf, 0x5d, 0x3d, 0x65,
+0x1e, 0x50, 0x74, 0x31, 0x4f, 0x2d, 0x2a,
+0x81, 0x91, 0x98, 0x91, 0xfb, 0x67, 0x5d,
+0xdb, 0x13, 0x5d, 0xaf, 0xdc, 0x90, 0x87,
+0x9d, 0x55, 0xb4, 0xbc, 0xa9, 0x3a, 0x73,
+0xca, 0x2e, 0x22, 0xad, 0x64, 0xb2, 0xdf,
+0x61, 0xbe, 0x85, 0x3b, 0xee, 0x50, 0xda,
+0x90, 0x80, 0xb4, 0xaf, 0x13, 0xcb, 0xb6,
+0x5c, 0xd0, 0x68, 0xc2, 0x21, 0x8e, 0x26,
+0x34, 0xd1, 0x6f, 0xf6, 0xe2, 0x3e, 0x25,
+0xdd, 0x38, 0x3e, 0xc7, 0xa4, 0x8f, 0x95,
+0xb6, 0xc9, 0x1d, 0xe4, 0xc7, 0x46, 0x59,
+0x9e, 0xf8, 0x46, 0xcd, 0x60, 0x59, 0x66,
+0x0c, 0x7c, 0xf8, 0xe3, 0x61, 0xd4, 0x3f,
+0xcd, 0x5d, 0xf7, 0xb9, 0x7c, 0x7d, 0x44,
+0x1a, 0x86, 0x58, 0x62, 0xfd, 0x0b, 0x7c,
+0x42, 0x78, 0x4e, 0x20, 0xe0, 0x81, 0x74,
+0x15, 0xe4, 0xb9, 0x45, 0x85, 0x5f, 0x22,
+0x79, 0x05, 0x4d, 0x35, 0xbb, 0x4b, 0xd7,
+0x04, 0x55, 0xf9, 0x3f, 0x72, 0xb5, 0xfa,
+0x2f, 0xbb, 0xcf, 0xce, 0xb6, 0x39, 0x2e,
+0xf6, 0xbe, 0x76, 0x77, 0x34, 0x72, 0xc2,
+0x1d, 0x38, 0x31, 0x25, 0x45, 0x74, 0x95,
+0x5f, 0x0c, 0x94, 0xcf, 0xa8, 0xc9, 0xbe,
+0xcf, 0xb1, 0x7d, 0xf4, 0x55, 0xa4, 0x5e,
+0xc0, 0xae, 0x03, 0x91, 0x98, 0x6e, 0x29,
+0x56, 0xbb, 0xa3, 0xb2, 0xea, 0x45, 0xfb,
+0xcb, 0x45, 0x33, 0x84, 0x0c, 0x14, 0x2d,
+0x9d, 0x09, 0x72, 0x4f, 0x01, 0x58, 0x86,
+0x07, 0x83, 0x3e, 0xfc, 0xa5, 0x89, 0x4e,
+0xa7, 0xe4, 0xfd, 0x5e, 0x61, 0x47, 0x98,
+0xa8, 0xec, 0x05, 0xdc, 0xe4, 0x92, 0x85,
+0x5f, 0x53, 0xa5, 0xeb, 0x5f, 0x06, 0x46,
+0x23, 0xfd, 0xad, 0x25, 0x9c, 0xd4, 0xe5,
+0xbe, 0x8c, 0x74, 0x5f, 0xc6, 0xbe, 0x62,
+0x81, 0x13, 0xb5, 0xa0, 0x71, 0x90, 0x71,
+0x56, 0x0b, 0x35, 0xef, 0x12, 0x9c, 0x8e,
+0x45, 0xdf, 0xd8, 0x89, 0xbe, 0x35, 0x92,
+0x2b, 0x46, 0x9e, 0xab, 0x62, 0x74, 0x0d,
+0xa7, 0x51, 0x1b, 0x75, 0x4e, 0x67, 0x84,
+0xa8, 0xc2, 0x06, 0x00, 0xc9, 0x6a, 0xdd,
+0xa7, 0x17, 0xc6, 0xb0, 0xf1, 0x24, 0xcd,
+0x42, 0x7a, 0xbe, 0x4f, 0x24, 0xa2, 0x3e,
+0xf7, 0x54, 0x5b, 0xba, 0xd3, 0xfc, 0xc8,
+0x4d, 0x37, 0x8f, 0xc5, 0x6f, 0x96, 0xd8,
+0x2e, 0xab, 0x66, 0xfa, 0xba, 0x64, 0xbe,
+0xce, 0x02, 0x43, 0x7e, 0x1f, 0x67, 0xbe,
+0x60, 0x26, 0xa3, 0xb8, 0xa8, 0xb0, 0x89,
+0xca, 0xd3, 0x92, 0x1f, 0xbb, 0xf8, 0x6a,
+0xcb, 0xb3, 0x65, 0x44, 0x9e, 0x8b, 0xaa,
+0x94, 0x77, 0x68, 0x1b, 0x38, 0xa1, 0x41,
+0x9f, 0x54, 0xae, 0xd4, 0x4e, 0x61, 0x71,
+0x8e, 0x78, 0x59, 0x93, 0x9c, 0xc5, 0x00,
+0xa6, 0xd1, 0x0c, 0x69, 0x09, 0xbe, 0x59,
+0x7c, 0xd7, 0x82, 0x30, 0x8b, 0xa2, 0x4a,
+0x5c, 0x91, 0x8d, 0xe8, 0x6d, 0x8d, 0xe0,
+0x77, 0x14, 0x91, 0x12, 0x4f, 0xda, 0x0d,
+0x0e, 0x7d, 0x9e, 0xdf, 0x1a, 0x24, 0x48,
+0x01, 0x47, 0x67, 0xba, 0x5a, 0x03, 0xec,
+0x71, 0xa6, 0xde, 0x85, 0x86, 0xff, 0x0f,
+0xbc, 0x6e, 0xc6, 0x1b, 0x13, 0xf3, 0x92,
+0x7f, 0x38, 0x67, 0x61, 0x92, 0xfa, 0x6d,
+0xe8, 0x43, 0x89, 0x75, 0x2d, 0xd5, 0xa9,
+0xda, 0x44, 0x74, 0x43, 0xbd, 0xee, 0x16,
+0x76, 0xa0, 0xc4, 0x42, 0xed, 0x77, 0xe2,
+0x9b, 0x59, 0x11, 0x73, 0x16, 0x11, 0x1d,
+0x36, 0xfc, 0x1c, 0xfd, 0x4b, 0xd3, 0x03,
+0xa5, 0xad, 0xca, 0x9e, 0x9f, 0x92, 0x5d,
+0x42, 0xb5, 0x62, 0xae, 0xdd, 0xfe, 0x7a,
+0x1b, 0xf4, 0x6c, 0xc1, 0xc0, 0xf9, 0x56,
+0x1b, 0xad, 0xe5, 0xc6, 0xf2, 0xfe, 0x44,
+0x5d, 0x5d, 0x16, 0x15, 0x5e, 0xe3, 0xdf,
+0x30, 0x21, 0x13, 0x7b, 0x3d, 0x84, 0x09,
+0x8c, 0x1c, 0x59, 0xa5, 0x22, 0x56, 0x28,
+0xa6, 0xac, 0x36, 0xf1, 0x9f, 0x76, 0x21,
+0x42, 0xc6, 0xf7, 0xb3, 0x12, 0xd6, 0x63,
+0x2c, 0x89, 0xf3, 0x96, 0xf8, 0x9f, 0x66,
+0xf2, 0x5c, 0xc8, 0x08, 0x59, 0xdd, 0x7e,
+0x79, 0xde, 0x0d, 0x3c, 0x41, 0xa9, 0x7e,
+0xcc, 0xc1, 0x35, 0x6c, 0x60, 0x65, 0x02,
+0xdc, 0xd1, 0x9e, 0x71, 0xc0, 0x99, 0x1e,
+0x77, 0x63, 0x18, 0xa6, 0x42, 0x6a, 0x23,
+0x51, 0x9c, 0xc3, 0xd3, 0xfd, 0x0f, 0x6b,
+0xc9, 0x88, 0xb5, 0x7e, 0x7a, 0x9c, 0xf6,
+0xd5, 0xdc, 0x53, 0xdb, 0x2e, 0x42, 0xdb,
+0xd7, 0xcf, 0xe0, 0x8b, 0x80, 0x3f, 0x70,
+0x53, 0x1e, 0xf5, 0x89, 0x6c, 0xa4, 0x23,
+0x6e, 0x48, 0x5e, 0xd8, 0x34, 0xac, 0xf4,
+0x69, 0x6b, 0x29, 0x45, 0x7d, 0xee, 0xbc,
+0x90, 0xe7, 0x00, 0x99, 0xe1, 0x75, 0x4c,
+0xe6, 0x42, 0x3f, 0xda, 0xc1, 0xe9, 0x26,
+0x73, 0x38, 0xe7, 0xe9, 0x73, 0x2e, 0x94,
+0x9b, 0xc4, 0xcf, 0xa6, 0x09, 0x9d, 0x46,
+0xcb, 0x71, 0x75, 0x42, 0x85, 0xba, 0xdf,
+0x94, 0xb4, 0x3c, 0xff, 0xcb, 0x57, 0x27,
+0xd2, 0x7c, 0xec, 0xd5, 0x24, 0x8c, 0xa6,
+0x5a, 0x04, 0x5d, 0x98, 0x65, 0x57, 0x1c,
+0xcb, 0x11, 0x1e, 0xfa, 0xe4, 0xfc, 0x53,
+0xb3, 0x4b, 0x62, 0x10, 0xb7, 0x64, 0xf0,
+0x54, 0x1a, 0x39, 0xf7, 0xcc, 0x15, 0x03,
+0x8d, 0xf6, 0xaf, 0x34, 0x05, 0x44, 0xaa,
+0xa8, 0xe7, 0x51, 0xe0, 0x0a, 0xe9, 0xaa,
+0xc6, 0x85, 0x5f, 0x73, 0x8e, 0xa6, 0xd4,
+0xe6, 0x5d, 0x45, 0xab, 0x7d, 0xbf, 0x6f,
+0x0b, 0xf9, 0x52, 0x17, 0x32, 0x54, 0x43,
+0x29, 0x1b, 0x97, 0x6a, 0x6c, 0x68, 0x77,
+0x31, 0x76, 0x72, 0x27, 0x04, 0x40, 0x16,
+0x41, 0xb1, 0xfa, 0xc9, 0xb9, 0xa7, 0xaf,
+0xce, 0xf4, 0xe5, 0x70, 0x19, 0x55, 0x19,
+0xf2, 0x53, 0x19, 0x2d, 0x6f, 0x3f, 0x10,
+0x81, 0xc4, 0x6c, 0xa6, 0x42, 0xa5, 0x86,
+0x48, 0xce, 0x94, 0xd4, 0x3f, 0xcd, 0xc6,
+0x87, 0x3d, 0xa9, 0x7c, 0xcb, 0x68, 0x30,
+0x0d, 0xb1, 0x8f, 0x15, 0xb6, 0xeb, 0x67,
+0x9e, 0x03, 0x25, 0x2d, 0x27, 0x8c, 0xf2,
+0xf5, 0x22, 0x75, 0xbb, 0x8d, 0x27, 0x43,
+0xd6, 0xc2, 0x84, 0x28, 0x63, 0x95, 0x4d,
+0x13, 0x42, 0x80, 0x0a, 0x69, 0xaa, 0xef,
+0xa2, 0x79, 0x56, 0xb9, 0x9f, 0x35, 0x75,
+0x67, 0xaf, 0x13, 0x84, 0x68, 0xcb, 0xf5,
+0x1f, 0x35, 0x6f, 0xe1, 0x45, 0x9b, 0x22,
+0x69, 0x0a, 0x8f, 0x90, 0x7d, 0x37, 0x8e,
+0x7e, 0xaa, 0x8e, 0xef, 0x25, 0x22, 0xf5,
+0xe2, 0xa6, 0x69, 0xfb, 0xcd, 0xab, 0x02,
+0xfe, 0xcc, 0x09, 0xc1, 0x59, 0x6c, 0x4b,
+0xc4, 0xb9, 0xf0, 0xa1, 0x25, 0x3a, 0xec,
+0x58, 0x76, 0xa4, 0xec, 0x27, 0x86, 0x05,
+0xf3, 0x3e, 0x02, 0x05, 0x47, 0xfa, 0xb4,
+0xf0, 0xde, 0xd3, 0xd1, 0x2a, 0x88, 0xf4,
+0x47, 0x35, 0xd6, 0xba, 0x59, 0xe4, 0x7e,
+0x42, 0x3c, 0x77, 0x1e, 0xf6, 0x00, 0xc4,
+0x7c, 0x2c, 0x2e, 0x60, 0xdd, 0x5d, 0xcf,
+0xc4, 0x25, 0x1f, 0x5d, 0x37, 0xf2, 0x37,
+0x63, 0x7b, 0x88, 0x84, 0x64, 0x06, 0x07,
+0xfa, 0x90, 0x66, 0x9b, 0x9a, 0x3e, 0x5a,
+0x1f, 0x91, 0x62, 0xaf, 0x4d, 0xcb, 0x24,
+0x39, 0x7f, 0x9e, 0x57, 0xf8, 0xc1, 0x97,
+0xb9, 0x2e,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1.inc
new file mode 100644
index 0000000000..ee582e3b8a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1.inc
@@ -0,0 +1,74 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: grp01
+ * Signer: member0
+ * HashAlg: Sha256
+ * Message: "test1"
+ * Basename: None (random base)
+ * SigRl: Empty
+ */
+ 0xF7, 0xEE, 0x2C, 0x94, 0x30, 0x89, 0xA3, 0x9D, 0x6F, 0x1B, 0xF4,
+ 0xC9, 0xEA, 0xFA, 0x17, 0xF0, 0x01, 0x3F, 0x48, 0xA0, 0x90, 0xB9,
+ 0x73, 0xA6, 0x52, 0xC4, 0xF0, 0xDD, 0xDD, 0xFF, 0xFC, 0x72,
+
+ 0x15, 0x08, 0x6C, 0x6B, 0xE7, 0x8B, 0xFE, 0x27, 0x7B, 0x51, 0x39,
+ 0x7D, 0xE1, 0xB2, 0x2A, 0x17, 0xDF, 0x80, 0xF5, 0xC9, 0x55, 0x6A,
+ 0x30, 0xF2, 0xA9, 0xE7, 0x0E, 0xF9, 0x4F, 0x50, 0x32, 0xDB,
+
+ 0xE0, 0x46, 0xF9, 0xFA, 0x48, 0xD1, 0xE9, 0xA4, 0x6E, 0xC1, 0x47,
+ 0xDE, 0x95, 0xD6, 0x03, 0x0B, 0x92, 0x38, 0xD2, 0x86, 0xE0, 0x0E,
+ 0x97, 0x9C, 0x4B, 0x74, 0x9E, 0x3E, 0xCE, 0x08, 0xA3, 0x97,
+
+ 0xEB, 0x08, 0x67, 0x0F, 0x88, 0x9C, 0xB3, 0xCE, 0x5B, 0x13, 0x45,
+ 0x97, 0xFA, 0xA5, 0xE8, 0xC9, 0xEF, 0xEA, 0xD5, 0xFC, 0x4D, 0xE2,
+ 0x33, 0xC8, 0x43, 0x90, 0x40, 0x13, 0xFC, 0xA5, 0x7B, 0xDF,
+
+ 0xA6, 0x1F, 0xE5, 0x33, 0x84, 0x9B, 0x59, 0x7B, 0x34, 0x13, 0x8E,
+ 0x87, 0x78, 0x53, 0xC2, 0x50, 0x83, 0x81, 0x8B, 0xE2, 0x16, 0x52,
+ 0x22, 0x89, 0x9C, 0xA6, 0xDA, 0xF5, 0x04, 0x4B, 0x76, 0x64,
+
+ 0xBB, 0xBB, 0x2E, 0x80, 0x00, 0x80, 0xF0, 0xBF, 0x3F, 0xC0, 0x1A,
+ 0x8F, 0x6A, 0x76, 0xBB, 0x91, 0x36, 0xC7, 0x3B, 0x35, 0xFE, 0x1C,
+ 0x3E, 0x2A, 0x77, 0x11, 0xE4, 0x43, 0xBB, 0x98, 0xBF, 0xB4,
+
+ 0xA1, 0x3F, 0xEA, 0x99, 0x7E, 0xC7, 0x65, 0xF5, 0x41, 0xA6, 0xD6,
+ 0xD3, 0x77, 0xEC, 0x27, 0xF8, 0x6C, 0x18, 0x28, 0x69, 0x97, 0x08,
+ 0x0E, 0x63, 0x5A, 0xDA, 0xFE, 0x9F, 0xD1, 0x4A, 0x61, 0x4F,
+
+ 0xE2, 0x21, 0xD1, 0xBC, 0x14, 0x8A, 0xCB, 0xF5, 0xB4, 0xE0, 0x24,
+ 0xB8, 0xB7, 0x6B, 0xDD, 0x2A, 0xC5, 0xF8, 0x10, 0x3B, 0xD3, 0x77,
+ 0xC8, 0x8B, 0x19, 0xBF, 0x5E, 0xFB, 0x2B, 0xB1, 0xC9, 0xE1,
+
+ 0x14, 0x92, 0xD1, 0x1F, 0xAC, 0x90, 0x4D, 0xC3, 0x3E, 0xB8, 0xA7,
+ 0xFE, 0x35, 0x98, 0xDA, 0x94, 0xD6, 0xF3, 0x27, 0x29, 0x4B, 0x70,
+ 0xCF, 0x0F, 0xDA, 0x14, 0x97, 0xA1, 0x9B, 0x6B, 0x24, 0x08,
+
+ 0x50, 0x38, 0x60, 0x31, 0xAB, 0x05, 0xCC, 0xB1, 0xC2, 0x06, 0xA0,
+ 0xD7, 0x92, 0x12, 0xBD, 0x17, 0x81, 0xB9, 0x7E, 0x07, 0x9B, 0xD4,
+ 0x3B, 0x2D, 0x3C, 0x15, 0x3A, 0x5A, 0xF1, 0xC0, 0xC4, 0x75,
+
+ 0x76, 0x8D, 0xE5, 0xC2, 0xAB, 0x78, 0xD9, 0x76, 0x98, 0xFF, 0x92,
+ 0xEA, 0x95, 0x58, 0xC5, 0x0C, 0x6F, 0x1B, 0x35, 0xC4, 0xBF, 0x4A,
+ 0x9E, 0xC2, 0x6A, 0xEC, 0xE2, 0xF6, 0xAF, 0xEB, 0xAC, 0x06,
+
+ 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_basename1_sha256.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_basename1_sha256.inc
new file mode 100644
index 0000000000..9d2680fe08
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_basename1_sha256.inc
@@ -0,0 +1,85 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: grp01
+ * Signer: member0
+ * HashAlg: Sha256
+ * Message: "test1"
+ * Basename: "basename1"
+ * SigRl: Empty
+ */
+ 0xa6, 0x13, 0x29, 0xb6, 0x61, 0xa2, 0xb8, 0xd7,
+ 0x49, 0x86, 0xcb, 0xaf, 0x94, 0x4d, 0x9e, 0x51,
+ 0xcf, 0xd3, 0x5d, 0x0f, 0x33, 0x9a, 0x59, 0x0d,
+ 0xe7, 0xc9, 0xb9, 0x7f, 0x83, 0xae, 0x27, 0xe6,
+
+ 0x40, 0xf0, 0x88, 0x13, 0xe2, 0xb6, 0x6a, 0x43,
+ 0x26, 0xa3, 0x21, 0xea, 0x00, 0x78, 0xcd, 0xce,
+ 0x0e, 0x14, 0x7a, 0xde, 0xcf, 0xaa, 0x7b, 0xc5,
+ 0x7e, 0x7c, 0xaf, 0xe4, 0x5e, 0x8a, 0xdd, 0xc7,
+
+ 0x0b, 0x5e, 0x4e, 0xc6, 0x94, 0xf0, 0xef, 0xf3,
+ 0xbe, 0xd6, 0x12, 0x28, 0x01, 0xa5, 0xf0, 0x4d,
+ 0xcc, 0xbe, 0xeb, 0x0e, 0xb9, 0xa1, 0x39, 0x4a,
+ 0x7e, 0xb3, 0x46, 0x74, 0xc3, 0xb1, 0xdf, 0x91,
+
+ 0x74, 0x3b, 0xa1, 0x5b, 0x29, 0xae, 0x57, 0xf1,
+ 0x9d, 0xfa, 0xda, 0x57, 0x06, 0x90, 0x4a, 0xa6,
+ 0x30, 0x16, 0x1a, 0xe9, 0x47, 0xad, 0xd1, 0xc2,
+ 0xda, 0x8d, 0xbb, 0x5b, 0x46, 0x17, 0x48, 0x58,
+
+ 0x2d, 0xd2, 0x44, 0xc4, 0x7e, 0xd7, 0xb2, 0x73,
+ 0x91, 0x8c, 0xb2, 0xa7, 0xff, 0xb0, 0xd3, 0xab,
+ 0x6f, 0x10, 0x14, 0xeb, 0x30, 0x33, 0x90, 0x14,
+ 0x5b, 0x3b, 0x83, 0x6c, 0xe1, 0xa5, 0x0f, 0x8b,
+
+ 0x6f, 0x9f, 0xf1, 0x1a, 0xbe, 0xc3, 0x75, 0xd2,
+ 0x0b, 0xb9, 0xa1, 0x1a, 0x2b, 0x01, 0x86, 0xc3,
+ 0xc2, 0xf8, 0xd7, 0x14, 0x1d, 0xc1, 0x8b, 0x97,
+ 0x0c, 0x20, 0xce, 0xce, 0xf4, 0x9a, 0xee, 0xc9,
+
+ 0x77, 0x3b, 0x42, 0x0d, 0xe4, 0x87, 0xb2, 0x4a,
+ 0x44, 0x4e, 0x3e, 0xed, 0x39, 0xaa, 0xad, 0xe4,
+ 0xe8, 0x4d, 0xa3, 0x5d, 0x6f, 0xa4, 0xb7, 0x22,
+ 0x32, 0xae, 0xa5, 0xfb, 0x85, 0x71, 0x42, 0xc7,
+
+ 0x02, 0x70, 0xa1, 0xae, 0x70, 0x4f, 0xfe, 0xfc,
+ 0x1e, 0x52, 0x0f, 0xc0, 0xbe, 0x0a, 0xaf, 0xbc,
+ 0x1a, 0x4a, 0xd6, 0x25, 0x91, 0x1f, 0xca, 0x0d,
+ 0x83, 0x89, 0x18, 0xd3, 0xbd, 0x35, 0xbd, 0x58,
+
+ 0x5d, 0xda, 0x73, 0x4f, 0x82, 0xa4, 0xdc, 0x58,
+ 0x9a, 0x66, 0x02, 0x16, 0xa0, 0x85, 0x77, 0x8f,
+ 0x38, 0x84, 0x68, 0xcf, 0x08, 0xcd, 0x88, 0x7f,
+ 0x75, 0xe5, 0x6c, 0x16, 0x96, 0xd1, 0x0b, 0xea,
+
+ 0x97, 0x74, 0xaa, 0x93, 0xcb, 0xe6, 0x6c, 0xab,
+ 0x9f, 0x62, 0x68, 0x8a, 0x07, 0x93, 0x5c, 0x67,
+ 0xb3, 0xa8, 0x7a, 0x5a, 0x1c, 0xc3, 0xc3, 0xbe,
+ 0x44, 0x73, 0x79, 0x65, 0xa5, 0x5a, 0x62, 0x9e,
+
+ 0xc1, 0x52, 0xd9, 0xd1, 0xb2, 0x40, 0x0f, 0x95,
+ 0x4e, 0x53, 0x95, 0xc0, 0x3e, 0x5b, 0xba, 0x5f,
+ 0x54, 0x25, 0x05, 0xde, 0xea, 0x5a, 0x4c, 0xa1,
+ 0x25, 0xa6, 0x2c, 0x05, 0x0c, 0x79, 0x53, 0x15,
+
+ 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha256.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha256.inc
new file mode 100644
index 0000000000..b14d51849e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha256.inc
@@ -0,0 +1,85 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: grp01
+ * Signer: member0
+ * HashAlg: Sha256
+ * Message: "test1"
+ * Basename: None (random base)
+ * SigRl: Empty
+ */
+ 0x04, 0x16, 0x79, 0x8e, 0xf9, 0xff, 0x2b, 0xc3,
+ 0x63, 0x0a, 0x40, 0x68, 0x87, 0x4a, 0x5b, 0xb5,
+ 0xba, 0x0f, 0xe4, 0x23, 0x05, 0xca, 0xd1, 0xf8,
+ 0x4e, 0xa6, 0x40, 0x18, 0xed, 0xb5, 0xb3, 0x0d,
+
+ 0x16, 0x58, 0x87, 0x51, 0xd1, 0x83, 0xb6, 0x9a,
+ 0x41, 0x03, 0xd9, 0xdc, 0xb3, 0xca, 0xc7, 0x0e,
+ 0xbe, 0xbc, 0xf5, 0xc7, 0x31, 0xe3, 0x8d, 0x0b,
+ 0x14, 0x0c, 0xe4, 0x2d, 0x2b, 0xcb, 0x3c, 0xf5,
+
+ 0xc0, 0x23, 0x82, 0xe0, 0x69, 0xe7, 0x41, 0x78,
+ 0x7f, 0x50, 0xc6, 0x61, 0x5c, 0x1b, 0x07, 0x3a,
+ 0xf6, 0x83, 0xbc, 0xb0, 0x46, 0xae, 0x5c, 0x4f,
+ 0x13, 0xf3, 0xef, 0x0c, 0xe6, 0x24, 0xe5, 0xdf,
+
+ 0x5e, 0x62, 0xa1, 0x09, 0x1a, 0xe3, 0xa1, 0xda,
+ 0x72, 0x34, 0x51, 0x18, 0xbc, 0x91, 0x7d, 0x11,
+ 0x0d, 0x4d, 0x9a, 0xd9, 0x47, 0x40, 0x69, 0xbf,
+ 0xc6, 0xaf, 0x06, 0xb2, 0xf6, 0xee, 0x76, 0xde,
+
+ 0x1f, 0xb6, 0xb9, 0x55, 0xab, 0xe7, 0x7b, 0xb1,
+ 0xe7, 0x9e, 0xaf, 0xe4, 0x60, 0x9f, 0x6d, 0x1b,
+ 0xd9, 0xc8, 0xee, 0xcc, 0x49, 0xea, 0x52, 0x41,
+ 0x26, 0x06, 0x0b, 0x75, 0x13, 0x63, 0x4a, 0x15,
+
+ 0x18, 0x50, 0xb4, 0x49, 0x35, 0xf8, 0xc7, 0xf7,
+ 0x77, 0xc3, 0xa7, 0x69, 0xc3, 0xb3, 0xaa, 0x19,
+ 0xc1, 0x57, 0x21, 0x44, 0x00, 0x95, 0x99, 0xef,
+ 0x09, 0xbe, 0x9b, 0xc5, 0x82, 0xbd, 0x3b, 0xc2,
+
+ 0x0d, 0x85, 0xbb, 0x4a, 0x12, 0x0f, 0xd0, 0xfc,
+ 0x2d, 0x66, 0x8f, 0xda, 0x79, 0xb4, 0x28, 0x8e,
+ 0x3c, 0x74, 0xa8, 0xf8, 0x55, 0xe4, 0x6d, 0xc6,
+ 0x67, 0xa2, 0x7d, 0x1c, 0xfa, 0xcb, 0x59, 0x2d,
+
+ 0x41, 0x4c, 0xd6, 0x9b, 0x89, 0xd3, 0xef, 0x3b,
+ 0x87, 0xae, 0x3c, 0x11, 0x6b, 0xc6, 0x6c, 0xab,
+ 0xe0, 0x9b, 0x68, 0x89, 0xa5, 0xcb, 0x9f, 0x87,
+ 0x49, 0x9f, 0xe6, 0x6b, 0xf7, 0xbb, 0x11, 0x70,
+
+ 0x13, 0xee, 0x94, 0x8e, 0x35, 0x6a, 0xa5, 0x0c,
+ 0x8f, 0x71, 0x16, 0x65, 0xe4, 0x83, 0x8b, 0x15,
+ 0xc9, 0xa7, 0x27, 0x0c, 0x07, 0x86, 0x6c, 0x8b,
+ 0x5f, 0x4f, 0x69, 0xf3, 0x12, 0x7e, 0x4b, 0x27,
+
+ 0x5c, 0x0f, 0x22, 0x26, 0xe4, 0x4a, 0x96, 0xe7,
+ 0x5b, 0x5a, 0xaf, 0x9e, 0xb4, 0xc8, 0xc5, 0x5e,
+ 0x12, 0xa7, 0x66, 0x50, 0xe4, 0x2a, 0x24, 0xb4,
+ 0x06, 0x93, 0x80, 0x1b, 0x39, 0xc2, 0x07, 0x20,
+
+ 0x32, 0x82, 0xe5, 0xde, 0x81, 0xb6, 0x7c, 0x3a,
+ 0x55, 0x88, 0xa8, 0x4f, 0x12, 0xdb, 0xd4, 0x0c,
+ 0x75, 0x02, 0x9d, 0xdb, 0x0b, 0x8b, 0xf7, 0xc8,
+ 0x7e, 0xbc, 0x34, 0x66, 0x5e, 0x9a, 0xb2, 0x8f,
+
+ 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha384.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha384.inc
new file mode 100644
index 0000000000..6191f5db47
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha384.inc
@@ -0,0 +1,85 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: grp01
+ * Signer: member0
+ * HashAlg: Sha384
+ * Message: "test1"
+ * Basename: None (random base)
+ * SigRl: Empty
+ */
+ 0x79, 0xb5, 0x73, 0xf5, 0xb2, 0x63, 0x6e, 0x0c,
+ 0xbb, 0x99, 0x14, 0xa8, 0x86, 0xbf, 0x23, 0xd6,
+ 0xc8, 0x03, 0x5f, 0x5e, 0x0b, 0xd9, 0xc6, 0x74,
+ 0x23, 0xc0, 0x4d, 0x0d, 0xa3, 0xdf, 0x88, 0x17,
+
+ 0x67, 0x31, 0x05, 0xb8, 0x29, 0x9e, 0x58, 0x06,
+ 0xaa, 0x1f, 0xf1, 0x9f, 0xe7, 0x65, 0x7a, 0xda,
+ 0x9a, 0x45, 0x93, 0x27, 0xb2, 0x61, 0x51, 0x94,
+ 0xa4, 0x8c, 0x4a, 0x4e, 0xcd, 0xf4, 0x5c, 0x7c,
+
+ 0xf7, 0xa4, 0x67, 0x40, 0x4e, 0xf4, 0x20, 0x90,
+ 0x77, 0x91, 0x37, 0x09, 0xfe, 0xe7, 0x4b, 0x9e,
+ 0x2e, 0xa9, 0x80, 0xfe, 0xda, 0x19, 0x4c, 0xe0,
+ 0x29, 0xab, 0x8e, 0xa8, 0x60, 0x59, 0x8b, 0x8e,
+
+ 0xe1, 0x11, 0x52, 0x83, 0xdb, 0xbb, 0xff, 0x1b,
+ 0xc6, 0x94, 0xc2, 0xc9, 0xc9, 0x3d, 0x1f, 0xd9,
+ 0x3b, 0x9a, 0x14, 0x0c, 0x5e, 0x98, 0xae, 0x66,
+ 0x2a, 0xe1, 0x75, 0xd7, 0x19, 0x08, 0x5f, 0xf5,
+
+ 0x01, 0xed, 0x5f, 0x18, 0xc1, 0x7e, 0xde, 0xb6,
+ 0x4f, 0x9c, 0xb2, 0xe7, 0x21, 0xeb, 0x94, 0xdc,
+ 0xaf, 0x2c, 0xf1, 0x4a, 0xef, 0x98, 0x9a, 0x8c,
+ 0x8d, 0xb2, 0xb5, 0x72, 0xab, 0x31, 0xf5, 0x10,
+
+ 0xe5, 0x9c, 0x32, 0x35, 0xa7, 0x41, 0x56, 0x71,
+ 0xc2, 0x16, 0xcd, 0x05, 0x68, 0x2e, 0xc6, 0x00,
+ 0xc9, 0x3b, 0x0d, 0x43, 0x04, 0x7a, 0x6c, 0x32,
+ 0x96, 0x44, 0xeb, 0x75, 0xb2, 0xd9, 0xd5, 0xb1,
+
+ 0x28, 0x91, 0x45, 0x6c, 0x28, 0x85, 0xae, 0x68,
+ 0xb0, 0xa6, 0x5e, 0x35, 0x1b, 0x46, 0xcf, 0x86,
+ 0x7a, 0xd1, 0x3a, 0xf0, 0xc6, 0x6c, 0x4a, 0x07,
+ 0x7a, 0xcb, 0x40, 0x90, 0x55, 0xb7, 0xdc, 0x63,
+
+ 0xa9, 0x58, 0xae, 0x04, 0xe7, 0x65, 0x63, 0x4a,
+ 0x94, 0xcc, 0x32, 0x6f, 0xe3, 0xef, 0xac, 0x41,
+ 0x09, 0x1b, 0x06, 0x55, 0x27, 0x3a, 0x26, 0x87,
+ 0xb7, 0x4a, 0x1d, 0x76, 0x27, 0x2c, 0xab, 0x8a,
+
+ 0x18, 0x64, 0x25, 0x70, 0x8b, 0x4f, 0xab, 0x0f,
+ 0x4b, 0x20, 0x14, 0xbf, 0x25, 0x49, 0xcc, 0x98,
+ 0xbd, 0x2d, 0xee, 0x33, 0x90, 0xd8, 0x37, 0x12,
+ 0x15, 0x7e, 0x0e, 0x39, 0x5e, 0xf1, 0x0f, 0xbd,
+
+ 0xaf, 0x38, 0xb3, 0x0b, 0x9d, 0x98, 0x28, 0xa0,
+ 0xc3, 0x3f, 0x70, 0xc8, 0xe4, 0xc2, 0xa9, 0xac,
+ 0xeb, 0x24, 0xe1, 0x0a, 0xfa, 0xd4, 0xe3, 0x2e,
+ 0xdd, 0x8d, 0x15, 0xc9, 0x32, 0x01, 0x77, 0xcb,
+
+ 0xdc, 0x99, 0x4c, 0xba, 0x99, 0xd3, 0xd0, 0xf1,
+ 0x22, 0x1a, 0xd7, 0x6e, 0x93, 0xe4, 0xd6, 0x46,
+ 0x41, 0x88, 0x7f, 0x5c, 0xda, 0x21, 0xa6, 0x1f,
+ 0x12, 0x9f, 0x77, 0x98, 0xae, 0x4a, 0x50, 0xc9,
+
+ 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha512.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha512.inc
new file mode 100644
index 0000000000..fe9eff17ff
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/member0/sig_test1_sha512.inc
@@ -0,0 +1,85 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: grp01
+ * Signer: member0
+ * HashAlg: Sha512
+ * Message: "test1"
+ * Basename: None (random base)
+ * SigRl: Empty
+ */
+ 0xb8, 0x56, 0xe4, 0xb3, 0x1a, 0xba, 0xcf, 0xaa,
+ 0xee, 0x6a, 0xc6, 0xaa, 0xc6, 0x43, 0xcf, 0x24,
+ 0x38, 0xb5, 0x95, 0xd9, 0x60, 0x40, 0xfd, 0xb1,
+ 0xa5, 0x0b, 0x49, 0x72, 0x8c, 0x1a, 0x32, 0x8b,
+
+ 0x50, 0x9f, 0xed, 0xc0, 0x90, 0x46, 0x0f, 0xe5,
+ 0x26, 0x72, 0xb1, 0x7a, 0xf9, 0xfe, 0x67, 0xa2,
+ 0x81, 0xab, 0x7a, 0x6f, 0x8e, 0xc6, 0x26, 0x8b,
+ 0x9f, 0x5a, 0x07, 0xd7, 0xc1, 0x8a, 0x94, 0x53,
+
+ 0x0b, 0x0a, 0xd3, 0xd9, 0xa2, 0x10, 0xc5, 0xc2,
+ 0x14, 0x13, 0xe2, 0xc0, 0x53, 0x5a, 0xa3, 0x13,
+ 0x25, 0xfd, 0xd7, 0x4c, 0xec, 0xc4, 0x57, 0x36,
+ 0xfc, 0x34, 0xb0, 0x7c, 0xcc, 0x17, 0x9c, 0xf4,
+
+ 0x68, 0x9d, 0xd0, 0x8c, 0xb9, 0xb4, 0xb2, 0x35,
+ 0x7c, 0x9b, 0xeb, 0x24, 0x00, 0x05, 0x96, 0x0b,
+ 0xa2, 0xf2, 0xe4, 0x87, 0x38, 0x80, 0xcb, 0xd5,
+ 0x0c, 0x01, 0xc1, 0xb1, 0xe4, 0x21, 0x63, 0x41,
+
+ 0x73, 0x44, 0xf4, 0xe4, 0x20, 0xb0, 0x0c, 0xb7,
+ 0x6b, 0x49, 0x4b, 0xe8, 0xb3, 0x09, 0x5f, 0x16,
+ 0x35, 0x08, 0x5e, 0x97, 0x5b, 0xe1, 0x77, 0x94,
+ 0x2c, 0x47, 0xba, 0x1b, 0x3b, 0x37, 0x71, 0x1b,
+
+ 0x28, 0xb7, 0x7d, 0x9b, 0x61, 0x50, 0xc0, 0x85,
+ 0x38, 0xb7, 0xb4, 0xd7, 0x27, 0x22, 0x5b, 0xf1,
+ 0x72, 0xb6, 0x0d, 0x19, 0x60, 0xdc, 0x70, 0x38,
+ 0xe5, 0x01, 0x31, 0x04, 0x8a, 0xee, 0x1f, 0xd8,
+
+ 0x45, 0x1d, 0x0c, 0x4c, 0xe3, 0x5f, 0xbc, 0xb0,
+ 0x6e, 0x9b, 0x7b, 0x01, 0x42, 0xcf, 0xb5, 0x56,
+ 0x32, 0xdc, 0xf2, 0xea, 0xb5, 0x66, 0xdc, 0x10,
+ 0xea, 0xb8, 0x2b, 0xa0, 0xb7, 0xbb, 0x55, 0x45,
+
+ 0xf7, 0x50, 0xf5, 0x14, 0x02, 0x91, 0xf4, 0x2f,
+ 0x10, 0xa8, 0x94, 0xaf, 0x6a, 0x4a, 0xab, 0x87,
+ 0xdf, 0xd5, 0xeb, 0xc3, 0x22, 0x38, 0xaf, 0xef,
+ 0x79, 0xf4, 0xed, 0x1c, 0xe8, 0x5d, 0xd0, 0x19,
+
+ 0x7a, 0x9c, 0x7c, 0x05, 0x23, 0x24, 0xb3, 0xfb,
+ 0x2c, 0x54, 0x4d, 0xee, 0x55, 0x51, 0xab, 0xff,
+ 0x52, 0xc6, 0x79, 0xe8, 0xd4, 0x64, 0x5b, 0xc5,
+ 0x3b, 0x65, 0xee, 0xaf, 0x69, 0xb5, 0x81, 0x51,
+
+ 0x3a, 0x23, 0x0b, 0x6c, 0xf8, 0x0c, 0xe5, 0x72,
+ 0xd7, 0x16, 0x61, 0x3b, 0x73, 0x4c, 0x2b, 0x23,
+ 0x51, 0x64, 0x02, 0xa2, 0x60, 0xac, 0xda, 0x17,
+ 0x4d, 0x49, 0x38, 0xaf, 0x9c, 0xcd, 0x83, 0x3a,
+
+ 0x88, 0x73, 0xb4, 0x5b, 0x86, 0x2c, 0xa7, 0x7f,
+ 0x95, 0xf1, 0x9f, 0xa9, 0x9b, 0x49, 0xca, 0xef,
+ 0xd7, 0x07, 0xdf, 0x06, 0x3e, 0xb9, 0xa8, 0x7f,
+ 0x45, 0x9d, 0x6e, 0x24, 0xf8, 0xf3, 0xee, 0x5e,
+
+ 0x00, 0x00,
+
+ 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/privrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/privrl.inc
new file mode 100644
index 0000000000..3c373a1e3f
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/privrl.inc
@@ -0,0 +1,277 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+// privRL
+// gid
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A,
+
+// version
+0x00, 0x00, 0x00, 0x00,
+
+// n1
+0x00, 0x00, 0x00, 0x32,
+
+// f's
+0x8a, 0xdc, 0xc0, 0xc8, 0xcd, 0x29, 0x9e, 0x8,
+0x9e, 0x4e, 0xd, 0xa7, 0xf6, 0x46, 0xee, 0x80,
+0xca, 0x91, 0x86, 0x54, 0x3c, 0x7f, 0x8d, 0xb5,
+0x49, 0xf9, 0x6d, 0x00, 0x39, 0x39, 0x62, 0xc7,
+
+0xe9, 0xa2, 0x59, 0x31, 0xbc, 0xc6, 0x6, 0xe1,
+0xf5, 0x45, 0xc6, 0xe1, 0x1a, 0x8e, 0xd6, 0xc6,
+0xc7, 0x25, 0x94, 0x7f, 0x82, 0x99, 0x3d, 0x1d,
+0x32, 0x39, 0xd9, 0x37, 0x2a, 0x12, 0x89, 0x03,
+
+0x83, 0xe7, 0x53, 0xa9, 0x99, 0xba, 0x3f, 0xae,
+0x3e, 0xa0, 0x86, 0x91, 0x1c, 0xee, 0xe3, 0x76,
+0x4b, 0xf0, 0x7a, 0x11, 0xb3, 0x9d, 0x35, 0x42,
+0x00, 0xcf, 0x40, 0x5e, 0x36, 0x74, 0x2a, 0x94,
+
+0xb9, 0x2f, 0x96, 0xa7, 0xbf, 0x5d, 0x8c, 0x5b,
+0x47, 0xc4, 0xac, 0xe9, 0x9a, 0x8a, 0x2d, 0x38,
+0x4, 0xb5, 0xe6, 0x56, 0x30, 0xa7, 0xe4, 0x9a,
+0xcc, 0x73, 0x81, 0x9a, 0x4f, 0x75, 0x6c, 0xef,
+
+0x91, 0x52, 0xb2, 0x6, 0x20, 0x83, 0x7c, 0x22,
+0x27, 0x83, 0xd, 0x77, 0x5c, 0xff, 0x20, 0xf5,
+0x53, 0xad, 0x9e, 0xd9, 0x9c, 0x76, 0x6f, 0xc,
+0x4b, 0xa9, 0xb9, 0xc0, 0x51, 0xe7, 0x32, 0xd5,
+
+0x10, 0x01, 0xa7, 0xbf, 0xc5, 0xad, 0x96, 0xb9,
+0x40, 0xdc, 0x6f, 0xdb, 0xca, 0xd5, 0xf8, 0x03,
+0xe, 0x47, 0x6e, 0xe8, 0x76, 0x4b, 0x87, 0x1e,
+0x59, 0x17, 0x99, 0x88, 0x15, 0xe4, 0xc5, 0x4d,
+
+0xf2, 0x38, 0xb7, 0x1d, 0x30, 0x89, 0xa5, 0xbe,
+0x15, 0xb6, 0x9d, 0x8e, 0x8e, 0x85, 0x33, 0x99,
+0xe3, 0x6a, 0x8, 0x3f, 0xba, 0xeb, 0x40, 0x8b,
+0x17, 0xfc, 0xa8, 0x2e, 0xe0, 0x34, 0x94, 0x4e,
+
+0x50, 0xb6, 0x8d, 0x45, 0xac, 0x8, 0x10, 0xb1,
+0xb7, 0xa4, 0xbe, 0xd6, 0x00, 0xd0, 0x96, 0xc,
+0xa3, 0xb5, 0x74, 0xc6, 0xe9, 0xa7, 0xe1, 0x80,
+0x6f, 0x5d, 0x71, 0x37, 0x4d, 0xf4, 0xee, 0x9a,
+
+0xc5, 0x46, 0xa4, 0x21, 0xff, 0xd2, 0x73, 0x47,
+0x40, 0xe3, 0xa2, 0xf0, 0xe2, 0x4a, 0xed, 0xde,
+0x35, 0xca, 0x92, 0xba, 0xfa, 0x92, 0xa4, 0x21,
+0x03, 0x46, 0xb5, 0x28, 0x88, 0xea, 0xcc, 0xd2,
+
+0x38, 0x95, 0x8d, 0x4a, 0x3a, 0xcf, 0xc2, 0x8c,
+0xc3, 0x88, 0x81, 0x5, 0x8d, 0x94, 0x7c, 0xd2,
+0xf9, 0x7d, 0x6c, 0x68, 0x6f, 0x69, 0x54, 0xc4,
+0x9d, 0xf5, 0x38, 0x9b, 0x40, 0xb6, 0xee, 0xe6,
+
+0xb, 0x50, 0x76, 0x23, 0x1b, 0x19, 0xf6, 0xf9,
+0x1b, 0xf7, 0x63, 0xe4, 0x38, 0xd0, 0x1c, 0xff,
+0x32, 0x6, 0x86, 0xa8, 0x89, 0x87, 0x5c, 0xc,
+0x23, 0x2c, 0xaa, 0xe, 0x6, 0xa8, 0xfa, 0x91,
+
+0xfa, 0x93, 0xea, 0xdc, 0x3d, 0xc, 0x4d, 0x84,
+0x89, 0x21, 0xc1, 0x3e, 0xb4, 0xa1, 0x30, 0x8e,
+0x7e, 0xb, 0xa5, 0x4c, 0x51, 0x11, 0xff, 0x00,
+0x95, 0x5a, 0xa4, 0x47, 0x94, 0x2f, 0x43, 0x56,
+
+0x2c, 0x53, 0xb8, 0x93, 0xf4, 0x38, 0xd7, 0x30,
+0x15, 0x73, 0x53, 0xfa, 0xd9, 0x75, 0x4a, 0xda,
+0xe5, 0xb, 0xdc, 0xc, 0x01, 0x73, 0x2e, 0x57,
+0x1c, 0xdd, 0xf9, 0x9, 0x9e, 0x22, 0xf6, 0x4b,
+
+0xfd, 0xcd, 0x91, 0x57, 0x7f, 0xb9, 0x3d, 0xd1,
+0xb6, 0xc9, 0x25, 0xe5, 0x18, 0x1a, 0x94, 0xe8,
+0xe0, 0x52, 0x7d, 0xbe, 0x93, 0x28, 0xf, 0xa1,
+0x69, 0x86, 0xc1, 0xb0, 0x47, 0xa4, 0x48, 0xa4,
+
+0x7d, 0xee, 0x16, 0x67, 0xe8, 0x23, 0x9d, 0xf9,
+0xc4, 0xc6, 0x2f, 0xc1, 0x6f, 0x8, 0xa, 0x52,
+0x2b, 0xd7, 0x33, 0x40, 0x3a, 0xf7, 0xc0, 0x60,
+0x72, 0xa9, 0xf1, 0x34, 0x9e, 0xd8, 0x3b, 0x9c,
+
+0x7a, 0xc0, 0x2f, 0x2f, 0xe9, 0xae, 0xb2, 0xe1,
+0x10, 0x8d, 0x30, 0xd7, 0xb5, 0x4e, 0x49, 0x1c,
+0xac, 0xfc, 0x1d, 0x39, 0xc4, 0x36, 0x46, 0xd9,
+0x82, 0x2d, 0xc1, 0xec, 0x27, 0xba, 0xe2, 0xea,
+
+0x3d, 0x9e, 0xfd, 0xe0, 0x81, 0x33, 0xe1, 0x17,
+0xda, 0x5a, 0x29, 0x13, 0x03, 0xf0, 0xb5, 0xf,
+0xf5, 0x78, 0x37, 0x64, 0xda, 0x20, 0x87, 0xf9,
+0xf5, 0xbb, 0xff, 0x9e, 0x9c, 0xf4, 0xcc, 0xb0,
+
+0xeb, 0x30, 0xcf, 0x10, 0x34, 0xd0, 0xc2, 0x6b,
+0x2b, 0xae, 0xc5, 0x8c, 0x1a, 0xf2, 0x1e, 0x19,
+0x16, 0xe1, 0x31, 0xc0, 0x77, 0x32, 0x4e, 0x2a,
+0x1a, 0x54, 0xb3, 0xbf, 0x52, 0x87, 0xa5, 0xb6,
+
+0x9e, 0x10, 0xba, 0x1a, 0x2f, 0x49, 0xe9, 0x6,
+0xf4, 0x00, 0x84, 0xb8, 0x13, 0x94, 0x91, 0xfb,
+0xaf, 0x43, 0x8f, 0x4a, 0xa3, 0x42, 0xce, 0xb7,
+0x01, 0xf5, 0x2a, 0xde, 0xad, 0x36, 0x7f, 0xde,
+
+0x4e, 0xea, 0x64, 0x98, 0x8e, 0x13, 0x95, 0xae,
+0xdf, 0xca, 0xa, 0x3f, 0x39, 0x65, 0xda, 0xe4,
+0x4c, 0xa4, 0x1d, 0x80, 0x16, 0x25, 0x8b, 0x1e,
+0xf4, 0x9e, 0x92, 0x7d, 0xe2, 0xb4, 0x5, 0xd3,
+
+0x18, 0x11, 0x18, 0x4c, 0xab, 0x71, 0x23, 0xf4,
+0xeb, 0x2c, 0xc, 0x82, 0x15, 0x1c, 0x8c, 0xde,
+0x24, 0x8d, 0xa1, 0x74, 0xf1, 0xe7, 0x54, 0x7a,
+0x10, 0x3c, 0xd3, 0x39, 0x7a, 0x2e, 0x3e, 0x30,
+
+0x37, 0xc8, 0x39, 0x90, 0xf5, 0xca, 0x5e, 0x4c,
+0xc1, 0x79, 0x40, 0x65, 0x97, 0x5d, 0x1a, 0x27,
+0xb7, 0x7c, 0x10, 0xb3, 0x50, 0x61, 0x51, 0xc0,
+0xe8, 0xac, 0x78, 0x1e, 0xcb, 0x88, 0x01, 0xbd,
+
+0x7, 0xb0, 0x2e, 0xd4, 0xe8, 0x6, 0xd, 0xb8,
+0xb5, 0xa3, 0xe1, 0x54, 0xb6, 0xe7, 0xaf, 0x3a,
+0x65, 0xdb, 0x3b, 0x76, 0x5c, 0xdd, 0x83, 0x15,
+0xc0, 0x84, 0xf4, 0xda, 0xff, 0xf3, 0x40, 0xc5,
+
+0x2e, 0xe5, 0xab, 0x73, 0x4b, 0x14, 0xde, 0xb6,
+0x5a, 0xfc, 0x3d, 0x77, 0x03, 0x5a, 0xa3, 0x9f,
+0x88, 0x69, 0x58, 0xa6, 0x8, 0x87, 0x28, 0x33,
+0xa3, 0x34, 0x4b, 0x83, 0x14, 0x8b, 0x1e, 0x50,
+
+0x9c, 0x6, 0x6b, 0x6a, 0xc1, 0x62, 0x82, 0xab,
+0x8f, 0x82, 0xae, 0x3d, 0x91, 0xd7, 0xfd, 0xd5,
+0xd2, 0x19, 0x3f, 0x4f, 0xae, 0x1f, 0x01, 0xcc,
+0x50, 0x96, 0xfc, 0x79, 0x2f, 0x67, 0xa3, 0xdd,
+
+0x9b, 0x86, 0x6b, 0xd7, 0xd6, 0x8e, 0x62, 0x26,
+0x59, 0x28, 0xd1, 0x9f, 0x25, 0x12, 0xe7, 0xbd,
+0x16, 0x7b, 0x22, 0xd3, 0x7c, 0xfe, 0xcd, 0x7e,
+0x60, 0x93, 0x59, 0xc9, 0x48, 0xd4, 0xab, 0xd8,
+
+0x95, 0x29, 0x50, 0xe4, 0x98, 0xe6, 0xb4, 0x4b,
+0x41, 0x78, 0xb7, 0x01, 0x5d, 0x88, 0x3e, 0x3d,
+0xd4, 0x4a, 0x59, 0x5, 0xc7, 0x8, 0xb9, 0x5c,
+0xff, 0xcb, 0x6e, 0x3e, 0x1b, 0xe6, 0xf3, 0x9b,
+
+0xae, 0x75, 0x86, 0xc, 0x12, 0xb8, 0x5b, 0xb3,
+0x62, 0x53, 0xb3, 0xf6, 0xa8, 0xdd, 0xa2, 0xc3,
+0x6a, 0xc1, 0x54, 0x19, 0xfb, 0xd8, 0x51, 0x5b,
+0x4c, 0x31, 0xc4, 0x58, 0xc6, 0x11, 0x89, 0x18,
+
+0x73, 0x93, 0xc, 0xda, 0x48, 0x73, 0x3a, 0x5e,
+0x67, 0xa, 0xd1, 0x3c, 0x8e, 0xb7, 0xbe, 0x18,
+0x1b, 0x84, 0xe5, 0x72, 0x59, 0x19, 0x5f, 0x44,
+0x84, 0x41, 0x8a, 0xf5, 0xac, 0xa0, 0xa2, 0x85,
+
+0xcf, 0x50, 0xb0, 0x73, 0x9a, 0x2b, 0x6, 0x93,
+0xaa, 0x26, 0xc4, 0xc7, 0xca, 0x30, 0xb, 0x2e,
+0x3e, 0xca, 0xa9, 0xa4, 0x47, 0xe7, 0x44, 0x9f,
+0xae, 0x7e, 0xda, 0xc0, 0x4b, 0xb7, 0xa1, 0x74,
+
+0x78, 0x86, 0xe6, 0xc4, 0x59, 0xbd, 0xb5, 0x41,
+0xc0, 0x48, 0x57, 0x4f, 0x5b, 0x6a, 0xda, 0x9d,
+0x27, 0xf6, 0xb6, 0x4f, 0xc5, 0x30, 0x94, 0x8e,
+0xe3, 0x5d, 0x84, 0x67, 0xd7, 0xd4, 0x79, 0x37,
+
+0x31, 0x41, 0x4, 0xb0, 0xf0, 0xa8, 0xe3, 0x80,
+0xf3, 0x3a, 0x6b, 0x5b, 0x03, 0x9d, 0x41, 0x37,
+0x98, 0x3b, 0x03, 0xac, 0x1b, 0xca, 0xe9, 0xe1,
+0x91, 0xc, 0x2b, 0x8b, 0x52, 0x7a, 0xf7, 0x6,
+
+0x4f, 0xdc, 0x6f, 0x6b, 0x9a, 0x2a, 0x88, 0x52,
+0xf5, 0x65, 0x11, 0xc9, 0x27, 0x14, 0x90, 0xf6,
+0xab, 0x73, 0xe0, 0x71, 0x50, 0x52, 0xb3, 0xb7,
+0x27, 0x6e, 0xe7, 0xa, 0x17, 0x7a, 0x7e, 0xb3,
+
+0xc5, 0x67, 0x79, 0x19, 0xb9, 0xf1, 0x2b, 0x4b,
+0x4e, 0x2f, 0xc6, 0xda, 0xee, 0x76, 0x1d, 0xb7,
+0x91, 0x66, 0x30, 0x61, 0xa4, 0xca, 0xc3, 0x47,
+0x68, 0xba, 0x5b, 0xe8, 0x1c, 0xd9, 0x7c, 0xb8,
+
+0x22, 0xfd, 0x1a, 0xe0, 0x39, 0x84, 0x8c, 0x9e,
+0xb2, 0x1e, 0x5d, 0xbe, 0x86, 0x8d, 0xbb, 0x76,
+0x12, 0xd3, 0x9d, 0x7c, 0xa9, 0x2a, 0xa5, 0xae,
+0x11, 0xdd, 0x01, 0x96, 0xc6, 0x01, 0x5d, 0x5a,
+
+0x98, 0x55, 0x5e, 0x5a, 0xd3, 0xc9, 0x10, 0x11,
+0x01, 0x62, 0xa7, 0x82, 0x01, 0xd3, 0xea, 0x5e,
+0x49, 0x21, 0x54, 0x8e, 0x99, 0x35, 0x95, 0x15,
+0x26, 0xfb, 0xbd, 0x82, 0x41, 0x2e, 0x66, 0x03,
+
+0xd9, 0x2b, 0xed, 0xd9, 0xb4, 0x44, 0x62, 0x4a,
+0x11, 0x73, 0x6e, 0x54, 0xab, 0xdd, 0x5c, 0x24,
+0x46, 0xdc, 0x47, 0xf, 0x2c, 0xbb, 0x4b, 0x71,
+0x6a, 0xbd, 0xd2, 0xf9, 0xbf, 0x6b, 0x23, 0xb1,
+
+0xdb, 0xe8, 0xd0, 0x45, 0xbf, 0x20, 0x90, 0x9f,
+0x89, 0xea, 0x8b, 0x8a, 0xbe, 0x52, 0xd5, 0xe4,
+0xb0, 0x68, 0xf5, 0x80, 0x74, 0xad, 0xc, 0xe3,
+0x9f, 0xa, 0xee, 0xec, 0x1b, 0x4, 0x7c, 0xf0,
+
+0x35, 0xf7, 0x80, 0xd7, 0xd8, 0xf3, 0x88, 0xee,
+0xfb, 0x9, 0xc9, 0xd3, 0x5, 0x92, 0x77, 0xe3,
+0xe3, 0x80, 0xe6, 0x6d, 0x7b, 0xc6, 0xc2, 0xe1,
+0xfe, 0x5f, 0x5d, 0x53, 0xc7, 0x94, 0xf8, 0x9c,
+
+0x5f, 0xad, 0x9c, 0x1a, 0xf5, 0x2, 0xe5, 0xcf,
+0x01, 0xe4, 0x87, 0x29, 0xaf, 0xb9, 0xa7, 0x2,
+0xcb, 0xe0, 0x57, 0x00, 0xfd, 0x56, 0x35, 0x54,
+0xb, 0xb5, 0x71, 0xa0, 0xf3, 0xdc, 0x34, 0x5a,
+
+0xbd, 0x7c, 0xe0, 0xc6, 0x99, 0x50, 0x58, 0x72,
+0x53, 0x5d, 0x90, 0x70, 0x7d, 0x27, 0x6f, 0x99,
+0x28, 0x6, 0x80, 0x20, 0x15, 0xd4, 0xcb, 0x7a,
+0xb2, 0x6b, 0xd0, 0xe5, 0x14, 0xcf, 0x80, 0x79,
+
+0x6, 0x81, 0x62, 0x5f, 0x5, 0x2, 0xe6, 0x71,
+0x77, 0xcc, 0xaf, 0x29, 0x46, 0x35, 0xe2, 0x20,
+0x18, 0xb8, 0x47, 0x7d, 0x72, 0x34, 0x74, 0x3d,
+0x19, 0x10, 0x6c, 0x11, 0x73, 0xe9, 0x3b, 0x48,
+
+0xec, 0xe9, 0x54, 0xc3, 0x4, 0xba, 0xa6, 0x78,
+0xa2, 0xeb, 0x54, 0x6d, 0xf, 0x8f, 0xb2, 0x5f,
+0x9a, 0xc3, 0x3a, 0xb8, 0x7e, 0x5b, 0x01, 0xac,
+0x6b, 0x45, 0x65, 0xf5, 0x9a, 0x43, 0x4a, 0x46,
+
+0xef, 0x99, 0x9, 0x46, 0xa5, 0xa7, 0x6, 0xa5,
+0xc3, 0x54, 0x7, 0xbe, 0x3b, 0x35, 0x4d, 0xdc,
+0xc8, 0x8e, 0xa4, 0x44, 0x4a, 0x81, 0xdf, 0xdd,
+0x92, 0xa8, 0xee, 0xcf, 0x1a, 0x5b, 0x2c, 0x6d,
+
+0x2e, 0x3e, 0xce, 0x64, 0xe7, 0x9, 0x9b, 0x23,
+0xf6, 0xd8, 0x92, 0xca, 0x60, 0x6b, 0xf0, 0x21,
+0xf9, 0x76, 0x4f, 0xf7, 0x56, 0x5, 0xe1, 0x89,
+0xd1, 0x83, 0xe9, 0xd3, 0xc3, 0x4a, 0x8f, 0xd8,
+
+0x3e, 0xd6, 0x1c, 0xda, 0xdf, 0x9, 0x25, 0x7b,
+0xf9, 0xc, 0x61, 0x93, 0x21, 0x12, 0x6b, 0xbb,
+0x83, 0x2d, 0xfe, 0x3f, 0x81, 0x40, 0x34, 0x1c,
+0x3c, 0xb6, 0x93, 0xe6, 0x27, 0x80, 0xfe, 0xde,
+
+0xbd, 0x53, 0xfb, 0x7c, 0x1c, 0xe5, 0x1e, 0xaa,
+0xa0, 0x77, 0xe0, 0x60, 0xcd, 0xb6, 0x81, 0x30,
+0xbe, 0x27, 0x59, 0x6a, 0x33, 0x8, 0x58, 0xa1,
+0x23, 0x9d, 0x7f, 0x6e, 0x47, 0xf5, 0x45, 0xd9,
+
+0xa8, 0x7a, 0xc7, 0x01, 0x8, 0x40, 0x4a, 0x66,
+0xbe, 0x6d, 0x12, 0xe9, 0xf, 0xc6, 0xca, 0xa5,
+0x83, 0xd8, 0xda, 0x3e, 0xe5, 0xb5, 0x3d, 0x78,
+0x60, 0x86, 0xdc, 0xfc, 0x9b, 0xd6, 0xb6, 0x33,
+
+0xd8, 0x2a, 0xa1, 0x5d, 0x1e, 0xc9, 0xab, 0xde,
+0x6e, 0x10, 0x00, 0x74, 0x51, 0xa8, 0x5e, 0x94,
+0x84, 0x6c, 0xf6, 0x73, 0xfd, 0x7, 0x38, 0xdc,
+0x7e, 0x6a, 0x6d, 0xc, 0x50, 0x3f, 0x4, 0x13,
+
+0x55, 0xdd, 0x03, 0xd3, 0xdc, 0x5f, 0x11, 0x18,
+0x97, 0xe9, 0x4a, 0xb5, 0x2b, 0xd, 0x88, 0x69,
+0x18, 0x99, 0xc4, 0xe, 0x24, 0x5c, 0xac, 0x7f,
+0x49, 0xc9, 0x33, 0xb9, 0xa9, 0xba, 0x6e, 0xc1
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/sigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/sigrl.inc
new file mode 100644
index 0000000000..52de07b8f1
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/sigrl.inc
@@ -0,0 +1,878 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+// sigRL
+
+// gid
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A,
+
+// version
+0x00, 0x00, 0x00, 0x00,
+
+// n2
+0x00, 0x00, 0x00, 0x32,
+
+// bk's
+0x9c, 0xa5, 0xe5, 0xae, 0x5f, 0xae, 0x51, 0x59,
+0x33, 0x35, 0x27, 0xd, 0x8, 0xb1, 0xbe, 0x5d,
+0x69, 0x50, 0x84, 0xc5, 0xfe, 0xe2, 0x87, 0xea,
+0x2e, 0xef, 0xfa, 0xee, 0x67, 0xf2, 0xd8, 0x28,
+0x56, 0x43, 0xc6, 0x94, 0x67, 0xa6, 0x72, 0xf6,
+0x41, 0x15, 0x4, 0x58, 0x42, 0x16, 0x88, 0x57,
+0x9d, 0xc7, 0x71, 0xd1, 0xc, 0x84, 0x13, 0xa,
+0x90, 0x23, 0x18, 0x8, 0xad, 0x7d, 0xfe, 0xf5,
+0xc8, 0xae, 0xfc, 0x51, 0x40, 0xa7, 0xd1, 0x28,
+0xc2, 0x89, 0xb2, 0x6b, 0x4e, 0xb4, 0xc1, 0x55,
+0x87, 0x98, 0xbd, 0x72, 0xf9, 0xcf, 0xd, 0x40,
+0x15, 0xee, 0x32, 0xc, 0xf3, 0x56, 0xc5, 0xc,
+0x61, 0x9d, 0x4f, 0x7a, 0xb5, 0x2b, 0x16, 0xa9,
+0xa3, 0x97, 0x38, 0xe2, 0xdd, 0x3a, 0x33, 0xad,
+0xf6, 0x7b, 0x68, 0x8b, 0x68, 0xcf, 0xa3, 0xd3,
+0x98, 0x37, 0xce, 0xec, 0xd1, 0xa8, 0xc, 0x8b,
+
+0x71, 0x8a, 0xb5, 0x1, 0x7f, 0x7c, 0x92, 0x9a,
+0xa2, 0xc9, 0x81, 0x10, 0xfe, 0xbf, 0xc, 0x53,
+0xa4, 0x43, 0xaf, 0x31, 0x74, 0x12, 0x25, 0x60,
+0x3e, 0xc0, 0x21, 0xe6, 0x63, 0x9a, 0xd2, 0x67,
+0x2d, 0xb5, 0xd5, 0x82, 0xc4, 0x49, 0x29, 0x51,
+0x42, 0x8f, 0xe0, 0xe, 0xd1, 0x73, 0x27, 0xf5,
+0x77, 0x16, 0x4, 0x40, 0x8a, 0x0, 0xe, 0x3a,
+0x5d, 0x37, 0x42, 0xd3, 0x8, 0x40, 0xbd, 0x69,
+0xf7, 0x5f, 0x74, 0x21, 0x50, 0xf4, 0xce, 0xfe,
+0xd9, 0xdd, 0x97, 0x6c, 0xa8, 0xa5, 0x60, 0x6b,
+0xf8, 0x1b, 0xba, 0x2, 0xb2, 0xca, 0x5, 0x44,
+0x9b, 0xb1, 0x5e, 0x3a, 0xa4, 0x35, 0x7a, 0x51,
+0xfa, 0xcf, 0xa4, 0x4, 0xe9, 0xf3, 0xbf, 0x38,
+0xd4, 0x24, 0x9, 0x52, 0xf3, 0x58, 0x3d, 0x9d,
+0x4b, 0xb3, 0x37, 0x4b, 0xec, 0x87, 0xe1, 0x64,
+0x60, 0x3c, 0xb6, 0xf7, 0x7b, 0xff, 0x40, 0x11,
+
+0x6e, 0x22, 0xaa, 0x10, 0x84, 0x58, 0x8b, 0xff,
+0xd8, 0x37, 0x8, 0xa9, 0xe9, 0xdb, 0xf6, 0x1f,
+0x69, 0x10, 0x95, 0x6c, 0xbf, 0xd, 0x11, 0x48,
+0x6f, 0x1b, 0x3c, 0x62, 0x46, 0x13, 0x89, 0x13,
+0x5f, 0xa1, 0x3, 0x62, 0xed, 0x62, 0xdf, 0x3d,
+0xbf, 0xcd, 0xb7, 0x41, 0x48, 0x81, 0x3, 0x9f,
+0x54, 0xa, 0xe, 0xb3, 0x35, 0xf9, 0xde, 0x24,
+0xba, 0x6d, 0x4c, 0x7f, 0xfc, 0xc1, 0xb4, 0xce,
+0x6d, 0xa1, 0x73, 0x7c, 0xaa, 0xb, 0xad, 0x2,
+0xd6, 0x37, 0x85, 0xe, 0xbb, 0x48, 0x11, 0x38,
+0xc4, 0xaa, 0x1b, 0xf, 0xcf, 0xc1, 0x9c, 0x26,
+0xcc, 0x95, 0xc2, 0x5b, 0x49, 0x9, 0x3d, 0xe9,
+0x7d, 0xce, 0xc7, 0xa6, 0x4, 0x3e, 0x7c, 0x9e,
+0x28, 0xde, 0x8, 0x11, 0xe, 0x61, 0x3b, 0xc0,
+0x9c, 0x6b, 0x58, 0x23, 0xe6, 0x40, 0x7b, 0xbd,
+0xb8, 0x72, 0xf, 0xe0, 0xee, 0xcf, 0xba, 0xb4,
+
+0xc4, 0xff, 0xaf, 0x48, 0x15, 0xda, 0x60, 0x40,
+0xcc, 0xd7, 0xf2, 0x68, 0xf7, 0xe2, 0x70, 0x12,
+0x8d, 0x15, 0xa5, 0xb7, 0xe6, 0x4c, 0x23, 0xea,
+0x4d, 0x8a, 0x51, 0x6, 0x67, 0x3, 0x4c, 0x83,
+0x6f, 0x28, 0x67, 0xcf, 0x63, 0x46, 0x3e, 0x8a,
+0x45, 0x9f, 0xed, 0x1a, 0xde, 0xa7, 0xad, 0xb2,
+0x2b, 0xf, 0x8b, 0xab, 0x7c, 0x70, 0xff, 0xc3,
+0xa8, 0x6e, 0x8c, 0xaa, 0xb1, 0xf6, 0x20, 0xe3,
+0xb9, 0xf1, 0xc3, 0x3d, 0x5, 0x6a, 0x1e, 0x26,
+0x2d, 0xf4, 0xd, 0xe4, 0x53, 0x63, 0x67, 0x23,
+0x48, 0xa8, 0x1, 0xa8, 0xee, 0xe1, 0x5f, 0x64,
+0xe3, 0x2c, 0x71, 0xe2, 0x10, 0x82, 0x0, 0x52,
+0xd7, 0x74, 0x87, 0xff, 0x1c, 0x0, 0x19, 0xe6,
+0x4d, 0x15, 0x91, 0x6d, 0xf3, 0x38, 0x3b, 0xee,
+0xf3, 0xd5, 0xd1, 0xc7, 0x6d, 0xd9, 0x8e, 0x55,
+0x70, 0x90, 0xb0, 0xb, 0x3c, 0x4a, 0x67, 0x19,
+
+0x4f, 0x98, 0x92, 0xf9, 0x18, 0x38, 0xf5, 0xb4,
+0xf7, 0x2f, 0xa7, 0x21, 0x71, 0x52, 0x27, 0xd0,
+0x57, 0x4f, 0x9c, 0x30, 0xe, 0xb2, 0x27, 0xce,
+0xd7, 0xb2, 0x9f, 0xc0, 0xf6, 0xc3, 0xb0, 0x7c,
+0x40, 0x18, 0x75, 0x4a, 0xde, 0xb0, 0x9f, 0x46,
+0x8a, 0x5a, 0xeb, 0x4f, 0xcb, 0x5e, 0x60, 0xf5,
+0xca, 0xf4, 0x98, 0xaf, 0x62, 0x9b, 0x7e, 0x10,
+0xda, 0xba, 0x2f, 0x47, 0x64, 0xf2, 0xc0, 0x84,
+0x19, 0x75, 0xe0, 0xe4, 0xff, 0x20, 0xda, 0x7d,
+0xe5, 0xd, 0xc8, 0xf8, 0xe3, 0x83, 0x61, 0x19,
+0x17, 0xf1, 0xa9, 0x1b, 0xff, 0x39, 0x79, 0x88,
+0x1, 0xfb, 0xe7, 0x23, 0xd2, 0xac, 0xe0, 0x49,
+0x12, 0x2a, 0x38, 0xb4, 0x7c, 0xc2, 0x1b, 0x88,
+0x5f, 0x68, 0x32, 0x11, 0xd9, 0xfd, 0xdc, 0x65,
+0x2, 0xb3, 0x74, 0x2c, 0x13, 0xf2, 0xd8, 0xf1,
+0x45, 0xc5, 0xd1, 0xf4, 0xa3, 0x38, 0x81, 0x92,
+
+0x4f, 0xde, 0x62, 0x9d, 0xde, 0xfb, 0x23, 0x29,
+0x9c, 0x4, 0xed, 0x19, 0xa8, 0x86, 0x5f, 0xed,
+0x99, 0x5d, 0xc0, 0xe, 0xcf, 0x2c, 0x2e, 0x27,
+0x93, 0x91, 0x47, 0x75, 0xa5, 0xf3, 0x87, 0x99,
+0x15, 0x47, 0xb4, 0xee, 0x79, 0xda, 0xf9, 0x7a,
+0xd9, 0x8d, 0x67, 0xf2, 0xac, 0xe5, 0xc8, 0x30,
+0xbe, 0xa2, 0xee, 0xe1, 0x85, 0x35, 0x93, 0xab,
+0xf1, 0x46, 0xe, 0xb4, 0x4c, 0xa3, 0xe0, 0x9b,
+0xb0, 0x8d, 0x54, 0x5b, 0xa8, 0x53, 0xbb, 0xd5,
+0x9e, 0xc0, 0xa9, 0xd4, 0xae, 0x46, 0x4c, 0x1a,
+0x1, 0xac, 0x80, 0x92, 0xee, 0x46, 0x39, 0xad,
+0x69, 0x9b, 0x8b, 0x15, 0xc9, 0xa3, 0x88, 0x24,
+0x96, 0x32, 0x2b, 0xae, 0xc8, 0xdb, 0x98, 0xc6,
+0xbd, 0x32, 0xe9, 0x12, 0xbb, 0xb9, 0x5d, 0xa5,
+0xfc, 0x4f, 0x2, 0xde, 0x64, 0xc5, 0x94, 0x15,
+0x25, 0x19, 0x44, 0xc0, 0xa, 0xfe, 0xb3, 0x40,
+
+0xf, 0x8, 0xd2, 0x35, 0x1a, 0xca, 0x75, 0xb0,
+0xdf, 0x4a, 0xc1, 0x5f, 0x93, 0x1f, 0x86, 0x7,
+0x78, 0x4b, 0x31, 0x2, 0xb6, 0xe6, 0x9e, 0x93,
+0x30, 0x19, 0x7e, 0x2f, 0x67, 0x40, 0xde, 0x3b,
+0x71, 0x32, 0x71, 0x1a, 0x35, 0x2c, 0xe4, 0xb8,
+0xeb, 0xf4, 0x9, 0xf1, 0xd2, 0x8, 0xcd, 0x15,
+0xb3, 0xdf, 0xd, 0xf5, 0xe8, 0x3a, 0x65, 0x3e,
+0xd6, 0x46, 0x87, 0xd8, 0x91, 0x70, 0xe, 0x73,
+0x62, 0x11, 0xd6, 0x99, 0x36, 0xa5, 0xb7, 0x40,
+0x98, 0xb1, 0x74, 0xfb, 0xbd, 0x99, 0xae, 0xfb,
+0x5f, 0xac, 0xe5, 0x46, 0xb7, 0x71, 0x22, 0xd,
+0xfa, 0xe2, 0x20, 0x8c, 0x1, 0x58, 0x61, 0x13,
+0xd, 0xc, 0x33, 0x49, 0x64, 0xd4, 0x51, 0xe0,
+0x13, 0xea, 0xa5, 0xe5, 0xc3, 0x2a, 0x7, 0x8d,
+0x6f, 0x6e, 0x35, 0x28, 0x55, 0x82, 0xdd, 0x75,
+0x5b, 0xab, 0x8e, 0xfe, 0x2a, 0x42, 0x3f, 0xd2,
+
+0x15, 0x50, 0xd8, 0xf6, 0x51, 0xc2, 0xf3, 0x9f,
+0x4, 0xca, 0xb5, 0x5e, 0x8b, 0x4f, 0xc1, 0x2b,
+0x6a, 0x19, 0x99, 0x32, 0x57, 0x88, 0xf5, 0xbf,
+0x9c, 0x20, 0x37, 0x70, 0x29, 0x35, 0x8a, 0x5c,
+0x74, 0x3c, 0x72, 0xe9, 0x47, 0x31, 0x2d, 0xd2,
+0x23, 0xa5, 0x5b, 0xbb, 0x5, 0x36, 0x62, 0x57,
+0x60, 0x98, 0xb6, 0x75, 0xc, 0x5a, 0xa8, 0x9b,
+0x32, 0x47, 0xe6, 0x7e, 0x18, 0x67, 0xe6, 0x35,
+0x8, 0x96, 0x14, 0x94, 0xd3, 0x86, 0xae, 0x25,
+0x13, 0x66, 0xf0, 0xee, 0x6, 0x1b, 0x6e, 0x37,
+0xba, 0xcd, 0x96, 0xa7, 0x35, 0x5c, 0x5b, 0xdd,
+0x83, 0xdc, 0xb8, 0xa1, 0x22, 0x38, 0x66, 0x8c,
+0xeb, 0xcd, 0x62, 0x9a, 0xc4, 0xf1, 0xc2, 0x4e,
+0x2a, 0xf6, 0x5, 0x94, 0xfe, 0xa5, 0x33, 0xd7,
+0xca, 0x59, 0x95, 0x72, 0xf1, 0x77, 0xe9, 0x48,
+0x11, 0xe5, 0x78, 0x7a, 0x89, 0x98, 0xab, 0x1d,
+
+0x9d, 0x9e, 0xb0, 0x78, 0x78, 0xa4, 0xf, 0x23,
+0xe9, 0x68, 0xb5, 0x63, 0xa, 0x59, 0x9e, 0xb7,
+0xed, 0x92, 0x46, 0xf3, 0x52, 0x4b, 0x3b, 0x38,
+0xec, 0xeb, 0x4a, 0xcd, 0xb5, 0x61, 0xf1, 0xc0,
+0xe, 0xc8, 0x99, 0xc6, 0x8f, 0xfa, 0x7b, 0xcf,
+0x4a, 0x58, 0xa5, 0x58, 0x51, 0x88, 0xe9, 0xe2,
+0xb9, 0xbe, 0x2f, 0x9b, 0xa4, 0x4c, 0x16, 0x1b,
+0xbe, 0x9e, 0xc6, 0x55, 0xd9, 0xe9, 0x2c, 0x77,
+0x28, 0xdc, 0x7c, 0x35, 0x19, 0x3c, 0x19, 0x40,
+0x6c, 0x6b, 0x28, 0x77, 0x37, 0x98, 0x15, 0x7f,
+0xa8, 0xe9, 0x3e, 0x99, 0x66, 0xed, 0x7a, 0xe6,
+0x79, 0x7c, 0xf9, 0x27, 0x75, 0x9, 0xb9, 0xc0,
+0xd8, 0x88, 0xc2, 0xff, 0x79, 0x90, 0x4e, 0x1d,
+0x61, 0x5c, 0x88, 0x81, 0x2, 0xbf, 0x4b, 0x2d,
+0x2f, 0x18, 0x2a, 0xfb, 0x4, 0x5c, 0x1c, 0x17,
+0xae, 0xd4, 0x6e, 0x97, 0x44, 0x61, 0xfd, 0x95,
+
+0x23, 0x91, 0x6e, 0xe5, 0x8a, 0xc4, 0x97, 0x21,
+0xc9, 0x21, 0x6, 0x8d, 0xa3, 0xbe, 0x7f, 0x7a,
+0xf5, 0xf8, 0x68, 0x86, 0xa, 0xc6, 0xf4, 0x57,
+0x3e, 0x3f, 0xed, 0x48, 0xa1, 0xdf, 0xec, 0x77,
+0x78, 0x82, 0x82, 0x7, 0xf4, 0x58, 0xd8, 0x9a,
+0x8a, 0x52, 0x57, 0x69, 0x69, 0x2b, 0x9c, 0xf9,
+0x85, 0x94, 0x53, 0x78, 0x2c, 0xa2, 0x21, 0x12,
+0xc4, 0x50, 0xfe, 0xd3, 0x7d, 0x89, 0xf, 0x5f,
+0x4c, 0xa5, 0xbc, 0x1d, 0x74, 0x99, 0xc7, 0x86,
+0xc5, 0xbd, 0x25, 0xc0, 0xa1, 0x2, 0x99, 0xa4,
+0xa8, 0xdf, 0x41, 0x9e, 0xed, 0xa9, 0x71, 0x0,
+0x7f, 0xc7, 0x81, 0xd4, 0xbf, 0x70, 0xf6, 0x59,
+0x77, 0x29, 0x44, 0x86, 0xae, 0xa9, 0xa, 0x3f,
+0xc6, 0x7a, 0x4e, 0xe6, 0x5, 0x8c, 0x0, 0x6d,
+0x4d, 0xc4, 0x82, 0xfc, 0x41, 0x3f, 0x11, 0xcb,
+0x90, 0x9c, 0xee, 0xdf, 0x2, 0xc3, 0x26, 0xa2,
+
+0x32, 0x2e, 0xff, 0x9d, 0xa5, 0x5a, 0xee, 0xff,
+0x5d, 0x42, 0xf2, 0x8b, 0xf1, 0xb6, 0x46, 0xe8,
+0x93, 0x21, 0x8a, 0x1f, 0xc, 0x1d, 0x5e, 0x63,
+0x36, 0xd0, 0x45, 0x22, 0x24, 0x74, 0x38, 0x5b,
+0x5e, 0x22, 0xcd, 0xe4, 0x37, 0xa1, 0x9c, 0xe0,
+0x34, 0xf7, 0x78, 0x5e, 0x79, 0x98, 0x56, 0xe8,
+0xe5, 0xd5, 0x49, 0x1f, 0x1b, 0x3c, 0xf5, 0x8f,
+0xd4, 0xa1, 0x8d, 0x4a, 0x4b, 0x71, 0xa, 0xb4,
+0x4e, 0xde, 0x7e, 0x45, 0xa2, 0x59, 0xb3, 0x5,
+0x82, 0xfb, 0x2, 0x23, 0xfe, 0x60, 0xf8, 0xec,
+0xb7, 0xc7, 0xff, 0x23, 0x7e, 0xee, 0xc5, 0x60,
+0xf, 0x7b, 0xc6, 0xb6, 0x90, 0x9c, 0x90, 0x67,
+0xf9, 0x8c, 0x3, 0xf, 0x2a, 0x91, 0xfc, 0x57,
+0x91, 0x1c, 0x77, 0xf4, 0xdd, 0xe7, 0x83, 0x68,
+0x3, 0xf, 0x9b, 0xfd, 0x7a, 0xf0, 0x9a, 0xfc,
+0x13, 0xe0, 0xae, 0x11, 0x26, 0xfe, 0x5f, 0xab,
+
+0xb0, 0xe, 0x1a, 0xa7, 0x1, 0x3d, 0xfa, 0xd4,
+0xc2, 0x96, 0xce, 0x18, 0x53, 0x5f, 0x82, 0xe4,
+0x30, 0x91, 0x9, 0x6, 0x68, 0xf, 0x94, 0x20,
+0xb0, 0x58, 0x65, 0x8, 0xb5, 0xce, 0x69, 0x34,
+0x5, 0x6c, 0x3, 0xea, 0x92, 0x96, 0xa9, 0xf0,
+0x23, 0xb4, 0x93, 0xbc, 0xf8, 0x99, 0xd6, 0xda,
+0x97, 0x3e, 0xea, 0x92, 0x70, 0x9b, 0x7a, 0xc6,
+0x8c, 0xaf, 0x69, 0x3e, 0x5b, 0x5a, 0xd9, 0x59,
+0x4a, 0x59, 0xa5, 0xbe, 0x29, 0xf1, 0x79, 0x79,
+0x56, 0x2d, 0x92, 0x7e, 0x56, 0xe9, 0x56, 0x8b,
+0x71, 0xac, 0xf7, 0xe9, 0xc1, 0x59, 0x28, 0xe1,
+0x3f, 0x96, 0x4d, 0x28, 0xc6, 0x83, 0xbf, 0xf3,
+0xb, 0x8, 0x26, 0x39, 0x90, 0x22, 0x1e, 0x93,
+0xb2, 0x50, 0xa4, 0x4e, 0xa6, 0xcb, 0xa, 0x28,
+0xa7, 0xb9, 0xe5, 0x1a, 0x84, 0x8d, 0x98, 0xc1,
+0x8f, 0x7d, 0xc5, 0xe3, 0xea, 0xe6, 0x16, 0x83,
+
+0xed, 0xfc, 0x46, 0x11, 0x79, 0x69, 0xbe, 0x73,
+0x6e, 0x86, 0xa0, 0x58, 0x7, 0x14, 0x8, 0x92,
+0x9e, 0x26, 0x3, 0x72, 0xb1, 0x5b, 0x85, 0x5c,
+0x1f, 0x96, 0xfb, 0x59, 0x52, 0x48, 0x99, 0x7d,
+0x34, 0xd6, 0x68, 0x62, 0x3, 0xf3, 0x65, 0xcf,
+0x64, 0x78, 0x50, 0xc3, 0xe5, 0xbb, 0x57, 0x4e,
+0xc1, 0xce, 0xdf, 0x0, 0x63, 0x57, 0xd2, 0x6,
+0x75, 0x3d, 0x7b, 0x0, 0xa6, 0x7f, 0x88, 0x1c,
+0x96, 0x47, 0x7, 0xa3, 0x9, 0x61, 0x79, 0xed,
+0x86, 0x1e, 0xd9, 0xc2, 0xf0, 0x73, 0x6, 0x2b,
+0x74, 0x57, 0x5f, 0x5c, 0xea, 0xfc, 0x1a, 0xdf,
+0x67, 0x98, 0xa4, 0x72, 0x3f, 0x73, 0x10, 0x8a,
+0x9b, 0xd1, 0xbf, 0x8e, 0x22, 0x5b, 0x7d, 0x1e,
+0xc6, 0x8a, 0x9b, 0x6b, 0xbd, 0xdb, 0x43, 0x33,
+0xfb, 0x30, 0xf2, 0x24, 0xda, 0x2f, 0x54, 0xea,
+0xfc, 0xcc, 0x9, 0x98, 0x31, 0xc7, 0xfd, 0x3a,
+
+0xf1, 0xea, 0x2c, 0xbc, 0x2d, 0xfe, 0xfd, 0xb1,
+0x86, 0x1c, 0x3, 0x10, 0x59, 0xa5, 0x66, 0x5c,
+0xc2, 0x5e, 0x94, 0x23, 0x12, 0x3d, 0x52, 0x75,
+0x95, 0x5b, 0xa2, 0xaf, 0xf0, 0x11, 0x83, 0x9a,
+0x4, 0x96, 0xba, 0xaa, 0x6f, 0x5c, 0x26, 0x15,
+0x43, 0xd4, 0xc5, 0xbc, 0x74, 0xa9, 0xbf, 0xd8,
+0x5e, 0x92, 0x55, 0xa, 0x2e, 0xb6, 0xcf, 0xe6,
+0x6f, 0x11, 0x44, 0xf3, 0x39, 0x32, 0x69, 0xc8,
+0xe1, 0x74, 0x50, 0x34, 0x62, 0x14, 0x20, 0xd3,
+0xc2, 0xc8, 0x9c, 0x4e, 0x58, 0xb, 0xad, 0x7c,
+0xc0, 0xf5, 0xe8, 0xfe, 0x35, 0xd5, 0x2b, 0xb0,
+0x24, 0x83, 0x77, 0x1d, 0x69, 0x7a, 0x29, 0xd8,
+0x3c, 0x4d, 0xdf, 0xe5, 0x5b, 0x4c, 0xc5, 0x86,
+0xf2, 0xf8, 0x6b, 0x4e, 0x44, 0xad, 0xae, 0x92,
+0xa5, 0x24, 0xdd, 0x54, 0x66, 0x75, 0x83, 0x4a,
+0x89, 0xea, 0xc6, 0xef, 0xc6, 0xfb, 0xbd, 0x85,
+
+0xf8, 0x5b, 0xa, 0xc1, 0xf2, 0x3d, 0xbc, 0x3c,
+0xb7, 0x59, 0x5d, 0xbf, 0xac, 0x28, 0xd7, 0x99,
+0xbb, 0x95, 0x18, 0x98, 0x3d, 0xf6, 0xbd, 0x5a,
+0x35, 0xb2, 0x60, 0x97, 0x12, 0x8, 0xfd, 0x48,
+0xc, 0xfb, 0xf3, 0x9e, 0x6, 0x8, 0x22, 0xa5,
+0xa4, 0x92, 0xdb, 0xd4, 0x67, 0x85, 0xb2, 0x84,
+0x32, 0x6a, 0x45, 0xed, 0x5c, 0x63, 0x16, 0xe2,
+0xb1, 0x9b, 0xb9, 0x6a, 0x15, 0xd4, 0x53, 0x65,
+0xda, 0x4d, 0xac, 0xe7, 0xb7, 0x43, 0x2b, 0x1a,
+0x0, 0xaa, 0x62, 0xfd, 0xc, 0x3e, 0xed, 0xcc,
+0xb8, 0x25, 0x4d, 0x61, 0x12, 0xe5, 0xf6, 0x4c,
+0x79, 0xe, 0x7e, 0xe4, 0x88, 0x32, 0xf9, 0x88,
+0xd2, 0xd0, 0xd2, 0xf7, 0x83, 0xb0, 0xa3, 0xc1,
+0xf0, 0x1e, 0x43, 0x8c, 0x1b, 0xc5, 0xc0, 0xf7,
+0x39, 0x5d, 0x8, 0x79, 0xf6, 0xb1, 0x59, 0x33,
+0x94, 0xcd, 0xee, 0xcd, 0xd, 0x13, 0x11, 0xbd,
+
+0xba, 0x7b, 0x86, 0x3d, 0x31, 0x42, 0x89, 0xe1,
+0xde, 0xf9, 0xc0, 0x79, 0x94, 0x8, 0x93, 0xc3,
+0x45, 0xd5, 0xba, 0x55, 0x77, 0x66, 0x56, 0xce,
+0xdc, 0xbc, 0x50, 0x96, 0x49, 0xe2, 0xd1, 0xf9,
+0x20, 0xc1, 0x88, 0x8f, 0xe0, 0xd3, 0xaf, 0xc1,
+0xe4, 0xdf, 0x7c, 0xa2, 0xce, 0x92, 0xd1, 0x1e,
+0xd1, 0xbb, 0xe0, 0x26, 0xaf, 0x1f, 0x36, 0x40,
+0x8c, 0x22, 0xca, 0xe1, 0xe, 0x2f, 0x5d, 0x90,
+0x5a, 0x9b, 0x88, 0x91, 0x1f, 0x35, 0x74, 0xd6,
+0x13, 0x6f, 0xd1, 0xfe, 0xf6, 0x4, 0x80, 0xba,
+0x15, 0x27, 0x12, 0x27, 0x6a, 0x6, 0xf2, 0x94,
+0xeb, 0xd6, 0xf3, 0x1d, 0x89, 0x2f, 0xac, 0xb0,
+0x68, 0x2e, 0x8a, 0x51, 0x3d, 0x4e, 0xfc, 0xf6,
+0x6f, 0xc2, 0x24, 0x36, 0x0, 0x1, 0x34, 0xd6,
+0xa6, 0x35, 0x7b, 0x4b, 0xd1, 0x4a, 0x3f, 0xd1,
+0x8b, 0x44, 0xb, 0xe1, 0xe6, 0x35, 0x22, 0xdf,
+
+0x80, 0x71, 0xf1, 0xef, 0x8d, 0x26, 0x7e, 0x30,
+0x4e, 0x47, 0xde, 0xcf, 0x64, 0xdd, 0x28, 0xbe,
+0x1b, 0xbf, 0x95, 0x1b, 0x54, 0xda, 0x36, 0xad,
+0xf0, 0x9b, 0x92, 0x9e, 0x35, 0x74, 0x93, 0xd0,
+0x14, 0x8, 0x82, 0xfe, 0x29, 0xd7, 0xa1, 0x50,
+0x3, 0xc2, 0x21, 0xf3, 0x20, 0xa8, 0x53, 0x32,
+0xd9, 0x23, 0x6d, 0x9e, 0x9c, 0xb8, 0x93, 0x9a,
+0x8c, 0xb3, 0xa3, 0x69, 0xa6, 0x33, 0xba, 0x92,
+0x8, 0x96, 0xc5, 0x84, 0x89, 0x94, 0x2c, 0x81,
+0x3e, 0xe2, 0xd9, 0x57, 0x63, 0x8a, 0x89, 0x78,
+0x14, 0x17, 0x46, 0xac, 0x26, 0x21, 0x8f, 0xb,
+0x7, 0x4d, 0x5f, 0xff, 0xc1, 0xa5, 0xad, 0xbd,
+0xf2, 0x62, 0x79, 0x59, 0x56, 0x9a, 0x94, 0xd5,
+0xfe, 0x50, 0xba, 0xba, 0x6f, 0xd7, 0xb, 0xf,
+0xea, 0x9e, 0x49, 0xbb, 0x4, 0x5f, 0x2b, 0x3c,
+0x81, 0xe0, 0xab, 0xcb, 0xa6, 0x64, 0x7a, 0x2b,
+
+0x89, 0xfd, 0x2b, 0x3e, 0x3b, 0xc4, 0x15, 0x91,
+0x6c, 0x10, 0x47, 0x4a, 0xd4, 0x8d, 0xde, 0x36,
+0x3f, 0xbf, 0x3e, 0x70, 0xb3, 0x83, 0xb, 0x13,
+0xf2, 0x73, 0xa7, 0xe6, 0xfb, 0xc5, 0x4f, 0xbc,
+0xe, 0xc8, 0xc, 0xee, 0x61, 0x7b, 0x71, 0xce,
+0x29, 0xb9, 0xa6, 0xb8, 0xee, 0xbc, 0x27, 0x76,
+0x4a, 0x60, 0x2d, 0x11, 0xf, 0x64, 0x8c, 0x7,
+0x27, 0x6, 0xd8, 0x4e, 0x75, 0xeb, 0x98, 0x10,
+0x86, 0x49, 0x6c, 0x2d, 0x5f, 0xc, 0x15, 0xb0,
+0x35, 0x37, 0x29, 0xe5, 0xbd, 0xa9, 0xba, 0xea,
+0x3e, 0x4d, 0xc7, 0xd0, 0xdd, 0x1c, 0x57, 0x17,
+0xe5, 0xb7, 0x16, 0x46, 0x70, 0x1e, 0x47, 0x75,
+0x29, 0x2c, 0xd, 0x39, 0x85, 0xe8, 0xdf, 0xad,
+0x74, 0x2e, 0xf1, 0xda, 0x63, 0x9, 0xdc, 0x32,
+0xb8, 0x99, 0x66, 0xb1, 0x0, 0xc, 0x81, 0x5d,
+0x6f, 0x2b, 0xd4, 0xb4, 0xbf, 0xbc, 0x70, 0x3e,
+
+0x2c, 0xef, 0xd7, 0x19, 0xac, 0x86, 0x1e, 0xbc,
+0x99, 0xf9, 0xe, 0x18, 0xb1, 0x5b, 0x6, 0x22,
+0x67, 0xcb, 0x1a, 0x81, 0xb6, 0x96, 0x53, 0xf,
+0x31, 0xb5, 0x1d, 0x6c, 0xd2, 0x4a, 0xf8, 0x4b,
+0x3b, 0x8a, 0x4c, 0x30, 0x4e, 0x3c, 0xde, 0xc9,
+0x14, 0x63, 0x5a, 0xe1, 0x32, 0x4a, 0x66, 0x88,
+0x67, 0x93, 0x7c, 0xf9, 0xbe, 0x5d, 0x84, 0x4,
+0x28, 0x56, 0x21, 0xd4, 0x33, 0x6, 0x79, 0x30,
+0xd5, 0x17, 0xd5, 0x30, 0x63, 0x7c, 0x23, 0x67,
+0x3d, 0x30, 0x66, 0x63, 0x5d, 0xd9, 0xde, 0x20,
+0xd9, 0xfa, 0xcc, 0x13, 0x5c, 0x45, 0xef, 0xd8,
+0x83, 0xdd, 0xeb, 0x7e, 0xe2, 0x13, 0x1a, 0x74,
+0xe4, 0xad, 0x46, 0xfa, 0x33, 0x7, 0xe2, 0xa7,
+0x57, 0xf5, 0x86, 0xa1, 0xe6, 0xce, 0x12, 0x5b,
+0x21, 0xff, 0x43, 0x3d, 0x70, 0xf1, 0x59, 0x4b,
+0x53, 0x1c, 0xf, 0x56, 0x5e, 0xc0, 0x78, 0xd7,
+
+0x30, 0x32, 0xbe, 0xcb, 0xdf, 0x3c, 0xce, 0xb5,
+0xbe, 0x2e, 0x6c, 0x52, 0xd2, 0x74, 0x7e, 0x2e,
+0x84, 0x65, 0xcb, 0xfd, 0x90, 0x43, 0x60, 0x10,
+0x88, 0xa1, 0x4f, 0x63, 0xa1, 0x54, 0x7d, 0xbe,
+0x5e, 0x40, 0xbf, 0x7a, 0x77, 0x6d, 0xa, 0xca,
+0xa4, 0xaf, 0xbc, 0xe7, 0xe3, 0x85, 0xa7, 0x9c,
+0xcd, 0x2a, 0xde, 0xdc, 0xce, 0x29, 0x61, 0x0,
+0x9e, 0x89, 0x5, 0xf4, 0xf3, 0x6f, 0xb8, 0x3b,
+0xf6, 0x8c, 0x58, 0xd3, 0x43, 0x96, 0x10, 0x23,
+0x5a, 0xff, 0x3b, 0xc7, 0x7, 0x81, 0xdf, 0x53,
+0xda, 0x5e, 0x26, 0x82, 0xe3, 0xe7, 0xb0, 0xd9,
+0xca, 0x56, 0x71, 0xc6, 0x5, 0x1c, 0x9b, 0x7a,
+0x8e, 0x11, 0x16, 0xfd, 0x5e, 0x22, 0x9a, 0xd7,
+0x9e, 0x5e, 0x43, 0x8f, 0x8f, 0xe0, 0x2a, 0x7d,
+0xc0, 0x21, 0xc4, 0xf3, 0x3b, 0x42, 0xb, 0x44,
+0x7b, 0xac, 0x24, 0xf, 0x8b, 0x4c, 0x65, 0xd5,
+
+0xdf, 0x8f, 0x1, 0xec, 0xe, 0xa9, 0x96, 0x5f,
+0x91, 0x94, 0x83, 0x69, 0x8f, 0x9, 0xfb, 0x59,
+0x6, 0xa9, 0xd6, 0xa0, 0xa3, 0x8b, 0xb2, 0xb1,
+0xc8, 0xcd, 0xc1, 0xb1, 0xdf, 0xb0, 0x50, 0x80,
+0x6b, 0xed, 0x99, 0x37, 0x3b, 0x69, 0x36, 0x9c,
+0xd2, 0xc6, 0xb0, 0x44, 0x3f, 0x89, 0x4, 0x15,
+0x6a, 0xe1, 0xde, 0xd, 0x8c, 0x27, 0x81, 0x9b,
+0xb9, 0xcf, 0xdc, 0x8c, 0x9a, 0xdd, 0xf0, 0x8e,
+0xed, 0x6c, 0xe4, 0xfa, 0x11, 0xbf, 0xef, 0x54,
+0x83, 0xed, 0x8, 0xf1, 0x9a, 0x5a, 0x1f, 0xf,
+0xf6, 0xa0, 0xd4, 0xd6, 0x1d, 0x0, 0xca, 0x93,
+0x8d, 0x33, 0x15, 0x93, 0x38, 0x2f, 0x24, 0xed,
+0xd0, 0xe7, 0x16, 0x50, 0x9c, 0xf, 0x82, 0x6f,
+0xf1, 0xd1, 0x10, 0x24, 0xbc, 0x21, 0x41, 0x26,
+0x2d, 0x2b, 0xa8, 0xce, 0x34, 0xe4, 0x7c, 0x55,
+0x2c, 0x8b, 0x30, 0xa2, 0xbe, 0x5b, 0x47, 0xa3,
+
+0x1d, 0xa0, 0xf4, 0xc, 0xa4, 0xf8, 0x4c, 0x5f,
+0x9a, 0x97, 0xda, 0xca, 0x11, 0x5d, 0x78, 0xef,
+0x4e, 0x97, 0x71, 0xc5, 0xd7, 0x48, 0xa8, 0x68,
+0x3e, 0xfc, 0x6f, 0xc2, 0x29, 0x2f, 0x62, 0x80,
+0x72, 0x58, 0xbf, 0x54, 0xc1, 0x86, 0x23, 0x11,
+0xa2, 0x49, 0xa3, 0xf7, 0x19, 0x1b, 0xd6, 0xb1,
+0x50, 0xca, 0x1c, 0x1a, 0x7f, 0xb7, 0xd4, 0x15,
+0xc8, 0x88, 0x11, 0xf2, 0xc1, 0x53, 0x3b, 0xac,
+0x2, 0xef, 0x3, 0x67, 0xea, 0x3d, 0x69, 0x40,
+0xa6, 0x76, 0xd7, 0x20, 0x8d, 0x9b, 0x94, 0x54,
+0x5f, 0x72, 0x32, 0xd9, 0x79, 0x22, 0xe, 0x63,
+0x0, 0x86, 0x5f, 0xba, 0x4, 0xf4, 0xd2, 0xb3,
+0xa, 0xbe, 0x23, 0x30, 0x9d, 0x44, 0x97, 0x50,
+0x83, 0x74, 0x45, 0x33, 0x12, 0x60, 0x1, 0xe2,
+0x95, 0x1b, 0x7e, 0xd, 0x78, 0x3f, 0xa0, 0x9d,
+0xe0, 0x72, 0xfa, 0x9a, 0x6a, 0xc3, 0x7e, 0x47,
+
+0x5f, 0x32, 0x87, 0x6c, 0x2d, 0x88, 0xd8, 0x57,
+0x9, 0x43, 0x81, 0xc5, 0x76, 0xe7, 0x67, 0x44,
+0x19, 0x41, 0xea, 0x76, 0xdc, 0xd5, 0xd6, 0x38,
+0x43, 0x59, 0xa4, 0xda, 0x13, 0xd1, 0x8f, 0xa0,
+0x42, 0x8f, 0xf9, 0x64, 0x2f, 0x5a, 0x3e, 0x9c,
+0xee, 0x22, 0x2d, 0xe0, 0xcf, 0x20, 0x89, 0x6,
+0x57, 0x1, 0x17, 0x51, 0x19, 0x7a, 0x1c, 0xb4,
+0x18, 0x21, 0xec, 0x88, 0xad, 0x96, 0xe4, 0xfa,
+0xa, 0x98, 0x94, 0xaa, 0x76, 0xe7, 0x8, 0x68,
+0x45, 0xdb, 0xa5, 0xc0, 0xb2, 0xab, 0xc1, 0x14,
+0x38, 0xf1, 0x3b, 0x43, 0xec, 0x7d, 0x5e, 0xe3,
+0xfa, 0x82, 0x2b, 0x23, 0xfe, 0x50, 0x3e, 0x7b,
+0x27, 0xed, 0x24, 0x5e, 0x9d, 0xa0, 0xf7, 0x67,
+0x3f, 0x3a, 0xc1, 0xdd, 0x9b, 0x79, 0xf4, 0x86,
+0xab, 0xac, 0x27, 0xb0, 0xbf, 0x6b, 0xa5, 0xd7,
+0x7a, 0x7, 0xc6, 0xb0, 0xfc, 0xa6, 0xf9, 0xbf,
+
+0x47, 0x3, 0xfc, 0x4, 0xc3, 0x71, 0xd5, 0xb0,
+0xaa, 0xe4, 0x3e, 0xe8, 0x5c, 0x36, 0xfa, 0x89,
+0x21, 0x94, 0xba, 0x7c, 0x16, 0xbf, 0x1e, 0xff,
+0xd0, 0x47, 0xd5, 0x2a, 0x98, 0x46, 0x2a, 0x60,
+0x42, 0x13, 0xdb, 0xca, 0xe1, 0x3a, 0xd, 0xaf,
+0x89, 0xf2, 0x7c, 0x99, 0x6b, 0xbe, 0xb4, 0xd6,
+0x58, 0x8a, 0xf2, 0x99, 0x2, 0x81, 0xc4, 0x1f,
+0x10, 0x8f, 0x7c, 0x81, 0xe4, 0x23, 0x9f, 0x25,
+0x96, 0x1, 0x26, 0x44, 0x4, 0xa3, 0xef, 0x45,
+0x8, 0x8b, 0x1e, 0x20, 0x67, 0x89, 0x9b, 0xea,
+0xd8, 0x59, 0x22, 0xa6, 0xe0, 0x5f, 0x5c, 0xde,
+0x45, 0x97, 0x52, 0xb5, 0x45, 0x76, 0xe2, 0x13,
+0xdd, 0x29, 0x9a, 0x77, 0x2f, 0xb8, 0xf, 0x83,
+0xb0, 0x73, 0x3d, 0x96, 0x1c, 0xe5, 0xfc, 0xc2,
+0x31, 0x24, 0x6f, 0xa5, 0x9, 0x1f, 0x9b, 0xc7,
+0x58, 0x80, 0x32, 0xd, 0x25, 0xd7, 0x42, 0x7f,
+
+0x8a, 0x55, 0x23, 0x5, 0x68, 0xe5, 0x4c, 0xb3,
+0x8d, 0x17, 0xb8, 0x4f, 0xe5, 0xaa, 0x91, 0x15,
+0x46, 0xb5, 0x96, 0x6c, 0x4, 0xac, 0x93, 0x93,
+0xe4, 0xa5, 0x48, 0x42, 0x50, 0x18, 0x1d, 0x84,
+0x5b, 0xd2, 0x79, 0xb1, 0x44, 0x7f, 0x92, 0x7,
+0x14, 0xc3, 0x87, 0x7c, 0x1a, 0x32, 0xa0, 0x32,
+0xd3, 0x79, 0xc1, 0x1d, 0xec, 0x86, 0x98, 0x4,
+0xd, 0x65, 0xb6, 0x40, 0x1d, 0x31, 0x73, 0xdd,
+0x8c, 0x91, 0x23, 0x99, 0x9a, 0xa6, 0x82, 0xad,
+0xf6, 0xd4, 0x74, 0x6, 0x46, 0x46, 0x97, 0x5,
+0x42, 0xcf, 0x82, 0x7e, 0xc8, 0x8c, 0x4, 0xdc,
+0xff, 0x99, 0x8b, 0xa0, 0x18, 0x8f, 0xff, 0x44,
+0xdf, 0x2f, 0x8c, 0xd3, 0x67, 0x7b, 0x87, 0x8a,
+0xf4, 0xd, 0xe1, 0x5d, 0x70, 0xcc, 0x42, 0x69,
+0xa9, 0xb5, 0xff, 0x33, 0xac, 0xfe, 0xf6, 0x69,
+0xc1, 0x1f, 0xa5, 0x8d, 0x76, 0x0, 0xc7, 0xee,
+
+0xd7, 0xa5, 0x87, 0x51, 0xe0, 0x70, 0xf, 0x6d,
+0xf7, 0x3c, 0x72, 0x1e, 0x7, 0xd, 0xa, 0xa1,
+0x64, 0xce, 0xd7, 0x1c, 0xfb, 0xc, 0xd1, 0x53,
+0xb2, 0x39, 0xeb, 0x50, 0x59, 0x64, 0x8, 0x76,
+0x73, 0x56, 0x31, 0xf8, 0x24, 0xfd, 0x64, 0x8,
+0xbf, 0xb3, 0x3, 0xcf, 0x86, 0x80, 0xf1, 0x5a,
+0xa0, 0x79, 0x12, 0xe4, 0x80, 0x85, 0x52, 0x76,
+0x2f, 0xd9, 0x52, 0x16, 0x1a, 0xbb, 0x7e, 0x65,
+0x52, 0x65, 0x5e, 0xd, 0x85, 0x17, 0x2f, 0x2e,
+0x41, 0xc, 0x48, 0xe7, 0x19, 0x51, 0x3e, 0x6e,
+0x88, 0x22, 0xf, 0xb4, 0xfb, 0x30, 0x70, 0xf7,
+0x77, 0xa9, 0xd6, 0x90, 0xcd, 0x1b, 0x9b, 0x6b,
+0x28, 0x35, 0x9c, 0x36, 0xbf, 0xd4, 0x6f, 0xb7,
+0xd0, 0xc2, 0x29, 0x14, 0x22, 0xdf, 0x72, 0xc7,
+0x6e, 0x60, 0x34, 0xca, 0xe, 0x46, 0x14, 0xf1,
+0x54, 0x3e, 0x25, 0x49, 0x7c, 0x42, 0x3e, 0x38,
+
+0x7b, 0x17, 0x81, 0xf6, 0x4c, 0xf3, 0x84, 0x2,
+0x8e, 0x2c, 0xe7, 0x62, 0xa, 0x82, 0xbc, 0xb6,
+0x8f, 0x77, 0x3a, 0x1, 0x30, 0x77, 0xc5, 0xbf,
+0x58, 0x43, 0xcd, 0xfc, 0xfd, 0xba, 0x9, 0xe1,
+0x65, 0x5, 0xe5, 0x8f, 0xad, 0x64, 0x9f, 0xe7,
+0x5d, 0xa9, 0xb2, 0x6a, 0x7d, 0xca, 0xbd, 0x29,
+0xd0, 0xfe, 0xba, 0xac, 0xad, 0x46, 0xca, 0xa5,
+0xfe, 0xf0, 0x38, 0xef, 0x73, 0x0, 0x3a, 0x94,
+0xbb, 0x69, 0xcc, 0x7c, 0xdb, 0x4d, 0x83, 0xe8,
+0x7b, 0x4b, 0x2e, 0xd1, 0x37, 0xe3, 0x5b, 0x79,
+0xd, 0x1, 0x9c, 0x17, 0xe5, 0x88, 0x48, 0x65,
+0x1f, 0x9d, 0xc0, 0x2d, 0xe5, 0xcf, 0x56, 0x2f,
+0xac, 0x74, 0xf3, 0x23, 0xd, 0x51, 0x4e, 0x66,
+0x22, 0x3e, 0xa7, 0x39, 0xcc, 0xe2, 0xef, 0x1d,
+0xd2, 0x80, 0x35, 0x5b, 0xec, 0x5c, 0xe9, 0xf8,
+0xb7, 0x70, 0x5c, 0xf1, 0x9a, 0x6e, 0xfa, 0xda,
+
+0x0, 0xeb, 0x6a, 0x69, 0xfd, 0x26, 0x7d, 0xbb,
+0xcd, 0xc, 0x62, 0xa, 0x90, 0x3d, 0x9c, 0x37,
+0xfa, 0x9a, 0x84, 0x9e, 0x93, 0xac, 0xc4, 0xb9,
+0x32, 0x2d, 0xf5, 0x69, 0x27, 0x35, 0x86, 0x2,
+0x56, 0xbd, 0x85, 0x22, 0x54, 0x87, 0xf6, 0x77,
+0xfa, 0xc9, 0x62, 0xfb, 0xd3, 0x6f, 0x8f, 0x3,
+0x0, 0x56, 0x30, 0x6e, 0xc7, 0xd7, 0xd1, 0xd0,
+0x45, 0x6f, 0xe8, 0xcd, 0x8b, 0xbc, 0x81, 0xd0,
+0x3a, 0x1, 0x7, 0x85, 0x6d, 0x3b, 0xb0, 0x42,
+0x6c, 0xa2, 0x54, 0xeb, 0x5b, 0x60, 0x59, 0xa1,
+0x70, 0x34, 0x86, 0x1d, 0xb1, 0xba, 0xfb, 0x28,
+0x29, 0x73, 0xb, 0xa8, 0xb3, 0x31, 0x42, 0x4e,
+0xa6, 0x23, 0xee, 0x1e, 0x34, 0x8d, 0x8f, 0xc8,
+0xf3, 0x5b, 0xcd, 0x8e, 0x64, 0x15, 0x2e, 0xa1,
+0x81, 0x12, 0xad, 0x13, 0x8d, 0x8, 0x68, 0xe8,
+0xe2, 0xf2, 0xf4, 0xc4, 0x2a, 0x73, 0x30, 0x9b,
+
+0xb0, 0x12, 0x3b, 0x5e, 0xd0, 0x7a, 0x6c, 0x93,
+0x6f, 0x7c, 0x3f, 0xe4, 0x2c, 0xb2, 0x61, 0xb1,
+0xe1, 0xc4, 0x61, 0xfa, 0x9b, 0x92, 0xe, 0xe3,
+0x27, 0x85, 0x9c, 0xb6, 0xa2, 0x54, 0x62, 0x38,
+0x4a, 0xb8, 0x72, 0x8, 0xa3, 0xd8, 0x8d, 0xa1,
+0xef, 0x20, 0x75, 0x46, 0x76, 0xba, 0xae, 0x40,
+0x68, 0x14, 0x49, 0xd9, 0xfc, 0x2, 0x42, 0xca,
+0x83, 0xb2, 0x2b, 0xb6, 0x34, 0x58, 0x80, 0x26,
+0x82, 0xe8, 0xbe, 0x17, 0xe7, 0x26, 0xab, 0x11,
+0xc0, 0xea, 0xb0, 0x5b, 0x19, 0xef, 0xea, 0x61,
+0x9d, 0xe6, 0xa9, 0x82, 0xf1, 0xa0, 0xe6, 0xb3,
+0xda, 0xaf, 0xd2, 0xcf, 0x41, 0x8c, 0x32, 0xd4,
+0xa, 0xf0, 0xd2, 0xca, 0xe6, 0x41, 0x3d, 0x41,
+0x29, 0x93, 0x96, 0x39, 0x87, 0x5b, 0x85, 0x1f,
+0x61, 0xd8, 0x63, 0x45, 0xee, 0x4c, 0x2e, 0x42,
+0x4b, 0x7c, 0xa7, 0xe4, 0x20, 0xf6, 0x37, 0x63,
+
+0xfe, 0xb1, 0x28, 0xb9, 0xf0, 0x76, 0x30, 0xe7,
+0xce, 0x9e, 0xf6, 0xe9, 0x65, 0x5d, 0xcc, 0x20,
+0x70, 0xd8, 0x70, 0x3d, 0x87, 0x24, 0xa2, 0x56,
+0xc4, 0x93, 0xd3, 0xaa, 0xd0, 0xd6, 0x5c, 0x3d,
+0xd, 0xfc, 0x49, 0x61, 0x23, 0x94, 0x2c, 0x22,
+0xc3, 0x7e, 0xdc, 0xf7, 0x3f, 0x2, 0xcc, 0x2c,
+0xd2, 0xe0, 0x77, 0xc4, 0xda, 0xd2, 0x99, 0xe6,
+0x9, 0x6b, 0x60, 0x65, 0x82, 0x38, 0x7b, 0x60,
+0x53, 0x30, 0xc2, 0xb7, 0xd4, 0xe3, 0xec, 0xb0,
+0xc4, 0x50, 0x41, 0xcc, 0xe7, 0xa4, 0x3f, 0xed,
+0xc0, 0x27, 0x2b, 0xc4, 0x17, 0xb7, 0x98, 0x7f,
+0xcc, 0xe9, 0xb0, 0xfd, 0x1e, 0x9, 0x49, 0x20,
+0x88, 0x9e, 0x2d, 0xa6, 0x9, 0x32, 0x42, 0xc7,
+0x21, 0x2a, 0x85, 0x84, 0x42, 0xd8, 0x2d, 0x94,
+0x6b, 0x18, 0x45, 0x46, 0xd8, 0x69, 0xee, 0xff,
+0x15, 0xfb, 0x20, 0x4d, 0x6, 0xce, 0xf, 0x14,
+
+0x6c, 0x8d, 0xf3, 0xd, 0x53, 0x39, 0x80, 0x8,
+0x4f, 0x41, 0xe9, 0xe9, 0xae, 0x97, 0x1c, 0x53,
+0xae, 0x21, 0x1e, 0x99, 0xf8, 0x98, 0xe9, 0x6a,
+0xa0, 0x1f, 0x93, 0xd1, 0xd2, 0x5f, 0xb8, 0x26,
+0x25, 0x82, 0x34, 0xa9, 0x2a, 0xa7, 0xe7, 0x53,
+0x48, 0x37, 0x3e, 0x4f, 0x3d, 0xa9, 0x11, 0x28,
+0x4f, 0xa6, 0x1f, 0x34, 0xf4, 0x62, 0x44, 0x3c,
+0xf6, 0xe6, 0x84, 0xf9, 0xd, 0x59, 0x82, 0xc3,
+0xb1, 0x7f, 0x36, 0x6c, 0x95, 0x1a, 0x8e, 0x55,
+0x5c, 0x95, 0x53, 0xfe, 0xb0, 0x2c, 0xc7, 0xd,
+0xfe, 0x1c, 0x4a, 0xc5, 0x85, 0xe4, 0x23, 0xb3,
+0x46, 0xaa, 0x17, 0xd9, 0x24, 0x6e, 0xf6, 0x6b,
+0x8e, 0x5d, 0x6c, 0x48, 0x1c, 0x61, 0x16, 0x6d,
+0x94, 0xf7, 0xc6, 0xf3, 0xb6, 0xde, 0xb2, 0x4d,
+0xee, 0x25, 0x1a, 0x45, 0xb8, 0xd5, 0xdf, 0x46,
+0xcd, 0xc7, 0x93, 0xfe, 0x49, 0xd0, 0xc9, 0x63,
+
+0xd3, 0x9a, 0x16, 0xee, 0x5a, 0x93, 0xd7, 0x63,
+0x89, 0x9a, 0x6a, 0x68, 0x45, 0xb0, 0x2, 0x49,
+0xac, 0xb2, 0x8e, 0x1e, 0xb5, 0x8d, 0x4e, 0x61,
+0xb, 0xab, 0x35, 0x9c, 0x84, 0x51, 0xca, 0x2,
+0x15, 0x7c, 0x2b, 0x8d, 0x34, 0x92, 0xc2, 0x29,
+0x6c, 0xa7, 0x64, 0x1b, 0xbe, 0x6e, 0x8c, 0x7c,
+0x8d, 0x16, 0x31, 0x3f, 0x66, 0x65, 0xf7, 0xf1,
+0x56, 0x7b, 0x89, 0x5e, 0x21, 0x6f, 0xd9, 0x64,
+0x5e, 0x87, 0x20, 0x18, 0xb0, 0x94, 0x28, 0x78,
+0x42, 0x3, 0x5f, 0x34, 0x59, 0xd8, 0x96, 0x53,
+0xd1, 0xef, 0x4, 0xbc, 0xfb, 0x3b, 0xce, 0x65,
+0x7d, 0x16, 0xad, 0x60, 0x7e, 0xf, 0x5a, 0x57,
+0x76, 0xfa, 0x5, 0x79, 0x85, 0xba, 0x96, 0xab,
+0x50, 0xd4, 0x1f, 0x49, 0x8, 0xdd, 0xfc, 0x8e,
+0xa9, 0xa1, 0x46, 0x96, 0x47, 0xbe, 0x94, 0x5b,
+0x78, 0xb1, 0x29, 0x35, 0x6e, 0x42, 0x62, 0xb7,
+
+0x39, 0xcc, 0xbd, 0x7d, 0xfa, 0xc5, 0xcf, 0x4b,
+0x17, 0x1, 0x9a, 0xaf, 0xca, 0xd, 0xb2, 0xe8,
+0x21, 0x6f, 0x15, 0xa5, 0x74, 0x47, 0xea, 0x19,
+0xe4, 0x5d, 0x95, 0x4b, 0x6c, 0xc3, 0x78, 0xad,
+0x2, 0x2b, 0xed, 0xb4, 0xc3, 0x4e, 0xd5, 0x8,
+0x9, 0xde, 0xf9, 0x59, 0x1, 0xf3, 0x4e, 0xf6,
+0xac, 0x6f, 0xb2, 0x44, 0xa4, 0xd6, 0x3f, 0x8c,
+0x48, 0xb7, 0xf0, 0xbb, 0xd7, 0xa5, 0xd5, 0xc9,
+0xfe, 0x6b, 0x77, 0xdd, 0x2d, 0xda, 0x97, 0xff,
+0x8e, 0xbc, 0xd6, 0x43, 0x40, 0xa2, 0x69, 0x6b,
+0x38, 0x13, 0x8d, 0x53, 0xd2, 0xe0, 0xc1, 0x5a,
+0xe1, 0x97, 0xdc, 0x6c, 0x6d, 0x46, 0xce, 0x5a,
+0x71, 0xa7, 0x98, 0xf2, 0x38, 0xa, 0x82, 0x9d,
+0xe4, 0x5, 0xa2, 0xe5, 0x16, 0xcc, 0xb1, 0x0,
+0x73, 0x7, 0x73, 0x21, 0xf2, 0x46, 0xf7, 0xb6,
+0xed, 0x9a, 0x81, 0x1c, 0xae, 0x19, 0x59, 0x76,
+
+0x79, 0xdc, 0x3b, 0x6f, 0x6b, 0x96, 0xfc, 0x1a,
+0x9, 0x6, 0x55, 0x8a, 0x8, 0xa2, 0x6, 0x8a,
+0x32, 0x6, 0x38, 0x3a, 0xba, 0xc9, 0x40, 0xc,
+0xb0, 0x9c, 0x9, 0x29, 0xe1, 0x7b, 0x9, 0xae,
+0x30, 0xb8, 0x21, 0xbf, 0x8a, 0x64, 0x89, 0x43,
+0x47, 0xd, 0xc4, 0xee, 0xfd, 0xec, 0x75, 0x61,
+0xe8, 0xf7, 0x4c, 0xd2, 0x4b, 0xdb, 0x58, 0x2d,
+0x8a, 0xd9, 0x4c, 0xe4, 0xc8, 0xf5, 0xe, 0x42,
+0x4b, 0x7d, 0xdd, 0xa1, 0xdb, 0xe3, 0x97, 0x4e,
+0x34, 0x19, 0xed, 0xab, 0xfa, 0x4f, 0xb3, 0x32,
+0xd9, 0x3a, 0x6, 0x44, 0x30, 0x70, 0xa8, 0x94,
+0x11, 0x37, 0xc2, 0x18, 0x1f, 0xb3, 0x38, 0x7f,
+0xf, 0xc5, 0xad, 0xfa, 0xfd, 0x76, 0x2e, 0x34,
+0xa9, 0x6d, 0x50, 0x80, 0xf3, 0x84, 0xd4, 0x6f,
+0xd6, 0x1c, 0x4d, 0x70, 0xcb, 0xe, 0xf6, 0x36,
+0x6a, 0xf3, 0xbb, 0x83, 0xc5, 0x4c, 0x9c, 0x6b,
+
+0x32, 0x41, 0x4d, 0x3e, 0xf, 0x84, 0x41, 0xe8,
+0xbe, 0x7e, 0x23, 0x4c, 0x5a, 0x71, 0x48, 0xe7,
+0xe7, 0x4a, 0xb3, 0x88, 0xee, 0xe4, 0x47, 0xd5,
+0xde, 0x56, 0x89, 0x1d, 0x2b, 0xc2, 0xcc, 0xb5,
+0x3, 0x4d, 0xcc, 0x9a, 0xa4, 0x3, 0x40, 0xce,
+0x1f, 0xbc, 0xb8, 0x9d, 0x2b, 0x88, 0x11, 0xda,
+0xe2, 0x6f, 0x66, 0x86, 0xeb, 0x68, 0x91, 0x2b,
+0xf9, 0x18, 0xc7, 0x67, 0x81, 0xfa, 0xf5, 0xee,
+0xf0, 0x21, 0x1a, 0x6b, 0xcb, 0x5d, 0xfc, 0x9a,
+0x64, 0xd3, 0x12, 0xe, 0xa1, 0x81, 0xfd, 0xec,
+0xe9, 0x6a, 0xb1, 0x20, 0x23, 0xd6, 0xfe, 0x77,
+0xc8, 0x99, 0x1b, 0x21, 0x1e, 0x8b, 0xc, 0x57,
+0x11, 0x6, 0xc9, 0x88, 0xbc, 0x92, 0xff, 0xa0,
+0xa4, 0x54, 0x45, 0xc5, 0x47, 0x2c, 0x81, 0x2a,
+0x32, 0x69, 0xfb, 0x2c, 0xa7, 0x99, 0x6f, 0x79,
+0x41, 0xf2, 0x22, 0xe9, 0x3b, 0x59, 0xa, 0x41,
+
+0xb7, 0x85, 0x32, 0xa9, 0xe0, 0x96, 0xcd, 0x1c,
+0xf7, 0x10, 0x94, 0xa0, 0xa6, 0x1, 0x66, 0x2b,
+0xf3, 0x9a, 0x82, 0x3d, 0x34, 0x20, 0xa9, 0x7a,
+0x1, 0xcb, 0x10, 0x91, 0x6b, 0xb0, 0x2a, 0xec,
+0x77, 0xb1, 0x35, 0x53, 0xe6, 0xc9, 0x42, 0xe9,
+0x59, 0xc2, 0xd8, 0x6, 0x3e, 0x50, 0xba, 0xe2,
+0xcf, 0xe0, 0x65, 0x5f, 0xde, 0x58, 0xc6, 0x22,
+0x6c, 0x16, 0x70, 0x96, 0x4c, 0x8c, 0xd1, 0xe2,
+0x4f, 0x82, 0x3a, 0x98, 0x6, 0x4e, 0x67, 0xae,
+0x9c, 0x0, 0x9f, 0x3f, 0x20, 0xa2, 0x7a, 0x69,
+0xc3, 0x7a, 0xd6, 0x73, 0xef, 0x5f, 0xf3, 0xb9,
+0xbd, 0x68, 0xe5, 0x9b, 0xeb, 0xdb, 0x1c, 0x1,
+0x83, 0x5, 0x48, 0x94, 0x63, 0x8e, 0xfb, 0x23,
+0x17, 0x66, 0xfc, 0xa0, 0x66, 0x26, 0x9d, 0x69,
+0xdb, 0xca, 0xef, 0x20, 0x3b, 0x41, 0x4e, 0x10,
+0x8d, 0x5c, 0x1a, 0x46, 0xef, 0x48, 0x13, 0xb7,
+
+0xfc, 0x1c, 0x63, 0xaf, 0x63, 0x54, 0x72, 0x88,
+0x46, 0xf0, 0xe6, 0x2d, 0x14, 0x7f, 0x3b, 0x8b,
+0xd0, 0x2c, 0xb0, 0x5d, 0x8f, 0x82, 0x33, 0x36,
+0x76, 0xa0, 0xa8, 0x2d, 0x8, 0x1a, 0x4e, 0xd1,
+0x34, 0xb8, 0xac, 0x3c, 0xe9, 0x75, 0x97, 0xa1,
+0x96, 0x36, 0xfe, 0xad, 0xcd, 0x9d, 0x7d, 0xc9,
+0xb6, 0x58, 0xbc, 0xa3, 0x1b, 0x47, 0xb, 0x87,
+0x4c, 0x3a, 0xae, 0x85, 0xb7, 0xd5, 0xb7, 0x94,
+0xc1, 0x2e, 0x39, 0x85, 0x74, 0x2e, 0xc1, 0x7f,
+0x7c, 0x81, 0xd6, 0x17, 0xbd, 0x7a, 0x4d, 0xb8,
+0x95, 0x8c, 0x4b, 0x9c, 0x8c, 0x33, 0x30, 0xc1,
+0x45, 0xf6, 0x2f, 0x74, 0xc6, 0x89, 0x24, 0x87,
+0x3a, 0xb6, 0x7d, 0x89, 0x13, 0x40, 0x1e, 0xf9,
+0x8a, 0xf8, 0xf1, 0xcd, 0x7, 0xc3, 0x29, 0x4e,
+0x1, 0xc4, 0x1f, 0xf9, 0x81, 0xca, 0x5e, 0x1,
+0xc8, 0xb3, 0xb7, 0xf6, 0x6d, 0x38, 0x31, 0x18,
+
+0x4f, 0xd, 0x10, 0x96, 0x61, 0xfc, 0x72, 0xce,
+0xc2, 0xbb, 0xfe, 0x11, 0xfa, 0xf4, 0x26, 0x54,
+0xf, 0x40, 0x26, 0xe0, 0x5, 0x93, 0xf8, 0xe9,
+0x7f, 0x7b, 0x44, 0x75, 0xeb, 0x30, 0xa7, 0xde,
+0x2f, 0xb3, 0x29, 0x93, 0x17, 0x8b, 0x19, 0x1a,
+0xcf, 0xf, 0xb9, 0xee, 0xb2, 0xbb, 0xc1, 0xf3,
+0x4, 0x7b, 0xb0, 0xd, 0xf5, 0x4a, 0x57, 0xdd,
+0xf5, 0xac, 0x9e, 0xf5, 0x97, 0x7e, 0x87, 0xbb,
+0x3b, 0xb5, 0x8e, 0x53, 0xc7, 0x81, 0x9, 0xa3,
+0x12, 0x8a, 0x42, 0x2b, 0xa, 0x7a, 0xfc, 0x1f,
+0xba, 0x4b, 0xab, 0xe9, 0xe8, 0x21, 0xda, 0xae,
+0x33, 0x47, 0xd9, 0x1b, 0x44, 0x7a, 0x2f, 0xdc,
+0x53, 0xf7, 0xf2, 0xa8, 0xab, 0x76, 0x3f, 0x7b,
+0xaa, 0xa2, 0x6a, 0xd0, 0x88, 0xc1, 0x1b, 0x47,
+0x16, 0x66, 0x69, 0xe, 0x75, 0x97, 0x9c, 0x17,
+0xe, 0x60, 0x2a, 0x68, 0xc3, 0x11, 0xdf, 0x4,
+
+0xc8, 0xc4, 0xce, 0x61, 0x25, 0xf6, 0x34, 0x2b,
+0x61, 0x50, 0x91, 0x1d, 0x35, 0xcb, 0x6b, 0x91,
+0x2f, 0x8e, 0x9c, 0x69, 0xce, 0xfe, 0x1f, 0x62,
+0x22, 0x3f, 0x8f, 0xb4, 0x5f, 0x29, 0x5a, 0x8f,
+0x1e, 0x8a, 0xbd, 0x6, 0x5d, 0xe, 0xb, 0xd9,
+0xd6, 0x53, 0x68, 0xd0, 0x14, 0xb4, 0xb5, 0xf5,
+0xa0, 0x5e, 0x4e, 0x2e, 0x91, 0x5b, 0xd4, 0xfc,
+0xcf, 0x58, 0x38, 0x10, 0xa5, 0x78, 0x8a, 0xdb,
+0xa5, 0xa, 0xad, 0x7a, 0xa, 0x72, 0xc0, 0xe2,
+0xe2, 0xf5, 0x40, 0xb9, 0x7b, 0x47, 0xad, 0xa3,
+0xfe, 0x11, 0x9d, 0x3f, 0x37, 0xc4, 0x82, 0x44,
+0x3, 0xa4, 0x29, 0xf1, 0xe4, 0x29, 0x29, 0x27,
+0xb6, 0x30, 0x85, 0x95, 0x2b, 0x82, 0xb2, 0x55,
+0x4b, 0x69, 0x5a, 0x4, 0x89, 0x84, 0x1f, 0x96,
+0xa8, 0x5b, 0x59, 0x83, 0x6e, 0x62, 0xeb, 0x9c,
+0xfe, 0x97, 0x30, 0x1d, 0x9c, 0x16, 0x26, 0x7d,
+
+0x7d, 0x9c, 0x59, 0x60, 0x81, 0x8b, 0x65, 0x29,
+0xb1, 0x2f, 0xb3, 0x34, 0x11, 0xa8, 0x19, 0x5f,
+0xde, 0xf5, 0x65, 0xea, 0xb8, 0x55, 0xc3, 0xe1,
+0x1c, 0xac, 0x3a, 0x7, 0xd8, 0xeb, 0x91, 0x51,
+0x3e, 0x4e, 0x24, 0xb, 0xa3, 0x7f, 0x59, 0x86,
+0xeb, 0x7d, 0x33, 0xe9, 0x3e, 0x58, 0xa9, 0x68,
+0x6d, 0x70, 0x12, 0xb3, 0xbb, 0xf7, 0x21, 0x2d,
+0x30, 0xca, 0x83, 0x2, 0x11, 0xb9, 0xc2, 0x52,
+0xb8, 0xd4, 0xc1, 0x52, 0xdc, 0x8c, 0xd, 0x2e,
+0x95, 0x84, 0x58, 0x54, 0xa0, 0x22, 0xe4, 0xa4,
+0xf1, 0xa3, 0xa4, 0xd4, 0x5d, 0x27, 0x6c, 0x83,
+0x3d, 0xfe, 0x90, 0xd9, 0x61, 0x43, 0x40, 0x2,
+0x4d, 0x64, 0x6f, 0xd6, 0x74, 0xc, 0x58, 0x38,
+0x7c, 0x3, 0xf3, 0x77, 0x30, 0xcc, 0x29, 0x8d,
+0x9d, 0xf9, 0x56, 0xea, 0x6b, 0xa8, 0x1a, 0x7,
+0xd0, 0xa0, 0xe8, 0x48, 0x93, 0xa3, 0x19, 0x9b,
+
+0xc4, 0x4, 0x57, 0x5, 0xec, 0x63, 0xd6, 0x6f,
+0xb2, 0xf7, 0x48, 0x65, 0x24, 0x19, 0xcb, 0x20,
+0x78, 0xb4, 0xaf, 0xe8, 0x6c, 0x92, 0x7d, 0x86,
+0x49, 0xab, 0x5, 0x7, 0xfc, 0x11, 0xc6, 0x70,
+0x66, 0xac, 0xbc, 0x70, 0x7e, 0x9d, 0x34, 0xb0,
+0x50, 0x41, 0x35, 0xf9, 0xc2, 0x6c, 0xf4, 0xf,
+0x17, 0xe0, 0xa7, 0xc2, 0x7a, 0xbf, 0xf4, 0xa1,
+0x11, 0xb, 0xe4, 0x52, 0xbf, 0x7c, 0x38, 0x29,
+0xfa, 0x34, 0x32, 0x44, 0x14, 0x99, 0x79, 0x6b,
+0xb3, 0x5b, 0xd, 0x1, 0x5f, 0xc3, 0x33, 0x57,
+0xb0, 0x4b, 0xe, 0x28, 0x36, 0xcf, 0xff, 0xf4,
+0x19, 0xf, 0x91, 0x4b, 0xcb, 0x93, 0xcc, 0x6c,
+0xc7, 0xfd, 0x2b, 0x57, 0x38, 0x15, 0x7b, 0x6e,
+0xda, 0x83, 0xed, 0xcf, 0x28, 0x32, 0x2b, 0xda,
+0x82, 0x55, 0x49, 0x68, 0xf8, 0x66, 0xb1, 0x13,
+0x11, 0xa9, 0xe0, 0xef, 0xb0, 0x87, 0xec, 0x2,
+
+0xe7, 0x64, 0x49, 0x58, 0x93, 0xd9, 0x87, 0xb3,
+0xfa, 0x50, 0x39, 0x3e, 0xe8, 0x3c, 0xdc, 0x7c,
+0x41, 0x21, 0x95, 0xf7, 0xae, 0xa8, 0xa6, 0xc2,
+0xab, 0x1b, 0xec, 0x67, 0xd9, 0xd5, 0xca, 0xac,
+0x2, 0xe5, 0x72, 0x59, 0xab, 0x29, 0x74, 0x52,
+0xc8, 0xf8, 0x1b, 0x10, 0xd4, 0xe9, 0xc2, 0x1a,
+0x25, 0xfc, 0xa8, 0xca, 0x41, 0x4b, 0x16, 0x2c,
+0x4d, 0x11, 0x20, 0xa5, 0x4a, 0xa9, 0xbc, 0x55,
+0xbc, 0x8, 0x79, 0x92, 0x4b, 0xe2, 0x4e, 0x30,
+0x26, 0x76, 0xf4, 0xd3, 0x37, 0x68, 0x17, 0xca,
+0xcc, 0xd0, 0x71, 0x38, 0x5, 0x44, 0x7e, 0xd4,
+0x69, 0xbe, 0xd7, 0xdd, 0xd4, 0x2f, 0x76, 0x8f,
+0x41, 0x13, 0x51, 0x5, 0x15, 0x4e, 0x56, 0x75,
+0x1a, 0x4f, 0x93, 0x4e, 0x89, 0x1f, 0xef, 0x77,
+0x59, 0xe2, 0xbf, 0x4a, 0x86, 0xcc, 0x76, 0x20,
+0x9a, 0xfe, 0x3a, 0xbb, 0x7f, 0xb5, 0xed, 0x27,
+
+0x7a, 0xee, 0x1, 0xca, 0xda, 0x8a, 0xd6, 0x6,
+0xe4, 0xdc, 0xe, 0xb4, 0x43, 0xa7, 0x21, 0x55,
+0x71, 0x38, 0xc4, 0x44, 0xf, 0x9d, 0x77, 0xad,
+0x32, 0xea, 0x41, 0x9a, 0xa8, 0x99, 0x39, 0xb2,
+0xc, 0x28, 0xf3, 0x89, 0x7b, 0xee, 0x2a, 0x76,
+0x23, 0xc8, 0xc4, 0xa, 0x8e, 0x2, 0xc0, 0xa6,
+0x96, 0xe, 0x4e, 0xf6, 0x91, 0xb1, 0x1a, 0x38,
+0x46, 0x62, 0x24, 0x37, 0x60, 0xf8, 0x3e, 0x8d,
+0xe9, 0x7, 0x1f, 0x88, 0xcf, 0xab, 0xae, 0x3e,
+0x80, 0x74, 0xc9, 0x1, 0x8c, 0x81, 0xc1, 0xa,
+0x7, 0x10, 0x7c, 0x72, 0xf5, 0xb7, 0x0, 0x3f,
+0x7b, 0xfa, 0xe4, 0x4, 0xf4, 0x6d, 0x87, 0x6e,
+0xbb, 0x55, 0xce, 0xaf, 0xd9, 0x8e, 0xbd, 0xfc,
+0x67, 0x8c, 0x1d, 0x9, 0x98, 0x65, 0x84, 0xda,
+0xc6, 0xb8, 0x6f, 0xba, 0x9c, 0x20, 0x83, 0xeb,
+0x6e, 0xa1, 0x92, 0x29, 0xb3, 0xe7, 0x35, 0xf3,
+
+0x7e, 0xaa, 0xc6, 0xcb, 0xb7, 0x7b, 0x73, 0xbd,
+0xd2, 0xca, 0x8, 0xa3, 0xb4, 0x12, 0x94, 0x8c,
+0xe9, 0xf4, 0x20, 0xa2, 0xbb, 0x22, 0xc, 0x7e,
+0x83, 0x1a, 0x58, 0xe9, 0xd2, 0x5, 0x49, 0x5,
+0x53, 0xe6, 0x44, 0x81, 0x5c, 0x4d, 0x67, 0x7d,
+0x81, 0xcd, 0xb0, 0x69, 0xf6, 0x46, 0x11, 0xf5,
+0x42, 0x9c, 0xa3, 0xce, 0x8e, 0x3b, 0x81, 0x53,
+0x1d, 0x34, 0x29, 0xcc, 0x50, 0x38, 0x8, 0x5c,
+0x71, 0xf4, 0xbe, 0x48, 0x44, 0x8f, 0x9, 0x1f,
+0xa1, 0x3e, 0xfc, 0xa8, 0x4c, 0x3, 0x4, 0x5e,
+0x7f, 0xed, 0x8f, 0xc8, 0x26, 0x45, 0x8, 0xaf,
+0x83, 0xa8, 0xa7, 0x96, 0xb5, 0xd5, 0x53, 0x9c,
+0xc2, 0x82, 0x9, 0xe3, 0x77, 0x5, 0x48, 0xf6,
+0x87, 0x98, 0x74, 0x32, 0x93, 0x56, 0x7e, 0xb,
+0x7e, 0x59, 0x5, 0xfe, 0x77, 0x5f, 0xa1, 0x2a,
+0x28, 0x16, 0xf0, 0xb9, 0x85, 0x9c, 0x19, 0xc2,
+
+0x21, 0x97, 0x11, 0x13, 0xb5, 0x8, 0x6, 0xe8,
+0x10, 0xe8, 0xdc, 0x87, 0xc3, 0x2c, 0x26, 0xa8,
+0x3f, 0xdd, 0x20, 0x60, 0x58, 0x5c, 0x56, 0x34,
+0xb8, 0x5c, 0xb6, 0x57, 0xe0, 0xf1, 0x9b, 0x3f,
+0x41, 0x16, 0xac, 0x18, 0x9c, 0x83, 0xcf, 0xa2,
+0x81, 0xdd, 0xc8, 0xf3, 0x5e, 0xda, 0x3a, 0x91,
+0xb1, 0x77, 0xb9, 0x49, 0x4a, 0x83, 0x89, 0x79,
+0x47, 0x8a, 0xb8, 0xa8, 0x42, 0xa6, 0x3, 0x31,
+0x1b, 0xe6, 0xc0, 0xed, 0x41, 0x51, 0xf8, 0x7a,
+0x40, 0x1, 0x93, 0x45, 0x9, 0x53, 0x2b, 0x5c,
+0x8d, 0xf6, 0x42, 0x42, 0xd3, 0xfe, 0xef, 0x5,
+0x87, 0x6e, 0x16, 0x43, 0xe5, 0xcf, 0x49, 0x7d,
+0xc6, 0xc7, 0x1, 0xc3, 0x4f, 0x44, 0xa2, 0x51,
+0x8, 0xe8, 0xd4, 0x7a, 0x4c, 0x7f, 0xae, 0x89,
+0xd8, 0x37, 0xd2, 0x33, 0xcc, 0xb7, 0x9a, 0xc3,
+0x59, 0x83, 0xe0, 0xc9, 0xa7, 0xe4, 0x83, 0x13,
+
+0xa1, 0xd7, 0xd7, 0x18, 0x5, 0x55, 0x43, 0x5a,
+0xbc, 0x5e, 0x7c, 0x95, 0x59, 0x4e, 0x77, 0xe6,
+0x15, 0x44, 0xf5, 0x4c, 0x65, 0x8f, 0x2, 0xdc,
+0xa, 0x15, 0x83, 0x9f, 0x95, 0x5b, 0x18, 0x4e,
+0x6e, 0x4d, 0x6f, 0x6c, 0xce, 0x99, 0x7e, 0xa5,
+0x34, 0x3e, 0x1b, 0xb4, 0xb4, 0x1c, 0xa1, 0x70,
+0x35, 0xb9, 0x3b, 0xe4, 0x86, 0xcb, 0xfe, 0xc8,
+0x67, 0x86, 0xd6, 0x5a, 0x8a, 0x2, 0x9e, 0xc9,
+0x23, 0xfc, 0xe3, 0x50, 0x5a, 0xaa, 0xb4, 0xd,
+0xb9, 0xb6, 0x6f, 0xc2, 0xdf, 0xc8, 0x9, 0x5a,
+0x9, 0xf, 0xf9, 0x5f, 0xaf, 0xd7, 0x26, 0x7e,
+0xb7, 0x15, 0xbf, 0x6d, 0xb9, 0xc8, 0x10, 0x61,
+0x1a, 0x8f, 0xaf, 0xcb, 0x82, 0xe1, 0xc0, 0x3e,
+0xce, 0x43, 0x44, 0x82, 0x22, 0xcb, 0x64, 0x5f,
+0xa8, 0xd0, 0xfc, 0x9e, 0x5f, 0x6c, 0x3f, 0x78,
+0xe9, 0x67, 0xa, 0xac, 0x22, 0x66, 0x57, 0x95,
+
+0xa, 0x95, 0xf0, 0xa7, 0xae, 0x1, 0x32, 0x8,
+0xb3, 0xe1, 0x5c, 0x3d, 0xa4, 0x65, 0xac, 0xa0,
+0x0, 0x3f, 0xad, 0xbd, 0xbb, 0xce, 0xfc, 0xb4,
+0x37, 0xf1, 0xd, 0xfa, 0x6c, 0x22, 0x75, 0xea,
+0x70, 0x7b, 0x6, 0x18, 0xcf, 0x50, 0x33, 0xc2,
+0xe2, 0x7f, 0x35, 0xd1, 0x47, 0xd8, 0x74, 0x83,
+0x5a, 0x8e, 0xe2, 0xf6, 0x2d, 0xa3, 0xa5, 0x90,
+0xc2, 0x52, 0xf4, 0xd2, 0xbd, 0xa6, 0xde, 0xc2,
+0x5b, 0xc6, 0xaf, 0xdc, 0xc4, 0xec, 0xd2, 0xb1,
+0x17, 0xb9, 0x50, 0x8d, 0xc7, 0x57, 0xa5, 0x31,
+0xa8, 0x50, 0xe6, 0xa, 0xcd, 0xe1, 0x93, 0xa1,
+0xd8, 0x84, 0xf6, 0x4, 0xa5, 0x4, 0xf3, 0x4e,
+0x16, 0xea, 0x91, 0x22, 0xd2, 0xeb, 0xd7, 0x82,
+0xe3, 0xdb, 0x4e, 0x55, 0x5, 0xd7, 0xfd, 0x74,
+0xaa, 0x87, 0xa7, 0x87, 0xb3, 0xf3, 0x9, 0x4b,
+0xfe, 0x69, 0x27, 0xa, 0x1a, 0x5e, 0x67, 0xcb,
+
+0xe9, 0x23, 0xb, 0x62, 0xe3, 0xd9, 0xb7, 0xc4,
+0x1c, 0x7a, 0xe9, 0x78, 0x3f, 0x98, 0x25, 0xef,
+0x2, 0x2c, 0x2a, 0xa4, 0x71, 0x5, 0xa6, 0xa0,
+0x5e, 0x1c, 0x5d, 0x4e, 0x48, 0x97, 0x9b, 0x12,
+0x71, 0xe1, 0x2f, 0xf9, 0x14, 0xfd, 0xa4, 0x9d,
+0x93, 0xd0, 0x64, 0x93, 0xda, 0xda, 0x8, 0x4,
+0x16, 0x9b, 0xbc, 0xa7, 0xd1, 0x2, 0xbf, 0x1f,
+0xed, 0x5a, 0x4c, 0x4a, 0x94, 0x29, 0xc, 0x77,
+0x8b, 0xcd, 0x10, 0x37, 0xca, 0x92, 0x98, 0x1b,
+0x30, 0x2f, 0x83, 0x4d, 0x53, 0x35, 0x29, 0x53,
+0x87, 0x90, 0xb9, 0x38, 0x41, 0x68, 0xd0, 0x79,
+0xf9, 0xf4, 0xb, 0x2e, 0x76, 0x5e, 0x39, 0xc3,
+0x99, 0xa3, 0x91, 0x90, 0xf9, 0x9, 0x85, 0x9,
+0x20, 0xca, 0xa1, 0x49, 0xd7, 0xd2, 0xc6, 0x8f,
+0xe0, 0x15, 0x61, 0xc, 0xd6, 0xa1, 0x88, 0xdd,
+0x49, 0x72, 0xa2, 0x50, 0xd2, 0xf4, 0x71, 0x3,
+
+0xc4, 0x7e, 0xa4, 0x9b, 0x7c, 0xf2, 0x78, 0x3f,
+0x3e, 0xcc, 0x67, 0xda, 0xa9, 0x5e, 0x19, 0x27,
+0x48, 0x7b, 0xbd, 0x36, 0xb9, 0xc1, 0x55, 0x34,
+0x99, 0xaf, 0xb6, 0xe6, 0x29, 0xc9, 0xcc, 0x62,
+0x5a, 0x5f, 0xfd, 0xa0, 0x92, 0xab, 0x61, 0x75,
+0x3b, 0x17, 0x2c, 0x9, 0x3a, 0xed, 0xfd, 0x14,
+0x35, 0xc0, 0xcb, 0xb9, 0x4d, 0xa2, 0x64, 0x60,
+0x7, 0xe, 0x61, 0x78, 0xe1, 0x1a, 0xdd, 0xda,
+0x57, 0xe9, 0xff, 0xf2, 0x6c, 0x22, 0x37, 0xa5,
+0x3d, 0xfb, 0xb, 0x67, 0x40, 0x34, 0xf1, 0x8e,
+0x7, 0xe4, 0x2a, 0xe4, 0x85, 0x5e, 0xa7, 0x9d,
+0x9f, 0xed, 0x88, 0xc2, 0xcf, 0x0, 0xed, 0xd3,
+0x77, 0x6a, 0xfc, 0x3e, 0x87, 0x56, 0x39, 0xa3,
+0xa6, 0x79, 0xa7, 0xf1, 0xad, 0x98, 0x94, 0x86,
+0x41, 0x68, 0x4c, 0xc6, 0xf5, 0xc3, 0xeb, 0x80,
+0xc5, 0x68, 0x5f, 0x1f, 0x83, 0x20, 0x5c, 0xa3,
+
+0x45, 0xde, 0xf9, 0x2, 0xcf, 0xe0, 0x57, 0xc8,
+0x76, 0x43, 0x75, 0x4e, 0x21, 0xa4, 0x75, 0x42,
+0x81, 0xa0, 0x18, 0xe2, 0xee, 0x4, 0xed, 0x88,
+0x50, 0xcc, 0xde, 0xd8, 0xa4, 0x58, 0x13, 0xe7,
+0x7d, 0x88, 0x54, 0x71, 0x2c, 0x5d, 0x9a, 0xe0,
+0x91, 0xf9, 0x83, 0x84, 0x1c, 0x73, 0xff, 0x6a,
+0x79, 0x8b, 0x54, 0x25, 0x2f, 0x7f, 0x2f, 0xae,
+0x4b, 0x9c, 0x95, 0xc8, 0x88, 0xb1, 0x75, 0xc6,
+0xb6, 0xdc, 0xcf, 0x84, 0x91, 0x44, 0xb7, 0x73,
+0x22, 0x30, 0x38, 0x49, 0xda, 0x1d, 0xe3, 0x19,
+0xdd, 0xf1, 0x32, 0xb6, 0xaf, 0xed, 0x36, 0xde,
+0xf2, 0x3e, 0xfb, 0x42, 0x11, 0x8c, 0xdc, 0x3d,
+0x8c, 0xd0, 0x71, 0xdc, 0x8a, 0xe3, 0x22, 0xfb,
+0xca, 0x87, 0xfb, 0x9c, 0x9a, 0xa1, 0xfb, 0xbb,
+0x5b, 0x4b, 0x6b, 0xd0, 0xf5, 0x67, 0x8b, 0xd7,
+0x85, 0x43, 0xb2, 0x4f, 0x9d, 0x34, 0x46, 0x23
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/verrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/verrl.inc
new file mode 100644
index 0000000000..36c5f922f9
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp01/verrl.inc
@@ -0,0 +1,151 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+// VerRl
+
+// gid
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x2A,
+// B
+0x41, 0x63, 0xfd, 0x06, 0xb8, 0xb1, 0xa6, 0x32, 0xa5, 0xe3, 0xeb, 0xc4,
+0x40, 0x11, 0x37, 0xc0, 0x62, 0x0d, 0xe1, 0xca, 0xe9, 0x79, 0xad, 0xff,
+0x1d, 0x13, 0xb3, 0xda, 0xa0, 0x10, 0x8a, 0xa8, 0x30, 0x72, 0xa4, 0xe8,
+0x27, 0xb5, 0xad, 0xdb, 0xac, 0x89, 0xd8, 0x37, 0x79, 0xd9, 0x8c, 0xd0,
+0xb3, 0xef, 0x94, 0x17, 0x4f, 0x05, 0x53, 0x4c, 0x4d, 0xf0, 0x77, 0xf7,
+0xb6, 0xaf, 0xb8, 0xfa,
+// version
+0x00, 0x00, 0x00, 0x00,
+// n4
+0x00, 0x00, 0x00, 0x11,
+// k's
+0xdc, 0x41, 0x24, 0xe7, 0xb8, 0xf2, 0x6d, 0xc4, 0x01, 0xf9, 0x5d, 0xf8,
+0xd9, 0x23, 0x32, 0x29, 0x0a, 0xe1, 0xf6, 0xdc, 0xa1, 0xef, 0x52, 0xf7,
+0x3a, 0x3c, 0xe6, 0x7e, 0x3d, 0x0e, 0xe8, 0x86, 0xa9, 0x58, 0xf4, 0xfe,
+0xfa, 0x8b, 0xe4, 0x1c, 0xad, 0x58, 0x5b, 0x1c, 0xc7, 0x54, 0xee, 0x7e,
+0xe7, 0x12, 0x6a, 0x4b, 0x01, 0x63, 0xb4, 0xdb, 0x6e, 0xe7, 0x7a, 0xe9,
+0x62, 0xa5, 0xb4, 0xe3,
+
+0xc3, 0x22, 0x1c, 0x3c, 0x75, 0x2e, 0x7a, 0xe2, 0xc6, 0x86, 0xf7, 0x0b,
+0xba, 0x1f, 0x2d, 0xe8, 0xfa, 0xd8, 0x21, 0x59, 0xe1, 0x41, 0xd1, 0xbd,
+0x78, 0xfe, 0xcd, 0x10, 0x70, 0xb9, 0xe3, 0x46, 0x9c, 0x62, 0x13, 0x53,
+0x93, 0xd5, 0xf0, 0x3f, 0xfe, 0x00, 0x4c, 0x78, 0xc4, 0x4c, 0x24, 0x70,
+0x56, 0xde, 0x40, 0x1a, 0x47, 0xea, 0x2b, 0xcc, 0xc7, 0x18, 0xdc, 0xa2,
+0x91, 0x97, 0x0c, 0xec,
+
+0x64, 0x87, 0x4a, 0x72, 0x28, 0x6e, 0x35, 0xa7, 0x38, 0x21, 0x8c, 0x44,
+0x74, 0xde, 0x34, 0x2c, 0x64, 0xba, 0x9e, 0xf1, 0x53, 0x09, 0xa8, 0x75,
+0x85, 0xcc, 0x29, 0x8c, 0x58, 0x1f, 0xf9, 0xde, 0x2d, 0xab, 0xca, 0xc3,
+0x46, 0xf4, 0xb9, 0x21, 0x63, 0x19, 0xbc, 0xf4, 0x1a, 0x18, 0xb3, 0xc5,
+0x1e, 0xbc, 0x37, 0xde, 0x99, 0xef, 0xa7, 0x32, 0x2b, 0x4d, 0xb1, 0xe9,
+0xe8, 0xb7, 0x8c, 0xff,
+
+0xdd, 0x77, 0x59, 0x88, 0xd7, 0x91, 0xee, 0x4c, 0x30, 0x8b, 0x8e, 0x81,
+0x6f, 0x83, 0x4f, 0x82, 0x76, 0xca, 0xfa, 0xbc, 0x34, 0xa2, 0x48, 0xe4,
+0xde, 0x4b, 0x55, 0x18, 0xcc, 0xf6, 0xdd, 0x11, 0x97, 0x6a, 0xf7, 0x3a,
+0x25, 0x4c, 0x84, 0x06, 0xd9, 0xc4, 0x58, 0x1d, 0xc5, 0xac, 0xf9, 0x47,
+0x33, 0x48, 0x14, 0x61, 0xcb, 0xba, 0x10, 0x83, 0x6b, 0x20, 0xb3, 0x72,
+0x8e, 0xee, 0x72, 0x26,
+
+0x9e, 0x5e, 0xb2, 0x19, 0x23, 0x86, 0x14, 0x5a, 0x5c, 0xb0, 0x0a, 0x41,
+0x71, 0x6c, 0x88, 0xde, 0xd1, 0x1c, 0xa5, 0xa4, 0x80, 0xba, 0x41, 0x9c,
+0xd3, 0xd8, 0xa6, 0x8f, 0x6f, 0x3e, 0xd8, 0x04, 0x8f, 0x8b, 0x78, 0x13,
+0x7b, 0xd4, 0x9d, 0x92, 0xe4, 0xda, 0x0e, 0xfe, 0xa3, 0xd1, 0xda, 0x8f,
+0x6a, 0x62, 0x8d, 0x7c, 0x7c, 0x00, 0x33, 0x2e, 0x68, 0xa8, 0x39, 0x3c,
+0x86, 0x7b, 0x02, 0x20,
+
+0x6d, 0x53, 0x62, 0x9e, 0xd3, 0x2a, 0x14, 0x3c, 0xec, 0x3f, 0x2c, 0x22,
+0x37, 0xe4, 0xb7, 0xf4, 0x4b, 0x44, 0xad, 0xcb, 0xa4, 0xf0, 0xb6, 0x4a,
+0x5a, 0x1c, 0x74, 0x41, 0x7c, 0x57, 0xe5, 0xbc, 0xa9, 0x60, 0xfc, 0xf6,
+0x45, 0x53, 0xa1, 0x6f, 0x9f, 0x76, 0xf3, 0x15, 0x00, 0x8f, 0xae, 0xd8,
+0xf6, 0x5e, 0x3d, 0x39, 0x85, 0xa2, 0xbe, 0xc2, 0xc0, 0x53, 0xaf, 0xd5,
+0xa6, 0x5f, 0x57, 0xf3,
+
+0x24, 0x4d, 0x10, 0x98, 0xde, 0xbc, 0x37, 0x64, 0x60, 0xf5, 0x9d, 0x92,
+0x65, 0x03, 0x36, 0xbb, 0x40, 0x03, 0x64, 0x12, 0x5f, 0xca, 0x63, 0x2d,
+0x53, 0xe8, 0xa5, 0xa5, 0x7b, 0x5f, 0x82, 0x76, 0xbb, 0xd6, 0xb2, 0xf8,
+0x26, 0xc3, 0x9d, 0xfa, 0x2a, 0xb2, 0x73, 0xe3, 0xab, 0x6c, 0x9e, 0xbd,
+0x6a, 0xa4, 0x3c, 0x29, 0x4b, 0x70, 0xf8, 0x22, 0x0d, 0xde, 0x78, 0xe1,
+0x05, 0x50, 0x76, 0xba,
+
+0x08, 0xf1, 0x64, 0xbc, 0x00, 0x43, 0xac, 0x2e, 0x11, 0x46, 0xad, 0xb9,
+0x02, 0x48, 0x05, 0xd1, 0xfd, 0x9f, 0x63, 0x65, 0x1c, 0xcc, 0x62, 0x33,
+0x12, 0x95, 0xdb, 0xd2, 0xff, 0xd7, 0x0e, 0x8b, 0x64, 0x92, 0xd5, 0x44,
+0x3e, 0x30, 0xf8, 0xfc, 0x49, 0xe3, 0x4b, 0x27, 0x82, 0xa8, 0x90, 0x4b,
+0xca, 0xa1, 0x0b, 0xfd, 0x1e, 0xe1, 0x9b, 0xad, 0xcc, 0x08, 0x7e, 0x6a,
+0x03, 0xef, 0xec, 0x07,
+
+0x03, 0xf8, 0x09, 0xa5, 0x9e, 0xd3, 0x5e, 0x75, 0x0c, 0x80, 0x8b, 0x13,
+0x54, 0xa2, 0x25, 0x05, 0x5a, 0xa8, 0x82, 0xb4, 0xa2, 0x33, 0xc4, 0xb3,
+0xb5, 0xf7, 0xa8, 0x78, 0x33, 0x6a, 0xef, 0x50, 0x14, 0xf1, 0x17, 0xff,
+0x30, 0x59, 0x87, 0xe4, 0x2c, 0xb7, 0x20, 0x9f, 0x17, 0xb8, 0x7b, 0x32,
+0xe1, 0x6a, 0x3c, 0xda, 0x51, 0x09, 0x79, 0x33, 0x0b, 0x8d, 0x9c, 0x11,
+0xbe, 0x0c, 0xcb, 0x98,
+
+0xd7, 0x9f, 0xa6, 0x0b, 0x21, 0xab, 0x8b, 0x56, 0xc1, 0xae, 0xca, 0x76,
+0xa9, 0x4e, 0x41, 0xcd, 0x9d, 0xfd, 0xa1, 0x15, 0xc0, 0x3a, 0x51, 0xd7,
+0x1d, 0x12, 0x7c, 0x9a, 0xe4, 0x11, 0x0b, 0xee, 0x1f, 0x5f, 0x2b, 0x1c,
+0x39, 0xca, 0x6a, 0x87, 0x37, 0xe0, 0xd4, 0xa2, 0xef, 0x05, 0xc1, 0x92,
+0xcd, 0x2a, 0x5a, 0x7d, 0x1b, 0xc6, 0xde, 0xf7, 0x57, 0xa2, 0xea, 0x17,
+0x63, 0x94, 0x00, 0x81,
+
+0xd6, 0xf7, 0x2d, 0x50, 0x48, 0x25, 0x69, 0xed, 0x4f, 0x19, 0x42, 0x19,
+0x72, 0xcd, 0x57, 0x83, 0xde, 0x1b, 0x3f, 0x46, 0xa6, 0x95, 0x50, 0x60,
+0x48, 0xbc, 0xb9, 0xe3, 0xe6, 0x05, 0x08, 0x58, 0xa5, 0x15, 0x80, 0x35,
+0xcd, 0x27, 0x2d, 0xd0, 0xc5, 0xe5, 0x29, 0x7f, 0x43, 0x02, 0xc1, 0x0a,
+0xe4, 0x47, 0x0e, 0x55, 0x7a, 0xbd, 0x44, 0xb0, 0x31, 0x90, 0x55, 0xa0,
+0x38, 0x16, 0x0e, 0x2a,
+
+0xb5, 0x12, 0xe8, 0x99, 0x4e, 0xaf, 0x15, 0xa7, 0x39, 0xa2, 0xf2, 0x50,
+0x88, 0xc4, 0x48, 0x70, 0xb4, 0xf1, 0x54, 0xd0, 0x58, 0xdb, 0x91, 0x43,
+0xc1, 0x64, 0x49, 0x0b, 0xc6, 0x06, 0xb6, 0x4a, 0x25, 0x78, 0x9d, 0xa9,
+0x8b, 0x4e, 0x1b, 0x33, 0xa9, 0x6f, 0xa3, 0x5c, 0x53, 0xd5, 0xab, 0x0a,
+0xf4, 0x49, 0x9d, 0x67, 0xc5, 0x6a, 0x4b, 0x81, 0x84, 0x4d, 0x6c, 0xd8,
+0x8f, 0xe4, 0xca, 0x1f,
+
+0x80, 0xe6, 0x23, 0x82, 0xf5, 0x0c, 0x24, 0x37, 0x4e, 0xd6, 0x2d, 0x29,
+0x80, 0x69, 0x8d, 0x04, 0x72, 0x82, 0x7f, 0xe5, 0x81, 0x50, 0xfd, 0x53,
+0x7c, 0xc3, 0xd6, 0xc8, 0x80, 0xea, 0x67, 0x76, 0xe4, 0x17, 0x98, 0xac,
+0x3c, 0x4a, 0x01, 0x86, 0xb6, 0xb7, 0x07, 0x20, 0x31, 0x0a, 0x4d, 0x08,
+0xf0, 0xe0, 0xc0, 0xea, 0xb8, 0x82, 0xfa, 0x91, 0x76, 0x01, 0xe6, 0xe4,
+0x45, 0x54, 0xdf, 0x75,
+
+0x32, 0xdb, 0x43, 0x97, 0x5e, 0x3b, 0x23, 0x42, 0x9d, 0xc7, 0xbc, 0x2a,
+0x05, 0x8f, 0xc0, 0xfb, 0x8b, 0xd6, 0xd7, 0x4b, 0xbf, 0x51, 0x34, 0x11,
+0xcf, 0xaa, 0x15, 0x6b, 0x0c, 0x4e, 0xf1, 0x05, 0xff, 0x2e, 0x1e, 0x09,
+0x4a, 0xa0, 0xfa, 0xf4, 0x59, 0x61, 0x2a, 0x0f, 0x62, 0x09, 0x75, 0x55,
+0x87, 0x21, 0x7d, 0xc1, 0x97, 0xef, 0x89, 0x5d, 0xb8, 0x45, 0x63, 0xc6,
+0x28, 0x4f, 0x84, 0x22,
+
+0x42, 0x71, 0xbc, 0xc5, 0x4c, 0xf2, 0x5e, 0xe8, 0x91, 0xda, 0x0c, 0x86,
+0xb7, 0x81, 0x66, 0xad, 0xef, 0xcd, 0x89, 0x35, 0xb8, 0xdc, 0x8f, 0x24,
+0x38, 0x17, 0x91, 0x65, 0xf4, 0x45, 0x71, 0xf9, 0x89, 0xcf, 0x54, 0x0b,
+0x8c, 0x35, 0xa5, 0x74, 0x89, 0x41, 0x9f, 0x1e, 0xc1, 0xef, 0x5d, 0xc3,
+0xba, 0x46, 0x27, 0xc3, 0xe6, 0x88, 0x4b, 0xc7, 0xfe, 0x8b, 0x8f, 0x0e,
+0x7c, 0xcd, 0xdc, 0xce,
+
+0x0c, 0x81, 0x66, 0xa5, 0x23, 0xa8, 0x87, 0x81, 0x03, 0x09, 0x36, 0x04,
+0x88, 0xd7, 0xbf, 0x33, 0xb5, 0x40, 0x65, 0xf6, 0x65, 0xcc, 0x05, 0x6c,
+0xa1, 0x3c, 0xfa, 0x5d, 0x0c, 0x2a, 0x28, 0x53, 0x03, 0xae, 0x59, 0xdd,
+0x99, 0x80, 0xb7, 0x81, 0x68, 0xaf, 0xf0, 0xf4, 0xcb, 0xd0, 0xa3, 0xde,
+0x7d, 0x1f, 0x5c, 0x53, 0x20, 0x25, 0xe2, 0x0f, 0x08, 0x40, 0xb2, 0xca,
+0xc5, 0x81, 0x02, 0xf4,
+
+0x40, 0xcf, 0x75, 0xb0, 0x18, 0x9c, 0x82, 0x40, 0xea, 0x98, 0x2d, 0x24,
+0x97, 0xb3, 0x1a, 0x2d, 0x78, 0x56, 0x2a, 0x21, 0x51, 0x38, 0x19, 0x1a,
+0x47, 0x58, 0x16, 0xa9, 0xf8, 0x9c, 0xe9, 0x16, 0xad, 0xa4, 0x9c, 0x11,
+0xce, 0xcf, 0x19, 0x8a, 0x37, 0x64, 0xab, 0x81, 0xe9, 0x35, 0x9e, 0x18,
+0x3e, 0x06, 0x6f, 0xb8, 0x89, 0xf0, 0x67, 0x75, 0xeb, 0xbc, 0x4e, 0xff,
+0x95, 0xea, 0x12, 0x40,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/cmember9/cmpprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/cmember9/cmpprivkey.inc
new file mode 100644
index 0000000000..902ee73a63
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/cmember9/cmpprivkey.inc
@@ -0,0 +1,36 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 compressed private key
+ * Group : grpX
+ * Signer : member9
+ */
+//unsigned char cmpprivkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xaf, 0x49, 0xd9, 0xba, 0x72, 0x81, 0xa7, 0x2f,
+ 0xcc, 0x5a, 0xe3, 0x13, 0xed, 0x5c, 0xf2, 0x5b,
+ 0xf9, 0x56, 0x23, 0x39, 0x4b, 0xc2, 0xf6, 0x29,
+ 0xb7, 0x14, 0x61, 0x4c, 0x4e, 0x46, 0x9c, 0x35,
+ 0xaf, 0x5a, 0x70, 0xdd, 0x2d, 0x06, 0x13, 0x55,
+ 0xc9, 0x70, 0xb6, 0xa9, 0x90, 0xd6, 0x2f, 0x98,
+ 0x69, 0x92, 0x82, 0x7c, 0x44, 0x77, 0x81, 0x9e,
+ 0xe9, 0x35, 0x57, 0x87, 0x5b, 0x3a, 0xd3, 0xbf
+//};
+//unsigned int cmpprivkey_dat_len = 80;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/cmember9/mprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/cmember9/mprivkey.inc
new file mode 100644
index 0000000000..58db4cdc0e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/cmember9/mprivkey.inc
@@ -0,0 +1,44 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : member9
+ */
+//unsigned char mprivkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xaf, 0x49, 0xd9, 0xba, 0x72, 0x81, 0xa7, 0x2f,
+ 0xcc, 0x5a, 0xe3, 0x13, 0xed, 0x5c, 0xf2, 0x5b,
+ 0xf9, 0x56, 0x23, 0x39, 0x4b, 0xc2, 0xf6, 0x29,
+ 0xb7, 0x14, 0x61, 0x4c, 0x4e, 0x46, 0x9c, 0x35,
+ 0xae, 0x8d, 0xc4, 0x20, 0xb1, 0x9a, 0x2f, 0x21,
+ 0x66, 0xae, 0x93, 0xd9, 0xe3, 0xfb, 0x65, 0xd6,
+ 0xbf, 0x3c, 0x97, 0x59, 0x43, 0x37, 0x51, 0x5e,
+ 0x94, 0x9f, 0xb7, 0xcd, 0x49, 0x71, 0xee, 0xef,
+ 0x92, 0x9c, 0xdc, 0xfc, 0x54, 0x9d, 0xa5, 0x42,
+ 0x51, 0x5e, 0xec, 0x41, 0x1a, 0x4c, 0xb7, 0xf1,
+ 0x5f, 0x34, 0x8d, 0x3a, 0x4c, 0x75, 0x0e, 0xc9,
+ 0x3f, 0xc6, 0x46, 0x08, 0x8d, 0xbb, 0xbf, 0xe1,
+ 0xc1, 0xb0, 0xb5, 0x16, 0x13, 0xaa, 0x45, 0x66,
+ 0xaa, 0x57, 0x3f, 0x96, 0x0f, 0x54, 0x62, 0xd9,
+ 0x90, 0x13, 0x5e, 0x5b, 0xdd, 0x2a, 0xb1, 0xfd,
+ 0x51, 0xef, 0x85, 0xa9, 0x8b, 0xf8, 0x3d, 0x78
+//};
+//unsigned int mprivkey_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/iprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/iprivkey.inc
new file mode 100644
index 0000000000..b3adabd4f8
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/iprivkey.inc
@@ -0,0 +1,31 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 issuing private key
+ * Group : grpX
+ */
+//unsigned char iprivkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xb5, 0xd4, 0xfe, 0x09, 0x91, 0x97, 0xd0, 0x9c,
+ 0x39, 0x20, 0x94, 0x7f, 0xe2, 0x30, 0xbb, 0x5a,
+ 0xea, 0x00, 0x35, 0xfe, 0x8d, 0x49, 0x3c, 0x86,
+ 0x56, 0xd8, 0xec, 0x55, 0xc8, 0x86, 0xe5, 0xb5
+//};
+//unsigned int iprivkey_dat_len = 48;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/mprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/mprivkey.inc
new file mode 100644
index 0000000000..67f52a093b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/mprivkey.inc
@@ -0,0 +1,44 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : member0
+ */
+//unsigned char mprivkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x63, 0xd3, 0x48, 0x19, 0x93, 0x92, 0x3d, 0xfc,
+ 0x78, 0xcc, 0x01, 0x3f, 0x2a, 0x29, 0x73, 0xd8,
+ 0x1b, 0x9a, 0xbe, 0x70, 0x66, 0x71, 0xfa, 0x47,
+ 0x66, 0xc5, 0xd4, 0xe5, 0x07, 0xcb, 0xe2, 0x51,
+ 0x47, 0x4a, 0x06, 0x9a, 0x29, 0xeb, 0x99, 0x0e,
+ 0x1b, 0x6b, 0x24, 0x88, 0x8f, 0x11, 0x4b, 0x9d,
+ 0xb4, 0x82, 0xf6, 0x04, 0x79, 0xde, 0x9b, 0xe7,
+ 0x83, 0x63, 0x27, 0x91, 0x46, 0xa8, 0x52, 0x27,
+ 0xb2, 0xed, 0xf0, 0x3b, 0x61, 0x78, 0x50, 0x20,
+ 0x61, 0x97, 0x3f, 0x4d, 0xba, 0x17, 0xfc, 0x50,
+ 0x65, 0x0a, 0xff, 0xec, 0x64, 0x14, 0xa2, 0x53,
+ 0xee, 0x2d, 0xff, 0xc9, 0x2d, 0xb3, 0xbe, 0xa0,
+ 0xc4, 0x80, 0xd8, 0xd9, 0xfa, 0xa9, 0xb6, 0x1a,
+ 0xa0, 0x24, 0xcc, 0xfa, 0x4f, 0x03, 0x37, 0xe2,
+ 0xdf, 0xff, 0x35, 0x2e, 0x87, 0xd3, 0x3a, 0x2b,
+ 0x58, 0x00, 0x54, 0x32, 0x8b, 0xe4, 0x83, 0xb5
+//};
+//unsigned int mprivkey_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg0.inc
new file mode 100644
index 0000000000..3b033accc6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha256_bsn0_msg0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x81, 0xa5, 0xa5, 0x8f, 0xe6, 0x4e, 0x18, 0x04,
+ 0x05, 0x46, 0xa1, 0x30, 0x84, 0xde, 0x4f, 0x09,
+ 0x36, 0x5f, 0x59, 0xbe, 0xc0, 0x4f, 0x4f, 0xbc,
+ 0xde, 0xd1, 0xd1, 0x11, 0x11, 0x07, 0x7a, 0x2d,
+ 0x89, 0x9c, 0x1b, 0x21, 0x34, 0xeb, 0x84, 0xc4,
+ 0x2c, 0x82, 0x63, 0xce, 0x98, 0x30, 0x22, 0xee,
+ 0x2c, 0xec, 0x90, 0x95, 0x66, 0x94, 0x74, 0xf5,
+ 0xef, 0xff, 0x74, 0xfa, 0xad, 0x61, 0x6f, 0x59,
+ 0x15, 0xdb, 0xf7, 0x26, 0xde, 0xc4, 0x1f, 0x31,
+ 0xe8, 0x4c, 0x11, 0xe6, 0x60, 0xdf, 0xc4, 0xde,
+ 0xa1, 0x42, 0xbb, 0x55, 0x22, 0x0e, 0xea, 0x5f,
+ 0xc0, 0xf7, 0x78, 0x8a, 0x15, 0xcd, 0xf4, 0x03,
+ 0x97, 0x1b, 0x88, 0xd7, 0xcc, 0x86, 0xaf, 0x54,
+ 0x65, 0xa1, 0x18, 0x10, 0x39, 0x53, 0x95, 0x1f,
+ 0x93, 0x74, 0x9b, 0xb7, 0x39, 0xc7, 0x9a, 0x81,
+ 0x72, 0x2b, 0x67, 0x12, 0xe3, 0x42, 0xbc, 0x76,
+ 0xb6, 0x03, 0xbe, 0xc2, 0x13, 0x7f, 0xb2, 0x86,
+ 0xc7, 0x20, 0x27, 0xcc, 0x30, 0x1e, 0xa7, 0xf2,
+ 0xfe, 0x96, 0x5b, 0x85, 0xa6, 0xac, 0xef, 0x41,
+ 0x1f, 0x12, 0xe7, 0x6f, 0x22, 0xea, 0xf1, 0xac,
+ 0xb3, 0x48, 0xef, 0xdf, 0x39, 0x11, 0xe3, 0x2f,
+ 0x16, 0x98, 0x77, 0x4f, 0x6f, 0x71, 0x40, 0x03,
+ 0xdf, 0xb7, 0xa3, 0x10, 0x08, 0xc7, 0xae, 0x77,
+ 0x87, 0x3d, 0xd6, 0x8b, 0xc8, 0xd4, 0x00, 0x05,
+ 0x4f, 0xd3, 0xb2, 0x21, 0x71, 0x28, 0x97, 0x2b,
+ 0xda, 0x05, 0x07, 0x87, 0x9e, 0x32, 0x24, 0xe7,
+ 0x0c, 0xa2, 0x37, 0x32, 0xf0, 0xfa, 0xec, 0x07,
+ 0x5e, 0x5e, 0xec, 0x45, 0xdd, 0xa3, 0x68, 0x4d,
+ 0x8a, 0x8b, 0xd5, 0xc3, 0x0d, 0x91, 0xd2, 0xc4,
+ 0x3d, 0x04, 0x24, 0xe9, 0xbc, 0x65, 0xb9, 0xee,
+ 0x2d, 0x52, 0xf7, 0x97, 0xe5, 0xa0, 0x84, 0x16,
+ 0x57, 0x53, 0xd5, 0x7b, 0xee, 0xb2, 0xa6, 0x9c,
+ 0x77, 0xad, 0x9d, 0x73, 0x0b, 0x53, 0xd8, 0x33,
+ 0x83, 0x8f, 0xb2, 0x7c, 0x2e, 0x4b, 0x12, 0xf2,
+ 0xbd, 0xbb, 0x7c, 0x25, 0x80, 0xa8, 0x04, 0x24,
+ 0x39, 0x90, 0x61, 0xdf, 0x72, 0x21, 0x05, 0xd3,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x5b, 0x9f, 0xd9, 0x96, 0x82, 0x57, 0x4c, 0xa7,
+ 0xd8, 0x66, 0xe6, 0x2f, 0x56, 0x46, 0x7a, 0xa4,
+ 0xa6, 0x74, 0x28, 0x38, 0xa2, 0x38, 0x28, 0xb3,
+ 0xb6, 0x5b, 0x95, 0xf5, 0xd6, 0x6c, 0x37, 0xb1,
+ 0x14, 0x59, 0xf6, 0x42, 0xe9, 0x5c, 0xee, 0x45,
+ 0x51, 0x5b, 0xe7, 0x3b, 0xd9, 0x0c, 0x44, 0x40,
+ 0x3a, 0x9b, 0x2d, 0x9a, 0xfb, 0x07, 0xdf, 0xe3,
+ 0x58, 0xdc, 0x3d, 0x62, 0xc0, 0x7c, 0x8f, 0xa9,
+ 0x32, 0x48, 0x7d, 0x8f, 0x4d, 0xe0, 0x26, 0x72,
+ 0xe9, 0x1e, 0xcb, 0x7f, 0x10, 0x93, 0x00, 0xf8,
+ 0xca, 0x02, 0x3e, 0x21, 0x99, 0xee, 0xae, 0x57,
+ 0x8d, 0xef, 0xa3, 0x29, 0xef, 0xb7, 0xfc, 0x11,
+ 0xf5, 0x8b, 0x19, 0xc7, 0xfb, 0x9c, 0xc7, 0xc1,
+ 0x7e, 0x35, 0x2c, 0x78, 0xd8, 0x15, 0x60, 0xe6,
+ 0xbf, 0xf5, 0xba, 0x21, 0xeb, 0x60, 0x94, 0x2e,
+ 0x37, 0xe2, 0xa8, 0x11, 0xab, 0xfd, 0xea, 0x26,
+ 0xab, 0x82, 0x6c, 0x24, 0x38, 0xbb, 0x56, 0x10,
+ 0x5b, 0xb9, 0xcb, 0xe7, 0xc2, 0xbe, 0x4c, 0xf7,
+ 0x43, 0xe8, 0xca, 0xeb, 0x6c, 0x57, 0xcb, 0x01,
+ 0xb7, 0x54, 0x84, 0x6a, 0x61, 0xe0, 0x37, 0x3a,
+ 0xe1, 0xfa, 0xae, 0x67, 0x06, 0x81, 0xbe, 0x4c,
+ 0x2a, 0xc8, 0xf1, 0x17, 0x75, 0xd3, 0xa9, 0x75,
+ 0xa7, 0xa9, 0x72, 0x6b, 0xe9, 0xd2, 0x32, 0x63,
+ 0x8b, 0x37, 0xf7, 0x45, 0xa4, 0x43, 0x9c, 0x2d,
+ 0x12, 0x40, 0x05, 0x9f, 0xe1, 0x97, 0xee, 0xdb,
+ 0x92, 0x6a, 0x98, 0xe4, 0x66, 0x83, 0xdb, 0x6e,
+ 0xdf, 0xbe, 0x53, 0x36, 0x68, 0x38, 0xb2, 0x6b,
+ 0x1c, 0x66, 0xe6, 0xc8, 0xfc, 0x1c, 0x25, 0x39,
+ 0xbf, 0xd7, 0x0e, 0x4c, 0x2d, 0x36, 0x78, 0xfe,
+ 0xdf, 0x47, 0x51, 0x19, 0xb1, 0xf2, 0x4b, 0xd8,
+ 0x55, 0xed, 0xab, 0x3d, 0x2e, 0x4a, 0x18, 0x78,
+ 0xb1, 0x29, 0x4a, 0xe9, 0xad, 0xab, 0xe8, 0xcf,
+ 0xa2, 0x8f, 0xf4, 0xc3, 0x70, 0x6b, 0x4d, 0x18,
+ 0xfa, 0x0d, 0xea, 0x9d, 0xf1, 0x81, 0x51, 0x05,
+ 0x85, 0x8f, 0x00, 0xb2, 0x6b, 0xfe, 0x64, 0xfe,
+ 0xbc, 0x65, 0xcd, 0x14, 0xcd, 0x65, 0xe8, 0xc6,
+ 0xe2, 0x21, 0xb8, 0x95, 0x5e, 0x62, 0xb5, 0x4d,
+ 0x98, 0x0e, 0x8e, 0xb2, 0xba, 0x9b, 0x07, 0xd4,
+ 0xa8, 0xb6, 0x01, 0xe4, 0xe6, 0x8f, 0xdc, 0x69,
+ 0x06, 0xe0, 0x0a, 0x53, 0x94, 0xef, 0x07, 0x05,
+ 0xb2, 0x33, 0x1d, 0xb4, 0x5a, 0x8f, 0x88, 0x24,
+ 0xee, 0x28, 0x61, 0x80, 0x58, 0x95, 0xc6, 0x1c,
+ 0x8d, 0xb3, 0xb1, 0x9c, 0x9c, 0x7a, 0x5e, 0xc6,
+ 0x75, 0xe1, 0x0a, 0x75, 0xce, 0xb6, 0xb2, 0x60,
+ 0x7b, 0xf8, 0x48, 0xb9, 0xd3, 0x62, 0x44, 0xa4,
+ 0x32, 0x00, 0xd7, 0xf5, 0xc9, 0x4e, 0xc4, 0xba,
+ 0x76, 0xf3, 0x6c, 0x25, 0x55, 0xd0, 0x69, 0x92,
+ 0x19, 0x10, 0xb5, 0xf6, 0x27, 0x50, 0xaa, 0x99,
+ 0x61, 0xfe, 0x6e, 0x6b, 0x94, 0xb2, 0x55, 0x69,
+ 0x9b, 0xd1, 0x93, 0x92, 0xdc, 0x68, 0xe3, 0x26,
+ 0x6a, 0xc7, 0xf4, 0xdf, 0x50, 0xcb, 0x94, 0x82,
+ 0x57, 0xe8, 0xc0, 0x50, 0xee, 0x21, 0xd0, 0x11,
+ 0xcc, 0x17, 0x9a, 0x40, 0xb9, 0x11, 0x54, 0xe9,
+ 0x20, 0x43, 0x97, 0x33, 0xfb, 0xda, 0x25, 0x67,
+ 0x94, 0x0d, 0x6e, 0x08, 0x59, 0x54, 0x75, 0xb5,
+ 0x3c, 0x85, 0x4f, 0xfe, 0x21, 0x1a, 0xc4, 0x74,
+ 0xdc, 0x1f, 0x3c, 0x1b, 0x6e, 0x8d, 0x66, 0xc2,
+ 0xdb, 0x6f, 0x02, 0x1a, 0x3d, 0x23, 0xc5, 0x14,
+ 0xbf, 0x9c, 0xb1, 0x87, 0x3f, 0x14, 0x82, 0x8b,
+ 0xe2, 0x20, 0x2a, 0x64, 0xe5, 0xb3, 0x1d, 0x2e
+//};
+//unsigned int sig_grpx_member0_sha256_bsn0_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg0_rl_singleentry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg0_rl_singleentry.inc
new file mode 100644
index 0000000000..ba9b3f4470
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg0_rl_singleentry.inc
@@ -0,0 +1,95 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha256_bsn0_msg0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x81, 0xa5, 0xa5, 0x8f, 0xe6, 0x4e, 0x18, 0x04,
+ 0x05, 0x46, 0xa1, 0x30, 0x84, 0xde, 0x4f, 0x09,
+ 0x36, 0x5f, 0x59, 0xbe, 0xc0, 0x4f, 0x4f, 0xbc,
+ 0xde, 0xd1, 0xd1, 0x11, 0x11, 0x07, 0x7a, 0x2d,
+ 0x89, 0x9c, 0x1b, 0x21, 0x34, 0xeb, 0x84, 0xc4,
+ 0x2c, 0x82, 0x63, 0xce, 0x98, 0x30, 0x22, 0xee,
+ 0x2c, 0xec, 0x90, 0x95, 0x66, 0x94, 0x74, 0xf5,
+ 0xef, 0xff, 0x74, 0xfa, 0xad, 0x61, 0x6f, 0x59,
+ 0x15, 0xdb, 0xf7, 0x26, 0xde, 0xc4, 0x1f, 0x31,
+ 0xe8, 0x4c, 0x11, 0xe6, 0x60, 0xdf, 0xc4, 0xde,
+ 0xa1, 0x42, 0xbb, 0x55, 0x22, 0x0e, 0xea, 0x5f,
+ 0xc0, 0xf7, 0x78, 0x8a, 0x15, 0xcd, 0xf4, 0x03,
+ 0x97, 0x1b, 0x88, 0xd7, 0xcc, 0x86, 0xaf, 0x54,
+ 0x65, 0xa1, 0x18, 0x10, 0x39, 0x53, 0x95, 0x1f,
+ 0x93, 0x74, 0x9b, 0xb7, 0x39, 0xc7, 0x9a, 0x81,
+ 0x72, 0x2b, 0x67, 0x12, 0xe3, 0x42, 0xbc, 0x76,
+ 0xb6, 0x03, 0xbe, 0xc2, 0x13, 0x7f, 0xb2, 0x86,
+ 0xc7, 0x20, 0x27, 0xcc, 0x30, 0x1e, 0xa7, 0xf2,
+ 0xfe, 0x96, 0x5b, 0x85, 0xa6, 0xac, 0xef, 0x41,
+ 0x1f, 0x12, 0xe7, 0x6f, 0x22, 0xea, 0xf1, 0xac,
+ 0xb3, 0x48, 0xef, 0xdf, 0x39, 0x11, 0xe3, 0x2f,
+ 0x16, 0x98, 0x77, 0x4f, 0x6f, 0x71, 0x40, 0x03,
+ 0xdf, 0xb7, 0xa3, 0x10, 0x08, 0xc7, 0xae, 0x77,
+ 0x87, 0x3d, 0xd6, 0x8b, 0xc8, 0xd4, 0x00, 0x05,
+ 0x4f, 0xd3, 0xb2, 0x21, 0x71, 0x28, 0x97, 0x2b,
+ 0xda, 0x05, 0x07, 0x87, 0x9e, 0x32, 0x24, 0xe7,
+ 0x0c, 0xa2, 0x37, 0x32, 0xf0, 0xfa, 0xec, 0x07,
+ 0x5e, 0x5e, 0xec, 0x45, 0xdd, 0xa3, 0x68, 0x4d,
+ 0x8a, 0x8b, 0xd5, 0xc3, 0x0d, 0x91, 0xd2, 0xc4,
+ 0x3d, 0x04, 0x24, 0xe9, 0xbc, 0x65, 0xb9, 0xee,
+ 0x2d, 0x52, 0xf7, 0x97, 0xe5, 0xa0, 0x84, 0x16,
+ 0x57, 0x53, 0xd5, 0x7b, 0xee, 0xb2, 0xa6, 0x9c,
+ 0x77, 0xad, 0x9d, 0x73, 0x0b, 0x53, 0xd8, 0x33,
+ 0x83, 0x8f, 0xb2, 0x7c, 0x2e, 0x4b, 0x12, 0xf2,
+ 0xbd, 0xbb, 0x7c, 0x25, 0x80, 0xa8, 0x04, 0x24,
+ 0x39, 0x90, 0x61, 0xdf, 0x72, 0x21, 0x05, 0xd3,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x5b, 0x9f, 0xd9, 0x96, 0x82, 0x57, 0x4c, 0xa7,
+ 0xd8, 0x66, 0xe6, 0x2f, 0x56, 0x46, 0x7a, 0xa4,
+ 0xa6, 0x74, 0x28, 0x38, 0xa2, 0x38, 0x28, 0xb3,
+ 0xb6, 0x5b, 0x95, 0xf5, 0xd6, 0x6c, 0x37, 0xb1,
+ 0x14, 0x59, 0xf6, 0x42, 0xe9, 0x5c, 0xee, 0x45,
+ 0x51, 0x5b, 0xe7, 0x3b, 0xd9, 0x0c, 0x44, 0x40,
+ 0x3a, 0x9b, 0x2d, 0x9a, 0xfb, 0x07, 0xdf, 0xe3,
+ 0x58, 0xdc, 0x3d, 0x62, 0xc0, 0x7c, 0x8f, 0xa9,
+ 0x32, 0x48, 0x7d, 0x8f, 0x4d, 0xe0, 0x26, 0x72,
+ 0xe9, 0x1e, 0xcb, 0x7f, 0x10, 0x93, 0x00, 0xf8,
+ 0xca, 0x02, 0x3e, 0x21, 0x99, 0xee, 0xae, 0x57,
+ 0x8d, 0xef, 0xa3, 0x29, 0xef, 0xb7, 0xfc, 0x11,
+ 0xf5, 0x8b, 0x19, 0xc7, 0xfb, 0x9c, 0xc7, 0xc1,
+ 0x7e, 0x35, 0x2c, 0x78, 0xd8, 0x15, 0x60, 0xe6,
+ 0xbf, 0xf5, 0xba, 0x21, 0xeb, 0x60, 0x94, 0x2e,
+ 0x37, 0xe2, 0xa8, 0x11, 0xab, 0xfd, 0xea, 0x26,
+ 0xab, 0x82, 0x6c, 0x24, 0x38, 0xbb, 0x56, 0x10,
+ 0x5b, 0xb9, 0xcb, 0xe7, 0xc2, 0xbe, 0x4c, 0xf7,
+ 0x43, 0xe8, 0xca, 0xeb, 0x6c, 0x57, 0xcb, 0x01,
+ 0xb7, 0x54, 0x84, 0x6a, 0x61, 0xe0, 0x37, 0x3a
+//};
+//unsigned int sig_grpx_member0_sha256_bsn0_msg0_dat_len = 520;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg1.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg1.inc
new file mode 100644
index 0000000000..28a6a45def
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn0_msg1.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "msg1"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_sha256_bsn0_msg1_dat[] = {
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x81, 0xa5, 0xa5, 0x8f, 0xe6, 0x4e, 0x18, 0x04,
+ 0x05, 0x46, 0xa1, 0x30, 0x84, 0xde, 0x4f, 0x09,
+ 0x36, 0x5f, 0x59, 0xbe, 0xc0, 0x4f, 0x4f, 0xbc,
+ 0xde, 0xd1, 0xd1, 0x11, 0x11, 0x07, 0x7a, 0x2d,
+ 0x89, 0x9c, 0x1b, 0x21, 0x34, 0xeb, 0x84, 0xc4,
+ 0x2c, 0x82, 0x63, 0xce, 0x98, 0x30, 0x22, 0xee,
+ 0x2c, 0xec, 0x90, 0x95, 0x66, 0x94, 0x74, 0xf5,
+ 0xef, 0xff, 0x74, 0xfa, 0xad, 0x61, 0x6f, 0x59,
+ 0x52, 0xbb, 0x68, 0x9d, 0x22, 0x68, 0x8c, 0xc4,
+ 0x51, 0x27, 0x21, 0x02, 0x87, 0x4a, 0xb0, 0x39,
+ 0x7e, 0xdc, 0xb8, 0xbb, 0x39, 0x08, 0x76, 0xac,
+ 0xbb, 0x39, 0xc7, 0x46, 0xed, 0xfa, 0xb2, 0x43,
+ 0xb2, 0xdb, 0xf9, 0xd5, 0x46, 0x9a, 0xc7, 0x6c,
+ 0xbd, 0xb3, 0x0b, 0x70, 0x4f, 0xcd, 0xf0, 0x12,
+ 0x15, 0x5f, 0x42, 0x56, 0x8c, 0xd9, 0x04, 0xef,
+ 0x67, 0xa0, 0x21, 0xe1, 0x97, 0x99, 0x50, 0x11,
+ 0x38, 0x67, 0x95, 0x92, 0x63, 0x14, 0xed, 0xa2,
+ 0x34, 0xdb, 0x2f, 0x70, 0x01, 0x3e, 0xf2, 0x68,
+ 0x86, 0x44, 0x76, 0x31, 0xd2, 0x82, 0xaa, 0x82,
+ 0x4f, 0x63, 0x86, 0xdb, 0xed, 0xa4, 0x9c, 0xff,
+ 0x3d, 0xeb, 0x80, 0xfe, 0x39, 0xf9, 0x27, 0xd0,
+ 0x27, 0x63, 0x25, 0xb0, 0x3f, 0x27, 0x6d, 0x53,
+ 0x74, 0xc7, 0x4c, 0xae, 0x75, 0x4e, 0x1c, 0xd0,
+ 0xb4, 0x0a, 0xd0, 0x15, 0x24, 0x40, 0x87, 0x17,
+ 0x56, 0x5d, 0xa6, 0xfb, 0x4d, 0x12, 0xc7, 0x2a,
+ 0x1c, 0x11, 0x5c, 0x81, 0x1d, 0x80, 0x82, 0x01,
+ 0xa5, 0x9b, 0x2b, 0x8a, 0xe5, 0x1a, 0x77, 0x36,
+ 0xcb, 0x40, 0xb1, 0xbd, 0x60, 0x1c, 0x92, 0x0c,
+ 0xbf, 0xa6, 0xe5, 0xd4, 0x2b, 0x26, 0xa9, 0x99,
+ 0xf4, 0x64, 0x8e, 0x35, 0xaa, 0xab, 0x3f, 0x5f,
+ 0x8c, 0x35, 0x09, 0xb6, 0x96, 0x09, 0x93, 0x35,
+ 0xe3, 0x77, 0xfb, 0xb0, 0x2f, 0xa0, 0xd2, 0x69,
+ 0x8f, 0x13, 0xe1, 0x03, 0x87, 0x4e, 0xdf, 0xdd,
+ 0x67, 0x14, 0x3b, 0xb0, 0x1e, 0x43, 0xbe, 0x75,
+ 0x38, 0x1a, 0x06, 0xee, 0xab, 0xa8, 0x67, 0xf2,
+ 0x67, 0x97, 0x2c, 0x36, 0x24, 0x62, 0x48, 0x61,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x69, 0x60, 0x39, 0xdb, 0xa7, 0x11, 0xf4, 0xa3,
+ 0xee, 0x42, 0x45, 0xcf, 0x2a, 0x2b, 0xfc, 0xe0,
+ 0x95, 0x0c, 0x30, 0x14, 0xee, 0x49, 0xdc, 0x75,
+ 0xf1, 0xcc, 0xeb, 0xec, 0x6e, 0xdc, 0xd2, 0xf3,
+ 0x89, 0x9f, 0xfc, 0xd3, 0x18, 0xfe, 0xb1, 0x49,
+ 0x0f, 0x97, 0xea, 0xa1, 0x43, 0xb4, 0xef, 0xac,
+ 0xd8, 0x5f, 0x29, 0x87, 0x00, 0x7a, 0x81, 0xdc,
+ 0x89, 0xb1, 0x74, 0x18, 0x93, 0xa0, 0x19, 0x3b,
+ 0x22, 0x27, 0xe3, 0x8c, 0x3f, 0x09, 0x20, 0x4d,
+ 0x23, 0x8b, 0xab, 0x97, 0xa3, 0xfa, 0xc5, 0x03,
+ 0x7e, 0x62, 0xa0, 0xcc, 0x8b, 0x0e, 0x3a, 0x17,
+ 0xb7, 0x5d, 0xcd, 0x51, 0xf2, 0x52, 0x1a, 0x0f,
+ 0x6d, 0xb2, 0xd8, 0xf6, 0xc4, 0x2b, 0xbd, 0xcb,
+ 0xe8, 0x80, 0x6d, 0xe8, 0x29, 0x64, 0xdb, 0xb9,
+ 0x7f, 0x63, 0xb0, 0x42, 0x12, 0xdd, 0x57, 0x89,
+ 0x3b, 0x65, 0xee, 0xc0, 0x5a, 0x53, 0x83, 0x81,
+ 0xf6, 0xe1, 0x96, 0x33, 0xc0, 0x59, 0x7d, 0x65,
+ 0x20, 0x37, 0xd6, 0xd0, 0xcf, 0xae, 0xbb, 0x00,
+ 0x19, 0x29, 0xbc, 0x03, 0xe1, 0xb4, 0x97, 0x8a,
+ 0x00, 0xde, 0xd3, 0xce, 0x52, 0x52, 0xd4, 0x48,
+ 0x16, 0xed, 0xe6, 0xee, 0x09, 0x83, 0x12, 0xc8,
+ 0x70, 0xc9, 0x4a, 0x0c, 0x11, 0x3a, 0xa1, 0x2a,
+ 0x4a, 0xd4, 0xf4, 0x22, 0xa6, 0x6d, 0x3e, 0xb8,
+ 0x35, 0x6b, 0x1e, 0x75, 0xa0, 0xb4, 0x43, 0xcd,
+ 0x65, 0xe7, 0x62, 0x17, 0x3d, 0x2e, 0x83, 0xda,
+ 0x79, 0xea, 0x23, 0x5f, 0xba, 0x73, 0x2c, 0x15,
+ 0x0b, 0x38, 0x0a, 0x9b, 0x28, 0x66, 0x5f, 0x4e,
+ 0x2e, 0x0d, 0x41, 0x21, 0x83, 0x4a, 0x8d, 0xa1,
+ 0x0e, 0xf6, 0xc4, 0xf5, 0x7d, 0x77, 0x65, 0x75,
+ 0xba, 0xcd, 0xc9, 0x97, 0xc7, 0x45, 0xd1, 0x84,
+ 0xcb, 0xac, 0xe6, 0x75, 0x60, 0xd0, 0x1f, 0xff,
+ 0x07, 0xe1, 0x81, 0x50, 0x76, 0x64, 0x62, 0x2a,
+ 0x82, 0xc3, 0x85, 0x08, 0x0c, 0xe1, 0x96, 0xbd,
+ 0xf3, 0x92, 0x4d, 0x24, 0x58, 0x0f, 0x02, 0x45,
+ 0x23, 0x92, 0x6d, 0xab, 0x30, 0x2e, 0x91, 0x7a,
+ 0xab, 0x99, 0xb6, 0xc8, 0xe4, 0xea, 0x51, 0x84,
+ 0x54, 0xc7, 0xe3, 0x37, 0x8f, 0x90, 0xd0, 0x71,
+ 0x4b, 0x34, 0xfc, 0xaf, 0x41, 0xcf, 0x78, 0xe7,
+ 0x0a, 0xe8, 0x83, 0xf5, 0xa6, 0x5c, 0x6d, 0x83,
+ 0x24, 0xed, 0x52, 0xb5, 0x0f, 0x65, 0xf8, 0x9c,
+ 0x3b, 0xa3, 0x15, 0xd6, 0xa5, 0xf4, 0x00, 0xd4,
+ 0xf4, 0xdb, 0x43, 0xc2, 0x02, 0x40, 0x14, 0x75,
+ 0x13, 0x7e, 0xdb, 0xc5, 0xf2, 0x9c, 0xea, 0x44,
+ 0x9b, 0x0a, 0x56, 0xfd, 0x97, 0xa5, 0xc5, 0x14,
+ 0xc4, 0xe2, 0x0d, 0x79, 0xe3, 0xd3, 0x7a, 0x64,
+ 0x83, 0x7c, 0x82, 0xba, 0x94, 0x0e, 0xba, 0xef,
+ 0x9a, 0x8a, 0x87, 0xf7, 0x8b, 0x53, 0x62, 0xae,
+ 0xa4, 0x9f, 0xff, 0xe4, 0xdf, 0x30, 0x71, 0x8f,
+ 0x72, 0x3d, 0xd1, 0xfa, 0xff, 0x5f, 0x8f, 0x13,
+ 0x8f, 0xf8, 0x65, 0xe9, 0xa2, 0xd9, 0x07, 0x2a,
+ 0x5b, 0x87, 0x2b, 0x3c, 0x43, 0x33, 0xdd, 0xf6,
+ 0x95, 0x0d, 0x43, 0x77, 0xc6, 0x65, 0x74, 0xe4,
+ 0xbc, 0xcf, 0x6a, 0x88, 0xcc, 0xda, 0x16, 0xe0,
+ 0xd7, 0xab, 0xe7, 0x46, 0xbe, 0x08, 0x0f, 0x6a,
+ 0x4b, 0x8d, 0xa3, 0xf4, 0xee, 0xc5, 0x83, 0xff,
+ 0x98, 0xee, 0x19, 0x2c, 0x7b, 0x81, 0xd4, 0x2e,
+ 0xb8, 0x04, 0x3c, 0x4f, 0xdb, 0xc7, 0x9c, 0x9c,
+ 0x8e, 0x2f, 0x77, 0x86, 0x6e, 0x7c, 0xbe, 0xc6,
+ 0x5e, 0x70, 0xc1, 0x4b, 0x0b, 0x2d, 0x07, 0x2a,
+ 0xa1, 0xfd, 0x63, 0x2d, 0xc5, 0x4c, 0x63, 0x36
+//};
+//unsigned int sig_sha256_bsn0_msg1_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn1_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn1_msg0.inc
new file mode 100644
index 0000000000..fd1131e6d1
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_bsn1_msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn1"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_sha256_bsn1_msg0_dat[] = {
+ 0x4b, 0xb3, 0x62, 0x6c, 0xa5, 0x12, 0xaa, 0x7a,
+ 0x22, 0x7f, 0xde, 0xf0, 0x8f, 0x1e, 0x3c, 0xc8,
+ 0xda, 0x5f, 0x2f, 0x6d, 0x3b, 0xd0, 0x42, 0xec,
+ 0x62, 0xbf, 0x3c, 0x0f, 0xae, 0xd4, 0xf9, 0xa0,
+ 0x56, 0xc9, 0xd5, 0x33, 0xaa, 0x60, 0xab, 0x86,
+ 0x15, 0x48, 0xc2, 0xbb, 0xda, 0x3f, 0x37, 0x71,
+ 0x3e, 0xf2, 0xd5, 0x3c, 0xd3, 0xb9, 0x08, 0xa0,
+ 0x63, 0x26, 0x6e, 0x26, 0xca, 0x93, 0xc1, 0xe1,
+ 0x03, 0x2e, 0xff, 0xad, 0xc8, 0xb1, 0x8f, 0x26,
+ 0x16, 0x61, 0x4f, 0x33, 0x19, 0x45, 0xb8, 0x0c,
+ 0xb3, 0x0e, 0x19, 0x98, 0xfc, 0x32, 0x83, 0xc2,
+ 0x58, 0x60, 0x12, 0x5c, 0xc6, 0xa8, 0x36, 0xc2,
+ 0xf6, 0xd4, 0x99, 0xb2, 0x44, 0x19, 0xef, 0xf0,
+ 0x75, 0x76, 0x6e, 0x63, 0xc4, 0x3f, 0x21, 0x5d,
+ 0x47, 0xa4, 0xf6, 0x90, 0x16, 0xa6, 0x18, 0xa4,
+ 0xe7, 0xc6, 0xff, 0x47, 0xb9, 0x9d, 0x99, 0x8a,
+ 0x12, 0x4d, 0xb7, 0xe4, 0xf1, 0x42, 0x1d, 0x8b,
+ 0x0f, 0x71, 0xac, 0xc7, 0xd4, 0xe0, 0x46, 0x7e,
+ 0x71, 0x36, 0x6c, 0x10, 0xa5, 0x93, 0xdc, 0x17,
+ 0xb6, 0x40, 0x7d, 0xa4, 0x8a, 0xf7, 0xf1, 0x9d,
+ 0x48, 0x41, 0xd3, 0xd1, 0x01, 0xbe, 0x28, 0xdf,
+ 0x50, 0x56, 0x1e, 0xf2, 0x0d, 0x47, 0x4e, 0x8d,
+ 0x11, 0x57, 0xe1, 0x5f, 0x41, 0xb2, 0x8e, 0x05,
+ 0xa2, 0xac, 0xb9, 0x05, 0x5a, 0xc4, 0x71, 0xb8,
+ 0x8a, 0xf2, 0xf1, 0xb0, 0x9e, 0x5e, 0xcf, 0xa9,
+ 0x83, 0xb4, 0x57, 0x1d, 0xe9, 0x6c, 0xda, 0xf5,
+ 0x3c, 0x90, 0xc0, 0x0e, 0xc2, 0xc3, 0x60, 0xd7,
+ 0x19, 0x61, 0xf7, 0x9b, 0x95, 0x3d, 0x16, 0xed,
+ 0x01, 0x60, 0xd0, 0xe2, 0x3b, 0x83, 0xd9, 0x3b,
+ 0xda, 0xe7, 0x8a, 0x4b, 0xdd, 0xfa, 0xcd, 0x4e,
+ 0xbf, 0xd1, 0x70, 0x57, 0xd0, 0x63, 0x56, 0xee,
+ 0xea, 0x76, 0x33, 0x59, 0xcc, 0xfb, 0x25, 0xc7,
+ 0x20, 0x9d, 0x74, 0x8f, 0x13, 0x68, 0xdb, 0x64,
+ 0x02, 0x20, 0x5b, 0x3a, 0xd2, 0x59, 0x78, 0xd4,
+ 0xf3, 0x53, 0x43, 0x9f, 0xcc, 0x3f, 0x4d, 0x9a,
+ 0x23, 0x2d, 0xdb, 0x71, 0xda, 0x25, 0x94, 0x0c,
+ 0xaa, 0xd9, 0x9a, 0x6a, 0x1c, 0x5d, 0xd1, 0xfe,
+ 0xf5, 0x19, 0xf7, 0x03, 0xe7, 0x74, 0x1b, 0x6f,
+ 0x37, 0x93, 0x3a, 0xc4, 0x4e, 0xdb, 0x72, 0xfb,
+ 0xfc, 0x81, 0xcc, 0xf9, 0x0e, 0x27, 0x55, 0x0d,
+ 0xb5, 0x48, 0xe9, 0xb7, 0x26, 0xa7, 0xf4, 0x2a,
+ 0x74, 0x93, 0xb8, 0x0d, 0x2b, 0xf8, 0x48, 0x18,
+ 0xde, 0x13, 0x7b, 0x5a, 0x33, 0xda, 0x46, 0x5b,
+ 0x10, 0xce, 0xe9, 0x94, 0x98, 0x97, 0xaf, 0x67,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xa2, 0xa8, 0xe1, 0x74, 0xe4, 0x4e, 0x10, 0xcc,
+ 0xbe, 0x17, 0x43, 0xb0, 0x5f, 0xd5, 0x66, 0x1c,
+ 0xbe, 0xf8, 0xfe, 0x35, 0xa0, 0x99, 0x9b, 0x24,
+ 0x16, 0x73, 0xd3, 0xcb, 0x31, 0x96, 0x2f, 0xab,
+ 0xd1, 0x7c, 0xdb, 0xf9, 0x82, 0xfc, 0xd5, 0x38,
+ 0x2d, 0x76, 0x3e, 0x9a, 0x13, 0x39, 0x63, 0x71,
+ 0xe8, 0x1a, 0xea, 0x20, 0xbf, 0xcb, 0x81, 0x4d,
+ 0xe7, 0xc6, 0xb9, 0xbb, 0x9f, 0x9e, 0x97, 0x93,
+ 0xc9, 0xe3, 0x6a, 0xca, 0xc0, 0x3b, 0xd6, 0x23,
+ 0xb3, 0x66, 0xf5, 0x6a, 0x02, 0x63, 0x46, 0xbf,
+ 0xa0, 0xbd, 0x94, 0x92, 0x59, 0x2b, 0x06, 0x71,
+ 0xb7, 0xcc, 0x00, 0xc0, 0xb1, 0x12, 0x21, 0x34,
+ 0xb7, 0xdb, 0x08, 0x1e, 0x57, 0x12, 0x72, 0x5b,
+ 0x9c, 0xee, 0x22, 0x73, 0x7a, 0xf8, 0x75, 0x31,
+ 0x2f, 0xa3, 0x1f, 0xea, 0x3d, 0x45, 0x3e, 0xfd,
+ 0xf6, 0x13, 0xcf, 0xa9, 0x16, 0xc6, 0xe5, 0xb7,
+ 0x7c, 0xf7, 0x87, 0x95, 0x6a, 0xc7, 0xc9, 0x79,
+ 0x09, 0x17, 0x9e, 0xe6, 0xb1, 0x8f, 0x96, 0x14,
+ 0x86, 0xc6, 0xa2, 0xbe, 0xb0, 0x4a, 0x54, 0x65,
+ 0xb3, 0x80, 0xef, 0xf5, 0xc0, 0x40, 0xa3, 0xde,
+ 0x6b, 0x31, 0xaa, 0x49, 0x21, 0xfa, 0x0c, 0x83,
+ 0x54, 0xdf, 0xe3, 0x17, 0xf1, 0x2a, 0xa4, 0x73,
+ 0x6d, 0x1f, 0x97, 0xcb, 0x23, 0x29, 0x1d, 0x7e,
+ 0xf3, 0x9f, 0x7b, 0xcc, 0x3c, 0x48, 0xc1, 0x18,
+ 0xe3, 0x07, 0xb6, 0x7d, 0x32, 0x32, 0xce, 0xfa,
+ 0x8d, 0x9d, 0xba, 0x42, 0x4a, 0x45, 0xe6, 0x7b,
+ 0x02, 0x7c, 0x53, 0x7d, 0x21, 0x8e, 0x6f, 0x35,
+ 0x4f, 0xb2, 0x1b, 0xe2, 0x2d, 0xdb, 0x9c, 0xef,
+ 0x3e, 0x58, 0x58, 0x8d, 0x11, 0xc2, 0xec, 0xfa,
+ 0x99, 0x13, 0x86, 0x1a, 0xe6, 0x14, 0x95, 0x70,
+ 0x4d, 0xf4, 0xe4, 0x7f, 0xde, 0x95, 0x29, 0xcf,
+ 0x93, 0x4c, 0xac, 0x79, 0x99, 0xcf, 0xbe, 0x1f,
+ 0x1c, 0x4b, 0x29, 0x29, 0x24, 0xf6, 0xbe, 0x9f,
+ 0xf2, 0x0f, 0x67, 0xae, 0x4d, 0x0d, 0xe3, 0x17,
+ 0x79, 0xcf, 0x65, 0xfd, 0x6f, 0x12, 0x64, 0xc6,
+ 0x9e, 0x2d, 0xcc, 0x3b, 0x2c, 0x94, 0x42, 0x63,
+ 0x86, 0x06, 0x00, 0xa7, 0x37, 0x06, 0x92, 0x15,
+ 0x02, 0xc6, 0x34, 0xeb, 0xa6, 0x17, 0xfe, 0x90,
+ 0x0d, 0xd1, 0x85, 0x5c, 0x77, 0x3a, 0x2b, 0x96,
+ 0xf1, 0x21, 0x07, 0xb5, 0x7c, 0x38, 0xb1, 0x4d,
+ 0x02, 0x43, 0xa9, 0x11, 0x65, 0x4d, 0x34, 0x64,
+ 0x72, 0x6a, 0x41, 0xb3, 0x8f, 0xf5, 0x2c, 0x9c,
+ 0xec, 0x3b, 0x48, 0xd0, 0xd5, 0xa9, 0x37, 0xf5,
+ 0x1f, 0x3e, 0x54, 0x62, 0xde, 0xed, 0x9e, 0x8a,
+ 0x0e, 0x22, 0x36, 0x2c, 0xc8, 0x2c, 0xf5, 0xc0,
+ 0xf6, 0xc9, 0x08, 0x73, 0x4a, 0xaf, 0x83, 0x8f,
+ 0xd6, 0x17, 0xe9, 0xf3, 0x01, 0xe3, 0xa3, 0x55,
+ 0xfd, 0x2d, 0x9d, 0xa7, 0x04, 0xa8, 0x09, 0x23,
+ 0xc0, 0x22, 0x74, 0x8e, 0xd4, 0xd4, 0x78, 0x75,
+ 0x6f, 0x33, 0xe8, 0xb9, 0xd7, 0x3c, 0x72, 0xb5,
+ 0x73, 0x78, 0x60, 0x4b, 0xcf, 0x2e, 0x22, 0x60,
+ 0x28, 0xa1, 0x8e, 0xcc, 0x1d, 0x20, 0xfa, 0x32,
+ 0x16, 0xce, 0x2b, 0x90, 0x62, 0xf3, 0x4d, 0x52,
+ 0x26, 0x05, 0x7d, 0xad, 0x07, 0x6d, 0x21, 0x55,
+ 0x34, 0x24, 0x21, 0xb2, 0x79, 0x14, 0x1c, 0x64,
+ 0x16, 0x1c, 0x14, 0x8b, 0x19, 0xf7, 0x03, 0x87,
+ 0xde, 0xe1, 0xdf, 0x9b, 0xa9, 0x86, 0x79, 0xdf,
+ 0x0f, 0x99, 0x09, 0x93, 0x96, 0x15, 0x79, 0x27,
+ 0x40, 0x53, 0x06, 0x73, 0x59, 0x19, 0x8d, 0x4f,
+ 0xd0, 0x09, 0xd3, 0x09, 0x23, 0x4f, 0x12, 0xec
+//};
+//unsigned int sig_sha256_bsn1_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_rndbase_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_rndbase_msg0.inc
new file mode 100644
index 0000000000..824f0ef856
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_rndbase_msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: None (random base)
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha256_rndbase_msg0_dat[] = {
+ 0x69, 0x77, 0x85, 0xee, 0xf5, 0x5f, 0x69, 0xd7,
+ 0x6f, 0x22, 0x49, 0x4f, 0xbb, 0x83, 0x73, 0x2e,
+ 0x91, 0xf1, 0x94, 0x48, 0x1b, 0x06, 0x4a, 0xf7,
+ 0x90, 0x07, 0x07, 0x2e, 0xb5, 0x65, 0xc8, 0xed,
+ 0x3e, 0x48, 0xb8, 0xc1, 0x7e, 0x20, 0x79, 0xd3,
+ 0xe0, 0x49, 0x3f, 0x10, 0x40, 0x41, 0x39, 0x59,
+ 0xa6, 0xfe, 0xe7, 0xcf, 0x21, 0x29, 0x37, 0x1b,
+ 0xef, 0xc0, 0xf0, 0x37, 0x49, 0x75, 0x6d, 0x66,
+ 0x4f, 0x31, 0x71, 0x23, 0x0e, 0x3a, 0x03, 0x00,
+ 0x9e, 0xcd, 0xc4, 0x70, 0xaa, 0x97, 0x02, 0xf7,
+ 0x1c, 0x49, 0x45, 0xac, 0xd9, 0xe7, 0x46, 0x20,
+ 0x36, 0xe8, 0x23, 0x57, 0xee, 0x5e, 0x6b, 0x6d,
+ 0x1a, 0xf4, 0x04, 0x1d, 0xd5, 0xb0, 0x81, 0x0c,
+ 0xe4, 0xd6, 0x01, 0x39, 0x35, 0xe2, 0x38, 0xb9,
+ 0xea, 0xc1, 0x35, 0xc0, 0x91, 0x39, 0x0e, 0xe6,
+ 0x6a, 0x45, 0x5e, 0xe1, 0x06, 0xa3, 0x5b, 0x09,
+ 0x6a, 0xd8, 0xe4, 0x61, 0x35, 0x72, 0x8d, 0x22,
+ 0x53, 0xd0, 0x96, 0xc3, 0xd9, 0x32, 0x21, 0x87,
+ 0x6f, 0xaa, 0x41, 0x4f, 0x90, 0x75, 0x01, 0x57,
+ 0x2a, 0xab, 0x38, 0xc7, 0x5d, 0xd5, 0xdd, 0x6b,
+ 0xfb, 0xde, 0xd8, 0x25, 0xa4, 0x14, 0x7f, 0x87,
+ 0x55, 0x78, 0x4b, 0xf5, 0x87, 0x15, 0x1d, 0xdb,
+ 0x59, 0xc1, 0xb4, 0x92, 0x52, 0x06, 0xfb, 0x96,
+ 0x9a, 0xf2, 0x05, 0x9e, 0xa7, 0x57, 0xf2, 0xa5,
+ 0xcf, 0xe8, 0x5e, 0x61, 0x59, 0xd0, 0x81, 0xab,
+ 0x97, 0xdd, 0x5c, 0x90, 0x1c, 0x21, 0x5b, 0x48,
+ 0x5d, 0x93, 0x71, 0x98, 0x46, 0x6b, 0x2c, 0x8b,
+ 0xa3, 0xce, 0x5a, 0xed, 0x8e, 0x76, 0x92, 0x75,
+ 0x5b, 0x9b, 0x09, 0x5a, 0x9a, 0x06, 0xde, 0xc5,
+ 0x33, 0x73, 0xc5, 0xdb, 0x14, 0x5b, 0x82, 0x8b,
+ 0xd2, 0xdd, 0xf1, 0x1d, 0xc8, 0x1a, 0x6b, 0x16,
+ 0xba, 0x19, 0xa4, 0x0d, 0xaa, 0x11, 0xb7, 0x2c,
+ 0x88, 0x8d, 0xde, 0x94, 0x6a, 0x3d, 0xbf, 0x52,
+ 0x95, 0x10, 0xad, 0xa5, 0x2b, 0x9d, 0xd3, 0xc3,
+ 0x07, 0x60, 0x4e, 0x37, 0xed, 0x0f, 0xb5, 0xeb,
+ 0xd1, 0xda, 0x8a, 0xec, 0x54, 0xbd, 0xad, 0xbf,
+ 0x88, 0xaf, 0xca, 0x23, 0xdf, 0xd5, 0x84, 0xc4,
+ 0xa5, 0x21, 0x3f, 0x53, 0x8b, 0xe9, 0x3c, 0xbe,
+ 0x2c, 0xf6, 0xa5, 0x27, 0xe2, 0x18, 0x16, 0xe4,
+ 0x9f, 0xfb, 0xe3, 0x17, 0x58, 0x6e, 0xc6, 0x87,
+ 0x5e, 0x2a, 0x33, 0xcd, 0x02, 0xa3, 0x94, 0x2a,
+ 0x8f, 0x09, 0x6d, 0x6b, 0x0a, 0x4e, 0x62, 0x29,
+ 0xe9, 0x40, 0xf2, 0xba, 0xfc, 0x6b, 0x7d, 0x96,
+ 0x3f, 0x7e, 0x86, 0x19, 0x5d, 0x5f, 0xb4, 0xdd,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x9a, 0x32, 0x23, 0x75, 0xc3, 0x6c, 0x8a, 0x37,
+ 0xc0, 0xf2, 0x2a, 0xd6, 0x8e, 0xbc, 0x91, 0x68,
+ 0xf9, 0xd5, 0xc2, 0x85, 0x26, 0x61, 0x9c, 0xed,
+ 0x01, 0xcd, 0x5b, 0xd9, 0xa0, 0xc0, 0x75, 0xa8,
+ 0x36, 0x7c, 0xc3, 0x2f, 0x57, 0x3c, 0x46, 0xc5,
+ 0x57, 0x6a, 0x0b, 0x96, 0xe5, 0x6b, 0x3d, 0x45,
+ 0x10, 0xe1, 0x4f, 0xd1, 0x11, 0xa9, 0x3b, 0xe1,
+ 0x34, 0xbb, 0x30, 0xbc, 0x6b, 0x86, 0x2c, 0x01,
+ 0x35, 0x38, 0x26, 0x75, 0x15, 0x9f, 0x35, 0x7a,
+ 0xb7, 0x47, 0xe0, 0x72, 0xa4, 0x42, 0x90, 0x00,
+ 0x86, 0xea, 0xdf, 0xc1, 0x19, 0xee, 0x9d, 0x44,
+ 0xe4, 0x2c, 0x4a, 0x33, 0xea, 0x5c, 0x8c, 0x1e,
+ 0xc3, 0x93, 0x1b, 0x51, 0x00, 0x5f, 0x71, 0xb6,
+ 0xc5, 0xb0, 0x94, 0x9c, 0x45, 0x1f, 0xef, 0x1d,
+ 0x1f, 0xd6, 0x1b, 0xb9, 0xa4, 0xcf, 0xe6, 0xf1,
+ 0x48, 0xcd, 0xbe, 0x78, 0xb1, 0xf7, 0x0c, 0x01,
+ 0xd7, 0x64, 0xc7, 0xeb, 0x23, 0x20, 0x21, 0x49,
+ 0xfb, 0x71, 0xf3, 0xc3, 0x63, 0x94, 0x9c, 0x91,
+ 0x2f, 0xd6, 0xbe, 0x79, 0x43, 0x83, 0x14, 0x17,
+ 0xe4, 0x2a, 0x8c, 0xac, 0x02, 0x68, 0xec, 0x71,
+ 0x88, 0xc5, 0xfa, 0xb8, 0x98, 0x0e, 0xd7, 0x19,
+ 0x1d, 0x1a, 0x3d, 0x86, 0x2c, 0xb4, 0xc3, 0x03,
+ 0x7b, 0x2a, 0xa7, 0xb5, 0x69, 0x73, 0x0e, 0x0e,
+ 0xe0, 0x67, 0x04, 0xc1, 0x71, 0xa9, 0x29, 0x46,
+ 0x71, 0x96, 0x4f, 0x64, 0x27, 0xac, 0x7a, 0x10,
+ 0x70, 0xc5, 0x5f, 0x5b, 0xca, 0x3e, 0xb3, 0xcc,
+ 0x9a, 0xe9, 0xa5, 0x03, 0x7b, 0x93, 0x2b, 0x77,
+ 0xdd, 0xd5, 0xc2, 0x0a, 0x78, 0xef, 0x7c, 0x3a,
+ 0xea, 0x6e, 0xa4, 0xf7, 0x65, 0x50, 0x01, 0xdd,
+ 0x0e, 0x60, 0xef, 0x40, 0xb2, 0x28, 0xdc, 0xa9,
+ 0x7f, 0x1a, 0x98, 0x3d, 0x8d, 0xd4, 0xa0, 0xd6,
+ 0xec, 0xe3, 0x2f, 0x1e, 0x48, 0xa6, 0x88, 0x8f,
+ 0xe4, 0x25, 0xdc, 0xdf, 0xd5, 0xfa, 0x6d, 0x16,
+ 0x94, 0xbb, 0xf7, 0xe0, 0x4f, 0x6b, 0xb7, 0x49,
+ 0x5c, 0x89, 0xde, 0x9f, 0xeb, 0x7b, 0xad, 0xda,
+ 0x57, 0x5e, 0xae, 0xa5, 0xd6, 0xfd, 0xa4, 0x20,
+ 0x07, 0x12, 0x12, 0x73, 0x56, 0x6d, 0xb8, 0x65,
+ 0x41, 0x7a, 0xdb, 0xc6, 0x25, 0x19, 0xea, 0x1c,
+ 0x83, 0x4c, 0x48, 0x77, 0x92, 0x14, 0x97, 0xe5,
+ 0x3c, 0x90, 0x4d, 0x5a, 0xb0, 0x7a, 0xab, 0xc5,
+ 0xa4, 0xdc, 0x52, 0x24, 0x75, 0xe1, 0x8f, 0x8e,
+ 0x53, 0x39, 0x1e, 0x2d, 0x95, 0x2d, 0xd3, 0xa4,
+ 0x01, 0x6a, 0x9f, 0x85, 0x5b, 0xd2, 0xe5, 0xa9,
+ 0x56, 0x0e, 0xdf, 0x89, 0x6e, 0xaa, 0x0a, 0x68,
+ 0x9c, 0x47, 0x94, 0x0d, 0xb7, 0xeb, 0x8b, 0x2e,
+ 0xdb, 0x8d, 0x99, 0xf5, 0x7b, 0x34, 0xc1, 0x19,
+ 0xd6, 0xf3, 0x42, 0x8a, 0xba, 0x50, 0xe1, 0xb1,
+ 0x26, 0xf6, 0x8a, 0x21, 0x24, 0xa4, 0xe3, 0xb5,
+ 0x93, 0x84, 0xed, 0x41, 0x74, 0x8a, 0x39, 0x6a,
+ 0xf9, 0xb9, 0x25, 0x2e, 0x71, 0x8e, 0x37, 0x6a,
+ 0x17, 0x8a, 0x3b, 0x91, 0x4e, 0x3f, 0x93, 0x10,
+ 0x6e, 0xe9, 0xa9, 0xde, 0x10, 0x87, 0x3b, 0xbb,
+ 0x8c, 0x80, 0xc8, 0xd0, 0x23, 0x01, 0xfc, 0x46,
+ 0x38, 0x39, 0x6c, 0xf9, 0x3b, 0xff, 0x4b, 0xbf,
+ 0xd8, 0xee, 0xf1, 0xf7, 0x5a, 0x71, 0x6c, 0x17,
+ 0xd9, 0x7b, 0x0e, 0x5d, 0x14, 0x02, 0x6b, 0xd9,
+ 0x2d, 0x6d, 0xe2, 0xb4, 0xc8, 0xa2, 0xc1, 0xad,
+ 0x1c, 0x5f, 0x27, 0x0e, 0xd1, 0xd7, 0xf4, 0xa0,
+ 0xd6, 0x54, 0xc2, 0x94, 0x02, 0x50, 0xe1, 0xdc,
+ 0x82, 0xf2, 0x33, 0x2e, 0x46, 0xf2, 0x80, 0x83
+//};
+//unsigned int sig_grpx_member0_sha256_rndbase_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_rndbase_msg1.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_rndbase_msg1.inc
new file mode 100644
index 0000000000..27de6e3ed1
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha256_rndbase_msg1.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "msg1"
+ * Basename: None (random base)
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_sha256_rndbase_msg1_dat[] = {
+ 0xfc, 0x15, 0xdf, 0x05, 0x15, 0xad, 0xda, 0xbe,
+ 0x91, 0x78, 0xba, 0x72, 0x1f, 0x32, 0xd0, 0x5d,
+ 0xcb, 0x08, 0xbd, 0x8f, 0x37, 0xa8, 0x6b, 0xfe,
+ 0x58, 0x5f, 0xe4, 0x66, 0xb9, 0xbc, 0x2d, 0x68,
+ 0x21, 0xa2, 0xa7, 0x4b, 0x37, 0x50, 0x56, 0x1f,
+ 0xae, 0x20, 0xf0, 0x33, 0x29, 0xd0, 0xec, 0x64,
+ 0xde, 0xd5, 0xf4, 0x08, 0x75, 0xa1, 0xf1, 0x73,
+ 0xea, 0x20, 0x1e, 0x4e, 0x9d, 0x7f, 0x26, 0xdb,
+ 0x19, 0xb7, 0x3e, 0xe9, 0x16, 0x76, 0xc8, 0x24,
+ 0x89, 0x08, 0x03, 0xfd, 0xad, 0x7f, 0x9e, 0x88,
+ 0x5f, 0x4a, 0x99, 0x0c, 0xcf, 0x60, 0x9b, 0xaf,
+ 0x14, 0xcc, 0x1f, 0xc8, 0x0e, 0x5a, 0xe6, 0x97,
+ 0x13, 0xbf, 0x26, 0x98, 0x64, 0xd8, 0xc7, 0x7e,
+ 0xba, 0x94, 0x6b, 0x85, 0x7d, 0xda, 0xc6, 0x2f,
+ 0x37, 0x21, 0xd7, 0xc8, 0x57, 0xa4, 0xff, 0x43,
+ 0x66, 0xd0, 0xf1, 0x9f, 0x2c, 0xc3, 0xda, 0x28,
+ 0x9d, 0x1d, 0x29, 0x02, 0xd0, 0x2e, 0xf9, 0x3a,
+ 0xa6, 0xb2, 0x24, 0x60, 0x9c, 0x6f, 0x71, 0x90,
+ 0xc4, 0x32, 0x71, 0x24, 0xfb, 0xec, 0xbe, 0xca,
+ 0x66, 0x44, 0x12, 0x4f, 0x39, 0x5f, 0x1e, 0xbe,
+ 0x55, 0xb1, 0x33, 0xff, 0x1a, 0xf9, 0x73, 0xfc,
+ 0x57, 0xfe, 0x0d, 0x6e, 0xd5, 0x55, 0x22, 0xc2,
+ 0x02, 0x41, 0x10, 0x11, 0x77, 0xb7, 0x12, 0x67,
+ 0xc6, 0xc9, 0x24, 0x89, 0x4b, 0x4c, 0x55, 0xf0,
+ 0xa1, 0xfb, 0x06, 0xb6, 0x35, 0x52, 0xbd, 0x06,
+ 0xb9, 0x6a, 0xc3, 0x8d, 0xd9, 0x8f, 0x03, 0x35,
+ 0x49, 0x78, 0x93, 0xdc, 0xef, 0xd8, 0xf1, 0xdf,
+ 0x82, 0x7f, 0x72, 0xf8, 0x61, 0x43, 0x09, 0xef,
+ 0xa2, 0x85, 0x88, 0x12, 0xb8, 0x71, 0x39, 0x27,
+ 0x46, 0xa0, 0x6a, 0x9a, 0x07, 0x12, 0x76, 0xd8,
+ 0x3b, 0x38, 0x65, 0xc0, 0x11, 0x46, 0x14, 0xd4,
+ 0x00, 0x90, 0x69, 0x3b, 0x66, 0xbe, 0xcb, 0xcc,
+ 0x61, 0x71, 0x4a, 0xc7, 0x03, 0xfc, 0x35, 0xcd,
+ 0x77, 0x89, 0xea, 0xdd, 0x30, 0x1f, 0x40, 0xa8,
+ 0xea, 0xd2, 0x12, 0x22, 0x51, 0xbd, 0x49, 0xa4,
+ 0x52, 0x80, 0x3e, 0xa2, 0xa5, 0x8e, 0xea, 0xd0,
+ 0xec, 0x43, 0x3e, 0xa8, 0x23, 0x5e, 0xac, 0x5c,
+ 0x0f, 0x6b, 0x34, 0xbd, 0x76, 0x77, 0x5a, 0x2d,
+ 0x78, 0x3e, 0x42, 0x11, 0xfc, 0x96, 0x8b, 0xe2,
+ 0x35, 0x87, 0x00, 0x93, 0x34, 0xf2, 0xf0, 0xb0,
+ 0x03, 0xba, 0x82, 0x0a, 0x38, 0x5b, 0xa6, 0xe9,
+ 0xaa, 0xf3, 0x8f, 0xb3, 0x66, 0xb5, 0x84, 0x80,
+ 0x40, 0x2f, 0xac, 0x3b, 0xcf, 0x49, 0x38, 0x17,
+ 0xde, 0x0f, 0xce, 0x57, 0x07, 0x2b, 0xb8, 0xd1,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x33, 0x99, 0x88, 0x92, 0x66, 0x39, 0xe7, 0x42,
+ 0xc8, 0x21, 0xad, 0xbd, 0x71, 0xa7, 0xb5, 0xea,
+ 0x6b, 0xef, 0x02, 0x48, 0x85, 0xc7, 0x53, 0xb0,
+ 0xca, 0xc7, 0x63, 0xe0, 0xe8, 0x3d, 0x80, 0x01,
+ 0x55, 0x6a, 0x6f, 0x1b, 0x2d, 0x4f, 0x33, 0x53,
+ 0x85, 0xb4, 0x47, 0x12, 0x9a, 0x1f, 0xcc, 0x7b,
+ 0x37, 0x32, 0xec, 0x68, 0xa4, 0x97, 0xfc, 0x25,
+ 0xe6, 0x69, 0x48, 0xd1, 0x65, 0xc9, 0xd2, 0x17,
+ 0x38, 0x07, 0x6d, 0x49, 0xbe, 0x06, 0xd5, 0x28,
+ 0xb2, 0xe6, 0x16, 0x16, 0x67, 0x82, 0x3c, 0xdb,
+ 0x2c, 0x5b, 0xb0, 0x64, 0x7f, 0x44, 0x11, 0x53,
+ 0xc6, 0x6f, 0xed, 0xbc, 0x8f, 0x1e, 0xd0, 0xca,
+ 0x29, 0xea, 0x97, 0xc4, 0x84, 0xe3, 0xfc, 0xf5,
+ 0xc1, 0xb4, 0xa2, 0x31, 0x13, 0x0c, 0x30, 0x08,
+ 0x32, 0x4c, 0x2e, 0x11, 0x38, 0x63, 0xb1, 0x5c,
+ 0x9b, 0xf3, 0xca, 0xf2, 0x9a, 0x4f, 0x5d, 0x75,
+ 0x5c, 0xa9, 0xe3, 0x62, 0x2e, 0xd8, 0x8b, 0xe8,
+ 0x14, 0x5f, 0x9f, 0x27, 0x0b, 0x36, 0x26, 0x08,
+ 0x54, 0x9f, 0xac, 0xf8, 0xc6, 0x81, 0x47, 0xd6,
+ 0x28, 0x0b, 0xbf, 0x99, 0xb1, 0x94, 0x92, 0xeb,
+ 0x02, 0x9a, 0x0d, 0xde, 0x32, 0xd9, 0xc9, 0x7f,
+ 0x0f, 0x26, 0xba, 0x5f, 0x76, 0x5e, 0xdc, 0x2d,
+ 0xf7, 0x61, 0x3c, 0x57, 0x73, 0xc5, 0xbc, 0x61,
+ 0x1e, 0xc7, 0xcd, 0x6c, 0x1f, 0xe8, 0xc9, 0x00,
+ 0x1f, 0x70, 0x41, 0x0b, 0x08, 0x35, 0x0c, 0x04,
+ 0xaa, 0x99, 0x5e, 0xf4, 0x45, 0xf0, 0xfb, 0xfb,
+ 0x97, 0x72, 0x1d, 0x72, 0xd5, 0xe2, 0x7e, 0xba,
+ 0x2e, 0x69, 0x2c, 0x08, 0x3d, 0x59, 0xb3, 0xc6,
+ 0x89, 0xbd, 0xed, 0x2b, 0x29, 0x9e, 0x8e, 0x04,
+ 0x46, 0x29, 0xc4, 0x40, 0x77, 0x60, 0x76, 0x58,
+ 0x47, 0x90, 0x23, 0x65, 0x20, 0x40, 0x84, 0xb2,
+ 0xc7, 0xd3, 0x1c, 0x15, 0x77, 0x94, 0x38, 0x49,
+ 0x49, 0x22, 0x21, 0x87, 0x41, 0x04, 0x17, 0xca,
+ 0x87, 0xb8, 0xdf, 0x3f, 0xb5, 0xa6, 0x2a, 0xce,
+ 0x19, 0xd2, 0xd3, 0x51, 0xd8, 0x32, 0xd7, 0x78,
+ 0x12, 0x66, 0x6c, 0x23, 0x22, 0xbc, 0x50, 0x99,
+ 0x2f, 0x53, 0xa9, 0x1d, 0xf0, 0x26, 0x9b, 0x5b,
+ 0xab, 0xd0, 0x14, 0x6d, 0x20, 0xd6, 0x5d, 0x48,
+ 0x05, 0x97, 0x6b, 0xbe, 0xa4, 0x9e, 0xf8, 0xbd,
+ 0x3e, 0x52, 0xe9, 0xcb, 0x66, 0xc0, 0xbf, 0xe1,
+ 0x25, 0x45, 0x48, 0xb1, 0x26, 0xb6, 0xe5, 0x65,
+ 0x17, 0x33, 0x4e, 0x4b, 0x0b, 0x74, 0x84, 0x0d,
+ 0xcd, 0x9c, 0x9a, 0x98, 0xaa, 0x75, 0x2e, 0xb5,
+ 0xb4, 0x3f, 0x4a, 0x0d, 0x29, 0x18, 0xa2, 0xed,
+ 0x18, 0xc9, 0x79, 0xc6, 0xb1, 0x0b, 0x23, 0x86,
+ 0x87, 0x67, 0xd2, 0x80, 0xcc, 0x82, 0xda, 0x43,
+ 0x98, 0x39, 0x10, 0x68, 0x78, 0x8f, 0xf9, 0xaa,
+ 0x8f, 0xa9, 0xcc, 0xd8, 0x52, 0xfc, 0xda, 0xd4,
+ 0x98, 0xa5, 0xaa, 0xcc, 0x7f, 0x43, 0x6d, 0x94,
+ 0xcc, 0x7f, 0x69, 0xa8, 0xc2, 0x30, 0x3d, 0x7b,
+ 0x1d, 0x87, 0x24, 0xcf, 0x14, 0x16, 0x37, 0xc8,
+ 0x59, 0x97, 0x0a, 0x31, 0xaa, 0xeb, 0x38, 0xf8,
+ 0xaf, 0xdc, 0x85, 0x0a, 0x37, 0x47, 0x19, 0x3f,
+ 0xab, 0xcd, 0x48, 0xdc, 0x2b, 0xf6, 0x42, 0xf1,
+ 0x41, 0xc2, 0xcc, 0x8a, 0xfc, 0xbb, 0xbd, 0xe3,
+ 0xd1, 0x2e, 0x39, 0x07, 0x91, 0x36, 0x40, 0x33,
+ 0x95, 0xa6, 0x0e, 0xcf, 0x9a, 0xcf, 0xbb, 0xb2,
+ 0x9b, 0x63, 0x86, 0x31, 0xec, 0x12, 0xb3, 0x1e,
+ 0xe3, 0xcb, 0xd1, 0x2c, 0x55, 0xca, 0x07, 0xec,
+ 0x23, 0x97, 0xc2, 0xa1, 0x4d, 0xa4, 0x11, 0x13
+//};
+//unsigned int sig_sha256_rndbase_msg1_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha384_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha384_bsn0_msg0.inc
new file mode 100644
index 0000000000..b9855f06e2
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha384_bsn0_msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha384
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha384_bsn0_msg0_dat[] = {
+ 0x57, 0xe7, 0x8f, 0xfb, 0xf9, 0xa3, 0xba, 0x5e,
+ 0xac, 0xec, 0xb3, 0xa4, 0xf4, 0x13, 0x95, 0xa1,
+ 0x1c, 0x1d, 0xe1, 0xaf, 0xea, 0x16, 0xba, 0x6d,
+ 0xde, 0x4c, 0x43, 0xf0, 0x89, 0x59, 0x5e, 0xfa,
+ 0x0f, 0x18, 0xdd, 0x22, 0xf6, 0xd6, 0xfc, 0xe5,
+ 0x0f, 0xb2, 0x81, 0xb5, 0xa9, 0xa6, 0xe8, 0xee,
+ 0x14, 0x04, 0xec, 0x1b, 0x4e, 0x65, 0x82, 0x7f,
+ 0x96, 0x53, 0xc4, 0x3b, 0x29, 0x17, 0x39, 0xc0,
+ 0x8a, 0x3a, 0x3d, 0xef, 0x79, 0xe7, 0x7d, 0x06,
+ 0x00, 0x32, 0xc7, 0x4f, 0x82, 0x01, 0x71, 0x10,
+ 0xb1, 0x5b, 0x7b, 0x7c, 0x82, 0x10, 0xfd, 0xb4,
+ 0x8e, 0x7e, 0x87, 0x50, 0x9d, 0xc4, 0xf8, 0x4c,
+ 0x8b, 0xb2, 0xf9, 0x34, 0x17, 0x9e, 0x44, 0x93,
+ 0x47, 0xb4, 0x8c, 0x42, 0x55, 0x8a, 0xd9, 0xd8,
+ 0x12, 0x4a, 0xd9, 0x01, 0xce, 0x1a, 0x6b, 0x96,
+ 0x9d, 0x4c, 0x9b, 0xa9, 0x48, 0xae, 0x3c, 0xd6,
+ 0xc0, 0xb7, 0x0a, 0x62, 0xe7, 0xa9, 0xc8, 0xda,
+ 0x02, 0xc0, 0x1a, 0xb4, 0x8c, 0x8c, 0xda, 0x1d,
+ 0xe8, 0x2e, 0x8b, 0x16, 0x49, 0xd8, 0xe2, 0xd7,
+ 0x86, 0xab, 0x76, 0x20, 0x08, 0x9a, 0x66, 0x2e,
+ 0x60, 0x4f, 0x8d, 0xd9, 0x20, 0x0f, 0x85, 0x2a,
+ 0x9e, 0xa5, 0x95, 0x04, 0x3f, 0x82, 0xae, 0xbb,
+ 0x84, 0x35, 0xb4, 0xda, 0x93, 0x46, 0x46, 0x8c,
+ 0x6b, 0x14, 0x4a, 0x70, 0x26, 0xa4, 0xf7, 0xba,
+ 0xcd, 0x9d, 0x8e, 0x5a, 0x9d, 0x66, 0x87, 0xa6,
+ 0x50, 0x97, 0x1c, 0xea, 0x01, 0xea, 0x7e, 0xa5,
+ 0x1f, 0xf3, 0xc7, 0xff, 0x17, 0x75, 0x05, 0x0a,
+ 0xb8, 0x71, 0x79, 0x75, 0x5b, 0xfa, 0xee, 0xc7,
+ 0xb3, 0x1f, 0xed, 0xc5, 0x8c, 0x65, 0x05, 0x41,
+ 0x04, 0x82, 0xb6, 0xd9, 0xa4, 0x00, 0x12, 0xeb,
+ 0x1a, 0x26, 0xba, 0xad, 0x97, 0x3e, 0xe3, 0x0b,
+ 0x15, 0x98, 0x5d, 0xcd, 0xb3, 0x66, 0x58, 0xff,
+ 0x1d, 0x40, 0x99, 0xaf, 0xad, 0x19, 0x05, 0x06,
+ 0x7f, 0x42, 0x1e, 0xfc, 0x88, 0x23, 0x7b, 0xd4,
+ 0x6c, 0xd7, 0x3e, 0xa2, 0x16, 0x12, 0x83, 0x28,
+ 0x47, 0xf9, 0xe1, 0xed, 0x94, 0x29, 0xab, 0x7b,
+ 0xef, 0x20, 0x53, 0x9a, 0x8b, 0xdf, 0x0e, 0xd7,
+ 0x3e, 0x26, 0x26, 0x5a, 0x4a, 0x25, 0xa8, 0x09,
+ 0x76, 0x5e, 0xd0, 0x6a, 0x6c, 0xe5, 0x39, 0x10,
+ 0xcc, 0x77, 0xaa, 0x75, 0x28, 0x17, 0x43, 0xb9,
+ 0xd9, 0x7a, 0x4a, 0x36, 0xfb, 0x02, 0x42, 0x30,
+ 0xac, 0x9e, 0x28, 0x93, 0x54, 0x94, 0x9f, 0xbf,
+ 0xc2, 0x7c, 0xd7, 0xa4, 0x84, 0x89, 0x90, 0x74,
+ 0xf0, 0xcf, 0xcc, 0x0b, 0x1e, 0x8f, 0x98, 0x62,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x80, 0x71, 0x05, 0x55, 0xae, 0x18, 0xc1, 0x77,
+ 0x38, 0x6e, 0x5f, 0x17, 0xe1, 0xcb, 0x89, 0x00,
+ 0xc2, 0x43, 0x20, 0x3d, 0x63, 0x2a, 0xd8, 0xe2,
+ 0x3a, 0x7a, 0x20, 0xf0, 0x72, 0x21, 0x7d, 0x22,
+ 0xaf, 0x37, 0x4f, 0x98, 0x3a, 0x2b, 0x4f, 0x76,
+ 0x84, 0xed, 0x09, 0x74, 0x6c, 0x37, 0xf0, 0x44,
+ 0x17, 0x7e, 0xd6, 0x8c, 0x87, 0x5c, 0x98, 0x36,
+ 0xe1, 0xd9, 0x32, 0x30, 0x73, 0x31, 0x8a, 0x73,
+ 0x53, 0xf8, 0x5f, 0xa9, 0x0a, 0x72, 0xd8, 0x68,
+ 0x17, 0x8f, 0x8c, 0x97, 0xf9, 0xd2, 0x45, 0x42,
+ 0xcf, 0xd0, 0x82, 0x4a, 0x9c, 0xde, 0xca, 0xe1,
+ 0xbc, 0x63, 0xbd, 0xea, 0x75, 0xff, 0xe0, 0x61,
+ 0x89, 0x51, 0xb5, 0xbf, 0x08, 0x67, 0x19, 0x11,
+ 0x8e, 0x6b, 0x05, 0xe5, 0xc5, 0x52, 0xff, 0xb5,
+ 0x1c, 0x5a, 0xe3, 0x9a, 0xef, 0xc6, 0x52, 0xbc,
+ 0xe9, 0xc7, 0x4b, 0x1c, 0x21, 0xd8, 0xdc, 0x39,
+ 0x0e, 0x6b, 0x44, 0x5d, 0xae, 0x30, 0x98, 0xfc,
+ 0xdc, 0x54, 0xbe, 0xa5, 0xef, 0x90, 0x15, 0x9a,
+ 0x13, 0xac, 0x9f, 0xa8, 0xf7, 0xb0, 0xc7, 0xc5,
+ 0x67, 0xbd, 0xae, 0x8b, 0xa6, 0xc8, 0x20, 0xa2,
+ 0x2f, 0x26, 0x42, 0xe3, 0x8e, 0x56, 0xcc, 0xf0,
+ 0xfc, 0x24, 0x33, 0x93, 0x78, 0xa7, 0xdd, 0x5b,
+ 0x0b, 0x77, 0x7b, 0x36, 0xc4, 0xad, 0x95, 0x25,
+ 0x9b, 0x8a, 0x9f, 0xbc, 0xfb, 0xa0, 0x40, 0x18,
+ 0xc5, 0x3f, 0x32, 0x84, 0x85, 0xcb, 0xf4, 0xfd,
+ 0xf2, 0x03, 0xa9, 0xf4, 0x95, 0x50, 0x92, 0xe8,
+ 0xa8, 0x44, 0xe8, 0x92, 0xe0, 0x09, 0x71, 0x25,
+ 0x6c, 0xfb, 0x50, 0x38, 0x77, 0x6a, 0x7d, 0x6c,
+ 0xc6, 0x34, 0x72, 0xec, 0x50, 0x02, 0x0d, 0xce,
+ 0x2d, 0xfd, 0xe9, 0x2a, 0xf6, 0x8a, 0x90, 0x82,
+ 0x44, 0x45, 0xfb, 0x9f, 0x03, 0x22, 0xd0, 0x5e,
+ 0x8e, 0x01, 0xac, 0xa4, 0xb8, 0x20, 0xa1, 0x2d,
+ 0xff, 0xb2, 0x22, 0x4e, 0xe4, 0xe0, 0x68, 0x33,
+ 0x85, 0x29, 0x6b, 0xb6, 0x3c, 0xc8, 0x17, 0x40,
+ 0x80, 0x2c, 0x9a, 0x19, 0x58, 0x7c, 0x77, 0xdc,
+ 0xc9, 0xf7, 0x91, 0xa1, 0x6e, 0xfd, 0xd6, 0x3c,
+ 0x5e, 0x38, 0x9b, 0x90, 0xbf, 0xab, 0xab, 0x94,
+ 0x3d, 0x39, 0xc0, 0xe3, 0x90, 0x5c, 0xaf, 0xd1,
+ 0x81, 0x06, 0xe4, 0x03, 0x88, 0x90, 0xe1, 0x9a,
+ 0x09, 0x9d, 0x8a, 0xed, 0x81, 0xdf, 0x30, 0x85,
+ 0xc1, 0xe3, 0xd0, 0x72, 0x4e, 0x14, 0x03, 0x0b,
+ 0x72, 0x5f, 0x36, 0x7b, 0x13, 0xd7, 0xe9, 0x07,
+ 0x94, 0x89, 0xf3, 0x68, 0x6d, 0x86, 0x6b, 0x6a,
+ 0xa6, 0xdf, 0x68, 0x97, 0xf8, 0x15, 0x0f, 0xd1,
+ 0x8d, 0xeb, 0xd0, 0x43, 0xe6, 0x1d, 0x1e, 0x1a,
+ 0xc6, 0x31, 0x0c, 0x1d, 0xf0, 0x34, 0xe8, 0x8c,
+ 0x34, 0x39, 0xca, 0xf6, 0x35, 0xfe, 0xa4, 0xd2,
+ 0x1c, 0xb5, 0x96, 0x07, 0x3a, 0x40, 0xd0, 0x0b,
+ 0x7d, 0x20, 0x76, 0xeb, 0x24, 0xa1, 0xa8, 0x99,
+ 0x7c, 0xd1, 0x51, 0x3c, 0xe2, 0xf0, 0x96, 0xa6,
+ 0xeb, 0x0e, 0x8f, 0x8c, 0x35, 0xf4, 0x08, 0x26,
+ 0xf7, 0xd4, 0xbb, 0xf1, 0xd6, 0x4e, 0xa0, 0x9e,
+ 0xb8, 0x72, 0x60, 0xdf, 0x8f, 0x1d, 0xef, 0x86,
+ 0x86, 0x76, 0x56, 0x49, 0x4e, 0x31, 0x40, 0x47,
+ 0xce, 0xdf, 0x9d, 0x75, 0x5f, 0x7a, 0xe4, 0xc3,
+ 0x9c, 0xdf, 0xd7, 0x40, 0x2b, 0xf9, 0xb9, 0x12,
+ 0xf7, 0x1b, 0x9a, 0x55, 0x3f, 0x87, 0x3a, 0x67,
+ 0x75, 0xc4, 0xd9, 0xda, 0xd6, 0xc4, 0x30, 0xe6,
+ 0xc1, 0x53, 0xd1, 0x5c, 0x38, 0xdb, 0xff, 0x8d,
+ 0x21, 0x18, 0x6a, 0xb7, 0x1e, 0x05, 0x61, 0x05
+//};
+//unsigned int sig_grpx_member0_sha384_bsn0_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha384_rndbase_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha384_rndbase_msg0.inc
new file mode 100644
index 0000000000..b3b5888d49
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha384_rndbase_msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha384
+ * Message : "msg0"
+ * Basename: None (random base)
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha384_rndbase_msg0_dat[] = {
+ 0xa6, 0x0b, 0xac, 0x7d, 0xed, 0x65, 0xaa, 0x55,
+ 0xc7, 0xfc, 0x20, 0xde, 0x29, 0x02, 0x4d, 0x7f,
+ 0x24, 0xec, 0x24, 0x98, 0x94, 0xc9, 0x06, 0xd8,
+ 0x24, 0x14, 0x82, 0x06, 0xe6, 0xf0, 0x13, 0x6a,
+ 0x28, 0xfb, 0xed, 0xbf, 0x47, 0x25, 0x20, 0x14,
+ 0x5e, 0x68, 0x78, 0x1f, 0xc4, 0x41, 0x8c, 0x47,
+ 0x4a, 0xac, 0xdd, 0x88, 0x89, 0x95, 0xa6, 0x3a,
+ 0x52, 0x01, 0x87, 0xf0, 0xee, 0xf2, 0x8c, 0x19,
+ 0x4c, 0xe6, 0xb4, 0xc2, 0x2d, 0x8b, 0xdb, 0x45,
+ 0x91, 0x43, 0x79, 0xa5, 0x8f, 0x5b, 0x66, 0x54,
+ 0x34, 0x28, 0x1b, 0xe7, 0x10, 0x94, 0xbc, 0x88,
+ 0xcb, 0xf5, 0x4e, 0x6d, 0x3b, 0x46, 0x70, 0xb4,
+ 0xb6, 0x67, 0xf1, 0x64, 0xee, 0x1a, 0xe0, 0xb6,
+ 0x5d, 0x8c, 0xe6, 0xbd, 0xd0, 0x54, 0x7f, 0x51,
+ 0x1e, 0x4b, 0x55, 0x08, 0xb2, 0x1a, 0x22, 0x70,
+ 0x29, 0xba, 0x76, 0x59, 0xdb, 0x81, 0x95, 0x7b,
+ 0xc6, 0xd0, 0x7a, 0x0e, 0x4c, 0x6b, 0x54, 0xfb,
+ 0x01, 0xf7, 0x48, 0xc6, 0x62, 0x58, 0x3a, 0x68,
+ 0xa6, 0xb0, 0x31, 0x9f, 0x1c, 0x51, 0x90, 0x8b,
+ 0x59, 0xb4, 0x24, 0x8f, 0xd9, 0x56, 0xe4, 0xc0,
+ 0x58, 0x58, 0x5a, 0x1e, 0x8c, 0x75, 0x98, 0xcf,
+ 0xc8, 0x1c, 0x89, 0xc0, 0x94, 0x46, 0x82, 0xfc,
+ 0xc8, 0x10, 0x53, 0xc8, 0x55, 0xcd, 0x7e, 0x5b,
+ 0x7b, 0xd7, 0xfb, 0xa9, 0xe7, 0xcb, 0x9a, 0x9c,
+ 0x00, 0x8f, 0x95, 0x98, 0x7e, 0xe3, 0x24, 0x8b,
+ 0x7a, 0x8f, 0x19, 0x31, 0x1f, 0x7f, 0xcf, 0x75,
+ 0x39, 0x9a, 0x86, 0x21, 0x59, 0xf3, 0x66, 0xf6,
+ 0x7b, 0xf5, 0x0f, 0x36, 0x65, 0xe8, 0xbd, 0xca,
+ 0xed, 0x0e, 0x23, 0x62, 0x1c, 0x95, 0xb8, 0xfc,
+ 0x3d, 0x25, 0x63, 0x1a, 0x35, 0xd9, 0xbb, 0x88,
+ 0xed, 0xf9, 0x40, 0xe1, 0x93, 0xe8, 0x46, 0x59,
+ 0x40, 0x11, 0x58, 0x37, 0x82, 0x12, 0x85, 0xaf,
+ 0xf9, 0x76, 0x28, 0xcf, 0x26, 0x15, 0xdd, 0x1d,
+ 0xd5, 0x17, 0x03, 0x8f, 0xab, 0x79, 0xda, 0x93,
+ 0x1e, 0x7c, 0x03, 0xfd, 0x40, 0x3f, 0xaa, 0xb8,
+ 0xd1, 0x96, 0xe3, 0x64, 0x72, 0x6a, 0x0e, 0x62,
+ 0x21, 0x1a, 0x9c, 0x0b, 0xff, 0x4e, 0xea, 0x82,
+ 0xb2, 0xe2, 0xac, 0xa5, 0xab, 0x17, 0xb5, 0x58,
+ 0xae, 0x53, 0xc1, 0xa7, 0xeb, 0xd1, 0x7e, 0xc0,
+ 0xba, 0x26, 0xbf, 0x61, 0xc1, 0xe4, 0xe1, 0x19,
+ 0xfe, 0x7c, 0x41, 0x81, 0xc4, 0x82, 0x95, 0x51,
+ 0x1c, 0xc6, 0xd5, 0xf2, 0x7f, 0xa5, 0xee, 0x59,
+ 0xf7, 0xd1, 0x5e, 0x9c, 0xda, 0xf7, 0xe8, 0xa5,
+ 0x22, 0x2f, 0xc5, 0xf0, 0xa0, 0x73, 0xbd, 0xda,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x45, 0x60, 0xe3, 0x04, 0xa4, 0xff, 0xe1, 0xf0,
+ 0x26, 0x4e, 0x1d, 0xee, 0x9a, 0xe2, 0xdb, 0x9c,
+ 0x04, 0x7d, 0xf2, 0x88, 0x30, 0x44, 0x0b, 0x76,
+ 0x71, 0x64, 0x57, 0xfc, 0x43, 0xe0, 0x10, 0x32,
+ 0x03, 0xfe, 0x51, 0xfc, 0x0a, 0x57, 0x58, 0x31,
+ 0x19, 0x10, 0xce, 0xa3, 0x9b, 0xc1, 0x27, 0x65,
+ 0xad, 0xd7, 0x81, 0xd6, 0xe2, 0x59, 0xbf, 0xbd,
+ 0xe3, 0x59, 0x98, 0xcd, 0x37, 0xe0, 0xa9, 0xff,
+ 0x0d, 0x8f, 0x7e, 0xc8, 0x8e, 0xab, 0xd6, 0xb6,
+ 0xb6, 0x74, 0x6e, 0x5d, 0x7f, 0x60, 0x0e, 0x96,
+ 0x8c, 0x26, 0x27, 0xaf, 0x20, 0x8f, 0xee, 0x5c,
+ 0xcc, 0x61, 0x84, 0x3f, 0x39, 0x39, 0xb7, 0x07,
+ 0xbf, 0xf7, 0xcb, 0x75, 0x61, 0x34, 0xea, 0x06,
+ 0xb3, 0xc3, 0xd2, 0x2a, 0x51, 0x33, 0xce, 0x5e,
+ 0xb0, 0x26, 0x04, 0x48, 0x83, 0x5e, 0x3d, 0x59,
+ 0x8f, 0x50, 0x2b, 0xc6, 0xcd, 0x55, 0xf5, 0xb7,
+ 0x01, 0xd6, 0x84, 0x52, 0x1d, 0x22, 0x10, 0x92,
+ 0x10, 0x08, 0x3a, 0x63, 0xc2, 0x72, 0xfe, 0x9e,
+ 0x7e, 0x81, 0x0d, 0xa9, 0x16, 0x91, 0x0a, 0x55,
+ 0x9a, 0xf5, 0xae, 0x23, 0x2b, 0x8d, 0x67, 0x55,
+ 0x8c, 0x51, 0x19, 0x30, 0x1f, 0x9f, 0x8b, 0xc4,
+ 0xf4, 0x17, 0xab, 0xd1, 0x9d, 0x7a, 0xd8, 0xfa,
+ 0x5d, 0xdc, 0xe8, 0xc3, 0x24, 0x97, 0xae, 0x8a,
+ 0x64, 0x27, 0x86, 0x5f, 0x88, 0xf0, 0x92, 0xc3,
+ 0xa9, 0x13, 0x15, 0x1a, 0xc3, 0xbc, 0xba, 0x0a,
+ 0x3c, 0xb7, 0x8b, 0x46, 0xa9, 0x40, 0x94, 0x0e,
+ 0x17, 0x46, 0x3f, 0x6d, 0xcf, 0x0e, 0x0f, 0xf6,
+ 0xe6, 0xd7, 0x5c, 0x86, 0x44, 0xf7, 0x1a, 0x42,
+ 0xa0, 0xbc, 0x93, 0x9c, 0x66, 0x9d, 0x26, 0xa7,
+ 0x54, 0xad, 0x85, 0x03, 0x3c, 0x12, 0xa9, 0xab,
+ 0x56, 0xcc, 0xe7, 0x60, 0xb2, 0x5b, 0x06, 0x88,
+ 0x81, 0x47, 0xe4, 0x52, 0xde, 0x3d, 0xe0, 0x14,
+ 0x17, 0xea, 0xd1, 0x78, 0x30, 0xf2, 0xca, 0x6b,
+ 0xc4, 0x15, 0xad, 0x2f, 0x8e, 0x36, 0xa9, 0x18,
+ 0x88, 0x74, 0x62, 0xba, 0xf4, 0x6a, 0x64, 0x8c,
+ 0x20, 0x1a, 0x8f, 0x92, 0x00, 0x6d, 0x12, 0x68,
+ 0x52, 0x41, 0x3b, 0xc8, 0x88, 0xd9, 0xda, 0x6d,
+ 0x19, 0xc1, 0x32, 0x82, 0x6e, 0xd8, 0xe2, 0xd7,
+ 0x3b, 0x68, 0xf4, 0x87, 0x96, 0xe4, 0xf4, 0x91,
+ 0x52, 0x02, 0xf0, 0x02, 0xf6, 0x8e, 0xdd, 0x49,
+ 0x4d, 0xc6, 0x03, 0x0d, 0xf9, 0x27, 0x5c, 0x81,
+ 0xf0, 0xb8, 0xf4, 0xa1, 0x5f, 0x01, 0x88, 0x2a,
+ 0x05, 0x96, 0xbd, 0xbc, 0xe8, 0x0f, 0xec, 0xe5,
+ 0x83, 0xe9, 0xfc, 0x4c, 0xe1, 0xcb, 0xec, 0x51,
+ 0xaa, 0xb3, 0xc7, 0xd6, 0x64, 0x63, 0x5c, 0x66,
+ 0x46, 0xed, 0x7f, 0x49, 0x5a, 0x76, 0xb2, 0x8f,
+ 0x13, 0x19, 0x61, 0x3d, 0x95, 0x10, 0xb0, 0x5a,
+ 0x63, 0x35, 0xed, 0x0f, 0xdc, 0xf6, 0xd5, 0xf6,
+ 0x90, 0x52, 0xa3, 0x0c, 0x7c, 0xbc, 0x1f, 0x60,
+ 0xc4, 0x30, 0xd9, 0xe8, 0xe5, 0x70, 0xfa, 0x67,
+ 0xf2, 0x79, 0x76, 0x14, 0x4d, 0x5f, 0xae, 0x4f,
+ 0x2f, 0x93, 0x9d, 0x37, 0x1d, 0x53, 0xca, 0xd8,
+ 0x20, 0x1d, 0x5a, 0x2e, 0x3c, 0x9b, 0x6f, 0x3c,
+ 0xdb, 0xa9, 0xac, 0x4d, 0xe3, 0x46, 0x8c, 0x70,
+ 0xe7, 0x8b, 0xdd, 0x9c, 0x57, 0xd0, 0x5d, 0x6f,
+ 0x8c, 0x62, 0xc1, 0xd1, 0x83, 0xbc, 0x83, 0xa2,
+ 0x92, 0x6d, 0xad, 0xc5, 0xbd, 0xab, 0x48, 0xd0,
+ 0x43, 0xe0, 0xff, 0x5b, 0x90, 0x57, 0xa3, 0x6f,
+ 0xd6, 0xa3, 0x9e, 0x70, 0x23, 0x18, 0x9d, 0xa0,
+ 0x06, 0x5d, 0xa2, 0xe0, 0x43, 0xed, 0x3b, 0xd3
+//};
+//unsigned int sig_grpx_member0_sha384_rndbase_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha512_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha512_bsn0_msg0.inc
new file mode 100644
index 0000000000..072a2248b0
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha512_bsn0_msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha512
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha512_bsn0_msg0_dat[] = {
+ 0x72, 0xed, 0x4f, 0x01, 0xf2, 0xfe, 0xc9, 0xf4,
+ 0x56, 0x4f, 0x11, 0x31, 0x62, 0x07, 0x02, 0x0f,
+ 0xed, 0xd0, 0x6b, 0xe8, 0xbf, 0xa9, 0x0b, 0x55,
+ 0xb8, 0xf7, 0xe9, 0x6e, 0xaa, 0x13, 0x2e, 0x6f,
+ 0xa7, 0xd5, 0xec, 0x4b, 0x3e, 0x23, 0x5f, 0x4f,
+ 0x61, 0x44, 0x52, 0xc1, 0x75, 0x0b, 0x13, 0xad,
+ 0xa1, 0x53, 0x0d, 0x6a, 0x73, 0xed, 0x5e, 0x49,
+ 0xa9, 0xed, 0x1d, 0x88, 0xde, 0xa6, 0x93, 0x18,
+ 0x4a, 0x58, 0xea, 0xc3, 0x7c, 0x9e, 0xf1, 0x2a,
+ 0x1a, 0xbf, 0x5a, 0xf8, 0xd5, 0xb4, 0xae, 0xa8,
+ 0x9a, 0x37, 0xdc, 0x1b, 0xe1, 0xab, 0xb0, 0xef,
+ 0x45, 0x88, 0x94, 0x48, 0x99, 0xc8, 0x70, 0x3b,
+ 0x25, 0x70, 0x5a, 0x84, 0x4c, 0x65, 0x29, 0x64,
+ 0xe2, 0x2b, 0x28, 0x84, 0xcf, 0x05, 0x83, 0xfb,
+ 0x00, 0xe9, 0x20, 0xc2, 0xb2, 0x12, 0x3c, 0x90,
+ 0x12, 0xeb, 0x85, 0x3a, 0x70, 0xe4, 0xed, 0x64,
+ 0x73, 0xc2, 0xef, 0x1b, 0x33, 0x7b, 0xa9, 0xf1,
+ 0x76, 0xae, 0xac, 0x99, 0xd1, 0xaa, 0x9c, 0xb1,
+ 0xcb, 0x17, 0x40, 0xf9, 0x9d, 0xa9, 0x75, 0x7f,
+ 0xe6, 0x9e, 0x8d, 0x31, 0xf0, 0x07, 0x7b, 0x33,
+ 0xb6, 0x11, 0x7e, 0xf3, 0xa0, 0xf2, 0x42, 0xdf,
+ 0xe2, 0x6a, 0xa0, 0x10, 0xb6, 0x6a, 0xda, 0x6d,
+ 0x1e, 0xf3, 0x18, 0xf1, 0xd7, 0x0c, 0x9b, 0x67,
+ 0x97, 0x62, 0xd6, 0xc7, 0x92, 0x61, 0xa0, 0x23,
+ 0x4e, 0xb2, 0xd3, 0x08, 0x5e, 0x74, 0x65, 0xd0,
+ 0xca, 0x0c, 0x9d, 0x5d, 0x81, 0x13, 0xa3, 0x16,
+ 0x6d, 0x44, 0xc4, 0x74, 0x4f, 0xf4, 0x33, 0x97,
+ 0xd5, 0xb5, 0x46, 0xc7, 0xde, 0x7c, 0xef, 0xbb,
+ 0xfc, 0x58, 0x16, 0xe3, 0x13, 0xc3, 0x7d, 0x24,
+ 0x1c, 0x8a, 0x50, 0x98, 0x31, 0x81, 0x66, 0xc3,
+ 0x4f, 0x75, 0xd7, 0xa8, 0xc4, 0xec, 0xe0, 0x63,
+ 0xf4, 0x48, 0x79, 0xdf, 0x5a, 0xec, 0xad, 0x64,
+ 0x48, 0x21, 0x28, 0x3b, 0x8a, 0x75, 0xcc, 0x37,
+ 0x78, 0x0f, 0x56, 0x4a, 0x1e, 0xbe, 0xc1, 0xd4,
+ 0x24, 0x6d, 0x0a, 0x62, 0x35, 0x3d, 0x87, 0xcf,
+ 0xd4, 0x45, 0xb7, 0x16, 0xab, 0xe7, 0xce, 0x2a,
+ 0xb3, 0xda, 0x32, 0xd1, 0x5d, 0xa8, 0x23, 0x51,
+ 0x3c, 0x6e, 0x24, 0x3e, 0x19, 0x34, 0xd1, 0xe7,
+ 0x69, 0x59, 0x2e, 0x2c, 0x56, 0x40, 0x92, 0x51,
+ 0x90, 0xbe, 0xcd, 0x7d, 0x42, 0x5c, 0xa9, 0xf0,
+ 0x4b, 0xcb, 0x5e, 0x2b, 0xb3, 0xa6, 0x15, 0xf3,
+ 0xfb, 0x60, 0x27, 0xad, 0x8e, 0x57, 0xff, 0x41,
+ 0x45, 0xa0, 0xb2, 0xb9, 0x89, 0xcc, 0x9e, 0x9e,
+ 0x36, 0x12, 0x3d, 0x5e, 0xdd, 0xcf, 0x54, 0xbc,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x78, 0xe5, 0x54, 0xb7, 0x82, 0x81, 0xb6, 0xf2,
+ 0xab, 0x11, 0x73, 0x08, 0x4f, 0x9a, 0xda, 0xcc,
+ 0xc5, 0x94, 0x78, 0x08, 0xc0, 0x22, 0xda, 0x06,
+ 0x87, 0xd4, 0xa0, 0x9f, 0x50, 0xb3, 0x04, 0xdc,
+ 0xbe, 0x5b, 0x02, 0x28, 0x71, 0x8f, 0x4f, 0x18,
+ 0x2b, 0xb1, 0xab, 0x62, 0x83, 0x9c, 0xb7, 0x1b,
+ 0x87, 0x48, 0x8f, 0xbe, 0x4f, 0x1c, 0x8d, 0x16,
+ 0xa4, 0xed, 0x4f, 0xe4, 0x10, 0x4c, 0x83, 0xd9,
+ 0xcb, 0xa3, 0xdc, 0xd2, 0x5e, 0xdd, 0xab, 0x2d,
+ 0x5d, 0x73, 0x88, 0x5f, 0x92, 0x66, 0x0f, 0xaa,
+ 0xed, 0x5c, 0x1e, 0xf5, 0xca, 0x82, 0xd7, 0xcb,
+ 0x04, 0x98, 0xb1, 0x4d, 0xb1, 0x6e, 0xd0, 0x04,
+ 0x48, 0xf8, 0x84, 0x66, 0xae, 0x01, 0x3e, 0x24,
+ 0x9f, 0xdf, 0x0c, 0x7a, 0x9a, 0x22, 0xd3, 0x46,
+ 0xe0, 0x0b, 0xb2, 0x68, 0x65, 0x64, 0x95, 0x8d,
+ 0x45, 0xa2, 0xb2, 0xd9, 0x49, 0x8b, 0xd7, 0x7d,
+ 0x0f, 0x1a, 0x80, 0xd3, 0x71, 0xd9, 0x05, 0xb3,
+ 0xff, 0x65, 0x2f, 0x7f, 0xe1, 0xb7, 0x68, 0xc6,
+ 0x4f, 0x22, 0x69, 0x2a, 0xcb, 0x5e, 0x45, 0xed,
+ 0x40, 0x30, 0xd5, 0xc7, 0xda, 0xf8, 0xb9, 0x22,
+ 0xa6, 0xe8, 0x00, 0x6c, 0xa2, 0x30, 0x37, 0x36,
+ 0xf8, 0xe6, 0xcb, 0xca, 0x5f, 0xc8, 0x9b, 0xc0,
+ 0x03, 0xba, 0x08, 0x5f, 0x81, 0xa4, 0x1d, 0x55,
+ 0x11, 0x5b, 0x34, 0x3c, 0x6b, 0x55, 0x5a, 0xc6,
+ 0xe2, 0x3b, 0xf3, 0xbc, 0x15, 0xa5, 0x70, 0x9a,
+ 0x1a, 0x4c, 0x9e, 0x53, 0x8b, 0xa3, 0x46, 0x5f,
+ 0xbc, 0x20, 0x15, 0x8a, 0xc7, 0x95, 0xb4, 0xdc,
+ 0x87, 0xbf, 0xce, 0x75, 0x8a, 0xa7, 0x5f, 0xc7,
+ 0x77, 0x8f, 0x4c, 0xd9, 0x72, 0x36, 0xc6, 0xb6,
+ 0xb6, 0x2a, 0x11, 0x59, 0xaf, 0x0f, 0x6c, 0xac,
+ 0x4d, 0xdd, 0x99, 0xd6, 0xa5, 0x85, 0x12, 0x08,
+ 0xeb, 0x38, 0x20, 0x0f, 0xb7, 0xe0, 0x09, 0x72,
+ 0x15, 0xfb, 0x11, 0x1e, 0x35, 0x4e, 0x01, 0xba,
+ 0x96, 0x0a, 0x0e, 0x51, 0x10, 0x8b, 0x68, 0x7c,
+ 0xf8, 0x8e, 0x56, 0x65, 0xe2, 0x25, 0x42, 0x43,
+ 0xeb, 0xf4, 0xca, 0xf2, 0xb7, 0x66, 0x3c, 0x38,
+ 0xb2, 0x99, 0xd1, 0x2f, 0x2d, 0x30, 0xbd, 0xa3,
+ 0x05, 0x41, 0x40, 0x26, 0x5b, 0x83, 0x06, 0x1f,
+ 0x2a, 0xad, 0xd2, 0x86, 0x1c, 0x7f, 0x1a, 0x80,
+ 0x79, 0x88, 0xa1, 0xc6, 0xd2, 0x9f, 0xf3, 0x51,
+ 0x7b, 0xd3, 0xe9, 0x6c, 0xd6, 0xe4, 0xaa, 0x21,
+ 0x4d, 0xe6, 0x42, 0xea, 0x53, 0x6f, 0xfe, 0xcd,
+ 0xf8, 0x67, 0x6d, 0xb3, 0x16, 0x67, 0x55, 0x51,
+ 0x60, 0xa5, 0xe4, 0x1e, 0x5f, 0xd0, 0xfc, 0xcd,
+ 0x82, 0xb1, 0x8f, 0xeb, 0x5f, 0xe3, 0xf3, 0xd5,
+ 0xc7, 0x9e, 0xa2, 0x31, 0x31, 0xee, 0x61, 0x29,
+ 0xe8, 0xe1, 0x8f, 0xe7, 0x9b, 0x94, 0x34, 0xec,
+ 0x18, 0xd4, 0xac, 0x30, 0xd9, 0xd5, 0x83, 0x08,
+ 0xba, 0x1d, 0x27, 0x08, 0xad, 0x89, 0x74, 0xcc,
+ 0xff, 0x5a, 0x8f, 0xc7, 0xca, 0x91, 0x57, 0xb3,
+ 0xf9, 0x8a, 0xc4, 0x33, 0xa2, 0xea, 0xa1, 0x60,
+ 0xc2, 0xfb, 0xea, 0xca, 0xf7, 0x97, 0xff, 0xb3,
+ 0x5a, 0xe3, 0x06, 0x45, 0x37, 0xf8, 0x48, 0xa8,
+ 0x51, 0x93, 0x71, 0xea, 0x5a, 0xfa, 0x7e, 0x32,
+ 0x68, 0x0a, 0x2f, 0x9d, 0x55, 0x94, 0x94, 0xe1,
+ 0x1c, 0x41, 0xce, 0x8d, 0xe6, 0x3b, 0xda, 0x32,
+ 0xb4, 0xf4, 0x90, 0xe6, 0xb0, 0x94, 0x17, 0x2e,
+ 0x5a, 0x36, 0xbb, 0x9b, 0xa1, 0x39, 0x1e, 0x69,
+ 0xf6, 0x2c, 0xca, 0x6e, 0xe1, 0xbb, 0x70, 0xd4,
+ 0x32, 0xdf, 0xd8, 0x88, 0x6b, 0x28, 0x14, 0x31
+//};
+//unsigned int sig_grpx_member0_sha512_bsn0_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha512_rndbase_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha512_rndbase_msg0.inc
new file mode 100644
index 0000000000..e6a7db1da1
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member0/sig_sha512_rndbase_msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member0
+ * HashAlg : Sha512
+ * Message : "msg0"
+ * Basename: None (random base)
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha512_rndbase_msg0_dat[] = {
+ 0x43, 0xa4, 0x74, 0x4b, 0xcb, 0x17, 0xfa, 0xaf,
+ 0xb8, 0x6e, 0xb4, 0xca, 0x94, 0x4d, 0xe8, 0x5b,
+ 0x40, 0x88, 0x6c, 0x9c, 0xfa, 0xba, 0x4a, 0x4c,
+ 0x65, 0x94, 0xd1, 0x17, 0x90, 0x5b, 0x66, 0x12,
+ 0x46, 0xcf, 0xcc, 0x6e, 0x47, 0x2c, 0x0c, 0xa7,
+ 0x4e, 0xb4, 0x62, 0x57, 0xdc, 0x70, 0xbb, 0xd0,
+ 0x52, 0xa7, 0x38, 0x97, 0xec, 0x34, 0x8c, 0xfd,
+ 0xe6, 0x5f, 0xa1, 0x8b, 0x8a, 0x1e, 0x0c, 0x41,
+ 0xa9, 0x86, 0x53, 0x85, 0x0e, 0xaa, 0xc2, 0x1d,
+ 0xe9, 0x42, 0x18, 0x2e, 0x1f, 0xca, 0xa0, 0x41,
+ 0x46, 0x04, 0x10, 0xb9, 0xc7, 0x15, 0x88, 0x41,
+ 0x92, 0x53, 0x7b, 0xb0, 0xc2, 0xf1, 0x96, 0x8f,
+ 0xc8, 0xe7, 0x4a, 0x43, 0x0a, 0xa2, 0x92, 0x08,
+ 0xd3, 0xdb, 0x09, 0xae, 0x31, 0x6c, 0xef, 0x9f,
+ 0xb7, 0x58, 0x4b, 0x41, 0x69, 0xf7, 0x5b, 0xbc,
+ 0x62, 0x3b, 0xa9, 0x9f, 0x4b, 0xcb, 0x17, 0x6f,
+ 0x26, 0xce, 0x54, 0x7e, 0xaa, 0x3c, 0x1a, 0xfd,
+ 0xab, 0x3a, 0x67, 0x11, 0x89, 0x16, 0xac, 0xfa,
+ 0xbf, 0xfb, 0x17, 0x6e, 0x39, 0xd1, 0x5a, 0x88,
+ 0x02, 0xf3, 0x14, 0xaa, 0x5c, 0xef, 0xa1, 0x69,
+ 0xb1, 0x76, 0x82, 0x72, 0x9c, 0xaa, 0x20, 0xb2,
+ 0xa6, 0x21, 0xac, 0x60, 0x77, 0x0b, 0xbb, 0x24,
+ 0x6f, 0x14, 0x9e, 0xea, 0x87, 0xb0, 0x91, 0x70,
+ 0xf9, 0x05, 0x18, 0x62, 0x32, 0x03, 0xb9, 0x95,
+ 0xad, 0xce, 0x40, 0x1f, 0x00, 0x33, 0x64, 0xf7,
+ 0x2a, 0xd9, 0xea, 0xeb, 0x4f, 0x5b, 0x6a, 0xbb,
+ 0x23, 0x56, 0x74, 0x31, 0xa7, 0x44, 0xae, 0xdd,
+ 0x60, 0x01, 0xa9, 0xb4, 0x82, 0xed, 0x55, 0xcd,
+ 0x81, 0x39, 0x40, 0xf1, 0xf3, 0x25, 0x7e, 0x27,
+ 0xfa, 0x5e, 0x44, 0xc6, 0x40, 0xfd, 0xde, 0x0b,
+ 0xab, 0xae, 0x53, 0xf5, 0x05, 0x78, 0xd3, 0xeb,
+ 0x1f, 0x4f, 0xb2, 0x56, 0x48, 0xe9, 0x08, 0xb1,
+ 0xa4, 0xc6, 0xbc, 0x20, 0x8c, 0xf4, 0x5e, 0x65,
+ 0xd7, 0x52, 0x59, 0x66, 0xe3, 0xf6, 0xbc, 0xc2,
+ 0x23, 0x29, 0x4a, 0x98, 0x53, 0x1c, 0xf5, 0x37,
+ 0x2a, 0x8b, 0x3b, 0x42, 0xf2, 0x10, 0xb4, 0x33,
+ 0x8b, 0xd6, 0x54, 0x83, 0xc3, 0x8d, 0x2c, 0x77,
+ 0x46, 0xae, 0x09, 0xc0, 0x47, 0xb7, 0x33, 0x59,
+ 0xe0, 0xc7, 0x0f, 0xbb, 0xea, 0x42, 0xdf, 0xb6,
+ 0xa9, 0x19, 0xd4, 0x9a, 0xfd, 0x5f, 0x82, 0x18,
+ 0x3e, 0x97, 0x89, 0x79, 0xca, 0x92, 0xed, 0x33,
+ 0xa3, 0xc3, 0x8e, 0x34, 0xf0, 0x03, 0xb5, 0x83,
+ 0x28, 0x6f, 0x5f, 0x0c, 0x35, 0xee, 0x0f, 0x16,
+ 0x3e, 0xdd, 0xb3, 0xd4, 0x5d, 0x0b, 0xa5, 0x26,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xce, 0x9d, 0x84, 0x2d, 0xf0, 0x21, 0xe7, 0x25,
+ 0x11, 0xb5, 0xee, 0xb0, 0x4a, 0x4e, 0x8c, 0x3f,
+ 0x83, 0xd0, 0x91, 0xf2, 0x15, 0x88, 0xe3, 0x8c,
+ 0x9a, 0x24, 0xca, 0xea, 0x34, 0x4f, 0xa8, 0xee,
+ 0x3c, 0xf6, 0x8c, 0x62, 0xff, 0xa2, 0x93, 0x49,
+ 0x4d, 0xb9, 0x39, 0x25, 0xcb, 0x1b, 0x7e, 0x9b,
+ 0xef, 0xb6, 0xde, 0x4e, 0xc0, 0x80, 0x27, 0xac,
+ 0xdd, 0xf8, 0x34, 0xa2, 0xb4, 0x4b, 0x29, 0x04,
+ 0xd6, 0xc4, 0x98, 0x3a, 0x9c, 0x23, 0xec, 0xf5,
+ 0x90, 0x44, 0xfb, 0x04, 0x15, 0x77, 0xdd, 0x1c,
+ 0x3e, 0x6e, 0xc2, 0x97, 0x0c, 0x77, 0x83, 0x95,
+ 0xe4, 0x49, 0xdf, 0x28, 0x38, 0x80, 0x97, 0x70,
+ 0xa0, 0xf2, 0xa2, 0xb0, 0x23, 0x64, 0xce, 0x4b,
+ 0x7e, 0x1e, 0xd5, 0x07, 0x80, 0x3a, 0xe0, 0xb5,
+ 0xa6, 0xf2, 0x82, 0xa3, 0x3a, 0xd0, 0x5f, 0xe9,
+ 0x2b, 0x61, 0xb2, 0x15, 0x8e, 0x19, 0x81, 0x84,
+ 0x64, 0x4f, 0x9e, 0x3d, 0xc4, 0x94, 0xad, 0x9f,
+ 0x7c, 0x81, 0x16, 0x70, 0xb0, 0x93, 0xea, 0x7d,
+ 0x34, 0x55, 0xe7, 0xd0, 0xae, 0x24, 0xa7, 0x54,
+ 0xa5, 0x19, 0x0c, 0x71, 0x50, 0xea, 0x93, 0x07,
+ 0xbd, 0x67, 0xdf, 0xa3, 0x9a, 0xbe, 0xf8, 0x89,
+ 0xca, 0xe2, 0xab, 0xb3, 0xb1, 0xd2, 0xf2, 0x05,
+ 0xab, 0xa2, 0x1e, 0xa7, 0xda, 0xf4, 0x27, 0x83,
+ 0x8f, 0xee, 0xe1, 0x31, 0x82, 0x1b, 0x5d, 0x29,
+ 0xb1, 0x23, 0x11, 0x64, 0x86, 0x70, 0x99, 0x06,
+ 0x6d, 0xaf, 0xc2, 0xeb, 0xd2, 0x1a, 0xb7, 0x2f,
+ 0x92, 0x0b, 0x33, 0xfe, 0x5d, 0x9b, 0xc6, 0xdd,
+ 0x39, 0x84, 0xbe, 0xbf, 0x05, 0xff, 0x92, 0x9a,
+ 0x52, 0x08, 0x24, 0xb6, 0xc3, 0xa8, 0x84, 0x39,
+ 0xda, 0xf8, 0x26, 0xcb, 0x56, 0x12, 0xb5, 0xd3,
+ 0x03, 0x54, 0x3d, 0xf3, 0xf9, 0x36, 0xf4, 0xff,
+ 0xc4, 0xf6, 0x1f, 0x15, 0xed, 0x70, 0x18, 0x0a,
+ 0x38, 0x08, 0x6f, 0xf6, 0x3a, 0x61, 0x2d, 0x43,
+ 0x4a, 0x04, 0x48, 0x3f, 0xe9, 0xe8, 0x8c, 0xc7,
+ 0xd9, 0x18, 0x86, 0xfb, 0x7c, 0xc3, 0xa6, 0x87,
+ 0x66, 0xdc, 0x94, 0x65, 0x19, 0x0f, 0xe3, 0x69,
+ 0x09, 0x34, 0x4c, 0x47, 0x0a, 0xc1, 0x5f, 0x41,
+ 0xb6, 0x18, 0x3d, 0x5a, 0xfb, 0xf2, 0x52, 0x9a,
+ 0xc1, 0xbe, 0x1e, 0x86, 0x25, 0xe8, 0xd4, 0xa7,
+ 0xa9, 0x79, 0x03, 0x7b, 0xea, 0x44, 0x5e, 0x84,
+ 0x2d, 0x21, 0x27, 0x52, 0x65, 0xf4, 0x36, 0x78,
+ 0x89, 0x0a, 0xcb, 0x3e, 0x00, 0x08, 0xb9, 0x43,
+ 0xc9, 0x50, 0xf2, 0xfe, 0x1a, 0x15, 0x8b, 0xdf,
+ 0xac, 0xa8, 0x23, 0x73, 0xc8, 0xab, 0x8d, 0xa2,
+ 0x62, 0x62, 0x7b, 0xdd, 0x5c, 0x05, 0x36, 0x3a,
+ 0x08, 0xe5, 0xca, 0x9f, 0x1b, 0x38, 0x11, 0x43,
+ 0xb9, 0xc5, 0x5d, 0x84, 0x7f, 0xfc, 0x8c, 0x88,
+ 0x28, 0x84, 0x0a, 0xda, 0x90, 0xe0, 0x98, 0x29,
+ 0x9a, 0xae, 0x3a, 0x2d, 0xae, 0xc2, 0x45, 0xa3,
+ 0x92, 0xbd, 0xb6, 0x2b, 0x2c, 0xae, 0xb2, 0x7a,
+ 0x91, 0x73, 0x27, 0x09, 0xcf, 0xf3, 0x71, 0xdf,
+ 0xf9, 0xbd, 0x6d, 0xee, 0xd6, 0x1c, 0xd8, 0x8b,
+ 0xf5, 0xc1, 0x84, 0x93, 0xc1, 0x8d, 0x60, 0xec,
+ 0x6d, 0x98, 0x19, 0xf5, 0x39, 0xbd, 0x51, 0x31,
+ 0xd6, 0xc8, 0x3c, 0x28, 0xf9, 0xf5, 0x36, 0xfe,
+ 0x43, 0xd9, 0xf5, 0x3b, 0x13, 0x41, 0xda, 0x48,
+ 0xbc, 0x1f, 0x64, 0xb3, 0x70, 0x68, 0xa0, 0xda,
+ 0xea, 0xad, 0x70, 0xed, 0x5c, 0x80, 0x40, 0x3c,
+ 0xc0, 0x77, 0x18, 0x97, 0x0a, 0x60, 0x11, 0x05,
+ 0xcc, 0x2a, 0x91, 0x40, 0xa5, 0x5e, 0x0b, 0x14
+//};
+//unsigned int sig_grpx_member0_sha512_rndbase_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member1/mprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member1/mprivkey.inc
new file mode 100644
index 0000000000..62a5e29941
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member1/mprivkey.inc
@@ -0,0 +1,44 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : member1
+ */
+//unsigned char mprivkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x14, 0x26, 0x0f, 0x4c, 0x15, 0xb6, 0xea, 0x44,
+ 0x5f, 0x3c, 0x01, 0xc2, 0xad, 0xe7, 0x00, 0x63,
+ 0x41, 0xa8, 0xff, 0xa3, 0x7a, 0x10, 0x00, 0x80,
+ 0xdf, 0xb0, 0x9c, 0x1e, 0x77, 0x19, 0x72, 0x6e,
+ 0x47, 0x4e, 0x27, 0x8c, 0xfb, 0x1d, 0x86, 0xf7,
+ 0x03, 0x85, 0x27, 0x93, 0xac, 0x0a, 0xbe, 0x94,
+ 0x24, 0x79, 0x23, 0x21, 0x0a, 0x80, 0xac, 0x00,
+ 0xdd, 0x78, 0xd8, 0x68, 0xb4, 0xf4, 0x81, 0x6c,
+ 0x0c, 0x89, 0x68, 0x9d, 0x6b, 0x0a, 0x77, 0x6c,
+ 0x7a, 0xdb, 0x96, 0xea, 0xaa, 0x8a, 0x47, 0xd2,
+ 0x59, 0xc6, 0x98, 0xde, 0x47, 0xb2, 0xc7, 0xab,
+ 0xf0, 0xb4, 0xac, 0x1c, 0x58, 0xe7, 0x20, 0x1f,
+ 0x5b, 0xcc, 0xd0, 0xef, 0x05, 0x3c, 0x02, 0x94,
+ 0xee, 0xaf, 0x1e, 0x12, 0x90, 0xd9, 0xc6, 0x05,
+ 0x36, 0x75, 0xc7, 0x46, 0x3c, 0x6c, 0x19, 0xaf,
+ 0xbe, 0xe7, 0x43, 0x88, 0x6c, 0x08, 0xa2, 0xb5
+//};
+//unsigned int mprivkey_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member1/sig_sha256_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member1/sig_sha256_bsn0_msg0.inc
new file mode 100644
index 0000000000..0b729f5218
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/member1/sig_sha256_bsn0_msg0.inc
@@ -0,0 +1,136 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : member1
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+
+//unsigned char sig_sha256_bsn0_msg0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0xfa, 0xd0, 0x0a, 0x0a, 0x32, 0xc3, 0xf4, 0x37,
+ 0x41, 0x79, 0x5d, 0xfe, 0xe4, 0x86, 0x46, 0x9b,
+ 0x92, 0x68, 0xae, 0xd4, 0xd0, 0xc9, 0x6f, 0xfa,
+ 0x2c, 0xe4, 0xf8, 0x19, 0x62, 0x8f, 0x63, 0x59,
+ 0x34, 0xf2, 0x9c, 0xae, 0x5e, 0x09, 0x42, 0x91,
+ 0x16, 0x5b, 0x78, 0x3f, 0x77, 0xa4, 0xb7, 0xef,
+ 0x33, 0xf7, 0x50, 0x0b, 0x7d, 0x6b, 0xa9, 0x0e,
+ 0xce, 0x78, 0x21, 0xd7, 0xdd, 0x63, 0x21, 0x20,
+ 0xda, 0xdc, 0xa0, 0x5f, 0xa0, 0x1e, 0xf3, 0x08,
+ 0x18, 0xd4, 0x0d, 0x33, 0x90, 0x36, 0x2b, 0xc6,
+ 0x30, 0xa8, 0x4a, 0xce, 0x8b, 0xf4, 0xfa, 0x09,
+ 0x8e, 0x37, 0x01, 0x19, 0x56, 0xd7, 0x73, 0xec,
+ 0x78, 0xd4, 0x2d, 0x3f, 0x64, 0x51, 0xe8, 0xf8,
+ 0x98, 0x70, 0x9e, 0x13, 0xd0, 0xca, 0xcf, 0x91,
+ 0x86, 0x54, 0x47, 0xea, 0xe7, 0x37, 0x3e, 0x8a,
+ 0x98, 0x0f, 0x16, 0x4b, 0xfb, 0xe0, 0x39, 0xa7,
+ 0x94, 0x12, 0x20, 0x27, 0x95, 0x40, 0xc0, 0x80,
+ 0x1c, 0x22, 0x36, 0x27, 0xd4, 0x67, 0x3e, 0xc2,
+ 0x8a, 0x68, 0xfb, 0x60, 0x15, 0x16, 0x52, 0xf1,
+ 0x6c, 0xdd, 0x8f, 0xf6, 0xbb, 0x28, 0x13, 0x0e,
+ 0xb4, 0x00, 0x22, 0x81, 0xf0, 0x4a, 0xeb, 0x1a,
+ 0x74, 0x07, 0x1e, 0x5f, 0xd6, 0xa1, 0x03, 0x35,
+ 0xa4, 0x48, 0x4a, 0x0f, 0x0a, 0xa4, 0x30, 0x4a,
+ 0x02, 0x52, 0xa7, 0xac, 0xdf, 0xf0, 0xf4, 0x3c,
+ 0xe1, 0xc6, 0xbd, 0xe1, 0x12, 0x70, 0x09, 0x0a,
+ 0x79, 0x83, 0x35, 0x85, 0x64, 0x93, 0xca, 0xb5,
+ 0xd7, 0x3d, 0x9b, 0xe7, 0xf0, 0x8f, 0xcf, 0x53,
+ 0xb5, 0xb0, 0x37, 0x95, 0x08, 0x72, 0x39, 0x89,
+ 0x3a, 0x3a, 0xf2, 0x9e, 0x5e, 0x04, 0xdd, 0x1d,
+ 0x0e, 0x55, 0x60, 0xef, 0x01, 0xe2, 0x51, 0x58,
+ 0xef, 0x3b, 0xe4, 0xab, 0x7f, 0x5d, 0x50, 0x5a,
+ 0x2d, 0xfd, 0x5f, 0x86, 0xd6, 0x0f, 0xbf, 0x77,
+ 0x7f, 0x64, 0xba, 0x95, 0xe8, 0x81, 0x4d, 0x8b,
+ 0xb9, 0xf4, 0x4d, 0x02, 0x29, 0x22, 0x37, 0x45,
+ 0xb4, 0x83, 0x31, 0x84, 0x39, 0x49, 0x97, 0xac,
+ 0x70, 0xe9, 0x15, 0xf3, 0xe5, 0x38, 0x01, 0x53,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xcb, 0xd2, 0x73, 0x50, 0x7b, 0x1d, 0xb4, 0x93,
+ 0xde, 0xe8, 0x23, 0x9c, 0xee, 0x77, 0x21, 0x0f,
+ 0x76, 0xf6, 0xec, 0x66, 0x0d, 0x26, 0xd9, 0x8a,
+ 0x08, 0x29, 0x7c, 0x40, 0x16, 0xf8, 0x9d, 0xdf,
+ 0x84, 0x0c, 0xf7, 0x7c, 0x74, 0x01, 0xd8, 0xe7,
+ 0xed, 0x83, 0x82, 0x2f, 0x0d, 0xfc, 0x77, 0x63,
+ 0xb6, 0x72, 0xba, 0xc1, 0x8e, 0x13, 0xd4, 0xcd,
+ 0x1f, 0x50, 0x95, 0x8f, 0x56, 0x89, 0x64, 0x1a,
+ 0x38, 0xbe, 0x82, 0x38, 0x24, 0x2b, 0xcc, 0x1b,
+ 0x76, 0xac, 0x31, 0xf7, 0x91, 0x49, 0x33, 0x48,
+ 0x05, 0x71, 0x73, 0x3c, 0xed, 0x26, 0x22, 0x26,
+ 0x2b, 0xca, 0x11, 0x5b, 0xb5, 0xc4, 0x13, 0x33,
+ 0x70, 0x43, 0xa6, 0x6f, 0x0f, 0x97, 0x92, 0xe7,
+ 0x71, 0xa4, 0x96, 0x79, 0x9f, 0xa3, 0x21, 0x10,
+ 0xb8, 0xc2, 0x9c, 0x30, 0x73, 0x72, 0x16, 0x85,
+ 0x2f, 0xac, 0x76, 0xfd, 0x90, 0x88, 0x03, 0x58,
+ 0x5b, 0xb5, 0x40, 0x40, 0xf9, 0x76, 0x39, 0x50,
+ 0x15, 0x8a, 0x39, 0xb5, 0x93, 0x68, 0xe1, 0x1d,
+ 0xcb, 0xce, 0x54, 0xe1, 0x50, 0xd9, 0xed, 0x75,
+ 0x6e, 0x28, 0x67, 0x9d, 0xb6, 0x80, 0x91, 0x7e,
+ 0x8e, 0xd9, 0x01, 0xd0, 0x45, 0xd7, 0xa9, 0x32,
+ 0xd1, 0xd6, 0x62, 0x48, 0x5e, 0xa9, 0xb9, 0x08,
+ 0x3a, 0x01, 0xa7, 0x7b, 0xa1, 0x1e, 0x58, 0x13,
+ 0xb3, 0x63, 0x4b, 0x1c, 0x14, 0x17, 0x3e, 0xe6,
+ 0x02, 0xe1, 0x76, 0x80, 0xda, 0xd5, 0x5b, 0xed,
+ 0x9d, 0xae, 0x05, 0x7e, 0x69, 0xb1, 0xbd, 0xc6,
+ 0x2c, 0x46, 0x28, 0x9d, 0x74, 0xd6, 0x19, 0xd8,
+ 0xb4, 0x50, 0x08, 0xb5, 0xb9, 0x51, 0x9a, 0xef,
+ 0xf7, 0x1d, 0x74, 0xf0, 0xf8, 0x65, 0x6f, 0x9e,
+ 0x8a, 0xb6, 0x77, 0x12, 0x95, 0x92, 0x91, 0xec,
+ 0x6b, 0x64, 0xfa, 0xd3, 0xc1, 0x08, 0x52, 0x0f,
+ 0xc9, 0x97, 0xcd, 0xd6, 0xda, 0x1b, 0x04, 0x01,
+ 0x2c, 0x51, 0xbd, 0x09, 0x39, 0x26, 0x8c, 0x70,
+ 0x46, 0x68, 0x4d, 0xf6, 0x07, 0xb8, 0x26, 0xb4,
+ 0xb2, 0xf9, 0x7a, 0x3b, 0x9b, 0x23, 0xbf, 0xed,
+ 0xfe, 0xca, 0x42, 0x73, 0x50, 0xe2, 0xf8, 0x9b,
+ 0x95, 0xf6, 0x22, 0x82, 0xa6, 0xfd, 0xfe, 0x75,
+ 0x9c, 0x9d, 0x0e, 0x13, 0xdd, 0xb5, 0xfc, 0x2a,
+ 0xc7, 0x59, 0x8f, 0xa8, 0xf5, 0x8c, 0xe1, 0x8b,
+ 0xd3, 0x95, 0xc2, 0x24, 0x9e, 0x62, 0x54, 0x34,
+ 0x17, 0x78, 0x84, 0xd8, 0x26, 0x82, 0x82, 0x41,
+ 0xbd, 0x66, 0xd2, 0xa1, 0x0a, 0x6a, 0xef, 0x98,
+ 0x0f, 0x3b, 0x79, 0xed, 0x1e, 0xb1, 0xb0, 0xce,
+ 0x33, 0x7a, 0x33, 0xfe, 0x73, 0x5e, 0x3f, 0x22,
+ 0xea, 0xb2, 0x08, 0xc3, 0x65, 0xa6, 0x5d, 0x00,
+ 0x07, 0xd4, 0xa9, 0x17, 0x86, 0xa7, 0x50, 0xa9,
+ 0x4f, 0xdf, 0xe0, 0x80, 0x3a, 0xcd, 0x16, 0x09,
+ 0x42, 0xa5, 0xc0, 0x50, 0xff, 0xba, 0xf2, 0xd3,
+ 0x6e, 0x6a, 0x20, 0x66, 0x15, 0x52, 0x51, 0x7b,
+ 0xb8, 0x0b, 0x71, 0x69, 0x5c, 0x4c, 0xd0, 0x74,
+ 0x60, 0x44, 0x65, 0x58, 0x19, 0x62, 0x1d, 0x0f,
+ 0x4b, 0xea, 0x7a, 0xb6, 0x3c, 0x54, 0x81, 0xd2,
+ 0xec, 0x53, 0xcf, 0x16, 0x4a, 0x1d, 0xfa, 0x01,
+ 0x94, 0xc7, 0x9e, 0x53, 0xbb, 0xa6, 0xe0, 0xb5,
+ 0x33, 0x6f, 0x9d, 0x6e, 0x81, 0x79, 0x18, 0x30,
+ 0xf9, 0x7b, 0xbb, 0x97, 0xf5, 0x9f, 0xa6, 0x1c,
+ 0xaa, 0x59, 0xd2, 0xe0, 0xf8, 0xc8, 0xc8, 0x56,
+ 0xbb, 0x91, 0x97, 0x29, 0xaf, 0xad, 0xc1, 0x5f,
+ 0x0d, 0x8e, 0x5a, 0x12, 0x8a, 0xc1, 0x64, 0x3c,
+ 0x2a, 0x82, 0x7b, 0xef, 0xfb, 0x67, 0xdc, 0x58
+//};
+//unsigned int sig_sha256_bsn0_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey000.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey000.inc
new file mode 100644
index 0000000000..895fc7d395
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey000.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : privrevokedmember000 (revoked in grpX privrl)
+ */
+
+//unsigned char mprivatekey000_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x1b, 0x31, 0xd8, 0x78, 0x27, 0xc5, 0x4a, 0x53,
+ 0x64, 0xe2, 0xcb, 0x12, 0x10, 0xcb, 0xfb, 0xb5,
+ 0x12, 0x03, 0x81, 0x3c, 0xee, 0x99, 0xbe, 0xb3,
+ 0x8b, 0xfe, 0xe9, 0xb9, 0x3f, 0x79, 0xcf, 0xe4,
+ 0xa3, 0x0f, 0x5c, 0xba, 0x7f, 0x4a, 0x9e, 0x34,
+ 0xda, 0x75, 0x97, 0x3d, 0x85, 0x44, 0x0b, 0x75,
+ 0x00, 0x80, 0x65, 0x53, 0x51, 0x07, 0x40, 0xcc,
+ 0xe7, 0x0f, 0x52, 0x49, 0xf4, 0xb6, 0x90, 0xe0,
+ 0x8f, 0xf3, 0x60, 0xe2, 0xe8, 0x01, 0x1d, 0xbb,
+ 0x02, 0xa3, 0x49, 0x99, 0xc5, 0x89, 0xfa, 0x40,
+ 0xbc, 0x65, 0xe7, 0x64, 0x1e, 0x1a, 0x0e, 0xe1,
+ 0xa0, 0x8e, 0xe0, 0x4a, 0x69, 0xeb, 0x65, 0x23,
+ 0xb1, 0x58, 0x6e, 0x93, 0x42, 0x67, 0x51, 0xfb,
+ 0x1b, 0x42, 0x4f, 0x0b, 0xe5, 0x11, 0x44, 0x6b,
+ 0xdd, 0x8b, 0xe8, 0xe9, 0x44, 0x09, 0x70, 0x6a,
+ 0xab, 0xaf, 0x54, 0xd8, 0x4a, 0xd3, 0x3d, 0x7c
+//};
+//unsigned int mprivatekey000_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey001.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey001.inc
new file mode 100644
index 0000000000..e9d5161359
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey001.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : privrevokedmember001 (revoked in grpX privrl)
+ */
+
+//unsigned char mprivatekey001_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xae, 0x8f, 0x73, 0x56, 0xd4, 0xd4, 0x95, 0x28,
+ 0x0a, 0x9b, 0xb4, 0x57, 0x65, 0x8b, 0x68, 0x82,
+ 0x58, 0x42, 0x3f, 0x75, 0x0f, 0x60, 0x15, 0xc2,
+ 0x83, 0x26, 0x3b, 0xa6, 0x74, 0xab, 0x5f, 0x7a,
+ 0xc7, 0x99, 0x84, 0x0d, 0xe4, 0xed, 0xa7, 0x11,
+ 0xd9, 0x8a, 0xd0, 0x08, 0xb0, 0x1c, 0x29, 0x75,
+ 0x71, 0x99, 0xf5, 0x11, 0x7d, 0xf3, 0xa5, 0x55,
+ 0xae, 0xaf, 0x71, 0x1b, 0x25, 0x93, 0xbd, 0x30,
+ 0x50, 0x08, 0x2f, 0xb9, 0x46, 0x89, 0xbf, 0x9d,
+ 0xf5, 0xae, 0x5f, 0x4d, 0x28, 0x5c, 0x5c, 0x19,
+ 0x58, 0xfb, 0xec, 0xac, 0xac, 0xe1, 0x16, 0x27,
+ 0xd3, 0x19, 0x07, 0x76, 0x2c, 0x20, 0x29, 0xec,
+ 0xfb, 0x9c, 0x7f, 0x54, 0x34, 0xba, 0xc2, 0xdb,
+ 0x2b, 0xec, 0xca, 0x08, 0xf8, 0x19, 0x3f, 0x79,
+ 0xee, 0x02, 0x01, 0x1f, 0x7c, 0x6a, 0x3a, 0xdb,
+ 0x6b, 0x42, 0x31, 0xc7, 0x09, 0x4e, 0xb0, 0x1b
+//};
+//unsigned int mprivatekey001_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey002.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey002.inc
new file mode 100644
index 0000000000..8e9af9d1ef
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/mprivatekey002.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : privrevokedmember002 (revoked in grpX privrl)
+ */
+
+//unsigned char mprivatekey002_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xbb, 0x31, 0x32, 0x47, 0xde, 0xe1, 0xd5, 0x97,
+ 0xe9, 0xdf, 0x2a, 0xa1, 0x3b, 0xb4, 0x0d, 0x84,
+ 0xf0, 0x01, 0x61, 0x74, 0x9e, 0xde, 0x47, 0x9c,
+ 0xfa, 0xcc, 0x73, 0x63, 0x6e, 0x63, 0x8d, 0x5c,
+ 0xf8, 0x1c, 0xe8, 0x32, 0x5f, 0x1c, 0xed, 0xde,
+ 0x82, 0xc4, 0x29, 0x28, 0x8d, 0xf2, 0x5e, 0x4f,
+ 0xd6, 0x16, 0x9e, 0x87, 0xa2, 0x65, 0x61, 0x31,
+ 0x25, 0x8a, 0x81, 0xb5, 0x60, 0xf2, 0x08, 0xc9,
+ 0x83, 0x8d, 0xbe, 0x69, 0xb1, 0x8d, 0x0f, 0x4a,
+ 0x55, 0x1d, 0xdb, 0x72, 0x84, 0x33, 0x45, 0x02,
+ 0x34, 0xcd, 0x76, 0x94, 0x2b, 0xd6, 0x89, 0xab,
+ 0xa6, 0x9a, 0x87, 0x60, 0x54, 0x37, 0x5f, 0x04,
+ 0x8d, 0xa3, 0xbf, 0xfa, 0xd1, 0x1d, 0x03, 0x29,
+ 0x17, 0xca, 0xcd, 0x01, 0xda, 0x76, 0x49, 0x3b,
+ 0x97, 0xc9, 0xd3, 0xf5, 0x13, 0x75, 0xbe, 0x70,
+ 0xc4, 0x24, 0x43, 0xff, 0xaa, 0x44, 0x67, 0xba
+//};
+//unsigned int mprivatekey002_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey000.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey000.inc
new file mode 100644
index 0000000000..a27ba107ea
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey000.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data for revoked privrl.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : privrevoked/member000
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha256_bsn0_msg0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2C, 0xBB, 0xFE, 0x06, 0x26,
+ 0x5F, 0x20, 0xBD, 0x9E, 0x49, 0x11, 0x31, 0xE0,
+ 0x7C, 0x99, 0x5E, 0xA0, 0x58, 0x4F, 0x1B, 0x3F,
+ 0xB4, 0x6E, 0xCD, 0x17, 0x61, 0x79, 0xA0, 0xFD,
+ 0x64, 0x60, 0xA4, 0xF8, 0x17, 0x81, 0xC3, 0x0A,
+ 0x4B, 0x6A, 0x72, 0x86, 0x96, 0xE3, 0xFA, 0x95,
+ 0x47, 0x45, 0xFB, 0x57, 0xEF, 0xCA, 0x82, 0x99,
+ 0x72, 0xDC, 0xE6, 0x78, 0xE3, 0x70, 0xA8, 0x28,
+ 0x38, 0xF7, 0x31, 0x44, 0xE9, 0xD3, 0xC8, 0xA8,
+ 0xF9, 0x72, 0x0D, 0x4F, 0xB5, 0x5E, 0x64, 0xD0,
+ 0x36, 0x0C, 0xEE, 0x7D, 0x67, 0x92, 0xD8, 0xF7,
+ 0xCB, 0x3C, 0xA3, 0x86, 0x06, 0x14, 0x6F, 0x79,
+ 0xAB, 0xB6, 0x8E, 0x27, 0x72, 0xBF, 0x87, 0x3D,
+ 0x3C, 0x28, 0xB6, 0xC4, 0x2D, 0x21, 0x2E, 0xBA,
+ 0x4E, 0x15, 0xA7, 0xFE, 0xD3, 0xF9, 0x5D, 0x8B,
+ 0x86, 0xD9, 0x1D, 0x6E, 0xD3, 0xAA, 0x3C, 0x8D,
+ 0xF4, 0xE8, 0x5D, 0x34, 0xEB, 0xB1, 0x28, 0x15,
+ 0x86, 0x0C, 0x17, 0x5E, 0x9F, 0x37, 0x02, 0x3C,
+ 0xDA, 0xF2, 0xAD, 0x95, 0xF8, 0x55, 0xB2, 0xCD,
+ 0x19, 0x12, 0x8F, 0xD8, 0xAB, 0x23, 0xC2, 0x51,
+ 0x22, 0x58, 0x2F, 0x9A, 0x86, 0x6D, 0x89, 0x44,
+ 0x78, 0x78, 0xEB, 0x4F, 0xA2, 0xD7, 0x06, 0x3A,
+ 0xBE, 0xCC, 0x27, 0x8E, 0x24, 0x07, 0x84, 0x10,
+ 0x9B, 0xBB, 0x1E, 0xC3, 0x1F, 0x96, 0xE8, 0x5F,
+ 0xDF, 0xC9, 0xFA, 0x8A, 0xDF, 0xB7, 0x1E, 0x4A,
+ 0x0E, 0x65, 0xE0, 0x1A, 0x1C, 0x74, 0xA0, 0xFE,
+ 0x4C, 0xD0, 0xDC, 0xB4, 0xEB, 0xA8, 0x03, 0xE0,
+ 0x89, 0xBC, 0x85, 0x5E, 0x82, 0xC8, 0xC5, 0x3D,
+ 0x0F, 0x29, 0xB9, 0x90, 0xA0, 0xBC, 0xB3, 0x73,
+ 0xAF, 0xF5, 0xEF, 0xA6, 0x55, 0x66, 0x23, 0x80,
+ 0x82, 0x6D, 0x53, 0xAB, 0x75, 0xAA, 0x9B, 0x08,
+ 0xDB, 0x2A, 0x72, 0x73, 0x88, 0x25, 0x91, 0x52,
+ 0xC3, 0x89, 0x4C, 0xD6, 0x24, 0x65, 0xB0, 0x30,
+ 0x09, 0x03, 0xAE, 0x24, 0x4D, 0x4B, 0x65, 0x66,
+ 0x7B, 0xA1, 0x2B, 0x36, 0xE6, 0xD8, 0x5C, 0x71,
+ 0xE6, 0xE0, 0xBB, 0x9F, 0x82, 0x0C, 0x53, 0x61,
+ 0xF8, 0xAB, 0x62, 0x48, 0x96, 0x4F, 0x04, 0xB9,
+ 0x31, 0x0C, 0x76, 0x62, 0x8A, 0xFB, 0x58, 0x56,
+ 0xA5, 0x3B, 0xF0, 0xB8, 0xE9, 0x8F, 0xE1, 0x47,
+ 0x12, 0x75, 0x2A, 0x30, 0x28, 0x93, 0xA9, 0xF0,
+ 0xEE, 0x22, 0xB0, 0x66, 0xFB, 0x0C, 0x2B, 0x09,
+ 0xAD, 0x07, 0x3C, 0x51, 0xFE, 0xD6, 0x8E, 0xED,
+ 0xC3, 0xFC, 0x68, 0x29, 0x0A, 0x1A, 0xB9, 0xD1,
+ 0x27, 0xAC, 0x52, 0xA0, 0x79, 0x5D, 0x44, 0x08,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xBC, 0xB0, 0x1D, 0x71, 0x43, 0xB1, 0x9C, 0x54,
+ 0x8E, 0x87, 0xE6, 0x61, 0x77, 0x78, 0xF6, 0x37,
+ 0x82, 0x49, 0xFB, 0xDA, 0x62, 0x38, 0x49, 0xE1,
+ 0xBA, 0x59, 0x89, 0x47, 0x40, 0xF1, 0xAE, 0x8D,
+ 0x80, 0x7B, 0xAC, 0xEF, 0x9E, 0x80, 0x43, 0xF4,
+ 0xF0, 0xDE, 0x7E, 0x77, 0x2A, 0x2B, 0x20, 0xAD,
+ 0x2C, 0x74, 0x19, 0xD8, 0x73, 0x64, 0xE9, 0xC1,
+ 0x00, 0x35, 0x77, 0xE2, 0x16, 0x02, 0x81, 0xE1,
+ 0x3D, 0x97, 0x90, 0x2F, 0x50, 0x46, 0xB4, 0x55,
+ 0x0F, 0x64, 0x1B, 0xEF, 0xA5, 0xA4, 0x80, 0x59,
+ 0x5D, 0xF2, 0xD5, 0x4D, 0x0C, 0x46, 0xBD, 0x28,
+ 0xCC, 0x98, 0xE8, 0x04, 0xB8, 0x07, 0x2A, 0x57,
+ 0xBD, 0xCE, 0x84, 0x1B, 0x8F, 0x85, 0x62, 0x5F,
+ 0x73, 0xBF, 0x71, 0x8C, 0xB5, 0xD5, 0x78, 0x45,
+ 0xB9, 0x7F, 0x93, 0xC3, 0x92, 0xCF, 0x06, 0xE9,
+ 0xD9, 0x25, 0x8E, 0x28, 0x51, 0x88, 0x26, 0x1D,
+ 0xE0, 0xAE, 0x4F, 0x9C, 0xED, 0xD2, 0x93, 0xA2,
+ 0xC8, 0x80, 0x32, 0x02, 0x67, 0xBB, 0x27, 0xDC,
+ 0x19, 0xF7, 0xB7, 0x67, 0xD1, 0xE3, 0x7E, 0xF1,
+ 0xB6, 0x16, 0x5A, 0xFE, 0xB6, 0x1C, 0x55, 0x5D,
+ 0x02, 0x86, 0x4F, 0xAB, 0x1E, 0xB2, 0x2A, 0xFD,
+ 0x91, 0xB6, 0x2B, 0x1A, 0x86, 0xFC, 0x14, 0x77,
+ 0xCB, 0xAD, 0x50, 0xC5, 0x9F, 0x7F, 0x9B, 0x86,
+ 0x0C, 0xD8, 0xAD, 0x3B, 0x17, 0xE6, 0x86, 0x6E,
+ 0x5B, 0x3B, 0xEE, 0x28, 0x9E, 0x79, 0xC5, 0x19,
+ 0x88, 0x5E, 0x9C, 0x5D, 0xD8, 0x44, 0x9C, 0x37,
+ 0xAD, 0x0E, 0x0E, 0x54, 0x8D, 0xB5, 0x42, 0x4C,
+ 0x52, 0xFB, 0xE4, 0x61, 0x2D, 0x32, 0x94, 0x77,
+ 0xF8, 0x19, 0x31, 0x92, 0x1A, 0x4B, 0x73, 0xB3,
+ 0xDE, 0x0E, 0x84, 0xD0, 0xBD, 0x55, 0xC4, 0xA6,
+ 0x5A, 0xDA, 0xD4, 0x3F, 0x86, 0xF5, 0xEB, 0x48,
+ 0x6B, 0xDA, 0xF5, 0xE9, 0x0A, 0x57, 0x4C, 0x87,
+ 0x87, 0x5C, 0x15, 0xFD, 0x48, 0x4E, 0xE3, 0xA0,
+ 0xC2, 0x7F, 0xE7, 0x3F, 0x25, 0x3D, 0x82, 0x1F,
+ 0xC8, 0xB0, 0x75, 0x59, 0x55, 0x9F, 0x5B, 0x51,
+ 0x97, 0xF0, 0xF5, 0xBC, 0xE1, 0xB0, 0xC1, 0x7D,
+ 0xD7, 0x32, 0xFB, 0xAE, 0x76, 0x96, 0xCE, 0x08,
+ 0xC0, 0xBA, 0x59, 0x4D, 0xE5, 0xDA, 0xFE, 0x4E,
+ 0xDD, 0x6D, 0xA8, 0x44, 0xC1, 0x0D, 0xEC, 0x1D,
+ 0xE0, 0xC1, 0xDF, 0x0B, 0xB8, 0x72, 0x5B, 0x2B,
+ 0x33, 0xBC, 0x50, 0xB4, 0x0C, 0x60, 0x14, 0x6A,
+ 0x3B, 0x47, 0xBC, 0x24, 0x68, 0x84, 0xEE, 0xD2,
+ 0x5F, 0xA5, 0xAC, 0x72, 0x87, 0xE4, 0x85, 0x23,
+ 0x36, 0x2B, 0x59, 0x51, 0x56, 0x71, 0x38, 0xB6,
+ 0x0D, 0x29, 0xC1, 0xFD, 0x07, 0xB0, 0x96, 0x7C,
+ 0xC2, 0x3F, 0x91, 0x17, 0x19, 0xC3, 0x1D, 0x4B,
+ 0xFE, 0x2A, 0xE8, 0x26, 0xB4, 0x11, 0x70, 0x54,
+ 0xB4, 0x44, 0x59, 0xCB, 0xB3, 0x16, 0xD4, 0x78,
+ 0x0E, 0xB6, 0x52, 0x47, 0x5F, 0xF5, 0x04, 0x61,
+ 0x71, 0xEA, 0x76, 0x53, 0x33, 0x6E, 0xEE, 0x84,
+ 0xF3, 0x8C, 0xCC, 0xC9, 0x67, 0xB7, 0xDE, 0xDF,
+ 0x2C, 0x49, 0x43, 0xD6, 0x7A, 0x8A, 0xB8, 0xFB,
+ 0x14, 0x9F, 0xD9, 0xC6, 0x00, 0x4D, 0xA3, 0x73,
+ 0x92, 0x50, 0x85, 0x9D, 0x92, 0x5A, 0x77, 0xC5,
+ 0x5A, 0xB2, 0x29, 0xB9, 0x97, 0x64, 0xE6, 0xF6,
+ 0x84, 0xE8, 0x9C, 0x68, 0x0D, 0xD7, 0x0E, 0xC2,
+ 0x63, 0x88, 0x9D, 0x83, 0x91, 0x14, 0x64, 0x99,
+ 0xAD, 0xBE, 0xBC, 0x35, 0x99, 0x76, 0x71, 0x4E,
+ 0x65, 0x79, 0x5E, 0xF5, 0x37, 0x09, 0x71, 0xF8,
+ 0x21, 0x00, 0xCA, 0x1B, 0x3F, 0xEF, 0x51, 0x1D
+//};
+//unsigned int sig_grpx_member0_sha256_bsn0_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey001.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey001.inc
new file mode 100644
index 0000000000..58144224bc
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey001.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data for revoked privrl.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : privrevoked/member001
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha256_bsn0_msg0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2C, 0xBB, 0xFE, 0x06, 0x26,
+ 0x5F, 0x20, 0xBD, 0x9E, 0x49, 0x11, 0x31, 0xE0,
+ 0x7C, 0x99, 0x5E, 0xA0, 0x58, 0x4F, 0x1B, 0x3F,
+ 0xB4, 0x6E, 0xCD, 0x17, 0x61, 0x79, 0xA0, 0xFD,
+ 0x64, 0x60, 0xA4, 0xF8, 0x17, 0x81, 0xC3, 0x0A,
+ 0x4B, 0x6A, 0x72, 0x86, 0x96, 0xE3, 0xFA, 0x95,
+ 0x47, 0x45, 0xFB, 0x57, 0xEF, 0xCA, 0x82, 0x99,
+ 0x72, 0xDC, 0xE6, 0x78, 0xE3, 0x70, 0xA8, 0x28,
+ 0x97, 0xD9, 0xAF, 0x30, 0xFA, 0x73, 0xBC, 0x33,
+ 0xA8, 0x5F, 0x52, 0x1A, 0x72, 0x93, 0xCF, 0xC3,
+ 0xA0, 0xE2, 0x73, 0x3C, 0xAA, 0x2A, 0x27, 0x52,
+ 0x21, 0x78, 0xD0, 0x7C, 0x74, 0x2E, 0xCB, 0xD5,
+ 0x80, 0x52, 0xCC, 0xDF, 0x55, 0x2A, 0xB9, 0x71,
+ 0x77, 0xE3, 0xCB, 0xAE, 0xC7, 0x55, 0x8A, 0xBF,
+ 0xDC, 0x55, 0x57, 0xD2, 0xFC, 0xE7, 0x33, 0xE9,
+ 0x58, 0x38, 0x0F, 0x36, 0x98, 0xD1, 0x50, 0xEE,
+ 0xB2, 0xCA, 0x4E, 0x22, 0x4B, 0xEB, 0xB8, 0x03,
+ 0x4A, 0x4F, 0x4D, 0xF6, 0x1A, 0x3D, 0xDD, 0x77,
+ 0x85, 0x4B, 0xC3, 0x8E, 0x3A, 0x26, 0x05, 0x7D,
+ 0x9B, 0xAF, 0x72, 0xC9, 0x04, 0x2C, 0x53, 0x4D,
+ 0x6B, 0x35, 0x26, 0x03, 0x2D, 0xA6, 0xB9, 0xFA,
+ 0x3D, 0x60, 0xCD, 0x95, 0x15, 0x81, 0x89, 0x72,
+ 0x88, 0x1E, 0x53, 0x20, 0x63, 0xC2, 0x1B, 0x5A,
+ 0x59, 0x48, 0xE5, 0x0F, 0xD6, 0xF5, 0x63, 0x3E,
+ 0x0C, 0x94, 0x8C, 0x3C, 0x18, 0x4C, 0x6A, 0x7C,
+ 0x6E, 0x51, 0xB2, 0x31, 0xFC, 0x35, 0xB4, 0x35,
+ 0xF3, 0x63, 0x69, 0x75, 0x31, 0x95, 0x2B, 0x1D,
+ 0x53, 0x2F, 0xC8, 0x59, 0x8F, 0xFD, 0xBA, 0x81,
+ 0xAE, 0xF8, 0x0A, 0x1B, 0xFE, 0xD1, 0xF0, 0x60,
+ 0xA8, 0x9C, 0xC6, 0x4E, 0x39, 0x7C, 0xC4, 0xFF,
+ 0xBB, 0xED, 0x4B, 0xC4, 0x66, 0xF2, 0xBE, 0xEA,
+ 0x83, 0x15, 0x7F, 0x62, 0xA7, 0xA0, 0x0E, 0x6A,
+ 0x68, 0xBF, 0xD6, 0xA5, 0xCE, 0xF4, 0x64, 0x85,
+ 0x9B, 0xAC, 0x97, 0xE8, 0x19, 0xDA, 0xCF, 0xCC,
+ 0xDF, 0xB5, 0x3E, 0xA5, 0xFC, 0xFD, 0x9C, 0x88,
+ 0x41, 0x54, 0x43, 0xA8, 0xF7, 0x86, 0xD3, 0x2E,
+ 0xC3, 0x27, 0x26, 0x23, 0x1C, 0x5C, 0xF8, 0xA8,
+ 0x4A, 0x9F, 0x52, 0x89, 0xEC, 0x71, 0x4D, 0x14,
+ 0xE1, 0x0E, 0x1A, 0x9C, 0x49, 0x2B, 0x39, 0xFD,
+ 0x8E, 0x87, 0x0A, 0x74, 0x2E, 0xAA, 0x91, 0xE8,
+ 0x7F, 0x06, 0xAD, 0x11, 0x9A, 0xA9, 0x33, 0x36,
+ 0x26, 0xA3, 0x21, 0xE8, 0xEF, 0x06, 0x7F, 0x36,
+ 0x2D, 0xEF, 0xAE, 0x63, 0x8A, 0x1A, 0xFC, 0xAD,
+ 0x72, 0xFF, 0xCA, 0x7B, 0xFF, 0xED, 0xD2, 0xCB,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x11, 0xBC, 0x6D, 0x79, 0x07, 0x9D, 0x50, 0x47,
+ 0xA4, 0x1D, 0x04, 0xBB, 0xEC, 0xBE, 0xEB, 0x07,
+ 0xCF, 0xB3, 0x5A, 0xC8, 0xBA, 0xB7, 0xCE, 0x92,
+ 0x72, 0x5F, 0xA5, 0xDA, 0x89, 0xDF, 0xC6, 0xEB,
+ 0x35, 0xDC, 0x53, 0x3C, 0xD8, 0x32, 0x7B, 0xD3,
+ 0xE7, 0xBD, 0x76, 0x28, 0xFA, 0x71, 0x3A, 0xD5,
+ 0x64, 0xD3, 0xC9, 0x39, 0x12, 0xA0, 0x86, 0x60,
+ 0xBB, 0x7B, 0xBA, 0xD3, 0xAF, 0xAC, 0x06, 0x07,
+ 0x0E, 0x15, 0xAA, 0xD7, 0x86, 0xD3, 0x2F, 0x56,
+ 0x9D, 0xE0, 0xE3, 0xAE, 0xBF, 0xE3, 0x53, 0x64,
+ 0x57, 0x98, 0xF3, 0x90, 0x12, 0xC9, 0xDD, 0x54,
+ 0xE3, 0x31, 0xAE, 0xB9, 0xF4, 0x3F, 0x3A, 0x0F,
+ 0xB5, 0xC0, 0x08, 0x30, 0x41, 0xE1, 0x9B, 0x3C,
+ 0xFD, 0x55, 0xDA, 0xD7, 0x7D, 0xB5, 0x6A, 0xB6,
+ 0x21, 0x4A, 0xAC, 0x4B, 0x7C, 0x41, 0x4E, 0x46,
+ 0xC6, 0x42, 0x87, 0x3B, 0xE1, 0x2D, 0xCB, 0xFE,
+ 0x66, 0xA7, 0x1E, 0xC1, 0xFD, 0xAC, 0xA3, 0xE5,
+ 0x8C, 0x8A, 0xB1, 0x6E, 0x90, 0xBA, 0x45, 0x8C,
+ 0x5C, 0xA5, 0x57, 0xB9, 0x0B, 0x58, 0x6B, 0x59,
+ 0x29, 0x5D, 0x98, 0x32, 0x85, 0xA7, 0x5A, 0x2F,
+ 0x95, 0x2D, 0x83, 0x16, 0x43, 0x04, 0x16, 0xB0,
+ 0x80, 0x32, 0xD0, 0x22, 0x8D, 0xFF, 0x21, 0xA4,
+ 0x04, 0x6A, 0x54, 0xE0, 0x0D, 0x4D, 0xBF, 0xA7,
+ 0x48, 0x1A, 0xDB, 0xD2, 0xDB, 0x84, 0xDE, 0x77,
+ 0x1A, 0x43, 0x36, 0x61, 0xF0, 0x7F, 0xB4, 0x99,
+ 0x75, 0xE5, 0x5D, 0xD6, 0xE2, 0x56, 0xC7, 0x17,
+ 0x9B, 0x38, 0x3E, 0x53, 0xF4, 0x4F, 0xBE, 0x82,
+ 0x3C, 0xEE, 0x89, 0x8A, 0x81, 0xD4, 0x9B, 0x72,
+ 0xD4, 0x55, 0xD1, 0x90, 0x34, 0x12, 0xA6, 0xED,
+ 0xA2, 0x6E, 0x7C, 0x50, 0xDB, 0x2C, 0x7C, 0xF9,
+ 0x34, 0xE7, 0xB8, 0xE1, 0xD2, 0xC8, 0x9E, 0x17,
+ 0x15, 0xA3, 0x22, 0xEC, 0x5A, 0xC4, 0x91, 0x2A,
+ 0x96, 0x19, 0x88, 0xBA, 0x73, 0xBE, 0x83, 0xA1,
+ 0x9F, 0x95, 0x17, 0x6F, 0x6A, 0xCE, 0x14, 0xF7,
+ 0x95, 0x60, 0xE8, 0xA9, 0xDF, 0x0B, 0xD9, 0xD7,
+ 0xE2, 0x98, 0xC0, 0x5C, 0x86, 0x83, 0x43, 0xE7,
+ 0xE1, 0x4F, 0xDA, 0x57, 0x27, 0xC7, 0x52, 0xE6,
+ 0x77, 0x05, 0x0B, 0x84, 0x46, 0x4B, 0xCB, 0x4D,
+ 0x2A, 0x4F, 0x39, 0xCC, 0xA3, 0x93, 0x42, 0xE0,
+ 0x9E, 0xA2, 0x4D, 0xAC, 0xC8, 0x9D, 0x1A, 0xAD,
+ 0x37, 0x01, 0xA4, 0x33, 0x58, 0xB7, 0x46, 0x60,
+ 0x82, 0xF9, 0xCB, 0xA6, 0x4D, 0x6B, 0xB5, 0x54,
+ 0x9E, 0xD8, 0xBA, 0x32, 0x96, 0xD8, 0xE0, 0x14,
+ 0x5E, 0xF8, 0x79, 0x53, 0x5B, 0xED, 0xC6, 0x93,
+ 0x3F, 0xEA, 0x3C, 0xD2, 0x34, 0xA2, 0xB8, 0x68,
+ 0x56, 0xC7, 0x2D, 0xA5, 0x0C, 0xB3, 0x5A, 0xFD,
+ 0x34, 0x93, 0x5B, 0x59, 0x08, 0x4E, 0x77, 0x7C,
+ 0x78, 0x81, 0x89, 0x10, 0xB4, 0x8A, 0x95, 0x8E,
+ 0x5A, 0xB7, 0x66, 0xF1, 0x26, 0xC1, 0x71, 0xA8,
+ 0x09, 0x0E, 0x5D, 0x60, 0x57, 0xC2, 0x79, 0xFD,
+ 0xE9, 0x59, 0xFC, 0x5A, 0xD2, 0x46, 0x0B, 0x3D,
+ 0x76, 0xC3, 0x65, 0xF0, 0x26, 0xAF, 0x8E, 0xF9,
+ 0x16, 0xFC, 0x6B, 0xC7, 0x4F, 0x8F, 0x36, 0x2A,
+ 0x7F, 0x20, 0x24, 0x70, 0x10, 0xF8, 0x32, 0x7D,
+ 0xF6, 0x64, 0xE3, 0x18, 0x37, 0x14, 0x0C, 0xD3,
+ 0xBC, 0x2C, 0x1F, 0x88, 0x39, 0xD0, 0xF7, 0x97,
+ 0xAC, 0x15, 0xFA, 0xED, 0x33, 0xEE, 0x10, 0x1A,
+ 0xB0, 0xEB, 0x98, 0x36, 0xB2, 0x5C, 0x82, 0x20,
+ 0xA2, 0x75, 0xF9, 0xE4, 0x72, 0xA9, 0xB2, 0x0C,
+ 0x6C, 0x12, 0xC1, 0x4D, 0x86, 0x3A, 0x42, 0x7F
+//};
+//unsigned int sig_grpx_member0_sha256_bsn0_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey002.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey002.inc
new file mode 100644
index 0000000000..2737b16fbb
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrevoked/signatures/sig_sha256_bsn0_msg0_revkey002.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data for revoked privrl.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : privrevoked/member002
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_grpx_member0_sha256_bsn0_msg0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2C, 0xBB, 0xFE, 0x06, 0x26,
+ 0x5F, 0x20, 0xBD, 0x9E, 0x49, 0x11, 0x31, 0xE0,
+ 0x7C, 0x99, 0x5E, 0xA0, 0x58, 0x4F, 0x1B, 0x3F,
+ 0xB4, 0x6E, 0xCD, 0x17, 0x61, 0x79, 0xA0, 0xFD,
+ 0x64, 0x60, 0xA4, 0xF8, 0x17, 0x81, 0xC3, 0x0A,
+ 0x4B, 0x6A, 0x72, 0x86, 0x96, 0xE3, 0xFA, 0x95,
+ 0x47, 0x45, 0xFB, 0x57, 0xEF, 0xCA, 0x82, 0x99,
+ 0x72, 0xDC, 0xE6, 0x78, 0xE3, 0x70, 0xA8, 0x28,
+ 0x1D, 0xFB, 0xB5, 0x81, 0x0D, 0xDB, 0x30, 0x3B,
+ 0xD9, 0x3A, 0xFE, 0x9D, 0x94, 0xCD, 0x7D, 0x9F,
+ 0x7D, 0x68, 0xB6, 0x57, 0xE8, 0x26, 0x78, 0x2B,
+ 0x32, 0xC3, 0x14, 0xC7, 0xE4, 0xDE, 0x04, 0x7B,
+ 0x27, 0xBE, 0x27, 0xDA, 0x79, 0x25, 0x4E, 0x36,
+ 0x75, 0x0E, 0x6E, 0xD0, 0x78, 0x36, 0xA6, 0x23,
+ 0x57, 0x63, 0x71, 0xCC, 0x07, 0xFA, 0x57, 0xB6,
+ 0xF6, 0x9D, 0xA6, 0x00, 0x36, 0xA2, 0xAB, 0xBB,
+ 0x81, 0xC9, 0xAE, 0xA8, 0x3B, 0xA0, 0xA7, 0xCE,
+ 0x0B, 0xC6, 0xE3, 0x40, 0x32, 0xE5, 0x29, 0x8F,
+ 0x4E, 0x5E, 0xFD, 0x1B, 0x7A, 0x7E, 0x83, 0x8B,
+ 0x26, 0xC1, 0x7B, 0xEC, 0x62, 0x30, 0x1E, 0x6F,
+ 0xDD, 0x18, 0xD0, 0x89, 0x5B, 0xD9, 0xC5, 0xD7,
+ 0x1B, 0x94, 0x29, 0x81, 0xBC, 0xD8, 0x2D, 0xF3,
+ 0xE2, 0xD5, 0x2E, 0x7E, 0x4A, 0xA0, 0x87, 0xA9,
+ 0xAB, 0x73, 0xB1, 0x8C, 0x7B, 0x18, 0x1E, 0xDA,
+ 0x4E, 0x5D, 0x7B, 0x49, 0xA7, 0x0E, 0xD9, 0xD7,
+ 0x1A, 0x6C, 0xC6, 0x18, 0x25, 0x1F, 0x36, 0x49,
+ 0xFA, 0xB6, 0x54, 0xCE, 0x2D, 0x73, 0x70, 0x52,
+ 0xC8, 0xC3, 0xFE, 0x22, 0x5C, 0x58, 0x6A, 0x6E,
+ 0x60, 0xE1, 0x86, 0xA0, 0x7F, 0x38, 0x48, 0xEE,
+ 0xDC, 0x4B, 0xBC, 0xD1, 0xF4, 0x3D, 0x1A, 0x2B,
+ 0x6E, 0x95, 0x61, 0x41, 0x17, 0x66, 0xC3, 0xAE,
+ 0x05, 0xD4, 0x67, 0x6D, 0x29, 0x79, 0xB9, 0x3A,
+ 0x81, 0x28, 0xA9, 0x0C, 0xFA, 0xE3, 0xBD, 0x60,
+ 0x16, 0x53, 0xFF, 0x5C, 0x2B, 0x25, 0x29, 0x66,
+ 0x2D, 0x91, 0x5E, 0x97, 0xF2, 0x8C, 0x42, 0xE7,
+ 0xAE, 0x50, 0x08, 0x7E, 0xEF, 0x1B, 0xB0, 0xB2,
+ 0xA0, 0x5E, 0xDF, 0xB0, 0x49, 0x2A, 0xA8, 0x3D,
+ 0xA0, 0x95, 0x1A, 0xF6, 0x0B, 0xB1, 0x0D, 0x70,
+ 0x3E, 0x6B, 0xFC, 0x1B, 0x57, 0x4F, 0x01, 0xF8,
+ 0x1F, 0xF0, 0xDC, 0x7F, 0x7E, 0xF9, 0xF6, 0xA4,
+ 0xD3, 0x1B, 0x4C, 0x72, 0x9C, 0xB5, 0xAF, 0x9E,
+ 0xEF, 0x0B, 0x24, 0x39, 0xC0, 0x89, 0x6B, 0xE6,
+ 0x16, 0x4D, 0xFA, 0x2B, 0x71, 0xF1, 0x58, 0xC7,
+ 0x3E, 0xF1, 0xB3, 0x47, 0x48, 0xD9, 0xD5, 0x03,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x05, 0xED, 0x13, 0xC4, 0xB7, 0x70, 0x01, 0xA9,
+ 0x1F, 0x36, 0x29, 0x8E, 0x1F, 0x0B, 0x43, 0x0E,
+ 0xD9, 0x23, 0x1A, 0x80, 0xCD, 0x75, 0x2F, 0x84,
+ 0x44, 0x2D, 0x2B, 0xF2, 0xFD, 0x78, 0x9F, 0xF0,
+ 0xA8, 0xEC, 0xDC, 0x53, 0x38, 0x6B, 0x11, 0x9B,
+ 0x42, 0x7E, 0x3B, 0x8A, 0xBB, 0x48, 0x8A, 0x79,
+ 0x58, 0x99, 0xFD, 0xE2, 0x35, 0x63, 0x2F, 0xA1,
+ 0xDF, 0x1C, 0x3B, 0x2C, 0x93, 0xFA, 0xD4, 0x71,
+ 0x7A, 0xDC, 0x01, 0xFF, 0x9C, 0x5A, 0x3B, 0xD8,
+ 0xA4, 0x86, 0xBD, 0x51, 0x99, 0x13, 0x31, 0xDE,
+ 0x84, 0x8B, 0x44, 0x9F, 0x7C, 0x29, 0xED, 0x3E,
+ 0xB7, 0xE9, 0x81, 0x82, 0x87, 0xB1, 0x05, 0xD0,
+ 0x4B, 0xC5, 0x9B, 0x7D, 0x91, 0x67, 0xE9, 0x11,
+ 0x56, 0x79, 0x84, 0xEF, 0x59, 0x95, 0x6C, 0xF8,
+ 0xA7, 0xB7, 0x0B, 0x61, 0x4A, 0xF5, 0x73, 0x41,
+ 0xFD, 0x39, 0x82, 0xEC, 0xEB, 0x22, 0xA0, 0x22,
+ 0xF0, 0xAB, 0xDD, 0x15, 0x9D, 0x93, 0x73, 0xF1,
+ 0x31, 0xF2, 0xE7, 0x5E, 0xA1, 0x04, 0x95, 0x1D,
+ 0x88, 0xA5, 0x80, 0x05, 0x87, 0xF2, 0xBC, 0xAB,
+ 0xFE, 0x0A, 0x7B, 0x3F, 0xF3, 0x2E, 0xA9, 0x8A,
+ 0x98, 0x6D, 0xCB, 0x0A, 0xFA, 0x7B, 0x43, 0x98,
+ 0xFC, 0x5A, 0xC7, 0x4F, 0x17, 0x15, 0x45, 0xFA,
+ 0xC4, 0x5B, 0x4B, 0x79, 0xDE, 0x21, 0x1F, 0x1D,
+ 0x0F, 0xFF, 0x1B, 0xFB, 0xCF, 0x87, 0x9D, 0x11,
+ 0x0D, 0x3A, 0x29, 0x17, 0xAF, 0xC6, 0xDA, 0x22,
+ 0x5B, 0x58, 0xC7, 0xF6, 0xFB, 0x4F, 0x46, 0x8A,
+ 0xCA, 0x9B, 0x5E, 0xAA, 0x5A, 0xF7, 0xAE, 0xB5,
+ 0xAC, 0x0B, 0x0E, 0xE1, 0x54, 0xD5, 0x6A, 0x20,
+ 0x20, 0xC1, 0x8A, 0x31, 0xCC, 0xE8, 0xCE, 0x92,
+ 0xFA, 0x7F, 0xF7, 0xD0, 0x73, 0x42, 0xDA, 0x47,
+ 0xFB, 0x08, 0x63, 0x38, 0xA0, 0x0D, 0xB6, 0x73,
+ 0x06, 0x48, 0xCA, 0x10, 0x8C, 0xE3, 0xA3, 0xE4,
+ 0xC3, 0x2A, 0x77, 0xDB, 0x1E, 0x47, 0x6A, 0x95,
+ 0xF4, 0x99, 0x0C, 0xA6, 0x29, 0x8C, 0x4E, 0x20,
+ 0x8D, 0xB6, 0x8D, 0x77, 0x8A, 0x3E, 0x35, 0xB7,
+ 0x8A, 0x0B, 0xCE, 0x71, 0x92, 0xD8, 0x32, 0xBA,
+ 0xB1, 0xA0, 0x40, 0x28, 0x7B, 0xA3, 0x19, 0x12,
+ 0x05, 0xA7, 0x13, 0xC1, 0xDB, 0xE3, 0x2A, 0x9A,
+ 0xDC, 0x41, 0x95, 0x69, 0x47, 0x81, 0xC1, 0x3B,
+ 0x88, 0x78, 0xBA, 0x08, 0xC0, 0xDC, 0xAF, 0x24,
+ 0x1C, 0x17, 0xEF, 0xD0, 0xB3, 0x3E, 0xFA, 0x0B,
+ 0x9A, 0x62, 0xF8, 0x6F, 0xEC, 0x84, 0xA0, 0xC1,
+ 0xB7, 0x9E, 0x24, 0x9B, 0x05, 0x77, 0x80, 0x7E,
+ 0x2D, 0x5A, 0xBF, 0xD9, 0x90, 0xBB, 0x99, 0xF0,
+ 0x2D, 0xF7, 0x66, 0xB6, 0x77, 0xF5, 0xF2, 0xD3,
+ 0xA7, 0x57, 0x85, 0xAF, 0x39, 0x9A, 0x3D, 0x05,
+ 0x1E, 0xD7, 0x87, 0x6C, 0xF4, 0xA6, 0xDD, 0x36,
+ 0x57, 0x10, 0xB9, 0x4C, 0x55, 0xC7, 0x83, 0xFA,
+ 0x29, 0xAF, 0x4D, 0x8C, 0xCC, 0x13, 0x4B, 0x2D,
+ 0x0E, 0x9D, 0x8B, 0xFF, 0xCE, 0x70, 0x3D, 0x27,
+ 0x52, 0x99, 0x32, 0x69, 0xC2, 0xDC, 0xA1, 0x27,
+ 0x61, 0x98, 0x11, 0x3C, 0xC8, 0x60, 0x6F, 0xF1,
+ 0x8C, 0x86, 0x27, 0xA5, 0x18, 0x2C, 0xEE, 0x7B,
+ 0xF8, 0xEE, 0x72, 0x8A, 0x12, 0x59, 0xDF, 0x90,
+ 0x0F, 0x34, 0x4D, 0x38, 0x19, 0x6E, 0xBD, 0xE3,
+ 0x08, 0x77, 0x60, 0x88, 0x2F, 0x69, 0x5B, 0xF7,
+ 0x3B, 0x7E, 0x81, 0xD0, 0x04, 0xE7, 0x8C, 0x17,
+ 0xD5, 0x60, 0xC6, 0xED, 0xF0, 0x65, 0xAD, 0x54,
+ 0x60, 0xE7, 0x76, 0x34, 0x4F, 0x8D, 0xB6, 0x44,
+ 0x57, 0xBD, 0x20, 0xEB, 0x15, 0x89, 0xE4, 0xB1
+//};
+//unsigned int sig_grpx_member0_sha256_bsn0_msg0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrl.inc
new file mode 100644
index 0000000000..a16a36ae2e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrl.inc
@@ -0,0 +1,40 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 private-key based revocation list
+ * Group : grpX
+ */
+//unsigned char privrl_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xb1, 0x58, 0x6e, 0x93, 0x42, 0x67, 0x51, 0xfb,
+ 0x1b, 0x42, 0x4f, 0x0b, 0xe5, 0x11, 0x44, 0x6b,
+ 0xdd, 0x8b, 0xe8, 0xe9, 0x44, 0x09, 0x70, 0x6a,
+ 0xab, 0xaf, 0x54, 0xd8, 0x4a, 0xd3, 0x3d, 0x7c,
+ 0xfb, 0x9c, 0x7f, 0x54, 0x34, 0xba, 0xc2, 0xdb,
+ 0x2b, 0xec, 0xca, 0x08, 0xf8, 0x19, 0x3f, 0x79,
+ 0xee, 0x02, 0x01, 0x1f, 0x7c, 0x6a, 0x3a, 0xdb,
+ 0x6b, 0x42, 0x31, 0xc7, 0x09, 0x4e, 0xb0, 0x1b,
+ 0x8d, 0xa3, 0xbf, 0xfa, 0xd1, 0x1d, 0x03, 0x29,
+ 0x17, 0xca, 0xcd, 0x01, 0xda, 0x76, 0x49, 0x3b,
+ 0x97, 0xc9, 0xd3, 0xf5, 0x13, 0x75, 0xbe, 0x70,
+ 0xc4, 0x24, 0x43, 0xff, 0xaa, 0x44, 0x67, 0xba
+//};
+//unsigned int privrl_dat_len = 120;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrl_single_entry_revoked_key000.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrl_single_entry_revoked_key000.inc
new file mode 100644
index 0000000000..abd8fb5d35
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/privrl_single_entry_revoked_key000.inc
@@ -0,0 +1,33 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 private-key based revocation list
+ * single entry, privrevoked/member000
+ * Group : grpX
+ */
+//unsigned char privrl_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0xb1, 0x58, 0x6e, 0x93, 0x42, 0x67, 0x51, 0xfb,
+ 0x1b, 0x42, 0x4f, 0x0b, 0xe5, 0x11, 0x44, 0x6b,
+ 0xdd, 0x8b, 0xe8, 0xe9, 0x44, 0x09, 0x70, 0x6a,
+ 0xab, 0xaf, 0x54, 0xd8, 0x4a, 0xd3, 0x3d, 0x7c
+//};
+//unsigned int privrl_dat_len = 56;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/pubkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/pubkey.inc
new file mode 100644
index 0000000000..a7d7484393
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/pubkey.inc
@@ -0,0 +1,59 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group public key
+ * Group : grpX
+ */
+//unsigned char pubkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x3d, 0x4b, 0x62, 0xf9, 0xf9, 0x1a, 0x0f, 0xb1,
+ 0x58, 0x7b, 0x0e, 0x42, 0x0c, 0xba, 0x94, 0x10,
+ 0xb4, 0x4e, 0x75, 0x33, 0x37, 0x24, 0xc0, 0xd0,
+ 0x9e, 0xf6, 0xb8, 0xe6, 0x8b, 0x69, 0xaa, 0xb1,
+ 0x29, 0x8f, 0x2a, 0xc3, 0xd9, 0x1d, 0x50, 0x4d,
+ 0xa3, 0x75, 0x20, 0x07, 0x1a, 0xa1, 0x7b, 0x2f,
+ 0xad, 0x72, 0x47, 0xff, 0x46, 0x8e, 0x69, 0xb2,
+ 0x05, 0x9e, 0xda, 0x68, 0xca, 0xc7, 0x81, 0x4c,
+ 0x48, 0x7a, 0x66, 0x7d, 0x9f, 0x52, 0xb3, 0x45,
+ 0x59, 0x5e, 0xde, 0x15, 0xdc, 0x29, 0xea, 0x7e,
+ 0x0e, 0xbf, 0x5e, 0xf3, 0xd0, 0x7b, 0xf1, 0x79,
+ 0x00, 0x1a, 0xcb, 0xd2, 0x56, 0xdc, 0x6f, 0xb1,
+ 0x50, 0xe8, 0xa8, 0x37, 0x22, 0x44, 0xa5, 0x6b,
+ 0x8f, 0x11, 0x92, 0xe5, 0x02, 0xd4, 0x9f, 0x89,
+ 0x4f, 0x97, 0x3a, 0x46, 0x5a, 0xe7, 0x00, 0xf3,
+ 0xbf, 0xf2, 0x47, 0x28, 0xa5, 0xf9, 0x07, 0xf5,
+ 0xb0, 0x63, 0x98, 0x76, 0x04, 0xcf, 0x85, 0xd9,
+ 0xad, 0xf2, 0x02, 0x0c, 0x13, 0x2c, 0x45, 0x10,
+ 0x5b, 0xcb, 0xa8, 0x76, 0xde, 0x1e, 0xe6, 0x92,
+ 0x06, 0x91, 0x49, 0xc2, 0x1a, 0xe8, 0x80, 0x90,
+ 0x46, 0x20, 0xd0, 0xd6, 0x73, 0xae, 0x29, 0x02,
+ 0xc2, 0x3f, 0x85, 0x13, 0x1a, 0x66, 0xae, 0xc1,
+ 0x61, 0x52, 0x62, 0xbf, 0x70, 0x1b, 0x1b, 0x52,
+ 0xde, 0x76, 0x8c, 0x9b, 0x35, 0x42, 0xa8, 0x19,
+ 0x32, 0x6c, 0xa2, 0x9b, 0x44, 0x24, 0x96, 0x1e,
+ 0x48, 0x68, 0xc8, 0x83, 0x16, 0xfb, 0xc3, 0xf6,
+ 0xed, 0x73, 0x94, 0xd9, 0xd4, 0x60, 0x63, 0xc0,
+ 0x2c, 0x44, 0x54, 0x36, 0x20, 0x38, 0x5b, 0x12,
+ 0x23, 0x32, 0x63, 0x6d, 0x79, 0x40, 0xf0, 0x3c,
+ 0x60, 0x35, 0xe9, 0xfe, 0xa3, 0xb3, 0xad, 0xe7,
+ 0xfa, 0x9c, 0xf1, 0xd7, 0x98, 0xfe, 0x28, 0x9e,
+ 0xc1, 0x81, 0xe7, 0x51, 0xce, 0x07, 0xbc, 0xc5
+//};
+//unsigned int pubkey_dat_len = 272;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey000.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey000.inc
new file mode 100644
index 0000000000..d05d3b8230
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey000.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : sigrevokedmember000 (revoked in grpX sigrl)
+ */
+
+//unsigned char mprivatekey000_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xa6, 0x7f, 0x17, 0xb8, 0xef, 0xe3, 0xab, 0x01,
+ 0x3f, 0x25, 0x02, 0x5e, 0x19, 0x93, 0xa5, 0x34,
+ 0x3a, 0x23, 0xec, 0xe5, 0x71, 0x87, 0x7d, 0x33,
+ 0x7c, 0x6b, 0xbf, 0x2e, 0x63, 0xb6, 0x85, 0xeb,
+ 0xe6, 0x1a, 0x60, 0xd9, 0x1c, 0xef, 0xd1, 0xae,
+ 0x85, 0x96, 0xd9, 0x8e, 0xf8, 0xf9, 0x8b, 0x68,
+ 0xfe, 0x7c, 0x3a, 0xde, 0x0b, 0xea, 0xa7, 0x7f,
+ 0x1c, 0x65, 0x81, 0xda, 0x3a, 0xc5, 0xea, 0xe0,
+ 0x67, 0x80, 0xf0, 0x53, 0x2c, 0xfa, 0xe3, 0xec,
+ 0xfd, 0x35, 0x7b, 0xd8, 0xa6, 0xf6, 0x54, 0x4b,
+ 0xc0, 0xb3, 0x38, 0x6b, 0x40, 0xae, 0xd9, 0x50,
+ 0x3f, 0x9f, 0x01, 0x87, 0x70, 0x0f, 0x9f, 0xcd,
+ 0x79, 0xa7, 0x3b, 0x7c, 0xb3, 0xd3, 0xd1, 0xc0,
+ 0x75, 0xf1, 0x50, 0xd6, 0x03, 0x40, 0xf8, 0xd6,
+ 0xc5, 0xf5, 0x7b, 0x1f, 0xfa, 0x61, 0xd9, 0x58,
+ 0xbc, 0x1b, 0xcd, 0x92, 0x35, 0x97, 0xa2, 0xb9
+//};
+//unsigned int mprivatekey000_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey001.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey001.inc
new file mode 100644
index 0000000000..e9d28775ff
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey001.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : sigrevokedmember001 (revoked in grpX sigrl)
+ */
+
+//unsigned char mprivatekey001_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xdb, 0x1b, 0x7b, 0xaa, 0x93, 0xed, 0x33, 0x68,
+ 0x8d, 0x20, 0x80, 0x66, 0x12, 0xaa, 0xfb, 0x6c,
+ 0x84, 0x02, 0xf0, 0xbd, 0x4b, 0xa4, 0xac, 0x12,
+ 0xcc, 0xbf, 0xfb, 0xd2, 0x19, 0x64, 0x14, 0xa2,
+ 0xdc, 0xf6, 0x85, 0xcc, 0xd1, 0xb7, 0x15, 0x65,
+ 0x76, 0xf2, 0xf5, 0xdd, 0x91, 0x98, 0xa1, 0x6e,
+ 0x21, 0x64, 0xcc, 0x74, 0xe1, 0x9b, 0x7c, 0x56,
+ 0xd4, 0x2f, 0xf5, 0x5f, 0xd4, 0xec, 0x03, 0x69,
+ 0x27, 0x49, 0xcd, 0xd3, 0x90, 0x18, 0xb2, 0x82,
+ 0x74, 0x46, 0x2b, 0x70, 0xc3, 0xe9, 0xcb, 0x30,
+ 0xde, 0x4e, 0x9c, 0x19, 0x97, 0x93, 0x24, 0x8b,
+ 0x10, 0xe9, 0x68, 0xca, 0x64, 0xbf, 0xcd, 0x81,
+ 0x02, 0x5c, 0x15, 0x7e, 0x0f, 0x00, 0x82, 0x32,
+ 0x45, 0xcf, 0x91, 0xd3, 0x64, 0x5f, 0xf6, 0x0a,
+ 0x83, 0x83, 0xc6, 0x3c, 0x0a, 0x68, 0x2c, 0x1e,
+ 0x96, 0x4b, 0xfa, 0xde, 0x06, 0xfe, 0x1a, 0x73
+//};
+//unsigned int mprivatekey001_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey002.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey002.inc
new file mode 100644
index 0000000000..9bb5536bc2
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrevoked/mprivatekey002.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : sigrevokedmember002 (revoked in grpX sigrl)
+ */
+
+//unsigned char mprivatekey002_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x77, 0xb7, 0x7d, 0xd1, 0x1c, 0xd3, 0xb5, 0x42,
+ 0x0b, 0x4c, 0xfb, 0x15, 0x97, 0x14, 0x5c, 0x44,
+ 0x24, 0xea, 0x32, 0xc4, 0x8f, 0x36, 0xfd, 0x20,
+ 0x19, 0x5f, 0x68, 0x61, 0x09, 0xf5, 0xd0, 0x78,
+ 0xa9, 0xc4, 0x07, 0x83, 0x02, 0x49, 0xf7, 0x8f,
+ 0x31, 0x3d, 0xb2, 0x0d, 0x91, 0x15, 0xfa, 0x38,
+ 0x76, 0x09, 0xce, 0x7e, 0xc0, 0x4e, 0x16, 0x08,
+ 0x79, 0x8f, 0x8b, 0xe4, 0xc9, 0x11, 0x40, 0x21,
+ 0x41, 0x34, 0x3d, 0x59, 0xc1, 0x65, 0x6d, 0x14,
+ 0x23, 0x82, 0x83, 0x66, 0xef, 0x04, 0x7b, 0xfb,
+ 0x7b, 0x43, 0x87, 0xfe, 0x46, 0xdb, 0x92, 0x97,
+ 0x5f, 0xe4, 0x2e, 0xe4, 0x76, 0x40, 0x50, 0x66,
+ 0xdf, 0x41, 0x0e, 0xe7, 0x5d, 0xa2, 0xd2, 0x17,
+ 0x72, 0xae, 0x43, 0x56, 0x05, 0xee, 0x7d, 0x43,
+ 0xbb, 0x84, 0xbc, 0x28, 0x55, 0x56, 0xaf, 0x0d,
+ 0x71, 0x41, 0x1a, 0x4a, 0x26, 0x63, 0x83, 0x87
+//};
+//unsigned int mprivatekey002_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl.inc
new file mode 100644
index 0000000000..6aba0eb710
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl.inc
@@ -0,0 +1,76 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 signature based revocation list
+ * Group : grpX
+ */
+//unsigned char sigrl_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xa6, 0xad, 0xdd, 0xbe, 0x45, 0xcc, 0x88, 0xcc,
+ 0x18, 0x30, 0x68, 0x49, 0x77, 0xfe, 0xc0, 0x4f,
+ 0xf9, 0x27, 0xa9, 0x49, 0x66, 0x03, 0x1a, 0x3c,
+ 0x3c, 0x4f, 0xac, 0xb6, 0x94, 0x2e, 0xd7, 0xb0,
+ 0x01, 0xa3, 0x8c, 0x5e, 0x73, 0x1d, 0x2f, 0x20,
+ 0x86, 0xb7, 0x10, 0xbd, 0x8e, 0x63, 0x5b, 0x41,
+ 0x21, 0x23, 0x8d, 0xac, 0x87, 0xc0, 0x7e, 0x78,
+ 0xb2, 0x11, 0x33, 0x52, 0x50, 0xa7, 0x6f, 0x7a,
+ 0x09, 0x95, 0x63, 0x1b, 0x04, 0xce, 0x6b, 0x93,
+ 0x47, 0xa2, 0xb0, 0x1f, 0x2c, 0x89, 0x1c, 0xd7,
+ 0xaa, 0xd6, 0x88, 0xbd, 0xd5, 0x45, 0x6f, 0x06,
+ 0x2b, 0xcc, 0x3e, 0x02, 0x4f, 0xeb, 0xef, 0x9d,
+ 0xb2, 0xf9, 0x71, 0xea, 0xca, 0x8c, 0x9c, 0x00,
+ 0xcd, 0x7e, 0x1c, 0x15, 0x7d, 0x69, 0xe8, 0x52,
+ 0x03, 0x81, 0xc4, 0x31, 0x2e, 0x8f, 0x0d, 0x31,
+ 0xef, 0x18, 0x03, 0x37, 0x0f, 0xa3, 0x19, 0x7b,
+ 0x19, 0x6a, 0x11, 0x7c, 0xfb, 0x88, 0xd3, 0x08,
+ 0x17, 0x98, 0x9d, 0xd6, 0x5a, 0x87, 0xd3, 0xe8,
+ 0x69, 0x3f, 0x6c, 0x8b, 0xd8, 0xd4, 0x6c, 0x11,
+ 0x17, 0x2b, 0xae, 0xf2, 0x8d, 0xa4, 0x35, 0x55,
+ 0x32, 0x9e, 0x85, 0x6a, 0xc2, 0x9e, 0xee, 0x5b,
+ 0xcd, 0x23, 0x7a, 0x11, 0xa7, 0xdd, 0xde, 0xb2,
+ 0xd1, 0xc6, 0xb8, 0x02, 0x93, 0xdb, 0x1e, 0x69,
+ 0x99, 0x6d, 0xc6, 0x2f, 0x98, 0xab, 0x26, 0x89,
+ 0x02, 0x83, 0xfa, 0xa6, 0x65, 0xe9, 0xc6, 0x9f,
+ 0xf7, 0xc9, 0x7b, 0xda, 0x73, 0x1c, 0x60, 0x11,
+ 0x32, 0x85, 0x17, 0x49, 0xca, 0x0b, 0x96, 0x0c,
+ 0x47, 0x0d, 0xef, 0x94, 0x9c, 0x15, 0x05, 0xbe,
+ 0x4b, 0xed, 0xd6, 0xee, 0x7b, 0xbb, 0x14, 0x23,
+ 0x54, 0x31, 0x04, 0xf0, 0x81, 0x04, 0x44, 0xd2,
+ 0x02, 0x33, 0x60, 0xba, 0x5f, 0x4f, 0xae, 0x1f,
+ 0x2d, 0xce, 0xbb, 0xff, 0xe8, 0x55, 0xc7, 0xa8,
+ 0xa6, 0x50, 0xbe, 0xa7, 0xfb, 0x41, 0x9d, 0xf8,
+ 0x41, 0x9c, 0xdd, 0x92, 0x47, 0x9f, 0x6f, 0xf3,
+ 0x56, 0x25, 0x0e, 0xbc, 0xa0, 0x89, 0xf2, 0x7f,
+ 0x12, 0x45, 0x5b, 0xb4, 0xd6, 0xa5, 0xb5, 0x71,
+ 0x31, 0x70, 0xae, 0xaf, 0x65, 0x55, 0x0e, 0xa9,
+ 0x1a, 0x5d, 0xc0, 0x1f, 0x20, 0x71, 0x07, 0xce,
+ 0x3e, 0x5e, 0xd3, 0xee, 0x5b, 0x4c, 0x67, 0x21,
+ 0x64, 0x0c, 0x5c, 0x1c, 0xd3, 0x2d, 0x24, 0xc4,
+ 0xf8, 0xad, 0x31, 0x02, 0xc5, 0xb0, 0x45, 0xe8,
+ 0x60, 0xd2, 0x50, 0xf4, 0xd1, 0xd6, 0x2b, 0x85,
+ 0x53, 0xac, 0x73, 0x96, 0x98, 0xf9, 0x1b, 0x5e,
+ 0xb8, 0x0f, 0xa1, 0xd3, 0xba, 0x6e, 0x43, 0x92,
+ 0x31, 0x69, 0x82, 0x14, 0x4a, 0xff, 0x36, 0x44,
+ 0x58, 0xf6, 0x41, 0xe3, 0x46, 0x85, 0x83, 0x05,
+ 0x96, 0x87, 0x7c, 0x0c, 0x0b, 0x70, 0x24, 0x8e,
+ 0x42, 0xb0, 0xd5, 0x9e, 0x7f, 0xcb, 0x26, 0xe8
+//};
+//unsigned int sigrl_dat_len = 408;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_first_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_first_entry.inc
new file mode 100644
index 0000000000..3ca0386b69
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_first_entry.inc
@@ -0,0 +1,77 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 signature based revocation list
+ * Group : grpX
+ * Revoked signature : Member0/sig_sha256_bsn0_msg0 first entry
+ */
+//unsigned char sigrl_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x81, 0xa5, 0xa5, 0x8f, 0xe6, 0x4e, 0x18, 0x04,
+ 0x05, 0x46, 0xa1, 0x30, 0x84, 0xde, 0x4f, 0x09,
+ 0x36, 0x5f, 0x59, 0xbe, 0xc0, 0x4f, 0x4f, 0xbc,
+ 0xde, 0xd1, 0xd1, 0x11, 0x11, 0x07, 0x7a, 0x2d,
+ 0x89, 0x9c, 0x1b, 0x21, 0x34, 0xeb, 0x84, 0xc4,
+ 0x2c, 0x82, 0x63, 0xce, 0x98, 0x30, 0x22, 0xee,
+ 0x2c, 0xec, 0x90, 0x95, 0x66, 0x94, 0x74, 0xf5,
+ 0xef, 0xff, 0x74, 0xfa, 0xad, 0x61, 0x6f, 0x59,
+ 0x19, 0x6a, 0x11, 0x7c, 0xfb, 0x88, 0xd3, 0x08,
+ 0x17, 0x98, 0x9d, 0xd6, 0x5a, 0x87, 0xd3, 0xe8,
+ 0x69, 0x3f, 0x6c, 0x8b, 0xd8, 0xd4, 0x6c, 0x11,
+ 0x17, 0x2b, 0xae, 0xf2, 0x8d, 0xa4, 0x35, 0x55,
+ 0x32, 0x9e, 0x85, 0x6a, 0xc2, 0x9e, 0xee, 0x5b,
+ 0xcd, 0x23, 0x7a, 0x11, 0xa7, 0xdd, 0xde, 0xb2,
+ 0xd1, 0xc6, 0xb8, 0x02, 0x93, 0xdb, 0x1e, 0x69,
+ 0x99, 0x6d, 0xc6, 0x2f, 0x98, 0xab, 0x26, 0x89,
+ 0x02, 0x83, 0xfa, 0xa6, 0x65, 0xe9, 0xc6, 0x9f,
+ 0xf7, 0xc9, 0x7b, 0xda, 0x73, 0x1c, 0x60, 0x11,
+ 0x32, 0x85, 0x17, 0x49, 0xca, 0x0b, 0x96, 0x0c,
+ 0x47, 0x0d, 0xef, 0x94, 0x9c, 0x15, 0x05, 0xbe,
+ 0x4b, 0xed, 0xd6, 0xee, 0x7b, 0xbb, 0x14, 0x23,
+ 0x54, 0x31, 0x04, 0xf0, 0x81, 0x04, 0x44, 0xd2,
+ 0x02, 0x33, 0x60, 0xba, 0x5f, 0x4f, 0xae, 0x1f,
+ 0x2d, 0xce, 0xbb, 0xff, 0xe8, 0x55, 0xc7, 0xa8,
+ 0xa6, 0x50, 0xbe, 0xa7, 0xfb, 0x41, 0x9d, 0xf8,
+ 0x41, 0x9c, 0xdd, 0x92, 0x47, 0x9f, 0x6f, 0xf3,
+ 0x56, 0x25, 0x0e, 0xbc, 0xa0, 0x89, 0xf2, 0x7f,
+ 0x12, 0x45, 0x5b, 0xb4, 0xd6, 0xa5, 0xb5, 0x71,
+ 0x31, 0x70, 0xae, 0xaf, 0x65, 0x55, 0x0e, 0xa9,
+ 0x1a, 0x5d, 0xc0, 0x1f, 0x20, 0x71, 0x07, 0xce,
+ 0x3e, 0x5e, 0xd3, 0xee, 0x5b, 0x4c, 0x67, 0x21,
+ 0x64, 0x0c, 0x5c, 0x1c, 0xd3, 0x2d, 0x24, 0xc4,
+ 0xf8, 0xad, 0x31, 0x02, 0xc5, 0xb0, 0x45, 0xe8,
+ 0x60, 0xd2, 0x50, 0xf4, 0xd1, 0xd6, 0x2b, 0x85,
+ 0x53, 0xac, 0x73, 0x96, 0x98, 0xf9, 0x1b, 0x5e,
+ 0xb8, 0x0f, 0xa1, 0xd3, 0xba, 0x6e, 0x43, 0x92,
+ 0x31, 0x69, 0x82, 0x14, 0x4a, 0xff, 0x36, 0x44,
+ 0x58, 0xf6, 0x41, 0xe3, 0x46, 0x85, 0x83, 0x05,
+ 0x96, 0x87, 0x7c, 0x0c, 0x0b, 0x70, 0x24, 0x8e,
+ 0x42, 0xb0, 0xd5, 0x9e, 0x7f, 0xcb, 0x26, 0xe8
+//};
+//unsigned int sigrl_dat_len = 408;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_last_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_last_entry.inc
new file mode 100644
index 0000000000..f92cde6539
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_last_entry.inc
@@ -0,0 +1,77 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 signature based revocation list
+ * Group : grpX
+ * Revoked signature : Member0/sig_sha256_bsn0_msg0 last entry
+ */
+//unsigned char sigrl_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xa6, 0xad, 0xdd, 0xbe, 0x45, 0xcc, 0x88, 0xcc,
+ 0x18, 0x30, 0x68, 0x49, 0x77, 0xfe, 0xc0, 0x4f,
+ 0xf9, 0x27, 0xa9, 0x49, 0x66, 0x03, 0x1a, 0x3c,
+ 0x3c, 0x4f, 0xac, 0xb6, 0x94, 0x2e, 0xd7, 0xb0,
+ 0x01, 0xa3, 0x8c, 0x5e, 0x73, 0x1d, 0x2f, 0x20,
+ 0x86, 0xb7, 0x10, 0xbd, 0x8e, 0x63, 0x5b, 0x41,
+ 0x21, 0x23, 0x8d, 0xac, 0x87, 0xc0, 0x7e, 0x78,
+ 0xb2, 0x11, 0x33, 0x52, 0x50, 0xa7, 0x6f, 0x7a,
+ 0x09, 0x95, 0x63, 0x1b, 0x04, 0xce, 0x6b, 0x93,
+ 0x47, 0xa2, 0xb0, 0x1f, 0x2c, 0x89, 0x1c, 0xd7,
+ 0xaa, 0xd6, 0x88, 0xbd, 0xd5, 0x45, 0x6f, 0x06,
+ 0x2b, 0xcc, 0x3e, 0x02, 0x4f, 0xeb, 0xef, 0x9d,
+ 0xb2, 0xf9, 0x71, 0xea, 0xca, 0x8c, 0x9c, 0x00,
+ 0xcd, 0x7e, 0x1c, 0x15, 0x7d, 0x69, 0xe8, 0x52,
+ 0x03, 0x81, 0xc4, 0x31, 0x2e, 0x8f, 0x0d, 0x31,
+ 0xef, 0x18, 0x03, 0x37, 0x0f, 0xa3, 0x19, 0x7b,
+ 0x19, 0x6a, 0x11, 0x7c, 0xfb, 0x88, 0xd3, 0x08,
+ 0x17, 0x98, 0x9d, 0xd6, 0x5a, 0x87, 0xd3, 0xe8,
+ 0x69, 0x3f, 0x6c, 0x8b, 0xd8, 0xd4, 0x6c, 0x11,
+ 0x17, 0x2b, 0xae, 0xf2, 0x8d, 0xa4, 0x35, 0x55,
+ 0x32, 0x9e, 0x85, 0x6a, 0xc2, 0x9e, 0xee, 0x5b,
+ 0xcd, 0x23, 0x7a, 0x11, 0xa7, 0xdd, 0xde, 0xb2,
+ 0xd1, 0xc6, 0xb8, 0x02, 0x93, 0xdb, 0x1e, 0x69,
+ 0x99, 0x6d, 0xc6, 0x2f, 0x98, 0xab, 0x26, 0x89,
+ 0x02, 0x83, 0xfa, 0xa6, 0x65, 0xe9, 0xc6, 0x9f,
+ 0xf7, 0xc9, 0x7b, 0xda, 0x73, 0x1c, 0x60, 0x11,
+ 0x32, 0x85, 0x17, 0x49, 0xca, 0x0b, 0x96, 0x0c,
+ 0x47, 0x0d, 0xef, 0x94, 0x9c, 0x15, 0x05, 0xbe,
+ 0x4b, 0xed, 0xd6, 0xee, 0x7b, 0xbb, 0x14, 0x23,
+ 0x54, 0x31, 0x04, 0xf0, 0x81, 0x04, 0x44, 0xd2,
+ 0x02, 0x33, 0x60, 0xba, 0x5f, 0x4f, 0xae, 0x1f,
+ 0x2d, 0xce, 0xbb, 0xff, 0xe8, 0x55, 0xc7, 0xa8,
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x81, 0xa5, 0xa5, 0x8f, 0xe6, 0x4e, 0x18, 0x04,
+ 0x05, 0x46, 0xa1, 0x30, 0x84, 0xde, 0x4f, 0x09,
+ 0x36, 0x5f, 0x59, 0xbe, 0xc0, 0x4f, 0x4f, 0xbc,
+ 0xde, 0xd1, 0xd1, 0x11, 0x11, 0x07, 0x7a, 0x2d,
+ 0x89, 0x9c, 0x1b, 0x21, 0x34, 0xeb, 0x84, 0xc4,
+ 0x2c, 0x82, 0x63, 0xce, 0x98, 0x30, 0x22, 0xee,
+ 0x2c, 0xec, 0x90, 0x95, 0x66, 0x94, 0x74, 0xf5,
+ 0xef, 0xff, 0x74, 0xfa, 0xad, 0x61, 0x6f, 0x59
+//};
+//unsigned int sigrl_dat_len = 408;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_middle_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_middle_entry.inc
new file mode 100644
index 0000000000..ecd9138f0e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_member0_sig_sha256_bsn0_msg0_revoked_middle_entry.inc
@@ -0,0 +1,77 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 signature based revocation list
+ * Group : grpX
+ * Revoked signature : Member0/sig_sha256_bsn0_msg0 middle entry
+ */
+//unsigned char sigrl_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xa6, 0xad, 0xdd, 0xbe, 0x45, 0xcc, 0x88, 0xcc,
+ 0x18, 0x30, 0x68, 0x49, 0x77, 0xfe, 0xc0, 0x4f,
+ 0xf9, 0x27, 0xa9, 0x49, 0x66, 0x03, 0x1a, 0x3c,
+ 0x3c, 0x4f, 0xac, 0xb6, 0x94, 0x2e, 0xd7, 0xb0,
+ 0x01, 0xa3, 0x8c, 0x5e, 0x73, 0x1d, 0x2f, 0x20,
+ 0x86, 0xb7, 0x10, 0xbd, 0x8e, 0x63, 0x5b, 0x41,
+ 0x21, 0x23, 0x8d, 0xac, 0x87, 0xc0, 0x7e, 0x78,
+ 0xb2, 0x11, 0x33, 0x52, 0x50, 0xa7, 0x6f, 0x7a,
+ 0x09, 0x95, 0x63, 0x1b, 0x04, 0xce, 0x6b, 0x93,
+ 0x47, 0xa2, 0xb0, 0x1f, 0x2c, 0x89, 0x1c, 0xd7,
+ 0xaa, 0xd6, 0x88, 0xbd, 0xd5, 0x45, 0x6f, 0x06,
+ 0x2b, 0xcc, 0x3e, 0x02, 0x4f, 0xeb, 0xef, 0x9d,
+ 0xb2, 0xf9, 0x71, 0xea, 0xca, 0x8c, 0x9c, 0x00,
+ 0xcd, 0x7e, 0x1c, 0x15, 0x7d, 0x69, 0xe8, 0x52,
+ 0x03, 0x81, 0xc4, 0x31, 0x2e, 0x8f, 0x0d, 0x31,
+ 0xef, 0x18, 0x03, 0x37, 0x0f, 0xa3, 0x19, 0x7b,
+ 0x19, 0x6a, 0x11, 0x7c, 0xfb, 0x88, 0xd3, 0x08,
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x81, 0xa5, 0xa5, 0x8f, 0xe6, 0x4e, 0x18, 0x04,
+ 0x05, 0x46, 0xa1, 0x30, 0x84, 0xde, 0x4f, 0x09,
+ 0x36, 0x5f, 0x59, 0xbe, 0xc0, 0x4f, 0x4f, 0xbc,
+ 0xde, 0xd1, 0xd1, 0x11, 0x11, 0x07, 0x7a, 0x2d,
+ 0x89, 0x9c, 0x1b, 0x21, 0x34, 0xeb, 0x84, 0xc4,
+ 0x2c, 0x82, 0x63, 0xce, 0x98, 0x30, 0x22, 0xee,
+ 0x2c, 0xec, 0x90, 0x95, 0x66, 0x94, 0x74, 0xf5,
+ 0xef, 0xff, 0x74, 0xfa, 0xad, 0x61, 0x6f, 0x59,
+ 0x41, 0x9c, 0xdd, 0x92, 0x47, 0x9f, 0x6f, 0xf3,
+ 0x56, 0x25, 0x0e, 0xbc, 0xa0, 0x89, 0xf2, 0x7f,
+ 0x12, 0x45, 0x5b, 0xb4, 0xd6, 0xa5, 0xb5, 0x71,
+ 0x31, 0x70, 0xae, 0xaf, 0x65, 0x55, 0x0e, 0xa9,
+ 0x1a, 0x5d, 0xc0, 0x1f, 0x20, 0x71, 0x07, 0xce,
+ 0x3e, 0x5e, 0xd3, 0xee, 0x5b, 0x4c, 0x67, 0x21,
+ 0x64, 0x0c, 0x5c, 0x1c, 0xd3, 0x2d, 0x24, 0xc4,
+ 0xf8, 0xad, 0x31, 0x02, 0xc5, 0xb0, 0x45, 0xe8,
+ 0x60, 0xd2, 0x50, 0xf4, 0xd1, 0xd6, 0x2b, 0x85,
+ 0x53, 0xac, 0x73, 0x96, 0x98, 0xf9, 0x1b, 0x5e,
+ 0xb8, 0x0f, 0xa1, 0xd3, 0xba, 0x6e, 0x43, 0x92,
+ 0x31, 0x69, 0x82, 0x14, 0x4a, 0xff, 0x36, 0x44,
+ 0x58, 0xf6, 0x41, 0xe3, 0x46, 0x85, 0x83, 0x05,
+ 0x96, 0x87, 0x7c, 0x0c, 0x0b, 0x70, 0x24, 0x8e,
+ 0x42, 0xb0, 0xd5, 0x9e, 0x7f, 0xcb, 0x26, 0xe8
+//};
+//unsigned int sigrl_dat_len = 408;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_single_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_single_entry.inc
new file mode 100644
index 0000000000..95a6f0dc3f
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_single_entry.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 signature based revocation list
+ * Group : grpX
+ * Revoked signature : Member0/sig_sha256_bsn0_msg0
+ */
+//unsigned char sigrl_empty_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x81, 0xa5, 0xa5, 0x8f, 0xe6, 0x4e, 0x18, 0x04,
+ 0x05, 0x46, 0xa1, 0x30, 0x84, 0xde, 0x4f, 0x09,
+ 0x36, 0x5f, 0x59, 0xbe, 0xc0, 0x4f, 0x4f, 0xbc,
+ 0xde, 0xd1, 0xd1, 0x11, 0x11, 0x07, 0x7a, 0x2d,
+ 0x89, 0x9c, 0x1b, 0x21, 0x34, 0xeb, 0x84, 0xc4,
+ 0x2c, 0x82, 0x63, 0xce, 0x98, 0x30, 0x22, 0xee,
+ 0x2c, 0xec, 0x90, 0x95, 0x66, 0x94, 0x74, 0xf5,
+ 0xef, 0xff, 0x74, 0xfa, 0xad, 0x61, 0x6f, 0x59
+//};
+//unsigned int sigrl_empty_dat_len = 152;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_ver_2.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_ver_2.inc
new file mode 100644
index 0000000000..d72268454d
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/sigrl_ver_2.inc
@@ -0,0 +1,76 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 signature based revocation list
+ * Group : grpX
+ */
+//unsigned char sigrl_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
+ 0xa6, 0xad, 0xdd, 0xbe, 0x45, 0xcc, 0x88, 0xcc,
+ 0x18, 0x30, 0x68, 0x49, 0x77, 0xfe, 0xc0, 0x4f,
+ 0xf9, 0x27, 0xa9, 0x49, 0x66, 0x03, 0x1a, 0x3c,
+ 0x3c, 0x4f, 0xac, 0xb6, 0x94, 0x2e, 0xd7, 0xb0,
+ 0x01, 0xa3, 0x8c, 0x5e, 0x73, 0x1d, 0x2f, 0x20,
+ 0x86, 0xb7, 0x10, 0xbd, 0x8e, 0x63, 0x5b, 0x41,
+ 0x21, 0x23, 0x8d, 0xac, 0x87, 0xc0, 0x7e, 0x78,
+ 0xb2, 0x11, 0x33, 0x52, 0x50, 0xa7, 0x6f, 0x7a,
+ 0x09, 0x95, 0x63, 0x1b, 0x04, 0xce, 0x6b, 0x93,
+ 0x47, 0xa2, 0xb0, 0x1f, 0x2c, 0x89, 0x1c, 0xd7,
+ 0xaa, 0xd6, 0x88, 0xbd, 0xd5, 0x45, 0x6f, 0x06,
+ 0x2b, 0xcc, 0x3e, 0x02, 0x4f, 0xeb, 0xef, 0x9d,
+ 0xb2, 0xf9, 0x71, 0xea, 0xca, 0x8c, 0x9c, 0x00,
+ 0xcd, 0x7e, 0x1c, 0x15, 0x7d, 0x69, 0xe8, 0x52,
+ 0x03, 0x81, 0xc4, 0x31, 0x2e, 0x8f, 0x0d, 0x31,
+ 0xef, 0x18, 0x03, 0x37, 0x0f, 0xa3, 0x19, 0x7b,
+ 0x19, 0x6a, 0x11, 0x7c, 0xfb, 0x88, 0xd3, 0x08,
+ 0x17, 0x98, 0x9d, 0xd6, 0x5a, 0x87, 0xd3, 0xe8,
+ 0x69, 0x3f, 0x6c, 0x8b, 0xd8, 0xd4, 0x6c, 0x11,
+ 0x17, 0x2b, 0xae, 0xf2, 0x8d, 0xa4, 0x35, 0x55,
+ 0x32, 0x9e, 0x85, 0x6a, 0xc2, 0x9e, 0xee, 0x5b,
+ 0xcd, 0x23, 0x7a, 0x11, 0xa7, 0xdd, 0xde, 0xb2,
+ 0xd1, 0xc6, 0xb8, 0x02, 0x93, 0xdb, 0x1e, 0x69,
+ 0x99, 0x6d, 0xc6, 0x2f, 0x98, 0xab, 0x26, 0x89,
+ 0x02, 0x83, 0xfa, 0xa6, 0x65, 0xe9, 0xc6, 0x9f,
+ 0xf7, 0xc9, 0x7b, 0xda, 0x73, 0x1c, 0x60, 0x11,
+ 0x32, 0x85, 0x17, 0x49, 0xca, 0x0b, 0x96, 0x0c,
+ 0x47, 0x0d, 0xef, 0x94, 0x9c, 0x15, 0x05, 0xbe,
+ 0x4b, 0xed, 0xd6, 0xee, 0x7b, 0xbb, 0x14, 0x23,
+ 0x54, 0x31, 0x04, 0xf0, 0x81, 0x04, 0x44, 0xd2,
+ 0x02, 0x33, 0x60, 0xba, 0x5f, 0x4f, 0xae, 0x1f,
+ 0x2d, 0xce, 0xbb, 0xff, 0xe8, 0x55, 0xc7, 0xa8,
+ 0xa6, 0x50, 0xbe, 0xa7, 0xfb, 0x41, 0x9d, 0xf8,
+ 0x41, 0x9c, 0xdd, 0x92, 0x47, 0x9f, 0x6f, 0xf3,
+ 0x56, 0x25, 0x0e, 0xbc, 0xa0, 0x89, 0xf2, 0x7f,
+ 0x12, 0x45, 0x5b, 0xb4, 0xd6, 0xa5, 0xb5, 0x71,
+ 0x31, 0x70, 0xae, 0xaf, 0x65, 0x55, 0x0e, 0xa9,
+ 0x1a, 0x5d, 0xc0, 0x1f, 0x20, 0x71, 0x07, 0xce,
+ 0x3e, 0x5e, 0xd3, 0xee, 0x5b, 0x4c, 0x67, 0x21,
+ 0x64, 0x0c, 0x5c, 0x1c, 0xd3, 0x2d, 0x24, 0xc4,
+ 0xf8, 0xad, 0x31, 0x02, 0xc5, 0xb0, 0x45, 0xe8,
+ 0x60, 0xd2, 0x50, 0xf4, 0xd1, 0xd6, 0x2b, 0x85,
+ 0x53, 0xac, 0x73, 0x96, 0x98, 0xf9, 0x1b, 0x5e,
+ 0xb8, 0x0f, 0xa1, 0xd3, 0xba, 0x6e, 0x43, 0x92,
+ 0x31, 0x69, 0x82, 0x14, 0x4a, 0xff, 0x36, 0x44,
+ 0x58, 0xf6, 0x41, 0xe3, 0x46, 0x85, 0x83, 0x05,
+ 0x96, 0x87, 0x7c, 0x0c, 0x0b, 0x70, 0x24, 0x8e,
+ 0x42, 0xb0, 0xd5, 0x9e, 0x7f, 0xcb, 0x26, 0xe8
+//};
+//unsigned int sigrl_dat_len = 408;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey000.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey000.inc
new file mode 100644
index 0000000000..4dc89ff16a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey000.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : verrevokedmember000 (revoked in grpX bsn0 verrl)
+ */
+
+//unsigned char mprivkey000_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x91, 0xd6, 0xcd, 0x65, 0x09, 0xbc, 0x30, 0x13,
+ 0x43, 0x50, 0x09, 0x25, 0x1c, 0x05, 0x66, 0x77,
+ 0xb0, 0x69, 0x38, 0x5b, 0x61, 0x49, 0x25, 0xec,
+ 0xf3, 0xa0, 0x00, 0x4b, 0xcb, 0xc9, 0xa3, 0x58,
+ 0xee, 0x72, 0xb6, 0x75, 0xf6, 0x79, 0xb8, 0xf1,
+ 0x8e, 0x1f, 0xe8, 0x8b, 0xf7, 0x1b, 0x84, 0xf9,
+ 0xd0, 0x27, 0x28, 0x8b, 0xf6, 0x2a, 0xe2, 0xf0,
+ 0xd9, 0xb7, 0xf7, 0xdf, 0x8d, 0x65, 0x75, 0xee,
+ 0xc8, 0xa3, 0xf2, 0xcd, 0xc3, 0x26, 0x5a, 0x13,
+ 0xf8, 0xa5, 0x39, 0x57, 0x44, 0x57, 0xb7, 0x96,
+ 0x2e, 0x5c, 0x3a, 0x7a, 0xe6, 0x38, 0x5a, 0x99,
+ 0xec, 0xe3, 0x4b, 0x6c, 0x77, 0x7a, 0x14, 0x8b,
+ 0xb2, 0x17, 0x61, 0x7d, 0x51, 0x64, 0xf6, 0xa4,
+ 0xbc, 0x97, 0xcd, 0x67, 0xde, 0x98, 0xce, 0xee,
+ 0x8d, 0x5e, 0x78, 0x84, 0x77, 0x9b, 0x99, 0x84,
+ 0x01, 0x9f, 0x66, 0x7c, 0xd4, 0x67, 0x81, 0x48
+//};
+//unsigned int mprivkey000_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey001.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey001.inc
new file mode 100644
index 0000000000..c42eaadb88
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey001.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : verrevokedmember001 (revoked in grpX bsn0 verrl)
+ */
+
+//unsigned char mprivkey001_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x2e, 0xcb, 0xb7, 0x36, 0x9b, 0x2b, 0x8d, 0xd1,
+ 0x03, 0x25, 0xd8, 0xe7, 0x57, 0x21, 0xac, 0x47,
+ 0x60, 0xe3, 0x1d, 0xb5, 0x78, 0xfa, 0x6d, 0x8c,
+ 0x00, 0x7d, 0x95, 0x91, 0x64, 0x31, 0xb6, 0x7d,
+ 0xdb, 0x18, 0x3a, 0x11, 0x99, 0x22, 0x93, 0x93,
+ 0x57, 0x8d, 0x9b, 0x23, 0x1d, 0x65, 0xa2, 0x78,
+ 0x18, 0xa0, 0xf4, 0x99, 0x1b, 0x67, 0xe2, 0xc7,
+ 0x4a, 0xb1, 0xfc, 0xa6, 0xdd, 0xae, 0x05, 0x20,
+ 0x3b, 0x26, 0xd9, 0xc6, 0x41, 0x2f, 0x38, 0x64,
+ 0xb4, 0xd7, 0x7b, 0xf3, 0x86, 0x01, 0x33, 0xc1,
+ 0x5f, 0x22, 0x30, 0xeb, 0x20, 0x94, 0x76, 0xad,
+ 0xb1, 0x15, 0xc3, 0xe0, 0x1c, 0xfe, 0x8d, 0x61,
+ 0x3f, 0xf7, 0xef, 0xfc, 0xcb, 0xfb, 0xeb, 0xa6,
+ 0xf9, 0x31, 0x3b, 0x9f, 0xd4, 0xa7, 0x21, 0x61,
+ 0xaa, 0x98, 0xf4, 0x8d, 0x79, 0x3c, 0xf0, 0x33,
+ 0x04, 0x0c, 0x79, 0x6d, 0x88, 0x02, 0xba, 0x1c
+//};
+//unsigned int mprivkey001_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey002.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey002.inc
new file mode 100644
index 0000000000..ef60d525de
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/mprivkey002.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : verrevokedmember002 (revoked in grpX bsn0 verrl)
+ */
+
+//unsigned char mprivkey002_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xab, 0x31, 0xae, 0x14, 0x0c, 0xcf, 0x08, 0x26,
+ 0xfb, 0x6e, 0x67, 0x2c, 0xca, 0x71, 0x49, 0xba,
+ 0x84, 0x53, 0xc7, 0xe6, 0x2b, 0xee, 0xc7, 0xff,
+ 0x3a, 0x1e, 0x7e, 0x63, 0x1d, 0xf7, 0x2e, 0xee,
+ 0xc3, 0xa7, 0xfc, 0x69, 0x69, 0x44, 0x09, 0x5d,
+ 0xf9, 0xf0, 0xf4, 0x27, 0xca, 0x26, 0xe2, 0x3a,
+ 0x85, 0x8c, 0x8f, 0x01, 0x7b, 0xcf, 0xef, 0xac,
+ 0x1c, 0x07, 0x89, 0x0b, 0x41, 0x5f, 0x15, 0x42,
+ 0x9d, 0x62, 0xfc, 0x19, 0x8e, 0xe1, 0xde, 0x1f,
+ 0x37, 0x47, 0xe3, 0xc0, 0x72, 0xff, 0xdb, 0x0c,
+ 0x18, 0x3f, 0x21, 0x6d, 0x8e, 0xb0, 0xfb, 0xb6,
+ 0x6a, 0x15, 0x19, 0xc7, 0x47, 0x88, 0x88, 0x4a,
+ 0x90, 0xdb, 0xd9, 0x11, 0xf1, 0xef, 0x1a, 0x68,
+ 0x8d, 0x1c, 0x07, 0xfe, 0x04, 0xbd, 0xf2, 0x6c,
+ 0x8b, 0x1b, 0xd0, 0x7f, 0x96, 0x9a, 0x90, 0xed,
+ 0x34, 0x0c, 0x13, 0x6d, 0x7c, 0x0c, 0x32, 0x58
+//};
+//unsigned int mprivkey002_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha256bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha256bsn0msg0.inc
new file mode 100644
index 0000000000..338a3b8142
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha256bsn0msg0.inc
@@ -0,0 +1,136 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey000
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+
+//unsigned char sig_revoked0msg0bsn0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x8b, 0xc9, 0x6e, 0xc0, 0x86, 0x04, 0x6f, 0x6c,
+ 0x89, 0xc2, 0x27, 0xfd, 0x61, 0x59, 0xb5, 0xd2,
+ 0x73, 0x96, 0xfa, 0xd6, 0xf8, 0xfa, 0x2c, 0x39,
+ 0xfe, 0xee, 0xef, 0x3e, 0x73, 0xd2, 0x38, 0x3f,
+ 0x3c, 0x04, 0x07, 0x78, 0xfd, 0x32, 0x9b, 0xc3,
+ 0x74, 0x90, 0xf2, 0xf5, 0x50, 0xe4, 0x69, 0x5d,
+ 0x30, 0x0c, 0x6a, 0x8a, 0x9c, 0xcf, 0xff, 0x78,
+ 0x28, 0x52, 0x6d, 0x20, 0x29, 0xef, 0x2d, 0x7a,
+ 0x70, 0x75, 0x91, 0x2d, 0xbd, 0x56, 0x9f, 0x18,
+ 0x65, 0x25, 0x5f, 0x3a, 0x15, 0x36, 0x10, 0x91,
+ 0xf9, 0x02, 0x37, 0x30, 0xb1, 0x75, 0x8a, 0x9b,
+ 0xb0, 0x99, 0xc1, 0x28, 0xb7, 0x7b, 0x15, 0x4d,
+ 0xfc, 0x66, 0x4d, 0xe3, 0x3c, 0x37, 0x57, 0xf2,
+ 0x64, 0xbb, 0x24, 0xe4, 0xfc, 0xbd, 0x56, 0x7a,
+ 0x3f, 0x3a, 0xa5, 0xcb, 0x66, 0xd3, 0xd2, 0x9f,
+ 0xe2, 0x51, 0x4b, 0xa8, 0x5d, 0x8f, 0x79, 0x38,
+ 0xa1, 0x25, 0xe4, 0x3c, 0xc0, 0xa5, 0x4e, 0x83,
+ 0xd5, 0x0a, 0x9f, 0xfa, 0x6f, 0x9d, 0xc2, 0x49,
+ 0x35, 0x71, 0x54, 0x2e, 0x62, 0x7b, 0x06, 0xb3,
+ 0x60, 0x57, 0x79, 0x77, 0xf4, 0x0e, 0x91, 0x6f,
+ 0xec, 0x58, 0xdc, 0xb2, 0x80, 0xe3, 0xd3, 0x5b,
+ 0xa7, 0x68, 0x31, 0x18, 0x6f, 0x9e, 0x47, 0x5f,
+ 0x99, 0xc8, 0x85, 0xd2, 0x25, 0xbb, 0x68, 0xb4,
+ 0x8f, 0x4c, 0x21, 0x85, 0x77, 0x2f, 0x62, 0x92,
+ 0xd0, 0xe1, 0x70, 0x5a, 0x02, 0xbc, 0xed, 0x69,
+ 0x46, 0xc0, 0xca, 0x83, 0xcc, 0xe6, 0xb9, 0xff,
+ 0x17, 0x90, 0xb7, 0xc3, 0xbb, 0x86, 0xa5, 0x41,
+ 0x55, 0x25, 0xcb, 0x3d, 0x18, 0x6e, 0x60, 0xaf,
+ 0x52, 0x70, 0xfc, 0xe5, 0x55, 0xfc, 0x7d, 0x8e,
+ 0xf2, 0x5b, 0xa1, 0x1c, 0xc2, 0x34, 0x31, 0x77,
+ 0xbc, 0x9d, 0x23, 0xc5, 0xbb, 0x01, 0xf0, 0x2b,
+ 0xa7, 0xaf, 0x52, 0xaa, 0x9a, 0xd9, 0x74, 0x58,
+ 0x96, 0x87, 0x54, 0x6c, 0xb6, 0x93, 0x0c, 0x9a,
+ 0x8f, 0x0f, 0xb6, 0x0e, 0x89, 0xb6, 0xb9, 0x0b,
+ 0xd3, 0x5c, 0xe4, 0x83, 0xad, 0x1c, 0x79, 0x7c,
+ 0x12, 0x36, 0x0d, 0xe2, 0xa7, 0xab, 0xd7, 0xd0,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xc5, 0x3b, 0x02, 0x5f, 0xcd, 0x67, 0x05, 0x99,
+ 0x74, 0x1f, 0x65, 0xa1, 0xdb, 0xee, 0xa2, 0x18,
+ 0x5d, 0xee, 0x82, 0xa9, 0x98, 0xab, 0xa6, 0x92,
+ 0x84, 0xf1, 0x08, 0x98, 0x36, 0x56, 0xe0, 0x63,
+ 0xa0, 0xc0, 0xd2, 0xff, 0xc3, 0x34, 0xc1, 0xc2,
+ 0x87, 0x00, 0x0d, 0x8b, 0x78, 0xc9, 0x68, 0x49,
+ 0xdf, 0xd8, 0xfa, 0xdc, 0x00, 0x80, 0xf7, 0xf4,
+ 0xa7, 0xf8, 0x1c, 0x8c, 0x96, 0xf3, 0x00, 0x3b,
+ 0xcf, 0x06, 0x8f, 0x66, 0x18, 0x68, 0x9b, 0xe6,
+ 0xca, 0x20, 0xe5, 0x5a, 0x4c, 0xf4, 0x87, 0x43,
+ 0xc8, 0xf4, 0x5c, 0x28, 0x8d, 0x35, 0x85, 0x1c,
+ 0xa5, 0x27, 0xd7, 0xcc, 0x8b, 0x7f, 0x96, 0x70,
+ 0xdd, 0xf2, 0x50, 0x60, 0xde, 0x45, 0x83, 0x8c,
+ 0x9b, 0x64, 0xe2, 0xd2, 0x49, 0x46, 0x48, 0xb0,
+ 0x7a, 0x67, 0x32, 0x2b, 0xb6, 0xea, 0xa8, 0x40,
+ 0x8d, 0x08, 0x2f, 0xd7, 0xd7, 0x2a, 0x2b, 0x4a,
+ 0x45, 0x9e, 0x5c, 0x56, 0x8c, 0x50, 0xaa, 0x81,
+ 0x46, 0x18, 0xc8, 0x46, 0x8a, 0x11, 0xf8, 0x89,
+ 0x3e, 0x32, 0x20, 0xb8, 0xf5, 0x7f, 0xc8, 0x25,
+ 0xda, 0xe0, 0x51, 0x39, 0xe9, 0x57, 0x87, 0x26,
+ 0xe9, 0x79, 0x70, 0xce, 0x75, 0x99, 0xe5, 0xab,
+ 0x6e, 0x6f, 0x73, 0xe9, 0xc2, 0x99, 0xc8, 0xb7,
+ 0x30, 0xdc, 0xe3, 0xd8, 0x95, 0x92, 0x4e, 0xb8,
+ 0xac, 0xf3, 0xc1, 0x9c, 0x97, 0x6e, 0xfe, 0x48,
+ 0x5e, 0xff, 0xce, 0x7a, 0x1b, 0x95, 0xb8, 0x90,
+ 0xb9, 0xd5, 0x8d, 0x44, 0xdc, 0x92, 0xf5, 0xf7,
+ 0x91, 0xe5, 0x2f, 0x28, 0x31, 0x7d, 0x21, 0x91,
+ 0x2b, 0xf0, 0x1d, 0x27, 0xd6, 0x46, 0x7a, 0x6d,
+ 0xdc, 0x70, 0x2e, 0x85, 0x55, 0x58, 0x8a, 0xd4,
+ 0xdb, 0x09, 0xea, 0xf7, 0x6a, 0x2c, 0x35, 0xcb,
+ 0xc5, 0xd1, 0x53, 0x07, 0x12, 0xbd, 0x25, 0x5e,
+ 0x05, 0x61, 0x43, 0xb8, 0xb3, 0x87, 0xf1, 0xb8,
+ 0x88, 0x58, 0xaf, 0x47, 0x04, 0x7e, 0x52, 0x6c,
+ 0x6c, 0x04, 0x58, 0xfb, 0x00, 0x67, 0x8f, 0xa5,
+ 0xb2, 0x99, 0x09, 0xed, 0x86, 0xa4, 0x5d, 0xdf,
+ 0x4b, 0xea, 0x4d, 0xa0, 0xb9, 0x1a, 0x4d, 0x98,
+ 0x1f, 0x76, 0x19, 0x84, 0x9c, 0x2a, 0x8e, 0xdb,
+ 0x8b, 0xdb, 0x5c, 0x60, 0xa5, 0x8c, 0x09, 0xea,
+ 0x0d, 0xff, 0x3e, 0x3e, 0x18, 0xf5, 0xa8, 0xf5,
+ 0xa0, 0x82, 0x15, 0xa0, 0xf5, 0x36, 0xc3, 0xb6,
+ 0x72, 0xab, 0x81, 0x8f, 0xae, 0x9c, 0x67, 0x63,
+ 0x49, 0xfe, 0x01, 0x66, 0xd2, 0x53, 0x9c, 0x97,
+ 0x0e, 0x58, 0x1c, 0x6f, 0xb6, 0x49, 0x16, 0x7a,
+ 0x43, 0xfc, 0x61, 0x0d, 0x36, 0x31, 0x28, 0x65,
+ 0x32, 0x62, 0x28, 0x44, 0x50, 0xda, 0xb1, 0x1b,
+ 0x7a, 0xd6, 0x27, 0x69, 0xc0, 0xe9, 0xab, 0x78,
+ 0xda, 0x27, 0xd7, 0x9e, 0x7e, 0x35, 0xcf, 0x8b,
+ 0x09, 0xc7, 0x2f, 0x5f, 0x8d, 0xa4, 0x29, 0xdb,
+ 0x83, 0x62, 0x89, 0x36, 0x86, 0x53, 0xcc, 0xe9,
+ 0x6f, 0xb9, 0x4a, 0x31, 0x9e, 0xf8, 0xa5, 0x7b,
+ 0x2f, 0xb6, 0xff, 0x2a, 0x5f, 0xbe, 0xb1, 0x71,
+ 0x42, 0xc0, 0xf8, 0x36, 0x51, 0xdb, 0xe9, 0x1a,
+ 0xe0, 0xcd, 0xaa, 0xc1, 0x0c, 0x1d, 0x74, 0x4c,
+ 0x00, 0x98, 0x38, 0xbd, 0x70, 0x39, 0xc9, 0xd3,
+ 0xdf, 0x4c, 0xeb, 0xde, 0x19, 0x2f, 0xf8, 0x52,
+ 0x5b, 0x1a, 0x2a, 0x91, 0x50, 0xb8, 0xd3, 0xca,
+ 0x67, 0x2e, 0x4e, 0xaf, 0xa5, 0xce, 0x54, 0xa6,
+ 0x02, 0x34, 0xa5, 0x8b, 0x0b, 0xf8, 0x96, 0x46,
+ 0x04, 0xe2, 0x45, 0xaa, 0xb3, 0x24, 0x99, 0x60,
+ 0x24, 0x42, 0xde, 0x75, 0x91, 0xcf, 0x5b, 0xfb
+//};
+//unsigned int sig_revoked0msg0bsn0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha384bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha384bsn0msg0.inc
new file mode 100644
index 0000000000..51cbdfdae5
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha384bsn0msg0.inc
@@ -0,0 +1,60 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey000
+ * HashAlg : Sha384
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : empty sigrl
+ */
+//unsigned char sig000_sha384_dat[] = {
+ 0x57, 0xe7, 0x8f, 0xfb, 0xf9, 0xa3, 0xba, 0x5e, 0xac, 0xec, 0xb3, 0xa4,
+ 0xf4, 0x13, 0x95, 0xa1, 0x1c, 0x1d, 0xe1, 0xaf, 0xea, 0x16, 0xba, 0x6d,
+ 0xde, 0x4c, 0x43, 0xf0, 0x89, 0x59, 0x5e, 0xfa, 0x0f, 0x18, 0xdd, 0x22,
+ 0xf6, 0xd6, 0xfc, 0xe5, 0x0f, 0xb2, 0x81, 0xb5, 0xa9, 0xa6, 0xe8, 0xee,
+ 0x14, 0x04, 0xec, 0x1b, 0x4e, 0x65, 0x82, 0x7f, 0x96, 0x53, 0xc4, 0x3b,
+ 0x29, 0x17, 0x39, 0xc0, 0x9d, 0x3e, 0x8e, 0xd2, 0x45, 0xfd, 0x1b, 0xcd,
+ 0x33, 0x6c, 0xdb, 0x1a, 0xda, 0x34, 0x59, 0x2e, 0x38, 0x72, 0x75, 0x17,
+ 0x25, 0xee, 0xa8, 0x9b, 0xf9, 0xd0, 0x1b, 0x15, 0x82, 0x03, 0x8c, 0x72,
+ 0x5d, 0xb7, 0x3c, 0x7c, 0x7e, 0x17, 0x81, 0x55, 0x52, 0x7d, 0x87, 0x7c,
+ 0x90, 0xd8, 0x17, 0xee, 0x35, 0xdb, 0xe1, 0x67, 0x59, 0xa4, 0xd6, 0xb3,
+ 0x24, 0x54, 0xd2, 0x70, 0x0f, 0xc0, 0x37, 0x39, 0x54, 0xfd, 0xce, 0xff,
+ 0x03, 0x33, 0xe4, 0xe9, 0x3d, 0x5e, 0xef, 0x0c, 0x2b, 0x7b, 0x54, 0xf4,
+ 0x9e, 0x45, 0x45, 0xe3, 0x7b, 0x41, 0xa5, 0x91, 0x68, 0x8a, 0x56, 0xca,
+ 0xdb, 0xb0, 0xb4, 0x2c, 0x62, 0x14, 0x5e, 0x29, 0xf9, 0x54, 0x03, 0xaa,
+ 0xb0, 0xff, 0x60, 0x2a, 0xc1, 0x41, 0xe6, 0x1c, 0xbc, 0xbc, 0x7d, 0xc5,
+ 0x40, 0x67, 0xae, 0x72, 0x81, 0xcb, 0xc7, 0x91, 0xaa, 0x57, 0xb2, 0x78,
+ 0xaf, 0xc2, 0x44, 0x85, 0x56, 0x6d, 0xcc, 0x42, 0x72, 0xdc, 0x0f, 0x6e,
+ 0x85, 0x47, 0xb6, 0x09, 0xa8, 0x7e, 0x10, 0x78, 0xe7, 0x37, 0xfd, 0xbe,
+ 0x9a, 0x80, 0x3b, 0x51, 0x48, 0x58, 0xa4, 0x36, 0xbd, 0x2b, 0xe5, 0xbf,
+ 0x1e, 0x0b, 0x10, 0xf4, 0xc1, 0xf1, 0xf8, 0x4d, 0xb0, 0x99, 0xba, 0xdb,
+ 0xc5, 0x61, 0xd1, 0x0d, 0x8a, 0x37, 0x9d, 0x97, 0x5d, 0x50, 0x26, 0x32,
+ 0x5b, 0x3d, 0x43, 0x11, 0xd7, 0xf1, 0x79, 0xf3, 0xf5, 0x7d, 0xd5, 0xe6,
+ 0xab, 0x60, 0xe5, 0xed, 0x27, 0x8f, 0x9f, 0xd8, 0x7e, 0x79, 0x51, 0x0a,
+ 0x11, 0x56, 0x94, 0x06, 0x49, 0x83, 0x74, 0xbe, 0x08, 0x3e, 0xbe, 0xc7,
+ 0x0b, 0x3e, 0xfe, 0x1b, 0x04, 0x1b, 0xd5, 0x8f, 0xd3, 0xee, 0xcc, 0xcd,
+ 0x13, 0xf3, 0x51, 0xae, 0xcd, 0x61, 0x02, 0x1f, 0x00, 0x00, 0xf9, 0x7d,
+ 0x19, 0xac, 0xee, 0x09, 0x84, 0xf9, 0x9d, 0x67, 0x1b, 0x7b, 0xe6, 0x60,
+ 0x8c, 0xfc, 0xa1, 0x66, 0xc4, 0xbf, 0x01, 0x75, 0x1a, 0x12, 0xfc, 0x9f,
+ 0x92, 0xd9, 0x47, 0x8b, 0x7f, 0x6a, 0x03, 0x93, 0x16, 0x5b, 0x76, 0xf8,
+ 0x62, 0x26, 0x3e, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+//};
+//unsigned int sig000_sha384_dat_len = 360;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha512bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha512bsn0msg0.inc
new file mode 100644
index 0000000000..e10dc03ec2
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked0sha512bsn0msg0.inc
@@ -0,0 +1,60 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey000
+ * HashAlg : Sha512
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : empty sigrl
+ */
+//unsigned char sig000_sha512_dat[] = {
+ 0x72, 0xed, 0x4f, 0x01, 0xf2, 0xfe, 0xc9, 0xf4, 0x56, 0x4f, 0x11, 0x31,
+ 0x62, 0x07, 0x02, 0x0f, 0xed, 0xd0, 0x6b, 0xe8, 0xbf, 0xa9, 0x0b, 0x55,
+ 0xb8, 0xf7, 0xe9, 0x6e, 0xaa, 0x13, 0x2e, 0x6f, 0xa7, 0xd5, 0xec, 0x4b,
+ 0x3e, 0x23, 0x5f, 0x4f, 0x61, 0x44, 0x52, 0xc1, 0x75, 0x0b, 0x13, 0xad,
+ 0xa1, 0x53, 0x0d, 0x6a, 0x73, 0xed, 0x5e, 0x49, 0xa9, 0xed, 0x1d, 0x88,
+ 0xde, 0xa6, 0x93, 0x18, 0xe6, 0xec, 0xb1, 0xff, 0xca, 0xad, 0x04, 0x8a,
+ 0x1a, 0x04, 0xac, 0xf9, 0x6c, 0xe4, 0x7a, 0xa1, 0xfe, 0xe0, 0x7b, 0xd7,
+ 0xbb, 0x64, 0x25, 0xa7, 0x5b, 0xfa, 0x3c, 0xa4, 0xd6, 0x30, 0x9e, 0x25,
+ 0xa0, 0x85, 0xad, 0x9f, 0x81, 0x61, 0x87, 0x6f, 0x1b, 0x34, 0x01, 0x67,
+ 0x30, 0x31, 0xbc, 0x3c, 0x9f, 0x37, 0x62, 0x79, 0x51, 0x13, 0x57, 0x6d,
+ 0xa8, 0xd3, 0xca, 0x73, 0x8d, 0xe2, 0x76, 0x42, 0x68, 0xe0, 0x76, 0xb3,
+ 0xde, 0x5d, 0xeb, 0x23, 0x26, 0xdd, 0x41, 0xad, 0x4c, 0x67, 0x8c, 0x7d,
+ 0x35, 0x55, 0x2b, 0x5c, 0x1c, 0x68, 0xa6, 0x0e, 0x17, 0x1b, 0x9a, 0xa7,
+ 0x0a, 0x07, 0x21, 0xaf, 0x2b, 0x5a, 0x69, 0x06, 0x8e, 0x66, 0xe5, 0x18,
+ 0x85, 0x83, 0x5a, 0x20, 0x4b, 0x14, 0x0e, 0xfa, 0x62, 0x13, 0x1d, 0x7c,
+ 0x22, 0x6a, 0xd7, 0xff, 0x04, 0x19, 0x93, 0x06, 0x91, 0xc0, 0x83, 0x82,
+ 0xdc, 0x34, 0x2a, 0x66, 0x3a, 0x73, 0x49, 0x1f, 0xc8, 0x36, 0x1f, 0xa8,
+ 0x37, 0x6b, 0x93, 0xe2, 0x66, 0xb6, 0x91, 0xbe, 0xd8, 0xcc, 0xd3, 0x84,
+ 0xda, 0x09, 0x6b, 0xa9, 0xb3, 0xa5, 0x32, 0x8e, 0x92, 0x99, 0x61, 0xdc,
+ 0xa7, 0xbe, 0xbe, 0x59, 0x30, 0x44, 0x62, 0x96, 0x25, 0x2e, 0xcf, 0xcb,
+ 0x79, 0xf6, 0xb5, 0x9c, 0x38, 0xce, 0xac, 0x89, 0x76, 0x99, 0x7e, 0x50,
+ 0x7f, 0x46, 0xce, 0x61, 0xde, 0x4a, 0xd9, 0xa9, 0x72, 0x38, 0xa9, 0xe4,
+ 0x3b, 0x92, 0x83, 0x63, 0xe9, 0xf1, 0xea, 0x8c, 0x03, 0x1b, 0xba, 0xe4,
+ 0x63, 0xea, 0x52, 0x79, 0xad, 0x87, 0x8e, 0xad, 0x36, 0x7f, 0x35, 0x90,
+ 0x6b, 0xdb, 0x29, 0xf6, 0x1d, 0x2b, 0x55, 0x28, 0x15, 0x6e, 0xac, 0x72,
+ 0xb0, 0x60, 0x9c, 0x08, 0xc0, 0x76, 0xfe, 0x56, 0xa4, 0xc2, 0x4c, 0x58,
+ 0xcf, 0xd2, 0xb8, 0x79, 0xf2, 0x3c, 0x90, 0xfd, 0x79, 0x92, 0x17, 0x05,
+ 0x68, 0x5b, 0xce, 0x4d, 0xc3, 0x82, 0xca, 0xd9, 0x9b, 0x45, 0xc6, 0x3c,
+ 0xe5, 0xff, 0x17, 0x07, 0x47, 0x3c, 0x86, 0x3c, 0x38, 0x9a, 0x02, 0x18,
+ 0xdc, 0x87, 0xfc, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+//};
+//unsigned int sig000_sha512_dat_len = 360;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha256bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha256bsn0msg0.inc
new file mode 100644
index 0000000000..b27b723a9e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha256bsn0msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey001
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_revoked1msg0bsn0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x07, 0x46, 0xed, 0xb8, 0x6a, 0x4e, 0x7f, 0x4b,
+ 0x9d, 0xcc, 0x18, 0x91, 0x88, 0xf6, 0x76, 0x4d,
+ 0x74, 0x02, 0x36, 0x62, 0xe6, 0xd4, 0xb5, 0xf0,
+ 0x2d, 0x70, 0x91, 0x49, 0x65, 0xdf, 0x19, 0x02,
+ 0x30, 0x6c, 0x11, 0xaa, 0x74, 0x8c, 0x55, 0x2e,
+ 0x4b, 0xa3, 0x00, 0x00, 0xb0, 0x38, 0xf4, 0xcd,
+ 0x5d, 0xc9, 0x1d, 0xaa, 0x1e, 0x44, 0x98, 0xa4,
+ 0xe1, 0x3f, 0x2f, 0x4f, 0x6c, 0xc9, 0x15, 0xb0,
+ 0xb4, 0x9c, 0xb0, 0xe1, 0x0d, 0x9e, 0x27, 0x6c,
+ 0xc4, 0x1f, 0x77, 0x8c, 0x93, 0x98, 0x19, 0x8f,
+ 0xfa, 0xf5, 0xa2, 0x29, 0x09, 0x88, 0x51, 0xfc,
+ 0x76, 0xd8, 0xcd, 0xe6, 0xc7, 0x88, 0xeb, 0xba,
+ 0x19, 0x28, 0xa2, 0xd4, 0x25, 0x76, 0x13, 0x9d,
+ 0x0f, 0xee, 0x7c, 0x24, 0xbe, 0xc6, 0x67, 0x41,
+ 0xee, 0xce, 0x35, 0xf5, 0x6e, 0x83, 0xef, 0xb7,
+ 0x28, 0x28, 0xaa, 0x4f, 0x81, 0x3c, 0xc5, 0xb1,
+ 0x26, 0xc0, 0x76, 0x1b, 0x34, 0xab, 0x95, 0xfc,
+ 0x3a, 0x8f, 0x55, 0x93, 0x0a, 0x14, 0x2c, 0x3a,
+ 0x4c, 0xac, 0x6d, 0xd8, 0x3f, 0xa3, 0x0d, 0x57,
+ 0x6f, 0xe3, 0xd7, 0x46, 0xe4, 0x0a, 0x74, 0x27,
+ 0x27, 0x7c, 0x11, 0x25, 0xc9, 0x39, 0xe4, 0xee,
+ 0xf6, 0xfb, 0x08, 0xd1, 0xee, 0xa0, 0xbd, 0x67,
+ 0x0d, 0x16, 0x5b, 0xf6, 0x58, 0x22, 0x86, 0x4c,
+ 0xcd, 0x6f, 0x96, 0x8e, 0x5e, 0xb9, 0xa8, 0x23,
+ 0x2a, 0x8c, 0x35, 0x1a, 0x56, 0x81, 0x44, 0xfd,
+ 0xd6, 0xb5, 0x4a, 0x9c, 0xc5, 0xad, 0x95, 0x63,
+ 0xff, 0x20, 0x57, 0x56, 0xd8, 0x4c, 0x7e, 0x65,
+ 0x91, 0xd4, 0x81, 0xee, 0xa6, 0xdf, 0x43, 0x5e,
+ 0x82, 0x21, 0xcd, 0xda, 0x13, 0xc0, 0x9e, 0xef,
+ 0xa7, 0x42, 0xff, 0x30, 0x0a, 0x74, 0x2d, 0x18,
+ 0x88, 0xe8, 0x69, 0x9d, 0xbc, 0x51, 0x9e, 0x8e,
+ 0x64, 0x5c, 0x05, 0x7f, 0x4d, 0xac, 0x64, 0xd4,
+ 0x88, 0xc7, 0xa5, 0xac, 0xf4, 0x25, 0x40, 0x9e,
+ 0x46, 0x67, 0x4d, 0x2a, 0x1e, 0x58, 0xe6, 0x41,
+ 0xcc, 0xbb, 0x6a, 0x10, 0x98, 0x46, 0xd1, 0x33,
+ 0x8c, 0xe6, 0x97, 0xb4, 0x1e, 0x0f, 0x61, 0x24,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xe0, 0x9c, 0xd6, 0x62, 0x37, 0xb4, 0xf4, 0xf1,
+ 0x84, 0x29, 0xe0, 0x3f, 0x0f, 0x55, 0xbb, 0x4b,
+ 0xc7, 0xac, 0xac, 0x55, 0xd9, 0xc7, 0x80, 0xfb,
+ 0x8b, 0xd7, 0x25, 0x7a, 0x03, 0x0d, 0x5a, 0xc9,
+ 0xa7, 0x14, 0xb1, 0x3d, 0xd8, 0x23, 0x25, 0x92,
+ 0x30, 0x7a, 0xb8, 0x1e, 0xe9, 0x35, 0x7d, 0x0f,
+ 0x61, 0x77, 0x5d, 0xb8, 0x08, 0x97, 0xf0, 0xfe,
+ 0x93, 0xf1, 0xdc, 0xcb, 0x36, 0x2f, 0x3c, 0x40,
+ 0xde, 0xaf, 0xa5, 0xd4, 0x91, 0x76, 0x08, 0xdf,
+ 0x67, 0x0c, 0xce, 0xe3, 0xdc, 0x68, 0xba, 0x89,
+ 0x0e, 0xf0, 0x9d, 0xd5, 0xdf, 0x2d, 0x52, 0xfa,
+ 0x6a, 0x59, 0xd3, 0x68, 0x78, 0x01, 0x6a, 0x66,
+ 0xa5, 0x8a, 0x39, 0x2d, 0x7e, 0x66, 0xbf, 0x71,
+ 0x21, 0x31, 0xa3, 0x3a, 0xff, 0x4d, 0x1d, 0xd5,
+ 0x68, 0x21, 0x4a, 0x6a, 0x80, 0x77, 0xab, 0x56,
+ 0xcb, 0x11, 0x43, 0x7c, 0xf4, 0x5e, 0x84, 0x9a,
+ 0xc5, 0xea, 0x5c, 0x00, 0x2d, 0x94, 0xf4, 0xcb,
+ 0x05, 0xbe, 0x56, 0x8f, 0x95, 0x62, 0x02, 0xe1,
+ 0xa8, 0x82, 0xa5, 0x96, 0x3b, 0x3f, 0x36, 0xbf,
+ 0x41, 0x44, 0x6a, 0xe3, 0x0b, 0xeb, 0x90, 0x81,
+ 0x32, 0x1a, 0x8e, 0x1d, 0x1e, 0xf4, 0x9a, 0x6e,
+ 0xcf, 0xf6, 0x7d, 0x1e, 0x25, 0xf7, 0xa6, 0x67,
+ 0x10, 0xed, 0x3b, 0x95, 0xf5, 0x23, 0xd3, 0xb8,
+ 0x7e, 0x91, 0x16, 0x10, 0x78, 0x81, 0xbb, 0x7c,
+ 0x9f, 0x76, 0x17, 0x8a, 0x90, 0x1a, 0x6c, 0x9d,
+ 0x24, 0x45, 0x58, 0xf2, 0x81, 0x36, 0x53, 0x77,
+ 0xf4, 0xa6, 0x1f, 0xd2, 0xef, 0x58, 0x19, 0x15,
+ 0xe4, 0x99, 0x03, 0x4d, 0x1f, 0x96, 0xc0, 0x81,
+ 0x3c, 0xf2, 0x92, 0x15, 0xca, 0x3c, 0x4e, 0x0f,
+ 0x96, 0x01, 0xdf, 0xeb, 0x1f, 0x07, 0xec, 0x91,
+ 0x22, 0x8a, 0x66, 0x15, 0x44, 0x28, 0xf4, 0xeb,
+ 0x20, 0xb6, 0x1b, 0x8c, 0xbe, 0x06, 0x45, 0x31,
+ 0x44, 0x4a, 0x5f, 0x9a, 0x2c, 0xac, 0x19, 0x13,
+ 0x52, 0x10, 0xad, 0xb5, 0x69, 0x23, 0xd8, 0xdf,
+ 0x41, 0x24, 0x5e, 0x33, 0x8e, 0xc1, 0x6e, 0xd1,
+ 0x42, 0x18, 0x9d, 0x1c, 0x4e, 0x2b, 0x92, 0x06,
+ 0x4f, 0x90, 0x63, 0x24, 0x6b, 0xd6, 0x7f, 0x14,
+ 0x63, 0x66, 0xf1, 0x84, 0xef, 0x3d, 0x92, 0x81,
+ 0xa2, 0xfb, 0x1b, 0xb5, 0x12, 0x44, 0x45, 0x1d,
+ 0x0c, 0x78, 0x52, 0x12, 0x80, 0x05, 0xcd, 0x57,
+ 0xea, 0xd4, 0x65, 0xc8, 0x61, 0x3d, 0x12, 0x5f,
+ 0x79, 0x32, 0xdc, 0xe4, 0xc2, 0xb2, 0x3e, 0xeb,
+ 0xcf, 0xed, 0x1c, 0x8d, 0x89, 0x3b, 0xfd, 0x4a,
+ 0xcd, 0x7b, 0x05, 0xa4, 0xe5, 0xee, 0x90, 0xa0,
+ 0x33, 0xcd, 0xee, 0x7e, 0xfd, 0xd0, 0xb9, 0x1c,
+ 0x47, 0x9f, 0x29, 0xa3, 0x60, 0x51, 0x7d, 0x4d,
+ 0x86, 0x3c, 0x03, 0x73, 0xd7, 0x26, 0x67, 0x6b,
+ 0x86, 0x0b, 0x29, 0x1e, 0x0d, 0x94, 0x93, 0xc0,
+ 0x37, 0xf2, 0xc3, 0x65, 0x96, 0x61, 0x40, 0x51,
+ 0x2a, 0x0f, 0xf3, 0xce, 0xb1, 0x85, 0x03, 0x29,
+ 0x34, 0x77, 0x37, 0x5a, 0x2c, 0xd3, 0xa5, 0x96,
+ 0xf9, 0x6e, 0x92, 0xba, 0x78, 0xca, 0xfb, 0x41,
+ 0x2f, 0x10, 0xee, 0x43, 0xd4, 0x35, 0xfd, 0x00,
+ 0x8b, 0x99, 0x31, 0xe2, 0x58, 0x40, 0x5a, 0x5c,
+ 0xc8, 0x20, 0x68, 0x3d, 0x8a, 0x97, 0x58, 0xbb,
+ 0x86, 0x11, 0x09, 0xeb, 0xe9, 0xd7, 0xf2, 0x71,
+ 0x3f, 0x45, 0xdc, 0x8f, 0x7e, 0xbe, 0x5b, 0x11,
+ 0x3b, 0xa2, 0x00, 0x35, 0x94, 0x47, 0xb7, 0x22,
+ 0xca, 0xae, 0x30, 0x20, 0x10, 0xf7, 0xbb, 0x10,
+ 0xc1, 0x54, 0xc0, 0x7d, 0xfe, 0xca, 0x17, 0x5e
+//};
+//unsigned int sig_revoked1msg0bsn0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha384bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha384bsn0msg0.inc
new file mode 100644
index 0000000000..a1af06041f
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha384bsn0msg0.inc
@@ -0,0 +1,60 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey001
+ * HashAlg : Sha384
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : empty sigrl
+ */
+//unsigned char sig001_sha384_dat[] = {
+ 0x57, 0xe7, 0x8f, 0xfb, 0xf9, 0xa3, 0xba, 0x5e, 0xac, 0xec, 0xb3, 0xa4,
+ 0xf4, 0x13, 0x95, 0xa1, 0x1c, 0x1d, 0xe1, 0xaf, 0xea, 0x16, 0xba, 0x6d,
+ 0xde, 0x4c, 0x43, 0xf0, 0x89, 0x59, 0x5e, 0xfa, 0x0f, 0x18, 0xdd, 0x22,
+ 0xf6, 0xd6, 0xfc, 0xe5, 0x0f, 0xb2, 0x81, 0xb5, 0xa9, 0xa6, 0xe8, 0xee,
+ 0x14, 0x04, 0xec, 0x1b, 0x4e, 0x65, 0x82, 0x7f, 0x96, 0x53, 0xc4, 0x3b,
+ 0x29, 0x17, 0x39, 0xc0, 0x40, 0x45, 0x1d, 0xa1, 0xe4, 0x5c, 0x0a, 0xc9,
+ 0x81, 0xd7, 0x52, 0xe2, 0x75, 0x49, 0xf8, 0x36, 0x2d, 0xf0, 0x60, 0xd2,
+ 0x18, 0x1f, 0xd0, 0x98, 0x5b, 0xde, 0xdb, 0x4a, 0x99, 0x05, 0xeb, 0xba,
+ 0xab, 0x56, 0x75, 0x7b, 0x76, 0xaa, 0xc8, 0x52, 0xa9, 0x90, 0x95, 0x01,
+ 0xda, 0xfb, 0x0f, 0x1b, 0xe3, 0x04, 0x96, 0x9c, 0x27, 0x9d, 0x2b, 0xb3,
+ 0xc2, 0x48, 0x16, 0x3f, 0x4c, 0xc3, 0xe6, 0x6f, 0x71, 0x8a, 0xc6, 0x62,
+ 0x1f, 0x41, 0xc0, 0xe1, 0x2f, 0xb6, 0xd9, 0xee, 0x20, 0x47, 0x43, 0xe0,
+ 0xbd, 0x24, 0x16, 0xf7, 0xd5, 0x5e, 0xb4, 0x28, 0xb9, 0x62, 0xb4, 0xb4,
+ 0x2f, 0x1c, 0xef, 0x0a, 0x26, 0x77, 0xd2, 0x11, 0xc7, 0xf0, 0xa4, 0x05,
+ 0xf7, 0xc3, 0x27, 0xaa, 0x5b, 0x1c, 0x5b, 0x46, 0xce, 0x4b, 0xea, 0xe0,
+ 0x94, 0xef, 0xeb, 0x6e, 0x55, 0xa4, 0x57, 0xd8, 0xa8, 0x18, 0x8b, 0xf4,
+ 0x86, 0xc7, 0x2b, 0x9e, 0xce, 0xef, 0x1c, 0x30, 0x10, 0x18, 0x56, 0x2b,
+ 0xcf, 0x94, 0x21, 0x24, 0xaf, 0x8e, 0xd4, 0xb7, 0x40, 0xdf, 0xab, 0x14,
+ 0x3f, 0x55, 0x65, 0x72, 0x9f, 0xaf, 0x99, 0xed, 0xe1, 0x0a, 0x6d, 0x95,
+ 0x71, 0x1d, 0x38, 0x83, 0x4e, 0xba, 0xb3, 0x7e, 0xed, 0xe5, 0x9e, 0xfd,
+ 0xd0, 0xbf, 0xb4, 0x6a, 0x5f, 0xeb, 0x12, 0x94, 0xb2, 0xac, 0x27, 0x55,
+ 0x34, 0xa8, 0x2d, 0x77, 0x06, 0x0d, 0x7c, 0x56, 0x8b, 0x96, 0x3c, 0xc5,
+ 0xa2, 0xcf, 0x14, 0x52, 0x0c, 0x1f, 0x40, 0xcf, 0x0f, 0x46, 0x55, 0x0a,
+ 0x4a, 0x2b, 0x8f, 0xe0, 0xe7, 0xa3, 0xd5, 0xf5, 0x29, 0x10, 0x2a, 0x7d,
+ 0xd6, 0x43, 0xf3, 0x13, 0x7a, 0x77, 0x29, 0x2a, 0x56, 0x4b, 0x8c, 0x90,
+ 0x73, 0x73, 0x3e, 0x19, 0x58, 0x81, 0x3c, 0x69, 0x98, 0x4e, 0x96, 0x50,
+ 0xdd, 0xe8, 0x7e, 0x6b, 0x94, 0x45, 0xc4, 0xc5, 0x3d, 0xcb, 0x0c, 0x42,
+ 0xd9, 0x69, 0x29, 0x6c, 0x8d, 0xeb, 0x9e, 0x6a, 0xda, 0x8a, 0x4c, 0xfb,
+ 0x2d, 0xb7, 0x33, 0xe8, 0xe8, 0xeb, 0x05, 0x6a, 0x9e, 0x12, 0xb5, 0xb1,
+ 0x21, 0x39, 0xbc, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+//};
+//unsigned int sig001_sha384_dat_len = 360;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha512bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha512bsn0msg0.inc
new file mode 100644
index 0000000000..370251a3c2
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked1sha512bsn0msg0.inc
@@ -0,0 +1,60 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey001
+ * HashAlg : Sha512
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : empty sigrl
+ */
+//unsigned char sig001_sha512_dat[] = {
+ 0x72, 0xed, 0x4f, 0x01, 0xf2, 0xfe, 0xc9, 0xf4, 0x56, 0x4f, 0x11, 0x31,
+ 0x62, 0x07, 0x02, 0x0f, 0xed, 0xd0, 0x6b, 0xe8, 0xbf, 0xa9, 0x0b, 0x55,
+ 0xb8, 0xf7, 0xe9, 0x6e, 0xaa, 0x13, 0x2e, 0x6f, 0xa7, 0xd5, 0xec, 0x4b,
+ 0x3e, 0x23, 0x5f, 0x4f, 0x61, 0x44, 0x52, 0xc1, 0x75, 0x0b, 0x13, 0xad,
+ 0xa1, 0x53, 0x0d, 0x6a, 0x73, 0xed, 0x5e, 0x49, 0xa9, 0xed, 0x1d, 0x88,
+ 0xde, 0xa6, 0x93, 0x18, 0xe1, 0xd0, 0x28, 0x79, 0xa1, 0xb8, 0xfb, 0x8d,
+ 0x5b, 0xcf, 0xd8, 0x53, 0x7b, 0x27, 0xcf, 0xf0, 0x7b, 0x3c, 0xfd, 0xec,
+ 0x2d, 0x32, 0x75, 0xa9, 0xb0, 0x12, 0xf7, 0xb5, 0x04, 0x9b, 0x4a, 0x89,
+ 0x09, 0xd5, 0xc2, 0xf9, 0x81, 0x3b, 0x02, 0x38, 0x18, 0x7a, 0x8e, 0x0a,
+ 0x94, 0x22, 0x22, 0x32, 0x20, 0xf9, 0x41, 0x12, 0x02, 0x11, 0xbc, 0x0e,
+ 0x43, 0x94, 0x7e, 0x3d, 0x35, 0x98, 0xe8, 0xac, 0xf2, 0x6b, 0xcf, 0xdf,
+ 0xf8, 0x4f, 0x0e, 0x42, 0x5b, 0xaa, 0x07, 0xb9, 0x55, 0x2b, 0xad, 0xb4,
+ 0xbc, 0x3c, 0x2f, 0xc7, 0xc9, 0x5b, 0xe2, 0xaa, 0x9b, 0xca, 0x80, 0xf4,
+ 0x92, 0x58, 0xbe, 0x3b, 0x43, 0xea, 0xaf, 0xb6, 0x1b, 0xd2, 0x6a, 0xda,
+ 0x6f, 0xd8, 0x89, 0x88, 0xbf, 0xbd, 0x7c, 0x8e, 0xa9, 0x47, 0x62, 0x7d,
+ 0xd5, 0x88, 0x7c, 0xb0, 0x24, 0x20, 0xfe, 0x71, 0x8f, 0xc6, 0x3a, 0xfb,
+ 0x44, 0xe1, 0xe8, 0x33, 0x45, 0x26, 0x12, 0x72, 0xe9, 0x2e, 0xbe, 0xf2,
+ 0xea, 0x0a, 0x21, 0x68, 0xc7, 0x1c, 0xea, 0x18, 0x7c, 0x3c, 0x01, 0x44,
+ 0xf1, 0xb5, 0xf7, 0xc6, 0x4b, 0xd7, 0xeb, 0x33, 0x1e, 0x1e, 0x7a, 0xe5,
+ 0xce, 0x76, 0xd6, 0x2b, 0x28, 0xe6, 0xb0, 0xfb, 0xc5, 0xda, 0x0b, 0xc0,
+ 0xbe, 0x39, 0xc1, 0x52, 0x9f, 0x69, 0xb3, 0xc7, 0xd7, 0x90, 0xc5, 0x63,
+ 0x07, 0xd1, 0x22, 0xa2, 0x25, 0x21, 0x8b, 0x12, 0x7a, 0x0c, 0xc7, 0xbb,
+ 0xad, 0xc2, 0xf7, 0xd2, 0xfa, 0x6f, 0x63, 0x04, 0x4d, 0x98, 0x74, 0x7a,
+ 0x96, 0x47, 0x9c, 0x3c, 0x5d, 0xbf, 0x1b, 0x58, 0x79, 0xee, 0xe2, 0x76,
+ 0xae, 0x6b, 0x23, 0xbe, 0xb1, 0x7c, 0xd5, 0x24, 0xe9, 0xae, 0xee, 0x34,
+ 0xf1, 0x73, 0x8b, 0x0e, 0x71, 0xcb, 0x0a, 0xd0, 0xae, 0x16, 0xc3, 0x4a,
+ 0x5a, 0x6c, 0xed, 0x3c, 0x1e, 0xaa, 0x7f, 0x48, 0xca, 0x6b, 0x20, 0x67,
+ 0x16, 0x93, 0xc8, 0xd9, 0x26, 0x21, 0xe9, 0x05, 0x0d, 0x4a, 0x6d, 0x30,
+ 0x86, 0xdd, 0x90, 0x95, 0x53, 0xd3, 0x73, 0x88, 0x6b, 0xec, 0x50, 0x25,
+ 0x29, 0x05, 0xeb, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+//};
+//unsigned int sig001_sha512_dat_len = 360;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha256bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha256bsn0msg0.inc
new file mode 100644
index 0000000000..5dc82aa2a6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha256bsn0msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey002
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_revoked2msg0bsn0_dat[] = {
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+ 0x8c, 0x10, 0x2f, 0x17, 0xa0, 0xe4, 0x1f, 0xc6,
+ 0xaa, 0xea, 0xd4, 0x82, 0x67, 0x61, 0x96, 0x47,
+ 0x9b, 0x46, 0x2c, 0x31, 0xbd, 0x29, 0x62, 0x2d,
+ 0xd8, 0x40, 0x44, 0xbc, 0x1d, 0xf0, 0x19, 0x02,
+ 0x4e, 0x4c, 0x2e, 0xc1, 0x0d, 0x43, 0x59, 0x8b,
+ 0xe0, 0x0d, 0xb4, 0x29, 0x20, 0x35, 0x1f, 0xb6,
+ 0x00, 0x07, 0xa3, 0xd9, 0x28, 0xd9, 0x48, 0x08,
+ 0x5e, 0x14, 0xca, 0x56, 0x72, 0xa4, 0xb6, 0x5a,
+ 0xfb, 0xda, 0x6b, 0x4c, 0xa0, 0xdc, 0xa8, 0x92,
+ 0x71, 0x65, 0x55, 0xb1, 0xe5, 0x56, 0x06, 0xb6,
+ 0xb1, 0xb0, 0x88, 0xe8, 0x05, 0xa6, 0x81, 0x1d,
+ 0x06, 0xb7, 0x88, 0xe8, 0x8d, 0xc3, 0xce, 0xf5,
+ 0x7a, 0x56, 0x3f, 0xb8, 0xdb, 0x73, 0xbc, 0x41,
+ 0xa9, 0xd9, 0xb7, 0x1f, 0x23, 0x1f, 0x4d, 0xae,
+ 0xd1, 0x83, 0x3d, 0xaf, 0xb9, 0x01, 0xfc, 0x94,
+ 0x4b, 0x06, 0x7b, 0x53, 0x9f, 0xaa, 0x92, 0xac,
+ 0xc6, 0x8a, 0x89, 0x5b, 0xcc, 0x1d, 0x35, 0x9e,
+ 0x27, 0xe6, 0x4e, 0x77, 0x02, 0x89, 0x4e, 0xd2,
+ 0xd7, 0xed, 0xdb, 0x6e, 0xce, 0xb9, 0x3c, 0xc6,
+ 0x77, 0x3c, 0x18, 0x6c, 0x6f, 0x48, 0x3b, 0xfc,
+ 0x6e, 0x6c, 0x89, 0xd7, 0x6c, 0xd6, 0xb1, 0x23,
+ 0xd0, 0x19, 0x58, 0xd4, 0x87, 0xbf, 0x30, 0x3e,
+ 0x84, 0xe3, 0x47, 0x43, 0xa0, 0xe3, 0xcf, 0x3a,
+ 0x68, 0x07, 0x46, 0x73, 0x0d, 0x87, 0x5f, 0x1b,
+ 0x51, 0x31, 0x5a, 0x76, 0xd7, 0x6e, 0x7f, 0x99,
+ 0x5b, 0xc5, 0x30, 0x76, 0xac, 0xf2, 0x74, 0xbc,
+ 0x8a, 0xc8, 0x80, 0xc0, 0x22, 0x65, 0xa2, 0x41,
+ 0x51, 0xde, 0x18, 0x65, 0xc4, 0x02, 0x8f, 0x8e,
+ 0x19, 0x27, 0xb4, 0x47, 0x18, 0x2c, 0xb6, 0x87,
+ 0x7e, 0xd6, 0x44, 0x33, 0xaa, 0xa4, 0xed, 0x07,
+ 0xeb, 0x40, 0xc3, 0x95, 0x60, 0x24, 0x4b, 0x5b,
+ 0xc9, 0x2b, 0x4d, 0xae, 0x9e, 0x94, 0x6c, 0x07,
+ 0xb8, 0xd5, 0x2a, 0x3c, 0xa3, 0x39, 0x55, 0x17,
+ 0xde, 0xee, 0x77, 0x43, 0x63, 0x09, 0xb1, 0xbd,
+ 0xab, 0x57, 0x08, 0x8e, 0x66, 0xd8, 0xec, 0x23,
+ 0x10, 0x62, 0x19, 0xb3, 0x4e, 0xa3, 0x55, 0x7b,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0x5d, 0x9b, 0xdc, 0x23, 0x31, 0xbe, 0x5a, 0xbf,
+ 0x04, 0x51, 0x20, 0xd0, 0xea, 0xb0, 0x3f, 0x13,
+ 0x12, 0x53, 0x94, 0xdb, 0xa8, 0x11, 0xc7, 0x98,
+ 0xef, 0x2f, 0x6b, 0xbc, 0xbc, 0x1a, 0x73, 0xa5,
+ 0x2c, 0xac, 0x63, 0x8d, 0x67, 0x09, 0x65, 0x6d,
+ 0xe9, 0xc0, 0x2a, 0x61, 0x2d, 0xce, 0xe8, 0xc0,
+ 0xa2, 0xa4, 0xf5, 0x85, 0xfd, 0x91, 0x70, 0x80,
+ 0x32, 0xb7, 0xd8, 0x2f, 0x0d, 0x8a, 0x06, 0xc1,
+ 0x81, 0xe2, 0xee, 0x73, 0xa1, 0x5d, 0xbe, 0xca,
+ 0xaf, 0xe9, 0x2d, 0x12, 0xd6, 0xdd, 0x0a, 0xc2,
+ 0xa0, 0x33, 0x09, 0x1f, 0x53, 0x9b, 0x8e, 0xc2,
+ 0x13, 0x8d, 0x2d, 0x6c, 0xe0, 0xe3, 0x49, 0xd7,
+ 0xb4, 0xf4, 0xd4, 0xae, 0x7a, 0x5c, 0x19, 0xe2,
+ 0x68, 0x8a, 0xff, 0xfa, 0x07, 0x2a, 0x9b, 0x64,
+ 0x9c, 0x14, 0x0d, 0xd5, 0x06, 0xb3, 0xb2, 0x5a,
+ 0x58, 0x45, 0xd7, 0xe9, 0x22, 0x75, 0x7a, 0x2d,
+ 0x00, 0xe0, 0x6a, 0xff, 0xbf, 0xad, 0x3f, 0x58,
+ 0xc6, 0x8a, 0x45, 0x25, 0x9d, 0x97, 0x85, 0x8c,
+ 0x1c, 0x58, 0xcd, 0xf8, 0x35, 0xbc, 0x87, 0x6b,
+ 0x71, 0x14, 0xb7, 0x80, 0xba, 0xe8, 0x84, 0x17,
+ 0x80, 0x32, 0x94, 0x1f, 0x7c, 0xaa, 0xb5, 0xd4,
+ 0x8a, 0xe8, 0xa4, 0xe0, 0x55, 0xaf, 0x16, 0x4a,
+ 0xcf, 0xa0, 0x32, 0xc5, 0xd0, 0xc6, 0x22, 0xd9,
+ 0x5f, 0x08, 0x0f, 0xe5, 0x7c, 0x43, 0xc6, 0x2e,
+ 0x79, 0x82, 0x33, 0x67, 0xdd, 0xd9, 0xb4, 0xda,
+ 0x2b, 0x7e, 0x36, 0x5d, 0x2c, 0x6a, 0xaf, 0x5d,
+ 0xe9, 0x45, 0xa0, 0xc8, 0x2b, 0x8d, 0x0b, 0xa4,
+ 0xb3, 0x79, 0x87, 0xd4, 0xe6, 0x37, 0xed, 0xfa,
+ 0x87, 0x7a, 0x3d, 0x8e, 0xa7, 0x1f, 0xdd, 0xa7,
+ 0xe3, 0x71, 0x9f, 0x6f, 0xe3, 0xb7, 0xc8, 0x50,
+ 0x1b, 0xfc, 0x74, 0x33, 0x66, 0x0f, 0x2a, 0xff,
+ 0xd7, 0xbb, 0xbd, 0x0d, 0xed, 0x36, 0x57, 0x4f,
+ 0x0d, 0x0a, 0x49, 0xe2, 0x29, 0xd3, 0x23, 0xfc,
+ 0x3e, 0x70, 0x04, 0x4b, 0x45, 0x35, 0xa7, 0xe9,
+ 0x11, 0x26, 0x0a, 0xbd, 0xf6, 0x78, 0x8b, 0xf1,
+ 0x7a, 0x9e, 0x69, 0xff, 0xcb, 0x5f, 0x6d, 0x76,
+ 0x3e, 0xc0, 0xd9, 0xf4, 0x02, 0xf6, 0x62, 0xc5,
+ 0x11, 0x62, 0x9e, 0xcb, 0xc8, 0xc4, 0x42, 0x2b,
+ 0x01, 0xcb, 0xc5, 0x5a, 0x54, 0x7c, 0xd0, 0x9e,
+ 0xa4, 0x59, 0xc7, 0x3d, 0x22, 0x13, 0xb4, 0x0e,
+ 0x1a, 0xfc, 0xaa, 0x9d, 0xc1, 0x45, 0x74, 0xd0,
+ 0xe3, 0xec, 0xf4, 0xc4, 0x38, 0x7e, 0x7d, 0xb6,
+ 0xe0, 0xee, 0x3a, 0x3f, 0x9b, 0x89, 0xaa, 0x01,
+ 0x17, 0xc3, 0xfe, 0xe7, 0x3d, 0x45, 0x24, 0x3d,
+ 0x69, 0xd2, 0xed, 0x3d, 0x68, 0xd7, 0xca, 0x4a,
+ 0xe4, 0x7f, 0x17, 0xfb, 0x78, 0x84, 0x41, 0xd0,
+ 0x26, 0x36, 0xf2, 0x52, 0x57, 0x73, 0xce, 0xa1,
+ 0x0f, 0x77, 0x06, 0x8e, 0xdf, 0x3a, 0x55, 0x94,
+ 0x9b, 0xf7, 0xf4, 0xc6, 0x2d, 0x77, 0x93, 0x77,
+ 0xc3, 0x88, 0xc1, 0x11, 0x0a, 0x99, 0xf7, 0x56,
+ 0xfd, 0x0b, 0xbc, 0x1e, 0xd8, 0x55, 0x6f, 0xc7,
+ 0x48, 0x60, 0xa4, 0x2d, 0x6b, 0x47, 0x12, 0x2e,
+ 0x23, 0x07, 0x71, 0x53, 0x64, 0x2c, 0xbe, 0xb2,
+ 0xde, 0xcb, 0xf7, 0xe3, 0x19, 0x18, 0xf8, 0x8f,
+ 0x10, 0xd6, 0xfd, 0x44, 0xbe, 0x7b, 0x0e, 0xe6,
+ 0x8b, 0xca, 0xf1, 0x36, 0xaa, 0x8d, 0xac, 0x7e,
+ 0x1e, 0x3b, 0x13, 0xee, 0x4a, 0xaf, 0x87, 0xf5,
+ 0xf0, 0x25, 0xce, 0x5b, 0xf5, 0x4a, 0x3a, 0xa4,
+ 0x71, 0x2e, 0x53, 0x74, 0xa9, 0xbe, 0x49, 0x97,
+ 0xab, 0x49, 0xca, 0x73, 0x47, 0x59, 0x41, 0xde
+//};
+//unsigned int sig_revoked2msg0bsn0_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha384bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha384bsn0msg0.inc
new file mode 100644
index 0000000000..8bc7618a80
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha384bsn0msg0.inc
@@ -0,0 +1,60 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey002
+ * HashAlg : Sha384
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : empty sigrl
+ */
+//unsigned char sig002_sha384_dat[] = {
+ 0x57, 0xe7, 0x8f, 0xfb, 0xf9, 0xa3, 0xba, 0x5e, 0xac, 0xec, 0xb3, 0xa4,
+ 0xf4, 0x13, 0x95, 0xa1, 0x1c, 0x1d, 0xe1, 0xaf, 0xea, 0x16, 0xba, 0x6d,
+ 0xde, 0x4c, 0x43, 0xf0, 0x89, 0x59, 0x5e, 0xfa, 0x0f, 0x18, 0xdd, 0x22,
+ 0xf6, 0xd6, 0xfc, 0xe5, 0x0f, 0xb2, 0x81, 0xb5, 0xa9, 0xa6, 0xe8, 0xee,
+ 0x14, 0x04, 0xec, 0x1b, 0x4e, 0x65, 0x82, 0x7f, 0x96, 0x53, 0xc4, 0x3b,
+ 0x29, 0x17, 0x39, 0xc0, 0x9c, 0x72, 0x76, 0x06, 0xe0, 0xbd, 0x59, 0xba,
+ 0xc5, 0x0b, 0x58, 0x76, 0xf9, 0x32, 0xb7, 0xd1, 0x62, 0x68, 0x66, 0x97,
+ 0xc3, 0xaf, 0xfd, 0xa4, 0x76, 0x62, 0x40, 0xed, 0x19, 0xaa, 0x75, 0x54,
+ 0x17, 0x8b, 0xb4, 0x6a, 0xce, 0x16, 0x43, 0x46, 0xb4, 0xe0, 0x5d, 0xac,
+ 0xcf, 0xf8, 0xa8, 0xcf, 0x23, 0x6b, 0x08, 0x95, 0x28, 0xb4, 0x07, 0x44,
+ 0xc5, 0xe9, 0x7f, 0x16, 0x60, 0x2a, 0x1d, 0x23, 0xaf, 0x23, 0x6b, 0xe5,
+ 0x0f, 0x85, 0x6f, 0x62, 0x06, 0x26, 0xec, 0xaa, 0x08, 0x88, 0x39, 0x79,
+ 0x6c, 0xa4, 0x45, 0xf2, 0xda, 0xac, 0x08, 0x7d, 0x1c, 0xe3, 0x75, 0xa9,
+ 0xd4, 0x56, 0x18, 0x27, 0xa5, 0xc2, 0xbf, 0x5d, 0x9c, 0x98, 0x1c, 0xa6,
+ 0xec, 0x4e, 0x21, 0x20, 0x88, 0x1d, 0x53, 0x51, 0x4d, 0x1f, 0x86, 0xa3,
+ 0x67, 0x54, 0xc4, 0xfd, 0x43, 0xb9, 0x06, 0xcb, 0x0d, 0xb8, 0x06, 0x48,
+ 0x83, 0xe8, 0x80, 0x94, 0x04, 0x11, 0xe6, 0xd3, 0xbe, 0xb6, 0x28, 0x94,
+ 0x6e, 0x5b, 0x2b, 0xa4, 0x48, 0x4d, 0x7b, 0xef, 0xab, 0x90, 0x8b, 0x59,
+ 0x25, 0xcc, 0xcb, 0x0f, 0x51, 0x8a, 0x49, 0xcf, 0x58, 0xd3, 0x80, 0xc8,
+ 0xb0, 0xea, 0x84, 0x23, 0x65, 0xe4, 0x6f, 0x49, 0xc1, 0x64, 0x30, 0x44,
+ 0xf3, 0x4f, 0x96, 0x46, 0x96, 0x46, 0xd9, 0x5a, 0xce, 0xb0, 0xac, 0x59,
+ 0xc3, 0xa4, 0xbe, 0x47, 0x9c, 0x50, 0xb9, 0xb2, 0x9d, 0x60, 0xcb, 0x63,
+ 0x15, 0x44, 0x3a, 0x3d, 0xee, 0x8e, 0xf4, 0x05, 0xaf, 0x8b, 0xa5, 0xa8,
+ 0x76, 0x4e, 0x9f, 0xf9, 0x89, 0x4c, 0x94, 0x98, 0xfa, 0x05, 0xf3, 0xb5,
+ 0x5c, 0xe2, 0x10, 0xdd, 0x0a, 0x4c, 0x10, 0x95, 0x69, 0xc8, 0xe0, 0xbf,
+ 0x8e, 0x65, 0x79, 0x90, 0x2c, 0x9b, 0x5f, 0x00, 0x27, 0x04, 0x3f, 0x09,
+ 0x3a, 0xce, 0x8d, 0x0e, 0x6a, 0x4e, 0x53, 0x6b, 0x67, 0x87, 0xf7, 0x3b,
+ 0xe1, 0x15, 0x05, 0xe1, 0x93, 0x77, 0x53, 0x1b, 0x6b, 0xfa, 0xdb, 0xd4,
+ 0xee, 0x57, 0x1e, 0xe2, 0xd8, 0xc8, 0x41, 0x89, 0xc0, 0x71, 0x47, 0x80,
+ 0x2e, 0x6d, 0x8d, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+//};
+//unsigned int sig002_sha384_dat_len = 360;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha512bsn0msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha512bsn0msg0.inc
new file mode 100644
index 0000000000..eb022fa19d
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/sig_revoked2sha512bsn0msg0.inc
@@ -0,0 +1,60 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn0/mprivkey002
+ * HashAlg : Sha512
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : empty sigrl
+ */
+//unsigned char sig002_sha512_dat[] = {
+ 0x72, 0xed, 0x4f, 0x01, 0xf2, 0xfe, 0xc9, 0xf4, 0x56, 0x4f, 0x11, 0x31,
+ 0x62, 0x07, 0x02, 0x0f, 0xed, 0xd0, 0x6b, 0xe8, 0xbf, 0xa9, 0x0b, 0x55,
+ 0xb8, 0xf7, 0xe9, 0x6e, 0xaa, 0x13, 0x2e, 0x6f, 0xa7, 0xd5, 0xec, 0x4b,
+ 0x3e, 0x23, 0x5f, 0x4f, 0x61, 0x44, 0x52, 0xc1, 0x75, 0x0b, 0x13, 0xad,
+ 0xa1, 0x53, 0x0d, 0x6a, 0x73, 0xed, 0x5e, 0x49, 0xa9, 0xed, 0x1d, 0x88,
+ 0xde, 0xa6, 0x93, 0x18, 0x5b, 0x0a, 0xb1, 0xd7, 0x8e, 0x50, 0xf3, 0x3c,
+ 0xed, 0x19, 0x00, 0xdb, 0x98, 0xdf, 0x1d, 0x5a, 0xf2, 0x2a, 0x54, 0x57,
+ 0xfd, 0x1f, 0xdb, 0xbd, 0x64, 0x83, 0xe0, 0x1e, 0x1d, 0x08, 0x14, 0x59,
+ 0x3a, 0xf6, 0xd2, 0x6a, 0xd7, 0xba, 0x42, 0x7f, 0xca, 0xb4, 0xe9, 0x06,
+ 0x24, 0x9b, 0xbf, 0x67, 0xed, 0x56, 0x3c, 0x65, 0xd6, 0x7f, 0xcf, 0x7c,
+ 0x17, 0xa5, 0x5f, 0x90, 0x22, 0x71, 0x05, 0x00, 0x05, 0x3a, 0x09, 0x77,
+ 0x8a, 0x0f, 0xca, 0x75, 0x10, 0xb5, 0xdf, 0xc6, 0x86, 0x3a, 0xf6, 0x0d,
+ 0x9e, 0xb8, 0x28, 0xae, 0x53, 0x93, 0x4d, 0x8a, 0x4a, 0x91, 0x77, 0xdf,
+ 0x5b, 0xeb, 0x08, 0x39, 0xab, 0x96, 0x72, 0x32, 0x5c, 0x8b, 0x8d, 0xb4,
+ 0x6b, 0xcc, 0x94, 0x62, 0x69, 0xd3, 0x73, 0xf5, 0x96, 0x49, 0xfe, 0x92,
+ 0x46, 0xe9, 0x0e, 0xae, 0x05, 0xc3, 0xc8, 0xd2, 0x35, 0x86, 0x98, 0xec,
+ 0x86, 0x56, 0xec, 0x74, 0xa3, 0x52, 0x2f, 0x5a, 0xc8, 0x0c, 0x26, 0xb5,
+ 0x9c, 0xd6, 0xab, 0xcf, 0xc0, 0x4f, 0xcb, 0xa4, 0xee, 0xe8, 0xd9, 0xc3,
+ 0x6e, 0xb4, 0x6f, 0x2d, 0x2e, 0x94, 0x7a, 0xb2, 0x99, 0xe2, 0x3f, 0x26,
+ 0x89, 0x10, 0x20, 0x72, 0x24, 0x9e, 0xbe, 0xbc, 0xcd, 0x81, 0xaa, 0x42,
+ 0x09, 0x4f, 0x02, 0x8e, 0x09, 0xff, 0x40, 0x9e, 0x52, 0xae, 0x0d, 0x01,
+ 0xf8, 0x0b, 0x39, 0x55, 0x68, 0x27, 0xf6, 0xb5, 0x93, 0xc5, 0x19, 0x13,
+ 0x4b, 0xa9, 0x9e, 0x91, 0xa2, 0xf8, 0x49, 0xb5, 0xbe, 0x6c, 0x13, 0x5a,
+ 0x97, 0x5f, 0x33, 0x85, 0x2b, 0xbd, 0x79, 0xea, 0xe2, 0x35, 0xb8, 0x60,
+ 0x27, 0xa1, 0x87, 0x88, 0x68, 0x92, 0x98, 0x96, 0xcd, 0x0b, 0x4f, 0x9c,
+ 0x99, 0x27, 0x0d, 0xb7, 0x85, 0x88, 0x5e, 0x9d, 0x61, 0x3b, 0x66, 0x94,
+ 0x1e, 0x97, 0xd4, 0x4f, 0x3b, 0xb7, 0xba, 0x0e, 0xaa, 0x31, 0x5b, 0x10,
+ 0x70, 0x2d, 0x5b, 0x28, 0x95, 0xe9, 0xb8, 0x40, 0x90, 0x12, 0x1e, 0x02,
+ 0xa8, 0x41, 0x0a, 0xc4, 0x05, 0x94, 0xf4, 0x99, 0x74, 0x0b, 0xed, 0x27,
+ 0xb9, 0x74, 0x3a, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+//};
+//unsigned int sig002_sha512_dat_len = 360;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl.inc
new file mode 100644
index 0000000000..468c0ec4f7
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl.inc
@@ -0,0 +1,69 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 verifier revocation list
+ * Group : grpX
+ * Bsn : "bsn0"
+ * HashAlg : Sha256
+ * Revoked : verrevoked/mprivatekey000
+ * verrevoked/mprivatekey001
+ * verrevoked/mprivatekey002
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+
+// B
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+
+// version | n4
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+
+ 0x8b, 0xc9, 0x6e, 0xc0, 0x86, 0x04, 0x6f, 0x6c,
+ 0x89, 0xc2, 0x27, 0xfd, 0x61, 0x59, 0xb5, 0xd2,
+ 0x73, 0x96, 0xfa, 0xd6, 0xf8, 0xfa, 0x2c, 0x39,
+ 0xfe, 0xee, 0xef, 0x3e, 0x73, 0xd2, 0x38, 0x3f,
+ 0x3c, 0x04, 0x07, 0x78, 0xfd, 0x32, 0x9b, 0xc3,
+ 0x74, 0x90, 0xf2, 0xf5, 0x50, 0xe4, 0x69, 0x5d,
+ 0x30, 0x0c, 0x6a, 0x8a, 0x9c, 0xcf, 0xff, 0x78,
+ 0x28, 0x52, 0x6d, 0x20, 0x29, 0xef, 0x2d, 0x7a,
+
+ 0x07, 0x46, 0xed, 0xb8, 0x6a, 0x4e, 0x7f, 0x4b,
+ 0x9d, 0xcc, 0x18, 0x91, 0x88, 0xf6, 0x76, 0x4d,
+ 0x74, 0x02, 0x36, 0x62, 0xe6, 0xd4, 0xb5, 0xf0,
+ 0x2d, 0x70, 0x91, 0x49, 0x65, 0xdf, 0x19, 0x02,
+ 0x30, 0x6c, 0x11, 0xaa, 0x74, 0x8c, 0x55, 0x2e,
+ 0x4b, 0xa3, 0x00, 0x00, 0xb0, 0x38, 0xf4, 0xcd,
+ 0x5d, 0xc9, 0x1d, 0xaa, 0x1e, 0x44, 0x98, 0xa4,
+ 0xe1, 0x3f, 0x2f, 0x4f, 0x6c, 0xc9, 0x15, 0xb0,
+
+ 0x8c, 0x10, 0x2f, 0x17, 0xa0, 0xe4, 0x1f, 0xc6,
+ 0xaa, 0xea, 0xd4, 0x82, 0x67, 0x61, 0x96, 0x47,
+ 0x9b, 0x46, 0x2c, 0x31, 0xbd, 0x29, 0x62, 0x2d,
+ 0xd8, 0x40, 0x44, 0xbc, 0x1d, 0xf0, 0x19, 0x02,
+ 0x4e, 0x4c, 0x2e, 0xc1, 0x0d, 0x43, 0x59, 0x8b,
+ 0xe0, 0x0d, 0xb4, 0x29, 0x20, 0x35, 0x1f, 0xb6,
+ 0x00, 0x07, 0xa3, 0xd9, 0x28, 0xd9, 0x48, 0x08,
+ 0x5e, 0x14, 0xca, 0x56, 0x72, 0xa4, 0xb6, 0x5a,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_1entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_1entry.inc
new file mode 100644
index 0000000000..aa2b295b9a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_1entry.inc
@@ -0,0 +1,51 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 verifier revocation list
+ * Group : grpX
+ * Bsn : "bsn0"
+ * HashAlg : Sha256
+ * Revoked : verrevoked/mprivatekey000
+ * verrevoked/mprivatekey001
+ * verrevoked/mprivatekey002
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+
+// B
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26,
+ 0x5f, 0x20, 0xbd, 0x9e, 0x49, 0x11, 0x31, 0xe0,
+ 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd,
+ 0x64, 0x60, 0xa4, 0xf8, 0x17, 0x81, 0xc3, 0x0a,
+ 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99,
+ 0x72, 0xdc, 0xe6, 0x78, 0xe3, 0x70, 0xa8, 0x28,
+
+// version | n4
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+
+ 0x8b, 0xc9, 0x6e, 0xc0, 0x86, 0x04, 0x6f, 0x6c,
+ 0x89, 0xc2, 0x27, 0xfd, 0x61, 0x59, 0xb5, 0xd2,
+ 0x73, 0x96, 0xfa, 0xd6, 0xf8, 0xfa, 0x2c, 0x39,
+ 0xfe, 0xee, 0xef, 0x3e, 0x73, 0xd2, 0x38, 0x3f,
+ 0x3c, 0x04, 0x07, 0x78, 0xfd, 0x32, 0x9b, 0xc3,
+ 0x74, 0x90, 0xf2, 0xf5, 0x50, 0xe4, 0x69, 0x5d,
+ 0x30, 0x0c, 0x6a, 0x8a, 0x9c, 0xcf, 0xff, 0x78,
+ 0x28, 0x52, 0x6d, 0x20, 0x29, 0xef, 0x2d, 0x7a,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_sha384.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_sha384.inc
new file mode 100644
index 0000000000..ee7eccb6aa
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_sha384.inc
@@ -0,0 +1,69 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 verifier revocation list
+ * Group : grpX
+ * Bsn : "bsn0"
+ * HashAlg : Sha384
+ * Revoked : verrevoked/mprivatekey000
+ * verrevoked/mprivatekey001
+ * verrevoked/mprivatekey002
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+
+// B
+ 0x57, 0xe7, 0x8f, 0xfb, 0xf9, 0xa3, 0xba, 0x5e,
+ 0xac, 0xec, 0xb3, 0xa4, 0xf4, 0x13, 0x95, 0xa1,
+ 0x1c, 0x1d, 0xe1, 0xaf, 0xea, 0x16, 0xba, 0x6d,
+ 0xde, 0x4c, 0x43, 0xf0, 0x89, 0x59, 0x5e, 0xfa,
+ 0x0f, 0x18, 0xdd, 0x22, 0xf6, 0xd6, 0xfc, 0xe5,
+ 0x0f, 0xb2, 0x81, 0xb5, 0xa9, 0xa6, 0xe8, 0xee,
+ 0x14, 0x04, 0xec, 0x1b, 0x4e, 0x65, 0x82, 0x7f,
+ 0x96, 0x53, 0xc4, 0x3b, 0x29, 0x17, 0x39, 0xc0,
+
+// version | n4
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+
+ 0x9d, 0x3e, 0x8e, 0xd2, 0x45, 0xfd, 0x1b, 0xcd,
+ 0x33, 0x6c, 0xdb, 0x1a, 0xda, 0x34, 0x59, 0x2e,
+ 0x38, 0x72, 0x75, 0x17, 0x25, 0xee, 0xa8, 0x9b,
+ 0xf9, 0xd0, 0x1b, 0x15, 0x82, 0x03, 0x8c, 0x72,
+ 0x5d, 0xb7, 0x3c, 0x7c, 0x7e, 0x17, 0x81, 0x55,
+ 0x52, 0x7d, 0x87, 0x7c, 0x90, 0xd8, 0x17, 0xee,
+ 0x35, 0xdb, 0xe1, 0x67, 0x59, 0xa4, 0xd6, 0xb3,
+ 0x24, 0x54, 0xd2, 0x70, 0x0f, 0xc0, 0x37, 0x39,
+
+ 0x40, 0x45, 0x1d, 0xa1, 0xe4, 0x5c, 0x0a, 0xc9,
+ 0x81, 0xd7, 0x52, 0xe2, 0x75, 0x49, 0xf8, 0x36,
+ 0x2d, 0xf0, 0x60, 0xd2, 0x18, 0x1f, 0xd0, 0x98,
+ 0x5b, 0xde, 0xdb, 0x4a, 0x99, 0x05, 0xeb, 0xba,
+ 0xab, 0x56, 0x75, 0x7b, 0x76, 0xaa, 0xc8, 0x52,
+ 0xa9, 0x90, 0x95, 0x01, 0xda, 0xfb, 0x0f, 0x1b,
+ 0xe3, 0x04, 0x96, 0x9c, 0x27, 0x9d, 0x2b, 0xb3,
+ 0xc2, 0x48, 0x16, 0x3f, 0x4c, 0xc3, 0xe6, 0x6f,
+
+ 0x9c, 0x72, 0x76, 0x06, 0xe0, 0xbd, 0x59, 0xba,
+ 0xc5, 0x0b, 0x58, 0x76, 0xf9, 0x32, 0xb7, 0xd1,
+ 0x62, 0x68, 0x66, 0x97, 0xc3, 0xaf, 0xfd, 0xa4,
+ 0x76, 0x62, 0x40, 0xed, 0x19, 0xaa, 0x75, 0x54,
+ 0x17, 0x8b, 0xb4, 0x6a, 0xce, 0x16, 0x43, 0x46,
+ 0xb4, 0xe0, 0x5d, 0xac, 0xcf, 0xf8, 0xa8, 0xcf,
+ 0x23, 0x6b, 0x08, 0x95, 0x28, 0xb4, 0x07, 0x44,
+ 0xc5, 0xe9, 0x7f, 0x16, 0x60, 0x2a, 0x1d, 0x23,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_sha512.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_sha512.inc
new file mode 100644
index 0000000000..7b8fbfc1a8
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn0/verrl_sha512.inc
@@ -0,0 +1,69 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 verifier revocation list
+ * Group : grpX
+ * Bsn : "bsn0"
+ * HashAlg : Sha512
+ * Revoked : verrevoked/mprivatekey000
+ * verrevoked/mprivatekey001
+ * verrevoked/mprivatekey002
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+
+// B
+ 0x72, 0xed, 0x4f, 0x01, 0xf2, 0xfe, 0xc9, 0xf4,
+ 0x56, 0x4f, 0x11, 0x31, 0x62, 0x07, 0x02, 0x0f,
+ 0xed, 0xd0, 0x6b, 0xe8, 0xbf, 0xa9, 0x0b, 0x55,
+ 0xb8, 0xf7, 0xe9, 0x6e, 0xaa, 0x13, 0x2e, 0x6f,
+ 0xa7, 0xd5, 0xec, 0x4b, 0x3e, 0x23, 0x5f, 0x4f,
+ 0x61, 0x44, 0x52, 0xc1, 0x75, 0x0b, 0x13, 0xad,
+ 0xa1, 0x53, 0x0d, 0x6a, 0x73, 0xed, 0x5e, 0x49,
+ 0xa9, 0xed, 0x1d, 0x88, 0xde, 0xa6, 0x93, 0x18,
+
+// version | n4
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+
+ 0xe6, 0xec, 0xb1, 0xff, 0xca, 0xad, 0x04, 0x8a,
+ 0x1a, 0x04, 0xac, 0xf9, 0x6c, 0xe4, 0x7a, 0xa1,
+ 0xfe, 0xe0, 0x7b, 0xd7, 0xbb, 0x64, 0x25, 0xa7,
+ 0x5b, 0xfa, 0x3c, 0xa4, 0xd6, 0x30, 0x9e, 0x25,
+ 0xa0, 0x85, 0xad, 0x9f, 0x81, 0x61, 0x87, 0x6f,
+ 0x1b, 0x34, 0x01, 0x67, 0x30, 0x31, 0xbc, 0x3c,
+ 0x9f, 0x37, 0x62, 0x79, 0x51, 0x13, 0x57, 0x6d,
+ 0xa8, 0xd3, 0xca, 0x73, 0x8d, 0xe2, 0x76, 0x42,
+
+ 0xe1, 0xd0, 0x28, 0x79, 0xa1, 0xb8, 0xfb, 0x8d,
+ 0x5b, 0xcf, 0xd8, 0x53, 0x7b, 0x27, 0xcf, 0xf0,
+ 0x7b, 0x3c, 0xfd, 0xec, 0x2d, 0x32, 0x75, 0xa9,
+ 0xb0, 0x12, 0xf7, 0xb5, 0x04, 0x9b, 0x4a, 0x89,
+ 0x09, 0xd5, 0xc2, 0xf9, 0x81, 0x3b, 0x02, 0x38,
+ 0x18, 0x7a, 0x8e, 0x0a, 0x94, 0x22, 0x22, 0x32,
+ 0x20, 0xf9, 0x41, 0x12, 0x02, 0x11, 0xbc, 0x0e,
+ 0x43, 0x94, 0x7e, 0x3d, 0x35, 0x98, 0xe8, 0xac,
+
+ 0x5b, 0x0a, 0xb1, 0xd7, 0x8e, 0x50, 0xf3, 0x3c,
+ 0xed, 0x19, 0x00, 0xdb, 0x98, 0xdf, 0x1d, 0x5a,
+ 0xf2, 0x2a, 0x54, 0x57, 0xfd, 0x1f, 0xdb, 0xbd,
+ 0x64, 0x83, 0xe0, 0x1e, 0x1d, 0x08, 0x14, 0x59,
+ 0x3a, 0xf6, 0xd2, 0x6a, 0xd7, 0xba, 0x42, 0x7f,
+ 0xca, 0xb4, 0xe9, 0x06, 0x24, 0x9b, 0xbf, 0x67,
+ 0xed, 0x56, 0x3c, 0x65, 0xd6, 0x7f, 0xcf, 0x7c,
+ 0x17, 0xa5, 0x5f, 0x90, 0x22, 0x71, 0x05, 0x00,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey003.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey003.inc
new file mode 100644
index 0000000000..3009049dbd
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey003.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : verrevokedmember003 (revoked in grpX bsn0 verrl)
+ */
+
+//unsigned char mprivkey003_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xdd, 0x5d, 0x03, 0xfb, 0xd2, 0x60, 0x36, 0xbc,
+ 0x5c, 0x16, 0xea, 0x9c, 0xd3, 0x47, 0x66, 0xec,
+ 0xc0, 0x71, 0x8b, 0xf8, 0x8e, 0x1c, 0xfb, 0x5b,
+ 0xaf, 0x60, 0x59, 0x78, 0xd0, 0x60, 0xde, 0x20,
+ 0xb3, 0x5c, 0x59, 0xb3, 0x29, 0x2e, 0x71, 0xbc,
+ 0x6d, 0xe9, 0x9d, 0xb5, 0x18, 0xce, 0xfb, 0x44,
+ 0x0f, 0x79, 0xf7, 0xb5, 0x45, 0x4d, 0xcd, 0x6b,
+ 0x6b, 0x42, 0x6b, 0x09, 0x38, 0x1e, 0xca, 0x30,
+ 0x6b, 0xda, 0xf8, 0xef, 0xef, 0x20, 0x38, 0x5a,
+ 0x30, 0xd3, 0xb8, 0x01, 0x0a, 0x3e, 0x76, 0x1e,
+ 0xaa, 0x60, 0x64, 0x43, 0x7c, 0x68, 0xcc, 0xfc,
+ 0xaf, 0x94, 0x4b, 0x61, 0x00, 0x54, 0x08, 0xa9,
+ 0x15, 0xa3, 0x46, 0xeb, 0x8d, 0x36, 0xcc, 0x1e,
+ 0x4c, 0x00, 0xe5, 0x71, 0xef, 0xea, 0xb2, 0x6a,
+ 0x7a, 0x1e, 0xba, 0x98, 0x68, 0x58, 0xd3, 0x02,
+ 0x98, 0xdd, 0x9b, 0xd1, 0x9c, 0x8e, 0x98, 0xec
+//};
+//unsigned int mprivkey003_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey004.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey004.inc
new file mode 100644
index 0000000000..253228e91e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey004.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : verrevokedmember004 (revoked in grpX bsn0 verrl)
+ */
+
+//unsigned char mprivkey004_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0xe9, 0x8d, 0x15, 0x88, 0xd4, 0x83, 0xc0, 0x70,
+ 0x60, 0xa8, 0xce, 0x0f, 0x13, 0x03, 0x4b, 0xc8,
+ 0x8d, 0xec, 0x33, 0xc0, 0x85, 0x1e, 0x3c, 0x69,
+ 0x6f, 0x87, 0x79, 0x51, 0x95, 0xe6, 0x1b, 0x35,
+ 0xf6, 0x15, 0x84, 0x40, 0x00, 0x91, 0xc8, 0x6c,
+ 0x67, 0xd0, 0x64, 0xd9, 0x1a, 0x45, 0xbb, 0x12,
+ 0x4f, 0xb1, 0xfd, 0x09, 0x8c, 0x1c, 0x8d, 0x5e,
+ 0xee, 0x8d, 0x69, 0x4f, 0x83, 0x19, 0x68, 0x0c,
+ 0x6e, 0xfe, 0xc2, 0x46, 0x89, 0xef, 0x6d, 0x26,
+ 0x7d, 0xd2, 0xd4, 0x6f, 0x05, 0xc2, 0x6e, 0x51,
+ 0x04, 0x2c, 0x6c, 0x7a, 0xfb, 0x5b, 0x25, 0x71,
+ 0x46, 0x39, 0xff, 0x88, 0x6d, 0xea, 0x16, 0x9a,
+ 0x90, 0x18, 0x15, 0xdd, 0x12, 0x04, 0x86, 0xba,
+ 0x8c, 0xfb, 0x41, 0x5f, 0x9f, 0xc8, 0x36, 0x4f,
+ 0xd5, 0x44, 0xa8, 0xdc, 0x16, 0x1f, 0xd2, 0x3a,
+ 0x30, 0x4b, 0xb3, 0xfa, 0xbf, 0x57, 0x46, 0xe2
+//};
+//unsigned int mprivkey004_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey005.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey005.inc
new file mode 100644
index 0000000000..0bf76c8ec6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/mprivkey005.inc
@@ -0,0 +1,45 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Member private key
+ * Group : grpX
+ * Signer : verrevokedmember005 (revoked in grpX bsn0 verrl)
+ */
+
+//unsigned char mprivkey005_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x0c, 0x1e, 0x00, 0x97, 0x9e, 0xc0, 0x35, 0xfb,
+ 0x1d, 0xca, 0x18, 0xb5, 0xef, 0x29, 0x5c, 0x04,
+ 0xe1, 0xcc, 0xec, 0x37, 0x6e, 0x5b, 0x45, 0x23,
+ 0xf6, 0xb2, 0xf4, 0x34, 0x36, 0x19, 0x6c, 0xc1,
+ 0x0c, 0xb4, 0x29, 0xa6, 0xe0, 0x1d, 0x53, 0x3a,
+ 0xdd, 0xeb, 0xcb, 0x72, 0x2c, 0x76, 0x75, 0x99,
+ 0x67, 0xc7, 0x4f, 0xf9, 0x8f, 0x37, 0x6f, 0x49,
+ 0x0a, 0xe3, 0xe6, 0xa3, 0x0b, 0xfb, 0xb7, 0xfc,
+ 0xe5, 0x36, 0x11, 0x6d, 0x5d, 0xc1, 0x8b, 0x72,
+ 0x75, 0xc6, 0x1d, 0xe3, 0x5a, 0x98, 0x77, 0x20,
+ 0xcd, 0x27, 0xb7, 0x26, 0xfb, 0x7f, 0xfc, 0x94,
+ 0x35, 0x58, 0xfc, 0x3f, 0x35, 0x87, 0x32, 0x05,
+ 0x77, 0x1c, 0x5b, 0xc0, 0xc7, 0xe5, 0x00, 0xa2,
+ 0x47, 0xd2, 0x0a, 0x67, 0xa7, 0x1b, 0x15, 0x0c,
+ 0xc6, 0xb9, 0x7a, 0xd2, 0xad, 0x55, 0x58, 0x8d,
+ 0x7f, 0xa9, 0x6e, 0x44, 0x57, 0xc2, 0x5f, 0xe8
+//};
+//unsigned int mprivkey005_dat_len = 144;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/sig_revoked3sha256bsn1msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/sig_revoked3sha256bsn1msg0.inc
new file mode 100644
index 0000000000..25a00f85e8
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/sig_revoked3sha256bsn1msg0.inc
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : grpX
+ * Signer : verrevoked/bsn1/mprivkey003
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn1"
+ * SigRl : group x sigrl
+ */
+//unsigned char sig_revoked3msg0bsn1_dat[] = {
+ 0x4b, 0xb3, 0x62, 0x6c, 0xa5, 0x12, 0xaa, 0x7a,
+ 0x22, 0x7f, 0xde, 0xf0, 0x8f, 0x1e, 0x3c, 0xc8,
+ 0xda, 0x5f, 0x2f, 0x6d, 0x3b, 0xd0, 0x42, 0xec,
+ 0x62, 0xbf, 0x3c, 0x0f, 0xae, 0xd4, 0xf9, 0xa0,
+ 0x56, 0xc9, 0xd5, 0x33, 0xaa, 0x60, 0xab, 0x86,
+ 0x15, 0x48, 0xc2, 0xbb, 0xda, 0x3f, 0x37, 0x71,
+ 0x3e, 0xf2, 0xd5, 0x3c, 0xd3, 0xb9, 0x08, 0xa0,
+ 0x63, 0x26, 0x6e, 0x26, 0xca, 0x93, 0xc1, 0xe1,
+ 0x5a, 0x6b, 0xd9, 0x27, 0x3a, 0x6e, 0x51, 0xd6,
+ 0xe4, 0xc0, 0x83, 0xa7, 0x2d, 0xab, 0xd4, 0x57,
+ 0x07, 0xf3, 0xaa, 0xb2, 0xac, 0xbf, 0x21, 0x46,
+ 0x2e, 0xba, 0x8c, 0xc6, 0xb9, 0x6c, 0xcd, 0xbb,
+ 0xc0, 0x94, 0x3b, 0x1b, 0x45, 0xa9, 0x0a, 0x64,
+ 0x3e, 0x2c, 0x92, 0x02, 0x69, 0xfb, 0x72, 0x9b,
+ 0xe6, 0xf9, 0x06, 0x82, 0x01, 0x01, 0x43, 0x19,
+ 0xca, 0xea, 0x70, 0x01, 0x51, 0xae, 0x91, 0xad,
+ 0x1c, 0x6f, 0x78, 0x8c, 0xfd, 0x47, 0xdc, 0xb2,
+ 0xaa, 0xa4, 0x85, 0x1b, 0xb4, 0xa1, 0x2e, 0xcd,
+ 0x17, 0xad, 0x60, 0x11, 0x85, 0x01, 0x97, 0xe6,
+ 0x73, 0xd3, 0x19, 0x1b, 0x92, 0xb5, 0xd8, 0x75,
+ 0xf0, 0x26, 0x11, 0x44, 0xef, 0x03, 0x69, 0x39,
+ 0xb3, 0x00, 0xdc, 0x18, 0x79, 0xaf, 0x7a, 0x2c,
+ 0xc7, 0xdf, 0x26, 0xdb, 0x48, 0xb3, 0x39, 0x1f,
+ 0x5f, 0x29, 0xda, 0x3e, 0x43, 0x7f, 0xf3, 0x8e,
+ 0x81, 0x8c, 0x56, 0x3a, 0xec, 0xc8, 0xb8, 0x7c,
+ 0x53, 0xfc, 0x14, 0x8e, 0x84, 0x68, 0xff, 0x17,
+ 0x3d, 0x0c, 0x97, 0x42, 0xf7, 0x42, 0x09, 0xa5,
+ 0xcf, 0x5d, 0x29, 0x1b, 0xdb, 0x97, 0x32, 0xb1,
+ 0x39, 0x42, 0x66, 0xe2, 0x7b, 0x24, 0x47, 0x61,
+ 0xf3, 0x0b, 0x2a, 0x84, 0x74, 0xd4, 0xb0, 0x1b,
+ 0x88, 0x93, 0xc0, 0xa7, 0xf3, 0x6d, 0x28, 0x17,
+ 0x46, 0x15, 0xd9, 0x32, 0x86, 0xf2, 0x9a, 0x56,
+ 0xfa, 0x72, 0xf7, 0xa0, 0x60, 0x75, 0xb0, 0x40,
+ 0x76, 0x7c, 0xe4, 0x7f, 0x97, 0xd6, 0xc2, 0x1d,
+ 0x1e, 0xaf, 0xd8, 0xaf, 0x32, 0xeb, 0x7b, 0x2c,
+ 0xc1, 0x45, 0xcc, 0xe1, 0xec, 0x2c, 0xe5, 0x46,
+ 0x09, 0x60, 0x12, 0xd7, 0xae, 0xa1, 0xa4, 0xf0,
+ 0x4d, 0x46, 0xd6, 0x6d, 0x79, 0xba, 0x34, 0x37,
+ 0x5d, 0xc5, 0x3b, 0x2c, 0xba, 0x88, 0x7b, 0xf4,
+ 0xf6, 0xbe, 0x47, 0x18, 0x60, 0xb5, 0x47, 0xfc,
+ 0x1e, 0xaf, 0xf8, 0xaf, 0x71, 0x94, 0xe5, 0xeb,
+ 0xf2, 0x68, 0xc0, 0x73, 0x16, 0xdf, 0x6d, 0x1f,
+ 0x7e, 0x25, 0x1f, 0x17, 0x96, 0x6f, 0x93, 0x26,
+ 0xb4, 0x56, 0x63, 0xe7, 0x45, 0x7f, 0x33, 0xc6,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+ 0xeb, 0xcf, 0x05, 0xca, 0xa9, 0x85, 0xed, 0xc1,
+ 0x61, 0xd4, 0x73, 0xe8, 0xd9, 0xe3, 0x9a, 0xee,
+ 0x9e, 0x3c, 0x9e, 0x2a, 0x9e, 0x9f, 0xc8, 0x83,
+ 0x3a, 0x31, 0x92, 0xf0, 0x46, 0x57, 0xb9, 0x9e,
+ 0xab, 0xfe, 0xee, 0xdd, 0x1c, 0x63, 0x24, 0x5a,
+ 0x97, 0x61, 0xa6, 0x76, 0x5b, 0xa4, 0x03, 0x70,
+ 0x65, 0xc5, 0x2b, 0x97, 0x5b, 0xce, 0x97, 0x90,
+ 0xdb, 0x55, 0x90, 0xb1, 0x1d, 0x3c, 0xf4, 0x2e,
+ 0xf7, 0x3b, 0x1c, 0x29, 0xd4, 0x80, 0x07, 0x19,
+ 0x68, 0x04, 0x65, 0x7c, 0x35, 0x43, 0x71, 0x19,
+ 0xe9, 0x32, 0x03, 0x1f, 0xa5, 0xf7, 0x99, 0x32,
+ 0x0b, 0xa8, 0xe4, 0xf0, 0x63, 0xb9, 0x1a, 0x79,
+ 0x4f, 0x82, 0xe2, 0xab, 0x2c, 0xb3, 0xb0, 0xff,
+ 0x33, 0xdc, 0xa9, 0xaf, 0x52, 0x2c, 0x16, 0x3d,
+ 0xf3, 0x49, 0x17, 0xd4, 0xaf, 0xf3, 0xbe, 0x51,
+ 0xca, 0xa8, 0x46, 0xf6, 0x15, 0xac, 0xea, 0x99,
+ 0x71, 0x37, 0xd5, 0x12, 0x57, 0xf0, 0xa1, 0x75,
+ 0xe5, 0x87, 0xe3, 0x42, 0xbc, 0xc5, 0xbb, 0xcf,
+ 0x7a, 0x53, 0xca, 0x9d, 0xd0, 0xb7, 0x15, 0x29,
+ 0x72, 0xfc, 0x75, 0x97, 0x55, 0x0b, 0xbf, 0xc7,
+ 0x6d, 0x54, 0x7a, 0x47, 0x0e, 0xb9, 0x30, 0xe1,
+ 0xf1, 0x0e, 0x98, 0x96, 0x33, 0x0f, 0x86, 0xbf,
+ 0x95, 0xf9, 0xa0, 0x74, 0x16, 0xbb, 0x64, 0xa0,
+ 0x4c, 0x91, 0x01, 0x9c, 0xa6, 0x17, 0x25, 0xab,
+ 0xe5, 0x87, 0xcb, 0x9b, 0x47, 0x10, 0x2d, 0x69,
+ 0xb8, 0x50, 0x67, 0x59, 0x26, 0xfe, 0xf5, 0x02,
+ 0x64, 0x82, 0x5e, 0xcd, 0x8e, 0x32, 0x0b, 0x5d,
+ 0x81, 0x65, 0x20, 0x9c, 0xd7, 0x6a, 0x46, 0xdd,
+ 0xb4, 0x86, 0xf9, 0x39, 0x20, 0xc7, 0xd8, 0x1a,
+ 0x29, 0xf2, 0xc6, 0x46, 0x7d, 0x08, 0xcc, 0x2e,
+ 0xba, 0xe4, 0x36, 0x0e, 0x52, 0xb3, 0xa8, 0xdf,
+ 0x25, 0xcd, 0x68, 0x5e, 0xeb, 0xb6, 0x4a, 0xd1,
+ 0xc9, 0x15, 0xef, 0x47, 0x0a, 0x5b, 0xeb, 0xf5,
+ 0xd2, 0xc4, 0x00, 0xc9, 0x43, 0x00, 0xe2, 0xba,
+ 0xca, 0xf4, 0x71, 0xbc, 0x39, 0xe5, 0x68, 0x8a,
+ 0x1a, 0x48, 0xc6, 0x71, 0x34, 0xaf, 0x75, 0x6d,
+ 0xdc, 0xb2, 0x3c, 0xd3, 0x31, 0x21, 0xd0, 0xd0,
+ 0x00, 0x2a, 0xa1, 0x5d, 0xe4, 0xc8, 0x8c, 0x86,
+ 0x07, 0x55, 0x2d, 0x2d, 0x8f, 0x94, 0x55, 0x05,
+ 0xd8, 0x2d, 0x4f, 0x26, 0xfe, 0x54, 0x88, 0xb0,
+ 0xac, 0xbd, 0xfc, 0x20, 0x13, 0xe8, 0x63, 0xf0,
+ 0x22, 0x17, 0x56, 0x6f, 0x3d, 0xe4, 0xc4, 0x08,
+ 0x28, 0xe5, 0x5b, 0x58, 0xed, 0x59, 0xf5, 0xe4,
+ 0x14, 0xf5, 0x10, 0xf6, 0x75, 0x3c, 0xe4, 0xaf,
+ 0xdf, 0xb2, 0x47, 0xa8, 0xb5, 0xc5, 0x25, 0x5a,
+ 0x5e, 0xeb, 0x03, 0x06, 0x18, 0x27, 0xfe, 0x96,
+ 0x92, 0x0b, 0x83, 0x7e, 0x23, 0x54, 0x7f, 0x87,
+ 0x1e, 0xfc, 0x63, 0x40, 0xab, 0xf0, 0xc7, 0x6a,
+ 0x64, 0x31, 0xed, 0xaf, 0xab, 0xbd, 0xbc, 0xa9,
+ 0x40, 0xf6, 0xde, 0xf5, 0xdd, 0x92, 0x98, 0xd4,
+ 0xb1, 0xa0, 0xe2, 0x13, 0x55, 0x05, 0x65, 0xb8,
+ 0x2c, 0x5f, 0x7e, 0xd3, 0x3f, 0xb6, 0xf4, 0x9b,
+ 0x3c, 0x2c, 0x1a, 0xc3, 0x30, 0x21, 0x15, 0xcc,
+ 0x98, 0x41, 0x01, 0x05, 0xa6, 0x9a, 0x2a, 0xd8,
+ 0x38, 0xd8, 0x55, 0x3f, 0xb7, 0x62, 0xaf, 0x36,
+ 0xc3, 0xc7, 0x0a, 0x16, 0x17, 0x98, 0x5c, 0xe5,
+ 0x57, 0x10, 0x6b, 0xdd, 0x1d, 0x9b, 0xb6, 0x40,
+ 0x85, 0xe5, 0xc1, 0xb0, 0x97, 0x8c, 0xbf, 0x31,
+ 0x54, 0x73, 0x62, 0xef, 0xa0, 0x05, 0x49, 0xf0,
+ 0xb0, 0xe7, 0x11, 0x1d, 0xf7, 0xae, 0x17, 0x1d
+//};
+//unsigned int sig_revoked3msg0bsn1_dat_len = 840;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/verrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/verrl.inc
new file mode 100644
index 0000000000..3f1b7849b6
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/verrl.inc
@@ -0,0 +1,70 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 verifier revocation list
+ * Group : grpX
+ * Bsn : "bsn1"
+ * HashAlg : Sha256
+ * Revoked : verrevoked/mprivatekey003
+ * verrevoked/mprivatekey004
+ * verrevoked/mprivatekey005
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+
+// B
+ 0x4b, 0xb3, 0x62, 0x6c, 0xa5, 0x12, 0xaa, 0x7a,
+ 0x22, 0x7f, 0xde, 0xf0, 0x8f, 0x1e, 0x3c, 0xc8,
+ 0xda, 0x5f, 0x2f, 0x6d, 0x3b, 0xd0, 0x42, 0xec,
+ 0x62, 0xbf, 0x3c, 0x0f, 0xae, 0xd4, 0xf9, 0xa0,
+ 0x56, 0xc9, 0xd5, 0x33, 0xaa, 0x60, 0xab, 0x86,
+ 0x15, 0x48, 0xc2, 0xbb, 0xda, 0x3f, 0x37, 0x71,
+ 0x3e, 0xf2, 0xd5, 0x3c, 0xd3, 0xb9, 0x08, 0xa0,
+ 0x63, 0x26, 0x6e, 0x26, 0xca, 0x93, 0xc1, 0xe1,
+
+// version | n4
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+
+ 0x5a, 0x6b, 0xd9, 0x27, 0x3a, 0x6e, 0x51, 0xd6,
+ 0xe4, 0xc0, 0x83, 0xa7, 0x2d, 0xab, 0xd4, 0x57,
+ 0x07, 0xf3, 0xaa, 0xb2, 0xac, 0xbf, 0x21, 0x46,
+ 0x2e, 0xba, 0x8c, 0xc6, 0xb9, 0x6c, 0xcd, 0xbb,
+ 0xc0, 0x94, 0x3b, 0x1b, 0x45, 0xa9, 0x0a, 0x64,
+ 0x3e, 0x2c, 0x92, 0x02, 0x69, 0xfb, 0x72, 0x9b,
+ 0xe6, 0xf9, 0x06, 0x82, 0x01, 0x01, 0x43, 0x19,
+ 0xca, 0xea, 0x70, 0x01, 0x51, 0xae, 0x91, 0xad,
+ 0x5d, 0xb7, 0x24, 0xf8, 0xbc, 0xff, 0x55, 0x1a,
+
+ 0x34, 0xd9, 0x4d, 0xf5, 0xa8, 0x13, 0x4c, 0x41,
+ 0x3c, 0x52, 0x9c, 0xde, 0x8b, 0x08, 0x9d, 0x3a,
+ 0xa0, 0xc9, 0xe9, 0xd6, 0x33, 0x9c, 0x05, 0x43,
+ 0x8c, 0x78, 0x63, 0xaf, 0x6d, 0x64, 0x5a, 0x0e,
+ 0x36, 0xce, 0xc4, 0xba, 0x94, 0xf9, 0x2f, 0xa9,
+ 0xce, 0x81, 0xea, 0xa9, 0x2a, 0xe4, 0x4d, 0x6b,
+ 0xec, 0xd3, 0xdd, 0xe1, 0x8b, 0x82, 0x1a, 0x54,
+ 0xeb, 0x23, 0x56, 0x4b, 0xb1, 0xe5, 0xa4, 0x25,
+
+ 0x34, 0x89, 0xd7, 0x46, 0xb8, 0xcb, 0xed, 0xa1,
+ 0x1c, 0x92, 0xa9, 0xfd, 0x57, 0x56, 0xdf, 0x62,
+ 0x2e, 0x7d, 0x31, 0x44, 0x4a, 0x7d, 0xa2, 0x29,
+ 0x07, 0x1e, 0x51, 0xcc, 0x89, 0x8e, 0xee, 0xc4,
+ 0xda, 0x34, 0x93, 0x0f, 0x6a, 0xd0, 0x7b, 0x17,
+ 0x06, 0x78, 0x84, 0x37, 0x59, 0x5c, 0xcc, 0xa3,
+ 0x84, 0xb2, 0x95, 0x15, 0x5a, 0x58, 0xbe, 0x1f,
+ 0xe4, 0x21, 0x01, 0x39, 0xba, 0x27, 0x3e, 0xc8,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/verrl_012revoked.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/verrl_012revoked.inc
new file mode 100644
index 0000000000..dc6e732fad
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_x/verrevoked/bsn1/verrl_012revoked.inc
@@ -0,0 +1,69 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 verifier revocation list
+ * Group : grpX
+ * Bsn : "bsn1"
+ * HashAlg : Sha256
+ * Revoked : verrevoked/mprivatekey000
+ * verrevoked/mprivatekey001
+ * verrevoked/mprivatekey002
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+
+// B
+ 0x4b, 0xb3, 0x62, 0x6c, 0xa5, 0x12, 0xaa, 0x7a,
+ 0x22, 0x7f, 0xde, 0xf0, 0x8f, 0x1e, 0x3c, 0xc8,
+ 0xda, 0x5f, 0x2f, 0x6d, 0x3b, 0xd0, 0x42, 0xec,
+ 0x62, 0xbf, 0x3c, 0x0f, 0xae, 0xd4, 0xf9, 0xa0,
+ 0x56, 0xc9, 0xd5, 0x33, 0xaa, 0x60, 0xab, 0x86,
+ 0x15, 0x48, 0xc2, 0xbb, 0xda, 0x3f, 0x37, 0x71,
+ 0x3e, 0xf2, 0xd5, 0x3c, 0xd3, 0xb9, 0x08, 0xa0,
+ 0x63, 0x26, 0x6e, 0x26, 0xca, 0x93, 0xc1, 0xe1,
+
+// version | n4
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+
+ 0x8b, 0xc9, 0x6e, 0xc0, 0x86, 0x04, 0x6f, 0x6c,
+ 0x89, 0xc2, 0x27, 0xfd, 0x61, 0x59, 0xb5, 0xd2,
+ 0x73, 0x96, 0xfa, 0xd6, 0xf8, 0xfa, 0x2c, 0x39,
+ 0xfe, 0xee, 0xef, 0x3e, 0x73, 0xd2, 0x38, 0x3f,
+ 0x3c, 0x04, 0x07, 0x78, 0xfd, 0x32, 0x9b, 0xc3,
+ 0x74, 0x90, 0xf2, 0xf5, 0x50, 0xe4, 0x69, 0x5d,
+ 0x30, 0x0c, 0x6a, 0x8a, 0x9c, 0xcf, 0xff, 0x78,
+ 0x28, 0x52, 0x6d, 0x20, 0x29, 0xef, 0x2d, 0x7a,
+
+ 0x07, 0x46, 0xed, 0xb8, 0x6a, 0x4e, 0x7f, 0x4b,
+ 0x9d, 0xcc, 0x18, 0x91, 0x88, 0xf6, 0x76, 0x4d,
+ 0x74, 0x02, 0x36, 0x62, 0xe6, 0xd4, 0xb5, 0xf0,
+ 0x2d, 0x70, 0x91, 0x49, 0x65, 0xdf, 0x19, 0x02,
+ 0x30, 0x6c, 0x11, 0xaa, 0x74, 0x8c, 0x55, 0x2e,
+ 0x4b, 0xa3, 0x00, 0x00, 0xb0, 0x38, 0xf4, 0xcd,
+ 0x5d, 0xc9, 0x1d, 0xaa, 0x1e, 0x44, 0x98, 0xa4,
+ 0xe1, 0x3f, 0x2f, 0x4f, 0x6c, 0xc9, 0x15, 0xb0,
+
+ 0x8c, 0x10, 0x2f, 0x17, 0xa0, 0xe4, 0x1f, 0xc6,
+ 0xaa, 0xea, 0xd4, 0x82, 0x67, 0x61, 0x96, 0x47,
+ 0x9b, 0x46, 0x2c, 0x31, 0xbd, 0x29, 0x62, 0x2d,
+ 0xd8, 0x40, 0x44, 0xbc, 0x1d, 0xf0, 0x19, 0x02,
+ 0x4e, 0x4c, 0x2e, 0xc1, 0x0d, 0x43, 0x59, 0x8b,
+ 0xe0, 0x0d, 0xb4, 0x29, 0x20, 0x35, 0x1f, 0xb6,
+ 0x00, 0x07, 0xa3, 0xd9, 0x28, 0xd9, 0x48, 0x08,
+ 0x5e, 0x14, 0xca, 0x56, 0x72, 0xa4, 0xb6, 0x5a,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/cmember9/cmpprivkey.dat b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/cmember9/cmpprivkey.dat
new file mode 100644
index 0000000000..9c0f0a4c0d
Binary files /dev/null and b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/cmember9/cmpprivkey.dat differ
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/cmember9/cmpprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/cmember9/cmpprivkey.inc
new file mode 100644
index 0000000000..c1fc635d16
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/cmember9/cmpprivkey.inc
@@ -0,0 +1,36 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 compressed private key
+ * Group : grpY
+ * Signer : member9
+ */
+//unsigned char cmpprivkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
+ 0x27, 0x8d, 0x99, 0x27, 0x35, 0x78, 0x6d, 0xf6,
+ 0x24, 0xdc, 0x18, 0x4d, 0xc0, 0xd5, 0x2c, 0xde,
+ 0x0d, 0xb1, 0x2c, 0x26, 0x6f, 0x02, 0xae, 0x41,
+ 0x80, 0xc2, 0xab, 0x2a, 0xa9, 0xd8, 0x3a, 0xbc,
+ 0x1d, 0x41, 0xca, 0x59, 0x4f, 0x40, 0xfe, 0x20,
+ 0x59, 0x1e, 0xdb, 0x28, 0x5a, 0x23, 0x6b, 0xce,
+ 0x21, 0x27, 0x66, 0xa2, 0x05, 0x97, 0xb7, 0x8d,
+ 0x27, 0xd8, 0x9d, 0xca, 0x37, 0x7d, 0x77, 0x30
+//};
+//unsigned int cmpprivkey_dat_len = 80;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/iprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/iprivkey.inc
new file mode 100644
index 0000000000..d5444a83f5
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/iprivkey.inc
@@ -0,0 +1,32 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 issuing private key
+ * Group : grpY
+ */
+
+//unsigned char iprivkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
+ 0x77, 0x65, 0xc8, 0xd0, 0x47, 0x53, 0x1e, 0xab,
+ 0x30, 0x57, 0x01, 0x49, 0x51, 0x26, 0xbf, 0xa2,
+ 0x00, 0xa4, 0x67, 0x12, 0x7a, 0x70, 0x40, 0x29,
+ 0x32, 0x95, 0x0d, 0x37, 0x6a, 0x53, 0xd7, 0x9e
+//};
+//unsigned int iprivkey_dat_len = 48;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/pubkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/pubkey.inc
new file mode 100644
index 0000000000..592241af83
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grp_y/pubkey.inc
@@ -0,0 +1,59 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group public key
+ * Group : grpY
+ */
+//unsigned char pubkey_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
+ 0x8f, 0x23, 0xda, 0x77, 0xed, 0xda, 0x2f, 0x0b,
+ 0x5b, 0xe8, 0x99, 0x6b, 0xf4, 0x52, 0x09, 0x5b,
+ 0xf2, 0x00, 0x77, 0x4e, 0xea, 0x44, 0x58, 0x4e,
+ 0x1c, 0x5c, 0xd6, 0x02, 0x77, 0xea, 0x99, 0x2f,
+ 0x75, 0xef, 0x33, 0xd6, 0x83, 0xe0, 0xc4, 0xdb,
+ 0x57, 0x48, 0x69, 0x27, 0xad, 0x69, 0xe5, 0x05,
+ 0xef, 0xda, 0xaa, 0x0e, 0xef, 0x41, 0xc5, 0x09,
+ 0xcd, 0x3e, 0x27, 0xb9, 0xce, 0x80, 0x28, 0xc9,
+ 0x76, 0x9d, 0x10, 0x18, 0x26, 0xa3, 0x51, 0xe8,
+ 0x3e, 0x3c, 0xb6, 0x29, 0xaa, 0x57, 0x84, 0x68,
+ 0x2f, 0x75, 0xc8, 0x51, 0xd4, 0xab, 0xed, 0x76,
+ 0x87, 0xb8, 0xbf, 0xf2, 0x14, 0x2f, 0xd2, 0x1e,
+ 0x18, 0xc8, 0x6a, 0xe1, 0xf4, 0xaf, 0xec, 0x47,
+ 0xe7, 0x00, 0xea, 0x18, 0x8e, 0xcf, 0x05, 0xdb,
+ 0x46, 0x78, 0xf5, 0xd8, 0xe7, 0xa8, 0x08, 0x5c,
+ 0xa1, 0xcb, 0x12, 0x14, 0x73, 0x74, 0x75, 0x35,
+ 0x09, 0x3b, 0x39, 0x52, 0x02, 0xa1, 0xbf, 0xcf,
+ 0x0b, 0xb0, 0x77, 0xc6, 0x9d, 0x3e, 0x50, 0x67,
+ 0x7d, 0x36, 0x9a, 0xb6, 0x84, 0x62, 0xd4, 0x09,
+ 0x6c, 0xef, 0xd7, 0x11, 0xce, 0x64, 0xf4, 0xe2,
+ 0x79, 0x58, 0x3c, 0x7a, 0x96, 0x2a, 0x8f, 0xaa,
+ 0x0f, 0xe1, 0x1a, 0xbd, 0x3a, 0x50, 0x1c, 0x29,
+ 0x24, 0x0d, 0xe7, 0xfc, 0xb5, 0xf4, 0x02, 0xaf,
+ 0x5e, 0xb0, 0xda, 0x52, 0x23, 0x40, 0x33, 0x2c,
+ 0xcf, 0xf9, 0xda, 0xf7, 0x38, 0x9a, 0xd3, 0x0f,
+ 0x69, 0x38, 0xec, 0x77, 0xd0, 0xe0, 0x30, 0x8a,
+ 0x66, 0x03, 0x5c, 0xd0, 0x05, 0x03, 0x87, 0xe6,
+ 0x5d, 0xef, 0x86, 0xe7, 0xf6, 0x8b, 0x04, 0xf8,
+ 0x30, 0x28, 0x9d, 0x22, 0xe6, 0xee, 0x40, 0x48,
+ 0x46, 0x5a, 0x2b, 0xff, 0xf2, 0xd4, 0x70, 0xf8,
+ 0x7e, 0x91, 0xea, 0x51, 0xac, 0x0b, 0xbd, 0xfc,
+ 0xe1, 0x91, 0xe1, 0x37, 0xb8, 0x11, 0xce, 0x6e
+//};
+//unsigned int pubkey_dat_len = 272;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl.inc
new file mode 100644
index 0000000000..3968e0dbe7
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl.inc
@@ -0,0 +1,26 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group revocation list
+ * Group : grpX
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+//};
+//unsigned int grprl_dat_len = 8;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_first_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_first_entry.inc
new file mode 100644
index 0000000000..5cad583bbf
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_first_entry.inc
@@ -0,0 +1,31 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group revocation list grpX revoked first entry
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
+ 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x67, 0x56, 0x34, 0x21
+//};
+//unsigned int grprl_dat_len = 56;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_last_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_last_entry.inc
new file mode 100644
index 0000000000..0c9dcadb27
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_last_entry.inc
@@ -0,0 +1,31 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group revocation list grpX revoked last entry
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
+ 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x67, 0x56, 0x34, 0x21,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+//};
+//unsigned int grprl_dat_len = 56;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_middle_entry.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_middle_entry.inc
new file mode 100644
index 0000000000..258273ef43
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_revoked_grp_x_middle_entry.inc
@@ -0,0 +1,31 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group revocation list grpX revoked middle entry
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
+ 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x67, 0x56, 0x34, 0x21
+//};
+//unsigned int grprl_dat_len = 56;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_single_entry_revoked_grp_x.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_single_entry_revoked_grp_x.inc
new file mode 100644
index 0000000000..17573e48ec
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/grprl_single_entry_revoked_grp_x.inc
@@ -0,0 +1,27 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group revocation list single entry grpX revoked
+ */
+//unsigned char grprl_dat[] = {
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee
+//};
+//unsigned int grprl_dat_len = 24;
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/member0/mprecomp.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/member0/mprecomp.inc
new file mode 100644
index 0000000000..219579787f
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/member0/mprecomp.inc
@@ -0,0 +1,106 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 member precomp
+ * Group : GroupA
+ * Member : 0
+ * Issuer : Ikgf
+ */
+ 0xbc, 0x74, 0xd9, 0xd2, 0xcc, 0x56, 0x28, 0xfd, 0x3d, 0x0b, 0x2b, 0x86,
+ 0xf4, 0xc6, 0xb2, 0x25, 0x19, 0x6b, 0x5b, 0x42, 0x35, 0x6a, 0xd9, 0x9c,
+ 0xf9, 0xb4, 0x30, 0xcb, 0xff, 0x39, 0xbb, 0x92, 0x41, 0x71, 0xf4, 0x49,
+ 0xc3, 0xfd, 0x36, 0xa3, 0xe0, 0xdd, 0x83, 0xf1, 0x34, 0x53, 0x2e, 0x16,
+ 0x2f, 0x45, 0x06, 0x10, 0x3d, 0x9a, 0xfd, 0x22, 0xb8, 0xf1, 0xfd, 0x52,
+ 0x3a, 0x24, 0xc5, 0x9c, 0xdd, 0x54, 0x9c, 0xff, 0xb0, 0x4d, 0xb9, 0xe5,
+ 0x21, 0x62, 0x61, 0xaa, 0x76, 0xc3, 0xc1, 0x25, 0x47, 0xe4, 0x3b, 0x62,
+ 0xab, 0x5f, 0x2c, 0x56, 0xe1, 0x24, 0x9c, 0x21, 0xec, 0x6b, 0x1d, 0x80,
+ 0x1d, 0xca, 0xc5, 0x45, 0x34, 0xee, 0x4e, 0xc6, 0x20, 0x94, 0x14, 0x98,
+ 0x0e, 0xd6, 0x88, 0x1d, 0x69, 0xfd, 0x25, 0xd3, 0xe3, 0x08, 0x3f, 0x62,
+ 0x82, 0xa9, 0xf2, 0x13, 0xd6, 0x54, 0xda, 0x12, 0xec, 0x4e, 0xd2, 0x92,
+ 0xe1, 0x82, 0x3f, 0x54, 0xf8, 0xc7, 0x0e, 0x21, 0x90, 0x49, 0xa1, 0x73,
+ 0xa2, 0x03, 0xd0, 0xc7, 0x1c, 0xc2, 0x36, 0x1f, 0xb5, 0x8e, 0x22, 0xaf,
+ 0xb5, 0x96, 0xad, 0xba, 0xde, 0xe6, 0x45, 0xb9, 0xee, 0x39, 0x74, 0x53,
+ 0x62, 0x68, 0xa6, 0x37, 0x33, 0x65, 0x47, 0x3b, 0xf2, 0xa3, 0x35, 0xd0,
+ 0xe9, 0x50, 0x49, 0x68, 0x23, 0x9a, 0xa0, 0x33, 0x66, 0x2f, 0x84, 0x23,
+ 0x43, 0x95, 0x35, 0xea, 0x1d, 0xfe, 0x3a, 0xe4, 0x45, 0x6f, 0xad, 0x86,
+ 0x7a, 0x4b, 0xf8, 0xb7, 0x32, 0xaf, 0x79, 0x7c, 0x45, 0x8d, 0xd9, 0x36,
+ 0x0d, 0x66, 0xcb, 0x47, 0x07, 0xf4, 0x75, 0xae, 0x38, 0xe1, 0x32, 0x67,
+ 0x80, 0x73, 0x0b, 0x98, 0xb7, 0x8d, 0xa3, 0x03, 0x94, 0x59, 0x0c, 0x04,
+ 0xa8, 0x3e, 0xf8, 0x39, 0xc9, 0x25, 0x74, 0xb5, 0x9c, 0x62, 0x79, 0xb9,
+ 0xf0, 0x20, 0x0b, 0x41, 0xb1, 0x76, 0x2a, 0x93, 0x15, 0xfa, 0x7a, 0x55,
+ 0xe4, 0x50, 0xf3, 0xe1, 0x54, 0xf8, 0x9e, 0x42, 0x84, 0xaf, 0xb6, 0xc2,
+ 0x2e, 0x98, 0xd5, 0xfd, 0x31, 0xe4, 0x16, 0x2b, 0x4d, 0x32, 0x96, 0x04,
+ 0x4f, 0xca, 0x8b, 0x8d, 0x3c, 0x24, 0xb4, 0xc3, 0x86, 0x3b, 0x06, 0xc9,
+ 0x45, 0xc9, 0xb1, 0x90, 0xac, 0xc3, 0xd6, 0xec, 0x80, 0x5b, 0x84, 0xcb,
+ 0x5e, 0x7b, 0xc4, 0xcb, 0x63, 0x9e, 0xca, 0x09, 0x92, 0xca, 0x70, 0xfd,
+ 0x24, 0x2a, 0x81, 0x37, 0x5a, 0x85, 0x72, 0x4a, 0x46, 0x2d, 0x29, 0x38,
+ 0x8f, 0xc3, 0x59, 0xc7, 0xe9, 0x76, 0x24, 0xea, 0xd4, 0xef, 0x06, 0x12,
+ 0xf5, 0xab, 0xab, 0xa1, 0x59, 0x13, 0xc8, 0x1d, 0xdf, 0x0f, 0x41, 0xbe,
+ 0x98, 0x65, 0x00, 0x11, 0x41, 0x7c, 0x6e, 0x29, 0x83, 0x73, 0xfd, 0x81,
+ 0xff, 0xe8, 0xd8, 0x7f, 0xa1, 0x00, 0x62, 0x11, 0x14, 0x38, 0x06, 0x57,
+ 0x20, 0x81, 0xaa, 0x9e, 0xaf, 0xfe, 0xee, 0x68, 0xee, 0x30, 0x1a, 0x83,
+ 0xe7, 0x32, 0xc3, 0xfc, 0x69, 0xe5, 0x19, 0x29, 0x4e, 0xee, 0xb0, 0xf1,
+ 0x63, 0xaf, 0x41, 0x3d, 0x3b, 0xb9, 0xbb, 0x2e, 0xde, 0xd7, 0x0b, 0xbe,
+ 0x11, 0x8f, 0x4a, 0x94, 0x4c, 0x57, 0xf3, 0x64, 0x38, 0x5a, 0xc6, 0xb8,
+ 0x5d, 0xa1, 0x9d, 0xc8, 0xfa, 0x32, 0xe2, 0x08, 0xf4, 0x26, 0x3f, 0x75,
+ 0xb5, 0x35, 0x9a, 0xe9, 0xd6, 0x1d, 0x35, 0x41, 0x9b, 0x20, 0x2b, 0x54,
+ 0xb9, 0x66, 0x6c, 0xc6, 0xb7, 0x44, 0x82, 0x9b, 0x74, 0xe8, 0x09, 0x04,
+ 0xa4, 0xf2, 0x7a, 0x8f, 0xe8, 0x6f, 0x3c, 0xa0, 0x18, 0xab, 0x66, 0xf6,
+ 0x39, 0x34, 0x70, 0xf3, 0xa6, 0xd3, 0xc9, 0xe1, 0x97, 0xe2, 0xdc, 0x4d,
+ 0xca, 0x02, 0xb6, 0x73, 0x07, 0xf3, 0x8c, 0xd0, 0xab, 0xd9, 0x12, 0x45,
+ 0x70, 0x7c, 0x3a, 0x24, 0x64, 0xce, 0x9e, 0x38, 0x4d, 0x5d, 0xe1, 0x9d,
+ 0xf2, 0x4b, 0x58, 0xdc, 0x71, 0xb3, 0x61, 0x56, 0x14, 0x62, 0x2a, 0x1b,
+ 0x36, 0x5e, 0xc9, 0x15, 0xf3, 0x50, 0xe6, 0xc0, 0x93, 0x62, 0xd0, 0x69,
+ 0xab, 0xd4, 0xe5, 0x9b, 0xa6, 0xa7, 0xa3, 0x0c, 0x51, 0xad, 0xf7, 0x38,
+ 0x6f, 0x1d, 0xcf, 0x43, 0xda, 0x83, 0x95, 0xc6, 0xfb, 0xd8, 0x90, 0x5e,
+ 0x35, 0x30, 0x0b, 0x7b, 0x45, 0xd0, 0x12, 0x32, 0x95, 0xc3, 0x96, 0xdc,
+ 0x0a, 0x68, 0xcc, 0xcf, 0x19, 0x0b, 0x13, 0xc7, 0x6a, 0x7a, 0x53, 0x36,
+ 0x5b, 0x24, 0xc5, 0x84, 0x5c, 0xeb, 0x9e, 0xeb, 0xdc, 0x91, 0x17, 0xb3,
+ 0x29, 0xfd, 0xee, 0x55, 0xc9, 0x8c, 0xcd, 0xbe, 0x3a, 0x66, 0xf3, 0xba,
+ 0x79, 0xfe, 0xc7, 0xf8, 0x08, 0xeb, 0xd2, 0x3a, 0x17, 0x3c, 0x36, 0x29,
+ 0xc1, 0xde, 0xa9, 0xab, 0x80, 0xdb, 0x6c, 0xdd, 0xfb, 0xe5, 0xb1, 0x12,
+ 0x25, 0x2f, 0xa3, 0x3d, 0x0e, 0x72, 0xde, 0xaf, 0x86, 0x93, 0x35, 0x18,
+ 0x96, 0x19, 0x47, 0xfd, 0x8f, 0xae, 0x7b, 0xe7, 0xac, 0x6e, 0x53, 0x10,
+ 0x1e, 0x66, 0x54, 0xc0, 0x36, 0x0e, 0x73, 0x35, 0xb3, 0x20, 0xf9, 0xaa,
+ 0x25, 0x4a, 0x66, 0xaf, 0xc9, 0x2f, 0xd1, 0x19, 0x8b, 0x8f, 0x93, 0xbe,
+ 0x3a, 0x30, 0xa5, 0x24, 0xc2, 0xad, 0x30, 0xfc, 0x97, 0xfe, 0x6c, 0xe0,
+ 0x7f, 0x98, 0x71, 0x37, 0x33, 0x26, 0xc3, 0x75, 0xc8, 0x51, 0xe6, 0xf2,
+ 0x99, 0xf0, 0x0f, 0x7d, 0x5d, 0x12, 0x26, 0x9d, 0x96, 0xeb, 0xd5, 0x08,
+ 0x28, 0x34, 0x90, 0x1c, 0xdb, 0x98, 0xbd, 0x8a, 0xeb, 0x93, 0x0d, 0xd0,
+ 0x57, 0x3e, 0xb8, 0x65, 0xdd, 0xa6, 0xa9, 0x81, 0xd6, 0xca, 0x62, 0x4b,
+ 0x24, 0xed, 0xf4, 0x36, 0xf0, 0x83, 0xd6, 0x0e, 0x53, 0xf2, 0x50, 0x89,
+ 0x70, 0x23, 0x19, 0x7b, 0xd0, 0x7e, 0x67, 0xa3, 0x45, 0x72, 0x9d, 0x11,
+ 0xbe, 0xbb, 0xe1, 0x72, 0x51, 0xf6, 0x5f, 0x4e, 0x2c, 0xca, 0x61, 0x3d,
+ 0xaa, 0xfd, 0xb7, 0x61, 0xbc, 0x3a, 0xd2, 0x20, 0x18, 0xa2, 0xee, 0x04,
+ 0xe4, 0x6b, 0xf3, 0x84, 0x26, 0xc2, 0x43, 0xa4, 0xfe, 0x4e, 0x14, 0x5c,
+ 0xbe, 0xe7, 0x11, 0x4a, 0x61, 0x33, 0x7d, 0xeb, 0x71, 0x98, 0x7c, 0xf0,
+ 0x44, 0xe2, 0x41, 0x17, 0x39, 0xd0, 0x4e, 0xe2, 0x9c, 0xcc, 0x8d, 0x76,
+ 0x3c, 0xb8, 0x0f, 0x63, 0x4a, 0x56, 0x7c, 0xf8, 0xab, 0xbd, 0x87, 0xcc,
+ 0xa2, 0x29, 0xb9, 0x3c, 0xcc, 0x12, 0xd2, 0x9d, 0x6f, 0xbd, 0x28, 0xc3,
+ 0x0c, 0x2f, 0x83, 0x8c, 0xf3, 0xad, 0x3d, 0xc6, 0x92, 0xba, 0x0b, 0x28,
+ 0x47, 0x81, 0x78, 0xbe, 0x2b, 0xe0, 0x6a, 0x47, 0xba, 0xf3, 0xbe, 0x39,
+ 0x30, 0x49, 0x0b, 0x35, 0x34, 0x80, 0x70, 0xc2, 0x75, 0x54, 0x65, 0xd8,
+ 0xc8, 0x1c, 0x26, 0xb8, 0x97, 0x61, 0x57, 0xcf, 0x2d, 0xb8, 0xd1, 0xdd,
+ 0xb0, 0xf1, 0xa9, 0x0f, 0x3f, 0x7e, 0xfe, 0xd3, 0xee, 0xdc, 0x75, 0xbf,
+ 0xc2, 0xf1, 0x30, 0xd6, 0x60, 0x1b, 0xcd, 0x7b, 0x87, 0xde, 0x0b, 0x58,
+ 0x5c, 0xac, 0x84, 0xda, 0xef, 0x86, 0x86, 0x8d, 0x8e, 0xfd, 0x6f, 0x93,
+ 0x32, 0x8d, 0xac, 0x7b, 0x8f, 0x2a, 0x8a, 0x5f, 0xf1, 0xea, 0xbb, 0x8e,
+ 0x6d, 0xbf, 0xe0, 0x59, 0x90, 0xc2, 0xd3, 0x3d, 0x8a, 0x03, 0x64, 0x11,
+ 0xdd, 0xf1, 0xfc, 0x2d, 0x26, 0x8a, 0x6f, 0x39, 0x25, 0xa9, 0xaa, 0x61,
+ 0x45, 0x5b, 0x7b, 0x36, 0xfd, 0x82, 0xd2, 0x6a, 0x8c, 0x9a, 0xf1, 0xc2
\ No newline at end of file
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/member0/mprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/member0/mprivkey.inc
new file mode 100644
index 0000000000..2017fa0dd8
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/member0/mprivkey.inc
@@ -0,0 +1,36 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 member private-key
+ * Group : GroupA
+ * Member : 0
+ * Issuer : Ikgf
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xca, 0x24, 0x49, 0x67, 0x86, 0x98, 0xfe, 0x05,
+ 0xd2, 0x66, 0xc5, 0x7c, 0xd2, 0x40, 0xb6, 0xed, 0x4f, 0x76, 0xc0, 0xb8,
+ 0x08, 0x62, 0x9a, 0x56, 0x46, 0x76, 0x01, 0x40, 0xd8, 0xa3, 0xe1, 0xb8,
+ 0x2f, 0x83, 0x64, 0x88, 0x99, 0xca, 0xd3, 0x2b, 0xd9, 0x50, 0xfb, 0x74,
+ 0x8b, 0xa5, 0x32, 0xb8, 0xce, 0x31, 0xd7, 0x56, 0x4b, 0xdd, 0xdd, 0x1c,
+ 0x0e, 0x5e, 0xba, 0x34, 0x68, 0x66, 0xbc, 0xb6, 0x9c, 0x92, 0xf0, 0x2f,
+ 0xa2, 0x27, 0x56, 0xc1, 0xef, 0x3a, 0x21, 0x5e, 0x9a, 0x05, 0x13, 0x63,
+ 0x0e, 0x2f, 0x12, 0xac, 0x95, 0xb9, 0x26, 0x6d, 0x1d, 0xe2, 0xcf, 0x64,
+ 0x4a, 0x09, 0xdd, 0x4f, 0x15, 0x9d, 0x08, 0x6b, 0x93, 0xbf, 0x95, 0x89,
+ 0x11, 0xb8, 0x31, 0x11, 0xb1, 0x36, 0x76, 0x4d, 0x0a, 0xbe, 0x5a, 0x42,
+ 0xe7, 0x44, 0xbb, 0x17, 0x6d, 0x36, 0x7b, 0x80, 0x0b, 0x10, 0x1e, 0xc6
\ No newline at end of file
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/privrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/privrl.inc
new file mode 100644
index 0000000000..2b2edc3539
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/privrl.inc
@@ -0,0 +1,38 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 private-key based revocation list
+ * Group : GroupA
+ * Issuer : iKGF
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0x1d, 0x79, 0x15, 0xee, 0xc2, 0x0b, 0x17, 0xc4,
+ 0xd4, 0xcb, 0x43, 0x3c, 0x5c, 0xad, 0x68, 0x3a,
+ 0x03, 0x6d, 0xdf, 0xea, 0x78, 0x42, 0x9a, 0xc3,
+ 0xfc, 0xc9, 0x93, 0xdd, 0x71, 0x44, 0xba, 0xcb,
+ 0x36, 0xcd, 0x95, 0x0d, 0xa2, 0x77, 0x96, 0x89,
+ 0x91, 0xca, 0xf6, 0x02, 0xca, 0x20, 0xff, 0x73,
+ 0x37, 0x97, 0xb1, 0x46, 0x8c, 0xaf, 0x64, 0xb6,
+ 0x0c, 0x48, 0xa6, 0x3e, 0xbd, 0x92, 0x71, 0xf8,
+ 0x52, 0x21, 0x71, 0x2b, 0x5a, 0x9f, 0x9d, 0xc9,
+ 0x44, 0x41, 0x15, 0xa0, 0xd8, 0x39, 0xa9, 0xad,
+ 0x49, 0x64, 0x68, 0x38, 0xa8, 0xef, 0xa5, 0x95,
+ 0x14, 0x6a, 0xe2, 0x7d, 0xee, 0x96, 0xae, 0x9e
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/privrl_empty.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/privrl_empty.inc
new file mode 100644
index 0000000000..cf9237ef1e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/privrl_empty.inc
@@ -0,0 +1,27 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 private-key based revocation list
+ * Group : GroupA
+ * Issuer : iKGF
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00
+
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/pubkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/pubkey.inc
new file mode 100644
index 0000000000..00fabe210e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/pubkey.inc
@@ -0,0 +1,46 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group public-key
+ * Group : GroupA
+ * Issuer : Ikgf
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x45, 0xcb, 0x06, 0x04, 0xb3, 0xf7, 0x23, 0xb2,
+ 0xd1, 0xd1, 0x0d, 0x4f, 0x51, 0x7b, 0xbb, 0x8f, 0x71, 0x15, 0xd7, 0xf1,
+ 0xdc, 0x15, 0x37, 0xc8, 0xb8, 0x3d, 0x68, 0x0a, 0x18, 0xa5, 0x34, 0x14,
+ 0x0c, 0xdc, 0xd9, 0x15, 0x7e, 0xba, 0x56, 0xc5, 0xe5, 0x61, 0xfa, 0x6a,
+ 0x86, 0xa0, 0xac, 0x6a, 0x81, 0x36, 0x6d, 0x01, 0x5f, 0x86, 0xc0, 0x04,
+ 0x8b, 0x1e, 0xff, 0x49, 0xd9, 0x37, 0x96, 0x66, 0xf1, 0xc3, 0x16, 0xb5,
+ 0xc5, 0x1c, 0x67, 0xb6, 0xff, 0x28, 0x23, 0x79, 0x59, 0xea, 0x80, 0xe6,
+ 0x09, 0x07, 0xe7, 0xd3, 0x38, 0xec, 0xb9, 0x16, 0x83, 0x88, 0xda, 0x64,
+ 0xdd, 0xc4, 0x9d, 0x6a, 0x5c, 0xb2, 0x1c, 0x88, 0x97, 0xea, 0xaf, 0xa9,
+ 0xf3, 0x3e, 0x07, 0xea, 0xb6, 0x2a, 0xd5, 0x7a, 0xed, 0x32, 0xd9, 0x3d,
+ 0x90, 0xd7, 0xb9, 0x91, 0x08, 0x05, 0x9e, 0xe3, 0x22, 0x75, 0x06, 0x35,
+ 0xe5, 0xc4, 0x77, 0xad, 0x52, 0xb9, 0x7c, 0x04, 0x2d, 0x7e, 0x81, 0xf2,
+ 0x5d, 0x5d, 0x52, 0x7d, 0xd7, 0x1d, 0x29, 0xfb, 0x6a, 0xa7, 0xbc, 0xb5,
+ 0xa9, 0x1a, 0xa6, 0xfd, 0x20, 0xea, 0xf2, 0x98, 0xe2, 0x67, 0x33, 0x28,
+ 0x67, 0x5f, 0xbe, 0x23, 0xa0, 0x43, 0xe8, 0x71, 0xaa, 0xab, 0xf6, 0xf0,
+ 0x6a, 0x2b, 0x52, 0xa8, 0x61, 0x51, 0x22, 0x44, 0x00, 0x91, 0xd7, 0xf1,
+ 0x7e, 0x05, 0x48, 0xdc, 0x51, 0x0c, 0xef, 0xa0, 0xf3, 0x72, 0xcd, 0x59,
+ 0xd4, 0x7a, 0x2a, 0x60, 0xa3, 0x62, 0x54, 0xa8, 0xb6, 0x8f, 0xed, 0x90,
+ 0xdf, 0x3e, 0x94, 0xe8, 0xa4, 0x89, 0x32, 0xaa, 0x52, 0x5a, 0x97, 0xae,
+ 0x4c, 0x86, 0xf4, 0xba, 0xec, 0xc6, 0x36, 0x13, 0x87, 0x42, 0x5d, 0x16,
+ 0x49, 0x12, 0x66, 0xc5, 0xe0, 0xe4, 0x9b, 0xf9, 0x68, 0xaa, 0xa9, 0x95,
+ 0x81, 0x16, 0x5c, 0xd2, 0xca, 0xd4, 0x2e, 0x61
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_msg0_sha256_sigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_msg0_sha256_sigrl.inc
new file mode 100644
index 0000000000..0cc91af29a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_msg0_sha256_sigrl.inc
@@ -0,0 +1,98 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+ /*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: groupA
+ * Issuer : iKGF
+ * Signer: member0
+ * HashAlg: Sha256
+ * Message: "msg0"
+ * Basename: None (random base)
+ * SigRl: SigRl of group
+ */
+ 0x9e, 0x45, 0x73, 0x32, 0x27, 0x75, 0xb0, 0x65, 0x22, 0xd4, 0x90, 0xbf,
+ 0x5b, 0xcd, 0x4d, 0xfd, 0xd1, 0x6e, 0xe7, 0xa0, 0x18, 0xe4, 0x3b, 0xdb,
+ 0x2e, 0xf2, 0xb7, 0x58, 0xfb, 0xa6, 0xb5, 0xc3, 0x22, 0x3c, 0x62, 0x88,
+ 0x26, 0xc4, 0x20, 0x5f, 0xf2, 0x76, 0x8b, 0xc5, 0x2e, 0x09, 0x4f, 0x4d,
+ 0xee, 0xd9, 0xc6, 0x87, 0xe8, 0xba, 0xba, 0x51, 0x00, 0x98, 0x3c, 0x37,
+ 0x26, 0x13, 0x1c, 0x8e, 0x1a, 0x72, 0x0b, 0xd3, 0x26, 0xce, 0xd2, 0x78,
+ 0x3c, 0xd8, 0x70, 0x4a, 0xa6, 0xd5, 0x44, 0xb9, 0xa5, 0xac, 0x0f, 0x5a,
+ 0x7a, 0x0e, 0xdf, 0x71, 0xc0, 0xa8, 0xdd, 0x84, 0xf8, 0xc3, 0x4e, 0xfe,
+ 0x53, 0xdb, 0x54, 0x97, 0x0a, 0x23, 0xbe, 0x80, 0x7f, 0xb8, 0x91, 0x92,
+ 0x83, 0x30, 0x10, 0x65, 0x62, 0x1c, 0xfa, 0x4b, 0xe5, 0x5c, 0x07, 0xde,
+ 0x0b, 0x41, 0x3e, 0xf3, 0xcf, 0x8f, 0x24, 0xc9, 0xb6, 0xe5, 0xfb, 0xee,
+ 0xa6, 0x0e, 0x19, 0x0f, 0xa7, 0x16, 0xcf, 0x7e, 0xac, 0xb6, 0xa2, 0xb7,
+ 0x57, 0x30, 0x9f, 0x13, 0x84, 0x71, 0x6a, 0x9c, 0x0e, 0x3d, 0x6f, 0x0c,
+ 0x37, 0xb6, 0xde, 0xdb, 0x15, 0x95, 0x30, 0xe7, 0xba, 0x1f, 0x7e, 0xc7,
+ 0x1e, 0x3f, 0x02, 0x66, 0x0f, 0xb8, 0x50, 0xd7, 0xcf, 0xde, 0xe1, 0x28,
+ 0xd1, 0x61, 0x95, 0x4d, 0xfd, 0x6c, 0xd2, 0xb0, 0x39, 0xca, 0xf9, 0xf1,
+ 0xce, 0x42, 0x8d, 0xe1, 0x67, 0x40, 0x84, 0xe8, 0xef, 0x9c, 0x9b, 0x27,
+ 0x9f, 0x32, 0x7f, 0x72, 0xb8, 0x15, 0x99, 0xb9, 0xad, 0x02, 0x5b, 0x66,
+ 0xa7, 0x5f, 0xb6, 0x4d, 0xcc, 0x23, 0x2e, 0xc6, 0xa6, 0x24, 0x9d, 0xf2,
+ 0x31, 0xfd, 0x5b, 0x7a, 0x9e, 0x62, 0xb6, 0x4e, 0x9a, 0x26, 0xff, 0x92,
+ 0xd6, 0x2d, 0x59, 0xd4, 0x65, 0xdc, 0x67, 0x58, 0x2e, 0xf4, 0x8b, 0x7e,
+ 0xd7, 0x5d, 0xc2, 0x8b, 0x24, 0x77, 0xa4, 0x51, 0x67, 0xcb, 0x14, 0x90,
+ 0x8f, 0xf1, 0xb8, 0xee, 0x85, 0xa5, 0xd8, 0x66, 0x7b, 0xa5, 0x5e, 0xf6,
+ 0xfa, 0xe2, 0x50, 0xbd, 0x9b, 0xf0, 0xfb, 0xc7, 0x4a, 0xea, 0x95, 0xcf,
+ 0x27, 0x02, 0x37, 0xa9, 0xec, 0x43, 0xe5, 0xa1, 0xa0, 0x53, 0xf7, 0x2c,
+ 0x4e, 0xd0, 0x84, 0x7a, 0x56, 0xe7, 0x55, 0x80, 0x91, 0x11, 0x53, 0xb7,
+ 0xbc, 0xc6, 0x73, 0x1d, 0x7d, 0x24, 0x06, 0x52, 0x5e, 0x86, 0xd4, 0x43,
+ 0xde, 0xde, 0xe9, 0x95, 0x9f, 0x86, 0x03, 0xcc, 0x2e, 0x0d, 0xec, 0xa0,
+ 0x1a, 0x5c, 0xe5, 0x93, 0x89, 0xfb, 0x7a, 0x9e, 0x79, 0x4f, 0x85, 0x8e,
+ 0xe8, 0x91, 0x18, 0x4f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0xcf, 0x8a, 0x04, 0x78, 0x6d, 0xcc, 0x0b, 0xac, 0x42, 0x2e, 0xe3, 0x46,
+ 0xeb, 0x20, 0xcb, 0x19, 0x64, 0x23, 0x2d, 0xd2, 0xf6, 0xef, 0xa0, 0xf0,
+ 0xd1, 0xf2, 0x84, 0x53, 0xb3, 0x91, 0xec, 0x3c, 0xa0, 0x1c, 0xb8, 0x66,
+ 0xb3, 0x6e, 0xb1, 0x2b, 0x72, 0x65, 0x3e, 0x30, 0xfe, 0xef, 0x58, 0xd0,
+ 0x3b, 0x31, 0x3b, 0xb9, 0x5a, 0x61, 0x26, 0x77, 0xea, 0x87, 0xf3, 0x09,
+ 0x47, 0xc2, 0x8d, 0x96, 0xb9, 0x05, 0x40, 0xf3, 0x48, 0xe8, 0x1b, 0x71,
+ 0x39, 0x2f, 0xd3, 0x6f, 0xad, 0x1b, 0x7e, 0x33, 0xd2, 0x8f, 0x5b, 0xf4,
+ 0x5a, 0xdc, 0x66, 0xcb, 0xd5, 0xcf, 0xc9, 0x91, 0xb6, 0x7a, 0xd8, 0xe4,
+ 0x81, 0x86, 0xb6, 0x88, 0xc4, 0x59, 0x8e, 0x03, 0x09, 0x8e, 0x29, 0xba,
+ 0x16, 0x23, 0x84, 0x5f, 0x30, 0x93, 0x13, 0xb4, 0xe9, 0xdf, 0x28, 0x49,
+ 0xa8, 0x4a, 0xce, 0x69, 0xd1, 0xc6, 0x25, 0x26, 0xf2, 0x5c, 0x4d, 0x0b,
+ 0xa0, 0x2b, 0xbe, 0xec, 0xb2, 0x09, 0x30, 0x8b, 0xd8, 0xb4, 0x09, 0x68,
+ 0x01, 0x82, 0x00, 0x9d, 0x65, 0x54, 0x19, 0xf0, 0x4f, 0xd1, 0x4d, 0xe9,
+ 0x60, 0xcf, 0x8c, 0xab, 0xd3, 0xb6, 0x06, 0xa4, 0x78, 0xea, 0xf1, 0xd0,
+ 0xba, 0x9f, 0x53, 0x89, 0x9b, 0xdf, 0xc9, 0xe4, 0xf5, 0x7b, 0x98, 0x5f,
+ 0x41, 0x59, 0x0c, 0x78, 0x71, 0x6b, 0xf9, 0xa8, 0xf1, 0x82, 0x1b, 0xf6,
+ 0xb1, 0x92, 0xa8, 0xd9, 0xbf, 0x65, 0xe7, 0xf0, 0x3a, 0x05, 0xe1, 0xba,
+ 0x03, 0xb6, 0xc6, 0x52, 0x0f, 0xb2, 0x6c, 0x5d, 0x70, 0x01, 0x1b, 0x30,
+ 0x3e, 0x65, 0x28, 0xbd, 0x90, 0xa5, 0x2d, 0x6c, 0xdf, 0xac, 0xe7, 0xa0,
+ 0xe2, 0x3a, 0xe6, 0x3a, 0xe9, 0xe6, 0x21, 0x5f, 0x27, 0xe4, 0x53, 0x4b,
+ 0xa2, 0x88, 0x7b, 0x66, 0x42, 0x77, 0x5b, 0x25, 0xe0, 0x76, 0x27, 0xbd,
+ 0x5b, 0x13, 0x7b, 0x7e, 0x81, 0x92, 0x74, 0xcf, 0xcd, 0x4a, 0xf6, 0x6d,
+ 0x61, 0xcd, 0x99, 0x4c, 0x54, 0x91, 0x48, 0x6f, 0xb6, 0xf3, 0xb7, 0xde,
+ 0xf3, 0x75, 0xe9, 0xd6, 0xbb, 0x43, 0x0c, 0xaf, 0x31, 0x76, 0x7f, 0x3c,
+ 0x87, 0x6e, 0xf8, 0xbe, 0x04, 0x99, 0xf5, 0x00, 0x15, 0x76, 0xc2, 0x0e,
+ 0x65, 0xfd, 0xe5, 0x26, 0x2d, 0x41, 0x36, 0xca, 0x2d, 0x17, 0xc0, 0x27,
+ 0xdf, 0xdd, 0xcc, 0xaa, 0x04, 0x96, 0x62, 0x50, 0x43, 0xce, 0x49, 0x86,
+ 0xb5, 0xf7, 0xd9, 0x11, 0xaf, 0x2c, 0xe5, 0x7c, 0xc8, 0x01, 0x6b, 0xb9,
+ 0xfe, 0x0c, 0x19, 0x47, 0x3f, 0xac, 0x56, 0x69, 0xb0, 0xb8, 0xd5, 0x5f,
+ 0x6b, 0xd8, 0xc7, 0x85, 0xd9, 0xe1, 0xc2, 0x85, 0xf8, 0x90, 0xd6, 0xa7,
+ 0xc9, 0x18, 0xe3, 0x48, 0x8b, 0xc8, 0x61, 0xb5, 0x60, 0x0c, 0x6b, 0x94,
+ 0xce, 0x0b, 0x00, 0x5e, 0xaf, 0x01, 0xde, 0xfd, 0x68, 0x25, 0x01, 0xef,
+ 0x4f, 0xa5, 0xe4, 0xeb, 0x96, 0xba, 0x58, 0x50, 0x0b, 0xb1, 0xd1, 0xfa,
+ 0x2e, 0x3d, 0xc3, 0x5a, 0xc7, 0x68, 0x73, 0x78, 0x36, 0x9b, 0x0b, 0x86,
+ 0xcf, 0x0b, 0x34, 0x19, 0x35, 0x53, 0x23, 0x12, 0xd7, 0x21, 0xaa, 0xe3,
+ 0xc0, 0x0b, 0xec, 0xe1, 0xbc, 0x26, 0x0d, 0x70, 0xf6, 0xd0, 0x68, 0xf2,
+ 0x94, 0x79, 0x37, 0x0a, 0x2e, 0x98, 0xb3, 0x09, 0x97, 0x0f, 0xa3, 0x8e,
+ 0x40, 0xeb, 0x61, 0xa4, 0x06, 0x19, 0x7f, 0x0a, 0x04, 0x9a, 0x29, 0x9f,
+ 0xfa, 0xe4, 0x2c, 0x0b, 0xc6, 0xc0, 0xfa, 0x1d, 0xa0, 0x24, 0x7c, 0x58,
+ 0x8e, 0xce, 0x08, 0x82, 0x14, 0x4c, 0xf0, 0x78, 0x0d, 0x31, 0xdc, 0x97
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0.inc
new file mode 100644
index 0000000000..0feea00c7f
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0.inc
@@ -0,0 +1,58 @@
+ /*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+ /*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : groupA
+ * Issuer : iKGF
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : SigRl of group
+ */
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26, 0x5f, 0x20, 0xbd, 0x9e,
+ 0x49, 0x11, 0x31, 0xe0, 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd, 0x64, 0x60, 0xa4, 0xf8,
+ 0x17, 0x81, 0xc3, 0x0a, 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99, 0x72, 0xdc, 0xe6, 0x78,
+ 0xe3, 0x70, 0xa8, 0x28, 0x1f, 0x63, 0x25, 0xf1, 0xb0, 0x2f, 0x03, 0x92,
+ 0xc7, 0x15, 0x23, 0x27, 0xd7, 0xb3, 0x16, 0x3f, 0x91, 0x29, 0xa1, 0x72,
+ 0x1d, 0xb7, 0x74, 0x34, 0xc2, 0xe4, 0x8d, 0x71, 0x4f, 0x43, 0xcd, 0x48,
+ 0x73, 0x72, 0xaa, 0x7d, 0x58, 0x7a, 0x91, 0x17, 0x42, 0x56, 0x5c, 0xe1,
+ 0x50, 0x6b, 0x13, 0x39, 0x7a, 0x54, 0x7b, 0x0c, 0xa4, 0xe4, 0xaa, 0xc0,
+ 0x98, 0x20, 0xb8, 0x29, 0xb3, 0x2f, 0x9b, 0x40, 0xff, 0x48, 0x6b, 0xa5,
+ 0x8e, 0xdb, 0xe4, 0x31, 0xc8, 0xd2, 0xe7, 0x2a, 0x95, 0xdf, 0x72, 0x86,
+ 0x79, 0x80, 0x91, 0x1b, 0x73, 0x26, 0x81, 0x3f, 0x06, 0x28, 0x92, 0x46,
+ 0x4c, 0xa1, 0x41, 0x38, 0xc5, 0x12, 0xe7, 0x51, 0x42, 0x49, 0xe8, 0x41,
+ 0x28, 0xb4, 0xd1, 0x42, 0xf4, 0xc4, 0x38, 0x13, 0x64, 0x58, 0x13, 0x05,
+ 0x65, 0xdd, 0x85, 0x76, 0x5a, 0x25, 0xe9, 0x46, 0xfc, 0x19, 0x64, 0x78,
+ 0xc2, 0xe6, 0x57, 0xba, 0x6b, 0x77, 0xf6, 0x64, 0xea, 0x27, 0x27, 0x9c,
+ 0x8c, 0x05, 0xc2, 0xb9, 0x23, 0x83, 0xd4, 0xa6, 0x3f, 0x3e, 0x57, 0x43,
+ 0x8a, 0xa2, 0x2f, 0x9b, 0x2c, 0x82, 0x4c, 0x9c, 0xd0, 0x8a, 0xfa, 0x4b,
+ 0xf3, 0x49, 0x5e, 0x84, 0x53, 0x69, 0x92, 0xbc, 0xb1, 0xfd, 0xd2, 0x88,
+ 0x46, 0x71, 0x16, 0x71, 0xe0, 0x97, 0x81, 0x36, 0x70, 0xc5, 0x0f, 0xd6,
+ 0x00, 0x64, 0x53, 0x81, 0xe7, 0x56, 0xc4, 0x56, 0xf7, 0xeb, 0x84, 0x72,
+ 0xb0, 0xd8, 0x52, 0x61, 0x9c, 0xfb, 0xc9, 0x4f, 0x90, 0x94, 0xf8, 0x6a,
+ 0x90, 0xf4, 0x0a, 0xaa, 0x54, 0xf5, 0xb4, 0xd6, 0xde, 0xfb, 0xa7, 0x5c,
+ 0xf7, 0xe6, 0xb7, 0x55, 0xa1, 0x07, 0x19, 0x3c, 0x32, 0xfb, 0x09, 0xa0,
+ 0x54, 0x20, 0xba, 0x73, 0x2a, 0xed, 0xea, 0x91, 0xc6, 0x62, 0x64, 0x48,
+ 0x6c, 0x91, 0x4b, 0x0e, 0xd1, 0x1e, 0x20, 0x4c, 0x4b, 0x13, 0x9f, 0xe1,
+ 0x9f, 0x0a, 0x84, 0x41, 0x4b, 0x29, 0xb8, 0x90, 0x46, 0x09, 0x00, 0xde,
+ 0x48, 0xd2, 0xb9, 0x8a, 0x6f, 0x61, 0xd3, 0x1e, 0xc4, 0x7b, 0x59, 0x16,
+ 0xa6, 0xc4, 0x4a, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_empty_sigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_empty_sigrl.inc
new file mode 100644
index 0000000000..e48b648d59
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_empty_sigrl.inc
@@ -0,0 +1,58 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+ /*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: groupA
+ * Issuer : iKGF
+ * Signer: member0
+ * HashAlg: Sha256
+ * Message: "msg0"
+ * Basename: "bsn0"
+ * SigRl: Empty SigRl of group
+ */
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26, 0x5f, 0x20, 0xbd, 0x9e,
+ 0x49, 0x11, 0x31, 0xe0, 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd, 0x64, 0x60, 0xa4, 0xf8,
+ 0x17, 0x81, 0xc3, 0x0a, 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99, 0x72, 0xdc, 0xe6, 0x78,
+ 0xe3, 0x70, 0xa8, 0x28, 0x1f, 0x63, 0x25, 0xf1, 0xb0, 0x2f, 0x03, 0x92,
+ 0xc7, 0x15, 0x23, 0x27, 0xd7, 0xb3, 0x16, 0x3f, 0x91, 0x29, 0xa1, 0x72,
+ 0x1d, 0xb7, 0x74, 0x34, 0xc2, 0xe4, 0x8d, 0x71, 0x4f, 0x43, 0xcd, 0x48,
+ 0x73, 0x72, 0xaa, 0x7d, 0x58, 0x7a, 0x91, 0x17, 0x42, 0x56, 0x5c, 0xe1,
+ 0x50, 0x6b, 0x13, 0x39, 0x7a, 0x54, 0x7b, 0x0c, 0xa4, 0xe4, 0xaa, 0xc0,
+ 0x98, 0x20, 0xb8, 0x29, 0xb3, 0x2f, 0x9b, 0x40, 0x95, 0x66, 0x30, 0x8d,
+ 0xd8, 0x4c, 0xfc, 0xd5, 0xb4, 0x51, 0xcf, 0x6f, 0xd1, 0x25, 0xf0, 0xe4,
+ 0x2f, 0xe1, 0x2f, 0x85, 0x7d, 0x84, 0x10, 0x35, 0xe0, 0x29, 0xa9, 0x0f,
+ 0xc2, 0x92, 0x93, 0x40, 0x67, 0xc1, 0x34, 0x23, 0xb8, 0xe0, 0xf6, 0x5e,
+ 0x68, 0xde, 0xe7, 0x50, 0xed, 0x2d, 0xfc, 0xe1, 0x45, 0x27, 0x19, 0x66,
+ 0xf3, 0xe7, 0xb9, 0x2e, 0x3d, 0xc7, 0xfa, 0xa9, 0xd9, 0x7c, 0x51, 0xc0,
+ 0x80, 0x9e, 0x3d, 0x64, 0x73, 0x37, 0xa0, 0x14, 0x3e, 0xa6, 0x8c, 0xfa,
+ 0xec, 0x11, 0x64, 0x7e, 0x4f, 0xcf, 0x04, 0x5d, 0x5e, 0x30, 0xaa, 0x23,
+ 0xd6, 0xcf, 0x5e, 0xc5, 0x78, 0x26, 0x28, 0x24, 0x21, 0xcf, 0xdb, 0x6c,
+ 0x4a, 0x58, 0x82, 0x44, 0x6e, 0xda, 0xed, 0x24, 0xe3, 0x2a, 0x80, 0xa7,
+ 0x28, 0x69, 0x93, 0x3b, 0x71, 0xe1, 0x8c, 0x77, 0x3c, 0x90, 0x5b, 0x96,
+ 0x17, 0x95, 0x3e, 0x5f, 0xf0, 0xda, 0xab, 0x1c, 0xc0, 0x04, 0x6f, 0x29,
+ 0x13, 0xe7, 0x89, 0x51, 0x20, 0xc8, 0xeb, 0x90, 0xee, 0x8f, 0x84, 0x1e,
+ 0xd7, 0x9c, 0x1e, 0x15, 0x3d, 0x50, 0x11, 0x91, 0x29, 0x58, 0xde, 0xa6,
+ 0x6a, 0x35, 0x08, 0xc1, 0x17, 0x85, 0x67, 0xa8, 0xe2, 0x0a, 0x13, 0xb2,
+ 0x8e, 0x64, 0xd6, 0xb6, 0xdb, 0x5d, 0xfe, 0xcd, 0x09, 0x37, 0x68, 0xea,
+ 0x4c, 0x9e, 0x16, 0x29, 0x80, 0x9d, 0x32, 0x5a, 0xd3, 0x7a, 0x26, 0xf2,
+ 0x5e, 0x49, 0x64, 0xb9, 0xd2, 0x71, 0x1f, 0x68, 0xab, 0xdf, 0x62, 0xa7,
+ 0x3c, 0xf7, 0xdd, 0x54, 0x8f, 0xa7, 0x14, 0xa5, 0x99, 0xce, 0xc8, 0x93,
+ 0xa2, 0xf9, 0xd8, 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_nosigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_nosigrl.inc
new file mode 100644
index 0000000000..c0c37bc251
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_nosigrl.inc
@@ -0,0 +1,58 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+ /*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: groupA
+ * Issuer : iKGF
+ * Signer: member0
+ * HashAlg: Sha256
+ * Message: "msg0"
+ * Basename: "bsn0"
+ * SigRl: no SigRl
+ */
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26, 0x5f, 0x20, 0xbd, 0x9e,
+ 0x49, 0x11, 0x31, 0xe0, 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd, 0x64, 0x60, 0xa4, 0xf8,
+ 0x17, 0x81, 0xc3, 0x0a, 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99, 0x72, 0xdc, 0xe6, 0x78,
+ 0xe3, 0x70, 0xa8, 0x28, 0x1f, 0x63, 0x25, 0xf1, 0xb0, 0x2f, 0x03, 0x92,
+ 0xc7, 0x15, 0x23, 0x27, 0xd7, 0xb3, 0x16, 0x3f, 0x91, 0x29, 0xa1, 0x72,
+ 0x1d, 0xb7, 0x74, 0x34, 0xc2, 0xe4, 0x8d, 0x71, 0x4f, 0x43, 0xcd, 0x48,
+ 0x73, 0x72, 0xaa, 0x7d, 0x58, 0x7a, 0x91, 0x17, 0x42, 0x56, 0x5c, 0xe1,
+ 0x50, 0x6b, 0x13, 0x39, 0x7a, 0x54, 0x7b, 0x0c, 0xa4, 0xe4, 0xaa, 0xc0,
+ 0x98, 0x20, 0xb8, 0x29, 0xb3, 0x2f, 0x9b, 0x40, 0xc8, 0x62, 0x1b, 0x96,
+ 0xe6, 0xfb, 0x4f, 0x62, 0xcb, 0xbd, 0x35, 0xae, 0xa6, 0x2f, 0x5f, 0x8c,
+ 0x3a, 0x49, 0x52, 0x6c, 0x35, 0xfa, 0x00, 0xf8, 0x7d, 0x30, 0xbb, 0x9a,
+ 0x62, 0x7e, 0xfa, 0x0a, 0xcf, 0x57, 0xce, 0x2a, 0x17, 0x41, 0x10, 0x89,
+ 0x89, 0x8f, 0x65, 0x31, 0x69, 0xaf, 0x0b, 0x96, 0xd2, 0x19, 0x78, 0x5f,
+ 0x7a, 0x32, 0x0c, 0x13, 0x58, 0xde, 0x00, 0x32, 0x0a, 0xd6, 0xc5, 0x22,
+ 0x14, 0xbf, 0x63, 0xa0, 0x21, 0x94, 0x65, 0x04, 0x4e, 0x7e, 0x75, 0xdd,
+ 0xd0, 0x9f, 0xeb, 0x01, 0xe6, 0xdc, 0x1f, 0x88, 0x34, 0xc9, 0xc1, 0xef,
+ 0xea, 0xc9, 0xe1, 0x55, 0x89, 0x8d, 0x20, 0xc2, 0x46, 0xc9, 0x67, 0xd8,
+ 0x97, 0x2e, 0x84, 0x63, 0x2e, 0x38, 0x76, 0xaa, 0xcf, 0x02, 0xcb, 0x17,
+ 0xbc, 0xfa, 0xf8, 0x80, 0xb1, 0x16, 0x1f, 0x05, 0x1c, 0xa7, 0x92, 0x6b,
+ 0xe9, 0x1a, 0xf0, 0x7e, 0x33, 0x24, 0x22, 0xde, 0x8c, 0xb0, 0xa6, 0xb1,
+ 0x74, 0x65, 0x83, 0x44, 0x55, 0xe0, 0xc7, 0xa5, 0x1a, 0x76, 0xba, 0x04,
+ 0x66, 0xca, 0x12, 0xf5, 0x9d, 0x52, 0x8a, 0xeb, 0x52, 0xaf, 0xed, 0xeb,
+ 0x28, 0xbd, 0x27, 0xd2, 0x72, 0xa4, 0xe5, 0x3f, 0x47, 0x82, 0x04, 0x91,
+ 0x10, 0xfc, 0xc2, 0xfc, 0x07, 0x56, 0x77, 0x99, 0x4e, 0xf5, 0xb4, 0xc6,
+ 0x5a, 0x0c, 0x86, 0xd4, 0x4c, 0xc3, 0xd2, 0x2f, 0x6d, 0x30, 0x3e, 0xff,
+ 0xd7, 0xfe, 0x90, 0x8a, 0x12, 0xb9, 0x77, 0x29, 0x16, 0x39, 0xe1, 0xe4,
+ 0x9b, 0xeb, 0xcc, 0x1c, 0xac, 0x8e, 0x64, 0x59, 0xfb, 0x1f, 0xd6, 0x5c,
+ 0xde, 0x2b, 0xd9, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_revkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_revkey.inc
new file mode 100644
index 0000000000..c3f1160bcb
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_bsn0_msg0_revkey.inc
@@ -0,0 +1,61 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+ /*!
+ * \file
+ * \brief Test data for revoked privrl.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : groupA
+ * Issuer : iKGF
+ * Signer : privrevokedmember0
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : SigRl of group
+ */
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26, 0x5f, 0x20, 0xbd, 0x9e,
+ 0x49, 0x11, 0x31, 0xe0, 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd, 0x64, 0x60, 0xa4, 0xf8,
+ 0x17, 0x81, 0xc3, 0x0a, 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99, 0x72, 0xdc, 0xe6, 0x78,
+ 0xe3, 0x70, 0xa8, 0x28, 0xc8, 0x0b, 0x3e, 0xdf, 0xfc, 0xde, 0x52, 0xee,
+ 0xf7, 0xe7, 0xe7, 0x01, 0x85, 0xda, 0xef, 0x3f, 0xdb, 0x54, 0x46, 0x8f,
+ 0xdf, 0x78, 0x57, 0x38, 0x5a, 0x7c, 0x96, 0xcd, 0x44, 0x04, 0x95, 0x97,
+ 0xc8, 0x6c, 0xc7, 0x58, 0x5f, 0xbb, 0x9a, 0xcf, 0xb1, 0x78, 0xae, 0xef,
+ 0x65, 0xd6, 0xe0, 0xdb, 0x4f, 0xd5, 0x66, 0x93, 0x7c, 0xe6, 0x02, 0x2a,
+ 0x28, 0x45, 0x6f, 0x40, 0x8f, 0xe2, 0x5b, 0x29, 0x8b, 0x54, 0x37, 0xe9,
+ 0xee, 0xc8, 0x3e, 0x57, 0x3f, 0xd8, 0x80, 0xb2, 0x95, 0x97, 0xa2, 0x13,
+ 0x21, 0xf4, 0x5c, 0xbd, 0x44, 0xd3, 0x3e, 0x43, 0xb9, 0x23, 0xe9, 0xdd,
+ 0xd5, 0x9b, 0x88, 0xd3, 0xda, 0x1e, 0x17, 0x00, 0x1b, 0x00, 0x6e, 0x52,
+ 0xde, 0xb2, 0xa5, 0xbd, 0x9b, 0x32, 0xee, 0x9b, 0x9e, 0x75, 0x14, 0xe8,
+ 0x0e, 0xcb, 0xfc, 0x38, 0x44, 0x99, 0x08, 0x66, 0xc6, 0x66, 0xe0, 0x4f,
+ 0xf2, 0xac, 0x26, 0x16, 0x6f, 0x4a, 0xd9, 0x49, 0xad, 0x1e, 0x59, 0x6c,
+ 0xd3, 0x50, 0x3c, 0xb4, 0x55, 0xe4, 0xa3, 0x5f, 0xfb, 0x5b, 0xc5, 0xcd,
+ 0x7f, 0xc1, 0x2d, 0x17, 0xad, 0xde, 0x6e, 0x76, 0x3a, 0x87, 0x40, 0xc4,
+ 0xb9, 0xd9, 0xef, 0x13, 0x2f, 0x70, 0x77, 0x0d, 0xff, 0xf0, 0x1a, 0x08,
+ 0x36, 0xd3, 0xb9, 0xec, 0x13, 0x93, 0x96, 0x7a, 0x8f, 0x3a, 0x07, 0xe2,
+ 0xaa, 0x51, 0x89, 0x75, 0xa9, 0x6a, 0xe0, 0xef, 0x35, 0xf7, 0x59, 0xa4,
+ 0x08, 0xf0, 0xf8, 0x0b, 0x83, 0xda, 0xfd, 0x15, 0xb7, 0x9b, 0xb6, 0x70,
+ 0x61, 0xe9, 0xd1, 0x67, 0xae, 0x33, 0x65, 0x92, 0x3a, 0x1e, 0x6a, 0x9f,
+ 0x76, 0xa4, 0x7a, 0xf2, 0xe9, 0xd9, 0x79, 0x19, 0x88, 0xb4, 0x98, 0x20,
+ 0xbb, 0x75, 0x02, 0x3c, 0xc7, 0x28, 0x7b, 0x9d, 0xde, 0xf1, 0xac, 0x04,
+ 0xef, 0x64, 0xe4, 0xf9, 0xc0, 0x6d, 0x9e, 0xbc, 0x2e, 0x5c, 0x0b, 0x2a,
+ 0x80, 0x03, 0xb7, 0xdf, 0x22, 0xcf, 0xe0, 0x7d, 0x7f, 0xc9, 0x08, 0x61,
+ 0x87, 0xea, 0x28, 0xf4, 0xec, 0xd2, 0x07, 0x9b, 0x47, 0x39, 0x34, 0x0e,
+ 0xda, 0x29, 0x8a, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+
+
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_rndbase_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_rndbase_msg0.inc
new file mode 100644
index 0000000000..d8a19f2438
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sha256_rndbase_msg0.inc
@@ -0,0 +1,98 @@
+ /*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : groupA
+ * Signer : member0
+ * Issuer : iKGF
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: None (random base)
+ * SigRl : SigRl of group
+ */
+ 0xa9, 0x4b, 0x40, 0x3c, 0xdb, 0x6b, 0x14, 0xec, 0x93, 0x51, 0x6e, 0x2a,
+ 0x44, 0x81, 0xa5, 0x92, 0x96, 0x03, 0x2c, 0x77, 0x20, 0x41, 0xad, 0x10,
+ 0xce, 0xe1, 0xe9, 0xab, 0xcb, 0x3f, 0x6b, 0xbe, 0x65, 0xa1, 0xe6, 0xa9,
+ 0x27, 0xbb, 0x2d, 0x44, 0x63, 0xf2, 0xf9, 0x81, 0xf3, 0x19, 0x57, 0x4d,
+ 0xb8, 0xd0, 0x47, 0xd2, 0xaf, 0x4c, 0xa9, 0x64, 0xfd, 0xfc, 0xc4, 0x48,
+ 0x13, 0x61, 0xd2, 0xfe, 0x60, 0x50, 0xdd, 0xe4, 0x96, 0xfc, 0x39, 0x57,
+ 0x5f, 0xbd, 0xa5, 0x18, 0x21, 0x5a, 0x12, 0x42, 0x03, 0xdd, 0xb3, 0xb3,
+ 0xc5, 0xc4, 0x1b, 0x9a, 0xb8, 0x31, 0x4f, 0xd2, 0x3d, 0x71, 0x6f, 0x46,
+ 0x8d, 0x2a, 0x85, 0x12, 0x0d, 0x88, 0xeb, 0xee, 0x27, 0xa6, 0xd5, 0x75,
+ 0x82, 0x09, 0x66, 0xf5, 0xab, 0x9e, 0x92, 0xeb, 0x58, 0xce, 0x8b, 0x5c,
+ 0x67, 0x75, 0x0e, 0x5f, 0xd2, 0x22, 0xcb, 0x92, 0x2f, 0x8a, 0xc5, 0x4a,
+ 0x2d, 0x9b, 0x6f, 0x9a, 0x39, 0x91, 0x9a, 0xc2, 0x9b, 0x89, 0x91, 0x6b,
+ 0xdd, 0x5c, 0xc9, 0x66, 0xcb, 0xf7, 0x58, 0xa8, 0x2b, 0x6d, 0xb8, 0x2b,
+ 0xe0, 0x39, 0xec, 0x95, 0x0e, 0x4c, 0x3b, 0x74, 0x39, 0x34, 0x1b, 0xd8,
+ 0x8c, 0xe7, 0xf5, 0x3b, 0xdb, 0xba, 0xd2, 0xc7, 0xee, 0x65, 0x90, 0xcf,
+ 0xcb, 0x65, 0x52, 0x3b, 0x2a, 0xc4, 0x05, 0x5a, 0x72, 0xd2, 0xbb, 0xdd,
+ 0x8e, 0x3b, 0x2a, 0x02, 0xec, 0xec, 0x36, 0x37, 0xb5, 0x44, 0x1a, 0x9a,
+ 0xee, 0x8b, 0x49, 0x37, 0xc6, 0x4a, 0x7e, 0x7e, 0xa1, 0x8c, 0x57, 0x3f,
+ 0x8b, 0xec, 0xd5, 0x29, 0xee, 0x2a, 0xf9, 0x95, 0x52, 0xe1, 0xde, 0x8a,
+ 0xd5, 0xcd, 0xfe, 0x68, 0x4b, 0xe8, 0x4f, 0xd4, 0x4f, 0x02, 0xdd, 0x0f,
+ 0xe1, 0x22, 0xe7, 0x95, 0xfb, 0xc4, 0x7c, 0x8a, 0xa6, 0x82, 0x72, 0xd2,
+ 0x43, 0x88, 0x9e, 0x67, 0xd9, 0xa5, 0x04, 0x2a, 0x71, 0x24, 0x02, 0x52,
+ 0x6c, 0x67, 0x6c, 0xa3, 0xfd, 0x47, 0xf2, 0xcc, 0x0c, 0xbd, 0x81, 0x2b,
+ 0x16, 0x84, 0x90, 0x35, 0x44, 0xcf, 0x75, 0xf5, 0xc1, 0xd7, 0x63, 0x89,
+ 0x65, 0x2f, 0xec, 0x61, 0xa2, 0xad, 0x10, 0x77, 0x95, 0xb8, 0x21, 0xf2,
+ 0x7c, 0x36, 0x56, 0x24, 0x99, 0xf0, 0x27, 0x11, 0x02, 0x03, 0x31, 0x32,
+ 0xee, 0x86, 0x71, 0x06, 0xd3, 0xfd, 0xe7, 0xc7, 0x6d, 0x30, 0xbe, 0x39,
+ 0x07, 0xa5, 0xd0, 0x2d, 0xb3, 0x00, 0x1c, 0x8c, 0x4e, 0x74, 0xdc, 0x07,
+ 0xd3, 0x60, 0x95, 0xc1, 0x2c, 0xaa, 0x93, 0x67, 0xb3, 0x8d, 0x42, 0x2e,
+ 0x6d, 0x22, 0x50, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0xe7, 0x2a, 0x73, 0x9d, 0xc0, 0x60, 0x48, 0xed, 0xf1, 0xef, 0x0a, 0x93,
+ 0xf7, 0x12, 0x70, 0x39, 0xb5, 0x54, 0x5b, 0xc9, 0x8d, 0xc5, 0x6a, 0x48,
+ 0xd3, 0xc1, 0xe9, 0xef, 0x77, 0x7b, 0x16, 0x3d, 0x54, 0x35, 0xca, 0xbb,
+ 0xa0, 0x71, 0x69, 0x69, 0xfc, 0x81, 0x5c, 0x29, 0x7d, 0x55, 0x7c, 0x99,
+ 0x2a, 0xfc, 0xd6, 0x08, 0xed, 0xdd, 0xe0, 0x35, 0x29, 0x7d, 0xe6, 0xb5,
+ 0x45, 0x60, 0xb7, 0x34, 0x7b, 0xeb, 0x1a, 0xb7, 0x03, 0x41, 0xdd, 0x89,
+ 0xaa, 0x4d, 0xdf, 0x34, 0x1e, 0xc1, 0xb8, 0xd4, 0x26, 0xc9, 0xdb, 0x38,
+ 0x78, 0x1c, 0x20, 0x88, 0x78, 0x4a, 0x0e, 0xe5, 0x65, 0x20, 0x54, 0xab,
+ 0xc9, 0x61, 0x85, 0x02, 0x24, 0x36, 0x79, 0xbe, 0xea, 0xc7, 0x6b, 0x6e,
+ 0x2f, 0x3c, 0xea, 0x78, 0x38, 0x89, 0xb6, 0x88, 0x07, 0xdd, 0xb1, 0x2f,
+ 0xda, 0x20, 0x48, 0x91, 0x34, 0x05, 0x0e, 0x70, 0xe7, 0x96, 0x67, 0x40,
+ 0xa4, 0xda, 0xa0, 0xfb, 0x88, 0x2d, 0x8b, 0x49, 0x40, 0xa6, 0x42, 0x81,
+ 0xf6, 0x2e, 0x23, 0xe8, 0x10, 0x03, 0x46, 0x0e, 0x77, 0x4a, 0x53, 0xab,
+ 0xdc, 0xd2, 0x39, 0x9c, 0x27, 0xd8, 0x61, 0x7c, 0x58, 0x1f, 0xf1, 0x31,
+ 0xd7, 0x0c, 0x38, 0xa7, 0xd3, 0x23, 0x5b, 0x22, 0xb8, 0x25, 0xb9, 0x43,
+ 0x78, 0xe6, 0xd8, 0xcc, 0x00, 0x8e, 0xf1, 0x4f, 0xbd, 0x84, 0x8d, 0x09,
+ 0x27, 0x45, 0xbd, 0x4c, 0xb9, 0x3e, 0x6d, 0x65, 0xeb, 0xed, 0xfd, 0xc5,
+ 0x3e, 0x28, 0x89, 0x2b, 0x76, 0xc4, 0x56, 0xcf, 0xbb, 0x9e, 0xec, 0xd2,
+ 0x21, 0x41, 0xcf, 0x44, 0x6c, 0x86, 0xb0, 0x46, 0x46, 0xef, 0xa0, 0x24,
+ 0x64, 0xf6, 0xb8, 0xbc, 0x66, 0xf0, 0x26, 0x0d, 0x80, 0x25, 0xb0, 0xa4,
+ 0x9f, 0x5b, 0xb9, 0x82, 0x40, 0xea, 0xde, 0xb5, 0x84, 0x1a, 0x77, 0xd0,
+ 0xa5, 0x24, 0xc5, 0xae, 0x5c, 0xe7, 0x2a, 0xbf, 0x1d, 0x9c, 0x76, 0x4c,
+ 0xcd, 0xf1, 0x68, 0xa8, 0xa6, 0x30, 0xb5, 0xbb, 0x99, 0x8c, 0x23, 0x94,
+ 0xd3, 0x1d, 0xa1, 0x90, 0xee, 0x6e, 0xba, 0xd6, 0xc0, 0xa5, 0x0a, 0x84,
+ 0xfd, 0xc5, 0x4e, 0x81, 0xb4, 0x33, 0x22, 0x3b, 0xf3, 0x51, 0xb3, 0x18,
+ 0x06, 0x5d, 0x2d, 0xf0, 0xfd, 0x9b, 0x34, 0xbc, 0x30, 0x02, 0x7f, 0xcb,
+ 0x24, 0x38, 0xeb, 0x7c, 0xeb, 0x55, 0x46, 0x9b, 0x0f, 0xfb, 0x1e, 0x7a,
+ 0xfd, 0xe2, 0xe3, 0x7a, 0x46, 0x45, 0x8f, 0xe2, 0x78, 0x88, 0xfa, 0xa8,
+ 0x8f, 0x4e, 0x85, 0x14, 0xfa, 0x3e, 0x4c, 0x67, 0xe2, 0x76, 0x9e, 0x82,
+ 0xe4, 0x70, 0x7e, 0x69, 0x48, 0xec, 0xdb, 0x0b, 0xd0, 0xc2, 0x3c, 0xc6,
+ 0xce, 0x51, 0x7d, 0x0f, 0x5d, 0xb7, 0x2f, 0x31, 0xd7, 0x69, 0x8a, 0x74,
+ 0xd6, 0x81, 0x89, 0xb3, 0x7a, 0x16, 0xd7, 0xf4, 0xb3, 0x74, 0x41, 0x40,
+ 0xf7, 0x39, 0xf5, 0x66, 0x94, 0xa6, 0xf5, 0x7b, 0x8f, 0xf7, 0x2e, 0x66,
+ 0x47, 0x5f, 0x2d, 0x1e, 0x52, 0xc7, 0x93, 0xd6, 0xed, 0xa8, 0x06, 0x8e,
+ 0x73, 0x2e, 0xce, 0x21, 0xf4, 0xe6, 0xa3, 0x89, 0x26, 0xa4, 0x07, 0x49,
+ 0x58, 0x6c, 0x22, 0xef, 0xa1, 0x18, 0xe8, 0x1d, 0x4b, 0x4a, 0x26, 0xdd,
+ 0xa0, 0x09, 0xe3, 0xfd, 0x64, 0x99, 0xff, 0x88, 0xf9, 0xb6, 0xe6, 0xfb,
+ 0x7b, 0x66, 0x0a, 0x82, 0x3b, 0xa1, 0x31, 0xab, 0x31, 0x75, 0xe8, 0xc0,
+ 0xb9, 0xf2, 0x0d, 0xa3, 0x78, 0xf8, 0x02, 0x0b, 0xe4, 0x3c, 0x20, 0xdc,
+ 0x4c, 0x6e, 0x2b, 0xa8, 0xd5, 0x81, 0x33, 0x1f, 0x51, 0xf9, 0x25, 0x7f
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sigrevoked_sha256_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sigrevoked_sha256_bsn0_msg0.inc
new file mode 100644
index 0000000000..a65e1c38e5
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_sigrevoked_sha256_bsn0_msg0.inc
@@ -0,0 +1,98 @@
+ /*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : groupA
+ * Issuer : iKGF
+ * Signer : member0 revoked in SigRl
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : SigRl of group
+ */
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26, 0x5f, 0x20, 0xbd, 0x9e,
+ 0x49, 0x11, 0x31, 0xe0, 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd, 0x64, 0x60, 0xa4, 0xf8,
+ 0x17, 0x81, 0xc3, 0x0a, 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99, 0x72, 0xdc, 0xe6, 0x78,
+ 0xe3, 0x70, 0xa8, 0x28, 0x62, 0x54, 0xa2, 0xdf, 0x64, 0x8d, 0xe9, 0x24,
+ 0xd5, 0x67, 0x49, 0xf0, 0x0f, 0x23, 0x35, 0xbd, 0xfd, 0x1e, 0xa2, 0x80,
+ 0x47, 0x26, 0x41, 0x00, 0xb9, 0xac, 0x71, 0xde, 0x03, 0x21, 0x79, 0x53,
+ 0xfc, 0x50, 0x4d, 0x48, 0x1c, 0xda, 0xd5, 0x1d, 0x8b, 0x1d, 0x14, 0xd3,
+ 0xd0, 0x1e, 0x17, 0x74, 0x85, 0x7a, 0xa7, 0xc8, 0x8e, 0x8f, 0x0a, 0x49,
+ 0x9c, 0xe6, 0x57, 0x7e, 0xbc, 0xbd, 0xf3, 0xd0, 0x40, 0x1d, 0xd2, 0x66,
+ 0x68, 0x0f, 0xa8, 0xc4, 0xa0, 0x8b, 0x58, 0x33, 0x9b, 0x8a, 0x09, 0xc5,
+ 0x72, 0x35, 0x27, 0xa6, 0xb9, 0x83, 0xd0, 0xe3, 0x9e, 0xf4, 0xca, 0x3f,
+ 0xab, 0x69, 0xcb, 0x5d, 0xca, 0xcc, 0x36, 0x40, 0xbc, 0x80, 0x5b, 0x81,
+ 0x25, 0xcc, 0x31, 0xe5, 0x7d, 0x3f, 0x1d, 0xe9, 0x1b, 0xc6, 0x64, 0x4a,
+ 0x00, 0x58, 0xfa, 0xe2, 0x3c, 0x4f, 0x4c, 0xc6, 0xa7, 0x14, 0xa6, 0xf6,
+ 0x5f, 0xad, 0xf5, 0x7e, 0x5f, 0x78, 0x98, 0x1c, 0xe4, 0xca, 0xfb, 0x9a,
+ 0x96, 0xdd, 0x53, 0x64, 0x4b, 0x67, 0xd1, 0x1e, 0xd8, 0xf5, 0xc2, 0xdb,
+ 0x46, 0x21, 0x14, 0xfd, 0xcc, 0x54, 0x35, 0x0a, 0x4a, 0xd6, 0x96, 0xe7,
+ 0xc6, 0xdc, 0xc2, 0x12, 0x4e, 0x54, 0x81, 0x8c, 0xf6, 0xca, 0xa5, 0xad,
+ 0xab, 0x07, 0xe0, 0x8b, 0x78, 0x56, 0x99, 0x5e, 0x26, 0x94, 0xd7, 0x6d,
+ 0x93, 0x9a, 0x0f, 0xab, 0x35, 0xc0, 0xc9, 0x82, 0x54, 0xef, 0xf5, 0xed,
+ 0x56, 0x26, 0xda, 0x82, 0xb9, 0x8e, 0x26, 0x2b, 0xda, 0x8f, 0xba, 0x81,
+ 0xba, 0xfe, 0x9d, 0x89, 0x45, 0x02, 0xb0, 0x38, 0x4b, 0x4e, 0x36, 0x4f,
+ 0xe0, 0xb6, 0xb6, 0x70, 0xad, 0x05, 0xd9, 0xe4, 0xbe, 0xc9, 0xcb, 0x43,
+ 0x19, 0x54, 0x8d, 0x65, 0xb9, 0x97, 0x85, 0x3a, 0x96, 0xee, 0xaf, 0x92,
+ 0x49, 0xbb, 0xa5, 0xb5, 0x92, 0xbd, 0x1e, 0xa4, 0x8f, 0xdd, 0xc4, 0x62,
+ 0xfc, 0xc8, 0x25, 0x11, 0x4a, 0x6f, 0xe6, 0xfa, 0xbc, 0xd5, 0xf5, 0xf6,
+ 0x79, 0x13, 0xd4, 0x9b, 0x46, 0x1e, 0x97, 0xb3, 0x13, 0xf2, 0x65, 0x7f,
+ 0xe1, 0xb9, 0x30, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_test1_basename1_sha256.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_test1_basename1_sha256.inc
new file mode 100644
index 0000000000..a7a956b9f0
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sig_test1_basename1_sha256.inc
@@ -0,0 +1,59 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type: Intel(R) EPID 2.0 Signature
+ * Group: groupA
+ * Issuer : iKGF
+ * Signer: member0
+ * HashAlg: Sha256
+ * Message: "test1"
+ * Basename: "basename1"
+ * SigRl: Empty
+ */
+ 0xa6, 0x13, 0x29, 0xb6, 0x61, 0xa2, 0xb8, 0xd7, 0x49, 0x86, 0xcb, 0xaf,
+ 0x94, 0x4d, 0x9e, 0x51, 0xcf, 0xd3, 0x5d, 0x0f, 0x33, 0x9a, 0x59, 0x0d,
+ 0xe7, 0xc9, 0xb9, 0x7f, 0x83, 0xae, 0x27, 0xe6, 0x40, 0xf0, 0x88, 0x13,
+ 0xe2, 0xb6, 0x6a, 0x43, 0x26, 0xa3, 0x21, 0xea, 0x00, 0x78, 0xcd, 0xce,
+ 0x0e, 0x14, 0x7a, 0xde, 0xcf, 0xaa, 0x7b, 0xc5, 0x7e, 0x7c, 0xaf, 0xe4,
+ 0x5e, 0x8a, 0xdd, 0xc7, 0x2b, 0x4e, 0x81, 0x50, 0xcc, 0xf9, 0xcc, 0x85,
+ 0xcb, 0x8c, 0xe5, 0x76, 0x26, 0xd2, 0x30, 0x62, 0x12, 0x6b, 0xbc, 0xfb,
+ 0xf9, 0x91, 0x47, 0x55, 0x54, 0x5c, 0x5b, 0xce, 0x75, 0xaf, 0x69, 0xa3,
+ 0x26, 0xa6, 0xb7, 0xd5, 0x33, 0xe1, 0xbb, 0xd4, 0x94, 0xca, 0x05, 0xc5,
+ 0xc3, 0x64, 0xe8, 0xd8, 0x12, 0xa8, 0x5b, 0x0d, 0x12, 0xf6, 0x53, 0xa2,
+ 0xfa, 0x28, 0x59, 0xc4, 0xc3, 0x6f, 0x6a, 0xd8, 0x7d, 0x77, 0x17, 0x11,
+ 0xa2, 0xf3, 0x70, 0xa4, 0x85, 0xc8, 0x65, 0xb2, 0x8b, 0x30, 0x1b, 0x75,
+ 0x2b, 0x96, 0x95, 0xa7, 0xd5, 0x1c, 0x4e, 0xae, 0xc4, 0xdc, 0xa3, 0x48,
+ 0x84, 0x53, 0xee, 0xaa, 0xc5, 0xe0, 0x26, 0x9e, 0xde, 0x4c, 0x21, 0x78,
+ 0xea, 0x38, 0xb4, 0x53, 0xce, 0xe4, 0xea, 0x4f, 0x08, 0x08, 0x4f, 0x08,
+ 0x21, 0xca, 0xfc, 0x01, 0xa4, 0xc9, 0x23, 0xa8, 0x9a, 0x00, 0xe0, 0x14,
+ 0x8b, 0xec, 0x5f, 0x2e, 0xbb, 0x22, 0x6a, 0x63, 0xda, 0x99, 0xd6, 0xf8,
+ 0xa1, 0x7d, 0x4c, 0x1a, 0xde, 0x19, 0xa4, 0x52, 0x1b, 0x54, 0xa9, 0x42,
+ 0x2c, 0xb4, 0x7a, 0x8d, 0xc8, 0xe6, 0x0b, 0x35, 0x70, 0x03, 0x08, 0x88,
+ 0xfe, 0x0f, 0xab, 0x62, 0x95, 0x35, 0xf4, 0xfc, 0x46, 0x26, 0x99, 0x59,
+ 0xdf, 0x25, 0x96, 0x0d, 0x10, 0x89, 0xcb, 0x52, 0x95, 0xba, 0xa7, 0xe9,
+ 0xc4, 0x34, 0xf2, 0xee, 0xbd, 0x02, 0x99, 0x38, 0x8d, 0xef, 0x80, 0xa5,
+ 0xc3, 0x54, 0xb1, 0x78, 0xf3, 0xf5, 0xc5, 0xf3, 0xf4, 0x08, 0xc6, 0x51,
+ 0xf1, 0x4d, 0x6d, 0x28, 0x95, 0x02, 0x55, 0xc9, 0x60, 0xba, 0x23, 0x81,
+ 0x2f, 0xe6, 0xb0, 0x47, 0x23, 0x40, 0x85, 0xf6, 0x11, 0x8f, 0xa3, 0x71,
+ 0xa2, 0x69, 0x47, 0xc4, 0x79, 0x26, 0x67, 0x84, 0xb1, 0x43, 0xde, 0xe4,
+ 0xb2, 0xad, 0xb4, 0x71, 0xba, 0xb6, 0xbb, 0xf8, 0xae, 0x77, 0xcd, 0x3f,
+ 0x40, 0xe9, 0x9c, 0x7c, 0x90, 0xb6, 0x98, 0xac, 0xa8, 0x6f, 0x67, 0x94,
+ 0xe1, 0x97, 0xc1, 0x38, 0xd5, 0x05, 0xd0, 0x7b, 0x77, 0x8e, 0xc9, 0x17,
+ 0xb7, 0x21, 0x15, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrevokedmember0/mprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrevokedmember0/mprivkey.inc
new file mode 100644
index 0000000000..e8059b8d7b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrevokedmember0/mprivkey.inc
@@ -0,0 +1,36 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 member private-key
+ * Group : GroupA
+ * Member : sigrevokedmember0
+ * Issuer : Ikgf
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x39, 0x88, 0x2e, 0xee, 0xbb, 0x26, 0xa6, 0x85,
+ 0xa0, 0x06, 0x6b, 0xb4, 0x7f, 0x81, 0x2a, 0x02, 0x13, 0xf3, 0x2e, 0xcf,
+ 0x10, 0xeb, 0xfd, 0xce, 0xa0, 0x39, 0xd2, 0xb7, 0xb3, 0x52, 0xd0, 0x5a,
+ 0x9b, 0x2d, 0x47, 0xbc, 0x5f, 0x30, 0x57, 0x5b, 0x60, 0xdf, 0xa1, 0x5a,
+ 0x16, 0xb6, 0xff, 0x5f, 0x55, 0xc5, 0x34, 0xf9, 0x59, 0x55, 0x78, 0xa6,
+ 0xa6, 0x5d, 0xc6, 0x52, 0x81, 0x41, 0x35, 0x83, 0x56, 0xe0, 0x5e, 0x7b,
+ 0xaa, 0x17, 0x8d, 0x0d, 0x8f, 0xc5, 0xaf, 0xf7, 0xcc, 0x3a, 0xc1, 0xb8,
+ 0x96, 0xfd, 0xdc, 0x71, 0x8a, 0x88, 0x5c, 0x13, 0x55, 0x1b, 0x22, 0xbd,
+ 0x42, 0x0e, 0xc2, 0x49, 0x48, 0x5b, 0xa0, 0x03, 0xea, 0x4b, 0x79, 0x0b,
+ 0xb5, 0xed, 0x1a, 0x81, 0x6d, 0xb2, 0xe8, 0x41, 0xca, 0x1b, 0xb1, 0xc0,
+ 0xf7, 0x11, 0x42, 0x3f, 0x24, 0xea, 0x55, 0x02, 0x82, 0x4d, 0x11, 0x48
\ No newline at end of file
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrl.inc
new file mode 100644
index 0000000000..e0b631f18c
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrl.inc
@@ -0,0 +1,57 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+ /*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 signature based revocation list
+ * Group : GroupA
+ * Issuer : iKGF
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0x4d, 0xaa, 0xa4, 0xb2, 0x80, 0xa9, 0x7a, 0x51, 0xfd, 0x1a, 0x3c, 0x44,
+ 0x5b, 0x17, 0x35, 0x3a, 0x88, 0x02, 0xce, 0x92, 0xfa, 0xac, 0x3e, 0x74,
+ 0x4a, 0xb7, 0x0b, 0xbe, 0xce, 0x77, 0x83, 0x71, 0x3c, 0x2d, 0xfd, 0xf4,
+ 0x56, 0x5a, 0x8a, 0x22, 0x10, 0x28, 0x8c, 0x2a, 0x73, 0x0f, 0x84, 0x11,
+ 0xb5, 0x97, 0x15, 0x17, 0x57, 0x04, 0x7d, 0x1c, 0x40, 0xce, 0x7d, 0xa1,
+ 0xe0, 0x75, 0xaa, 0x19, 0x5b, 0x62, 0xe7, 0x53, 0x26, 0xfc, 0xae, 0x2b,
+ 0x9d, 0x21, 0x7d, 0x0e, 0xf8, 0xc2, 0x80, 0xc6, 0x64, 0x20, 0xea, 0x04,
+ 0x32, 0xb8, 0x96, 0xd9, 0x72, 0x56, 0x6c, 0xea, 0xdd, 0xe8, 0x49, 0xa0,
+ 0xea, 0x5f, 0xbe, 0x0a, 0x8b, 0x2d, 0x17, 0x03, 0xd9, 0xe0, 0x0a, 0x24,
+ 0xc2, 0xa6, 0xf4, 0x97, 0x7d, 0x0f, 0xfd, 0xee, 0x09, 0x62, 0xba, 0x31,
+ 0x51, 0x6b, 0x3d, 0x1e, 0x91, 0xe3, 0xbc, 0xd5, 0x4d, 0xaa, 0xa4, 0xb2,
+ 0x80, 0xa9, 0x7a, 0x51, 0xfd, 0x1a, 0x3c, 0x44, 0x5b, 0x17, 0x35, 0x3a,
+ 0x88, 0x02, 0xce, 0x92, 0xfa, 0xac, 0x3e, 0x74, 0x4a, 0xb7, 0x0b, 0xbe,
+ 0xce, 0x77, 0x83, 0x71, 0x3c, 0x2d, 0xfd, 0xf4, 0x56, 0x5a, 0x8a, 0x22,
+ 0x10, 0x28, 0x8c, 0x2a, 0x73, 0x0f, 0x84, 0x11, 0xb5, 0x97, 0x15, 0x17,
+ 0x57, 0x04, 0x7d, 0x1c, 0x40, 0xce, 0x7d, 0xa1, 0xe0, 0x75, 0xaa, 0x19,
+ 0xda, 0x7f, 0x40, 0x65, 0x27, 0x0c, 0x47, 0x39, 0x5e, 0xcb, 0xbc, 0xca,
+ 0xc6, 0x5b, 0xdc, 0x48, 0xe0, 0x7a, 0x71, 0x54, 0x15, 0x21, 0xea, 0x40,
+ 0xb8, 0x49, 0x9e, 0x6b, 0x6a, 0xdd, 0x97, 0xc1, 0x77, 0xcf, 0x43, 0x55,
+ 0x64, 0x97, 0x2d, 0x14, 0x9c, 0x64, 0x22, 0xb2, 0x29, 0xa0, 0xe2, 0x90,
+ 0x1b, 0x00, 0xb2, 0xcd, 0x58, 0xf7, 0xd3, 0x90, 0x10, 0x1e, 0x0f, 0x61,
+ 0xad, 0xad, 0x71, 0x93, 0x4d, 0xaa, 0xa4, 0xb2, 0x80, 0xa9, 0x7a, 0x51,
+ 0xfd, 0x1a, 0x3c, 0x44, 0x5b, 0x17, 0x35, 0x3a, 0x88, 0x02, 0xce, 0x92,
+ 0xfa, 0xac, 0x3e, 0x74, 0x4a, 0xb7, 0x0b, 0xbe, 0xce, 0x77, 0x83, 0x71,
+ 0x3c, 0x2d, 0xfd, 0xf4, 0x56, 0x5a, 0x8a, 0x22, 0x10, 0x28, 0x8c, 0x2a,
+ 0x73, 0x0f, 0x84, 0x11, 0xb5, 0x97, 0x15, 0x17, 0x57, 0x04, 0x7d, 0x1c,
+ 0x40, 0xce, 0x7d, 0xa1, 0xe0, 0x75, 0xaa, 0x19, 0x3d, 0xa2, 0xbd, 0xc5,
+ 0x15, 0x67, 0x50, 0x88, 0x02, 0x0a, 0x37, 0xa3, 0x77, 0xef, 0x89, 0xf4,
+ 0x1b, 0x2a, 0x20, 0x04, 0xc8, 0x2c, 0x3f, 0xb5, 0x82, 0x9d, 0x55, 0xd1,
+ 0xb1, 0x4b, 0x18, 0x4d, 0xbb, 0x21, 0x5d, 0x09, 0x48, 0x44, 0x2c, 0xd3,
+ 0x4f, 0xc8, 0x29, 0xcb, 0x2e, 0xf9, 0xbf, 0xc5, 0x34, 0xb2, 0x94, 0x4e,
+ 0x1b, 0xf0, 0xa6, 0x9c, 0x32, 0x4f, 0x56, 0x0b, 0x68, 0x7b, 0xa9, 0x7b
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrl_empty.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrl_empty.inc
new file mode 100644
index 0000000000..54dbb94181
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupa/sigrl_empty.inc
@@ -0,0 +1,30 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+ /*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 signature based revocation list
+ * Group : GroupA
+ * Issuer : iKGF
+ */
+ // GID
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ // RL ver
+ 0x00, 0x00, 0x00, 0x01,
+ // n2
+ 0x00, 0x00, 0x00, 0x00
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupb/member0/mprivkey.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupb/member0/mprivkey.inc
new file mode 100644
index 0000000000..33408c977c
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupb/member0/mprivkey.inc
@@ -0,0 +1,36 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 member private-key
+ * Group : GroupB
+ * Member : 0
+ * Issuer : Ikgf
+ */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x5e, 0xbe, 0x58, 0xb5, 0xc5, 0xdb, 0xee, 0x60,
+ 0x7a, 0xdb, 0x17, 0x93, 0xf8, 0x15, 0xb8, 0x0c, 0xec, 0x9b, 0xd0, 0x8c,
+ 0x0f, 0x5d, 0x71, 0xf8, 0xe6, 0xd3, 0xcf, 0x85, 0x74, 0xe2, 0xc1, 0xa3,
+ 0x89, 0x74, 0xb2, 0xcd, 0x77, 0x9a, 0x25, 0xad, 0x6f, 0x85, 0xe2, 0x26,
+ 0x89, 0xa1, 0xc7, 0xef, 0x70, 0x5e, 0x5c, 0xb4, 0xde, 0x3c, 0x3b, 0xbf,
+ 0x27, 0x8c, 0x6f, 0x25, 0x24, 0xa4, 0x10, 0xe2, 0x83, 0x91, 0xa3, 0x01,
+ 0x60, 0xf4, 0x47, 0x2e, 0xe2, 0x55, 0x10, 0x55, 0xcc, 0x18, 0xef, 0xdc,
+ 0x9f, 0xe1, 0xb0, 0x93, 0x74, 0x58, 0xdd, 0x13, 0x8f, 0xc8, 0xce, 0x87,
+ 0x76, 0x80, 0x02, 0x8b, 0x8f, 0xb9, 0x5d, 0x46, 0x25, 0xcb, 0x20, 0x43,
+ 0xda, 0x66, 0xd3, 0x50, 0x6e, 0x10, 0xf2, 0x32, 0x6a, 0x39, 0x36, 0xd2,
+ 0x97, 0x01, 0x08, 0x6c, 0x8e, 0x9e, 0x25, 0xa7, 0x7c, 0x86, 0xd4, 0xad
\ No newline at end of file
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupb/sig_grouprevoked_sha256_bsn0_msg0.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupb/sig_grouprevoked_sha256_bsn0_msg0.inc
new file mode 100644
index 0000000000..ecdbeb7e8d
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/groupb/sig_grouprevoked_sha256_bsn0_msg0.inc
@@ -0,0 +1,98 @@
+ /*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 Signature
+ * Group : groupB
+ * Issuer : iKGF
+ * Signer : member0
+ * HashAlg : Sha256
+ * Message : "msg0"
+ * Basename: "bsn0"
+ * SigRl : SigRl of group
+ */
+ 0x70, 0x91, 0x63, 0x2c, 0xbb, 0xfe, 0x06, 0x26, 0x5f, 0x20, 0xbd, 0x9e,
+ 0x49, 0x11, 0x31, 0xe0, 0x7c, 0x99, 0x5e, 0xa0, 0x58, 0x4f, 0x1b, 0x3f,
+ 0xb4, 0x6e, 0xcd, 0x17, 0x61, 0x79, 0xa0, 0xfd, 0x64, 0x60, 0xa4, 0xf8,
+ 0x17, 0x81, 0xc3, 0x0a, 0x4b, 0x6a, 0x72, 0x86, 0x96, 0xe3, 0xfa, 0x95,
+ 0x47, 0x45, 0xfb, 0x57, 0xef, 0xca, 0x82, 0x99, 0x72, 0xdc, 0xe6, 0x78,
+ 0xe3, 0x70, 0xa8, 0x28, 0x9e, 0x33, 0x16, 0x72, 0x80, 0x10, 0x54, 0x16,
+ 0x58, 0x56, 0x74, 0x64, 0xd2, 0x8e, 0x6f, 0x5c, 0x17, 0xbc, 0x34, 0xcf,
+ 0xaa, 0x09, 0xbe, 0x2e, 0xef, 0x3d, 0xa2, 0xf2, 0xbd, 0x22, 0xaa, 0xac,
+ 0xf3, 0x42, 0xc1, 0xfe, 0xdc, 0x7d, 0xd6, 0x48, 0xe9, 0x03, 0x21, 0xda,
+ 0x45, 0x99, 0x41, 0x8e, 0xe0, 0x31, 0xd3, 0x3b, 0x4a, 0x87, 0x09, 0x13,
+ 0xcf, 0x1d, 0xf9, 0xad, 0xbc, 0xc0, 0x95, 0x44, 0x32, 0x12, 0x35, 0xa4,
+ 0x7d, 0x36, 0xbe, 0xff, 0xa4, 0x49, 0x33, 0xc8, 0x1f, 0x96, 0xf0, 0xfe,
+ 0x2d, 0xbc, 0xec, 0xef, 0xfd, 0x5e, 0xb4, 0x7d, 0xe6, 0x12, 0xd5, 0x1b,
+ 0x2a, 0x4f, 0x72, 0x47, 0x22, 0x0d, 0xdc, 0xf8, 0x20, 0xbf, 0x08, 0xf6,
+ 0xfc, 0x28, 0xff, 0x9f, 0x0f, 0x87, 0x5d, 0x80, 0x4e, 0x7a, 0xf8, 0xdd,
+ 0x4e, 0x73, 0x9e, 0x26, 0x1b, 0x7b, 0xcd, 0x56, 0xfc, 0x4c, 0x2a, 0xd8,
+ 0x51, 0x5a, 0x38, 0x11, 0x4a, 0x5c, 0x10, 0xe2, 0x8f, 0x0c, 0x1c, 0x18,
+ 0x04, 0x01, 0x96, 0x6d, 0x21, 0xdd, 0x02, 0xd2, 0xf5, 0xa5, 0xcc, 0xf4,
+ 0x78, 0x35, 0x96, 0x99, 0xae, 0xc5, 0x1d, 0xc4, 0xd9, 0xe1, 0x02, 0x53,
+ 0x76, 0xe1, 0x4a, 0x0e, 0xd8, 0x19, 0x9b, 0x61, 0x87, 0xea, 0x30, 0x83,
+ 0x8a, 0xa0, 0x8f, 0x19, 0xab, 0x38, 0x4d, 0x1b, 0x07, 0xc1, 0xea, 0x91,
+ 0x6e, 0x71, 0x73, 0x9a, 0x35, 0xe9, 0x97, 0x75, 0x20, 0x91, 0xbb, 0x37,
+ 0xb1, 0x01, 0x77, 0xad, 0xec, 0x2c, 0x68, 0x47, 0xd5, 0x08, 0x95, 0x3b,
+ 0xf5, 0x14, 0x4a, 0x19, 0x2e, 0xad, 0xb8, 0xac, 0xfc, 0x93, 0x00, 0xa4,
+ 0x83, 0xdd, 0x52, 0x23, 0xe6, 0x4e, 0x20, 0xeb, 0x67, 0xc7, 0x84, 0xa9,
+ 0x14, 0x4f, 0x90, 0x18, 0x90, 0x55, 0xad, 0xa3, 0x68, 0x7e, 0xcf, 0xd3,
+ 0xf2, 0xe5, 0xfe, 0x13, 0xd4, 0x47, 0x76, 0x29, 0x6e, 0x8c, 0xfc, 0x7f,
+ 0xad, 0x1c, 0x80, 0x64, 0xbf, 0xb5, 0xd7, 0x62, 0x08, 0x8e, 0x1c, 0xb2,
+ 0xb7, 0x4b, 0x8f, 0x6e, 0x11, 0xfd, 0x48, 0xe4, 0x8c, 0x13, 0x16, 0x75,
+ 0xe7, 0x83, 0xf8, 0xef, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03,
+ 0x86, 0x92, 0xbc, 0x07, 0x76, 0x7a, 0xff, 0x03, 0x70, 0x26, 0xe5, 0xef,
+ 0x13, 0x7a, 0x5a, 0xdd, 0x8f, 0x3a, 0x4d, 0x8a, 0xe0, 0xbb, 0x87, 0xff,
+ 0xd7, 0xed, 0xce, 0xd1, 0x84, 0x1b, 0xa8, 0x70, 0x8b, 0x35, 0xf2, 0xab,
+ 0xa6, 0x85, 0x8a, 0xd6, 0xb6, 0x31, 0x99, 0x13, 0xdd, 0x29, 0x64, 0xa9,
+ 0x7f, 0xbe, 0x12, 0x58, 0x1b, 0x86, 0x55, 0x66, 0x7e, 0x03, 0x9e, 0x37,
+ 0xbb, 0x8a, 0xf3, 0x44, 0x94, 0x35, 0x32, 0x96, 0x6f, 0x4a, 0x31, 0x1a,
+ 0xf3, 0xa8, 0x09, 0x19, 0x08, 0x29, 0x83, 0x65, 0x51, 0x1f, 0xd4, 0x4c,
+ 0x43, 0x8f, 0xf2, 0x93, 0x8f, 0x1a, 0x7f, 0x3c, 0x4c, 0x00, 0x80, 0x0f,
+ 0x31, 0x06, 0xb1, 0x59, 0x62, 0x8a, 0xb1, 0x37, 0xa7, 0xb9, 0xfc, 0xc9,
+ 0xbd, 0xf1, 0xca, 0xf2, 0xd4, 0x41, 0xa0, 0xc9, 0xb8, 0x62, 0x84, 0x4f,
+ 0x55, 0x80, 0xa0, 0x33, 0xdf, 0x80, 0xb7, 0x71, 0x6d, 0xda, 0x75, 0xd6,
+ 0xc9, 0x91, 0xed, 0x43, 0x0e, 0x44, 0x96, 0xd6, 0x97, 0x2a, 0x38, 0x87,
+ 0x07, 0x1e, 0x3a, 0xa8, 0xc2, 0x48, 0x38, 0x3c, 0x8c, 0x8f, 0xd0, 0xfe,
+ 0xa7, 0xbe, 0x05, 0xa0, 0x21, 0x83, 0x7e, 0xbc, 0x2e, 0xa8, 0x66, 0x04,
+ 0xfe, 0x90, 0x44, 0xa6, 0xc7, 0xe0, 0xa6, 0xb5, 0xf9, 0x42, 0xd9, 0x24,
+ 0xe4, 0x48, 0xa4, 0x14, 0x3c, 0xf9, 0x69, 0xc5, 0x4c, 0x07, 0x49, 0xa4,
+ 0xfe, 0x3d, 0xae, 0x18, 0xb2, 0x15, 0x01, 0xa7, 0xec, 0xbf, 0xc4, 0x33,
+ 0xd6, 0x44, 0xd6, 0x27, 0x4c, 0xcd, 0x58, 0x61, 0x97, 0x15, 0xd2, 0x15,
+ 0xa4, 0xd6, 0x62, 0xfe, 0x9c, 0x56, 0x8e, 0xfc, 0xdf, 0x40, 0x17, 0xbb,
+ 0x64, 0x76, 0x95, 0x76, 0x74, 0xbb, 0xe6, 0xcd, 0xbc, 0x41, 0x33, 0xaf,
+ 0x3e, 0xac, 0x44, 0x41, 0x95, 0xb9, 0x93, 0xff, 0xb0, 0xe2, 0x98, 0x0e,
+ 0x30, 0x8c, 0x03, 0x06, 0x68, 0xc8, 0x7e, 0x64, 0xeb, 0xdb, 0xa9, 0x65,
+ 0x5f, 0xf2, 0x76, 0xc8, 0xa4, 0x75, 0x28, 0xf4, 0x7c, 0xc4, 0xb3, 0xa0,
+ 0x5e, 0xd7, 0x10, 0x45, 0x51, 0x0d, 0x13, 0x1c, 0x18, 0x2f, 0x6a, 0x16,
+ 0x6f, 0x64, 0xc4, 0x09, 0xd7, 0x7c, 0x41, 0x94, 0xd4, 0x23, 0x82, 0xbe,
+ 0x08, 0xca, 0x48, 0x84, 0x9a, 0x72, 0x96, 0xe2, 0x1c, 0x8e, 0x95, 0x59,
+ 0xc4, 0xd7, 0x25, 0xc0, 0x5d, 0x91, 0xb5, 0xd9, 0x4c, 0xd1, 0x75, 0xe8,
+ 0xda, 0x55, 0xdf, 0x44, 0x0f, 0x20, 0x18, 0xfb, 0x49, 0xdf, 0xe5, 0xcb,
+ 0xdf, 0xfe, 0x75, 0xfd, 0x44, 0x01, 0x5d, 0x28, 0x8f, 0xf9, 0xc2, 0xcb,
+ 0xa3, 0xed, 0x3b, 0x1e, 0x78, 0xe3, 0x0c, 0x3a, 0xac, 0xbc, 0xfe, 0x9e,
+ 0xff, 0x99, 0x1b, 0x35, 0xca, 0xf7, 0x00, 0x51, 0xa2, 0x6d, 0xb1, 0x0a,
+ 0xec, 0xaa, 0x99, 0x48, 0x07, 0x1a, 0x68, 0x99, 0xf0, 0xeb, 0x09, 0x07,
+ 0xc5, 0x68, 0xb4, 0xb5, 0x41, 0xb8, 0xd1, 0x18, 0x99, 0x4e, 0x68, 0x25,
+ 0xc9, 0x4d, 0x32, 0x58, 0xeb, 0xcb, 0x3b, 0x73, 0x8a, 0x26, 0x50, 0x58,
+ 0x00, 0x41, 0xc6, 0xf8, 0xc6, 0x6c, 0xf8, 0x28, 0xe3, 0x99, 0xf2, 0xcd,
+ 0xa0, 0x6f, 0xc3, 0x22, 0xd4, 0x00, 0x87, 0xd2, 0x75, 0x7f, 0xaa, 0x84,
+ 0x11, 0x10, 0x7f, 0x7a, 0x28, 0x4b, 0x69, 0xf9, 0xfa, 0x22, 0xa7, 0x95,
+ 0x37, 0x61, 0x46, 0x61, 0xf0, 0x66, 0x5e, 0x92, 0x5c, 0x2e, 0xd8, 0x97,
+ 0x86, 0xa5, 0x3b, 0x2c, 0x45, 0x98, 0x1a, 0x6a, 0xc0, 0xb2, 0xff, 0x1d,
+ 0x99, 0x5c, 0x32, 0x10, 0x82, 0xd3, 0x63, 0x82, 0x8c, 0x89, 0xa2, 0x5d
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/grprl.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/grprl.inc
new file mode 100644
index 0000000000..4059011ee5
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/testdata/ikgf/grprl.inc
@@ -0,0 +1,124 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Test data.
+ *
+ * Type : Intel(R) EPID 2.0 group revocation list
+ * Group : GroupA
+ * Issuer : iKGF
+ */
+ 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x32,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/bignum_wrapper-test.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/bignum_wrapper-test.cc
new file mode 100644
index 0000000000..83dba24f6b
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/bignum_wrapper-test.cc
@@ -0,0 +1,173 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Bignum C++ wrapper unit tests.
+ */
+
+#include "gtest/gtest.h"
+
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/bignum_wrapper-testhelper.h"
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+#include "epid/common/src/memory.h"
+}
+
+namespace {
+
+// Use Test Fixture for SetUp and TearDown
+class BigNumObjTest : public ::testing::Test {
+ public:
+ static const BigNumStr str_0;
+ static const std::vector vec_0;
+};
+
+const BigNumStr BigNumObjTest::str_0 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+const std::vector BigNumObjTest::vec_0 = {0, 0, 0, 0,
+ 0, 0, 0, 0};
+
+TEST_F(BigNumObjTest, ObjDefaultConstructedIsNotNull) {
+ BigNumObj bn;
+ EXPECT_NE(nullptr, (BigNum*)bn);
+}
+
+TEST_F(BigNumObjTest, ObjConstructedWithSizeIsNotNull) {
+ BigNumObj bn1(1);
+ EXPECT_NE(nullptr, (BigNum*)bn1);
+ BigNumObj bn32(32);
+ EXPECT_NE(nullptr, (BigNum*)bn32);
+}
+
+TEST_F(BigNumObjTest, AssignmentDoesNotCopyPointer) {
+ BigNumObj bn1;
+ BigNumObj bn2;
+ EXPECT_NE((BigNum*)bn1, (BigNum*)bn2);
+ bn1 = bn2;
+ EXPECT_NE((BigNum*)bn1, (BigNum*)bn2);
+}
+
+TEST_F(BigNumObjTest, CopyConstructorDoesNotCopyPointer) {
+ BigNumObj bn1;
+ BigNumObj bn2(bn1);
+ EXPECT_NE((BigNum*)bn1, (BigNum*)bn2);
+}
+
+TEST_F(BigNumObjTest, ConstructorDoesNotThrow) {
+ BigNumObj bn1;
+ BigNumObj bn2(32);
+ BigNumObj bn3(32, this->str_0);
+ BigNumObj bn4(32, this->vec_0);
+ BigNumObj bn5(this->str_0);
+ BigNumObj bn6(this->vec_0);
+
+ EXPECT_NE((BigNum*)bn1, (BigNum*)bn2);
+ EXPECT_NE((BigNum*)bn1, (BigNum*)bn3);
+ EXPECT_NE((BigNum*)bn1, (BigNum*)bn4);
+ EXPECT_NE((BigNum*)bn1, (BigNum*)bn5);
+ EXPECT_NE((BigNum*)bn1, (BigNum*)bn6);
+
+ EXPECT_NE((BigNum*)bn2, (BigNum*)bn1);
+ EXPECT_NE((BigNum*)bn2, (BigNum*)bn3);
+ EXPECT_NE((BigNum*)bn2, (BigNum*)bn4);
+ EXPECT_NE((BigNum*)bn2, (BigNum*)bn5);
+ EXPECT_NE((BigNum*)bn2, (BigNum*)bn6);
+
+ EXPECT_NE((BigNum*)bn3, (BigNum*)bn1);
+ EXPECT_NE((BigNum*)bn3, (BigNum*)bn2);
+ EXPECT_NE((BigNum*)bn3, (BigNum*)bn4);
+ EXPECT_NE((BigNum*)bn3, (BigNum*)bn5);
+ EXPECT_NE((BigNum*)bn3, (BigNum*)bn6);
+
+ EXPECT_NE((BigNum*)bn4, (BigNum*)bn1);
+ EXPECT_NE((BigNum*)bn4, (BigNum*)bn2);
+ EXPECT_NE((BigNum*)bn4, (BigNum*)bn3);
+ EXPECT_NE((BigNum*)bn4, (BigNum*)bn5);
+ EXPECT_NE((BigNum*)bn4, (BigNum*)bn6);
+
+ EXPECT_NE((BigNum*)bn5, (BigNum*)bn1);
+ EXPECT_NE((BigNum*)bn5, (BigNum*)bn2);
+ EXPECT_NE((BigNum*)bn5, (BigNum*)bn3);
+ EXPECT_NE((BigNum*)bn5, (BigNum*)bn4);
+ EXPECT_NE((BigNum*)bn5, (BigNum*)bn6);
+
+ EXPECT_NE((BigNum*)bn6, (BigNum*)bn1);
+ EXPECT_NE((BigNum*)bn6, (BigNum*)bn2);
+ EXPECT_NE((BigNum*)bn6, (BigNum*)bn3);
+ EXPECT_NE((BigNum*)bn6, (BigNum*)bn4);
+ EXPECT_NE((BigNum*)bn6, (BigNum*)bn5);
+}
+
+TEST_F(BigNumObjTest, CanCastConstToConstPointer) {
+ BigNumObj const bn;
+ BigNum const* bn_ptr = bn;
+ (void)bn_ptr;
+}
+
+TEST_F(BigNumObjTest, CanGetConstPointerFromConst) {
+ BigNumObj const bn;
+ BigNum const* bn_ptr = bn.getc();
+ (void)bn_ptr;
+}
+
+/*
+The following tests are expected to result in
+compile time errors (by design)
+*/
+/*
+TEST_F(BigNumObjTest, CannotCastConstToNonConstPointer) {
+ BigNumObj const bn;
+ BigNum * bn_ptr = bn;
+ (void) bn_ptr;
+}
+
+TEST_F(BigNumObjTest, CannotGetNonConstPointerFromConst) {
+ BigNumObj const bn;
+ BigNum * bn_ptr = bn.get();
+ (void) bn_ptr;
+}
+*/
+
+TEST_F(BigNumObjTest, CanCastNonConstToConstPointer) {
+ BigNumObj bn;
+ BigNum const* bn_ptr = bn;
+ (void)bn_ptr;
+}
+
+TEST_F(BigNumObjTest, CanGetConstPointerFromNonConst) {
+ BigNumObj bn;
+ BigNum const* bn_ptr = bn.getc();
+ (void)bn_ptr;
+}
+
+TEST_F(BigNumObjTest, CanCastNonConstToNonConstPointer) {
+ BigNumObj bn;
+ BigNum* bn_ptr = bn;
+ (void)bn_ptr;
+}
+
+TEST_F(BigNumObjTest, CanGetNonConstPointerFromNonConst) {
+ BigNumObj bn;
+ BigNum* bn_ptr = bn.get();
+ (void)bn_ptr;
+}
+
+} // namespace
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ecgroup_wrapper-test.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ecgroup_wrapper-test.cc
new file mode 100644
index 0000000000..4cc399c7a4
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ecgroup_wrapper-test.cc
@@ -0,0 +1,153 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief EcGroup C++ wrapper unit tests.
+ */
+
+#include "gtest/gtest.h"
+
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/bignum_wrapper-testhelper.h"
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+#include "epid/common-testhelper/ecgroup_wrapper-testhelper.h"
+#include "epid/common-testhelper/ecpoint_wrapper-testhelper.h"
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+#include "epid/common/types.h"
+}
+
+namespace {
+
+// Use Test Fixture for SetUp and TearDown
+class EcGroupObjTest : public ::testing::Test {
+ public:
+ static const BigNumStr q_str;
+ static const FqElemStr b_str;
+ static const BigNumStr p_str;
+ static const BigNumStr h1;
+ static const G1ElemStr g1_str;
+};
+const BigNumStr EcGroupObjTest::q_str = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2, 0x5E,
+ 0xEE, 0x71, 0xA4, 0x9F, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x98, 0x0A, 0x82,
+ 0xD3, 0x29, 0x2D, 0xDB, 0xAE, 0xD3, 0x30, 0x13}}};
+const FqElemStr EcGroupObjTest::b_str = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}}};
+const BigNumStr EcGroupObjTest::p_str = {
+ {{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2, 0x5E,
+ 0xEE, 0x71, 0xA4, 0x9E, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x99, 0x92, 0x1A,
+ 0xF6, 0x2D, 0x53, 0x6C, 0xD1, 0x0B, 0x50, 0x0D}}};
+const BigNumStr EcGroupObjTest::h1 = {
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}};
+const G1ElemStr EcGroupObjTest::g1_str = {
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}},
+ {{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}}}};
+
+TEST_F(EcGroupObjTest, ObjDefaultConstructedIsNotNull) {
+ EcGroupObj group;
+ EXPECT_NE(nullptr, (EcGroup*)group);
+}
+
+TEST_F(EcGroupObjTest, AssignmentCopiesPointer) {
+ EcGroupObj group1;
+ EcGroupObj group2;
+ EXPECT_NE((EcGroup*)group1, (EcGroup*)group2);
+ group1 = group2;
+ EXPECT_EQ((EcGroup*)group1, (EcGroup*)group2);
+}
+
+TEST_F(EcGroupObjTest, CopyConstructorCopiesPointer) {
+ EcGroupObj group1;
+ EcGroupObj group2(group1);
+ EXPECT_EQ((EcGroup*)group1, (EcGroup*)group2);
+}
+
+TEST_F(EcGroupObjTest, ConstructorDoesNotThrow) {
+ EcGroupObj group1;
+ FiniteFieldObj fq(this->q_str);
+ EcGroupObj group2(&fq, FfElementObj(&fq), FfElementObj(&fq, this->b_str),
+ FfElementObj(&fq, this->g1_str.x),
+ FfElementObj(&fq, this->g1_str.y), BigNumObj(this->p_str),
+ BigNumObj(this->h1));
+}
+
+TEST_F(EcGroupObjTest, CanCastConstToConstPointer) {
+ EcGroupObj const group;
+ EcGroup const* group_ptr = group;
+ (void)group_ptr;
+}
+
+TEST_F(EcGroupObjTest, CanGetConstPointerFromConst) {
+ EcGroupObj const group;
+ EcGroup const* group_ptr = group.getc();
+ (void)group_ptr;
+}
+
+/*
+The following tests are expected to result in
+compile time errors (by design)
+*/
+/*
+TEST_F(EcGroupObjTest, CannotCastConstToNonConstPointer) {
+ EcGroupObj const group;
+ EcGroup * group_ptr = group;
+ (void) group_ptr;
+}
+
+TEST_F(EcGroupObjTest, CannotGetNonConstPointerFromConst) {
+ EcGroupObj const group;
+ EcGroup * group_ptr = group.get();
+ (void) group_ptr;
+}
+*/
+
+TEST_F(EcGroupObjTest, CanCastNonConstToConstPointer) {
+ EcGroupObj group;
+ EcGroup const* group_ptr = group;
+ (void)group_ptr;
+}
+
+TEST_F(EcGroupObjTest, CanGetConstPointerFromNonConst) {
+ EcGroupObj group;
+ EcGroup const* group_ptr = group.getc();
+ (void)group_ptr;
+}
+
+TEST_F(EcGroupObjTest, CanCastNonConstToNonConstPointer) {
+ EcGroupObj group;
+ EcGroup* group_ptr = group;
+ (void)group_ptr;
+}
+
+TEST_F(EcGroupObjTest, CanGetNonConstPointerFromNonConst) {
+ EcGroupObj group;
+ EcGroup* group_ptr = group.get();
+ (void)group_ptr;
+}
+
+} // namespace
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ecpoint_wrapper-test.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ecpoint_wrapper-test.cc
new file mode 100644
index 0000000000..780b70fe4a
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ecpoint_wrapper-test.cc
@@ -0,0 +1,133 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief EcPoint C++ wrapper unit tests.
+ */
+
+#include "gtest/gtest.h"
+
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/ecpoint_wrapper-testhelper.h"
+#include "epid/common-testhelper/ecgroup_wrapper-testhelper.h"
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+}
+
+namespace {
+
+// Use Test Fixture for SetUp and TearDown
+class EcPointObjTest : public ::testing::Test {
+ public:
+ static EcGroupObj group;
+ static const G1ElemStr group_str_1;
+ static const G1ElemStr group_str_2;
+};
+
+const G1ElemStr EcPointObjTest::group_str_1 = {
+ {{{0x12, 0xA6, 0x5B, 0xD6, 0x91, 0x8D, 0x50, 0xA7, 0x66, 0xEB, 0x7D, 0x52,
+ 0xE3, 0x40, 0x17, 0x60, 0x7F, 0xDF, 0x6C, 0xA1, 0x2C, 0x1A, 0x37, 0xE0,
+ 0x92, 0xC0, 0xF7, 0xB9, 0x76, 0xAB, 0xB1, 0x8A}}},
+ {{{0x78, 0x65, 0x28, 0xCB, 0xAF, 0x07, 0x52, 0x50, 0x55, 0x7A, 0x5F, 0x30,
+ 0x0A, 0xC0, 0xB4, 0x6B, 0xEA, 0x6F, 0xE2, 0xF6, 0x6D, 0x96, 0xF7, 0xCD,
+ 0xC8, 0xD3, 0x12, 0x7F, 0x1F, 0x3A, 0x8B, 0x42}}}};
+
+const G1ElemStr EcPointObjTest::group_str_2 = {
+ {{{0xE6, 0x65, 0x23, 0x9B, 0xD4, 0x07, 0x16, 0x83, 0x38, 0x23, 0xB2, 0x67,
+ 0x57, 0xEB, 0x0F, 0x23, 0x3A, 0xF4, 0x8E, 0xDA, 0x71, 0x5E, 0xD9, 0x98,
+ 0x63, 0x98, 0x2B, 0xBC, 0x78, 0xD1, 0x94, 0xF2}}},
+ {{{0x63, 0xB0, 0xAD, 0xB8, 0x2C, 0xE8, 0x14, 0xFD, 0xA2, 0x39, 0x0E, 0x66,
+ 0xB7, 0xD0, 0x6A, 0xAB, 0xEE, 0xFA, 0x2E, 0x24, 0x9B, 0xB5, 0x14, 0x35,
+ 0xFE, 0xB6, 0xB0, 0xFF, 0xFD, 0x5F, 0x73, 0x19}}}};
+
+EcGroupObj EcPointObjTest::group;
+
+TEST_F(EcPointObjTest, ObjDefaultConstructedIsNotNull) {
+ EcPointObj point(&group);
+ EXPECT_NE(nullptr, (EcPoint*)point);
+}
+
+TEST_F(EcPointObjTest, AssignmentDoesNotCopyPointer) {
+ EcPointObj point1(&group, group_str_1);
+ EcPointObj point2(&group, group_str_2);
+ EXPECT_NE((EcPoint*)point1, (EcPoint*)point2);
+ point1 = point2;
+ EXPECT_NE((EcPoint*)point1, (EcPoint*)point2);
+}
+
+TEST_F(EcPointObjTest, CopyConstructorDoesNotCopyPointer) {
+ EcPointObj point1(&group, group_str_1);
+ EcPointObj point2(point1);
+ EXPECT_NE((EcPoint*)point1, (EcPoint*)point2);
+}
+
+TEST_F(EcPointObjTest, CanCastConstToConstPointer) {
+ EcPointObj const point(&group);
+ EcPoint const* point_ptr = point;
+ (void)point_ptr;
+}
+
+TEST_F(EcPointObjTest, CanGetConstPointerFromConst) {
+ EcPointObj const point(&group);
+ EcPoint const* point_ptr = point.getc();
+ (void)point_ptr;
+}
+
+/*
+The following tests are expected to result in
+compile time errors (by design)
+*/
+/*
+TEST_F(EcPointObjTest, CannotCastConstToNonConstPointer) {
+ EcPointObj const point(&group);
+ EcPoint * point_ptr = point;
+ (void) point_ptr;
+}
+
+TEST_F(EcPointObjTest, CannotGetNonConstPointerFromConst) {
+ EcPointObj const point(&group);
+ EcPoint * point_ptr = point.get();
+ (void) point_ptr;
+}
+*/
+
+TEST_F(EcPointObjTest, CanCastNonConstToConstPointer) {
+ EcPointObj point(&group);
+ EcPoint const* point_ptr = point;
+ (void)point_ptr;
+}
+
+TEST_F(EcPointObjTest, CanGetConstPointerFromNonConst) {
+ EcPointObj point(&group);
+ EcPoint const* point_ptr = point.getc();
+ (void)point_ptr;
+}
+
+TEST_F(EcPointObjTest, CanCastNonConstToNonConstPointer) {
+ EcPointObj point(&group);
+ EcPoint* point_ptr = point;
+ (void)point_ptr;
+}
+
+TEST_F(EcPointObjTest, CanGetNonConstPointerFromNonConst) {
+ EcPointObj point(&group);
+ EcPoint* point_ptr = point.get();
+ (void)point_ptr;
+}
+
+} // namespace
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ffelement_wrapper-test.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ffelement_wrapper-test.cc
new file mode 100644
index 0000000000..6f835ca420
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/ffelement_wrapper-test.cc
@@ -0,0 +1,155 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief FfElement C++ wrapper unit tests.
+ */
+
+#include "gtest/gtest.h"
+
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+}
+
+namespace {
+
+// Use Test Fixture for SetUp and TearDown
+class FfElementObjTest : public ::testing::Test {
+ public:
+ static FiniteFieldObj ff;
+ static const BigNumStr prime_str;
+
+ static const FpElemStr ff_str_1;
+ static const FpElemStr ff_str_2;
+ static const Fq2ElemStr ff_2_str;
+};
+
+/// Intel(R) EPID 2.0 parameter p
+const BigNumStr FfElementObjTest::prime_str = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2,
+ 0x5E, 0xEE, 0x71, 0xA4, 0x9E, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x99,
+ 0x92, 0x1A, 0xF6, 0x2D, 0x53, 0x6C, 0xD1, 0x0B, 0x50, 0x0D};
+
+const FpElemStr FfElementObjTest::ff_str_1 = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+};
+
+const FpElemStr FfElementObjTest::ff_str_2 = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+};
+
+const Fq2ElemStr FfElementObjTest::ff_2_str = {
+ // 1
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+ // 2
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20};
+
+FiniteFieldObj FfElementObjTest::ff(prime_str);
+
+TEST_F(FfElementObjTest, ObjDefaultConstructedIsNotNull) {
+ FfElementObj ffe(&ff);
+ EXPECT_NE(nullptr, (FfElement*)ffe);
+}
+
+TEST_F(FfElementObjTest, AssignmentDoesNotCopyPointer) {
+ FfElementObj ffe1(&ff, ff_str_1);
+ FfElementObj ffe2(&ff, ff_str_2);
+ EXPECT_NE((FfElement*)ffe1, (FfElement*)ffe2);
+ ffe1 = ffe2;
+ EXPECT_NE((FfElement*)ffe1, (FfElement*)ffe2);
+}
+
+TEST_F(FfElementObjTest, CopyConstructorDoesNotCopyPointer) {
+ FfElementObj ffe1(&ff, ff_str_1);
+ FfElementObj ffe2(ffe1);
+ EXPECT_NE((FfElement*)ffe1, (FfElement*)ffe2);
+}
+
+TEST_F(FfElementObjTest, CanConstructBinomialElement) {
+ FfElementObj ffe1(&ff, ff_str_1);
+ FiniteFieldObj ff2(ff, ffe1, 2);
+ FfElementObj ff2_e1(&ff2, ff_2_str);
+ EXPECT_NE(nullptr, (FfElement*)ff2_e1);
+}
+
+TEST_F(FfElementObjTest, CanCastConstToConstPointer) {
+ FfElementObj const ffe(&ff);
+ FfElement const* ffe_ptr = ffe;
+ (void)ffe_ptr;
+}
+
+TEST_F(FfElementObjTest, CanGetConstPointerFromConst) {
+ FfElementObj const ffe(&ff);
+ FfElement const* ffe_ptr = ffe.getc();
+ (void)ffe_ptr;
+}
+
+/*
+The following tests are expected to result in
+compile time errors (by design)
+*/
+/*
+TEST_F(FfElementObjTest, CannotCastConstToNonConstPointer) {
+ FfElementObj const ffe(&ff);
+ FfElement * ffe_ptr = ffe;
+ (void) ffe_ptr;
+}
+
+TEST_F(FfElementObjTest, CannotGetNonConstPointerFromConst) {
+ FfElementObj const ffe(&ff);
+ FfElement * ffe_ptr = ffe.get();
+ (void) ffe_ptr;
+}
+*/
+
+TEST_F(FfElementObjTest, CanCastNonConstToConstPointer) {
+ FfElementObj ffe(&ff);
+ FfElement const* ffe_ptr = ffe;
+ (void)ffe_ptr;
+}
+
+TEST_F(FfElementObjTest, CanGetConstPointerFromNonConst) {
+ FfElementObj ffe(&ff);
+ FfElement const* ffe_ptr = ffe.getc();
+ (void)ffe_ptr;
+}
+
+TEST_F(FfElementObjTest, CanCastNonConstToNonConstPointer) {
+ FfElementObj ffe(&ff);
+ FfElement* ffe_ptr = ffe;
+ (void)ffe_ptr;
+}
+
+TEST_F(FfElementObjTest, CanGetNonConstPointerFromNonConst) {
+ FfElementObj ffe(&ff);
+ FfElement* ffe_ptr = ffe.get();
+ (void)ffe_ptr;
+}
+
+} // namespace
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/finite_field_wrapper-test.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/finite_field_wrapper-test.cc
new file mode 100644
index 0000000000..1ce59d0c73
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/finite_field_wrapper-test.cc
@@ -0,0 +1,134 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief FiniteField C++ wrapper unit tests.
+ */
+
+#include "gtest/gtest.h"
+
+#include "epid/common-testhelper/errors-testhelper.h"
+#include "epid/common-testhelper/finite_field_wrapper-testhelper.h"
+#include "epid/common-testhelper/ffelement_wrapper-testhelper.h"
+
+extern "C" {
+#include "epid/common/math/bignum.h"
+#include "epid/common/types.h"
+}
+
+namespace {
+
+// Use Test Fixture for SetUp and TearDown
+class FiniteFieldObjTest : public ::testing::Test {
+ public:
+ static const BigNumStr prime_str;
+ static const FpElemStr ground_str;
+};
+
+/// Intel(R) EPID 2.0 parameter p
+const BigNumStr FiniteFieldObjTest::prime_str = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0xCD, 0x46, 0xE5, 0xF2,
+ 0x5E, 0xEE, 0x71, 0xA4, 0x9E, 0x0C, 0xDC, 0x65, 0xFB, 0x12, 0x99,
+ 0x92, 0x1A, 0xF6, 0x2D, 0x53, 0x6C, 0xD1, 0x0B, 0x50, 0x0D};
+
+const FpElemStr FiniteFieldObjTest::ground_str = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+TEST_F(FiniteFieldObjTest, ObjDefaultConstructedIsNotNull) {
+ FiniteFieldObj ff;
+ EXPECT_NE(nullptr, (FiniteField*)ff);
+}
+
+TEST_F(FiniteFieldObjTest, AssignmentCopiesPointer) {
+ FiniteFieldObj ff1;
+ FiniteFieldObj ff2;
+ EXPECT_NE((FiniteField*)ff1, (FiniteField*)ff2);
+ ff1 = ff2;
+ EXPECT_EQ((FiniteField*)ff1, (FiniteField*)ff2);
+}
+
+TEST_F(FiniteFieldObjTest, CopyConstructorCopiesPointer) {
+ FiniteFieldObj ff1;
+ FiniteFieldObj ff2(ff1);
+ EXPECT_EQ((FiniteField*)ff1, (FiniteField*)ff2);
+}
+
+TEST_F(FiniteFieldObjTest, ConstructorDoesNotThrow) {
+ FiniteFieldObj ff1;
+ FiniteFieldObj ff2(this->prime_str);
+ FfElementObj ffe(&ff2, this->ground_str);
+ FiniteFieldObj ff3(ff2, ffe, 2);
+}
+
+TEST_F(FiniteFieldObjTest, CanCastConstToConstPointer) {
+ FiniteFieldObj const ff;
+ FiniteField const* ff_ptr = ff;
+ (void)ff_ptr;
+}
+
+TEST_F(FiniteFieldObjTest, CanGetConstPointerFromConst) {
+ FiniteFieldObj const ff;
+ FiniteField const* ff_ptr = ff.getc();
+ (void)ff_ptr;
+}
+
+/*
+The following tests are expected to result in
+compile time errors (by design)
+*/
+/*
+TEST_F(FiniteFieldObjTest, CannotCastConstToNonConstPointer) {
+ FiniteFieldObj const ff;
+ FiniteField * ff_ptr = ff;
+ (void) ff_ptr;
+}
+
+TEST_F(FiniteFieldObjTest, CannotGetNonConstPointerFromConst) {
+ FiniteFieldObj const ff;
+ FiniteField * ff_ptr = ff.get();
+ (void) ff_ptr;
+}
+*/
+
+TEST_F(FiniteFieldObjTest, CanCastNonConstToConstPointer) {
+ FiniteFieldObj ff;
+ FiniteField const* ff_ptr = ff;
+ (void)ff_ptr;
+}
+
+TEST_F(FiniteFieldObjTest, CanGetConstPointerFromNonConst) {
+ FiniteFieldObj ff;
+ FiniteField const* ff_ptr = ff.getc();
+ (void)ff_ptr;
+}
+
+TEST_F(FiniteFieldObjTest, CanCastNonConstToNonConstPointer) {
+ FiniteFieldObj ff;
+ FiniteField* ff_ptr = ff;
+ (void)ff_ptr;
+}
+
+TEST_F(FiniteFieldObjTest, CanGetNonConstPointerFromNonConst) {
+ FiniteFieldObj ff;
+ FiniteField* ff_ptr = ff.get();
+ (void)ff_ptr;
+}
+
+} // namespace
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/main-test.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/main-test.cc
new file mode 100644
index 0000000000..70f2d3a182
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/unittests/main-test.cc
@@ -0,0 +1,26 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/*!
+ * \file
+ * \brief Main entry point for unit tests.
+ */
+
+#include "gtest/gtest.h"
+
+int main(int argc, char** argv) {
+ testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/verifier_wrapper-testhelper.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/verifier_wrapper-testhelper.cc
new file mode 100644
index 0000000000..ef9ba8b2b9
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/verifier_wrapper-testhelper.cc
@@ -0,0 +1,53 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Verifier C++ wrapper implementation.
+ */
+#include
+#include
+#include
+
+#include "epid/common-testhelper/verifier_wrapper-testhelper.h"
+
+VerifierCtxObj::VerifierCtxObj(GroupPubKey const& pub_key) : ctx_(nullptr) {
+ auto sts = EpidVerifierCreate(&pub_key, nullptr, &ctx_);
+ if (kEpidNoErr != sts) {
+ printf("%s(%d): %s\n", __FILE__, __LINE__, "test defect:");
+ throw std::logic_error(std::string("Failed to call: ") +
+ "EpidVerifierCreate()");
+ }
+}
+
+VerifierCtxObj::VerifierCtxObj(GroupPubKey const& pub_key,
+ VerifierPrecomp const& precomp)
+ : ctx_(nullptr) {
+ auto sts = EpidVerifierCreate(&pub_key, &precomp, &ctx_);
+ if (kEpidNoErr != sts) {
+ printf("%s(%d): %s\n", __FILE__, __LINE__, "test defect:");
+ throw std::logic_error(std::string("Failed to call: ") +
+ "EpidVerifierCreate()");
+ }
+}
+
+VerifierCtxObj::~VerifierCtxObj() { EpidVerifierDelete(&ctx_); }
+
+VerifierCtx* VerifierCtxObj::ctx() const { return ctx_; }
+
+VerifierCtxObj::operator VerifierCtx*() const { return ctx_; }
+
+VerifierCtxObj::operator const VerifierCtx*() const { return ctx_; }
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/verifier_wrapper-testhelper.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/verifier_wrapper-testhelper.h
new file mode 100644
index 0000000000..1a42f0f813
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common-testhelper/verifier_wrapper-testhelper.h
@@ -0,0 +1,55 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Verifier C++ wrapper interface.
+ */
+#ifndef EPID_COMMON_TESTHELPER_VERIFIER_WRAPPER_TESTHELPER_H_
+#define EPID_COMMON_TESTHELPER_VERIFIER_WRAPPER_TESTHELPER_H_
+
+extern "C" {
+#include "epid/verifier/api.h"
+}
+
+/// C++ Wrapper to manage memory for VerifierCtx via RAII
+class VerifierCtxObj {
+ public:
+ /// Create a VerifierCtx
+ explicit VerifierCtxObj(GroupPubKey const& pub_key);
+ /// Create a VerifierCtx given precomputation blob
+ VerifierCtxObj(GroupPubKey const& pub_key, VerifierPrecomp const& precomp);
+
+ // This class instances are not meant to be copied.
+ // Explicitly delete copy constructor and assignment operator.
+ VerifierCtxObj(const VerifierCtxObj&) = delete;
+ VerifierCtxObj& operator=(const VerifierCtxObj&) = delete;
+
+ /// Destroy the VerifierCtx
+ ~VerifierCtxObj();
+ /// get a pointer to the stored VerifierCtx
+ VerifierCtx* ctx() const;
+ /// cast operator to get the pointer to the stored VerifierCtx
+ operator VerifierCtx*() const;
+ /// const cast operator to get the pointer to the stored VerifierCtx
+ operator const VerifierCtx*() const;
+
+ private:
+ /// The stored VerifierCtx
+ VerifierCtx* ctx_;
+};
+
+#endif // EPID_COMMON_TESTHELPER_VERIFIER_WRAPPER_TESTHELPER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/file_parser.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/file_parser.h
new file mode 100644
index 0000000000..d6d5c8937e
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/file_parser.h
@@ -0,0 +1,219 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/// Epid 1.1 issuer material parsing utilities.
+/*!
+ * \file
+ */
+#ifndef EPID_COMMON_1_1_FILE_PARSER_H_
+#define EPID_COMMON_1_1_FILE_PARSER_H_
+
+#include
+
+#include "epid/common/1.1/types.h"
+#include "epid/common/errors.h"
+#include "epid/common/file_parser.h"
+
+/// Parser for 1.1 issuer material
+/*!
+ \defgroup Epid11FileParserModule EPID 1.1 support
+
+ Defines the APIs needed to parse Intel(R) EPID 1.1 issuer material.
+
+ \ingroup FileParser
+ \see EPID 1.1
+support
+ @{
+*/
+
+/// Extracts group public key from buffer in issuer binary format
+/*!
+
+ Extracts the first group public key from a buffer with format of
+ Intel(R) EPID 1.1 Group Public Key Certificate Binary File. The
+ function validates that the first public key was signed by the
+ private key corresponding to the provided CA certificate and the
+ size of the input buffer is correct.
+
+ \warning
+ It is the responsibility of the caller to authenticate the
+ EpidCaCertificate.
+
+ \param[in] buf
+ Pointer to buffer containing public key to extract.
+
+ \param[in] len
+ The size of buf in bytes.
+
+ \param[in] cert
+ The issuing CA public key certificate.
+
+ \param[out] pubkey
+ The extracted group public key.
+
+ \returns ::EpidStatus
+
+ \retval ::kEpidSigInvalid
+ Parsing failed due to data authentication failure.
+
+ \see EPID 1.1
+ support
+
+ */
+EpidStatus Epid11ParseGroupPubKeyFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert,
+ Epid11GroupPubKey* pubkey);
+
+/// Extracts private key revocation list from buffer in issuer binary format
+/*!
+
+ Extracts the private key revocation list from a buffer with format of
+ Intel(R) EPID 1.1 Binary Private Key Revocation List File. The function
+ validates that the revocation list was signed by the private
+ key corresponding to the provided CA certificate and the size of the
+ input buffer is correct.
+
+ To determine the required size of the revocation list output buffer,
+ provide a null pointer for the output buffer.
+
+ \warning
+ It is the responsibility of the caller to authenticate the
+ EpidCaCertificate.
+
+ \param[in] buf
+ Pointer to buffer containing the revocation list to extract.
+
+ \param[in] len
+ The size of buf in bytes.
+
+ \param[in] cert
+ The issuing CA public key certificate.
+
+ \param[out] rl
+ The extracted revocation list. If Null, rl_len is filled with
+ the required output buffer size.
+
+ \param[in,out] rl_len
+ The size of rl in bytes.
+
+ \returns ::EpidStatus
+
+ \retval ::kEpidSigInvalid
+ Parsing failed due to data authentication failure.
+
+ \see EPID 1.1
+ support
+
+ */
+EpidStatus Epid11ParsePrivRlFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert,
+ Epid11PrivRl* rl, size_t* rl_len);
+
+/// Extracts signature revocation list from buffer in issuer binary format
+/*!
+
+ Extracts the signature based revocation list from a buffer with
+ format of Intel(R) EPID 1.1 Binary Signature Revocation List File. The
+ function
+ validates that the revocation list was signed by the private key
+ corresponding to the provided CA certificate and the size of the
+ input buffer is correct.
+
+ To determine the required size of the revocation list output buffer,
+ provide a null pointer for the output buffer.
+
+ \warning
+ It is the responsibility of the caller to authenticate the
+ EpidCaCertificate.
+
+ \param[in] buf
+ Pointer to buffer containing the revocation list to extract.
+
+ \param[in] len
+ The size of buf in bytes.
+
+ \param[in] cert
+ The issuing CA public key certificate.
+
+ \param[out] rl
+ The extracted revocation list. If Null, rl_len is filled with
+ the required output buffer size.
+
+ \param[in,out] rl_len
+ The size of rl in bytes.
+
+ \returns ::EpidStatus
+
+ \retval ::kEpidSigInvalid
+ Parsing failed due to data authentication failure.
+
+ \see EPID 1.1
+ support
+
+ */
+EpidStatus Epid11ParseSigRlFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert, Epid11SigRl* rl,
+ size_t* rl_len);
+
+/// Extracts group revocation list from buffer in issuer binary format
+/*!
+
+ Extracts the group revocation list from a buffer with format of
+ Intel(R) EPID 1.1 Binary Group Certificate Revocation List File. The function
+ validates that the revocation list was signed by the private key
+ corresponding to the provided CA certificate and the size of the
+ input buffer is correct.
+
+ To determine the required size of the revocation list output buffer,
+ provide a null pointer for the output buffer.
+
+ \warning
+ It is the responsibility of the caller to authenticate the
+ EpidCaCertificate.
+
+ \param[in] buf
+ Pointer to buffer containing the revocation list to extract.
+
+ \param[in] len
+ The size of buf in bytes.
+
+ \param[in] cert
+ The issuing CA public key certificate.
+
+ \param[out] rl
+ The extracted revocation list. If Null, rl_len is filled with
+ the required output buffer size.
+
+ \param[in,out] rl_len
+ The size of rl in bytes.
+
+ \returns ::EpidStatus
+
+ \retval ::kEpidSigInvalid
+ Parsing failed due to data authentication failure.
+
+ \see EPID 1.1
+ support
+
+ */
+EpidStatus Epid11ParseGroupRlFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert,
+ Epid11GroupRl* rl, size_t* rl_len);
+
+/*!
+ @}
+*/
+
+#endif // EPID_COMMON_1_1_FILE_PARSER_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/commitment.c b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/commitment.c
new file mode 100644
index 0000000000..7749fa6539
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/commitment.c
@@ -0,0 +1,135 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Commitment hash implementation.
+ */
+#include
+#include
+#include "epid/common/1.1/src/commitment.h"
+#include "epid/common/src/memory.h"
+#include "epid/common/math/bignum.h"
+#include "epid/common/math/src/bignum-internal.h"
+#include "epid/common/src/endian_convert.h"
+
+EpidStatus SetKeySpecificEpid11CommitValues(Epid11GroupPubKey const* pub_key,
+ Epid11CommitValues* values) {
+ static const Epid11Params params = {
+#include "epid/common/1.1/src/epid11params_tate.inc"
+ };
+
+ if (!pub_key || !values) return kEpidBadArgErr;
+
+ values->p = params.p;
+ values->g1 = params.g1;
+ values->g2 = params.g2;
+ values->g3 = params.g3;
+ values->h1 = pub_key->h1;
+ values->h2 = pub_key->h2;
+ values->w = pub_key->w;
+
+ return kEpidNoErr;
+}
+
+EpidStatus SetCalculatedEpid11CommitValues(
+ Epid11G3ElemStr const* B, Epid11G3ElemStr const* K,
+ Epid11G1ElemStr const* T1, Epid11G1ElemStr const* T2, EcPoint const* R1,
+ EcPoint const* R2, EcPoint const* R3, FfElement const* R4, EcGroup* G1,
+ EcGroup* G3, FiniteField* GT, Epid11CommitValues* values) {
+ EpidStatus result;
+ if (!B || !K || !T1 || !T2 || !R1 || !R2 || !R3 || !R4 || !G1 || !G3 || !GT ||
+ !values) {
+ return kEpidBadArgErr;
+ }
+
+ values->B = *B;
+ values->K = *K;
+ values->T1 = *T1;
+ values->T2 = *T2;
+
+ result = WriteEcPoint(G1, R1, &values->R1, sizeof(values->R1));
+ if (kEpidNoErr != result) return result;
+ result = WriteEcPoint(G1, R2, &values->R2, sizeof(values->R2));
+ if (kEpidNoErr != result) return result;
+ result = WriteEcPoint(G3, R3, &values->R3, sizeof(values->R3));
+ if (kEpidNoErr != result) return result;
+ result = WriteFfElement(GT, R4, &values->R4, sizeof(values->R4));
+ if (kEpidNoErr != result) return result;
+
+ return kEpidNoErr;
+}
+
+EpidStatus CalculateEpid11CommitmentHash(Epid11CommitValues const* values,
+ void const* msg, uint32_t msg_len,
+ OctStr80 const* nd, Sha256Digest* c) {
+ EpidStatus result;
+
+#pragma pack(1)
+ struct {
+ Sha256Digest t4;
+ OctStr80 nd;
+ uint32_t msg_len;
+ uint8_t msg[1];
+ }* t4mconcat_buf = NULL;
+#pragma pack()
+ size_t max_msg_len =
+ SIZE_MAX - (sizeof(*t4mconcat_buf) - sizeof(t4mconcat_buf->msg));
+ size_t t4mconcat_size =
+ sizeof(*t4mconcat_buf) - sizeof(t4mconcat_buf->msg) + msg_len;
+
+ if (!values || !nd || !c) return kEpidBadArgErr;
+ if (!msg && (0 != msg_len)) {
+ // if message is non-empty it must have both length and content
+ return kEpidBadArgErr;
+ }
+ if (max_msg_len < (size_t)msg_len) {
+ return kEpidBadArgErr;
+ }
+
+ do {
+ // compute c = H(t4 || nd || msg_len || msg).
+ t4mconcat_buf = SAFE_ALLOC(t4mconcat_size);
+ if (!t4mconcat_buf) {
+ result = kEpidMemAllocErr;
+ break;
+ }
+ // Calculate c = Hash(t4 || nd || mSize || m) where t4 is Hash(p || g1 || g2
+ // || g3 || h1 || h2 || w || B || K || T1 || T2 || R1 || R2 || R3 || R4).
+ result = Sha256MessageDigest(values, sizeof(*values), &t4mconcat_buf->t4);
+ if (kEpidNoErr != result) break;
+ t4mconcat_buf->nd = *nd;
+ t4mconcat_buf->msg_len = ntohl(msg_len);
+ // place variable length msg into t4mconcat_buf
+ if (msg) {
+ if (0 != memcpy_S(&t4mconcat_buf->msg[0],
+ t4mconcat_size - sizeof(*t4mconcat_buf) +
+ sizeof(t4mconcat_buf->msg),
+ msg, msg_len)) {
+ result = kEpidBadArgErr;
+ break;
+ }
+ }
+ result = Sha256MessageDigest(t4mconcat_buf, t4mconcat_size, c);
+ if (kEpidNoErr != result) break;
+
+ result = kEpidNoErr;
+ } while (0);
+
+ SAFE_FREE(t4mconcat_buf);
+
+ return result;
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/commitment.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/commitment.h
new file mode 100644
index 0000000000..b60659054f
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/commitment.h
@@ -0,0 +1,137 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+#ifndef EPID_COMMON_1_1_SRC_COMMITMENT_H_
+#define EPID_COMMON_1_1_SRC_COMMITMENT_H_
+/*!
+ * \file
+ * \brief Commitment hash interface.
+ * \addtogroup EpidCommon
+ * @{
+ */
+#include "epid/common/errors.h"
+#include "epid/common/1.1/types.h"
+#include "epid/common/math/ecgroup.h"
+#include "epid/common/math/finitefield.h"
+#include "epid/common/math/hash.h"
+
+#pragma pack(1)
+/// Storage for values to create Intel(R) EPID 1.1 commitment in Sign and Verify
+/// algorithms
+typedef struct Epid11CommitValues {
+ BigNumStr p; ///< Intel(R) EPID 1.1 parameter p
+ Epid11G1ElemStr g1; ///< Intel(R) EPID 1.1 parameter g1
+ Epid11G2ElemStr g2; ///< Intel(R) EPID 1.1 parameter g2
+ Epid11G1ElemStr g3; ///< Intel(R) EPID 1.1 parameter g3
+ Epid11G1ElemStr h1; ///< Group public key value h1
+ Epid11G1ElemStr h2; ///< Group public key value h2
+ Epid11G2ElemStr w; ///< Group public key value w
+ Epid11G3ElemStr B; ///< Variable B computed in algorithm
+ Epid11G3ElemStr K; ///< Variable K computed in algorithm
+ Epid11G1ElemStr T1; ///< Variable T1 computed in algorithm
+ Epid11G1ElemStr T2; ///< Variable T2 computed in algorithm
+ Epid11G1ElemStr R1; ///< Variable R1 computed in algorithm
+ Epid11G1ElemStr R2; ///< Variable R2 computed in algorithm
+ Epid11G3ElemStr R3; ///< Variable R3 computed in algorithm
+ Epid11GtElemStr R4; ///< Variable R4 computed in algorithm
+} Epid11CommitValues;
+#pragma pack()
+
+/// Set Intel(R) EPID 1.1 group public key related fields to Epid11CommitValues
+/// structure
+/*!
+ Set p, g1, g2, g3, h1, h2 and w fields of values argument.
+
+ \param[in] pub_key
+ Intel(R) EPID 1.1 Group public key
+ \param[out] values
+ Pointer to Epid11CommitValues structure to fill.
+
+ \returns ::EpidStatus
+
+ \see CalculateCommitmentHash
+*/
+EpidStatus SetKeySpecificEpid11CommitValues(Epid11GroupPubKey const* pub_key,
+ Epid11CommitValues* values);
+
+/// Set Epid11CommitValues structure fields calculated in Intel(R) EPID 1.1 Sign
+/// or Verify algorithm
+/*!
+ Set B, K, T1, T2, R1, R2, R3 and R4 fields of values argument.
+
+ \param[in] B
+ Value of B to set
+ \param[in] K
+ Value of K to set
+ \param[in] T1
+ Value of T1 to set
+ \param[in] T2
+ Value of T2 to set
+ \param[in] R1
+ Value of R1 to set
+ \param[in] R2
+ Value of R2 to set
+ \param[in] R3
+ Value of R3 to set
+ \param[in] R4
+ Value of R4 to set
+ \param[in] G1
+ EcGroup containing element R1, R2
+ \param[in] G3
+ EcGroup containing element R3
+ \param[in] GT
+ FiniteField containing element R4
+ \param[out] values
+ Pointer to CommitValues structure to fill.
+
+ \returns ::EpidStatus
+
+ \see CalculateCommitmentHash
+*/
+EpidStatus SetCalculatedEpid11CommitValues(
+ Epid11G3ElemStr const* B, Epid11G3ElemStr const* K,
+ Epid11G1ElemStr const* T1, Epid11G1ElemStr const* T2, EcPoint const* R1,
+ EcPoint const* R2, EcPoint const* R3, FfElement const* R4, EcGroup* G1,
+ EcGroup* G3, FiniteField* GT, Epid11CommitValues* values);
+
+/// Calculate Hash(t4 || nd || mSize || m) for Intel(R) EPID 1.1 Sign and Verfiy
+/// algorithms
+/*!
+ Calculate c = Hash(t4 || nd || mSize || m) where t4 is
+ Hash(p || g1 || g2 || g3 || h1 || h2 || w || B || K || T1 || T2 || R1 || R2 ||
+ R3 || R4).
+
+ \param[in] values
+ Commit values to hash
+ \param[in] msg
+ Message to hash
+ \param[in] msg_len
+ Size of msg buffer in bytes
+ \param[in] nd
+ 80-bit big integer
+ \param[out] c
+ Result of calculation
+
+ \returns ::EpidStatus
+
+ \see SetKeySpecificCommitValues
+ \see SetCalculatedCommitValues
+*/
+EpidStatus CalculateEpid11CommitmentHash(Epid11CommitValues const* values,
+ void const* msg, uint32_t msg_len,
+ OctStr80 const* nd, Sha256Digest* c);
+
+/*! @} */
+#endif // EPID_COMMON_1_1_SRC_COMMITMENT_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params.c b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params.c
new file mode 100644
index 0000000000..0a1e620d35
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params.c
@@ -0,0 +1,469 @@
+/*############################################################################
+# Copyright 2016 Intel Corporation
+#
+# Licensed 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.
+############################################################################*/
+
+/*!
+* \file
+* \brief Intel(R) EPID 1.1 constant parameters implementation.
+*/
+#include "epid/common/1.1/src/epid11params.h"
+#include "epid/common/src/memory.h"
+#include "epid/common/math/tatepairing.h"
+
+/// Handle SDK Error with Break
+#define BREAK_ON_EPID_ERROR(ret) \
+ if (kEpidNoErr != (ret)) { \
+ break; \
+ }
+
+/// Count of elements in array
+#define COUNT_OF(a) (sizeof(a) / sizeof((a)[0]))
+
+/// create a new Finite Field Fqd
+static EpidStatus NewFqd(Epid11Params const* params, FiniteField* Fq,
+ FiniteField** Fqd);
+
+/// create a new Finite Field Fqk
+EpidStatus NewFqk(Epid11Params const* params, FiniteField* Fq, FiniteField* Fqd,
+ FiniteField** Fqk);
+
+/// create a new Elliptic curve group G1 over Fq
+static EpidStatus NewG1(Epid11Params const* params, FiniteField* Fq,
+ EcGroup** G1);
+
+/// create a new Elliptic curve group G2 over Fqd
+static EpidStatus NewG2(Epid11Params const* params, FiniteField* Fq,
+ FiniteField* Fqd, EcGroup** G2);
+
+/// create a new Elliptic curve group G3 over Fq'
+static EpidStatus NewG3(Epid11Params const* params, FiniteField* Fq_tick,
+ EcGroup** G3);
+
+EpidStatus CreateEpid11Params(Epid11Params_** params) {
+ EpidStatus result = kEpidErr;
+ Epid11Params_* _params = NULL;
+ Epid11Params params_str = {
+#include "epid/common/1.1/src/epid11params_tate.inc"
+ };
+
+ if (!params) return kEpidBadArgErr;
+
+ do {
+ _params = SAFE_ALLOC(sizeof(Epid11Params_));
+ if (!_params) {
+ result = kEpidMemAllocErr;
+ break;
+ }
+
+ // BigNum* p;
+ result = NewBigNum(sizeof(params_str.p), &_params->p);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadBigNum(¶ms_str.p, sizeof(params_str.p), _params->p);
+ BREAK_ON_EPID_ERROR(result);
+ // BigNum* p_tick;
+ result = NewBigNum(sizeof(params_str.p_tick), &_params->p_tick);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadBigNum(¶ms_str.p_tick, sizeof(params_str.p_tick),
+ _params->p_tick);
+ BREAK_ON_EPID_ERROR(result);
+
+ // FiniteField* Fp;
+ result = NewFiniteField(¶ms_str.p, &_params->Fp);
+ BREAK_ON_EPID_ERROR(result);
+ // FiniteField* Fq;
+ result = NewFiniteField(¶ms_str.q, &_params->Fq);
+ BREAK_ON_EPID_ERROR(result);
+ // FiniteField* Fp_tick;
+ result = NewFiniteField(¶ms_str.p_tick, &_params->Fp_tick);
+ BREAK_ON_EPID_ERROR(result);
+ // FiniteField* Fq_tick;
+ result = NewFiniteField(¶ms_str.q_tick, &_params->Fq_tick);
+ BREAK_ON_EPID_ERROR(result);
+ // FiniteField* Fqd;
+ result = NewFqd(¶ms_str, _params->Fq, &_params->Fqd);
+ BREAK_ON_EPID_ERROR(result);
+
+ // EcGroup* G1;
+ result = NewG1(¶ms_str, _params->Fq, &_params->G1);
+ BREAK_ON_EPID_ERROR(result);
+ // EcGroup* G2;
+ result = NewG2(¶ms_str, _params->Fq, _params->Fqd, &_params->G2);
+ BREAK_ON_EPID_ERROR(result);
+ // EcGroup* G3;
+ result = NewG3(¶ms_str, _params->Fq_tick, &_params->G3);
+ BREAK_ON_EPID_ERROR(result);
+ // FiniteField* GT;
+ result = NewFqk(¶ms_str, _params->Fq, _params->Fqd, &_params->GT);
+ BREAK_ON_EPID_ERROR(result);
+
+ // EcPoint* g1;
+ result = NewEcPoint(_params->G1, &_params->g1);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadEcPoint(_params->G1, ¶ms_str.g1, sizeof(params_str.g1),
+ _params->g1);
+ BREAK_ON_EPID_ERROR(result);
+ // EcPoint* g2;
+ result = NewEcPoint(_params->G2, &_params->g2);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadEcPoint(_params->G2, ¶ms_str.g2, sizeof(params_str.g2),
+ _params->g2);
+ BREAK_ON_EPID_ERROR(result);
+ // EcPoint* g3;
+ result = NewEcPoint(_params->G3, &_params->g3);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadEcPoint(_params->G3, ¶ms_str.g3, sizeof(params_str.g3),
+ _params->g3);
+ BREAK_ON_EPID_ERROR(result);
+
+ // Epid11PairingState* pairing_state;
+ result = NewEpid11PairingState(_params->G1, _params->G2, _params->GT,
+ &_params->pairing_state);
+ BREAK_ON_EPID_ERROR(result);
+
+ *params = _params;
+ result = kEpidNoErr;
+ } while (0);
+
+ if (kEpidNoErr != result && _params) {
+ DeleteEpid11PairingState(&_params->pairing_state);
+
+ DeleteBigNum(&_params->p);
+ DeleteBigNum(&_params->p_tick);
+ DeleteEcPoint(&_params->g1);
+ DeleteEcPoint(&_params->g2);
+ DeleteEcPoint(&_params->g3);
+
+ DeleteFiniteField(&_params->Fp);
+ DeleteFiniteField(&_params->Fq);
+ DeleteFiniteField(&_params->Fp_tick);
+ DeleteFiniteField(&_params->Fq_tick);
+ DeleteFiniteField(&_params->Fqd);
+ DeleteFiniteField(&_params->GT);
+
+ DeleteEcGroup(&_params->G1);
+ DeleteEcGroup(&_params->G2);
+ DeleteEcGroup(&_params->G3);
+ SAFE_FREE(_params);
+ }
+ return result;
+}
+
+void DeleteEpid11Params(Epid11Params_** params) {
+ if (params && *params) {
+ DeleteEpid11PairingState(&(*params)->pairing_state);
+
+ DeleteBigNum(&(*params)->p);
+ DeleteBigNum(&(*params)->p_tick);
+ DeleteEcPoint(&(*params)->g1);
+ DeleteEcPoint(&(*params)->g2);
+ DeleteEcPoint(&(*params)->g3);
+
+ DeleteFiniteField(&(*params)->Fp);
+ DeleteFiniteField(&(*params)->Fq);
+ DeleteFiniteField(&(*params)->Fp_tick);
+ DeleteFiniteField(&(*params)->Fq_tick);
+ DeleteFiniteField(&(*params)->Fqd);
+ DeleteFiniteField(&(*params)->GT);
+
+ DeleteEcGroup(&(*params)->G1);
+ DeleteEcGroup(&(*params)->G2);
+ DeleteEcGroup(&(*params)->G3);
+
+ SAFE_FREE(*params);
+ }
+}
+
+EpidStatus NewFqd(Epid11Params const* params, FiniteField* Fq,
+ FiniteField** Fqd) {
+ if (!params || !Fq || !Fqd) return kEpidBadArgErr;
+
+ return NewFiniteFieldViaPolynomialExtension(Fq, params->coeff, 3, Fqd);
+}
+
+EpidStatus NewFqk(Epid11Params const* params, FiniteField* Fq, FiniteField* Fqd,
+ FiniteField** Fqk) {
+ EpidStatus result = kEpidNoErr;
+ FfElement* qnr = NULL;
+ FfElement* neg_qnr = NULL;
+ FfElement* ground_element = NULL;
+ Fq3ElemStr ground_element_str = {0};
+
+ if (!params || !Fq || !Fqd || !Fqk) return kEpidBadArgErr;
+
+ do {
+ result = NewFfElement(Fq, &qnr);
+ BREAK_ON_EPID_ERROR(result);
+
+ result = ReadFfElement(Fq, &(params->qnr), sizeof(params->qnr), qnr);
+ BREAK_ON_EPID_ERROR(result);
+
+ result = NewFfElement(Fq, &neg_qnr);
+ BREAK_ON_EPID_ERROR(result);
+
+ result = FfNeg(Fq, qnr, neg_qnr);
+ BREAK_ON_EPID_ERROR(result);
+
+ result = WriteFfElement(Fq, neg_qnr, &ground_element_str.a[0],
+ sizeof(ground_element_str.a[0]));
+ BREAK_ON_EPID_ERROR(result);
+
+ result = NewFfElement(Fqd, &ground_element);
+ BREAK_ON_EPID_ERROR(result);
+
+ result = ReadFfElement(Fqd, &(ground_element_str),
+ sizeof(ground_element_str), ground_element);
+ BREAK_ON_EPID_ERROR(result);
+
+ result = NewFiniteFieldViaBinomalExtension(Fqd, ground_element, 2, Fqk);
+ BREAK_ON_EPID_ERROR(result);
+ } while (0);
+
+ DeleteFfElement(&qnr);
+ DeleteFfElement(&neg_qnr);
+ DeleteFfElement(&ground_element);
+
+ return result;
+}
+
+EpidStatus NewG1(Epid11Params const* params, FiniteField* Fq, EcGroup** G1) {
+ EpidStatus result = kEpidErr;
+ EcGroup* ec = NULL;
+ FfElement* fq_a = NULL;
+ FfElement* fq_b = NULL;
+ FfElement* g1_x = NULL;
+ FfElement* g1_y = NULL;
+ BigNum* order = NULL;
+ BigNum* h = NULL;
+
+ if (!params || !Fq || !G1) return kEpidBadArgErr;
+
+ do {
+ // Create G1
+ // G1 is an elliptic curve group E(Fq).It can be initialized as follows:
+ // 1. Set G1 = E(Fq).init(p, q, h, a, b, g1.x, g1.y).
+ // a
+ result = NewFfElement(Fq, &fq_a);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq, ¶ms->a, sizeof(params->a), fq_a);
+ BREAK_ON_EPID_ERROR(result);
+ // b
+ result = NewFfElement(Fq, &fq_b);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq, ¶ms->b, sizeof(params->b), fq_b);
+ BREAK_ON_EPID_ERROR(result);
+ // g1.x
+ result = NewFfElement(Fq, &g1_x);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq, ¶ms->g1.x, sizeof(params->g1.x), g1_x);
+ BREAK_ON_EPID_ERROR(result);
+ // g1.y
+ result = NewFfElement(Fq, &g1_y);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq, ¶ms->g1.y, sizeof(params->g1.y), g1_y);
+ BREAK_ON_EPID_ERROR(result);
+ // order
+ result = NewBigNum(sizeof(BigNumStr), &order);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadBigNum(¶ms->p, sizeof(params->p), order);
+ BREAK_ON_EPID_ERROR(result);
+ // h
+ result = NewBigNum(sizeof(BigNumStr), &h);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadBigNum(¶ms->h, sizeof(params->h), h);
+ BREAK_ON_EPID_ERROR(result);
+
+ result = NewEcGroup(Fq, fq_a, fq_b, g1_x, g1_y, order, h, &ec);
+ BREAK_ON_EPID_ERROR(result);
+ *G1 = ec;
+ result = kEpidNoErr;
+ } while (0);
+
+ DeleteBigNum(&h);
+ DeleteBigNum(&order);
+ DeleteFfElement(&g1_y);
+ DeleteFfElement(&g1_x);
+ DeleteFfElement(&fq_b);
+ DeleteFfElement(&fq_a);
+
+ return result;
+}
+
+EpidStatus NewG3(Epid11Params const* params, FiniteField* Fq_dash,
+ EcGroup** G3) {
+ EpidStatus result = kEpidErr;
+ EcGroup* ec = NULL;
+ FfElement* fq_a = NULL;
+ FfElement* fq_b = NULL;
+ FfElement* g3_x = NULL;
+ FfElement* g3_y = NULL;
+ BigNum* order = NULL;
+ BigNum* h_tick = NULL;
+
+ if (!params || !Fq_dash || !G3) return kEpidBadArgErr;
+
+ do {
+ // Create G3
+ // G3 is an elliptic curve group E(Fq').It can be initialized as follows:
+ // 1. Set G3 = E(Fq').init(p', q', h', a', b', g3.x, g3.y).
+ // a'
+ result = NewFfElement(Fq_dash, &fq_a);
+ BREAK_ON_EPID_ERROR(result);
+ result =
+ ReadFfElement(Fq_dash, ¶ms->a_tick, sizeof(params->a_tick), fq_a);
+ BREAK_ON_EPID_ERROR(result);
+ // b'
+ result = NewFfElement(Fq_dash, &fq_b);
+ BREAK_ON_EPID_ERROR(result);
+ result =
+ ReadFfElement(Fq_dash, ¶ms->b_tick, sizeof(params->b_tick), fq_b);
+ BREAK_ON_EPID_ERROR(result);
+ // g3.x
+ result = NewFfElement(Fq_dash, &g3_x);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq_dash, ¶ms->g3.x, sizeof(params->g3.x), g3_x);
+ BREAK_ON_EPID_ERROR(result);
+ // g3.y
+ result = NewFfElement(Fq_dash, &g3_y);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq_dash, ¶ms->g3.y, sizeof(params->g3.y), g3_y);
+ BREAK_ON_EPID_ERROR(result);
+ // order
+ result = NewBigNum(sizeof(BigNumStr), &order);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadBigNum(¶ms->p_tick, sizeof(params->p_tick), order);
+ BREAK_ON_EPID_ERROR(result);
+ // h'
+ result = NewBigNum(sizeof(BigNumStr), &h_tick);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadBigNum(¶ms->h_tick, sizeof(params->h_tick), h_tick);
+ BREAK_ON_EPID_ERROR(result);
+
+ result = NewEcGroup(Fq_dash, fq_a, fq_b, g3_x, g3_y, order, h_tick, &ec);
+ BREAK_ON_EPID_ERROR(result);
+ *G3 = ec;
+ result = kEpidNoErr;
+ } while (0);
+
+ DeleteBigNum(&h_tick);
+ DeleteBigNum(&order);
+ DeleteFfElement(&g3_y);
+ DeleteFfElement(&g3_x);
+ DeleteFfElement(&fq_b);
+ DeleteFfElement(&fq_a);
+
+ return result;
+}
+
+EpidStatus NewG2(Epid11Params const* params, FiniteField* Fq, FiniteField* Fqd,
+ EcGroup** G2) {
+ EpidStatus result = kEpidErr;
+ EcGroup* ec = NULL;
+ FfElement* fq_twista = NULL;
+ FfElement* fq_twistb = NULL;
+ FfElement* fqd_twista = NULL;
+ FfElement* fqd_twistb = NULL;
+ FfElement* g2_x = NULL;
+ FfElement* g2_y = NULL;
+ FfElement* qnr = NULL;
+ BigNum* order = NULL;
+ BigNum* h = NULL;
+ Fq3ElemStr tmp_Fq3_str = {0};
+
+ if (!params || !Fq || !Fqd || !G2) return kEpidBadArgErr;
+
+ do {
+ // Create G2
+ // G2 is an elliptic curve group E(Fqd).It can be initialized as follows:
+ // 2. Set g2.x = (g2.x[0], g2.x[1], g2.x[2]) an element of Fqd
+ result = NewFfElement(Fqd, &g2_x);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fqd, ¶ms->g2.x, sizeof(params->g2.x), g2_x);
+ BREAK_ON_EPID_ERROR(result);
+ // 3. Set g2.y = (g2.y[0], g2.y[1], g2.y[2]) an element of Fqd
+ result = NewFfElement(Fqd, &g2_y);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fqd, ¶ms->g2.y, sizeof(params->g2.y), g2_y);
+ BREAK_ON_EPID_ERROR(result);
+ // qnr
+ result = NewFfElement(Fq, &qnr);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq, ¶ms->qnr, sizeof(params->qnr), qnr);
+ BREAK_ON_EPID_ERROR(result);
+ // 4. twista = (a * qnr * qnr) mod q
+ result = NewFfElement(Fq, &fq_twista);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq, ¶ms->a, sizeof(params->a), fq_twista);
+ BREAK_ON_EPID_ERROR(result);
+ result = FfMul(Fq, fq_twista, qnr, fq_twista);
+ BREAK_ON_EPID_ERROR(result);
+ result = FfMul(Fq, fq_twista, qnr, fq_twista);
+ BREAK_ON_EPID_ERROR(result);
+ // twista = {twista, 0, 0}
+ result = WriteFfElement(Fq, fq_twista, &(tmp_Fq3_str.a[0]),
+ sizeof(tmp_Fq3_str.a[0]));
+ BREAK_ON_EPID_ERROR(result);
+ result = NewFfElement(Fqd, &fqd_twista);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fqd, &tmp_Fq3_str, sizeof(tmp_Fq3_str), fqd_twista);
+ BREAK_ON_EPID_ERROR(result);
+ // 5. twistb = (b * qnr * qnr * qnr) mod q
+ result = NewFfElement(Fq, &fq_twistb);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fq, ¶ms->b, sizeof(params->b), fq_twistb);
+ BREAK_ON_EPID_ERROR(result);
+ result = FfMul(Fq, fq_twistb, qnr, fq_twistb);
+ BREAK_ON_EPID_ERROR(result);
+ result = FfMul(Fq, fq_twistb, qnr, fq_twistb);
+ BREAK_ON_EPID_ERROR(result);
+ result = FfMul(Fq, fq_twistb, qnr, fq_twistb);
+ BREAK_ON_EPID_ERROR(result);
+ // twistb = {twistb, 0, 0}
+ result = WriteFfElement(Fq, fq_twistb, &(tmp_Fq3_str.a[0]),
+ sizeof(tmp_Fq3_str.a[0]));
+ BREAK_ON_EPID_ERROR(result);
+ result = NewFfElement(Fqd, &fqd_twistb);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadFfElement(Fqd, &tmp_Fq3_str, sizeof(tmp_Fq3_str), fqd_twistb);
+ BREAK_ON_EPID_ERROR(result);
+ // order
+ result = NewBigNum(3 * sizeof(BigNumStr), &order);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadBigNum(¶ms->orderG2, sizeof(params->orderG2), order);
+ BREAK_ON_EPID_ERROR(result);
+ // h
+ result = NewBigNum(sizeof(BigNumStr), &h);
+ BREAK_ON_EPID_ERROR(result);
+ result = ReadBigNum(¶ms->h, sizeof(params->h), h);
+ BREAK_ON_EPID_ERROR(result);
+
+ // 6. Set G2 = E(Fqd).init(orderG2, param(Fqd), twista, twistb, g2.x, g2.y)
+ result = NewEcGroup(Fqd, fqd_twista, fqd_twistb, g2_x, g2_y, order, h, &ec);
+ BREAK_ON_EPID_ERROR(result);
+ *G2 = ec;
+ result = kEpidNoErr;
+ } while (0);
+
+ DeleteBigNum(&h);
+ DeleteBigNum(&order);
+ DeleteFfElement(&qnr);
+ DeleteFfElement(&fqd_twistb);
+ DeleteFfElement(&fq_twistb);
+ DeleteFfElement(&fqd_twista);
+ DeleteFfElement(&fq_twista);
+ DeleteFfElement(&g2_y);
+ DeleteFfElement(&g2_x);
+
+ return result;
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params.h
new file mode 100644
index 0000000000..c00af22224
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params.h
@@ -0,0 +1,75 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+#ifndef EPID_COMMON_1_1_SRC_EPID11PARAMS_H_
+#define EPID_COMMON_1_1_SRC_EPID11PARAMS_H_
+/*!
+ * \file
+ * \brief Intel(R) EPID 1.1 constant parameters interface.
+ * \addtogroup EpidCommon
+ * @{
+ */
+#include "epid/common/1.1/types.h"
+#include "epid/common/math/bignum.h"
+#include "epid/common/math/ecgroup.h"
+#include "epid/common/math/finitefield.h"
+#include "epid/common/math/tatepairing.h"
+
+/// Internal representation of Epid11Params
+typedef struct Epid11Params_ {
+ BigNum* p; ///< a prime
+ BigNum* p_tick; ///< a prime
+ EcPoint* g1; ///< a generator (an element) of G1
+ EcPoint* g2; ///< a generator (an element) of G2
+ EcPoint* g3; ///< a generator (an element) of G3
+
+ FiniteField* Fp; ///< Finite field Fp
+ FiniteField* Fq; ///< Finite field Fq
+ FiniteField* Fp_tick; ///< Finite field Fp'
+ FiniteField* Fq_tick; ///< Finite field Fq'
+ FiniteField* Fqd; ///< Finite field Fqd, an extension of Fq
+ FiniteField* GT; ///< GT is a quadratic field extension Fqk of Fqd
+
+ EcGroup* G1; ///< Elliptic curve group over finite field Fq
+ EcGroup* G2; ///< Elliptic curve group over finite field Fqd
+ EcGroup* G3; ///< Elliptic curve group over finite field Fq'
+
+ Epid11PairingState* pairing_state; ///< Pairing state
+} Epid11Params_;
+
+/// Constructs the internal representation of Epid11Params
+/*!
+ Allocates memory for the internal representation of Epid11Params. Initialize
+ the Epid11Params. Use DeleteEpid11Params() to deallocate memory.
+
+ \param[in,out] params
+ Internal Epid11Params
+
+ \returns ::EpidStatus
+ \see DeleteEpid11Params
+*/
+EpidStatus CreateEpid11Params(Epid11Params_** params);
+/// Deallocates storage for internal representation of Epid11Params
+/*!
+ Frees the memory and nulls the pointer.
+
+ \param[in,out] params
+ params to be deallocated
+
+ \see CreateEpid11Params
+*/
+void DeleteEpid11Params(Epid11Params_** params);
+/*! @} */
+#endif // EPID_COMMON_1_1_SRC_EPID11PARAMS_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params_tate.inc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params_tate.inc
new file mode 100644
index 0000000000..248b2713fb
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/epid11params_tate.inc
@@ -0,0 +1,160 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ *
+ * \brief Intel(R) EPID 1.1 constant parameters data.
+ *
+ */
+ {{{ // p
+ 0x00, 0x00, 0x89, 0x57, 0x3F, 0x17, 0x47, 0x30, 0x8C, 0x43, 0xD5, 0xEE,
+ 0x41, 0x97, 0x96, 0x19, 0x72, 0xBB, 0x86, 0x88, 0xED, 0x4B, 0xEF, 0x04,
+ 0xAB, 0xAE, 0xC3, 0x8E, 0xEC, 0x51, 0xC3, 0xD3
+ }}},
+ {{{ // q
+ 0x09, 0xF9, 0x24, 0xE5, 0xD9, 0xBC, 0x67, 0x7F, 0x81, 0x0D, 0xF0, 0x25,
+ 0x58, 0xF7, 0x53, 0x13, 0xA9, 0x8A, 0xA6, 0x10, 0x47, 0x65, 0x5D, 0x73,
+ 0x9E, 0xF1, 0x94, 0xEB, 0x05, 0xB1, 0xA7, 0x11
+ }}},
+ {{ // h
+ 0x00, 0x00, 0x12, 0x97
+ }},
+ {{{ // a
+ 0x05, 0x53, 0xD7, 0xC8, 0x81, 0xF7, 0x78, 0xC2, 0x2C, 0x37, 0xB6, 0xC0,
+ 0x16, 0x3E, 0x68, 0x24, 0x3A, 0x84, 0x78, 0x1C, 0x0A, 0xDF, 0x9B, 0xB3,
+ 0xED, 0x21, 0xC4, 0x46, 0xE5, 0xA7, 0xA3, 0x92
+ }}},
+ {{{ // b
+ 0x00, 0x3A, 0x2E, 0x39, 0x0E, 0x10, 0xD8, 0xAC, 0x47, 0xCB, 0x29, 0xC8,
+ 0xF1, 0x2C, 0x7F, 0x11, 0x99, 0x2A, 0x18, 0xB7, 0xEF, 0x73, 0x48, 0xA6,
+ 0xBE, 0x70, 0xA6, 0x8B, 0x97, 0x34, 0x8A, 0xB1
+ }}},
+ { // coeff
+ {{{ // coeff[0]
+ 0x02, 0x16, 0x7A, 0x61, 0x53, 0xDD, 0xF6, 0xE2, 0x89, 0x15, 0xA0, 0x94,
+ 0xF1, 0xB5, 0xDC, 0x65, 0x21, 0x15, 0x62, 0xE1, 0x7D, 0xC5, 0x43, 0x89,
+ 0xEE, 0xB4, 0xEF, 0xC8, 0xA0, 0x8E, 0x34, 0x0F
+ }}},
+ {{{ // coeff[1]
+ 0x04, 0x82, 0x27, 0xE1, 0xEB, 0x98, 0x64, 0xC2, 0x8D, 0x8F, 0xDD, 0x0E,
+ 0x82, 0x40, 0xAE, 0xD4, 0x31, 0x63, 0xD6, 0x46, 0x32, 0x16, 0x85, 0x7A,
+ 0xB7, 0x18, 0x68, 0xB8, 0x17, 0x02, 0x81, 0xA6
+ }}},
+ {{{ // coeff[2]
+ 0x06, 0x20, 0x76, 0xE8, 0x54, 0x54, 0x53, 0xB4, 0xA9, 0xD8, 0x44, 0x4B,
+ 0xAA, 0xFB, 0x1C, 0xFD, 0xAE, 0x15, 0xCA, 0x29, 0x79, 0xA6, 0x24, 0xA4,
+ 0x0A, 0xF6, 0x1E, 0xAC, 0xED, 0xFB, 0x10, 0x41
+ }}},
+ },
+ {{{ // qnr
+ 0x08, 0x66, 0xA7, 0x67, 0x36, 0x6E, 0x62, 0x71, 0xB7, 0xA6, 0x52, 0x94,
+ 0x8F, 0xFB, 0x25, 0x9E, 0xE6, 0x4F, 0x25, 0xE5, 0x26, 0x9A, 0x2B, 0x6E,
+ 0x7E, 0xF8, 0xA6, 0x39, 0xAE, 0x46, 0xAA, 0x24
+ }}},
+ {{ // orderG2
+ 0x00, 0x03, 0xDF, 0xFC, 0xBE, 0x2F, 0x5C, 0x2E, 0x45, 0x49, 0x7A, 0x2A,
+ 0x91, 0xBA, 0xD1, 0x3E, 0x01, 0xEC, 0x5F, 0xC2, 0x15, 0x14, 0x10, 0xB3,
+ 0x28, 0x5E, 0x56, 0xCC, 0x26, 0x51, 0x24, 0x93, 0x0E, 0x6C, 0x99, 0x96,
+ 0x38, 0xE0, 0x7D, 0x68, 0x8C, 0xB7, 0x97, 0x23, 0xF4, 0xAC, 0x4D, 0xBC,
+ 0x5E, 0x01, 0x15, 0xFF, 0x45, 0x60, 0x08, 0x13, 0xCD, 0x59, 0xD7, 0x73,
+ 0xB0, 0x0C, 0x20, 0x5E, 0xAB, 0xAA, 0x24, 0x31, 0xE2, 0x2A, 0xA2, 0x53,
+ 0x8A, 0xF7, 0x86, 0xD5, 0x19, 0x78, 0xC5, 0x55, 0x9C, 0x08, 0xB7, 0xE2,
+ 0xF4, 0xD0, 0x37, 0x74, 0x93, 0x56, 0x62, 0x7B, 0x95, 0xCC, 0x2C, 0xB0
+ }},
+ {{{ // p_tick
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84,
+ 0xF3, 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51
+ }}},
+ {{{ // q_tick
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+ }}},
+ {{ // h_tick
+ 0x00, 0x00, 0x00, 0x01
+ }},
+ {{{ // a_tick
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC
+ }}},
+ {{{ // b_tick
+ 0x5A, 0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7, 0xB3, 0xEB, 0xBD, 0x55,
+ 0x76, 0x98, 0x86, 0xBC, 0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6,
+ 0x3B, 0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B
+ }}},
+ { // g1
+ {{{ // x
+ 0x07, 0x78, 0x3B, 0x0D, 0xFE, 0x4A, 0xA3, 0x19, 0x49, 0xB0, 0xCE, 0xAF,
+ 0x3F, 0x74, 0x0F, 0x32, 0x16, 0x0C, 0x8B, 0x46, 0x94, 0x5B, 0xA5, 0xB0,
+ 0xE4, 0x8A, 0xDA, 0xD8, 0x88, 0x32, 0x90, 0x53
+ }}},
+ {{{ // y
+ 0x08, 0xF7, 0xA2, 0xAA, 0xBA, 0x62, 0xB3, 0xFE, 0x29, 0x80, 0xC9, 0x5B,
+ 0x63, 0x53, 0xC8, 0x24, 0x3C, 0x7C, 0x1F, 0x4C, 0xDA, 0xCD, 0xE5, 0x5F,
+ 0xA2, 0x36, 0x93, 0x04, 0x3C, 0x3A, 0xBC, 0x2E
+ }}},
+ },
+ { // g2
+ { // x
+ {{{ // x[0]
+ 0x02, 0x10, 0x9A, 0xF4, 0x06, 0x32, 0x30, 0x89, 0xCB, 0x95, 0xE9, 0x55,
+ 0x0E, 0x9D, 0xAF, 0x0E, 0x98, 0xCD, 0xCA, 0xDC, 0xB1, 0xFF, 0xFC, 0xD1,
+ 0x45, 0x66, 0xBB, 0x86, 0x46, 0x1E, 0x8C, 0x30
+ }}},
+ {{{ // x[1]
+ 0x04, 0x78, 0x53, 0xE1, 0x3F, 0x96, 0xC5, 0xE4, 0x15, 0x23, 0x7B, 0x1F,
+ 0x3F, 0x2C, 0xD3, 0x95, 0x40, 0xBC, 0x7A, 0x31, 0x1F, 0x14, 0x38, 0x9E,
+ 0x1A, 0xA5, 0xD6, 0x63, 0x10, 0x91, 0xE4, 0xD3
+ }}},
+ {{{ // x[2]
+ 0x00, 0xB4, 0x02, 0xBC, 0x47, 0xFA, 0xA6, 0x29, 0x82, 0x0B, 0xB1, 0xD5,
+ 0xFF, 0xF2, 0xE6, 0xB0, 0xC6, 0xAE, 0xE8, 0x7B, 0x91, 0xD9, 0xEE, 0x66,
+ 0x07, 0x1F, 0xFD, 0xA2, 0xE7, 0x02, 0x66, 0xDD
+ }}},
+ },
+ { // y
+ {{{ // y[0]
+ 0x05, 0x2E, 0xF8, 0xC6, 0xC1, 0x6A, 0xEF, 0x3C, 0xC1, 0x95, 0xF6, 0x26,
+ 0xCE, 0x5E, 0x55, 0xD1, 0x64, 0x13, 0x28, 0xB1, 0x18, 0x57, 0xD8, 0x1B,
+ 0x84, 0xFA, 0xEC, 0x7E, 0x5D, 0x99, 0x06, 0x49
+ }}},
+ {{{ // y[1]
+ 0x05, 0x73, 0x35, 0xA9, 0xA7, 0xF2, 0xA1, 0x92, 0x5F, 0x3E, 0x7C, 0xDF,
+ 0xAC, 0xFE, 0x0F, 0xF5, 0x08, 0xD0, 0x3C, 0xAE, 0xCD, 0x58, 0x00, 0x5F,
+ 0xD0, 0x84, 0x7E, 0xEA, 0x63, 0x57, 0xFE, 0xC6
+ }}},
+ {{{ // y[2]
+ 0x01, 0x56, 0xDA, 0xF3, 0x72, 0x61, 0xDA, 0xC6, 0x93, 0xB0, 0xAC, 0xEF,
+ 0xAA, 0xD4, 0x51, 0x6D, 0xCA, 0x71, 0x1E, 0x06, 0x73, 0xEA, 0x83, 0xB2,
+ 0xB1, 0x99, 0x4A, 0x4D, 0x4A, 0x0D, 0x35, 0x07
+ }}},
+ },
+ },
+ { // g3
+ {{{ // x
+ 0x6B, 0x17, 0xD1, 0xF2, 0xE1, 0x2C, 0x42, 0x47, 0xF8, 0xBC, 0xE6, 0xE5,
+ 0x63, 0xA4, 0x40, 0xF2, 0x77, 0x03, 0x7D, 0x81, 0x2D, 0xEB, 0x33, 0xA0,
+ 0xF4, 0xA1, 0x39, 0x45, 0xD8, 0x98, 0xC2, 0x96
+ }}},
+ {{{ // y
+ 0x4F, 0xE3, 0x42, 0xE2, 0xFE, 0x1A, 0x7F, 0x9B, 0x8E, 0xE7, 0xEB, 0x4A,
+ 0x7C, 0x0F, 0x9E, 0x16, 0x2B, 0xCE, 0x33, 0x57, 0x6B, 0x31, 0x5E, 0xCE,
+ 0xCB, 0xB6, 0x40, 0x68, 0x37, 0xBF, 0x51, 0xF5
+ }}},
+ }
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/file_parser.c b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/file_parser.c
new file mode 100644
index 0000000000..bf3d79d085
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/file_parser.c
@@ -0,0 +1,187 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/// Implementation of 1.1 issuer material file parsing utilities.
+/*!
+ * \file
+ */
+#include "epid/common/1.1/file_parser.h"
+#include
+
+#include "epid/common/math/ecdsa.h"
+#include "epid/common/src/memory.h"
+#include "epid/common/src/file_parser-internal.h"
+
+/// Intel(R) EPID 1.1 Group Public Key binary format
+typedef struct Epid11GroupPubKeyCertificate {
+ EpidFileHeader header; ///< Intel(R) EPID binary file header
+ Epid11GroupId gid; ///< group ID
+ Epid11G1ElemStr h1; ///< an element in G1
+ Epid11G1ElemStr h2; ///< an element in G1
+ Epid11G2ElemStr w; ///< an element in G2
+ EcdsaSignature signature; ///< ECDSA Signature on SHA-256 of above values
+} Epid11GroupPubKeyCertificate;
+
+/// Parse a file with a revocation list of any type
+static EpidStatus Epid11ParseRlFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert, void* rl,
+ size_t* rl_len, EpidFileType file_type) {
+ size_t min_rl_file_size = 0;
+ size_t empty_rl_size = 0;
+ size_t rl_entry_size = 0;
+ EpidStatus result = kEpidErr;
+ EpidFileHeader const* file_header = (EpidFileHeader*)buf;
+ void const* buf_rl =
+ (void const*)((unsigned char*)buf + sizeof(EpidFileHeader));
+ size_t buf_rl_len = 0;
+ EcdsaSignature const* signature = NULL;
+
+ if (!buf || !cert || !rl_len) return kEpidBadArgErr;
+
+ switch (file_type) {
+ case kPrivRlFile:
+ empty_rl_size = sizeof(Epid11PrivRl) - sizeof(((Epid11PrivRl*)0)->f[0]);
+ rl_entry_size = sizeof(((Epid11PrivRl*)0)->f[0]);
+ min_rl_file_size = sizeof(EpidFileHeader) + sizeof(Epid11PrivRl) -
+ sizeof(((Epid11PrivRl*)0)->f[0]) +
+ sizeof(EcdsaSignature);
+ break;
+ case kSigRlFile:
+ empty_rl_size = sizeof(Epid11SigRl) - sizeof(((Epid11SigRl*)0)->bk[0]);
+ rl_entry_size = sizeof(((Epid11SigRl*)0)->bk[0]);
+ min_rl_file_size = sizeof(EpidFileHeader) + sizeof(Epid11SigRl) -
+ sizeof(((Epid11SigRl*)0)->bk[0]) +
+ sizeof(EcdsaSignature);
+ break;
+ case kGroupRlFile:
+ empty_rl_size =
+ sizeof(Epid11GroupRl) - sizeof(((Epid11GroupRl*)0)->gid[0]);
+ rl_entry_size = sizeof(((Epid11GroupRl*)0)->gid[0]);
+ min_rl_file_size = sizeof(EpidFileHeader) + sizeof(Epid11GroupRl) -
+ sizeof(((Epid11GroupRl*)0)->gid[0]) +
+ sizeof(EcdsaSignature);
+ break;
+ default:
+ return kEpidErr;
+ }
+
+ if (min_rl_file_size > len) return kEpidBadArgErr;
+
+ // Verify that Intel(R) EPID file header in the buffer is correct
+ if (0 != memcmp(&file_header->epid_version, &kEpidVersionCode[kEpid1x],
+ sizeof(kEpidVersionCode[kEpid1x]))) {
+ return kEpidBadArgErr;
+ }
+ if (0 != memcmp(&file_header->file_type, &kEpidFileTypeCode[file_type],
+ sizeof(file_header->file_type))) {
+ return kEpidBadArgErr;
+ }
+
+ // Verify that CA certificate is correct
+ result = EpidVerifyCaCertificate(cert);
+ if (kEpidNoErr != result) return result;
+
+ // Verify that RL in file buffer contains of integer number of entries
+ buf_rl_len = len - sizeof(EpidFileHeader) - sizeof(EcdsaSignature);
+ if (0 != ((buf_rl_len - empty_rl_size) % rl_entry_size)) {
+ return kEpidBadArgErr;
+ }
+
+ signature =
+ (EcdsaSignature*)((unsigned char*)buf + len - sizeof(EcdsaSignature));
+ // Authenticate signature for buffer
+ result = EcdsaVerifyBuffer(buf, len - sizeof(EcdsaSignature),
+ (EcdsaPublicKey*)&cert->pubkey, signature);
+ if (kEpidSigValid != result) return result;
+
+ buf_rl_len = len - sizeof(EpidFileHeader) - sizeof(EcdsaSignature);
+
+ // If pointer to output buffer is NULL it should return required size of RL
+ if (!rl) {
+ *rl_len = buf_rl_len;
+ return kEpidNoErr;
+ }
+
+ if (*rl_len < buf_rl_len) return kEpidBadArgErr;
+ *rl_len = buf_rl_len;
+
+ // Copy revocation list from file buffer to output
+ // Memory copy is used to copy a revocation list of variable length
+ if (0 != memcpy_S(rl, *rl_len, buf_rl, buf_rl_len)) return kEpidBadArgErr;
+
+ return kEpidNoErr;
+}
+
+EpidStatus Epid11ParseGroupPubKeyFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert,
+ Epid11GroupPubKey* pubkey) {
+ EpidStatus result = kEpidErr;
+ Epid11GroupPubKeyCertificate* buf_pubkey = (Epid11GroupPubKeyCertificate*)buf;
+
+ if (!buf || !cert || !pubkey) {
+ return kEpidBadArgErr;
+ }
+
+ if (sizeof(Epid11GroupPubKeyCertificate) > len) {
+ return kEpidBadArgErr;
+ }
+
+ // Verify that Intel(R) EPID file header in the buffer is correct
+ if (0 != memcmp(&buf_pubkey->header.epid_version, &kEpidVersionCode[kEpid1x],
+ sizeof(buf_pubkey->header.epid_version))) {
+ return kEpidBadArgErr;
+ }
+ if (0 != memcmp(&buf_pubkey->header.file_type,
+ &kEpidFileTypeCode[kGroupPubKeyFile],
+ sizeof(buf_pubkey->header.file_type))) {
+ return kEpidBadArgErr;
+ }
+
+ // Verify that CA certificate is correct
+ result = EpidVerifyCaCertificate(cert);
+ if (kEpidNoErr != result) return result;
+
+ // Authenticate signature for buffer
+ result = EcdsaVerifyBuffer(
+ buf_pubkey, sizeof(Epid11GroupPubKeyCertificate) - sizeof(EcdsaSignature),
+ (EcdsaPublicKey*)&cert->pubkey, &buf_pubkey->signature);
+ if (kEpidSigValid != result) return result;
+
+ // Copy group public key from the buffer to output
+ pubkey->gid = buf_pubkey->gid;
+ pubkey->h1 = buf_pubkey->h1;
+ pubkey->h2 = buf_pubkey->h2;
+ pubkey->w = buf_pubkey->w;
+
+ return kEpidNoErr;
+}
+
+EpidStatus Epid11ParsePrivRlFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert,
+ Epid11PrivRl* rl, size_t* rl_len) {
+ return Epid11ParseRlFile(buf, len, cert, rl, rl_len, kPrivRlFile);
+}
+
+EpidStatus Epid11ParseSigRlFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert, Epid11SigRl* rl,
+ size_t* rl_len) {
+ return Epid11ParseRlFile(buf, len, cert, rl, rl_len, kSigRlFile);
+}
+
+EpidStatus Epid11ParseGroupRlFile(void const* buf, size_t len,
+ EpidCaCertificate const* cert,
+ Epid11GroupRl* rl, size_t* rl_len) {
+ return Epid11ParseRlFile(buf, len, cert, rl, rl_len, kGroupRlFile);
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/grouppubkey.c b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/grouppubkey.c
new file mode 100644
index 0000000000..790e5bccb0
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/grouppubkey.c
@@ -0,0 +1,82 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+
+/*!
+ * \file
+ * \brief Intel(R) EPID 1.1 group public key implementation.
+ */
+#include "epid/common/1.1/src/grouppubkey.h"
+#include "epid/common/src/memory.h"
+
+/// Handle SDK Error with Break
+#define BREAK_ON_EPID_ERROR(ret) \
+ \
+ if (kEpidNoErr != (ret)) { \
+ break; \
+ }
+
+EpidStatus CreateEpid11GroupPubKey(Epid11GroupPubKey const* pub_key_str,
+ EcGroup* G1, EcGroup* G2,
+ Epid11GroupPubKey_** pub_key) {
+ EpidStatus result = kEpidErr;
+ Epid11GroupPubKey_* pubkey = NULL;
+ if (!pub_key_str || !G1 || !G2 || !pub_key) {
+ return kEpidBadArgErr;
+ }
+ do {
+ pubkey = SAFE_ALLOC(sizeof(Epid11GroupPubKey_));
+ if (!pubkey) {
+ result = kEpidMemAllocErr;
+ break;
+ }
+ result = NewEcPoint(G1, &pubkey->h1);
+ BREAK_ON_EPID_ERROR(result);
+ result =
+ ReadEcPoint(G1, &pub_key_str->h1, sizeof(pub_key_str->h1), pubkey->h1);
+ BREAK_ON_EPID_ERROR(result);
+ result = NewEcPoint(G1, &pubkey->h2);
+ BREAK_ON_EPID_ERROR(result);
+ result =
+ ReadEcPoint(G1, &pub_key_str->h2, sizeof(pub_key_str->h2), pubkey->h2);
+ BREAK_ON_EPID_ERROR(result);
+ result = NewEcPoint(G2, &pubkey->w);
+ BREAK_ON_EPID_ERROR(result);
+ result =
+ ReadEcPoint(G2, &pub_key_str->w, sizeof(pub_key_str->w), pubkey->w);
+ BREAK_ON_EPID_ERROR(result);
+ pubkey->gid = pub_key_str->gid;
+ *pub_key = pubkey;
+ result = kEpidNoErr;
+ } while (0);
+
+ if (kEpidNoErr != result && pubkey) {
+ DeleteEcPoint(&pubkey->w);
+ DeleteEcPoint(&pubkey->h2);
+ DeleteEcPoint(&pubkey->h1);
+ SAFE_FREE(pubkey);
+ }
+ return result;
+}
+
+void DeleteEpid11GroupPubKey(Epid11GroupPubKey_** pub_key) {
+ if (pub_key && *pub_key) {
+ DeleteEcPoint(&(*pub_key)->w);
+ DeleteEcPoint(&(*pub_key)->h2);
+ DeleteEcPoint(&(*pub_key)->h1);
+
+ SAFE_FREE(*pub_key);
+ }
+}
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/grouppubkey.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/grouppubkey.h
new file mode 100644
index 0000000000..49db3302b0
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/src/grouppubkey.h
@@ -0,0 +1,69 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+#ifndef EPID_COMMON_1_1_SRC_GROUPPUBKEY_H_
+#define EPID_COMMON_1_1_SRC_GROUPPUBKEY_H_
+/*!
+ * \file
+ * \brief Intel(R) EPID 1.1 group public key interface.
+ * \addtogroup EpidCommon
+ * @{
+ */
+#include "epid/common/errors.h"
+#include "epid/common/math/ecgroup.h"
+#include "epid/common/1.1/types.h"
+
+/// Internal representation of Epid11GroupPubKey
+typedef struct Epid11GroupPubKey_ {
+ Epid11GroupId gid; ///< group ID
+ EcPoint* h1; ///< an element in G1
+ EcPoint* h2; ///< an element in G1
+ EcPoint* w; ///< an element in G2
+} Epid11GroupPubKey_;
+
+/// Constructs internal representation of Intel(R) EPID 1.1 group public key
+/*!
+ Allocates memory and initializes gid, h1, h2, w parameters. Use
+ DeleteEpid11GroupPubKey() to deallocate memory
+
+ \param[in] pub_key_str
+ Oct string representation of group public key
+ \param[in] G1
+ EcGroup containing elements h1 and h2
+ \param[in] G2
+ EcGroup containing element w
+ \param[out] pub_key
+ Group public key: (gid, h1, h2, w)
+
+ \returns ::EpidStatus
+ \see DeleteEpid11GroupPubKey
+*/
+EpidStatus CreateEpid11GroupPubKey(Epid11GroupPubKey const* pub_key_str,
+ EcGroup* G1, EcGroup* G2,
+ Epid11GroupPubKey_** pub_key);
+
+/// Deallocates storage for internal representation Intel(R) EPID 1.1 group
+/// public key
+/*!
+ Frees memory pointed to by Epid11GroupPubKey. Nulls the pointer.
+
+ \param[in] pub_key
+ Epid11GroupPubKey to be freed
+
+ \see CreateEpid11GroupPubKey
+*/
+void DeleteEpid11GroupPubKey(Epid11GroupPubKey_** pub_key);
+/*! @} */
+#endif // EPID_COMMON_1_1_SRC_GROUPPUBKEY_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/types.h b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/types.h
new file mode 100644
index 0000000000..dba9d08215
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/types.h
@@ -0,0 +1,208 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+#ifndef EPID_COMMON_1_1_TYPES_H_
+#define EPID_COMMON_1_1_TYPES_H_
+
+/*!
+* \file
+* \brief SDK data types for Intel(R) EPID 1.1.
+*/
+
+#include // for CHAR_BIT
+
+#include "epid/common/types.h"
+
+/// Intel(R) EPID 1.1 specific data types.
+/*!
+\defgroup Epid11Types EPID 1.1 specific types
+Defines serialized data types used by the SDK. These data types
+are only used by components that need to do Intel(R) EPID 1.1
+verification.
+
+\ingroup EpidTypes
+\see EPID 1.1
+support
+@{
+*/
+
+#pragma pack(1)
+
+/// 80 bit octet string
+typedef struct OctStr80 {
+ unsigned char data[80 / CHAR_BIT]; ///< 80 bit data
+} OctStr80;
+
+/// 600 bit octet string
+typedef struct OctSt600 {
+ unsigned char data[600 / CHAR_BIT]; ///< 600 bit data
+} OctStr600;
+
+/// 768 bit octet string
+typedef struct OctStr768 {
+ unsigned char data[768 / CHAR_BIT]; ///< 768 bit data
+} OctStr768;
+
+/// Serialized Fq3 element
+typedef struct Fq3ElemStr {
+ FqElemStr a[3]; ///< polynomial coefficient
+} Fq3ElemStr;
+
+/// Serialized Intel(R) EPID 1.1 G1 element
+typedef G1ElemStr Epid11G1ElemStr;
+
+/// Serialized Intel(R) EPID 1.1 G3 element
+typedef G1ElemStr Epid11G3ElemStr;
+
+/// Serialized Intel(R) EPID 1.1 G2 element
+typedef struct Epid11G2ElemStr {
+ FqElemStr x[3]; ///< an integer between [0, q-1]
+ FqElemStr y[3]; ///< an integer between [0, q-1]
+} Epid11G2ElemStr;
+
+/// Serialized Intel(R) EPID 1.1 GT element
+typedef struct Epid11GtElemStr {
+ Fq3ElemStr a[2]; ///< an element in Fq3
+} Epid11GtElemStr;
+
+/// Intel(R) EPID 1.1 Parameters.
+/*!
+Intel(R) EPID 1.1 parameters are: (p, q, h, a, b, coeff, qnr, orderG2, p', q',
+h', a', b', g1, g2, g3). The size of the Intel(R) EPID public parameters of G1,
+G2, G3, and GT is 6464 bits or 808 bytes.
+*/
+typedef struct Epid11Params {
+ BigNumStr p; ///< a prime
+ BigNumStr q; ///< a prime
+ OctStr32 h; ///< a small integer, also denoted as cofactor
+ FqElemStr a; ///< an integer between [0, q-1]
+ FqElemStr b; ///< an integer between [0, q-1]
+ /*! the coefficients of an irreducible polynomial
+ coeff[0], coeff[1], coeff[2] are 256-bit integers between [0, q - 1]*/
+ BigNumStr coeff[3];
+ FqElemStr qnr; ///< a quadratic non-residue (an integer between [0, q-1])
+ OctStr768 orderG2; ///< the total number of points in G2 elliptic curve
+ BigNumStr p_tick; ///< a prime
+ BigNumStr q_tick; ///< a prime
+ OctStr32 h_tick; ///< a small integer, also denoted as cofactor
+ FqElemStr a_tick; ///< an integer between [0, q-1]
+ FqElemStr b_tick; ///< an integer between [0, q-1]
+ Epid11G1ElemStr g1; ///< a generator(an element) of G1
+ Epid11G2ElemStr g2; ///< a generator (an element) of G2
+ Epid11G1ElemStr g3; ///< a generator (an element) of G3
+} Epid11Params;
+
+/// Intel(R) EPID 1.1 group ID
+typedef OctStr32 Epid11GroupId;
+
+/// Intel(R) EPID 1.1 group public key
+/*!
+* Group public key: (gid, h1, h2, w)
+*/
+typedef struct Epid11GroupPubKey {
+ Epid11GroupId gid; ///< group ID
+ Epid11G1ElemStr h1; ///< an element in G1
+ Epid11G1ElemStr h2; ///< an element in G1
+ Epid11G2ElemStr w; ///< an element in G2
+} Epid11GroupPubKey;
+
+/// Intel(R) EPID 1.1 basic signature.
+/*!
+* Basic signature: (B, K, T1, T2, c, nd, sx, sy, sf, sa, sb, salpha, sbeta)
+*/
+typedef struct Epid11BasicSignature {
+ OctStr32 bv; ///For backward compatibility only
+ Epid11G3ElemStr B; ///< an element in G3
+ Epid11G3ElemStr K; ///< an element in G3
+ Epid11G1ElemStr T1; ///< an element in G1
+ Epid11G1ElemStr T2; ///< an element in G1
+ OctStr256 c; ///< a 256-bit integer
+ OctStr80 nd; ///< an 80-bit integer
+ FpElemStr sx; ///< an integer between [0, p-1]
+ FpElemStr sy; ///< an integer between [0, p-1]
+ OctStr600 sf; ///< a 593-bit integer
+ FpElemStr sa; ///< an integer between [0, p-1]
+ FpElemStr sb; ///< an integer between [0, p-1]
+ FpElemStr salpha; ///< an integer between [0, p-1]
+ FpElemStr sbeta; ///< an integer between [0, p-1]
+} Epid11BasicSignature;
+
+/// Intel(R) EPID 1.1 non-revoked Proof
+/*!
+* Non-revoked Proof: (T, c, smu, snu)
+*/
+typedef struct Epid11NrProof {
+ Epid11G3ElemStr T; ///< an element in G3
+ OctStr256 c; ///< a 256-bit integer
+ FpElemStr smu; ///< an integer between [0, p'-1]
+ FpElemStr snu; ///< an integer between [0, p'-1]
+} Epid11NrProof;
+
+/// Intel(R) EPID 1.1 Signature
+/*!
+* Signature: (sigma0, RLver, n2, sigma[0], ..., sigma[n2-1])
+*/
+typedef struct Epid11Signature {
+ Epid11BasicSignature sigma0; ///< basic signature
+ OctStr32 rl_ver; ///< revocation list version number
+ OctStr32 n2; ///< number of entries in SigRL
+ Epid11NrProof sigma[1]; ///< array of non-revoked proofs (flexible array)
+} Epid11Signature;
+
+/// Intel(R) EPID 1.1 private-key based revocation list
+/*!
+* Private-key based revocation list PrivRL: (gid, RLver, n1, f[0],
+* ..., f[n1-1])
+*/
+typedef struct Epid11PrivRl {
+ Epid11GroupId gid; ///< group ID
+ OctStr32 version; ///< revocation list version number
+ OctStr32 n1; ///< number of entries in PrivRL
+ FpElemStr f[1]; ///< integers between [1, p-1] (flexible array)
+} Epid11PrivRl;
+
+/// Intel(R) EPID 1.1 entry in SigRL (B,K)
+typedef struct Epid11SigRlEntry {
+ Epid11G3ElemStr b; ///< an element of G1
+ Epid11G3ElemStr k; ///< an element of G1
+} Epid11SigRlEntry;
+
+/// Intel(R) EPID 1.1 signature based revocation list
+/*!
+* Signature based revocation list SigRL: (gid, RLver, n2, B[0],
+* K[0], ..., B[n2-1], K[n2-1])
+*/
+typedef struct Epid11SigRl {
+ Epid11GroupId gid; ///< group ID
+ OctStr32 version; ///< revocation list version number
+ OctStr32 n2; ///< number of entries in SigRL
+ Epid11SigRlEntry bk[1]; ///< revoked Bs and Ks (flexible array)
+} Epid11SigRl;
+
+/// Intel(R) EPID 1.1 group revocation list
+/*!
+* Group revocation list GroupRL: (RLver, n3, gid[0], ...,
+* gid[n3-1])
+*/
+typedef struct Epid11GroupRl {
+ OctStr32 version; ///< revocation list version number
+ OctStr32 n3; ///< number of entries in GroupRL
+ Epid11GroupId gid[1]; ///< revoked group IDs (flexible array)
+} Epid11GroupRl;
+
+#pragma pack()
+
+/*! @} */
+#endif // EPID_COMMON_1_1_TYPES_H_
diff --git a/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/unittests/file_parser-test.cc b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/unittests/file_parser-test.cc
new file mode 100644
index 0000000000..59d1541c7d
--- /dev/null
+++ b/sgx-jvm/linux-sgx/external/epid-sdk-3.0.0/epid/common/1.1/unittests/file_parser-test.cc
@@ -0,0 +1,1426 @@
+/*############################################################################
+ # Copyright 2016 Intel Corporation
+ #
+ # Licensed 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.
+ ############################################################################*/
+/// 1.1 issuer material file parsing unit tests.
+/*!
+ * \file
+ */
+#include
+#include
+
+#include "gtest/gtest.h"
+extern "C" {
+#include "epid/common/1.1/file_parser.h"
+}
+
+namespace {
+
+/// Test fixture class for Epid11FileParser
+class Epid11FileParser : public ::testing::Test {
+ public:
+ /// Cert used to sign legitimate test data
+ static const EpidCaCertificate kCert;
+
+ /// A file with Epid11GroupPublicKey signed with kCert
+ static const std::vector kGroupPublicKeyFile;
+ /// A file with two Epid11GroupPublicKey signed with kCert
+ static const std::vector kGroupMultiPublicKeyFile;
+ /// Expected Epid11GroupPublicKey
+ static const std::vector kGroupPublicKey;
+
+ /// A file with empty privrl signed with kCert
+ static const std::vector kEmptyPrivRlFile;
+ /// Expected empty privrl
+ static const std::vector kEmptyPrivRl;
+ /// A file with short privrl signed with kCert
+ static const std::vector kShortPrivRlFile;
+ /// Expected short privrl
+ static const std::vector kShortPrivRl;
+
+ /// A file with empty SigRl signed with kCert
+ static const std::vector kEmptySigRlFile;
+ /// Expected empty SigRl
+ static const std::vector kEmptySigRl;
+ /// A file with short SigRl signed with kCert
+ static const std::vector kShortSigRlFile;
+ /// Expected short SigRl
+ static const std::vector kShortSigRl;
+
+ /// A file with empty GroupRl signed with kCert
+ static const std::vector kEmptyGroupRlFile;
+ /// Expected empty GroupRl
+ static const std::vector kEmptyGroupRl;
+ /// A file with short GroupRl signed with kCert
+ static const std::vector kShortGroupRlFile;
+ /// Expected short GroupRl
+ static const std::vector kShortGroupRl;
+};
+const EpidCaCertificate Epid11FileParser::kCert = {
+ // EpidFileHeader::epid_version
+ 0x02, 0x00,
+ // EpidFileHeader::file_type
+ 0x00, 0x11,
+ // pubkey
+ 0x24, 0x42, 0xa5, 0xcc, 0x0e, 0xcd, 0x01, 0x5f, 0xa3, 0xca, 0x31, 0xdc,
+ 0x8e, 0x2b, 0xbc, 0x70, 0xbf, 0x42, 0xd6, 0x0c, 0xbc, 0xa2, 0x00, 0x85,
+ 0xe0, 0x82, 0x2c, 0xb0, 0x42, 0x35, 0xe9, 0x70, 0x6f, 0xc9, 0x8b, 0xd7,
+ 0xe5, 0x02, 0x11, 0xa4, 0xa2, 0x71, 0x02, 0xfa, 0x35, 0x49, 0xdf, 0x79,
+ 0xeb, 0xcb, 0x4b, 0xf2, 0x46, 0xb8, 0x09, 0x45, 0xcd, 0xdf, 0xe7, 0xd5,
+ 0x09, 0xbb, 0xfd, 0x7d,
+ // prime
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ // a
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+ // b
+ 0x5a, 0xc6, 0x35, 0xd8, 0xaa, 0x3a, 0x93, 0xe7, 0xb3, 0xeb, 0xbd, 0x55,
+ 0x76, 0x98, 0x86, 0xbc, 0x65, 0x1d, 0x06, 0xb0, 0xcc, 0x53, 0xb0, 0xf6,
+ 0x3b, 0xce, 0x3c, 0x3e, 0x27, 0xd2, 0x60, 0x4b,
+ // x
+ 0x6b, 0x17, 0xd1, 0xf2, 0xe1, 0x2c, 0x42, 0x47, 0xf8, 0xbc, 0xe6, 0xe5,
+ 0x63, 0xa4, 0x40, 0xf2, 0x77, 0x03, 0x7d, 0x81, 0x2d, 0xeb, 0x33, 0xa0,
+ 0xf4, 0xa1, 0x39, 0x45, 0xd8, 0x98, 0xc2, 0x96,
+ // y
+ 0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb, 0x4a,
+ 0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, 0x5e, 0xce,
+ 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5,
+ // r
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xbc, 0xe6, 0xfa, 0xad, 0xa7, 0x17, 0x9e, 0x84,
+ 0xf3, 0xb9, 0xca, 0xc2, 0xfc, 0x63, 0x25, 0x51,
+ // signature::x
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7,
+ // signature::y
+ 0x94, 0x03, 0x1d, 0x90, 0x6b, 0x6f, 0xcd, 0x99, 0xef, 0x2c, 0xdb, 0x8b,
+ 0xa9, 0x8a, 0xef, 0x7e, 0xf0, 0x77, 0xba, 0xb5, 0x11, 0x43, 0x0d, 0x28,
+ 0x1c, 0x01, 0x5b, 0xc9, 0x08, 0xce, 0x3e, 0x68};
+
+const std::vector Epid11FileParser::kGroupPublicKeyFile = {
+ // Epid Version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0c,
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // h1
+ 0x08, 0x4a, 0x9d, 0x2e, 0xf9, 0x4f, 0x78, 0x02, 0xd7, 0x89, 0x75, 0xb4,
+ 0xe7, 0x25, 0x26, 0x9f, 0x00, 0x57, 0xad, 0x33, 0x30, 0xea, 0xa9, 0x6c,
+ 0x00, 0x9e, 0x8b, 0xc8, 0x13, 0x23, 0xcb, 0x06, 0x04, 0xbe, 0x42, 0x74,
+ 0x11, 0x07, 0xb1, 0x06, 0xd7, 0xef, 0x5f, 0x66, 0x87, 0xd9, 0xfa, 0xdd,
+ 0x53, 0xae, 0xd7, 0xf4, 0x54, 0xf8, 0xd0, 0x21, 0x75, 0xe0, 0x07, 0x44,
+ 0xc9, 0xc3, 0x4e, 0xf7,
+ // h2
+ 0x06, 0xd8, 0xa9, 0x90, 0x02, 0x8f, 0xca, 0xa5, 0x73, 0x36, 0x24, 0x03,
+ 0xc9, 0xa8, 0x7e, 0x9d, 0x64, 0x12, 0xac, 0xa7, 0xbd, 0x17, 0x7f, 0x7c,
+ 0x96, 0x8d, 0x2e, 0x13, 0xd9, 0xb2, 0x69, 0x47, 0x09, 0xdb, 0xe3, 0xbf,
+ 0xbc, 0xa1, 0x34, 0x0f, 0xc6, 0xe2, 0x00, 0x3d, 0x98, 0xa3, 0x7d, 0xab,
+ 0xd4, 0x0e, 0xec, 0xde, 0x4f, 0x97, 0xa9, 0xbb, 0xdd, 0x60, 0x94, 0x24,
+ 0x7b, 0xb3, 0xf5, 0x94,
+ // w
+ 0x02, 0x43, 0x78, 0x9f, 0x54, 0xc1, 0x21, 0x3a, 0x2b, 0x4d, 0x12, 0x65,
+ 0x2f, 0x51, 0x94, 0xc6, 0x34, 0x24, 0xd9, 0x7b, 0x06, 0x3a, 0xc4, 0xf5,
+ 0x56, 0xeb, 0x32, 0xe3, 0xee, 0x7b, 0xad, 0x6b, 0x04, 0x90, 0x86, 0x31,
+ 0x18, 0x2a, 0xa4, 0xcf, 0xa3, 0x90, 0xa5, 0x80, 0x7b, 0xae, 0x3b, 0xb1,
+ 0x77, 0x03, 0xe7, 0x7e, 0xf2, 0xfc, 0x6d, 0x3a, 0xab, 0x8f, 0xbf, 0x95,
+ 0x40, 0xed, 0x08, 0x03, 0x01, 0x05, 0x86, 0xf5, 0x42, 0xea, 0x4d, 0xf7,
+ 0x4f, 0xef, 0x46, 0xdf, 0x8f, 0xe8, 0x2d, 0xbb, 0x5d, 0x0d, 0x2f, 0x4f,
+ 0xf4, 0xd8, 0x31, 0xc6, 0x5a, 0x97, 0x98, 0x44, 0xcf, 0x42, 0x5a, 0xf3,
+ 0x03, 0x5f, 0xb6, 0x38, 0x45, 0x5a, 0x15, 0x1e, 0xb9, 0x54, 0xfa, 0x2c,
+ 0x3f, 0x68, 0x7b, 0x4e, 0x85, 0x35, 0xf3, 0x5b, 0xe5, 0xdc, 0x96, 0x2b,
+ 0x18, 0x84, 0x5e, 0x1e, 0x53, 0xdc, 0x22, 0x23, 0x06, 0x08, 0x91, 0x5a,
+ 0x2d, 0x27, 0xe2, 0x12, 0x69, 0xfa, 0xab, 0x19, 0x7c, 0x47, 0x6b, 0xec,
+ 0xde, 0xc6, 0x25, 0xd4, 0x43, 0xb4, 0x65, 0x23, 0x61, 0x0f, 0x1f, 0x2d,
+ 0xfd, 0xb1, 0x18, 0xb0, 0x04, 0x8e, 0x1a, 0xc5, 0x95, 0x9a, 0x0e, 0x37,
+ 0x7c, 0x5e, 0x95, 0x38, 0xc2, 0xcf, 0xfa, 0x1f, 0xe3, 0x3a, 0x2b, 0x85,
+ 0xa5, 0xfd, 0x6b, 0xc4, 0x1d, 0xfb, 0x47, 0x27, 0xaf, 0xc1, 0x94, 0xcd,
+ // Signature
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0xf0, 0x6e, 0x43, 0x67,
+ 0x68, 0x6f, 0x9e, 0x3b, 0xcf, 0xfd, 0x98, 0xcc, 0xae, 0x92, 0xcc, 0x94,
+ 0x23, 0xb6, 0xbd, 0x57, 0xac, 0x06, 0x3c, 0xa1, 0xe5, 0x3e, 0xe9, 0xf5,
+ 0x0e, 0x55, 0xb4, 0xe5};
+const std::vector Epid11FileParser::kGroupPublicKey = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // h1
+ 0x08, 0x4a, 0x9d, 0x2e, 0xf9, 0x4f, 0x78, 0x02, 0xd7, 0x89, 0x75, 0xb4,
+ 0xe7, 0x25, 0x26, 0x9f, 0x00, 0x57, 0xad, 0x33, 0x30, 0xea, 0xa9, 0x6c,
+ 0x00, 0x9e, 0x8b, 0xc8, 0x13, 0x23, 0xcb, 0x06, 0x04, 0xbe, 0x42, 0x74,
+ 0x11, 0x07, 0xb1, 0x06, 0xd7, 0xef, 0x5f, 0x66, 0x87, 0xd9, 0xfa, 0xdd,
+ 0x53, 0xae, 0xd7, 0xf4, 0x54, 0xf8, 0xd0, 0x21, 0x75, 0xe0, 0x07, 0x44,
+ 0xc9, 0xc3, 0x4e, 0xf7,
+ // h2
+ 0x06, 0xd8, 0xa9, 0x90, 0x02, 0x8f, 0xca, 0xa5, 0x73, 0x36, 0x24, 0x03,
+ 0xc9, 0xa8, 0x7e, 0x9d, 0x64, 0x12, 0xac, 0xa7, 0xbd, 0x17, 0x7f, 0x7c,
+ 0x96, 0x8d, 0x2e, 0x13, 0xd9, 0xb2, 0x69, 0x47, 0x09, 0xdb, 0xe3, 0xbf,
+ 0xbc, 0xa1, 0x34, 0x0f, 0xc6, 0xe2, 0x00, 0x3d, 0x98, 0xa3, 0x7d, 0xab,
+ 0xd4, 0x0e, 0xec, 0xde, 0x4f, 0x97, 0xa9, 0xbb, 0xdd, 0x60, 0x94, 0x24,
+ 0x7b, 0xb3, 0xf5, 0x94,
+ // w
+ 0x02, 0x43, 0x78, 0x9f, 0x54, 0xc1, 0x21, 0x3a, 0x2b, 0x4d, 0x12, 0x65,
+ 0x2f, 0x51, 0x94, 0xc6, 0x34, 0x24, 0xd9, 0x7b, 0x06, 0x3a, 0xc4, 0xf5,
+ 0x56, 0xeb, 0x32, 0xe3, 0xee, 0x7b, 0xad, 0x6b, 0x04, 0x90, 0x86, 0x31,
+ 0x18, 0x2a, 0xa4, 0xcf, 0xa3, 0x90, 0xa5, 0x80, 0x7b, 0xae, 0x3b, 0xb1,
+ 0x77, 0x03, 0xe7, 0x7e, 0xf2, 0xfc, 0x6d, 0x3a, 0xab, 0x8f, 0xbf, 0x95,
+ 0x40, 0xed, 0x08, 0x03, 0x01, 0x05, 0x86, 0xf5, 0x42, 0xea, 0x4d, 0xf7,
+ 0x4f, 0xef, 0x46, 0xdf, 0x8f, 0xe8, 0x2d, 0xbb, 0x5d, 0x0d, 0x2f, 0x4f,
+ 0xf4, 0xd8, 0x31, 0xc6, 0x5a, 0x97, 0x98, 0x44, 0xcf, 0x42, 0x5a, 0xf3,
+ 0x03, 0x5f, 0xb6, 0x38, 0x45, 0x5a, 0x15, 0x1e, 0xb9, 0x54, 0xfa, 0x2c,
+ 0x3f, 0x68, 0x7b, 0x4e, 0x85, 0x35, 0xf3, 0x5b, 0xe5, 0xdc, 0x96, 0x2b,
+ 0x18, 0x84, 0x5e, 0x1e, 0x53, 0xdc, 0x22, 0x23, 0x06, 0x08, 0x91, 0x5a,
+ 0x2d, 0x27, 0xe2, 0x12, 0x69, 0xfa, 0xab, 0x19, 0x7c, 0x47, 0x6b, 0xec,
+ 0xde, 0xc6, 0x25, 0xd4, 0x43, 0xb4, 0x65, 0x23, 0x61, 0x0f, 0x1f, 0x2d,
+ 0xfd, 0xb1, 0x18, 0xb0, 0x04, 0x8e, 0x1a, 0xc5, 0x95, 0x9a, 0x0e, 0x37,
+ 0x7c, 0x5e, 0x95, 0x38, 0xc2, 0xcf, 0xfa, 0x1f, 0xe3, 0x3a, 0x2b, 0x85,
+ 0xa5, 0xfd, 0x6b, 0xc4, 0x1d, 0xfb, 0x47, 0x27, 0xaf, 0xc1, 0x94, 0xcd};
+
+const std::vector Epid11FileParser::kGroupMultiPublicKeyFile = {
+ // Epid Version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0c,
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // h1
+ 0x08, 0x4a, 0x9d, 0x2e, 0xf9, 0x4f, 0x78, 0x02, 0xd7, 0x89, 0x75, 0xb4,
+ 0xe7, 0x25, 0x26, 0x9f, 0x00, 0x57, 0xad, 0x33, 0x30, 0xea, 0xa9, 0x6c,
+ 0x00, 0x9e, 0x8b, 0xc8, 0x13, 0x23, 0xcb, 0x06, 0x04, 0xbe, 0x42, 0x74,
+ 0x11, 0x07, 0xb1, 0x06, 0xd7, 0xef, 0x5f, 0x66, 0x87, 0xd9, 0xfa, 0xdd,
+ 0x53, 0xae, 0xd7, 0xf4, 0x54, 0xf8, 0xd0, 0x21, 0x75, 0xe0, 0x07, 0x44,
+ 0xc9, 0xc3, 0x4e, 0xf7,
+ // h2
+ 0x06, 0xd8, 0xa9, 0x90, 0x02, 0x8f, 0xca, 0xa5, 0x73, 0x36, 0x24, 0x03,
+ 0xc9, 0xa8, 0x7e, 0x9d, 0x64, 0x12, 0xac, 0xa7, 0xbd, 0x17, 0x7f, 0x7c,
+ 0x96, 0x8d, 0x2e, 0x13, 0xd9, 0xb2, 0x69, 0x47, 0x09, 0xdb, 0xe3, 0xbf,
+ 0xbc, 0xa1, 0x34, 0x0f, 0xc6, 0xe2, 0x00, 0x3d, 0x98, 0xa3, 0x7d, 0xab,
+ 0xd4, 0x0e, 0xec, 0xde, 0x4f, 0x97, 0xa9, 0xbb, 0xdd, 0x60, 0x94, 0x24,
+ 0x7b, 0xb3, 0xf5, 0x94,
+ // w
+ 0x02, 0x43, 0x78, 0x9f, 0x54, 0xc1, 0x21, 0x3a, 0x2b, 0x4d, 0x12, 0x65,
+ 0x2f, 0x51, 0x94, 0xc6, 0x34, 0x24, 0xd9, 0x7b, 0x06, 0x3a, 0xc4, 0xf5,
+ 0x56, 0xeb, 0x32, 0xe3, 0xee, 0x7b, 0xad, 0x6b, 0x04, 0x90, 0x86, 0x31,
+ 0x18, 0x2a, 0xa4, 0xcf, 0xa3, 0x90, 0xa5, 0x80, 0x7b, 0xae, 0x3b, 0xb1,
+ 0x77, 0x03, 0xe7, 0x7e, 0xf2, 0xfc, 0x6d, 0x3a, 0xab, 0x8f, 0xbf, 0x95,
+ 0x40, 0xed, 0x08, 0x03, 0x01, 0x05, 0x86, 0xf5, 0x42, 0xea, 0x4d, 0xf7,
+ 0x4f, 0xef, 0x46, 0xdf, 0x8f, 0xe8, 0x2d, 0xbb, 0x5d, 0x0d, 0x2f, 0x4f,
+ 0xf4, 0xd8, 0x31, 0xc6, 0x5a, 0x97, 0x98, 0x44, 0xcf, 0x42, 0x5a, 0xf3,
+ 0x03, 0x5f, 0xb6, 0x38, 0x45, 0x5a, 0x15, 0x1e, 0xb9, 0x54, 0xfa, 0x2c,
+ 0x3f, 0x68, 0x7b, 0x4e, 0x85, 0x35, 0xf3, 0x5b, 0xe5, 0xdc, 0x96, 0x2b,
+ 0x18, 0x84, 0x5e, 0x1e, 0x53, 0xdc, 0x22, 0x23, 0x06, 0x08, 0x91, 0x5a,
+ 0x2d, 0x27, 0xe2, 0x12, 0x69, 0xfa, 0xab, 0x19, 0x7c, 0x47, 0x6b, 0xec,
+ 0xde, 0xc6, 0x25, 0xd4, 0x43, 0xb4, 0x65, 0x23, 0x61, 0x0f, 0x1f, 0x2d,
+ 0xfd, 0xb1, 0x18, 0xb0, 0x04, 0x8e, 0x1a, 0xc5, 0x95, 0x9a, 0x0e, 0x37,
+ 0x7c, 0x5e, 0x95, 0x38, 0xc2, 0xcf, 0xfa, 0x1f, 0xe3, 0x3a, 0x2b, 0x85,
+ 0xa5, 0xfd, 0x6b, 0xc4, 0x1d, 0xfb, 0x47, 0x27, 0xaf, 0xc1, 0x94, 0xcd,
+ // Signature
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0xf0, 0x6e, 0x43, 0x67,
+ 0x68, 0x6f, 0x9e, 0x3b, 0xcf, 0xfd, 0x98, 0xcc, 0xae, 0x92, 0xcc, 0x94,
+ 0x23, 0xb6, 0xbd, 0x57, 0xac, 0x06, 0x3c, 0xa1, 0xe5, 0x3e, 0xe9, 0xf5,
+ 0x0e, 0x55, 0xb4, 0xe5,
+ // Epid Version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0c,
+ // GID
+ 0x00, 0x00, 0x04, 0xd2,
+ // h1
+ 0x00, 0x6c, 0x38, 0x98, 0x41, 0x97, 0xf6, 0xf1, 0xb0, 0x41, 0x57, 0xd4,
+ 0xf9, 0xce, 0xcc, 0x22, 0xce, 0x4f, 0xc8, 0x47, 0xaf, 0x2a, 0x6c, 0xa3,
+ 0x02, 0xf2, 0x74, 0x80, 0xc9, 0x5c, 0x1c, 0xf7, 0x06, 0xed, 0xce, 0xc0,
+ 0x0b, 0x29, 0x73, 0x1c, 0x09, 0x84, 0x4c, 0xcc, 0xff, 0x82, 0x9d, 0x29,
+ 0xe7, 0x88, 0x57, 0xfd, 0xd2, 0x55, 0x41, 0x0f, 0x5e, 0x6e, 0xf5, 0xc4,
+ 0x77, 0xa2, 0x5d, 0xaf,
+ // h2
+ 0x00, 0x50, 0x70, 0xe5, 0x66, 0x92, 0x77, 0x33, 0x82, 0xda, 0xc9, 0x27,
+ 0x7c, 0x16, 0xf8, 0xf2, 0x69, 0x48, 0x2f, 0xf0, 0xdd, 0x8d, 0x9e, 0x27,
+ 0x41, 0xaf, 0xcc, 0xb9, 0x04, 0xf4, 0x77, 0x8c, 0x06, 0x36, 0xee, 0xbd,
+ 0x53, 0x0e, 0x20, 0xd8, 0x9f, 0xd7, 0xb7, 0x41, 0xdd, 0xe0, 0xee, 0xc7,
+ 0xf8, 0xef, 0x91, 0x03, 0xe1, 0xfe, 0x6a, 0xe6, 0x3b, 0x91, 0xb7, 0xaa,
+ 0xc4, 0x64, 0x72, 0x37,
+ // w
+ 0x06, 0xa3, 0x37, 0xa1, 0xfc, 0xe2, 0x3a, 0x99, 0x96, 0xb9, 0x8d, 0xad,
+ 0x07, 0xec, 0xfc, 0x62, 0x39, 0x5c, 0x0c, 0x89, 0xba, 0x06, 0x3a, 0x1c,
+ 0xea, 0x2d, 0xcc, 0xf2, 0x00, 0xaa, 0x08, 0x25, 0x06, 0x82, 0xa0, 0x68,
+ 0x71, 0x4f, 0x5d, 0xbd, 0xc3, 0x80, 0xe6, 0x98, 0xe9, 0x14, 0x10, 0xdc,
+ 0x9c, 0xa6, 0x4e, 0x75, 0x09, 0x0a, 0x45, 0x39, 0x2b, 0xcc, 0x6e, 0x6f,
+ 0x66, 0xad, 0x1a, 0x63, 0x05, 0x9c, 0x6a, 0xeb, 0x7f, 0xd3, 0x16, 0x46,
+ 0x37, 0xc8, 0x5f, 0x1a, 0x34, 0x46, 0x35, 0x92, 0x10, 0x7b, 0x7b, 0xe3,
+ 0x9c, 0x65, 0x59, 0x2d, 0xa8, 0x8a, 0x4b, 0xfb, 0x81, 0x97, 0xf6, 0x25,
+ 0x09, 0xf3, 0x6d, 0xcc, 0x50, 0x63, 0xe0, 0x9d, 0x69, 0x02, 0x0c, 0x52,
+ 0x75, 0x95, 0x30, 0x38, 0x69, 0x1e, 0x8e, 0x6b, 0x52, 0xbf, 0x97, 0x9f,
+ 0x20, 0x02, 0xec, 0xb3, 0x6b, 0x2b, 0xdd, 0xf3, 0x01, 0x11, 0xbb, 0xbe,
+ 0x3b, 0xc9, 0xa0, 0xc3, 0x44, 0xfe, 0x49, 0x53, 0x89, 0x2d, 0x27, 0x40,
+ 0x86, 0x87, 0xea, 0xce, 0x5f, 0x9a, 0xee, 0xc2, 0x15, 0x62, 0xc1, 0x87,
+ 0x0f, 0x3a, 0x78, 0x03, 0x03, 0xd2, 0x8c, 0x24, 0x5a, 0x90, 0xa7, 0xc5,
+ 0x35, 0x4f, 0xab, 0xcd, 0x40, 0xe8, 0x7c, 0xf0, 0xab, 0x96, 0x59, 0x3a,
+ 0x96, 0xe4, 0x4a, 0x73, 0x67, 0x51, 0x1f, 0xad, 0x06, 0x94, 0x40, 0xcf,
+ // Signature
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0x4b, 0xba, 0x99, 0x05,
+ 0x14, 0x98, 0x2c, 0x10, 0x5d, 0x25, 0x84, 0x93, 0x92, 0x0c, 0x7c, 0x44,
+ 0x39, 0xb8, 0xd9, 0x65, 0x8a, 0x27, 0x20, 0x31, 0xb8, 0xc8, 0x47, 0xe2,
+ 0xfb, 0x79, 0xa0, 0xa5};
+
+const std::vector Epid11FileParser::kEmptyPrivRlFile = {
+ // Epid Version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0d,
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x00,
+ // n1
+ 0x00, 0x00, 0x00, 0x00,
+ // sig
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0x29, 0xa4, 0x10, 0x8f,
+ 0x7d, 0xb4, 0xff, 0xae, 0x6a, 0xce, 0x8d, 0xcd, 0xc6, 0x84, 0x63, 0x9f,
+ 0x89, 0x3d, 0x23, 0x42, 0xf5, 0x37, 0xba, 0xb9, 0x4a, 0xbb, 0x6e, 0xf2,
+ 0xb2, 0x74, 0x8c, 0xcc,
+};
+const std::vector Epid11FileParser::kEmptyPrivRl = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x00,
+ // n1
+ 0x00, 0x00, 0x00, 0x00};
+
+const std::vector Epid11FileParser::kShortPrivRlFile = {
+ // Epid Version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0d,
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x03,
+ // n1
+ 0x00, 0x00, 0x00, 0x01,
+ // PrivRl
+ 0x00, 0x00, 0x56, 0x1e, 0xb1, 0x91, 0xb6, 0xdf, 0x40, 0xbc, 0xa2, 0xe3,
+ 0xe3, 0x92, 0x33, 0xd1, 0xd7, 0x5c, 0xcc, 0x4c, 0x3a, 0xe7, 0x91, 0x49,
+ 0x73, 0xe2, 0x03, 0xd4, 0x5e, 0x4f, 0x87, 0xad,
+ // Sig
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0x60, 0xf3, 0xfa, 0xe8,
+ 0x34, 0x9f, 0x50, 0xac, 0x1b, 0x75, 0xf4, 0x62, 0x41, 0xc4, 0xb7, 0x11,
+ 0x64, 0xef, 0xe1, 0xd4, 0x3c, 0xee, 0xee, 0x86, 0x4c, 0xbb, 0x9a, 0x40,
+ 0x77, 0x0b, 0xb2, 0xec,
+};
+const std::vector Epid11FileParser::kShortPrivRl = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x03,
+ // n1
+ 0x00, 0x00, 0x00, 0x01,
+ // PrivRl
+ 0x00, 0x00, 0x56, 0x1e, 0xb1, 0x91, 0xb6, 0xdf, 0x40, 0xbc, 0xa2, 0xe3,
+ 0xe3, 0x92, 0x33, 0xd1, 0xd7, 0x5c, 0xcc, 0x4c, 0x3a, 0xe7, 0x91, 0x49,
+ 0x73, 0xe2, 0x03, 0xd4, 0x5e, 0x4f, 0x87, 0xad,
+};
+
+const std::vector Epid11FileParser::kEmptySigRlFile = {
+ // Epid Version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0e,
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x00,
+ // n2
+ 0x00, 0x00, 0x00, 0x00,
+ // Signature
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0x94, 0x29, 0xf2, 0x7e,
+ 0x16, 0x19, 0x48, 0xa0, 0xed, 0xb7, 0x61, 0x5e, 0x63, 0x54, 0x87, 0xf4,
+ 0xbb, 0x7f, 0x42, 0x8d, 0x39, 0x63, 0x62, 0x06, 0x69, 0x7b, 0x9d, 0x0b,
+ 0x7e, 0xdf, 0xf2, 0x0d};
+const std::vector Epid11FileParser::kEmptySigRl = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x00,
+ // n2
+ 0x00, 0x00, 0x00, 0x00};
+
+const std::vector Epid11FileParser::kShortSigRlFile = {
+ // Epid Version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0e,
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x03,
+ // n2
+ 0x00, 0x00, 0x00, 0x03,
+ // bks
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x6e, 0xdf, 0x9f, 0xe3, 0xe0, 0x8d, 0xe4, 0x0b,
+ 0xbb, 0x86, 0x12, 0xd7, 0xc5, 0xd8, 0x14, 0x5e, 0x67, 0xbd, 0x1d, 0xa5,
+ 0x0b, 0xdb, 0xf5, 0x87, 0x36, 0x6c, 0xda, 0x81, 0x2a, 0x8c, 0x2e, 0x78,
+ 0xef, 0x6c, 0x42, 0xb2, 0xcd, 0x40, 0xda, 0xd3, 0x22, 0xf4, 0xd9, 0x7e,
+ 0x34, 0x78, 0x49, 0x41, 0x0d, 0x1e, 0x64, 0xc1, 0x43, 0xa1, 0xb0, 0xe9,
+ 0x6c, 0x45, 0xe2, 0x2d, 0xc3, 0xeb, 0xc8, 0x14, 0x09, 0x0d, 0x6f, 0x82,
+ 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27,
+ 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a,
+ 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46,
+ 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13,
+ 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70,
+ 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c, 0xb4, 0x10, 0x2d, 0x4a,
+ 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a, 0x59, 0x21, 0x17, 0x04,
+ 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b, 0x1e, 0x6a, 0xaf, 0x82,
+ 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb, 0x82, 0x17, 0xe6, 0xb8,
+ 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93, 0x77, 0x61, 0x3c, 0xc2,
+ 0x75, 0x14, 0xa1, 0xc2, 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53,
+ 0xba, 0x1e, 0x1b, 0x0e, 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09,
+ 0x4f, 0xcd, 0xb6, 0xe6, 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72,
+ 0xfa, 0x85, 0x0f, 0x5c, 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64,
+ 0xda, 0xa9, 0x8e, 0xf5, 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb,
+ 0x0a, 0x9d, 0x02, 0xc0, 0x33, 0xec, 0x2a, 0x70, 0x95, 0x8b, 0x05, 0x1e,
+ 0x8b, 0xa5, 0x21, 0xdd, 0x63, 0xfd, 0x1a, 0x36, 0xb7, 0x42, 0x04, 0x92,
+ 0x10, 0xe6, 0x29, 0x22, 0xc8, 0x97, 0xb1, 0x28, 0x01, 0x45, 0x95, 0xf1,
+ 0x2a, 0xa0, 0x86, 0x41, 0xc4, 0x4c, 0xb6, 0x3b, 0x45, 0x23, 0x6e, 0x8d,
+ 0x6e, 0x07, 0xc7, 0x5b, 0xe5, 0x46, 0xca, 0xd0, 0x68, 0x99, 0xb6, 0x30,
+ 0x7b, 0x70, 0xb0, 0x92, 0x48, 0xc2, 0x89, 0xb6, 0x27, 0x3b, 0x95, 0x89,
+ // Signature
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0x1c, 0xab, 0x1f, 0xca,
+ 0x99, 0x74, 0x76, 0x02, 0x4c, 0xa6, 0xca, 0x13, 0xda, 0x9d, 0x74, 0xfa,
+ 0x56, 0x23, 0xf1, 0x86, 0xbe, 0xd4, 0xf2, 0x84, 0x7a, 0xdf, 0xd3, 0x62,
+ 0x4f, 0xc2, 0x0d, 0x84};
+const std::vector Epid11FileParser::kShortSigRl = {
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x03,
+ // n2
+ 0x00, 0x00, 0x00, 0x03,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x6e, 0xdf, 0x9f, 0xe3, 0xe0, 0x8d, 0xe4, 0x0b,
+ 0xbb, 0x86, 0x12, 0xd7, 0xc5, 0xd8, 0x14, 0x5e, 0x67, 0xbd, 0x1d, 0xa5,
+ 0x0b, 0xdb, 0xf5, 0x87, 0x36, 0x6c, 0xda, 0x81, 0x2a, 0x8c, 0x2e, 0x78,
+ 0xef, 0x6c, 0x42, 0xb2, 0xcd, 0x40, 0xda, 0xd3, 0x22, 0xf4, 0xd9, 0x7e,
+ 0x34, 0x78, 0x49, 0x41, 0x0d, 0x1e, 0x64, 0xc1, 0x43, 0xa1, 0xb0, 0xe9,
+ 0x6c, 0x45, 0xe2, 0x2d, 0xc3, 0xeb, 0xc8, 0x14,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c,
+ 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a,
+ 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b,
+ 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb,
+ 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93,
+ 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2,
+ // B, K
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x95, 0x8b, 0x05, 0x1e, 0x8b, 0xa5, 0x21, 0xdd,
+ 0x63, 0xfd, 0x1a, 0x36, 0xb7, 0x42, 0x04, 0x92, 0x10, 0xe6, 0x29, 0x22,
+ 0xc8, 0x97, 0xb1, 0x28, 0x01, 0x45, 0x95, 0xf1, 0x2a, 0xa0, 0x86, 0x41,
+ 0xc4, 0x4c, 0xb6, 0x3b, 0x45, 0x23, 0x6e, 0x8d, 0x6e, 0x07, 0xc7, 0x5b,
+ 0xe5, 0x46, 0xca, 0xd0, 0x68, 0x99, 0xb6, 0x30, 0x7b, 0x70, 0xb0, 0x92,
+ 0x48, 0xc2, 0x89, 0xb6, 0x27, 0x3b, 0x95, 0x89};
+
+const std::vector Epid11FileParser::kEmptyGroupRlFile = {
+ // Epid version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0f,
+ // RL ver
+ 0x00, 0x00, 0x00, 0x00,
+ // n3
+ 0x00, 0x00, 0x00, 0x00,
+ // Signature
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0xc3, 0x21, 0x99, 0xe1,
+ 0x18, 0x22, 0x4a, 0xd2, 0xa5, 0xe5, 0xbf, 0x4a, 0xd9, 0x83, 0x08, 0x9d,
+ 0x62, 0x71, 0xa1, 0x39, 0x21, 0x49, 0x5d, 0xb2, 0x7a, 0xdb, 0x05, 0x2a,
+ 0xa4, 0xde, 0xb0, 0xac};
+const std::vector Epid11FileParser::kEmptyGroupRl = {
+ // RL ver
+ 0x00, 0x00, 0x00, 0x00,
+ // n3
+ 0x00, 0x00, 0x00, 0x00};
+
+const std::vector Epid11FileParser::kShortGroupRlFile = {
+ // Epid version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0f,
+ // RL ver
+ 0x00, 0x00, 0x00, 0x03,
+ // n3
+ 0x00, 0x00, 0x00, 0x03,
+ // GIDs
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
+ // Signature
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed, 0x2a,
+ 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a, 0x6c, 0x06,
+ 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0xc0, 0xec, 0x90, 0x92,
+ 0xe9, 0xaa, 0x2e, 0x61, 0xca, 0x70, 0x8f, 0x48, 0xd4, 0x7d, 0xe7, 0x82,
+ 0x22, 0x9f, 0x2f, 0x78, 0x5b, 0xfe, 0x56, 0x6e, 0x1a, 0xa1, 0x69, 0x9d,
+ 0xcc, 0xb1, 0xaa, 0x62};
+const std::vector Epid11FileParser::kShortGroupRl = {
+ // RL ver
+ 0x00, 0x00, 0x00, 0x03,
+ // n3
+ 0x00, 0x00, 0x00, 0x03,
+ // GIDs
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03};
+
+//////////////////////////////////////////////////////////////////////////
+// Epid11ParseGroupPubKeyFile Tests
+TEST_F(Epid11FileParser, GroupPubKeyParseFailsGivenNullParameters) {
+ Epid11GroupPubKey pubkey{};
+ EXPECT_EQ(kEpidBadArgErr, Epid11ParseGroupPubKeyFile(
+ nullptr, this->kGroupPublicKeyFile.size(),
+ &this->kCert, &pubkey));
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ nullptr, &pubkey));
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &this->kCert, nullptr));
+}
+
+TEST_F(Epid11FileParser, GroupPubKeyParseFailsGivenUnsupportedCurve) {
+ Epid11GroupPubKey pubkey{};
+ EpidCaCertificate unsupported_curve1(this->kCert);
+ unsupported_curve1.a.data[0] = unsupported_curve1.a.data[0] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &unsupported_curve1, &pubkey));
+ EpidCaCertificate unsupported_curve2(this->kCert);
+ unsupported_curve2.b.data[0] = unsupported_curve2.b.data[0] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &unsupported_curve2, &pubkey));
+ EpidCaCertificate unsupported_curve3(this->kCert);
+ unsupported_curve3.x.data[0] = unsupported_curve3.x.data[0] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &unsupported_curve3, &pubkey));
+ EpidCaCertificate unsupported_curve4(this->kCert);
+ unsupported_curve4.y.data[0] = unsupported_curve4.y.data[0] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &unsupported_curve4, &pubkey));
+ EpidCaCertificate unsupported_curve5(this->kCert);
+ unsupported_curve5.r.data[0] = unsupported_curve5.r.data[0] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &unsupported_curve5, &pubkey));
+ EpidCaCertificate unsupported_curve6(this->kCert);
+ unsupported_curve6.prime.data[0] = unsupported_curve6.prime.data[0] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &unsupported_curve6, &pubkey));
+}
+
+TEST_F(Epid11FileParser, GroupPubKeyParseFailsGivenInvalidKeyInCertificate) {
+ Epid11GroupPubKey pubkey{};
+ EpidCaCertificate invalid_key_qx(this->kCert);
+ invalid_key_qx.pubkey.data[0] = invalid_key_qx.pubkey.data[0] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &invalid_key_qx, &pubkey));
+ EpidCaCertificate invalid_key_qy(this->kCert);
+ invalid_key_qy.pubkey.data[sizeof(invalid_key_qy.pubkey) - 1] =
+ invalid_key_qy.pubkey.data[sizeof(invalid_key_qy.pubkey) - 1] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &invalid_key_qy, &pubkey));
+ EpidCaCertificate invalid_key_qx_qy(this->kCert);
+ invalid_key_qx_qy.pubkey.data[0] = invalid_key_qx_qy.pubkey.data[0] ^ 0xFF;
+ invalid_key_qx_qy.pubkey.data[sizeof(invalid_key_qx_qy.pubkey) - 1] =
+ invalid_key_qx_qy.pubkey.data[sizeof(invalid_key_qx_qy.pubkey) - 1] ^
+ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &invalid_key_qx_qy, &pubkey));
+}
+
+TEST_F(Epid11FileParser, RejectsGroupPubKeyFileWithInvalidSize) {
+ Epid11GroupPubKey pubkey{};
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ 0, &this->kCert, &pubkey));
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size() - 1,
+ &this->kCert, &pubkey));
+}
+
+TEST_F(Epid11FileParser, RejectsInvalidGroupPubKeyFileType) {
+ Epid11GroupPubKey pubkey{};
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)this->kShortPrivRlFile.data(),
+ this->kGroupPublicKeyFile.size(),
+ &this->kCert, &pubkey));
+}
+
+TEST_F(Epid11FileParser, RejectsGroupPubKeyFileWithUnsupportedEpidVersion) {
+ Epid11GroupPubKey pubkey{};
+
+ std::vector unsupported_epidver_file(this->kGroupPublicKeyFile);
+ unsupported_epidver_file[0] = {0x02};
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseGroupPubKeyFile((void*)unsupported_epidver_file.data(),
+ unsupported_epidver_file.size(),
+ &this->kCert, &pubkey));
+}
+
+TEST_F(Epid11FileParser, ParsesValidPubKeyFile) {
+ std::vector pubkey(sizeof(Epid11GroupPubKey), 0);
+ EXPECT_EQ(kEpidNoErr, Epid11ParseGroupPubKeyFile(
+ (void*)this->kGroupPublicKeyFile.data(),
+ this->kGroupPublicKeyFile.size(), &this->kCert,
+ (Epid11GroupPubKey*)pubkey.data()));
+ EXPECT_EQ(this->kGroupPublicKey, pubkey);
+}
+
+TEST_F(Epid11FileParser, ParsesValidMultiPubKeyFile) {
+ std::vector pubkey(sizeof(Epid11GroupPubKey), 0);
+ EXPECT_EQ(kEpidNoErr, Epid11ParseGroupPubKeyFile(
+ (void*)this->kGroupMultiPublicKeyFile.data(),
+ this->kGroupMultiPublicKeyFile.size(), &this->kCert,
+ (Epid11GroupPubKey*)pubkey.data()));
+ EXPECT_EQ(this->kGroupPublicKey, pubkey);
+}
+
+TEST_F(Epid11FileParser, RejectsGroupPubKeyFileWithInvalidSignature) {
+ Epid11GroupPubKey pubkey{};
+ std::vector pubkey_inv_sign(this->kGroupPublicKeyFile);
+ pubkey_inv_sign[pubkey_inv_sign.size() - 1] =
+ pubkey_inv_sign[pubkey_inv_sign.size() - 1] ^ 0xFF;
+ EXPECT_EQ(kEpidSigInvalid,
+ Epid11ParseGroupPubKeyFile((void*)pubkey_inv_sign.data(),
+ pubkey_inv_sign.size(), &this->kCert,
+ &pubkey));
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Epid11ParsePrivRlFile Tests
+TEST_F(Epid11FileParser, PrivRlParseProvidesRequiredLenWithNullDest) {
+ size_t rl_len = 0;
+ EXPECT_EQ(kEpidNoErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &this->kCert,
+ nullptr, &rl_len));
+ EXPECT_EQ(this->kShortPrivRl.size(), rl_len);
+}
+
+TEST_F(Epid11FileParser, PrivRlParseFailsGivenNullParameters) {
+ size_t rl_len = this->kShortPrivRl.size();
+ std::vector rl(rl_len);
+
+ // null input buffer
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile(nullptr, this->kShortPrivRlFile.size(),
+ &this->kCert, (Epid11PrivRl*)rl.data(), &rl_len));
+ // null kCert
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), nullptr,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ // null rl_length
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &this->kCert,
+ (Epid11PrivRl*)rl.data(), nullptr));
+ // null rl_length with null dest
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &this->kCert,
+ nullptr, nullptr));
+}
+
+TEST_F(Epid11FileParser, PrivRlParseFailsGivenUnsupportedCurveInCA) {
+ size_t rl_len = this->kShortPrivRl.size();
+ std::vector rl(rl_len);
+ EpidCaCertificate unsupported_curve(kCert);
+ unsupported_curve.a.data[0] = unsupported_curve.a.data[0] ^ 0xFF;
+
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &unsupported_curve,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve2(kCert);
+ unsupported_curve2.b.data[0] = unsupported_curve2.b.data[0] ^ 0xFF;
+
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &unsupported_curve2,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve3(kCert);
+ unsupported_curve3.x.data[0] = unsupported_curve3.x.data[0] ^ 0xFF;
+
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &unsupported_curve3,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve4(kCert);
+ unsupported_curve4.y.data[0] = unsupported_curve4.y.data[0] ^ 0xFF;
+
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &unsupported_curve4,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve5(kCert);
+ unsupported_curve5.r.data[0] = unsupported_curve5.r.data[0] ^ 0xFF;
+
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &unsupported_curve5,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve6(kCert);
+ unsupported_curve6.prime.data[0] = unsupported_curve6.prime.data[0] ^ 0xFF;
+
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &unsupported_curve6,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, PrivRlParseFailsGivenInvalidKeyInCertificate) {
+ size_t rl_len = this->kShortPrivRl.size();
+ std::vector rl(rl_len);
+ EpidCaCertificate invalid_key_qx(kCert);
+ invalid_key_qx.pubkey.data[0] = invalid_key_qx.pubkey.data[0] ^ 0xFF;
+
+ EXPECT_EQ(kEpidBadArgErr, Epid11ParsePrivRlFile(
+ (void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &invalid_key_qx,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+
+ EpidCaCertificate invalid_key_qy(kCert);
+ invalid_key_qy.pubkey.data[sizeof(invalid_key_qy.pubkey) - 1] =
+ invalid_key_qy.pubkey.data[sizeof(invalid_key_qy.pubkey) - 1] ^ 0xFF;
+
+ EXPECT_EQ(kEpidBadArgErr, Epid11ParsePrivRlFile(
+ (void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &invalid_key_qy,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+
+ EpidCaCertificate invalid_key_qx_qy(kCert);
+ invalid_key_qx_qy.pubkey.data[0] = invalid_key_qx_qy.pubkey.data[0] ^ 0xFF;
+ invalid_key_qy.pubkey.data[sizeof(invalid_key_qy.pubkey) - 1] =
+ invalid_key_qy.pubkey.data[sizeof(invalid_key_qy.pubkey) - 1] ^ 0xFF;
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &invalid_key_qx_qy,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, PrivRlParseRejectsPrivRlFileWithInvalidSize) {
+ size_t rl_len = this->kEmptyPrivRl.size();
+ std::vector rl(rl_len);
+
+ EXPECT_EQ(kEpidBadArgErr, Epid11ParsePrivRlFile(
+ (void*)this->kEmptyPrivRlFile.data(),
+ this->kEmptyPrivRlFile.size() + 1, &this->kCert,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+
+ EXPECT_EQ(kEpidBadArgErr, Epid11ParsePrivRlFile(
+ (void*)this->kEmptyPrivRlFile.data(),
+ this->kEmptyPrivRlFile.size() - 1, &this->kCert,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kEmptyPrivRlFile.data(), 0,
+ &this->kCert, (Epid11PrivRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, PrivRlParseRejectsInvalidPrivRlFileType) {
+ size_t rl_len = this->kShortPrivRl.size();
+ std::vector rl(rl_len);
+
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortGroupRlFile.data(),
+ this->kShortGroupRlFile.size(), &this->kCert,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, PrivRlRejectsPrivRlFileWithUnsupportedEpidVersion) {
+ size_t rl_len = this->kShortPrivRl.size();
+ std::vector rl(rl_len);
+
+ std::vector unsupported_epidver_file(this->kShortPrivRlFile);
+ unsupported_epidver_file[0] = {0x02};
+
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)unsupported_epidver_file.data(),
+ unsupported_epidver_file.size(), &this->kCert,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, PrivRlParseParsesEmptyPrivRl) {
+ size_t rl_len = this->kEmptyPrivRl.size();
+ std::vector rl(rl_len);
+
+ EXPECT_EQ(kEpidNoErr,
+ Epid11ParsePrivRlFile((void*)this->kEmptyPrivRlFile.data(),
+ this->kEmptyPrivRlFile.size(), &this->kCert,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EXPECT_EQ(this->kEmptyPrivRl, rl);
+}
+
+TEST_F(Epid11FileParser, PrivRlParseParsesShortPrivRl) {
+ size_t rl_len = this->kShortPrivRl.size();
+ std::vector rl(rl_len);
+
+ EXPECT_EQ(kEpidNoErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &this->kCert,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EXPECT_EQ(this->kShortPrivRl, rl);
+}
+
+TEST_F(Epid11FileParser, PrivRlParseParsesLongPrivRl) {
+ EcdsaSignature signature = {
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed,
+ 0x2a, 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a,
+ 0x6c, 0x06, 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0x31,
+ 0x02, 0x1e, 0x05, 0xa2, 0x80, 0x99, 0xef, 0xa9, 0xed, 0x69, 0x90,
+ 0x36, 0x83, 0xaf, 0x95, 0xb8, 0x11, 0x5b, 0xb1, 0x83, 0x5f, 0x86,
+ 0x6b, 0x82, 0x17, 0x8f, 0x00, 0x3d, 0x79, 0x25, 0xda,
+ };
+
+ std::vector long_privrl_file = {
+ // Epid Version
+ 0x01, 0x00,
+ // Epid type
+ 0x00, 0x0d,
+ // GID
+ 0x00, 0x00, 0x00, 0x7b,
+ // RL Ver
+ 0x00, 0x00, 0x00, 0x03,
+ // n1
+ 0x00, 0x00, 0x00, 0x32,
+ };
+ const std::vector FToCreateLongRl = {
+ 0x00, 0x00, 0x56, 0x1e, 0xb1, 0x91, 0xb6, 0xdf, 0x40, 0xbc, 0xa2,
+ 0xe3, 0xe3, 0x92, 0x33, 0xd1, 0xd7, 0x5c, 0xcc, 0x4c, 0x3a, 0xe7,
+ 0x91, 0x49, 0x73, 0xe2, 0x03, 0xd4, 0x5e, 0x4f, 0x87, 0xad,
+ };
+ for (int i = 0; i < 50; ++i) {
+ for (auto it : FToCreateLongRl) {
+ long_privrl_file.push_back(it);
+ }
+ }
+ for (auto it : signature.x.data) {
+ long_privrl_file.push_back(it);
+ }
+ for (auto it : signature.y.data) {
+ long_privrl_file.push_back(it);
+ }
+ size_t rl_len = long_privrl_file.size() - 68;
+ std::vector rl(rl_len);
+
+ EXPECT_EQ(kEpidNoErr,
+ Epid11ParsePrivRlFile((void*)long_privrl_file.data(),
+ long_privrl_file.size(), &this->kCert,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+ EXPECT_EQ(
+ std::vector(&long_privrl_file[4],
+ &long_privrl_file[long_privrl_file.size() - 64]),
+ rl);
+}
+
+TEST_F(Epid11FileParser, PrivRlRejectsPrivRlFileWithInvalidSignature) {
+ size_t rl_len = this->kShortPrivRl.size();
+ std::vector rl(rl_len);
+ std::vector privrl_inv_sign(kShortPrivRlFile);
+ privrl_inv_sign[privrl_inv_sign.size() - 1] =
+ privrl_inv_sign[privrl_inv_sign.size() - 1] ^ 0xFF;
+
+ EXPECT_EQ(
+ kEpidSigInvalid,
+ Epid11ParsePrivRlFile(privrl_inv_sign.data(), privrl_inv_sign.size(),
+ &this->kCert, (Epid11PrivRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, PrivRlRejectsGivenInsufficientOutputBufSize) {
+ size_t rl_len = this->kShortPrivRl.size() - 1;
+ std::vector rl(rl_len);
+
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &this->kCert,
+ (Epid11PrivRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, PrivRlReturnsProperSizeGivenOversizedPrivRlBuf) {
+ size_t rl_len = this->kShortPrivRl.size() + 1;
+ std::vector oversized_rl(rl_len);
+
+ EXPECT_EQ(kEpidNoErr,
+ Epid11ParsePrivRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &this->kCert,
+ (Epid11PrivRl*)oversized_rl.data(), &rl_len));
+ std::vector rl(oversized_rl.begin(), oversized_rl.end() - 1);
+ EXPECT_EQ(this->kShortPrivRl, rl);
+ EXPECT_EQ(this->kShortPrivRl.size(), rl_len);
+}
+//////////////////////////////////////////////////////////////////////////
+// Epid11ParseSigRlFile Tests
+TEST_F(Epid11FileParser, SigRlParseProvidesRequiredLenWithNullDest) {
+ size_t rl_len = 0;
+ EXPECT_EQ(kEpidNoErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &kCert, nullptr,
+ &rl_len));
+ EXPECT_EQ(rl_len, this->kShortSigRl.size());
+}
+
+TEST_F(Epid11FileParser, SigRlParseFailsGivenNullParameters) {
+ size_t rl_len = this->kShortSigRl.size();
+ std::vector rl(rl_len);
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile(nullptr, this->kShortSigRlFile.size(), &kCert,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), nullptr,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &kCert,
+ (Epid11SigRl*)rl.data(), nullptr));
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &kCert, nullptr,
+ nullptr));
+}
+
+TEST_F(Epid11FileParser, SigRlParseFailsGivenUnsupportedCurveInCA) {
+ size_t rl_len = this->kShortSigRl.size();
+ std::vector rl(rl_len);
+ EpidCaCertificate unsupported_curve1(kCert);
+ unsupported_curve1.a.data[0] = unsupported_curve1.a.data[0] ^ 0xFF;
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &unsupported_curve1,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve2(kCert);
+ unsupported_curve2.b.data[0] = unsupported_curve2.b.data[0] ^ 0xFF;
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &unsupported_curve2,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve3(kCert);
+ unsupported_curve3.x.data[0] = unsupported_curve3.x.data[0] ^ 0xFF;
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &unsupported_curve3,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve4(kCert);
+ unsupported_curve4.y.data[0] = unsupported_curve4.y.data[0] ^ 0xFF;
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &unsupported_curve4,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve5(kCert);
+ unsupported_curve5.r.data[0] = unsupported_curve5.r.data[0] ^ 0xFF;
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &unsupported_curve5,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EpidCaCertificate unsupported_curve6(kCert);
+ unsupported_curve6.prime.data[0] = unsupported_curve6.prime.data[0] ^ 0xFF;
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &unsupported_curve6,
+ (Epid11SigRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, SigRlParseFailsGivenInvalidKeyInCertificate) {
+ size_t rl_len = this->kShortSigRl.size();
+ std::vector rl(rl_len);
+ EpidCaCertificate invalid_key_qx(kCert);
+ invalid_key_qx.pubkey.data[0] = invalid_key_qx.pubkey.data[0] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &invalid_key_qx,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EpidCaCertificate invalid_key_qy(kCert);
+ invalid_key_qy.pubkey.data[sizeof(invalid_key_qy.pubkey) - 1] =
+ invalid_key_qy.pubkey.data[sizeof(invalid_key_qy.pubkey) - 1] ^ 0xFF;
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &invalid_key_qy,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EpidCaCertificate invalid_key_qx_qy(kCert);
+ invalid_key_qx_qy.pubkey.data[0] = invalid_key_qx_qy.pubkey.data[0] ^ 0xFF;
+ invalid_key_qx_qy.pubkey.data[sizeof(invalid_key_qx_qy.pubkey) - 1] =
+ invalid_key_qx_qy.pubkey.data[sizeof(invalid_key_qx_qy.pubkey) - 1] ^
+ 0xFF;
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &invalid_key_qx_qy,
+ (Epid11SigRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, SigRlParseRejectsSigRlFileWithInvalidSize) {
+ size_t rl_len = this->kEmptySigRl.size();
+ std::vector rl(rl_len);
+ EXPECT_EQ(
+ kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kEmptySigRlFile.data(), 0, &this->kCert,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kEmptySigRlFile.data(),
+ this->kEmptySigRlFile.size() - 1, &this->kCert,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortSigRlFile.data(),
+ this->kEmptySigRlFile.size() + 1, &this->kCert,
+ (Epid11SigRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, SigRlParseRejectsInvalidSigRlFileType) {
+ size_t rl_len = this->kShortPrivRl.size();
+ std::vector rl(rl_len);
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)this->kShortPrivRlFile.data(),
+ this->kShortPrivRlFile.size(), &this->kCert,
+ (Epid11SigRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, RejectsSigRlFileWithUnsupportedEpidVersion) {
+ size_t rl_len = this->kShortSigRl.size();
+ std::vector rl(rl_len);
+ std::vector unsupported_epidver_file(this->kShortSigRlFile);
+ unsupported_epidver_file[0] = {0x02};
+ EXPECT_EQ(kEpidBadArgErr,
+ Epid11ParseSigRlFile((void*)unsupported_epidver_file.data(),
+ unsupported_epidver_file.size(), &this->kCert,
+ (Epid11SigRl*)rl.data(), &rl_len));
+}
+
+TEST_F(Epid11FileParser, SigRlParseParsesEmptySigRl) {
+ size_t rl_len = this->kEmptySigRl.size();
+ std::vector rl(rl_len);
+ EXPECT_EQ(kEpidNoErr,
+ Epid11ParseSigRlFile(this->kEmptySigRlFile.data(),
+ this->kEmptySigRlFile.size(), &this->kCert,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EXPECT_EQ(rl, this->kEmptySigRl);
+}
+
+TEST_F(Epid11FileParser, SigRlParseParsesShortSigRl) {
+ size_t rl_len = this->kShortSigRl.size();
+ std::vector rl(rl_len);
+ EXPECT_EQ(kEpidNoErr,
+ Epid11ParseSigRlFile(this->kShortSigRlFile.data(),
+ this->kShortSigRlFile.size(), &this->kCert,
+ (Epid11SigRl*)rl.data(), &rl_len));
+ EXPECT_EQ(rl, this->kShortSigRl);
+}
+
+TEST_F(Epid11FileParser, SigRlParseParsesLongSigRl) {
+ std::vector bk = {
+ 0x09, 0x0d, 0x6f, 0x82, 0x77, 0x88, 0x49, 0x53, 0xba, 0x1e, 0x1b, 0x0e,
+ 0x5e, 0xae, 0xc0, 0x27, 0xad, 0xe3, 0xb1, 0x09, 0x4f, 0xcd, 0xb6, 0xe6,
+ 0x6f, 0x7f, 0xa3, 0x1a, 0x1e, 0xfb, 0x52, 0x72, 0xfa, 0x85, 0x0f, 0x5c,
+ 0x97, 0x61, 0xbf, 0x46, 0x7e, 0xec, 0xd6, 0x64, 0xda, 0xa9, 0x8e, 0xf5,
+ 0xd3, 0xdf, 0xfa, 0x13, 0x5a, 0xb2, 0x3e, 0xeb, 0x0a, 0x9d, 0x02, 0xc0,
+ 0x33, 0xec, 0x2a, 0x70, 0x80, 0x85, 0x35, 0x04, 0x7b, 0xfc, 0x0a, 0x6c,
+ 0xb4, 0x10, 0x2d, 0x4a, 0xbe, 0x35, 0x78, 0x41, 0x3a, 0xc6, 0x01, 0x3a,
+ 0x59, 0x21, 0x17, 0x04, 0x60, 0x6a, 0x51, 0x6c, 0x84, 0xde, 0xc3, 0x3b,
+ 0x1e, 0x6a, 0xaf, 0x82, 0x5d, 0x81, 0xe2, 0x44, 0x25, 0x98, 0x89, 0xdb,
+ 0x82, 0x17, 0xe6, 0xb8, 0x9f, 0xfd, 0x03, 0x86, 0x63, 0x8c, 0xe1, 0x93,
+ 0x77, 0x61, 0x3c, 0xc2, 0x75, 0x14, 0xa1, 0xc2};
+ EcdsaSignature signature = {
+ 0xfb, 0x57, 0x6f, 0x15, 0x3e, 0xf8, 0x41, 0x47, 0x51, 0x71, 0xed,
+ 0x2a, 0x9b, 0x88, 0x99, 0x5b, 0x85, 0x3b, 0xdf, 0xf9, 0x70, 0x2a,
+ 0x6c, 0x06, 0x3b, 0x72, 0x02, 0x32, 0xb9, 0x3a, 0x76, 0xe7, 0x02,
+ 0x23, 0x1d, 0x31, 0x17, 0x88, 0x49, 0x13, 0x47, 0xe7, 0xda, 0xfe,
+ 0x8d, 0x67, 0xba, 0x16, 0x1d, 0x0a, 0xd3, 0x4a, 0x2d, 0xd1, 0xf8,
+ 0x60, 0x21, 0xa5, 0x00, 0x9a, 0x0d, 0x4d, 0xc4, 0xbd};
+ std::vector