sitelink1 https://github.com/spdx/tools-java 
sitelink2 https://github.com/spdx/tools-python 
sitelink3 https://github.com/spdx/spdx-online-tools 
sitelink4  
extra_vars5  
extra_vars6  

tools-java 는 문서 포맷 검증에 체크섬 생성 및 포맷 변환 기능이 있지만 현재 2.0.1 버전에는 'SBOM NTIA' 체크 기능이 없다.

'SBOM NTIA' 체크 기능은 tools-python 에 있다고 gpt 가 알려주었지만 할루시네이션같다. (github project README.md 를 살펴봐도 관련 내용 없음)

대시 'spdx-online-tools' project 를 찾았고 이것을 이용해 rest api 형식으로 서비스를 호출 할 수 있을 것 같아서 현재 검토중이다. (2025.07.30)

 



SPDX Java Tools 주요 기능 요약

1. SPDX 문서 읽기/쓰기 지원

  • 다양한 SPDX 포맷 지원:

    • Tag/Value

    • RDF/XML

    • JSON

    • YAML

  • SPDX 파일을 Java 객체로 파싱하고, 반대로 객체를 문서로 저장 가능

2. SPDX 문서 유효성 검증

  • SPDX 문서가 사양에 맞는지 자동 검증 (SPDXDocumentVerifier 클래스 등)

  • 잘못된 포맷, 누락된 필드, 잘못된 해시값 등의 오류 검출

3. SPDX 문서 변환

  • SPDX 문서 포맷 간 변환 (예: Tag/Value → RDF/XML, JSON ↔ YAML 등)

  • 변환 시 자동 정렬 및 정합성 유지

4. SPDX 패키지 및 파일 메타데이터 처리

  • SPDX 패키지 생성, 파일 추가, 라이선스 지정, 해시값 계산 등

  • 파일별 라이선스 추정 결과 적용 가능

5. SPDX Checksum 및 검증 코드 생성

  • SHA1, SHA256, MD5 등 해시 알고리즘 지원

  • PackageVerificationCode 자동 생성 (파일 해시 기반)

6. SPDX 라이선스 관련 기능

  • 표준 SPDX 라이선스 식별자 처리 (LicenseInfoFactory)

  • 사용자 정의/비표준 라이선스도 지원


 활용 예시

SPDX 문서 파싱

java
SpdxDocument document = SPDXDocumentFactory.createSpdxDocument("path/to/doc.spdx");

 

파일 해시 생성 및 SPDX 파일 객체 생성

java
SpdxFile file = new SpdxFile("src/Foo.java", checksums, concludedLicense, ...);

 

패키지 검증 코드 생성

java
String verificationCode = PackageVerificationCodeGenerator.generate(pkgFiles);

 

문서 저장

java
document.save("path/to/output.spdx", format); // RDF, tag-value 등 지정

대상 사용자

  • SPDX 기반 SBOM 관리 도구를 개발하는 Java 개발자

  • 빌드 도구(예: Maven, Gradle)에 SPDX 생성을 통합하려는 팀

  • 라이선스/컴플라이언스 자동화 파이프라인 구축자


기타 정보

  • SPDX v2.2.x 사양 기준으로 개발 중

  • GPL-2.0-only 라이선스

  • Maven 라이브러리로 직접 빌드 가능 (pom.xml 포함)

번호 제목 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의 황제낙엽 2025.04.10 9309
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의 황제낙엽 2024.02.02 9391
127 사내 개발 프레임워크 또는 내부용 공통 라이브러리에 대한 SBOM 적용 방안 황제낙엽 2025.11.28 2477
126 [ChatGPT, Gemini][FOSSLight Hub] Project Progress 의 Identification 단계의 데이터 에러 관련 황제낙엽 2025.11.28 2258
125 Windows 11 Pro의 OpenSSH 기반 SFTP 서버 전용 사용자 계정 관리 황제낙엽 2025.11.07 2387
124 FileZilla Server 에서 기존 TLS 인증서로 SSL 설정 (v1.11.1 기준) 황제낙엽 2025.11.05 2611
123 binary scan 결과 엑셀(xlsx)에서 이미지, 폰트 항목 필터 방법 황제낙엽 2025.10.31 2329
122 win-acme 에서 강제 신규 발급 (같은 도메인이라도 새 order 생성) 황제낙엽 2025.10.18 2369
121 FOSSLight_Binary_Scanner 의 OWASP Dependency-Check 사용자 업그레이드 황제낙엽 2025.09.23 2251
120 Dependency-Check 프로그램과 NVD (National Vulnerability Database) Data Feeds 황제낙엽 2025.09.23 2005
119 ScanCode Toolkit 에서 검출한 라이선스 정보중 'unknown-license-reference' 관련 황제낙엽 2025.09.19 1812
118 [FOSSLight Hub] ./service/template/SPDXRdf_2.2.2.xls (No such file or directory) file 황제낙엽 2025.09.19 2931
117 LG 의 Open Source Compliance 활동 황제낙엽 2025.09.18 1349
116 OWASP Dependency-Check 황제낙엽 2025.09.17 1496
115 NVD (National Vulnerability Database) API 키 발급 후 설정하기 황제낙엽 2025.09.17 1832
114 fosslight_binary_scanner 에서 스캔 결과 exclude 의 의미 황제낙엽 2025.09.16 1247
» SPDX(Java Tools) - SPDX 문서의 생성, 파싱, 검증, 조작, 직렬화 황제낙엽 2025.07.30 1166
112 FOSSLight 의 Scanner 중 SBOM 산출 가능 Scanner 황제낙엽 2025.07.23 1702
111 [SBOM] Customized FOSSLight 버전 관리의 필요성에 대한 내용 황제낙엽 2025.07.18 1136
110 [SBOM] FOSSLight Hub 소스 컴파일 및 실행 절차 황제낙엽 2025.07.15 1119
109 [Gemini] OSS Review Toolkit 의 도움말 번역 황제낙엽 2025.06.25 1120
108 SPDX 를 지원하는 Open Source 목록 황제낙엽 2025.06.24 1382