17 个不稳定版本 (6 个重大更改)

0.7.0 2024年8月6日
0.6.2 2024年7月16日
0.6.1 2024年6月4日
0.5.0 2024年2月21日
0.1.0 2020年4月11日

#98编码

Download history 773/week @ 2024-04-27 906/week @ 2024-05-04 912/week @ 2024-05-11 1229/week @ 2024-05-18 1311/week @ 2024-05-25 1449/week @ 2024-06-01 1104/week @ 2024-06-08 1843/week @ 2024-06-15 1439/week @ 2024-06-22 3412/week @ 2024-06-29 2038/week @ 2024-07-06 2132/week @ 2024-07-13 2376/week @ 2024-07-20 1782/week @ 2024-07-27 2255/week @ 2024-08-03 1834/week @ 2024-08-10

每月下载量 8,870
用于 5 个crate(直接使用4个)

Apache-2.0

1.5MB
31K SLoC

Build Status Crates.io License Website Slack Invite Group Discussion Twitter

cyclonedx-bom

CycloneDX 库提供了软件物料清单(SBOM)文件的 JSON 和 XML 序列化和反序列化。

CycloneDX 是一个全栈式 SBOM/xBOM 标准,旨在用于应用安全环境和供应链组件分析。

该库旨在使开发者能够

  • 构建符合 CycloneDX 规范的 SBOM 文档
  • 解析和验证 JSON 和 XML SBOM 文档
  • 对 BOM 文档进行修改(例如,使用各种算法合并多个 BOM)

支持的 CycloneDX 版本

该库目前支持 CycloneDX 1.3、1.4 和 1.5。

使用方法

读取并验证 SBOM

use cyclonedx_bom::prelude::*;

let bom_json = r#"{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
  "version": 1
}"#;
let bom = Bom::parse_from_json_v1_5(bom_json.as_bytes()).expect("Failed to parse BOM");

let validation_result = bom.validate();
assert!(validation_result.passed());

创建并输出 SBOM

use cyclonedx_bom::prelude::*;
use cyclonedx_bom::models::{
    tool::{Tool, Tools},
};

let bom = Bom {
    serial_number: Some(
        UrnUuid::new("urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79".to_string())
            .expect("Failed to create UrnUuid"),
    ),
    metadata: Some(Metadata {
        tools: Some(Tools::List(vec![Tool {
            name: Some(NormalizedString::new("my_tool")),
            ..Tool::default()
        }])),
        ..Metadata::default()
    }),
    ..Bom::default()
};

let mut output = Vec::<u8>::new();

bom.output_as_json_v1_5(&mut output)
    .expect("Failed to write BOM");
let output = String::from_utf8(output).expect("Failed to read output as a string");
assert_eq!(
    output,
    r#"{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "version": 1,
  "serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
  "metadata": {
    "tools": [
      {
        "name": "my_tool"
      }
    ]
  }
}"#
);

验证和验证

有关详细信息,请参阅 README

贡献

有关详细信息,请参阅 CONTRIBUTING

漏洞赏金

我们正在运行由 漏洞赏金计划 资助的 漏洞弹性计划,该计划由 主权技术基金 提供。非常感谢!

CycloneDX Rust Cargo 的版权为 OWASP 基金会所有。版权所有。

根据 Apache 2.0 许可协议,允许修改和重新分发。有关完整许可协议,请参阅 LICENSE 文件。

依赖项

~6.5–9MB
~150K SLoC