61 'bomFormat' =>
'CycloneDX',
62 '$schema' =>
'http://cyclonedx.org/schema/bom-1.4.schema.json',
63 'specVersion' =>
'1.4',
65 'serialNumber' =>
'urn:uuid:'. uuid_create(UUID_TYPE_TIME),
67 'timestamp' => date(
'c'),
70 'vendor' =>
'FOSSology',
71 'name' =>
'FOSSology',
72 'version' => $bomdata[
'tool-version']
75 'component' => $bomdata[
'maincomponent']
77 'components' => $bomdata[
'components']
80 if (!empty($bomdata[
'externalReferences'])) {
81 $report[
'externalReferences'] = $bomdata[
'externalReferences'];
96 'type' => $componentData[
'type'],
97 'name' => $componentData[
'name']
100 if (array_key_exists(
'version', $componentData) && !empty($componentData[
'version'])) {
101 $component[
'version'] = $componentData[
'version'];
104 if (array_key_exists(
'mimeType', $componentData) && !empty($componentData[
'mimeType'])) {
105 $component[
'mime-type'] = $componentData[
'mimeType'];
108 if (array_key_exists(
'bomref', $componentData) && !empty($componentData[
'bomref'])) {
109 $component[
'bom-ref'] = $componentData[
'bomref'];
116 if (array_key_exists(
'scope', $componentData) && !empty($componentData[
'scope'])) {
117 $component[
'scope'] = $componentData[
'scope'];
119 $component[
'scope'] =
'required';
122 if (array_key_exists(
'hashes', $componentData) && !empty($componentData[
'hashes'])) {
123 $component[
'hashes'] = $componentData[
'hashes'];
126 if (array_key_exists(
'licenses', $componentData) && !empty($componentData[
'licenses'])) {
127 $component[
'licenses'] = $componentData[
'licenses'];
130 if (array_key_exists(
'copyright', $componentData) && !empty($componentData[
'copyright'])) {
131 $component[
'copyright'] = $componentData[
'copyright'];
134 if (array_key_exists(
'purl', $componentData) && !empty($componentData[
'purl'])) {
135 $component[
'purl'] = $componentData[
'purl'];
138 if (array_key_exists(
'description', $componentData) && !empty($componentData[
'description'])) {
139 $component[
'description'] = $componentData[
'description'];
142 if (array_key_exists(
'externalReferences', $componentData) && !empty($componentData[
'externalReferences'])) {
143 $component[
'externalReferences'] = $componentData[
'externalReferences'];
147 if (array_key_exists(
'acknowledgements', $componentData) && !empty($componentData[
'acknowledgements'])) {
149 'name' =>
'fossology:acknowledgement',
150 'value' => $componentData[
'acknowledgements']
153 if (array_key_exists(
'comments', $componentData) && !empty($componentData[
'comments'])) {
155 'name' =>
'fossology:comment',
156 'value' => $componentData[
'comments']
159 if (!empty($properties)) {
160 $component[
'properties'] = $properties;
177 if (array_key_exists(
'id', $licenseData) && !empty($licenseData[
'id']) &&
178 stripos($licenseData[
'id'], LicenseRef::SPDXREF_PREFIX) === 0) {
179 $license[
'expression'] = $licenseData[
'id'];
183 if (array_key_exists(
'id', $licenseData) && !empty($licenseData[
'id'])) {
184 $license[
'license'][
'id'] = $licenseData[
'id'];
185 }
else if (array_key_exists(
'name', $licenseData) && !empty($licenseData[
'name'])) {
186 $license[
'license'][
'name'] = $licenseData[
'name'];
189 if (array_key_exists(
'url', $licenseData) && !empty($licenseData[
'url'])) {
190 $license[
'license'][
'url'] = $licenseData[
'url'];
193 if (array_key_exists(
'textContent', $licenseData) && !empty($licenseData[
'textContent'])) {
194 $license[
'license'][
'text'] = [
195 'content' => $licenseData[
'textContent'],
196 'contentType' => $licenseData[
'textContentType'],
197 'encoding' =>
'base64'
211 private function generateHash(
string $algorithm,
string $content): array
215 'content' => $content
createHash($algorithm, $content)
generateLicense(array $licenseData)
generateHash(string $algorithm, string $content)
createComponent(array $componentData)
createLicense(array $licenseData)
generateComponent(array $componentData)
Namespace used by CycloneDX agent.