# US 2019/0356492 A1 · Framework for ensuring software components are not corrupted

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0356492 A1
- Document ID: US20190356492A1
- Status: Published application
- Kind: A1
- Application number: 16/402,516
- Filed: 2019-05-03
- Published: 2019-11-21
- Earliest claimed: 2018-05-18
- Assignees: Revive Solutions, Inc.
- Applicants: Revive Solutions, Inc.
- Inventors: David PICCO; Gaurav RAO
- Web page: https://patentgrep.com/patent/US20190356492A1

## CPC

- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- H04L 9/3236: {using cryptographic hash functions}
- G06F 21/51: at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 67/125: involving control of end-device applications over a network
- H04L 69/22: Parsing or analysis of headers
- A61N 1/046: {Specially adapted for shock therapy, e.g. defibrillation}
- A61N 1/3925: {Monitoring; Protecting}
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- A61N: ELECTROTHERAPY; MAGNETOTHERAPY; RADIATION THERAPY; ULTRASOUND THERAPY (measurement of bioelectric currents A61B; surgical instruments, devices or methods for transferring non-mechanical forms of energy to or from the body A61B18/00; anaesthetic apparatus in general A61M; incandescent lamps H01K; infrared radiators for heating H05B)

## Abstract

A variety of frameworks, methods and container structures are described that are well suited for use in conjunction with medical devices and/or medical device support applications that are configured to be used in conjunction with a medical device. The described arrangements are well suited for use by applications executed on external devices such as a mobile communication device or an interface unit that are distinct from the medical device that the external device is being used in conjunction with. One specific application relates to defibrillator support applications executing on devices that are arranged to work in conjunction with a defibrillator, such as an automated external defibrillator.

## Claims

### Claim 1

A method for validating of a container file for use by a defibrillator support application configured for use in conjunction with a defibrillator, the defibrillator support application having a required assets list, the container file including a container header and a plurality of assets suitable for use by the defibrillator support application, each asset including an asset header and asset data, the method comprising:
hashing at least a portion of the container file using a first hashing protocol to create a first hash value, wherein the hashed portion of the container file includes at least all of the assets;
comparing the first hash value to a container file hash stored in the container header to determine whether the first hash value matches the container file hash, wherein when the first hash value and the container file hash do not match, the container file is treated as not valid;
for each asset included in the container file, (i) hashing at least a portion of the asset using a second hashing protocol to create an asset validation hash value, wherein the hashed portion of the asset includes at least the asset data associated with the asset, and (ii) comparing the received asset validation hash value to an original asset hash value stored in the asset header associated with the asset to determine whether the asset validation hash value matches the original asset hash value, wherein when the asset validation hash value and the original asset hash value do not match, the container file is treated as not valid;
verifying that all assets identified in the required assets list are present in the container file, wherein when one or more assets identified in the required assets list are not present in the container file, the container file is treated as not valid; and
wherein the container file is only validated when at least the first hash value matches the container file hash value, each asset validation hash value matches the associated original asset hash value, and all of the assets identified in the required assets list are present in the container file.

### Claim 2 (depends on 1)

A method as recited in claim 1 wherein the defibrillator support application is installed and executes on an external device that is separate from the defibrillator, the external device including a display screen, the method further comprising displaying user instructions for the defibrillator on the external device using one or more of the assets from the validated container file.

### Claim 3 (depends on 2)

A method as recited in claim 2 further comprising causing a message to be displayed on the display screen informing the user to follow instructions from the defibrillator when the container file is not valid.

### Claim 4 (depends on 1)

A method as recited in claim 1 wherein the method is performed by the defibrillator support application:
when the container file is initially received by the defibrillator support application; and
each time the defibrillator support application is launched.

### Claim 5 (depends on 1)

A method as recited in claim 1 further comprising, in response to a request from the defibrillator support application to accesses a selected one of the assets during emergency use of the defibrillator:
hashing at least a portion of the asset using the second hashing protocol to create an accessed asset hash value, wherein the hashed portion of the selected asset includes at least the asset data associated with the selected asset; and
comparing the accessed asset hash value to the original asset hash value stored in the asset header associated with the selected asset, wherein the defibrillator support application is only able to utilize the selected asset when it is determined that the accessed asset hash value and the original asset hash value match.

### Claim 6

A method for validating of a container file for use by a medical device support application configured for use in conjunction with a medical device, the container file including a container header and a plurality of assets suitable for use by the medical device support application, each asset including an asset header and asset data, the method comprising:
hashing at least a portion of the container file using a first hashing protocol to create a first hash value, wherein the hashed portion of the container file includes at least all of the assets;
comparing the first hash value to a container file hash stored in the container header to determine whether the first hash value matches the container file hash, wherein when the first hash value and the container file hash do not match, the container file is treated as not valid;
for each asset included in the container file, (i) hashing at least a portion of the asset using a second hashing protocol to create an asset validation hash value, wherein the hashed portion of the asset includes at least the asset data associated with the asset, and (ii) comparing the received asset validation hash value to an original asset hash value stored in the asset header associated with the asset to determine whether the asset validation hash value matches the original asset hash value, wherein when the asset validation hash value and the original asset hash value do not match, the container file is treated as not valid; and
wherein the container file is only validated when at least the first hash value matches the container file hash value and each asset validation hash value matches the associated original asset hash value.

### Claim 7 (depends on 6)

A method as recited in claim 6 wherein the medical device support application includes a required assets list, the method further comprising verifying that all assets identified in the required assets list are present in the container file, wherein when one or more assets identified in the required assets list are not present in the container file, the container file is treated as not valid.

### Claim 8 (depends on 6)

A method as recited in claim 6 wherein the method is performed by the medical device support application when the container file is initially received by the medical device support application, the method further comprising storing the validated container file in the memory for use by the medical device support application.

### Claim 9 (depends on 6)

A method as recited in claim 6 wherein the method is performed by the medical device support application each time the medical device support application is launched.

### Claim 10 (depends on 6)

A method as recited in claim 6 further comprising, in response to a request from the medical device support application to accesses a selected one of the assets during emergency use of the medical device:
hashing at least a portion of the asset using the second hashing protocol to create an accessed asset hash value, wherein the hashed portion of the selected asset includes at least the asset data associated with the selected asset; and
comparing the accessed asset hash value to the original asset hash value stored in the asset header associated with the selected asset, wherein the defibrillator support application is only able to utilize the selected asset when it is determined that the accessed asset hash value and the original asset hash value match.

### Claim 11 (depends on 6)

A method as recited in claim 6 wherein the first and second hashing protocols are cryptographic hashing protocols.

### Claim 12 (depends on 6)

A method as recited in claim 6 wherein the first and second hashing protocols are the same hashing protocol.

### Claim 13 (depends on 6)

A method as recited in claim 6 wherein the medical device support application is installed and executes on an external device that is separate from the medical device, the external device including a display screen, the method further comprising displaying user instructions for the medical device on the external device using one or more of the assets from the validated container file.

### Claim 14 (depends on 6)

A method as recited in claim 6 further comprising displaying medical device user instructions

### Claim 15

A container file stored in a non-transitory computer readable media, the container file comprising a container header and a plurality of assets that are suitable for use by a medical device support application suitable for use in conjunction with a medical device, each asset having an associated asset header and asset data, wherein:
each asset header includes (i) an asset file size field having a file size indicator that indicates a size of the associated asset, (ii) an asset hash field that includes an asset hash that is a hash of at least the asset data for the associated asset, and (iii) a path field that identifies at least a portion of a path suitable for accessing the asset; and
the container header includes (i) a file format version field that includes a file format version indicator, (ii) a container size field that includes a container size indictor that indicates a size of the container, (iii) a container file hash field that includes a container file hash that is a hash of at least the plurality of assets including the asset header and asset data associated with each asset.

### Claim 16 (depends on 15)

A container file as recited in claim 15 wherein the assets contained in the asset file include a multiplicity of components for use in instructions generated by the medical device support application to help guide an operator's use of the medical device.

### Claim 17 (depends on 15)

A container file as recited in claim 15 wherein the asset hashes and the container file hashes are cryptographic hashes.

### Claim 18 (depends on 17)

A container file as recited in claim 17 wherein the container file hash is a hash of at least the container header and the plurality of assets including the asset header and asset data associated with each asset.

### Claim 19 (depends on 15)

A container file as recited in claim 15 wherein the path is a relative path.

### Claim 20 (depends on 15)

A container file as recited in claim 15 wherein each asset header further includes:
an asset header size field having an asset header size indicator that indicates a size of the asset header;
a path size field that includes a path size indicator that indicates a size of the path field;

### Claim 21 (depends on 15)

A container file as recited in claim 15 further wherein the container header further includes:
a number of assets field that includes a number of assets identifier that indicates the number of assets contained in the container file;
a creation time field that includes a creation time indicator that identifies a file creation date and time;
a file description field that includes a description of the file; and
a file description size indicator that indicates a size of the description of the file.

### Claim 22

A method of creating a container file suitable for use by a medical device support application, the method comprising:
for each of a plurality of assets that include an asset header and an asset body, hashing at least the body portion of the asset to create an asset hash and inserting the asset hash into an asset hash field in the asset header;
inserting each of the assets into a container file, the container file including a container header;
hashing at least a portion of container file including at least all of the assets to create a container hash;
inserting the container hash into a container hash field in the container file.
