Boot Integrity Visibility

Boot Integrity Visibility

Boot integrity visibility acts as a hardware trust anchor by validating the ROMMON software to ensure its integrity.

Boot integrity visibility enables Cisco platforms to make both platform identity and software integrity information visible and actionable. Platform identity refers to the unique identity assigned during manufacturing, ensuring each device can be reliably identified. Software integrity involves capturing boot integrity measurements, which help determine whether the platform has started up using trusted code.

Your Cisco device supports the boot integrity visibility feature.

How boot integrity visibility works

Summary

When you copy a Cisco IOS XE software image onto your Cisco device, the ROMMON Boot ROM verifies the image using Cisco release keys. These release keys are public keys that correspond to the private release key securely stored on Cisco build servers. The public release key is embedded within the ROMMON, enabling your device to validate the authenticity and integrity of the Cisco IOS XE software image before booting.

Workflow

The ROMMON follows these steps to verify a signed Cisco IOS XE software image when you boot the device:

  1. Loads the Cisco IOS XE software image into the CPU memory.
  2. Examines the Cisco IOS XE software package header.
  3. Runs a nonsecure integrity check on the image to ensure there is no file corruption from disk or TFTP. The check uses a nonsecure SHA-1 hash.

    Note


    This step checks for inadvertent corruption caused by disk, file transfer, or copying errors. It is not part of image code signing and does not detect deliberate image tampering.


  4. Copies the Cisco's RSA 2048-bit public release key from the ROMMON storage and validates that the Cisco's RSA 2048-bit public release key is not tampered.
  5. Extracts the Code Signing signature (SHA-512 hash) from the package header and verifies it using Cisco's RSA public release key.
  6. Performs the Code Signing validation by calculating the SHA-512 hash of the Cisco IOS XE software package and compares it with the Code Signing signature. The signed package is now validated.
  7. Examines the Cisco IOS XE software package header to validate the platform type and CPU architecture for compatibility.
  8. Extracts the Cisco IOS XE software from the software package and boots the software.

Result


Note


Image Code Signing validation occurs in steps 4, 5, and 6. This is a secure code signing check of the image using an SHA-512 hash, which is encrypted with a 2048-bit RSA key. This check is intended to detect deliberate image tampering.


If the software is not generated by a Cisco build server, signature verification fails. Your device's ROMMON rejects the image and stops booting.

If the signature verification is successful, the device boots the image to the Cisco IOS XE software runtime environment.

Image signing

The Cisco build servers generate the Cisco IOS XE software images. The Cisco IOS XE software image is digitally signed during the build time. An SHA-512 hash is generated over the entire binary image file, and then the hash is encrypted with a Cisco RSA 2048-bit private key.

Verify software image and hardware

This section describes how to retrieve the checksum record that was created during a switch bootup. Enter the following commands in privileged EXEC mode.

Table 1. Command to retrieve the checksum records

Command

Description

show platform sudi certificate [sign [nonce nonce]]

Displays checksum record for the specific SUDI.

  • (Optional) sign: Show signature

  • (Optional) nonce: Enter a nonce value

show platform integrity [sign [nonce nonce]]

Displays checksum record for boot stages.

  • (Optional) sign: Show signature

  • (Optional) nonce: Enter a nonce value

Verify platform identity

The following example displays the Secure Unique Device Identity (SUDI) chain in PEM format.

Encoded into the SUDI is the Product ID and Serial Number of each individual device such that the device can be uniquely identified on a network of thousands of devices.

  • The first certificate is the Cisco Root CA 2048

  • The second is the Cisco subordinate CA (ACT2 SUDI CA)

    Both certificates can be verified to match those published on https://www.cisco.com/security/pki/.

  • The third is the SUDI certificate.


Note


On executing the following command, you might see the message % Please Try After Few Seconds displayed on the CLI. This does not indicate a CLI failure, but indicates setting up of underlying infrastructure required to get the required output. We recommend waiting for a few minutes and then try the command again


Device# show platform sudi certificate sign nonce 123
-----BEGIN CERTIFICATE-----
MIIDITCCAgmgAwIBAgIJAZozWHjOFsHBMA0GCSqGSIb3DQEBCwUAMC0xDjAMBgNV
BAoTBUNpc2NvMRswGQYDVQQDExJDaXNjbyBSb290IENBIDIwOTkwIBcNMTYwODA5
MjA1ODI4WhgPMjA5OTA4MDkyMDU4MjhaMC0xDjAMBgNVBAoTBUNpc2NvMRswGQYD
VQQDExJDaXNjbyBSb290IENBIDIwOTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDTtuM1fg0+9Gflik4axlCK1I2fb3ESCL8+tk8kOXlhfrJ/zlfRbe60
xRP0iUGMKWKBj0IvvWFf4AW/nyzCR8ujTt4a11Eb55SAKXbXYQ7L4YMg+lmZmg/I
v3GJEc3HCYU0BsY8g9LuLMvqwiNmAwM2jWzNq0EPArt/F6RiQKq6Ta3e7VIfDZ7J
65OA2xASA2FrSe9Vj97KpQReDcm6G7cqFH5f+CrdQ4qwAa4zWNyM3kOpUb637DNd
9m+n6WECyc/IUD+2e+yp21kBZIKH7JvDpu2U7NBPfr52mFX8AfCZgkXV69bp+iYf
saH1DvXIfPpNp93zGKUSXxEj4w881t2zAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ4lVcPNCNO86EmILoUkcdBiB2j
WzANBgkqhkiG9w0BAQsFAAOCAQEAjeKZo+4xd05TFtq99nKnWA0J+DmydBOnPMwY
lDrKfBKe2wVu5AJMvRjgJIoY/CHVPaCOWH58UTqfji95eUaryQ/s36RKrBgMMlwr
WNItxE625PHuaN6EjD1WdWiRMZ2hy8F4FCKz5hgUEvN+PUNZwsPnpU6q3Ay0+11T
4TriwCV8kJx3cWu0NvTypYCCXMscSfLFQR13bo+1z6XNm30SecmrxkmQBVMqjCZM
VvAxhxW1iGnYdPRQuNqt0xITzCSERqg3QVVqYnFJUkNVN6j0dmmMVKZh17HgqLnF
PKkmBlNQ9hQcNM3CSzVvEAK0CCEo/NJ/xzZ6WX1/f8Df1eXbFg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEZzCCA0+gAwIBAgIJCmR1UkzYYXxiMA0GCSqGSIb3DQEBCwUAMC0xDjAMBgNV
BAoTBUNpc2NvMRswGQYDVQQDExJDaXNjbyBSb290IENBIDIwOTkwIBcNMTYwODEx
MjAyODA4WhgPMjA5OTA4MDkyMDU4MjdaMDExHzAdBgNVBAMTFkhpZ2ggQXNzdXJh
bmNlIFNVREkgQ0ExDjAMBgNVBAoTBUNpc2NvMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAvdzeSWdDI6lRZDYRvA6JqaRvQyy6Dx1WaqI82UeKR4ZRn0ef
xMGvp4c88/VMS8WSjQO1qolMfMxqHkcSiFBOULx6Trquw4TrEf9sIuzvgJvDaEa8
IllXPwtPtNqZEIWi8jlinz2uGam93KuGPcioHfruzbDKWHL/HWFGYMgz+OKwhD3J
4NRySknQvUovfV8eWLeVOqW8rbnG3TZxv5VexOiK4jL3ObvsQPuAWUwUoo7nuFlE
GTG/VCeyCe/H8+afIScbZOkI9xejtckflnBYFVCyFxzm2H3YZatb6ohbyRXLtOPj
T3SJ+OOoYMlSLd28z727LpRbFFLGYhyWxEXDuQIDAQABo4IBgjCCAX4wDgYDVR0P
AQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwfwYIKwYBBQUHAQEEczBxMEEG
CCsGAQUFBzAChjVodHRwczovL3d3dy5jaXNjby5jb20vc2VjdXJpdHkvcGtpL2Nl
cnRzL2NyY2EyMDk5LmNlcjAsBggrBgEFBQcwAYYgaHR0cDovL3BraWN2cy5jaXNj
by5jb20vcGtpL29jc3AwHwYDVR0jBBgwFoAUOJVXDzQjTvOhJiC6FJHHQYgdo1sw
UgYDVR0gBEswSTBHBgorBgEEAQkVAR4AMDkwNwYIKwYBBQUHAgEWK2h0dHA6Ly93
d3cuY2lzY28uY29tL3NlY3VyaXR5L3BraS9wb2xpY2llcy8wQwYDVR0fBDwwOjA4
oDagNIYyaHR0cDovL3d3dy5jaXNjby5jb20vc2VjdXJpdHkvcGtpL2NybC9jcmNh
MjA5OS5jcmwwHQYDVR0OBBYEFOpro7nBE5d+G/s6jWhgBzlfh0j6MA0GCSqGSIb3
DQEBCwUAA4IBAQBcqYEOgAHhGWKndwM901XX2Enh4hjXR5avDg7G/f6Tb9H509dt
QW+AeZGEghhwUrw1EeG79tHkncAe+m+64xMC1ttyI1RSyn8rBqQYkXnnCRbtF/Nw
pQe5fjvdeIFWJhUI16TOt/ZlkNnWnLsUU1alZmN+J/FhSr8VTJWGRM9gY8hefH8f
5U7LMiDXxsFVHB7R6KGNjvtawrl6W6RKp2dceGxEIIvMahgMWWHHiWOQAOtVrHuE
NEjYR/7klLLwdgQF/NNCA2z47pSfMFnBcr8779GqVIbBTpOP2E6+1pBrE2jBNNoc
uBG1fgvh1qtJUdBbTziAKNoCo4sted6PW2/U
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFQzCCBCugAwIBAgIKCFlwlokGmWc/RzANBgkqhkiG9w0BAQsFADAxMR8wHQYD
VQQDExZIaWdoIEFzc3VyYW5jZSBTVURJIENBMQ4wDAYDVQQKEwVDaXNjbzAgFw0y
NTA1MDgxMTM1NDJaGA8yMDk5MDgwOTIwNTgyNlowazEmMCQGA1UEBRMdUElEOkM5
MzUwLTQ4VFggU046RlZIMjkxOUw4TVIxDjAMBgNVBAoTBUNpc2NvMRgwFgYDVQQL
Ew9BQ1QtMiBMaXRlIFNVREkxFzAVBgNVBAMTDlE1Q0ItRTVYOS1QRkpRMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA10Xb/EGY8VGXQcgLCgML0yMoR8bx
9cqgHYZ594RkxUt+qO3xvvxgXVPZmK4t+6h4z5/up0hXkZD1UYlXDeOVmQ8Z5rFV
gRAAr1a8LUWo5pSympQ8kP6Dl3WT9RM9Mu42S7O41W9le59cyTszRMoTUZGqQV9X
UkL8TWLd4ZnM56ZP0l7O9VP3573tGYmNQhlhvZbFQWE3Yx7FkcNPQOZc+PopAjxW
9/s7iFeUy/yGeotYHKbMa5dch1XdbEwttskof6+BZNIS7nc5FSN70+Y2lLy36eCU
Om2xRLixTgWsZIbYXDSld2oeODcDUIgu/eS5klKXUme9yBoWULvYp0mYFQIDAQAB
o4ICHzCCAhswDgYDVR0PAQH/BAQDAgXgMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgw
FoAU6mujucETl34b+zqNaGAHOV+HSPowggG5BgNVHREEggGwMIIBrKBQBgorBgEE
AQkVAwQCoEITQDhCQzZEQTQzQkVFOUEzMUY2RkVCQUIxRDk3NERBMEZFNDFEMTMy
RjM2ODhFNTA4QkU2MzhGQTU3QjU1NjlFRjKgcAYKKwYBBAEJFQMEBKBiE2AwRkQw
QTAzNzA4MDUyODMxREM2RThGRkE1MzE1NjhCMEFGM0ZFQTRENEIxMTgwRUFFRUZF
MUQ4RjVBODlGNkVGOTQxMDE3MThGNjBBNkM1MDUwODgzNkY1MTlGOTFFMEOgUAYK
KwYBBAEJFQMEA6BCE0AwMjRCNENDNDgwRjE4Njg4MDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwoFAGCisGAQQBCRUDBAOgQhNA
QzA0QjRDQzQ4MEYxODY4ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMKBCBgkrBgEEAQkVAgOgNRMzQ2hpcElEPWhtVzVXR2hu
STRVZWpNSTRIeFRSaXdBQUFBQUFBQUFBQUFBQUFBQUFBQUE9MB0GA1UdDgQWBBQF
WtZgjSA/BQT55wuhOk6qq2vGyjANBgkqhkiG9w0BAQsFAAOCAQEAOtAl+Cxyn/lO
h2QDbW6Ors4xPrxADdWDgpdaH6q3qTmU/HRx6mv5T5/y0KRyrwCkFSQRTYBw1/De
7MPV9XXBhUWDAolWN4eqYTMZQF9KTdthmfmTZMQlRZpRTWWYWASfVyt0eObi/RNK
lGKlKyDA+uSfOyKUj6+Yays/bF4A5Bc0bORyCZ0asy4URQ9es6niS6/YuX/FAVrl
xl0BMuiSs83kXxk3lyIUbalN6xz4U17m83m58OWV1sTykRuS58NDyxhmtaWOFLYj
Zap4lJvzu7Dnk0pAgKvwxeUDT1wOJGij/NemwMgXzZEJ7tKgNCaMOpoYGWDPVIZz
pHF1L0A1eQ==
-----END CERTIFICATE-----
Signature version: 1
Signature:
D286B3424F0C1D71147AAE0765601D0196B57A2E4660B2C078ABF6ED896E71D24EF1E433927123EB3C9982626337173EA3A066831A7CF1ACB1753095670EE63B44CEBB48F039F9EEF62F401D7C111896A1BC4AD0D97D726AEB22217F2C835EA6B5E4216604DE9F876DBCC108A4E36F3C3415F7904B41B5BAC1E3D5C00CC98AA968E739C8230FE578AF403218F00FE10B49F4CCBF94F46FC77D5CE233DEADFF2E38FDBF6E16AFDF64461DEF201F2E022E56135FF80642BCDE0DEDF48C70A33F0211C6FB90B4653C94CFB3FBC6B5BCEFE671368A5AE0DA9355D934D1F80CB366AC3439DDD7691E53B5A0D9E48F10DB8FE2EEC1B4C9E5EE6FC098EB348910CF2CD9

The optional RSA 2048 signature is across the three certificates, the signature version and the user-provided nonce.

RSA PKCS#1v1.5 Sign {<Nonce (UINT64)> || <Signature Version (UINT32)> || <Cisco Root CA
2048 cert (DER)> ||
<Cisco subordinate CA (DER)> || <SUDI certificate (DER)> }

Cisco management solutions are equipped with the ability to interpret the above output. However, a simple script using OpenSSL commands can also be used to display the identity of the platform and to verify the signature, thereby ensuring its Cisco unique device identity.

linux-host:~]openssl x509 -in sudicert.pem -subject -noout
subject= /serialNumber=PID:C9300-24P SN:FDO1946BG05/O=Cisco/OU=ACT-2 Lite SUDI/CN=C9300-24P

Verify software integrity

The following example displays the checksum record for the boot stages. The hash measurements are displayed for each of the three stages of software successively booted. These hashes can be compared against Cisco-provided reference values. An option to sign the output gives a verifier the ability to ensure the output is genuine and is not altered. A nonce can be provided to protect against replay attacks.


Note


Boot integrity hashes are not MD5 hashes. If you run verify /md5 cisco9k_iosxe.17.18.01.SPA.bin command for the bundle file, the hash will not match.


The following is a sample output of the show platform integrity sign nonce 123 command in install mode.

This output includes measurements of each installed package file.

Device# show platform integrity sign nonce 123
Platform: C9350-48TX
Boot 0 Version: MA1007R07.1012142023
Boot 0 Hash: 6F213D15A4E5FAE794A18DF5984F2D1BC79FA6092B624974179C7FD106B97D8D
Boot Loader Version: System Bootstrap, Version 17.15.0.14r, DEVELOPMENT SOFTWARE
Boot Loader Hash: 7A237F1AD265BAE9BFE72741E7BA8231D67984F86D87382A29FC11BCC47CF30C
OS Version: 17.18.01
OS Hashes:
cisco9k_iosxe.17.18.01.SPA.bin: 63249C93EC1531C85D1DDB77886DB97336A35FFFC3B80C048C17442F0363AE8CCBB43F4178B88FE4611F1AC764BFD6CC9F4084CE8098663666B926AE6CB11709
cisco9k-wlc.17.18.01.SPA.pkg: 5EA17640BE34A0627588F21086FD0D0FC9FF4246266CF3A3E902EB3EF5D80BB566211771B72EB55D7C2BBFE2EEC8C2F9A9B9EAD28BB67E16B2095372D2A857AE
cisco9k-lni.17.18.01.SPA.pkg: 6A4A400A26BB3E5B6962CA4624EBBCF86871359077EBDFAF60D7331DF8E8AA7293F108322E6EDD8201CB816D074F1368BF6FD7779FC8EE0A68527D4E9B0D6AE6
cisco9k-guestshell.17.18.01.SPA.pkg: 5C0E5ED9876B8A1DBF9AD945C4D600308AF2312CB540173DDD0F262E363DC944B5A202C0D2773147331198374877DCCA2895B1C8CAEFB64F0BBF69720F6E084F
cisco9k-cc_srdriver.17.18.01.SPA.pkg: 263445E41F41A6867D1B7851E1F8CA0950C5F4347062A5850618C883A07C9CD81B8748BB4236C2EF15A71D4BD1F3E86F79EBACF5EFD18708BF0A1FB48547410D
cisco9k-webui.17.18.01.SPA.pkg: AC669D965058EC7C708DA1EE396E292157A9151A08CBD42C4FC9C6FC1DE00FAEF1CE1735CCC87CAF4C19E615227FA0360B8FFC9B7C91A29C8F480752BD86A7CA
cisco9k-srdriver.17.18.01.SPA.pkg: E371A47E8C315A2AEA55C086A2D0A13FB08C60F63853CFC192E71523C75C29BA9A3BF4478DA49648692DBF18144FAA8593EA07D39AAA387D45F8E59A5FBB60E4
cisco9k-rpbase.17.18.01.SPA.pkg: 2AB27567D8DE97623A2EE73E92519BD1DC2BFEAB9511B0CBC9A0FC60871E336E1E9FCB512005C7A5FD0468EEE8EB6C86219BC62B9939B96E50BC624498128093
PCR0: 72E291B753C405FAC5857969F1414DF0265F3BF6AA697E1A3EF67166DB5F8E6D
PCR8: 89AE6C797F6222869E389D2A4625EA854816FD432F501CB6091D4C467BEE8B49
Signature version: 1
Signature:
74DA72FB187A539463FD2B49AFF4BBAB58D9B6DA052B25EC145F20783CFFC5AE0C7F212B0CBF0FAB459E0680D78A31D7C38EE1BE3E229437D93DFA54BA3F2B167232CE689C0D48A93577513FDC2CC7FEE9836A5DE96D08FF1CB32034FCC7D7B5B40AAF443FE81A954758ED8FFCC8B579583F0B24A46525983CFA08698BCD4DB0C10FCD22DD9BF7CF2B27EA65E4FBEA334259F5C578CCEAC18A9E1CC48D3BB979718E29EEAA02DFED3F7CD6CFFA48958339BD5A155CC9AB20E4D91629B2B56EC4738EC70BEFA0FFE4BF0601F7EB57AEC2487B7D84E65B47D55F6DDD3A7E3F5EAA59C0D6848FD1CA643361C1A5FB4FF143C5746629085709028A92F157B1BBC77A

Verify image signing

The following example displays the secure code signing check of the image during bootup using an SHA-512 hash

switch: boot
system has been configured to boot from device configuration.
boot: attempting to boot from [flash:cisco9k_iosxe.17.18.01.SPA.bin]
boot: reading file cisco9k_iosxe.17.18.01.SPA.bin
################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################


Loading image in Verbose mode: 1



Image Base is: 0x100000000
Image Size is: 0x45556D0D
Package header rev 3 structure detected
Package type:30000, flags:0x0
IsoSize = 1103171584
Parsing package TLV info:
000: 000000090000001D4B45595F544C565F -         KEY_TLV_
010: 5041434B4147455F434F4D5041544942 - PACKAGE_COMPATIB
020: 494C495459000000000000090000000B - ILITY           
030: 4652555F52505F545950450000000009 - FRU_RP_TYPE     
040: 000000184B45595F544C565F5041434B -     KEY_TLV_PACK
050: 4147455F424F4F544152434800000009 - AGE_BOOTARCH    
060: 0000000E415243485F693638365F5459 -     ARCH_i686_TY
070: 5045000000000009000000144B45595F - PE          KEY_
080: 544C565F424F4152445F434F4D504154 - TLV_BOARD_COMPAT
090: 0000000900000012424F4152445F6369 -         BOARD_ci
0A0: 73636F396B5F54595045000000000009 - sco9k_TYPE      
0B0: 000000184B45595F544C565F43525950 -     KEY_TLV_CRYP
0C0: 544F5F4B4559535452494E4700000009 - TO_KEYSTRING    

TLV: T=9, L=29, V=KEY_TLV_PACKAGE_COMPATIBILITY
TLV: T=9, L=11, V=FRU_RP_TYPE
TLV: T=9, L=24, V=KEY_TLV_PACKAGE_BOOTARCH
TLV: T=9, L=14, V=ARCH_i686_TYPE
TLV: T=9, L=20, V=KEY_TLV_BOARD_COMPAT
TLV: T=9, L=18, V=BOARD_cisco9k_TYPE
TLV: T=9, L=24, V=KEY_TLV_CRYPTO_KEYSTRING
TLV: T=9, L=10, V=EnCrYpTiOn
TLV: T=9, L=11, V=CW_BEGIN=$$
TLV: T=9, L=19, V=CW_FAMILY=$cisco9k$
TLV: T=9, L=41, V=CW_IMAGE=$cisco9k_iosxe.17.18.01.SPA.bin$
TLV: T=9, L=21, V=CW_VERSION=$17.18.01$
TLV: T=9, L=50, V=CW_FULL_VERSION=$17.18.01.0.163.1754452537..IOSXE$
TLV: T=9, L=52, V=CW_DESCRIPTION=$Cisco IOS Software, IOS-XE Software$
TLV: T=9, L=9, V=CW_END=$$
Found DIGISIGN TLV type 12 length = 392
RSA Self Test Passed

Expected hash:
DDAF35A193617ABACC417349AE204131
12E6FA4E89A97EA20A9EEEE64B55D39A
2192992A274FC1A836BA3C23A3FEEBBD
454D4423643CE80E2A9AC94FA54CA49F

Obtained hash:
DDAF35A193617ABACC417349AE204131
12E6FA4E89A97EA20A9EEEE64B55D39A
2192992A274FC1A836BA3C23A3FEEBBD
454D4423643CE80E2A9AC94FA54CA49F
Sha512 Self Test Passed
CiscoRommonBootValidateTlv: Arch
Found package arch type ARCH_i686_TYPE
CiscoRommonBootValidateTlv: Fru
Found package FRU type FRU_RP_TYPE
CiscoRommonBootValidateTlv: Sha1
Performing Integrity Check ...
Returning default key storage: TAM

RSA Signed RELEASE Image Signature Verification Successful.
!
!
!
<<output truncated>>