README for mbed TLS
===================
Configuration
-------------
mbed TLS should build out of the box on most systems. Some platform specific options are available in the fully-documented configuration file `include/mbedtls/config.h`, which is also the place where features can be selected. This file can be edited manually, or in a more programmatic way using the Perl script `scripts/config.pl` (use `--help` for usage instructions).
Compiler options can be set using standard variables such as `CC` and `CFLAGS` when using the Make and CMake build system (see below).
Compiling
---------
There are currently four active build systems within the mbed TLS releases:
- yotta
- Make
- CMake
- Microsoft Visual Studio (Visual Studio 6 and Visual Studio 2010)
The main systems used for development are CMake and yotta. Those systems are always complete and up-to-date. The others should reflect all changes present in the CMake and yotta build system, but some features are not ported there by default.
Please note that the yotta option is slightly different from the other build systems:
- a more minimalistic configuration file is used by default
- depending on the yotta target, features of mbed OS will be used in examples and tests
The Make and CMake build systems create three libraries: libmbedcrypto, libmbedx509, and libmbedtls. Note that libmbedtls depends on libmbedx509 and libmbedcrypto, and libmbedx509 depends on libmbedcrypto. As a result, some linkers will expect flags to be in a specific order, for example the GNU linker wants `-lmbedtls -lmbedx509 -lmbedcrypto`. Also, when loading shared libraries using dlopen(), you'll need to load libmbedcrypto first, then libmbedx509, before you can load libmbedtls.
### Yotta
[yotta](http://yottabuild.org) is a package manager and build system developed by mbed; it is the build system of mbed OS. To install it on your platform, please follow the yotta [installation instructions](http://docs.yottabuild.org/#installing).
Once yotta is installed, you can use it to download the latest version of mbed TLS form the yotta registry with:
yotta install mbedtls
and build it with:
yotta build
If, on the other hand, you already have a copy of mbed TLS from a source other than the yotta registry, for example from cloning our GitHub repository, or from downloading a tarball of the standalone edition, then you'll need first need to generate the yotta module by running:
yotta/create-module.sh
from the mbed TLS root directory. This will create the yotta module in the `yotta/module` directory. You can then change to that directory and build as usual:
cd yotta/module
yotta build
In any case, you'll probably want to set the yotta target before building unless it's already set globally; for more information on using yotta, please consult the [yotta documentation](http://docs.yottabuild.org/).
For more details on the yotta/mbed OS edition of mbed TLS, including example programs, please consult the [Readme at the root of the yotta module](https://github.com/ARMmbed/mbedtls/blob/development/yotta/data/README.md).
### Make
We intentionally only use the absolute minimum of `Make` functionality, as a lot of `Make` features are not supported on all different implementations of Make on different platforms. As such, the Makefiles sometimes require some handwork or export statements in order to work for your platform.
In order to build the source using Make, just enter at the command line:
make
In order to run the tests, enter:
make check
The tests need Perl to be built and run. If you don't have Perl installed, you can skip building the tests with:
make no_test
You'll still be able to run a much smaller set of tests with:
programs/test/selftest
In order to build for a Windows platform, you should use `WINDOWS_BUILD=1` if the target is Windows but the build environment is Unix-like (for instance when cross-compiling, or compiling from an MSYS shell), and `WINDOWS=1` if the build environment is a Windows shell (for instance using mingw32-make) (in that case some targets will not be available).
Setting the variable `SHARED` in your environment will build shared libraries in addition to the static libraries. Setting `DEBUG` gives you a debug build. You can override `CFLAGS` and `LDFLAGS` by setting them in your environment or on the make command line; if you do so, essential parts such as `-I` will still be preserved. Warning options may be overridden separately using `WARNING_CFLAGS`.
Depending on your platform, you might run into some issues. Please check the Makefiles in `library/`, `programs/` and `tests/` for options to manually add or remove for specific platforms. You can also check [the mbed TLS Knowledge Base](https://tls.mbed.org/kb) for articles on your platform or issue.
In case you find that you need to do something else as well, please let us know what, so we can add it to the KB.
### CMake
In order to build the source using CMake, just enter at the command line:
cmake .
make
In order to run the tests, enter:
make test
The test suites need Perl to be built. If you don't have Perl installed, you'll want to disable the test suites with:
cmake -DENABLE_TESTING=Off .
If you disabled the test suites, but kept the programs enabled, you can still run a much smaller set of tests with:
programs/test/selftest
To configure CMake for building shared libraries, use:
cmake -DUSE_SHARED_MBEDTLS_LIBRARY=On .
There are many different build modes available within the CMake buildsystem. Most of them are available for gcc and clang, though some are compiler-specific:
- Release. This generates the default code without any unnecessary information in the binary files.
- Debug. This generates debug information and disables optimization of the code.
- Coverage. This generates code coverage information in addition to debug information.
- ASan. This instruments the code with AddressSanitizer to check for memory errors. (This includes LeakSanitizer, with recent version of gcc and clang.) (With recent version of clang, this mode also instruments the code with UndefinedSanitizer to check for undefined behaviour.)
- ASanDbg. Same as ASan but slower, with debug information and better stack traces.
- MemSan. This instruments the code with MemorySanitizer to check for uninitialised memory reads. Experimental, needs recent clang on Linux/x86\_64.
- MemSanDbg. Same as MemSan but slower, with debug information, better stack traces and origin tracking.
- Check. This activates the compiler warnings that depend on optimization and treats all warnings as errors.
Switching build modes in CMake is simple. For debug mode, enter at the command line:
cmake -D CMAKE_BUILD_TYPE=Debug .
To list other available CMake options, use:
cmake -LH
Note that, with CMake, if you want to change the compiler or its options after you already ran CMake, you need to clear its cache first, e.g. (using GNU find):
find . -iname '*cmake*' -not -name CMakeLists.txt -exec rm -rf {} +
CC=gcc CFLAGS='-fstack-protector-strong -Wa,--noexecstack' cmake .
### Microsoft Visual Studio
The build files for Microsoft Visual Studio are generated for Visual Studio 2010.
The solution file `mbedTLS.sln` contains all the basic projects needed to build the library and all the programs. The files in tests are not generated and compiled, as these need a perl environment as well. However, the selftest program in `programs/test/` is still available.
Example programs
----------------
We've included example programs for a lot of different features and uses in `programs/`. Most programs only focus on a single feature or usage scenario, so keep that in mind when copying parts of the code.
Tests
-----
mbed TLS includes an elaborate test suite in `tests/` that initially requires Perl to generate the tests files (e.g. `test\_suite\_mpi.c`). These files are generated from
没有合适的资源?快使用搜索试试~ 我知道了~
最新mbedtls-2.2.0 SSL安全库
共778个文件
c:120个
crt:115个
h:79个
需积分: 42 41 下载量 18 浏览量
2015-12-25
13:59:48
上传
评论
收藏 7.35MB RAR 举报
温馨提示
最近正在移植mbedtls到嵌入式系统,所以我从官网下载了最新的mbedtls库,因为最新的库只支持vs2010以上版本,因此我对net.c做了修改,实现了在vc ,vs2005,等平台可以运行测试。今天就把他分享出来。
资源推荐
资源详情
资源评论
收起资源包目录
最新mbedtls-2.2.0 SSL安全库 (778个子文件)
keyfile.3des 963B
keyfile.aes128 986B
keyfile.aes192 986B
keyfile.aes256 986B
ssl_tls.c 235KB
ssl_srv.c 125KB
ssl_cli.c 108KB
ssl_ciphersuites.c 79KB
ssl_server2.c 74KB
x509_crt.c 68KB
ecp.c 63KB
ssl_client2.c 55KB
bignum.c 55KB
ecp_curves.c 51KB
rsa.c 49KB
aes.c 48KB
pkparse.c 38KB
ecjpake.c 37KB
error.c 35KB
cipher_wrap.c 35KB
camellia.c 34KB
des.c 31KB
gcm.c 30KB
benchmark.c 28KB
x509.c 28KB
cipher.c 25KB
blowfish.c 25KB
ssl_mail_client.c 25KB
oid.c 23KB
cert_write.c 23KB
version_features.c 21KB
net.c 20KB
x509_crl.c 19KB
memory_buffer_alloc.c 19KB
udp_proxy.c 19KB
certs.c 19KB
aesni.c 18KB
ctr_drbg.c 17KB
dhm.c 16KB
hmac_drbg.c 16KB
crypt_and_hash.c 15KB
x509write_crt.c 15KB
sha512.c 15KB
cert_app.c 15KB
ssl_pthread_server.c 15KB
pkwrite.c 14KB
pk_wrap.c 14KB
ripemd160.c 13KB
entropy.c 13KB
ssl_ticket.c 13KB
ecdsa.c 13KB
md_wrap.c 13KB
pem.c 13KB
ccm.c 13KB
sha256.c 13KB
timing.c 13KB
ssl_fork_server.c 12KB
md.c 12KB
gen_key.c 12KB
dtls_server.c 12KB
aescrypt2.c 12KB
pkcs5.c 11KB
sha1.c 11KB
x509_create.c 11KB
ssl_server.c 11KB
key_app_writer.c 11KB
md5.c 11KB
cert_req.c 11KB
debug.c 11KB
pkcs12.c 11KB
x509_csr.c 10KB
mini_client.c 10KB
pk.c 10KB
md4.c 10KB
dtls_client.c 10KB
asn1write.c 10KB
asn1parse.c 9KB
dh_server.c 9KB
havege.c 9KB
ssl_client1.c 9KB
dh_client.c 9KB
x509write_csr.c 8KB
key_app.c 8KB
ssl_cache.c 8KB
md2.c 8KB
xtea.c 7KB
selftest.c 7KB
base64.c 7KB
ssl_cookie.c 7KB
ssl_cert_test.c 7KB
ecdh.c 7KB
ecdh_curve25519.c 7KB
pem2der.c 6KB
ecdsa.c 6KB
pkcs11.c 6KB
generic_sum.c 6KB
rsa_genkey.c 6KB
dh_genprime.c 5KB
entropy_poll.c 5KB
platform.c 5KB
共 778 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
harbap
- 粉丝: 7
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 同等学力申硕考试 组合数学
- 同等学力 离散数学与组合数学
- 50条最常用Linux系统命令大全手册
- 斯沃数控仿真软件7.2版数控加工中心车床铣床编程仿真模拟教程斯沃系统手册可编程序控制器系统(ABPLC)说明
- 2023NOC软件创意编程赛项真题-python小高初赛
- 2024安全信息安全与评估
- 斯沃数控仿真软件7.2版数控加工中心车床铣床编程仿真模拟教程斯沃系统手册DASEN-9i-连接手册PLC-手册
- SpringBoot集成MyBatis-Plus
- 基于python-contrib-opencv,dlib,pyqt5实现电脑端摄像头读取视频,实时人脸录入,人脸识别等功能
- 斯沃数控仿真软件7.2版数控加工中心车床铣床编程仿真模拟教程斯沃系统手册DASEN-3i-h连接手册PLC手册
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功