# US 12,216,535 B2 · Proactive integrity checks

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

- Number: US 12,216,535 B2
- Document ID: US12216535B2
- Status: Granted
- Kind: B2
- Application number: 17/874,138
- Filed: 2022-07-26
- Published: 2024-02-01
- Granted: 2025-02-04
- Earliest claimed: 2022-07-26
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Andrea Cosentino; Paolo Antinori
- Web page: https://patentgrep.com/patent/US12216535B2

## CPC

- G06F 11/1004: {to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00)}
- G06F 8/24: {Object-oriented}
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- 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)

## Abstract

A request to validate a project object model (POM) is received from a client device. The POM references one or more modules, each of which is associated with one or more artifacts. The artifacts associated with a module are downloaded to a staging repository along with checksums of the artifacts. The downloaded checksum is compared to a checksum calculated on the staging repository. Upon determining that the downloaded checksum matches the calculated checksum for all artifacts of all modules, the POM is moved to the staging repository.

## Claims

### Claim 1

A method of validating a project object model (POM), the POM comprising a plurality of modules, each of the plurality of modules comprising a plurality of artifacts, the method comprising:
retrieving, by a client, a logfile comprising a listing of the plurality of artifacts, the plurality of artifacts associated with the plurality of modules;
for each artifact identified in the listing:
downloading, by the client, to a staging repository, the artifact and an artifact checksum of the artifact to generate a downloaded artifact and a downloaded checksum;
comparing, by a processing device, a calculated checksum of the downloaded artifact with the downloaded checksum, the calculated checksum obtained from other than the client and the staging repository; and
responsive to the calculated checksum not matching the downloaded checksum, downloading, by the client, to the staging repository, a second copy of the artifact and a second artifact checksum of the artifact to generate a second downloaded artifact and a second downloaded checksum; and
responsive to at least one of the calculated checksum matching the downloaded checksum or the calculated checksum matching the second downloaded checksum, for each artifact identified in the listing, transitioning the POM to a release-ready state.

### Claim 2 (depends on 1)

The method of claim 1, wherein comparing the calculated checksum of the downloaded artifact with the downloaded checksum is initiated in response to a completion of an artifact download as determined from an entry in a log file.

### Claim 3 (depends on 1)

The method of claim 1, wherein the staging repository is a directory.

### Claim 4 (depends on 1)

The method of claim 1, wherein the calculated checksum of the downloaded artifact is generated using MD5 or SHA512.

### Claim 5 (depends on 1)

The method of claim 1, further comprising terminating the validating responsive to a determination that the calculated checksum of the downloaded artifact fails to match the downloaded checksum of the downloaded artifact.

### Claim 6 (depends on 5)

The method of claim 5, further comprising deleting the POM from the staging repository responsive to the determination that the calculated checksum of the downloaded artifact fails to match the downloaded checksum of the downloaded artifact.

### Claim 7 (depends on 5)

The method of claim 5, wherein the validating is terminated with a SIGKILL.

### Claim 8

A system comprising:
a memory; and
a processing device, operatively coupled to the memory, to:
receive a request to validate a plurality of modules, each of the plurality of modules comprising a plurality of artifacts, the request further comprising a project object model (POM), the POM comprising the plurality of modules;
retrieve a logfile comprising a listing of the plurality of artifacts, the plurality of artifacts associated with the plurality of modules;
for each artifact identified in the listing:
cause to be downloaded to a staging repository, the artifact and an artifact checksum associated with the artifact to generate a downloaded artifact and a downloaded checksum;
compare, by the processing device, a calculated checksum of the downloaded artifact with the downloaded checksum, the calculated checksum generated on a second processing device, the second processing device distinct from the processing device;
responsive to the calculated checksum not matching the downloaded checksum, cause to be downloaded to the staging repository, a second copy of the artifact and a second artifact checksum of the artifact to generate a second downloaded artifact and a second downloaded checksum; and
responsive to at least one of the calculated checksum matching the downloaded checksum or the calculated checksum matching the second downloaded checksum, for each artifact identified in the listing, transition the POM to a release-ready state.

### Claim 9 (depends on 8)

The system of claim 8, wherein compare the calculated checksum of the downloaded artifact with the downloaded checksum is initiated in response to a completion of an artifact download as determined from an entry in a log file.

### Claim 10 (depends on 8)

The system of claim 8, wherein the staging repository is a directory.

### Claim 11 (depends on 8)

The system of claim 8, wherein the calculated checksum of the downloaded artifact is generated using MD5 or SHA512.

### Claim 12 (depends on 8)

The system of claim 8, wherein the processing device is further to terminate the request upon a determination that the calculated checksum of the downloaded artifact fails to match the downloaded checksum of the downloaded artifact.

### Claim 13 (depends on 12)

The system of claim 12, wherein the processing device is further to delete the POM from the staging repository responsive to the determination that the calculated checksum of the downloaded artifact fails to match the downloaded checksum of the downloaded artifact.

### Claim 14 (depends on 12)

The system of claim 12, wherein the terminating the request is performed with a SIGKILL.

### Claim 15 (depends on 8)

The system of claim 8, wherein a result of the request is provided.

### Claim 16 (depends on 8)

The system of claim 8, wherein the processing device is further to:
detect a failure of the calculated checksum of the downloaded artifact to match the downloaded checksum of the downloaded artifact; and
terminate validation of the plurality of modules.

### Claim 17

A non-transitory computer-readable storage medium including instructions for validating a project object model (POM) the POM comprising a plurality of modules, each of the plurality of modules comprising a plurality of artifacts that, when executed by a processing device, cause the processing device to:
retrieve a logfile comprising a listing of the plurality of artifacts, the plurality of artifacts associated with the plurality of modules;
for each artifact identified in the listing:
cause to be downloaded to a staging repository, the artifact and an artifact checksum associated with the artifact to generate a downloaded artifact and a downloaded checksum;
compare, by the processing device, a calculated checksum of the downloaded artifact with the downloaded checksum, the calculated checksum generated by a second processing device, the second processing device distinct from the processing device; and
responsive to the calculated checksum not matching the downloaded checksum, cause to be downloaded to the staging repository, a second copy of the artifact and a second artifact checksum of the artifact to generate a second downloaded artifact and a second downloaded checksum; and
responsive to at least one of the calculated checksum matching the downloaded checksum or the calculated checksum matching the second downloaded checksum, for each artifact identified in the listing, transition the POM to a release-ready state.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein compare the calculated checksum of the downloaded artifact with the downloaded checksum is initiated in response to a completion of an artifact download as determined from an entry in a log file.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions further cause the calculated checksum of the downloaded artifact to be generated using MD5 or SHA512.

### Claim 20 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions further cause the processing device to restart a validation of the POM upon a determination that the calculated checksum of the downloaded artifact fails to match the downloaded checksum of the downloaded artifact.
