-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
234 changed files
with
87,506 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
C++ projects: | ||
- SEAL (main library) | ||
- SEALExamples (extensively documented examples of using SEAL) | ||
- SEALTest (MSVC unit tests for SEAL) | ||
|
||
.NET Framework projects (Windows only): | ||
- SEALNET (.NET Framework wrappers for SEAL) | ||
- SEALNETExamples (extensively documented examples of using SEALNET) | ||
- SEALNETTest (MSVC unit tests for SEALNET) | ||
|
||
|
||
Building and installation: | ||
|
||
Windows: Use Microsoft Visual Studio to build all projects in the solution SEAL.sln. | ||
|
||
Linux/OS X: | ||
- Make sure cmake is installed. | ||
- For system-wide install of SEAL do: | ||
cd SEAL | ||
cmake . | ||
make | ||
sudo make install | ||
cd .. | ||
- To build SEALExamples do: | ||
cd SEALExamples | ||
cmake . | ||
make | ||
- The sealexamples executable can be found in bin/. | ||
- See SEALExamples/CMakeLists.txt for an example of how to import SEAL using cmake. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
Microsoft Research License Agreement for Simple Encrypted Arithmetic Library | ||
|
||
This Microsoft Research License Agreement, including all exhibits ("Agreement") is a legal agreement between you and Microsoft Corporation (or based on where you live, one of its affiliates). Please read them. They apply to the Microsoft Research software named above, which may include source code and any associated materials, text or speech files, associated media and "online" or electronic documentation and any updates we provide in our discretion (together, the "Software"). The terms also apply to any Microsoft (i) updates, (ii) supplements, (iii) internet-based services, and (iv) support services for this Software, unless other terms accompany those items. If so, those terms apply. | ||
By agreeing to this Agreement and/or by using the Software, you accept these terms. If you do not accept them, do not use the Software. If you comply with these license terms, you have the rights below. | ||
1. SCOPE OF RIGHTS. | ||
a. License Grant. You may use, copy, modify, create derivative works, and distribute the Software for non-commercial purposes, subject to the restrictions in this Agreement. Examples of non-commercial uses are teaching, academic research, public demonstrations and personal experimentation. | ||
b. Publication. You may publish (or present papers or articles) on your results from using the Software. | ||
2. DISTRIBUTION REQUIREMENTS: | ||
a. If you distribute the Software or any derivative works of the Software, you will distribute them under the same terms and conditions as in this license, and you will not grant other rights to the Software or derivative works that are different from those provided by this Agreement. | ||
b. If you have created derivative works of the Software, and distribute such derivative works, you will cause the modified files to carry prominent notices so that recipients know that they are not receiving the original software. Such notices must state: (i) that you have changed the software; and (ii) the date of any changes. | ||
3. LICENSE TO MICROSOFT. In the event you contribute code or other materials to the Simple Encrypted Arithmetic Library project, Microsoft is granted back, without any restrictions or limitations, a non-exclusive, perpetual, irrevocable, royalty-free, assignable and sub-licensable license, to reproduce, publicly perform or display, install, use, modify, post, distribute, make and have made, sell and transfer such contributions, and any other modifications to and/or derivative works of the Software source code or data, for any purpose. | ||
4. SCOPE OF LICENSE. The Software is licensed, not sold. This Agreement only gives you some rights to use the Software. Microsoft reserves all other rights. The patent rights, if any, granted to you in this Agreement only apply to the Software, not to any derivative works you make. In using the Software, you must comply with any technical limitations in the Software that may only allow you to use it in certain ways. You may not: | ||
a. Publish the Software for others to copy; | ||
b. Rent, lease or lend the Software; or | ||
c. Transfer the Software or this Agreement to any third party. | ||
5. FEEDBACK. Any feedback about the Software provided by you to us is voluntarily given, and Microsoft shall be free to use the feedback as it sees fit without obligation or restriction of any kind, even if the feedback is designated by you as confidential. | ||
6. TERM; TERMINATION. The term of this Agreement will commence upon your acceptance of these license terms and will continue unless terminated earlier as provided herein. If you breach this Agreement or if you sue Microsoft or any other party over patents that you think may apply to or read on the Software or anyone's use of the Software, this Agreement (and your license and rights obtained herein) terminate automatically. If this Agreement is terminated, you must cease using and distributing any derivative works or modifications of the Software. Any sections that are intended to survive termination of this Agreement shall survive. | ||
7. EXPORT RESTRICTIONS. The Software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the Software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. | ||
8. ENTIRE AGREEMENT. This Agreement, any exhibits, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the Software and support services. | ||
9. SEVERABILITY. If any court of competent jurisdiction determines that any provision of this Agreement is illegal, invalid or unenforceable, the remaining provisions will remain in full force and effect. | ||
10. GOVERNING LAW AND VENUE. This Agreement is governed by and construed in accordance with the laws of the state of Washington, without reference to its choice of law principles to the contrary. Each party hereby consents to the jurisdiction and venue of the state and federal courts located in King County, Washington, with regard to any suit or claim arising under or by reason of this Agreement. | ||
11. LEGAL EFFECT. This Agreement describes certain legal rights. You may have other rights under the laws of your country. This Agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. | ||
12. NO ASSIGNMENT. You may not assign this Agreement or any rights or obligations hereunder, except with Microsoft's express written consent. Any attempted assignment in violation of this section will be void. | ||
13. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED "AS-IS." YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Introduction | ||
SEAL (Simple Encrypted Arithmetic Library) is an easy-to-use homomorphic encryption | ||
library, developed by researchers in the Cryptography Research group at Microsoft | ||
Research. SEAL is written in standard C++17 and contains .NET Framework wrappers | ||
for the public API. SEAL is licensed under the Microsoft Research License Agreement | ||
and is free for research use (see LICENSE.txt). | ||
|
||
# System requirements | ||
Since SEAL has no external dependencies and is written in standard C++17 it is | ||
easy to build on any 64-bit system. For building in Windows, SEAL contains a Visual | ||
Studio 2017 solution file. For building in Linux and Mac OS X, SEAL requires either | ||
g++-6 or newer, or clang++-5 or newer. Please see INSTALL.txt for installation | ||
instructions using CMake. | ||
|
||
# Documentation | ||
The code-base contains examples written both in C++ and in C#. These examples are | ||
heavily commented, serving as a self-contained short introduction to using SEAL. | ||
In addition, the .h files both in the C++ library and in the .NET wrapper library | ||
contain detailed comments for the public API. | ||
|
||
To learn to use SEAL, we recommend looking at the example projects, as they | ||
contain several detailed and thoroughly commented examples demonstrating most of | ||
the basic features. | ||
|
||
# Acknowledgements | ||
We would like to thank John Wernsing, Michael Naehrig, Nathan Dowlin, Rachel | ||
Player, Gizem Cetin, Susan Xia, Peter Rindal, Kyoohyung Han, Zhicong Huang, and | ||
Amir Jalali for their contributions to the SEAL project. We would also like to | ||
thank everyone who has sent us helpful comments, suggestions, and bug reports. | ||
|
||
# Contact Us | ||
If you have any questions, suggestions, comments, or bug reports, please contact | ||
us by emailing [sealcrypto@microsoft.com](mailto:sealcrypto@microsoft.com). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio 15 | ||
VisualStudioVersion = 15.0.26430.16 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SEAL", "SEAL\SEAL.vcxproj", "{7EA96C25-FC0D-485A-BB71-32B6DA55652A}" | ||
EndProject | ||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SEALTest", "SEALTest\SEALTest.vcxproj", "{0345DC4D-EFE3-460E-AB7E-AA6E05BB8DFF}" | ||
ProjectSection(ProjectDependencies) = postProject | ||
{7EA96C25-FC0D-485A-BB71-32B6DA55652A} = {7EA96C25-FC0D-485A-BB71-32B6DA55652A} | ||
EndProjectSection | ||
EndProject | ||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SEALExamples", "SEALExamples\SEALExamples.vcxproj", "{2B57D847-26DC-45FF-B9AF-EE33910B5093}" | ||
ProjectSection(ProjectDependencies) = postProject | ||
{7EA96C25-FC0D-485A-BB71-32B6DA55652A} = {7EA96C25-FC0D-485A-BB71-32B6DA55652A} | ||
EndProjectSection | ||
EndProject | ||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SEALNET", "SEALNET\SEALNET.vcxproj", "{6E40CF27-0C74-44D8-91FF-A30D622840CE}" | ||
ProjectSection(ProjectDependencies) = postProject | ||
{7EA96C25-FC0D-485A-BB71-32B6DA55652A} = {7EA96C25-FC0D-485A-BB71-32B6DA55652A} | ||
EndProjectSection | ||
EndProject | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SEALNETTest", "SEALNETTest\SEALNETTest.csproj", "{7C002BFC-F1A8-4B76-8E40-387AF37CDB9B}" | ||
EndProject | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SEALNETExamples", "SEALNETExamples\SEALNETExamples.csproj", "{1DBB4B63-4A07-4227-B845-07940A6E314D}" | ||
EndProject | ||
Global | ||
GlobalSection(Performance) = preSolution | ||
HasPerformanceSessions = true | ||
EndGlobalSection | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|x64 = Debug|x64 | ||
Release|x64 = Release|x64 | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{7EA96C25-FC0D-485A-BB71-32B6DA55652A}.Debug|x64.ActiveCfg = Debug|x64 | ||
{7EA96C25-FC0D-485A-BB71-32B6DA55652A}.Debug|x64.Build.0 = Debug|x64 | ||
{7EA96C25-FC0D-485A-BB71-32B6DA55652A}.Release|x64.ActiveCfg = Release|x64 | ||
{7EA96C25-FC0D-485A-BB71-32B6DA55652A}.Release|x64.Build.0 = Release|x64 | ||
{0345DC4D-EFE3-460E-AB7E-AA6E05BB8DFF}.Debug|x64.ActiveCfg = Debug|x64 | ||
{0345DC4D-EFE3-460E-AB7E-AA6E05BB8DFF}.Debug|x64.Build.0 = Debug|x64 | ||
{0345DC4D-EFE3-460E-AB7E-AA6E05BB8DFF}.Release|x64.ActiveCfg = Release|x64 | ||
{0345DC4D-EFE3-460E-AB7E-AA6E05BB8DFF}.Release|x64.Build.0 = Release|x64 | ||
{2B57D847-26DC-45FF-B9AF-EE33910B5093}.Debug|x64.ActiveCfg = Debug|x64 | ||
{2B57D847-26DC-45FF-B9AF-EE33910B5093}.Debug|x64.Build.0 = Debug|x64 | ||
{2B57D847-26DC-45FF-B9AF-EE33910B5093}.Release|x64.ActiveCfg = Release|x64 | ||
{2B57D847-26DC-45FF-B9AF-EE33910B5093}.Release|x64.Build.0 = Release|x64 | ||
{6E40CF27-0C74-44D8-91FF-A30D622840CE}.Debug|x64.ActiveCfg = Debug|x64 | ||
{6E40CF27-0C74-44D8-91FF-A30D622840CE}.Debug|x64.Build.0 = Debug|x64 | ||
{6E40CF27-0C74-44D8-91FF-A30D622840CE}.Release|x64.ActiveCfg = Release|x64 | ||
{6E40CF27-0C74-44D8-91FF-A30D622840CE}.Release|x64.Build.0 = Release|x64 | ||
{7C002BFC-F1A8-4B76-8E40-387AF37CDB9B}.Debug|x64.ActiveCfg = Debug|x64 | ||
{7C002BFC-F1A8-4B76-8E40-387AF37CDB9B}.Debug|x64.Build.0 = Debug|x64 | ||
{7C002BFC-F1A8-4B76-8E40-387AF37CDB9B}.Release|x64.ActiveCfg = Release|x64 | ||
{7C002BFC-F1A8-4B76-8E40-387AF37CDB9B}.Release|x64.Build.0 = Release|x64 | ||
{1DBB4B63-4A07-4227-B845-07940A6E314D}.Debug|x64.ActiveCfg = Debug|x64 | ||
{1DBB4B63-4A07-4227-B845-07940A6E314D}.Debug|x64.Build.0 = Debug|x64 | ||
{1DBB4B63-4A07-4227-B845-07940A6E314D}.Release|x64.ActiveCfg = Release|x64 | ||
{1DBB4B63-4A07-4227-B845-07940A6E314D}.Release|x64.Build.0 = Release|x64 | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(Performance) = preSolution | ||
HasPerformanceSessions = true | ||
EndGlobalSection | ||
EndGlobal |
Oops, something went wrong.