# US 2021/0240846 A1 · Secure Offline Streaming of Content

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

- Number: US 2021/0240846 A1
- Document ID: US20210240846A1
- Status: Published application
- Kind: A1
- Application number: 17/233,814
- Filed: 2021-04-19
- Published: 2021-08-05
- Earliest claimed: 2018-12-18
- Assignees: Citrix Systems, Inc.
- Applicants: Citrix Systems, Inc.
- Inventors: Noah Dyvadheenam; Satish Vanahalli; Chirag Agarwal; Arnav Akhoury
- Web page: https://patentgrep.com/patent/US20210240846A1

## CPC

- G06F 21/6209: {to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- G06F 21/606: {by securing the transmission between two devices or processes}
- H04L 63/0272: {Virtual private networks}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/0471: {applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding}
- H04L 63/108: {when the policy decisions are valid for a limited amount of time}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04N 21/4331: {Caching operations, e.g. of an advertisement for later insertion during playback}
- H04N 21/436: Interfacing a local distribution network, e.g. communicating with another STB {or one or more peripheral devices} inside the home
- H04N 21/4408: involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2221/2143: Clearing memory, e.g. to prevent the data from being stolen
- 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)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Methods, systems, and computer-readable media for secure offline transmission of a plurality of data segments from a sending device to one or more receiving devices. The sending device and the one or more receiving devices may communicate via an offline local network. A secure, encrypted container may be created at the receiving device to temporarily cache the received data segments one at a time and the encrypted storage container prevents access by one or more applications of the receiving device to data stored therein based on storage instructions from the sending device. The encrypted container may be configured to store the data segments such that less than all of the data segments are stored at the receiving device at any one time.

## Claims

### Claim 1

A method comprising:
receiving, by a receiving device and from a sending device, a data segment of a plurality of data segments, the receiving device being in direct communication with the sending device via a local network;
storing, by the receiving device, the data segment in a container of the receiving device, wherein the container prevents access by one or more applications of the receiving device to data stored therein; and
removing, upon an expiration of a period of time after receipt of the data segment, the data segment from the container.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
processing, by the receiving device, the data segment to provide an output to a user of the receiving device, wherein processing of the data segment comprises displaying, on a display of the receiving device, a portion of data associated with the plurality of data segments.

### Claim 3 (depends on 2)

The method of claim 2 further comprising:
receiving a second data segment from the sending device;
deleting, in response to receiving the second data segment and by a receiving service executed by the receiving device, the data segment from the container;
storing, by the receiving service and based on removal of the data segment from the container, the second data segment in the container; and
processing the second data segment to output, on a display of the receiving device, another portion of data associated with the plurality of data segments.

### Claim 4 (depends on 3)

The method of claim 3 further comprising:
receiving, from the sending device, a message of termination; and
removing, based on the message, the second data segment from the container.

### Claim 5 (depends on 1)

The method of claim 1 wherein storing the data segment in the container is based on an instruction transmitted from the sending device to the receiving device.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
disconnecting, based on a timer reaching a threshold value, the receiving device from a local network.

### Claim 7 (depends on 1)

The method of claim 1 further comprising:
resetting a timer associated with the period of time upon receipt of a second data segment of the plurality of data segments.

### Claim 8 (depends on 1)

The method of claim 1, wherein the data segment is received based on a password known to the receiving device and the sending device.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
deleting, based on a receiving a notification of termination, all data segments stored in the container.

### Claim 10

A device comprising:
one or more processors; and
a receiver service module that, when executed by the one or more processors, cause the device to:
receive, from a sending device, a data segment of a plurality of data segments, the device being in direct communication with the sending device via a local network;
store the data segment in a container of the device, wherein the container prevents access by one or more applications of the device to data stored therein; and
remove, upon an expiration of a period of time after receipt of the data segment, one or more data segments from the container.

### Claim 11 (depends on 10)

The device of claim 10 wherein the receiver service module, when executed by the one or more processors, further causes the device to:
process the data segment to output, on a display of the device, a portion of data associated with the plurality of data segments;
receive a second data segment of the plurality of data segments;
remove, in response to receiving the second data segment, the data segment from the container;
store, based on the removing the data segment from the container, the second data segment in the container; and
process the second data segment to output, on the display of the device, another portion of data associated with the plurality of data segments.

### Claim 12 (depends on 11)

The device of claim 11 wherein the receiver service module, when executed by the one or more processors, further cause the device to:
receive a termination message; and
remove, based on the termination message, the second data segment from the container.

### Claim 13 (depends on 12)

The device of claim 12 wherein the receiver service module, when executed by the one or more processors, further cause the device to:
transmit a request for a data segment of the plurality of data segments, the request comprising an identification of the data segment and an identification of the device.

### Claim 14 (depends on 12)

The device of claim 12 wherein the receiver service module, when executed by the one or more processors, further cause device to:
disconnect, based on a timer reaching a threshold value, the device from a local network.

### Claim 15

A method comprising:
activating, by a receiving device and based on receiving a data segment, a timer, wherein the data segment is received via a local network connection with a sending device;
determining, by the receiving device, that the timer has reached a threshold value; and
disconnecting, by the receiving device and based on the timer reaching the threshold value, the local network connection with the sending device.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
removing, based on the timer reaching the threshold value, stored data segments from a container, wherein the container prevents access by one or more applications of the receiving device to data stored therein.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
receiving, by the receiving device, a new data segment; and
resetting, based on receiving the new data segment, the timer.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
determining that the data segment comprises corrupted data; and
requesting, by the receiving device, the sending device to send, via the local network connection, a replacement data segment, wherein the timer resets upon receipt of the replacement data segment is received.

### Claim 19 (depends on 15)

The method of claim 15, wherein the local network connection between the receiving device and the sending device is established based on authenticating the receiving device, and wherein authenticating the receiving device comprises the receiving device sending a password to the sending device.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
storing, by the receiving device, the data segment in a container of the receiving device, wherein the container prevents access by one or more applications of the receiving device to data stored therein.
