|
8 | 8 | "fmt" |
9 | 9 | ) |
10 | 10 |
|
11 | | -func Example_useAPIToBuildPSAEndorsementSoftwareBundle() { |
| 11 | +func Example_links() { |
12 | 12 | // make new tag |
13 | 13 | tag, _ := NewTag("example.acme.roadrunner-sw-v1-0-0", "Roadrunner software bundle", "1.0.0") |
14 | 14 |
|
@@ -43,50 +43,6 @@ func Example_useAPIToBuildPSAEndorsementSoftwareBundle() { |
43 | 43 | // <SoftwareIdentity xmlns="http://standards.iso.org/iso/19770/-2/2015/schema.xsd" tagId="example.acme.roadrunner-sw-v1-0-0" name="Roadrunner software bundle" version="1.0.0"><Entity name="ACME Ltd" regid="acme.example" role="tagCreator softwareCreator aggregator"></Entity><Link href="example.acme.roadrunner-hw-v1-0-0" rel="psa-rot-compound"></Link><Link href="example.acme.roadrunner-sw-bl-v1-0-0" rel="component"></Link><Link href="example.acme.roadrunner-sw-prot-v1-0-0" rel="component"></Link><Link href="example.acme.roadrunner-sw-arot-v1-0-0" rel="component"></Link></SoftwareIdentity> |
44 | 44 | } |
45 | 45 |
|
46 | | -func Example_useAPIToBuildPSAEndorsementSoftwareComponent() { |
47 | | - // make new tag |
48 | | - tag, _ := NewTag("example.acme.roadrunner-sw-bl-v1-0-0", "Roadrunner boot loader", "1.0.0") |
49 | | - |
50 | | - // make entity and add it to the tag |
51 | | - entity, _ := NewEntity("ACME Ltd", RoleTagCreator, RoleAggregator) |
52 | | - _ = entity.SetRegID("acme.example") |
53 | | - _ = tag.AddEntity(*entity) |
54 | | - |
55 | | - // make resource and add it to payload |
56 | | - resource, _ := NewPSAMeasuredSoftwareComponentResource( |
57 | | - // measurement |
58 | | - HashEntry{ |
59 | | - HashAlgID: 1, |
60 | | - HashValue: []byte("aabb...eeff"), |
61 | | - }, |
62 | | - // signer ID |
63 | | - HashEntry{ |
64 | | - HashAlgID: 1, |
65 | | - HashValue: []byte("5192...1234"), |
66 | | - }, |
67 | | - ) |
68 | | - |
69 | | - payload := NewPayload() |
70 | | - _ = payload.AddResource(*resource) |
71 | | - tag.Payload = payload |
72 | | - |
73 | | - // make link to the HW RoT |
74 | | - link, _ := NewLink("example.acme.roadrunner-hw-v1-0-0", *NewRel("psa-rot-compound")) |
75 | | - _ = tag.AddLink(*link) |
76 | | - |
77 | | - // encode tag to JSON |
78 | | - data, _ := tag.ToJSON() |
79 | | - fmt.Println(string(data)) |
80 | | - |
81 | | - // encode tag to XML |
82 | | - data, _ = tag.ToXML() |
83 | | - fmt.Println(string(data)) |
84 | | - |
85 | | - // Output: |
86 | | - // {"tag-id":"example.acme.roadrunner-sw-bl-v1-0-0","tag-version":0,"software-name":"Roadrunner boot loader","software-version":"1.0.0","entity":[{"entity-name":"ACME Ltd","reg-id":"acme.example","role":["tagCreator","aggregator"]}],"link":[{"href":"example.acme.roadrunner-hw-v1-0-0","rel":"psa-rot-compound"}],"payload":{"resource":[{"type":"arm.com-PSAMeasuredSoftwareComponent","arm.com-PSAMeasurementValue":"sha-256:YWFiYi4uLmVlZmY=","arm.com-PSASignerId":"sha-256:NTE5Mi4uLjEyMzQ="}]}} |
87 | | - // <SoftwareIdentity xmlns="http://standards.iso.org/iso/19770/-2/2015/schema.xsd" tagId="example.acme.roadrunner-sw-bl-v1-0-0" name="Roadrunner boot loader" version="1.0.0"><Entity name="ACME Ltd" regid="acme.example" role="tagCreator aggregator"></Entity><Link href="example.acme.roadrunner-hw-v1-0-0" rel="psa-rot-compound"></Link><Payload><Resource type="arm.com-PSAMeasuredSoftwareComponent" measurementValue="sha-256:YWFiYi4uLmVlZmY=" signerId="sha-256:NTE5Mi4uLjEyMzQ="></Resource></Payload></SoftwareIdentity> |
88 | | -} |
89 | | - |
90 | 46 | func Example_completePrimaryTag() { |
91 | 47 | tag, _ := NewTag( |
92 | 48 | "com.acme.rrd2013-ce-sp1-v4-1-5-0", |
@@ -161,63 +117,3 @@ func Example_completePrimaryTag() { |
161 | 117 | // Output: |
162 | 118 | // <SoftwareIdentity xmlns="http://standards.iso.org/iso/19770/-2/2015/schema.xsd" tagId="com.acme.rrd2013-ce-sp1-v4-1-5-0" name="ACME Roadrunner Detector 2013 Coyote Edition SP1" version="4.1.5"><Meta activationStatus="trial" colloquialVersion="2013" edition="coyote" product="Roadrunner Detector" revision="sp1"></Meta><Entity name="The ACME Corporation" regid="acme.com" role="tagCreator softwareCreator"></Entity><Entity name="Coyote Services, Inc." regid="mycoyote.com" role="distributor"></Entity><Link href="www.gnu.org/licenses/gpl.txt" rel="license"></Link><Payload><Directory name="rrdetector" root="%programdata%"><File name="rrdetector.exe" size="532712" hash="sha-256:oxT8LcZjrnpra8Z4dZQFc5bms/VpzVD9XdtNG7r9K2o="></File></Directory><File name="test.exe" size="532712" hash="sha-256:oxT8LcZjrnpra8Z4dZQFc5bms/VpzVD9XdtNG7r9K2o="></File></Payload></SoftwareIdentity> |
163 | 119 | } |
164 | | - |
165 | | -func Example_decodePSAEndorsementSoftwareComponent() { |
166 | | - var tag SoftwareIdentity |
167 | | - |
168 | | - data := []byte(`{ |
169 | | - "tag-id": "example.acme.roadrunner-sw-bl-v1-0-0", |
170 | | - "tag-version": 0, |
171 | | - "software-name": "Roadrunner boot loader", |
172 | | - "software-version": "1.0.0", |
173 | | - "entity": [ |
174 | | - { |
175 | | - "entity-name": "ACME Ltd", |
176 | | - "reg-id": "acme.example", |
177 | | - "role": [ |
178 | | - "tagCreator", |
179 | | - "aggregator" |
180 | | - ] |
181 | | - } |
182 | | - ], |
183 | | - "link": [ |
184 | | - { |
185 | | - "href": "example.acme.roadrunner-hw-v1-0-0", |
186 | | - "rel": "psa-rot-compound" |
187 | | - } |
188 | | - ], |
189 | | - "payload": { |
190 | | - "resource": [ |
191 | | - { |
192 | | - "type": "arm.com-PSAMeasuredSoftwareComponent", |
193 | | - "arm.com-PSAMeasurementValue": "sha-256:YWFiYi4uLmVlZmY=", |
194 | | - "arm.com-PSASignerId": "sha-256:NTE5Mi4uLjEyMzQ=" |
195 | | - } |
196 | | - ] |
197 | | - } |
198 | | - }`) |
199 | | - |
200 | | - if err := tag.FromJSON(data); err != nil { |
201 | | - fmt.Println(err) |
202 | | - return |
203 | | - } |
204 | | - |
205 | | - if !checkResType(tag) { |
206 | | - fmt.Println("KO") |
207 | | - return |
208 | | - } |
209 | | - |
210 | | - fmt.Println("OK") |
211 | | - |
212 | | - // Output: |
213 | | - // OK |
214 | | -} |
215 | | - |
216 | | -func checkResType(tag SoftwareIdentity) bool { |
217 | | - if payload := tag.Payload; payload != nil { |
218 | | - if resources := payload.Resources; resources != nil { |
219 | | - return (*resources)[0].Type == ResourceTypePSAMeasuredSoftwareComponent |
220 | | - } |
221 | | - } |
222 | | - return false |
223 | | -} |
0 commit comments