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 21564
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의 황제낙엽 2024.02.02 20404
146 SPDX 2.3, 계속 써도 되나요? — 3.0으로 넘어갈 때를 판단하는 실무 기준 황제낙엽 2026.08.11 54
145 같은 OSS 지만 여러 버전을 등록해야 하는 경우 황제낙엽 2026.04.24 1972
144 [FOSSLight Dependency Scanner] Android Project 의 Dependency Scan 을 위한 Android SDK 설치와 설정 황제낙엽 2026.04.23 1843
143 FOSSLight Hub 의 REST API 이용 (v2) 황제낙엽 2026.03.19 2500
142 [FOSSLight/검토용] 개발그룹의 sbom-info.yaml 분석 및 피드백 절차 황제낙엽 2026.03.16 1982
141 [FOSSLight/관리용] Project Identification 진행에서 최종 SBOM SPDX 문서 추출 황제낙엽 2026.02.09 1916
140 [FOSSLight] 'Download Location' 컬럼 값에 'Different from DB' 라는 푸른색 메세지가 출력 file 황제낙엽 2026.02.06 3612
139 [FOSSLight] Project Identification 진행시의 신규 OSS 등록 처리 방법 황제낙엽 2026.02.06 3750
138 [FOSSLight Hub] License 정보를 직접 등록시 필요한 항목 목록 황제낙엽 2026.02.06 3579
137 [FOSSLight Hub] Open Source 정보를 직접 등록시 필요한 항목 목록 황제낙엽 2026.02.06 3352
136 [OSS] Microsoft.Web.WebView2 황제낙엽 2026.02.06 3351
135 [FOSSLight] fosslight 프로젝트의 'Pre-Review' > 'Open Source' 팝업창의 세 버튼에 대한 용도 황제낙엽 2026.02.06 3572
134 [FOSSLight/검토용] prechecker convert 결과 Hub 등록후 Identification 처리 file 황제낙엽 2026.02.05 3288
133 python venv 설치, fosslight source scanner , binary scanner 설치, 버전 확인 황제낙엽 2026.02.02 3507
132 SPDX 템플릿 다운로드 및 온라인 변환기 황제낙엽 2026.01.22 3868
131 SBOM(Software Bill of Materials) 및 소프트웨어 공급망 보안 관련 주요 정부 기관 및 단체 황제낙엽 2026.01.22 3605
130 [FOSSLight] online guide link 황제낙엽 2026.01.14 1844
129 identification 에서 출력하는 warning, error 메세지 황제낙엽 2025.12.29 1427
128 sbom-info.yaml 을 이용한 dependency scan excel 작성 file 황제낙엽 2025.12.29 3578
127 binary scan 결과물에 대해 취약점이 없는데 왜 SBOM에 넣어야 하나? 황제낙엽 2025.12.17 3484