MSL 框架提供了框架及其实现要求的完整描述。配置指南介绍了一些常见的客户端和服务器 MSL 配置。框架文档和配置指南由外部安全公司审查。没有发现任何问题。
应用程序必须实现和使用的一组公共接口和类记录在Public Javadoc中。所有代码的文档,包括内部类和私有方法,都可以在完整的Javadoc中找到。
如有问题和支持,请直接联系Wesley Miaw。错误和功能请求应提交到Issue Tracker中。
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
Java MSL 代码库需要org.json和Bouncy Castle库。单元测试需要JUnit 4和Hamcrest。集成测试需要TestNG。
JavaScript MSL 代码库包括 lib/ 目录中的一些第三方库,最著名的是Clarinet解析器和jsrsasign。
C++ MSL 代码库需要OpenSSL并在 lib/ 目录中包含一些第三方库:Chromium Numerics、RapidJSON、RSA Converter和UTF-8 with CPP in a Portable Way。单元测试还包括测试 lib/ 目录中的一些第三方库:Google Mock和Google Test。
所有第三方库均受其各自许可协议的约束。
要构建使用 MSL 进行通信的应用程序,您必须通读并理解MSL 框架。这是必要的,因为与其他安全协议和库不同,您必须选择如何保护您的通信并验证您的实体和用户。配置指南可以帮助您做出这些决定。
MSL 堆栈的应用程序接口是MslControl
. 单个 MSL 网络的应用程序配置是MslContext
. 您的应用程序可能参与多个 MSL 网络,因此有多个实例,但只应使用MslContext
一个。MslControl
特定于消息的配置,例如该消息的用户或安全属性,在 的各个实例中指定MessageContext
。
IntelliJ IDEA用户应将 Java MSL 代码导入为 Gradle 项目。
Eclipse用户应该使用 Gradle IDE(在 Eclipse Marketplace 中可用)和 Web 工具平台(包含在 Eclipse IDE 中供 Java EE 开发人员使用)将 Java MSL 代码导入为 Gradle 项目。
在examples/simple/src/main/java/server/下提供了一个示例服务器。Eclipse Gradle 插件会将此项目导入为可以部署到 Tomcat 服务器上的 Web 项目。IntelliJ 用户必须手动配置运行配置以将项目工件部署到/msl-example-server
. 示例服务器是一个 J2EE servlet,它将响应来自示例 JavaScript 客户端的请求。示例服务器 MSL 配置特定于此服务器,不应用于配置您的应用程序,但它可以用作这样做的基础。
集成测试在integ-tests/src/main/java/下提供。integ-tests
这些测试可以使用Gradle target运行test
。Eclipse Gradle 插件会将此项目导入为可以部署到 Tomcat 服务器上的 Web 项目。IntelliJ 用户必须手动配置运行配置以将项目工件部署到/msl-test-server
.
examples/mslcli/src/main/java/下提供了命令行客户端和服务器。命令行客户端可以配置为与任何 MSL 服务器一起工作。命令行服务器是一个示例 MSL 服务器,必须从命令行运行。有关详细信息,请参阅示例/mslcli/readme.txt 。
您可能需要安装Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files才能使用超过特定大小的加密密钥。
JavaScript MSL 代码库采用支持最新Web Crypto API规范的 JavaScript 执行环境。如果您使用的是 Web 浏览器,则可能需要启用实验性功能或功能标志才能启用 Web Crypto。
chrome://flags/#enable-experimental-web-platform-features
在 Linux 上,必须单独安装 libnss 3.16.2+。about:config dom.webcrypto.enabled
您的浏览器可能不支持所有 Web Crypto API 算法、密钥大小和功能。如果您遇到 Web 加密操作问题,请查看您的浏览器版本的发行说明,以确定它是否支持您尝试执行的操作。
要在 JavaScript 应用程序中包含 JavaScript MSL 堆栈,您必须包含 MSL 配置所需的所有 MSL JavaScript 源文件。可以在src/test/javascript/msltests.html中找到所需源文件的示例列表。
在src/examples/simple/src/main/javascript/client/下提供了一个示例客户端。示例客户端是一个网页,它将向示例 Java 服务器发送请求。示例客户端 MSL 配置特定于此客户端,不应用于配置您的应用程序,但它可以用作执行此操作的基础。
C++ MSL 代码库需要 C++11 和 CMake。
代码库已在以下环境下构建和测试:
-std=c++0x -DGTEST_DONT_DEFINE_FAIL=1 -DRAPIDJSON_HAS_STDSTRING=1
.-std=gnu++11 -DGTEST_DONT_DEFINE_FAIL=1 -DRAPIDJSON_HAS_STDSTRING=1
[/hidecontent]