IP Library Granted Patent US 11,062,106
Granted Patent B2
US 11,062,106 · App. 16/697,110 · Granted Jul 13, 2021

Large data transfer using visual codes with feedback confirmation

Inventors: Armin Ebrahimi (Palo Alto, CA); Gaurav Khot (Cupertino, CA); Bhavya Chauhan (Cupertino, CA)
Assignee: Ping Identity Corporation
G06K7/1417G09C5/00H04L9/0618H04L9/3236H04L9/3247H04L9/3263H04L2209/38H04L2209/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,062,106
App. No.
16/697,110
Granted
Jul 13, 2021
Kind
B2
Abstract

A method of confirming receipt, including iteratively capturing by a receiving device visual codes in a series of visual codes displayed on a sending device. A corresponding captured visual code being from a display block that resulted from a partition of an original data file into display blocks, and wherein each display block is converted to a corresponding string and header including an ordered identifying display block number and a total count of the display blocks. Each corresponding string is converted to a corresponding visual code. Each of the captured visual codes is converted into a corresponding string and a header is read for the corresponding string. Captured display blocks are determined. A confirmation message is generated including information indicating which display blocks have been received. The confirmation message is sent over a wireless communication link to the sending device to reduce the number of visual codes being displayed.

Claims (48)

1. A method, comprising:

receiving a series of visual codes of a first original data file from a sending device, wherein the first original data file and a first digitally signed hash value of the first original data file are partitioned into a first series of display blocks and wherein each display block from the first series of display blocks includes a corresponding header that includes an ordered identifying display block number and a total count of the display blocks in the first series of display blocks, wherein each display block from the first series of display blocks is converted to a byte array to define a first series of byte arrays, wherein each byte array in the first series of byte arrays is converted to a corresponding visual code to define the series of visual codes;

converting a set of visual codes from the series of visual codes into a second series of byte arrays;

converting the second series of byte arrays into a second series of display blocks, wherein each display block in the second series of display blocks includes a corresponding header that includes an ordered identifying display block number and a total count of the display blocks in the second series of display blocks;

coalescing the second series of display blocks into a second original data file and a second digitally signed hash value of the second original data file using an order determined by the ordered identifying display block number in the header of each display block in the second series of display blocks, wherein the second original data file is the same as the first original data file and the second digitally signed hash value of the second original data file is the same as the first digitally signed hash value of the first original data file; and

verifying the second original data file with the second digitally signed hash value of the second original data file.

2. The method of claim 1 , further comprising:

verifying integrity of the second original data file using a seal that is accessed from a block chain database storing the seal, the seal generated based on contents of the first original data file; and

verifying validity of the second original data file using a certification accessed from a block chain database storing the certification, the certification generated based on contents of the first original data file and the seal, wherein the verifying integrity and the verifying validity are performed by an image-capturing device.

3. The method of claim 1 , further comprising:

determining that the second series of display blocks is complete, based on the ordered identifying display block number and the total count of the display blocks in the header of each display block in the second series of display blocks; and

stopping the capturing of visual codes.

4. The method of claim 1 , wherein each byte array in the first series of byte arrays is a string.

5. The method of claim 1 , further comprising:

decrypting the second original data file and the second digitally signed hash value of the second original data file using a private key, wherein the first original data file and the first digitally signed hash value of the first original data file are encrypted using a public key corresponding to the private key.

6. The method of claim 1 , wherein the method is performed by a receiving device without network connectivity to the sending device.

7. The method of claim 1 , wherein the first original data file includes a timestamp.

8. The method of claim 1 , wherein the first original data file includes an image file.

9. The method of claim 1 , wherein the first original data file includes biometric data of a user of the sending device.

10. A non-transitory computer-readable medium storing a computer program performing a method, the computer-readable medium comprising:

program instructions for receiving a series of visual codes of a first original data file from a sending device, wherein the first original data file and a first certificate from a certifying entity are partitioned into a first series of display blocks and wherein each display block from the first series of display blocks includes a corresponding header that includes an ordered identifying display block number and a total count of the display blocks in the first series of display blocks, wherein each display block from the first series of display blocks is converted to a byte array to define a first series of byte arrays, wherein each byte array in the first series of byte arrays is converted to a corresponding visual code to define the series of visual codes;

program instructions for converting a set of visual codes from the series of visual codes into a second series of byte arrays;

program instructions for converting the second series of byte arrays into a second series of display blocks, wherein each display block in the second series of display blocks includes a corresponding header that includes an ordered identifying display block number and a total count of the display blocks in the second series of display blocks;

program instructions for coalescing the second series of display blocks into a second original data file and a second certificate using an order determined by the ordered identifying block number in the header of each display block in the second series of display blocks, wherein the second original data file is the same as the first original data file and the second certificate is the same as the first certificate; and

program instructions for verifying the second original data file with the second certificate.

11. The non-transitory computer-readable medium of claim 10 , further comprising:

program instructions for verifying integrity of the second original data file using a seal that is accessed from a block chain database storing the seal, the seal generated based on contents of the first original data file; and

program instructions for verifying validity of the second original data file using a certification accessed from a block chain database storing the certification, the certification generated based on contents of the first original data file and the seal, wherein the verifying integrity and the verifying validity are performed by an image-capturing device.

12. The non-transitory computer-readable medium of claim 10 , further comprising:

program instructions for determining that the second series of display blocks is complete, based on the ordered identifying display block number and the total count of the display blocks in the header of each display block in the second series of display blocks; and

program instructions for stopping the capturing of visual codes.

13. The non-transitory computer-readable medium of claim 10 , wherein each byte array in the first series of byte arrays is a string, the first series of byte arrays is a first series of strings, and the second series of byte arrays is a second series of strings.

14. The non-transitory computer-readable medium of claim 10 , wherein the first certificate from the first certifying entity includes a digitally signed hash value of the first original data file.

15. The non-transitory computer-readable medium of claim 10 , wherein the computer-readable medium further comprises program instructions for verifying the second original data file with a copy of the first original data file obtained from the certifying entity.

16. A computer system comprising:

a processor; and

memory coupled to the processor and having stored therein instructions that, if executed by the computer system, cause the computer system to execute a method comprising:

receiving a series of visual codes of a first original data file from a sending device, wherein the first original data file is partitioned into a first series of display blocks, each display block from the first series of display blocks includes an indication of a previous display block in the first series of display blocks, wherein each display block from the first series of display blocks is converted to a byte array to define a first series of byte arrays, each byte array in the first series of byte arrays is converted to a corresponding visual code to define the series of visual codes;

converting a set of visual codes from the series of visual codes into a second series of byte arrays;

converting the second series of byte arrays into a second series of display blocks, each display block in the second series of display blocks includes an indication of a previous display block in the second series of display blocks;

verifying integrity of the second series of display blocks by comparing the indication of the previous display block for each display block in the second series of display blocks with a previous display block in the second series of display blocks; and

coalescing the second series of display blocks into a second original data file, the second original data file is the same as the first original data file.

17. The method of claim 16 , further comprising:

verifying integrity of the second original data file using a seal that is accessed from a block chain database storing the seal, the seal generated based on contents of the first original data file; and

verifying validity of the second original data file using a certification accessed from a block chain database storing the certification, the certification generated based on contents of the first original data file and the seal, wherein the verifying integrity and the verifying validity are performed by an image-capturing device.

18. The computer system of claim 16 , wherein each byte array in the first series of byte arrays is a string, the first series of byte arrays is a first series of strings, and the second series of byte arrays is a second series of strings.

19. The computer system of claim 16 , wherein each indication of the previous display block in the first series of display blocks is a hash value of a previous display block in the first series of display blocks and each indication of the previous display block in the second series of display blocks is a hash value of a previous display block in the second series of display blocks.

20. The computer system of claim 16 , wherein the computer system is without network connectivity to the sending device.

Assignments (10)
RELEASE OF SECURITY INTEREST AT R/F 61703/0988 Recorded Nov 14, 2025
From: BLUE OWL CAPITAL CORPORATION
To: PING IDENTITY CORPORATION
Reel/Frame 073570/0777 →
SECURITY INTEREST Recorded Nov 13, 2025
From: PING IDENTITY CORPORATION; PING IDENTITY INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 073557/0093 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2022
From: BANK OF AMERICA, N.A.
To: PING IDENTITY CORPORATION
Reel/Frame 061709/0527 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Oct 18, 2022
From: PING IDENTITY CORPORATION
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 061703/0988 →
SECURITY INTEREST Recorded Nov 23, 2021
From: PING IDENTITY CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 058944/0687 →
RELEASE OF SECURITY INTEREST Recorded Nov 23, 2021
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: SHOCARD, LLC
Reel/Frame 058195/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2020
From: EBRAHIMI, ARMIN; KHOT, GAURAV; CHAUHAN, BHAVYA
To: SHOCARD, INC.
Reel/Frame 053013/0376 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2020
From: SHOCARD, LLC
To: PING IDENTITY CORPORATION
Reel/Frame 052889/0793 →
CHANGE OF NAME Recorded Apr 17, 2020
From: SHOCARD, INC.
To: SHOCARD, LLC
Reel/Frame 052435/0009 →
PATENT SECURITY AGREEMENT Recorded Apr 1, 2020
From: SHOCARD, LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052291/0082 →
Continuity (5)
Continuation 15784093 · Oct 14, 2017
Continuation In Part 15208580 · Jul 12, 2016
Provisional Application 62408699 · Oct 14, 2016
Provisional Application 62304934 · Mar 7, 2016
Related Publication 20200265202A1 · Aug 20, 2020
Cited By (6)
US 12,205,189 US 12,307,546 US 12,452,080 US 12,462,321 US 12,518,278 US 12,718,311