Cryptographic library
Перейти к файлу
Mitch Lindgren 🦎 9ec45fc43a Merged PR 3991172: Create Azure Pipelines YAML script for Windows build
This change adds a YAML script to enable building CMake for AMD64 Windows 10 in Azure Dev Ops. This build should occur automatically for all pull requests into master, and whenever master changes (whether due to a PR or a force push, etc).

Also removed the dependency on `ntintsafe.h`, which was not actually being used. (Maybe Changyu removed calls to its functions it when he did the Linux port?)
2019-11-08 21:17:09 +00:00
.github Merged PR 3268891: Update build system to work with multi-branch Git 2019-05-16 22:40:16 +00:00
SymCryptDependencies@c22e2ddbb7 Merged PR 3965002: Fix up CMake files after recent changes 2019-11-06 02:16:53 +00:00
build Merged PR 3513151: Linux port 2019-09-24 20:36:35 +00:00
doc Merged PR 3268891: Update build system to work with multi-branch Git 2019-05-16 22:40:16 +00:00
gen Merged PR 3991172: Create Azure Pipelines YAML script for Windows build 2019-11-08 21:17:09 +00:00
inc Merged PR 3950132: Harden against bad EC parameters, fix RSA testing to only generate keys when needed 2019-10-31 21:27:28 +00:00
lib Merged PR 3950132: Harden against bad EC parameters, fix RSA testing to only generate keys when needed 2019-10-31 21:27:28 +00:00
publics Merged PR 3749747: Adapt build system to Razzle changes 2019-09-12 00:04:33 +00:00
scbuild Merged PR 3919453: Modularize RSA tests 2019-10-24 01:49:21 +00:00
symcrypt_iOS.xcworkspace Merged PR 3132200: Full SymCrypt v87 2019-04-11 00:16:39 +00:00
test/indirect_call_perf Merged PR 3136947: Fix copyright messages to refer to the MIT license 2019-04-11 22:52:13 +00:00
unittest Merged PR 3991172: Create Azure Pipelines YAML script for Windows build 2019-11-08 21:17:09 +00:00
.gitignore Merged PR 3804014: Add support for building with cmake on Windows outside of Razzle 2019-09-28 00:47:15 +00:00
.gitmodules Merged PR 3965002: Fix up CMake files after recent changes 2019-11-06 02:16:53 +00:00
BranchStructure.txt Merged PR 3210147: Fix spelling 2019-04-30 20:56:13 +00:00
CMakeLists.txt Merged PR 3991172: Create Azure Pipelines YAML script for Windows build 2019-11-08 21:17:09 +00:00
LICENSE Add license 2018-10-25 17:43:28 -07:00
PublishToGithub.cmd Prep work for open-sourcing 2019-04-09 15:21:10 -07:00
README.md Merged PR 3210230: Add section to README about reporting security bugs 2019-04-30 21:13:57 +00:00
azure-pipelines.yml Merged PR 3991172: Create Azure Pipelines YAML script for Windows build 2019-11-08 21:17:09 +00:00
dirs Merged PR 3268891: Update build system to work with multi-branch Git 2019-05-16 22:40:16 +00:00
scIntoWindows.cmd Merged PR 3513151: Linux port 2019-09-24 20:36:35 +00:00
scbuild.cmd Merged PR 3136947: Fix copyright messages to refer to the MIT license 2019-04-11 22:52:13 +00:00

README.md

Introduction

SymCrypt is the core cryptographic function library currently used by Windows.

History

The library was started in late 2006 with the first sources committed in Feb 2007. Initially the goal was limited to implement symmetric cryptographic operations, hence the name. Starting with Windows 8, it has been the primary crypto library for symmetric algorithms.

In 2015 we started the work of adding asymmetric algorithms to SymCrypt. Since the 1703 release of Windows 10, SymCrypt has been the primary crypto library for all algorithms in Windows.

Goals

Like any engineering project, SymCrypt is a compromise between conflicting requirements:

  • Provide safe implementations of the cryptographic algorithms needed by Microsoft products.
  • Run on all CPU architectures supported by Windows.
  • Good performance.
  • Minimize maintenance cost.
  • Support FIPS 140-2 certification of products using SymCrypt.
  • Provide high assurance in the proper functionality of the library.

Build and Test

At the moment this library only compiles with the Windows build system. Unfortunately this toolchain is not available outside Microsoft. We expect to have a Linux port working in the near future.

The SymCrypt unit test is in the \unittest directory. It runs extensive functional tests on the SymCrypt library, as well as on other implementations such as the Windows APIs CNG and CAPI, and the older crypto libraries rsa32 and msbignum. It also provides detailed performance information.

Security Bugs

If you believe you have found a problem that affects the security of this code, please do NOT create an issue or pull request, but instead email your comments to secure@microsoft.com.

Contribute

We love to receive comments and suggestions. Unfortunately we cannot accept external code contributions at this time. Cryptographic code is considered highly sensitive by many of our large customers. We have some very big customers who put great value in the assurance of the crypto code used in their organization. By restricting the coding to a handful of employees we can greatly reduce the (perceived) risk of malicious contributions.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.