实例介绍
CycloneDX CLI工具是一个强大的命令行工具,用于执行安全软件物料清单(SBOM)的分析、合并、差异比较以及格式转换。该工具支持CycloneDX XML、JSON、Protobuf、CSV和SPDX JSON v2.2等多种格式之间的转换。
功能概览:
- 分析BOM文件,识别重复的组件版本
- 合并两个或更多的BOM文件
- 生成BOM差异报告
- 在不同的BOM格式之间进行转换
- 支持BOM签名和验证
使用示例:
cat bom.json | cyclonedx-cli convert --input-format json --output-format xml > bom.xml此外,CycloneDX CLI工具支持将输入从stdin接收,也支持将输出导向stdout,使其能够灵活地集成到自动化工作流程中。
注意:该工具旨在用于自动化用例,提高开发和安全分析的效率。
【实例截图】
【核心代码】
文件清单
└── cyclonedx-cli-1034f85e5a757944de460cb843be3fd653bb2116
├── cyclonedx-cli.sln
├── Directory.Build.props
├── Directory.Build.targets
├── Dockerfile
├── example.csv
├── LICENSE
├── local-docker-build.sh
├── NOTICE
├── README.md
├── semver.txt
├── src
│ └── cyclonedx
│ ├── AssemblyInfo.cs
│ ├── CliUtils.cs
│ ├── Commands
│ │ ├── Add
│ │ │ ├── AddFilesCommand.cs
│ │ │ └── AddFilesCommandOption.cs
│ │ ├── AddCommand.cs
│ │ ├── AnalyzeCommand.cs
│ │ ├── AnalyzeCommandOptions.cs
│ │ ├── CommandOutputFormat.cs
│ │ ├── ConvertCommand.cs
│ │ ├── ConvertCommandOptions.cs
│ │ ├── ConvertFormat.cs
│ │ ├── CycloneDXBomFormat.cs
│ │ ├── DiffCommand.cs
│ │ ├── DiffCommandOptions.cs
│ │ ├── KeyGenCommand.cs
│ │ ├── KeyGenCommandOptions.cs
│ │ ├── MergeCommand.cs
│ │ ├── MergeCommandOptions.cs
│ │ ├── Sign
│ │ │ ├── SignBomCommand.cs
│ │ │ ├── SignBomCommandOption.cs
│ │ │ ├── SignFileCommand.cs
│ │ │ └── SignFileCommandOption.cs
│ │ ├── SignCommand.cs
│ │ ├── ValidateCommand.cs
│ │ ├── ValidateCommandOptions.cs
│ │ ├── ValidationBomFormat.cs
│ │ ├── Verify
│ │ │ ├── VerifyAllCommand.cs
│ │ │ ├── VerifyAllCommandOption.cs
│ │ │ ├── VerifyFileCommand.cs
│ │ │ └── VerifyFileCommandOption.cs
│ │ └── VerifyCommand.cs
│ ├── cyclonedx.csproj
│ ├── ExitCode.cs
│ ├── Models
│ │ ├── AnalyzeResult.cs
│ │ └── DiffResult.cs
│ ├── Program.cs
│ └── Serialization
│ └── CsvSerializer.cs
└── tests
└── cyclonedx.tests
├── ConvertTests.cs
├── CsvSerializerTests.cs
├── cyclonedx.tests.csproj
├── MergeTests.cs
├── Resources
│ ├── bom-1.0.xml
│ ├── bom-1.1.xml
│ ├── bom-1.2.json
│ ├── bom-1.2.xml
│ ├── bom-1.3.cdx
│ ├── bom-1.3.json
│ ├── bom-1.3.xml
│ ├── bom-1.3.xml.invalid.sig
│ ├── bom-1.3.xml.valid.sig
│ ├── bom-1.4.json
│ ├── bom-1.4.xml
│ ├── bom-1.5.json
│ ├── bom-1.5.xml
│ ├── bom.csv
│ ├── CsvSerializer
│ │ ├── bom-1.2.xml
│ │ ├── bom.csv
│ │ ├── bom-lowercase-field-names.csv
│ │ ├── bom-minimum-viable.csv
│ │ ├── valid-component-hashes-1.2.xml
│ │ ├── valid-component-hashes.csv
│ │ ├── valid-component-swid-1.2.xml
│ │ ├── valid-component-swid.csv
│ │ ├── valid-component-swid-full-1.2.xml
│ │ ├── valid-component-swid-full.csv
│ │ ├── valid-component-types-1.2.xml
│ │ ├── valid-component-types.csv
│ │ ├── valid-license-expression-1.2.xml
│ │ ├── valid-license-expression.csv
│ │ ├── valid-license-id-1.2.xml
│ │ ├── valid-license-id.csv
│ │ ├── valid-license-name-1.2.xml
│ │ └── valid-license-name.csv
│ ├── document.spdx.json
│ ├── Merge
│ │ ├── sbom1.json
│ │ ├── sbom1.xml
│ │ ├── sbom2.json
│ │ └── sbom2.xml
│ ├── private.key
│ ├── public.key
│ ├── signed-bom-modified.xml
│ └── signed-bom.xml
├── SignBomTests.cs
├── SignFileTests.cs
├── __snapshots__
│ ├── ConvertTests.Convert_bom-1.0.xml_autodetect_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.0.xml_xml_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.0.xml_xml_bom.xml_xml_v1_1.snap
│ ├── ConvertTests.Convert_bom-1.1.xml_autodetect_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.1.xml_xml_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.1.xml_xml_bom.xml_xml_v1_1.snap
│ ├── ConvertTests.Convert_bom-1.2.json_autodetect_bom.json_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.2.json_json_bom.json_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.2.json_json_bom.json_json_v1_2.snap
│ ├── ConvertTests.Convert_bom-1.2.xml_autodetect_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.2.xml_xml_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.2.xml_xml_bom.xml_xml_.snap
│ ├── ConvertTests.Convert_bom-1.2.xml_xml_bom.xml_xml_v1_2.snap
│ ├── ConvertTests.Convert_bom-1.3.cdx_protobuf_bom.cdx_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.3.cdx_protobuf_bom.json_json_v1_3.snap
│ ├── ConvertTests.Convert_bom-1.3.json_autodetect_bom.json_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.3.json_json_bom.cdx_protobuf_v1_3.snap
│ ├── ConvertTests.Convert_bom-1.3.json_json_bom.json_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.3.json_json_bom.json_json_.snap
│ ├── ConvertTests.Convert_bom-1.3.json_json_bom.json_json_v1_3.snap
│ ├── ConvertTests.Convert_bom-1.3.xml_autodetect_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.3.xml_xml_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.3.xml_xml_bom.xml_xml_.snap
│ ├── ConvertTests.Convert_bom-1.3.xml_xml_bom.xml_xml_v1_3.snap
│ ├── ConvertTests.Convert_bom-1.4.json_autodetect_bom.json_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.4.json_json_bom.json_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.4.json_json_bom.json_json_.snap
│ ├── ConvertTests.Convert_bom-1.4.json_json_bom.json_json_v1_4.snap
│ ├── ConvertTests.Convert_bom-1.4.xml_autodetect_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.4.xml_xml_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.4.xml_xml_bom.xml_xml_.snap
│ ├── ConvertTests.Convert_bom-1.4.xml_xml_bom.xml_xml_v1_4.snap
│ ├── ConvertTests.Convert_bom-1.5.json_autodetect_bom.json_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.5.json_json_bom.json_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.5.json_json_bom.json_json_.snap
│ ├── ConvertTests.Convert_bom-1.5.json_json_bom.json_json_v1_5.snap
│ ├── ConvertTests.Convert_bom-1.5.xml_autodetect_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.5.xml_xml_bom.xml_autodetect_.snap
│ ├── ConvertTests.Convert_bom-1.5.xml_xml_bom.xml_xml_.snap
│ ├── ConvertTests.Convert_bom-1.5.xml_xml_bom.xml_xml_v1_5.snap
│ ├── ConvertTests.Convert_bom.csv_autodetect_bom.csv_autodetect_.snap
│ ├── ConvertTests.Convert_bom.csv_csv_bom.csv_autodetect_.snap
│ ├── ConvertTests.Convert_bom.csv_csv_bom.csv_csv_.snap
│ ├── ConvertTests.ConvertFromSpdxJson_autodetect.snap
│ ├── ConvertTests.ConvertFromSpdxJson_spdxjson.snap
│ ├── ConvertTests.ConvertToSpdxJson_autodetect.snap
│ ├── ConvertTests.ConvertToSpdxJson_spdxjson.snap
│ ├── CsvSerializerTests.DeserializationTests_bom-lowercase-field-names.snap
│ ├── CsvSerializerTests.DeserializationTests_bom-minimum-viable.snap
│ ├── CsvSerializerTests.DeserializationTests_bom.snap
│ ├── CsvSerializerTests.DeserializationTests_valid-component-hashes.snap
│ ├── CsvSerializerTests.DeserializationTests_valid-component-swid-full.snap
│ ├── CsvSerializerTests.DeserializationTests_valid-component-swid.snap
│ ├── CsvSerializerTests.DeserializationTests_valid-component-types.snap
│ ├── CsvSerializerTests.DeserializationTests_valid-license-expression.snap
│ ├── CsvSerializerTests.DeserializationTests_valid-license-id.snap
│ ├── CsvSerializerTests.DeserializationTests_valid-license-name.snap
│ ├── CsvSerializerTests.SerializationTests_bom.snap
│ ├── CsvSerializerTests.SerializationTests_valid-component-hashes.snap
│ ├── CsvSerializerTests.SerializationTests_valid-component-swid-full.snap
│ ├── CsvSerializerTests.SerializationTests_valid-component-swid.snap
│ ├── CsvSerializerTests.SerializationTests_valid-component-types.snap
│ ├── CsvSerializerTests.SerializationTests_valid-license-expression.snap
│ ├── CsvSerializerTests.SerializationTests_valid-license-id.snap
│ ├── CsvSerializerTests.SerializationTests_valid-license-name.snap
│ ├── MergeTests.Merge_Flat_sbom1.json_sbom2.json_autodetect_sbom.json_autodetect.snap
│ ├── MergeTests.Merge_Flat_sbom1.json_sbom2.json_autodetect_sbom.json_json.snap
│ ├── MergeTests.Merge_Flat_sbom1.json_sbom2.json_autodetect_sbom.xml_autodetect.snap
│ ├── MergeTests.Merge_Flat_sbom1.json_sbom2.json_autodetect_sbom.xml_xml.snap
│ ├── MergeTests.Merge_Flat_sbom1.json_sbom2.json_json_sbom.json_autodetect.snap
│ ├── MergeTests.Merge_Flat_sbom1.json_sbom2.xml_autodetect_sbom.xml_autodetect.snap
│ ├── MergeTests.Merge_Flat_sbom1.xml_sbom2.xml_autodetect_sbom.json_autodetect.snap
│ ├── MergeTests.Merge_Flat_sbom1.xml_sbom2.xml_autodetect_sbom.xml_autodetect.snap
│ ├── MergeTests.Merge_Flat_sbom1.xml_sbom2.xml_xml_sbom.xml_autodetect.snap
│ ├── MergeTests.Merge_Hierarchical_sbom1.json_sbom2.json_autodetect_sbom.json_autodetect.snap
│ ├── SignBomTests.SignXmlBom.snap
│ └── SignFileTests.SignFile.snap
├── TempDirectory.cs
├── ValidateTests.cs
├── VerifyAllTests.cs
└── VerifyFileTests.cs
15 directories, 175 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论