awslabs/aws-encryption-sdk-specification

GitHub: awslabs/aws-encryption-sdk-specification

AWS Encryption SDK 的官方规范文档,定义了跨语言实现必须遵循的加密行为标准,确保各版本间的一致性和互操作性。

Stars: 38 | Forks: 27

# AWS Encryption SDK 规范 ## 概述 本代码库包含 AWS Encryption SDK 规范。 本规范的主要目标是定义一套标准的、语言无关的 AWS Encryption SDK 功能描述。 它是构成 AWS Encryption SDK 的功能及其行为细节的事实来源。 旨在促进 AWS Encryption SDK 各实现之间的一致性和互操作性。 此 GitHub 项目还用于跟踪问题和功能请求,并收集有关 AWS Encryption SDK 的反馈。 [安全问题通知](./CONTRIBUTING.md#security-issue-notifications) ### 当前实现 以下是本规范的当前实现列表: - [C](https://github.com/aws/aws-encryption-sdk-c) - [Java](https://github.com/aws/aws-encryption-sdk-java) - [Python](https://github.com/aws/aws-encryption-sdk-python) - [CLI](https://github.com/aws/aws-encryption-sdk-cli) - [Javascript](https://github.com/awslabs/aws-encryption-sdk-javascript) ## 许可证摘要 本文档基于 Creative Commons Attribution-ShareAlike 4.0 International License 提供。请参阅 LICENSE 文件。 本文档中的示例代码基于 MIT-0 许可证提供。请参阅 LICENSE-SAMPLECODE 文件。 ## 编辑 我们使用 `prettier` 来保持格式一致。 我们的 CI 会阻止不符合我们格式要求的 PR, 但为了方便应用这些要求, 请运行 `./ci/prettify.sh write`。 如果您只想检查而不写入, 请运行 `./ci/prettify.sh check`。 ## 生成 Duvet 报告 [Duvet](https://github.com/awslabs/aws-encryption-sdk-specification/issues/240) 是一个可用于确保规范与代码一并记录的工具。 本代码库包含用于安装和使用 Duvet 处理本规范的有用脚本。 安装 Duvet: ``` ./util/install-duvet ``` 要生成关于本规范中哪些部分在代码中有覆盖的报告,请使用 `report` 脚本。 例如: ``` ./util/report.js 'src/main/**/*.java' 'src/test/**/*.java' ``` ## 从规范中提取 `compliance` 规范是用 Markdown 编写的。 我们的合规性工具需要 RFC 格式的文本文件。 因此,我们有一个工具可以从 Markdown 中提取 RFC 规范。 ### RFC 范围 我们不会将每个 Markdown 文件都包含在 RFC 规范中; 我们也不会包含 Markdown 文件的所有部分 (即我们排除了旧版、更改等)。 RFC 规范范围内的目录是 `util/specification_extract.sh` 中列出的那些。 ### 运行 `extract` #### 针对更改运行 如果您更改了任何符合合规性范围的 Markdown,则必须运行提取实用程序。 有两种方法可以做到这一点。如果您只更改了一个文件,您可以仅针对该文件运行 `extract`。 ``` ./util/extract.js PATH_TO_CHANGED_MARKEDOWN ``` 例如,如果仅更新了 Default CMM Markdown,我们将运行: ``` ./util/extract.js framework/default-cmm.md ``` #### 全部运行 或者,可以一次性提取整个规范。运行: ``` ./util/specification_extract.sh ``` ### 安装依赖项 实用程序/脚本 `util/extract.js` 依赖于四个运行 时:`node`、`python`、`ruby` 和 `rust` (不,这并不理想,但 Crypto Tools 正在推动“规范到代码”的边界; 我们的工具走在前面)。 #### 设置 Python & `xml2rfc` 按照 [AWS Crypto Tools Python 入门指南](https://github.com/aws/crypto-tools/blob/master/getting-started/python/README.md#local-development-setup) 安装 `pyenv`。 然后,在此代码库中运行 `pyenv local 3.9.7; pyenv exec python -m pip install xml2rfc==3.5.0 markupsafe==2.0.1`。 #### 设置 `kramdown-rfc2629` 这是 Ruby 依赖项。不幸的是,我们还没找到 一个好的安装方法,所以我们用一个笨办法: ``` sudo gem install kramdown-rfc2629 ``` #### Node 按照 [Daniel Schildt 的使用 `nvm` 在 macOS 上安装 Node.js](https://gist.github.com/d2s/372b5943bce17b964a79) 来让 `nvm` 和 `node` 工作。 #### Rust 安装 Duvet 将安装 rust。
标签:Amazon Web Services, AWS, DPI, HTTP工具, KMS, meg, MITM代理, ProjectDiscovery, 信息安全, 加密SDK, 可视化界面, 多语言支持, 子域名变形, 安全测试框架, 密码学, 开源标准, 手动系统调用, 技术规范, 数据保护, 数据加密, 自定义脚本, 规范文档, 跨语言互操作性, 逆向工具, 防御加固