@moonbase.sh/licensing 2.0.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,744 @@
1
+ {
2
+ "$comment": "Conformance suite for the Moonbase device fingerprint spec (FINGERPRINT_SPEC.md). Every Moonbase SDK must reproduce every vector here. Note that no material ends with a newline.",
3
+ "version": 2,
4
+ "materialPrefix": "moonbase:fingerprint:v2",
5
+ "stampPrefix": "mbd2_",
6
+ "canonicalizeValue": [
7
+ {
8
+ "description": "trailing newline from a sysfs read",
9
+ "input": "LENOVO\n",
10
+ "expected": "LENOVO"
11
+ },
12
+ {
13
+ "description": "surrounding whitespace of every kind",
14
+ "input": " \t\r\nvalue\n\r \t",
15
+ "expected": "value"
16
+ },
17
+ {
18
+ "description": "interior spaces survive",
19
+ "input": " a b ",
20
+ "expected": "a b"
21
+ },
22
+ {
23
+ "description": "interior control characters are removed, not preserved",
24
+ "input": "a\nb",
25
+ "expected": "ab"
26
+ },
27
+ {
28
+ "description": "non-ASCII is removed",
29
+ "input": "caf\u00e9",
30
+ "expected": "caf"
31
+ },
32
+ {
33
+ "description": "NFC first: a decomposed e-acute composes, then drops whole",
34
+ "input": "cafe\u0301",
35
+ "expected": "caf"
36
+ },
37
+ {
38
+ "description": "a non-breaking space is not ASCII and is removed",
39
+ "input": "a\u00a0b",
40
+ "expected": "ab"
41
+ },
42
+ {
43
+ "description": "capped at 128 characters",
44
+ "input": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
45
+ "expected": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
46
+ },
47
+ {
48
+ "description": "trimming runs after the cap, so no trailing space survives",
49
+ "input": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa b",
50
+ "expected": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
51
+ },
52
+ {
53
+ "description": "an all-whitespace value is empty and gets dropped",
54
+ "input": " \t\r\n",
55
+ "expected": ""
56
+ }
57
+ ],
58
+ "material": [
59
+ {
60
+ "description": "macOS, the single identity parameter",
61
+ "platform": "mac",
62
+ "params": [
63
+ [
64
+ "ioPlatformUuid",
65
+ "0123456789ABCDEF0123456789ABCDEF"
66
+ ]
67
+ ],
68
+ "material": "moonbase:fingerprint:v2\nplatform=mac\nioPlatformUuid=0123456789ABCDEF0123456789ABCDEF",
69
+ "digest": "b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32",
70
+ "deviceId": "mbd2_b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32"
71
+ },
72
+ {
73
+ "description": "Linux, machine-id plus world-readable DMI model fields",
74
+ "platform": "linux",
75
+ "params": [
76
+ [
77
+ "machineId",
78
+ "b08dfa6083e7567a1921a715000001fb\n"
79
+ ],
80
+ [
81
+ "sysVendor",
82
+ "LENOVO\n"
83
+ ],
84
+ [
85
+ "productName",
86
+ "20HRCTO1WW\n"
87
+ ],
88
+ [
89
+ "boardVendor",
90
+ "LENOVO\n"
91
+ ],
92
+ [
93
+ "boardName",
94
+ "20HRCTO1WW\n"
95
+ ]
96
+ ],
97
+ "material": "moonbase:fingerprint:v2\nplatform=linux\nmachineId=b08dfa6083e7567a1921a715000001fb\nsysVendor=LENOVO\nproductName=20HRCTO1WW\nboardVendor=LENOVO\nboardName=20HRCTO1WW",
98
+ "digest": "ba16d78604f90c6c8b00dc1065a70c866884fadfa818ed2db83b2bfe0dc94933",
99
+ "deviceId": "mbd2_ba16d78604f90c6c8b00dc1065a70c866884fadfa818ed2db83b2bfe0dc94933"
100
+ },
101
+ {
102
+ "description": "Windows, first System and Baseboard structures",
103
+ "platform": "windows",
104
+ "params": [
105
+ [
106
+ "systemManufacturer",
107
+ "ACME"
108
+ ],
109
+ [
110
+ "systemProductName",
111
+ "Server 9000"
112
+ ],
113
+ [
114
+ "systemUuid",
115
+ "0123456789ABCDEF0123456789ABCDEF"
116
+ ],
117
+ [
118
+ "baseboardManufacturer",
119
+ "ACME"
120
+ ],
121
+ [
122
+ "baseboardProduct",
123
+ "MB-1"
124
+ ],
125
+ [
126
+ "baseboardSerialNumber",
127
+ "BSN-42"
128
+ ]
129
+ ],
130
+ "material": "moonbase:fingerprint:v2\nplatform=windows\nsystemManufacturer=ACME\nsystemProductName=Server 9000\nsystemUuid=0123456789ABCDEF0123456789ABCDEF\nbaseboardManufacturer=ACME\nbaseboardProduct=MB-1\nbaseboardSerialNumber=BSN-42",
131
+ "digest": "fadd75457e44f669e9865caff122b4706a4501089ac9e73b8735139bf57676ad",
132
+ "deviceId": "mbd2_fadd75457e44f669e9865caff122b4706a4501089ac9e73b8735139bf57676ad"
133
+ },
134
+ {
135
+ "description": "empty and whitespace-only values are dropped, order preserved",
136
+ "platform": "linux",
137
+ "params": [
138
+ [
139
+ "machineId",
140
+ " b08dfa60 "
141
+ ],
142
+ [
143
+ "sysVendor",
144
+ ""
145
+ ],
146
+ [
147
+ "productName",
148
+ " "
149
+ ],
150
+ [
151
+ "boardVendor",
152
+ "\n\t"
153
+ ],
154
+ [
155
+ "boardName",
156
+ "20HRCTO1WW"
157
+ ]
158
+ ],
159
+ "material": "moonbase:fingerprint:v2\nplatform=linux\nmachineId=b08dfa60\nboardName=20HRCTO1WW",
160
+ "digest": "c78ac9d4f2c926745b97393ae4ba520a8411757c39befb44750938b5d740c686",
161
+ "deviceId": "mbd2_c78ac9d4f2c926745b97393ae4ba520a8411757c39befb44750938b5d740c686"
162
+ },
163
+ {
164
+ "description": "parameter order is significant (same pairs, swapped)",
165
+ "platform": "linux",
166
+ "params": [
167
+ [
168
+ "sysVendor",
169
+ "LENOVO"
170
+ ],
171
+ [
172
+ "machineId",
173
+ "b08dfa60"
174
+ ]
175
+ ],
176
+ "material": "moonbase:fingerprint:v2\nplatform=linux\nsysVendor=LENOVO\nmachineId=b08dfa60",
177
+ "digest": "c837942b1105074051fefb82fbf7f340197e03da0b0844dad0835640ac04b580",
178
+ "deviceId": "mbd2_c837942b1105074051fefb82fbf7f340197e03da0b0844dad0835640ac04b580"
179
+ },
180
+ {
181
+ "description": "control characters are dropped, so a value cannot forge an extra line",
182
+ "platform": "linux",
183
+ "params": [
184
+ [
185
+ "machineId",
186
+ "ABC\nsysVendor=GenuineIntel"
187
+ ]
188
+ ],
189
+ "material": "moonbase:fingerprint:v2\nplatform=linux\nmachineId=ABCsysVendor=GenuineIntel",
190
+ "digest": "e19d9f6ec29cd1070db07a72b53131224c37fcfb24762789cc27d15a23fa5296",
191
+ "deviceId": "mbd2_e19d9f6ec29cd1070db07a72b53131224c37fcfb24762789cc27d15a23fa5296"
192
+ },
193
+ {
194
+ "description": "non-ASCII is dropped, making the firmware-string decoding choice immaterial",
195
+ "platform": "windows",
196
+ "params": [
197
+ [
198
+ "systemManufacturer",
199
+ "Ac\u00e9me \u4e2d\u6587"
200
+ ],
201
+ [
202
+ "systemProductName",
203
+ "caf\u00e9"
204
+ ],
205
+ [
206
+ "systemUuid",
207
+ "0123456789ABCDEF0123456789ABCDEF"
208
+ ]
209
+ ],
210
+ "material": "moonbase:fingerprint:v2\nplatform=windows\nsystemManufacturer=Acme\nsystemProductName=caf\nsystemUuid=0123456789ABCDEF0123456789ABCDEF",
211
+ "digest": "c6d7b9d15db1d3a1f5bec22422c77e664e262d89bdc4d5c293d72c5611217398",
212
+ "deviceId": "mbd2_c6d7b9d15db1d3a1f5bec22422c77e664e262d89bdc4d5c293d72c5611217398"
213
+ },
214
+ {
215
+ "description": "NFC runs before the ASCII filter, so a decomposed e-acute leaves no bare \"e\"",
216
+ "platform": "windows",
217
+ "params": [
218
+ [
219
+ "systemManufacturer",
220
+ "Cafe\u0301 Corp"
221
+ ],
222
+ [
223
+ "systemUuid",
224
+ "0123456789ABCDEF0123456789ABCDEF"
225
+ ]
226
+ ],
227
+ "material": "moonbase:fingerprint:v2\nplatform=windows\nsystemManufacturer=Caf Corp\nsystemUuid=0123456789ABCDEF0123456789ABCDEF",
228
+ "digest": "3e8ce76bfc7b49bffec638c0438a384cdb27e1df1dee624ec7964f4c299a8233",
229
+ "deviceId": "mbd2_3e8ce76bfc7b49bffec638c0438a384cdb27e1df1dee624ec7964f4c299a8233"
230
+ },
231
+ {
232
+ "description": "values are capped at 128 characters",
233
+ "platform": "linux",
234
+ "params": [
235
+ [
236
+ "machineId",
237
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
238
+ ]
239
+ ],
240
+ "material": "moonbase:fingerprint:v2\nplatform=linux\nmachineId=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
241
+ "digest": "fe2f0b99e6def565c30601301a82634556f16f0f5ce034b53b9176ed32ebd914",
242
+ "deviceId": "mbd2_fe2f0b99e6def565c30601301a82634556f16f0f5ce034b53b9176ed32ebd914"
243
+ },
244
+ {
245
+ "description": "an unprogrammed serial is dropped, but a real system UUID still identifies the machine",
246
+ "platform": "windows",
247
+ "params": [
248
+ [
249
+ "systemManufacturer",
250
+ "ACME"
251
+ ],
252
+ [
253
+ "systemProductName",
254
+ "Server 9000"
255
+ ],
256
+ [
257
+ "systemUuid",
258
+ "0123456789ABCDEF0123456789ABCDEF"
259
+ ],
260
+ [
261
+ "baseboardSerialNumber",
262
+ "Default string"
263
+ ]
264
+ ],
265
+ "material": "moonbase:fingerprint:v2\nplatform=windows\nsystemManufacturer=ACME\nsystemProductName=Server 9000\nsystemUuid=0123456789ABCDEF0123456789ABCDEF",
266
+ "digest": "15b3d0f8e8e82500790653fbfc087ea0baa45c909afd6f246456d43893f4aee4",
267
+ "deviceId": "mbd2_15b3d0f8e8e82500790653fbfc087ea0baa45c909afd6f246456d43893f4aee4"
268
+ },
269
+ {
270
+ "description": "filler detection applies to identifying params only \u2014 a model may genuinely be named \"None\"",
271
+ "platform": "linux",
272
+ "params": [
273
+ [
274
+ "machineId",
275
+ "b08dfa60"
276
+ ],
277
+ [
278
+ "productName",
279
+ "None"
280
+ ]
281
+ ],
282
+ "material": "moonbase:fingerprint:v2\nplatform=linux\nmachineId=b08dfa60\nproductName=None",
283
+ "digest": "063d7bf0605a0da040b0046007a4993eaf41b557e414bea99105800560f6efdc",
284
+ "deviceId": "mbd2_063d7bf0605a0da040b0046007a4993eaf41b557e414bea99105800560f6efdc"
285
+ },
286
+ {
287
+ "description": "the deviceName fallback material (stamped mbd2n_, see stamps)",
288
+ "platform": "unknown",
289
+ "params": [
290
+ [
291
+ "deviceName",
292
+ "PC-1"
293
+ ]
294
+ ],
295
+ "material": "moonbase:fingerprint:v2\nplatform=unknown\ndeviceName=PC-1",
296
+ "digest": "493978eb157552e60a13694bd6861b2a82d0dba2746431a5f7921951ed460045",
297
+ "deviceId": "mbd2n_493978eb157552e60a13694bd6861b2a82d0dba2746431a5f7921951ed460045"
298
+ }
299
+ ],
300
+ "materialErrors": [
301
+ {
302
+ "description": "no parameters at all must be an error, never a digest \u2014 otherwise every unidentifiable machine on a platform shares one device id",
303
+ "platform": "linux",
304
+ "params": [],
305
+ "error": "InsufficientDeviceIdentity"
306
+ },
307
+ {
308
+ "description": "all parameters canonicalize to empty, non-ASCII whitespace included",
309
+ "platform": "mac",
310
+ "params": [
311
+ [
312
+ "ioPlatformUuid",
313
+ " \t\r\n"
314
+ ],
315
+ [
316
+ "systemUuid",
317
+ "\u00a0"
318
+ ]
319
+ ],
320
+ "error": "InsufficientDeviceIdentity"
321
+ },
322
+ {
323
+ "description": "duplicate parameter names are unrepresentable in the material grammar",
324
+ "platform": "windows",
325
+ "params": [
326
+ [
327
+ "systemUuid",
328
+ "AAAA"
329
+ ],
330
+ [
331
+ "systemUuid",
332
+ "BBBB"
333
+ ]
334
+ ],
335
+ "error": "DuplicateParameter"
336
+ },
337
+ {
338
+ "description": "Linux with no machine-id has only model-level fields left, which every unit of this model shares",
339
+ "platform": "linux",
340
+ "params": [
341
+ [
342
+ "machineId",
343
+ ""
344
+ ],
345
+ [
346
+ "sysVendor",
347
+ "LENOVO"
348
+ ],
349
+ [
350
+ "productName",
351
+ "20HRCTO1WW"
352
+ ],
353
+ [
354
+ "boardVendor",
355
+ "LENOVO"
356
+ ],
357
+ [
358
+ "boardName",
359
+ "20HRCTO1WW"
360
+ ]
361
+ ],
362
+ "error": "InsufficientDeviceIdentity"
363
+ },
364
+ {
365
+ "description": "an uninitialized all-zero machine-id is not identity either",
366
+ "platform": "linux",
367
+ "params": [
368
+ [
369
+ "machineId",
370
+ "00000000000000000000000000000000"
371
+ ],
372
+ [
373
+ "sysVendor",
374
+ "LENOVO"
375
+ ]
376
+ ],
377
+ "error": "InsufficientDeviceIdentity"
378
+ },
379
+ {
380
+ "description": "the literal \"uninitialized\" marker from machine-id(5) is shared by every machine deployed from an image",
381
+ "platform": "linux",
382
+ "params": [
383
+ [
384
+ "machineId",
385
+ "uninitialized"
386
+ ],
387
+ [
388
+ "sysVendor",
389
+ "QEMU"
390
+ ],
391
+ [
392
+ "productName",
393
+ "Standard PC"
394
+ ]
395
+ ],
396
+ "error": "InsufficientDeviceIdentity"
397
+ },
398
+ {
399
+ "description": "Windows with an unset system UUID and a blank baseboard serial identifies only the model \u2014 the common case on cloned VMs",
400
+ "platform": "windows",
401
+ "params": [
402
+ [
403
+ "systemManufacturer",
404
+ "ACME"
405
+ ],
406
+ [
407
+ "systemProductName",
408
+ "Server 9000"
409
+ ],
410
+ [
411
+ "systemUuid",
412
+ ""
413
+ ],
414
+ [
415
+ "baseboardManufacturer",
416
+ "ACME"
417
+ ],
418
+ [
419
+ "baseboardProduct",
420
+ "MB-1"
421
+ ],
422
+ [
423
+ "baseboardSerialNumber",
424
+ ""
425
+ ]
426
+ ],
427
+ "error": "InsufficientDeviceIdentity"
428
+ },
429
+ {
430
+ "description": "macOS with no IOPlatformUUID has nothing else to fall back on",
431
+ "platform": "mac",
432
+ "params": [
433
+ [
434
+ "ioPlatformUuid",
435
+ ""
436
+ ]
437
+ ],
438
+ "error": "InsufficientDeviceIdentity"
439
+ },
440
+ {
441
+ "description": "an OEM filler serial is not a serial: every unit of the model ships it",
442
+ "platform": "windows",
443
+ "params": [
444
+ [
445
+ "systemManufacturer",
446
+ "ACME"
447
+ ],
448
+ [
449
+ "systemProductName",
450
+ "Server 9000"
451
+ ],
452
+ [
453
+ "baseboardSerialNumber",
454
+ "To be filled by O.E.M."
455
+ ]
456
+ ],
457
+ "error": "InsufficientDeviceIdentity"
458
+ },
459
+ {
460
+ "description": "filler detection is case-insensitive",
461
+ "platform": "windows",
462
+ "params": [
463
+ [
464
+ "systemManufacturer",
465
+ "ACME"
466
+ ],
467
+ [
468
+ "baseboardSerialNumber",
469
+ "DEFAULT STRING"
470
+ ]
471
+ ],
472
+ "error": "InsufficientDeviceIdentity"
473
+ },
474
+ {
475
+ "description": "Not Available is a serial-number filler, not a serial number",
476
+ "platform": "windows",
477
+ "params": [
478
+ [
479
+ "systemManufacturer",
480
+ "ACME"
481
+ ],
482
+ [
483
+ "baseboardSerialNumber",
484
+ "Not Available"
485
+ ]
486
+ ],
487
+ "error": "InsufficientDeviceIdentity"
488
+ },
489
+ {
490
+ "description": "the OEM filler is also written without dots",
491
+ "platform": "windows",
492
+ "params": [
493
+ [
494
+ "systemManufacturer",
495
+ "ACME"
496
+ ],
497
+ [
498
+ "baseboardSerialNumber",
499
+ "To Be Filled By OEM"
500
+ ]
501
+ ],
502
+ "error": "InsufficientDeviceIdentity"
503
+ },
504
+ {
505
+ "description": "an all-F system UUID that reached the material as text is still unset",
506
+ "platform": "windows",
507
+ "params": [
508
+ [
509
+ "systemManufacturer",
510
+ "ACME"
511
+ ],
512
+ [
513
+ "systemUuid",
514
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
515
+ ]
516
+ ],
517
+ "error": "InsufficientDeviceIdentity"
518
+ }
519
+ ],
520
+ "smbios": [
521
+ {
522
+ "description": "System + Baseboard, the ordinary case",
523
+ "table": "011B0100010200000123456789ABCDEF0123456789ABCDEF06000041434D450053657276657220393030300000020F02000102030400090000000A0041434D45004D422D3100312E300042534E2D343200007F04FEFF0000",
524
+ "params": [
525
+ [
526
+ "systemManufacturer",
527
+ "ACME"
528
+ ],
529
+ [
530
+ "systemProductName",
531
+ "Server 9000"
532
+ ],
533
+ [
534
+ "systemUuid",
535
+ "0123456789ABCDEF0123456789ABCDEF"
536
+ ],
537
+ [
538
+ "baseboardManufacturer",
539
+ "ACME"
540
+ ],
541
+ [
542
+ "baseboardProduct",
543
+ "MB-1"
544
+ ],
545
+ [
546
+ "baseboardSerialNumber",
547
+ "BSN-42"
548
+ ]
549
+ ]
550
+ },
551
+ {
552
+ "description": "Processor structures contribute nothing \u2014 their count tracks vCPUs, so collecting them would change the id when a VM is resized",
553
+ "table": "011B0100010200000123456789ABCDEF0123456789ABCDEF06000041434D450053657276657220393030300000041A04000103C601020000000000000003000000000000000000496E74656C0058656F6E0053523342300000041A04000103C601020000000000000003000000000000000000496E74656C0058656F6E00535233423000007F04FEFF0000",
554
+ "params": [
555
+ [
556
+ "systemManufacturer",
557
+ "ACME"
558
+ ],
559
+ [
560
+ "systemProductName",
561
+ "Server 9000"
562
+ ],
563
+ [
564
+ "systemUuid",
565
+ "0123456789ABCDEF0123456789ABCDEF"
566
+ ]
567
+ ]
568
+ },
569
+ {
570
+ "description": "only the first structure of each type contributes",
571
+ "table": "011B0100010200000123456789ABCDEF0123456789ABCDEF06000041434D450053657276657220393030300000011B0500010200000123456789ABCDEF0123456789ABCDEF0600004F5448455200536572766572203100007F04FEFF0000",
572
+ "params": [
573
+ [
574
+ "systemManufacturer",
575
+ "ACME"
576
+ ],
577
+ [
578
+ "systemProductName",
579
+ "Server 9000"
580
+ ],
581
+ [
582
+ "systemUuid",
583
+ "0123456789ABCDEF0123456789ABCDEF"
584
+ ]
585
+ ]
586
+ },
587
+ {
588
+ "description": "string index 0 means absent; an index past the end of the string table is absent too",
589
+ "table": "011B0100000900000123456789ABCDEF0123456789ABCDEF06000041434D4500007F04FEFF0000",
590
+ "params": [
591
+ [
592
+ "systemManufacturer",
593
+ ""
594
+ ],
595
+ [
596
+ "systemProductName",
597
+ ""
598
+ ],
599
+ [
600
+ "systemUuid",
601
+ "0123456789ABCDEF0123456789ABCDEF"
602
+ ]
603
+ ]
604
+ },
605
+ {
606
+ "description": "an all-FF system UUID means \"not set\" and must not become identity",
607
+ "table": "011B010001020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06000041434D4500536572766572203930303000007F04FEFF0000",
608
+ "params": [
609
+ [
610
+ "systemManufacturer",
611
+ "ACME"
612
+ ],
613
+ [
614
+ "systemProductName",
615
+ "Server 9000"
616
+ ],
617
+ [
618
+ "systemUuid",
619
+ ""
620
+ ]
621
+ ]
622
+ },
623
+ {
624
+ "description": "an all-zero system UUID means \"not set\" too",
625
+ "table": "011B0100010200000000000000000000000000000000000006000041434D4500536572766572203930303000007F04FEFF0000",
626
+ "params": [
627
+ [
628
+ "systemManufacturer",
629
+ "ACME"
630
+ ],
631
+ [
632
+ "systemProductName",
633
+ "Server 9000"
634
+ ],
635
+ [
636
+ "systemUuid",
637
+ ""
638
+ ]
639
+ ]
640
+ },
641
+ {
642
+ "description": "a structure with no strings is just the double-NUL",
643
+ "table": "011B0100000000000123456789ABCDEF0123456789ABCDEF0600000000020F02000100000200090000000A0041434D450042534E2D343200007F04FEFF0000",
644
+ "params": [
645
+ [
646
+ "systemManufacturer",
647
+ ""
648
+ ],
649
+ [
650
+ "systemProductName",
651
+ ""
652
+ ],
653
+ [
654
+ "systemUuid",
655
+ "0123456789ABCDEF0123456789ABCDEF"
656
+ ],
657
+ [
658
+ "baseboardManufacturer",
659
+ "ACME"
660
+ ],
661
+ [
662
+ "baseboardProduct",
663
+ ""
664
+ ],
665
+ [
666
+ "baseboardSerialNumber",
667
+ "BSN-42"
668
+ ]
669
+ ]
670
+ },
671
+ {
672
+ "description": "an OEM filler serial is reported verbatim \u2014 the parser describes the firmware, canonicalization decides what counts",
673
+ "table": "020F02000102030400090000000A0041434D45004D422D3100312E3000546F2062652066696C6C6564206279204F2E452E4D2E00007F04FEFF0000",
674
+ "params": [
675
+ [
676
+ "baseboardManufacturer",
677
+ "ACME"
678
+ ],
679
+ [
680
+ "baseboardProduct",
681
+ "MB-1"
682
+ ],
683
+ [
684
+ "baseboardSerialNumber",
685
+ "To be filled by O.E.M."
686
+ ]
687
+ ]
688
+ },
689
+ {
690
+ "description": "an empty table yields no parameters",
691
+ "table": "",
692
+ "params": []
693
+ }
694
+ ],
695
+ "stamps": [
696
+ {
697
+ "description": "the current version, hardware identity",
698
+ "deviceId": "mbd2_b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32",
699
+ "parsed": {
700
+ "version": 2,
701
+ "source": "identity",
702
+ "digest": "b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32"
703
+ }
704
+ },
705
+ {
706
+ "description": "the current version, host-name fallback",
707
+ "deviceId": "mbd2n_b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32",
708
+ "parsed": {
709
+ "version": 2,
710
+ "source": "deviceName",
711
+ "digest": "b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32"
712
+ }
713
+ },
714
+ {
715
+ "description": "another version parses, so a validator can report \"re-activate\" rather than \"wrong device\"",
716
+ "deviceId": "mbd7_b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32",
717
+ "parsed": {
718
+ "version": 7,
719
+ "source": "identity",
720
+ "digest": "b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32"
721
+ }
722
+ },
723
+ {
724
+ "description": "a bare digest is not a stamp",
725
+ "deviceId": "b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e32",
726
+ "parsed": null
727
+ },
728
+ {
729
+ "description": "a legacy base64 id is not a stamp",
730
+ "deviceId": "kR8kWLPFR0j0LNYlPTQRhF6JQnPqmA0GjXf3TrGDvXA",
731
+ "parsed": null
732
+ },
733
+ {
734
+ "description": "uppercase hex is not a stamp",
735
+ "deviceId": "mbd2_B465194056FF7721BF549799B4532BFCA0BC72FFFC0F6969C77C46D6B8E28E32",
736
+ "parsed": null
737
+ },
738
+ {
739
+ "description": "a truncated digest is not a stamp",
740
+ "deviceId": "mbd2_b465194056ff7721bf549799b4532bfca0bc72fffc0f6969c77c46d6b8e28e3",
741
+ "parsed": null
742
+ }
743
+ ]
744
+ }