# US 12,603,762 B2 · Data transfer using a virtual terminal

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

- Number: US 12,603,762 B2
- Document ID: US12603762B2
- Status: Granted
- Kind: B2
- Application number: 17/952,093
- Filed: 2022-09-23
- Published: 2023-08-10
- Granted: 2026-04-14
- Earliest claimed: 2022-02-07
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Raphael Hudon-Voyer; Frank Andries van den Berg; Sebastien Fontaine; Frederic Arnaud; Neilson Proulx-Marcil; Pradeepa Krishnamoorthy; Guilherme Bicalho de Padua; Varun A. Vora; Jin W. Lee
- Web page: https://patentgrep.com/patent/US12603762B2

## CPC

- H04L 9/0822: {using key encryption key}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/3213: {using tickets or tokens, e.g. Kerberos (network architectures or network communication protocols for entities authentication using tickets in a packet data network H04L63/0807)}
- H04L 9/3234: {involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token (network architectures or network communication protocols for supporting authentication of entities using an additional device in a packet data network H04L63/0853)}
- H04L 9/3263: {involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements (network architectures or network communication protocols for supporting authentication of entities using certificates in a packet data network H04L63/0823)}
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06Q 20/36: using electronic wallets or electronic money safes
- G06Q 20/3674: {involving authentication}
- G06Q 20/3821: {Electronic credentials}
- G06Q 20/3829: {involving key management}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Techniques for using a virtual terminal on a device to process a data transfer are described herein. These techniques provide the establishing of a virtual terminal for touchless transfer of data, encryption of the data, and rewrapping the data in a way to protect the personal information of a user on the device and in transfer, while still providing the information to a server for further processing.

## Claims

### Claim 1

A method, comprising:
receiving, by a first application on a user device, a reader token the reader token comprising a terminal profile identifier;
initializing, by the first application a reader of the user device based at least in part on the reader token, the reader configured for one or more data transfers;
initializing, by the reader, a virtual terminal in a secure element of the user device;
receiving, at a first user interface of the first application, a request for a data transfer of the one or more data transfers, the request comprising a transfer value corresponding to the data transfer;
presenting, on a second user interface by the reader, a representation of the request for the data transfer;
receiving, via the reader, data corresponding to the data transfer, the data comprising the transfer value and account information;
transmitting, by the reader, the received data to the virtual terminal;
receiving, by the reader from the virtual terminal, encrypted data corresponding to the received data;
transmitting, by the reader, the encrypted data to the first application; and
presenting, via the second user interface, a visual representation of a response to the request for the data transfer, the response received by the first application.

### Claim 2 (depends on 1)

The method of claim 1, further comprising sending, by the first application, account profile data associated with the user device to a server device.

### Claim 3 (depends on 2)

The method of claim 2, wherein the server device generates the reader token that corresponds to the account profile data.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
transmitting, by the first application, the encrypted data to a server device; and
receiving, by the first application, the response to the request for the data transfer from the server device.

### Claim 5

A computing device, comprising:
one or more memories; and
one or more processors in communication with the one or more memories and configured to execute instructions stored in the one or more memories to cause the computing device to:
receive, by a first application on the device, a reader token, the reader token comprising a terminal profile identifier;
initialize, by the first application, a reader of the computing device based at least in part on the reader token, the reader configured for one or more data transfers;
initializing, by the reader, a virtual terminal in a secure element of the computing device;
receive, at a first user interface of the first application, a request for a data transfer of the one or more data transfers, the request comprising a transfer value corresponding to the data transfer;
present, on a second user interface by the reader, a representation of the request for the data transfer;
receive, via the reader, data corresponding to the data transfer, the data comprising the transfer value and account information;
transmit, by the reader, the received data to the virtual terminal;
receive, by the reader from the virtual terminal, encrypted data corresponding to the received data;
transmit, by the reader, the encrypted data to the first application; and
present, via the second user interface, a visual representation of a response to the request for the data transfer, the response received by the first application.

### Claim 6 (depends on 5)

The computing device of claim 5, wherein the one or more processors are further configured to send, by the first application, account profile data associated with the computing device to a server device.

### Claim 7

A non-transitory computer-readable storage medium having stored thereon program instructions that, when executed by one or more processors of a user device, cause the user device to perform operations comprising:
receiving, by a first application on a user device, a reader token, the reader token comprising a terminal profile identifier;
initializing, by the first application, a reader of the user device based at least in part on the reader token, the reader configured for one or more data transfers;
initializing, by the reader, a virtual terminal in a secure element of the user device;
receiving, at a first user interface of the first application, a request for a data transfer of the one or more data transfers, the request comprising a transfer value corresponding to the data transfer;
presenting, on a second user interface by the reader, a representation of the request for the data transfer;
receiving, via the reader, data corresponding to the data transfer, the data comprising the transfer value and account information;
transmitting, by the reader, the received data to the virtual terminal;
receiving, by the reader from the virtual terminal, encrypted data corresponding to the received data;
transmitting, by the reader, the encrypted data to the first application; and
presenting, via the second user interface, a visual representation of a response to the request for the data transfer, the response received by the first application.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
generating, by the virtual terminal, a first encryption key;
generating, by the virtual terminal, an encrypted data payload by encrypting the received data with the first encryption key;
generating an encrypted key, by the virtual terminal, by encrypting the first encryption key with a second public encryption key stored in the secure element; and
generating, by the virtual terminal, the encrypted data based at least in part on the encrypted data payload and the first encryption key.

### Claim 9 (depends on 8)

The method of claim 8, wherein the second public encryption key corresponds to a third private encryption key stored on a first server device.

### Claim 10 (depends on 9)

The method of claim 9, wherein the reader token received by the first application on the user device from a second server device.

### Claim 11 (depends on 1)

The method of claim 1, wherein initializing, by the reader, a virtual terminal in the secure element includes:
transmitting, by the reader to a server device, the reader token;
receiving, by the reader from the server device, a kernel configuration script corresponding to the reader token; and
transmitting, by the reader to the secure element, the kernel configuration script.

### Claim 12 (depends on 11)

The method of claim 11, further comprising generating, by the secure element, the virtual terminal based at least in part on kernel configuration script.

### Claim 13 (depends on 12)

The method of claim 12, further comprising transmitting, by the virtual terminal to the reader, a confirmation of the generation of the virtual terminal.

### Claim 14 (depends on 5)

The computing device of claim 5, wherein the one or more processors are further configured to:
generate, by the virtual terminal, a first encryption key;
generate, by the virtual terminal, an encrypted data payload by encrypting the received data with the first encryption key;
generate an encrypted key, by the virtual terminal, by encrypting the first encryption key with a second public encryption key stored in the secure element; and
generate, by the virtual terminal, the encrypted data based at least in part on the encrypted data payload and the first encryption key.

### Claim 15 (depends on 14)

The computing device of claim 14, wherein the second public encryption key corresponds to a third private encryption key stored on a first server device.

### Claim 16 (depends on 5)

The computing device of claim 5, wherein initializing, by the reader, a virtual terminal in the secure element includes:
transmitting, by the reader to a server device, the reader token;
receiving, by the reader from the server device, a kernel configuration script corresponding to the reader token; and
transmitting, by the reader to the secure element, the kernel configuration script.

### Claim 17 (depends on 16)

The computing device of claim 16, further comprising generating, by the secure element, the virtual terminal based at least in part on kernel configuration script.

### Claim 18 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein the operations further comprise:
generating, by the virtual terminal, a first encryption key;
generating, by the virtual terminal, an encrypted data payload by encrypting the received data with the first encryption key;
generating an encrypted key, by the virtual terminal, by encrypting the first encryption key with a second public encryption key stored in the secure element; and
generating, by the virtual terminal, the encrypted data based at least in part on the encrypted data payload and the first encryption key.

### Claim 19 (depends on 18)

The non-transitory computer-readable storage medium of claim 18, wherein the second public encryption key corresponds to a third private encryption key stored on a first server device.

### Claim 20 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein initializing, by the reader, a virtual terminal in the secure element includes:
transmitting, by the reader to a server device, the reader token;
receiving, by the reader from the server device, a kernel configuration script corresponding to the reader token; and
transmitting, by the reader to the secure element, the kernel configuration script.
