# US 12,002,040 B2 · Device driver for contactless payments

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

- Number: US 12,002,040 B2
- Document ID: US12002040B2
- Status: Granted
- Kind: B2
- Application number: 17/953,196
- Filed: 2022-09-26
- Published: 2023-01-19
- Granted: 2024-06-04
- Earliest claimed: 2018-09-26
- Assignees: Block, Inc.
- Applicants: Block, Inc.
- Inventors: Christopher Rohlf; Richard Neal Harris; Fredrick Lee
- Web page: https://patentgrep.com/patent/US12002040B2

## CPC

- G06Q 20/3829: {involving key management}
- G06Q 20/20: Point-of-sale [POS] network systems
- G06Q 20/204: {comprising interface for record bearing medium or carrier for electronic funds transfer or payment credit}
- G06Q 20/3278: {RFID or NFC payments by means of M-devices}
- G07F 7/088: {the card reader being part of the point of sale [POS] terminal or electronic cash register [ECR] itself}
- 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
- G07F: COIN-FREED OR LIKE APPARATUS (coin sorting G07D3/00; coin testing G07D5/00; {handling coins or paper currencies apart from payment activated apparatus G07D; payment architectures, schemes or protocols G06Q20/00})

## Abstract

A device is configured to process contactless payments by wirelessly reading account information from enabled payment instruments and providing the account information, along with other information, to a remote payment processing system. The device has an embedded reader, such as a near-field communications (NFC) reader or a radio-frequency identification (RFID) reader. The operating system of the device has a device driver that provides access to the embedded reader. The device driver is implemented as part of the operating system kernel in order to protect it from access by non-privileged software. A POS application installed on the device uses the device driver to obtain payment instrument information from a payment instrument such as a credit card. Before providing the payment instrument information to the POS application, the device driver encrypts the payment instrument information using a public key provided by the payment processing system.

## Claims

### Claim 1

A method comprising:
communicating, by a device driver, with a payment reader to receive information;
in response to receiving the information, sending from the device driver to a non-privileged component of a computing device having the device driver, a notification that the information has been received;
receiving, at the device driver and in response to sending the notification, a public key as stored by the non-privileged component;
encrypting, by the device driver, the information using the public key to generate encrypted information; and
providing, by the device driver, the encrypted information to the non-privileged component for use by a service provider in processing an electronic payment.

### Claim 2 (depends on 1)

The method of claim 1, wherein the information comprises payment instrument information.

### Claim 3 (depends on 1)

The method of claim 1, further comprising decoding the information before encrypting the information.

### Claim 4 (depends on 1)

The method of claim 1, wherein communicating with the payment reader comprises communicating with a contactless reader that is embedded in the computing device.

### Claim 5 (depends on 1)

The method of claim 1, wherein communicating with the payment reader comprises communicating with a near-field communications (NFC) reader or a radio-frequency identification (RFID) reader that is embedded in the computing device.

### Claim 6 (depends on 1)

The method of claim 1, wherein providing the encrypted information comprises providing the encrypted information to a point-of-sale (POS) application that has been installed on the computing device.

### Claim 7 (depends on 1)

The method of claim 1, wherein receiving the public key comprises receiving the public key from a point-of-sale (POS) application that has been installed on the computing device.

### Claim 8 (depends on 1)

The method of claim 1, wherein a protected operating system kernel is configured to allow end-user installations of application programs on the computing device.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
receiving a security policy, the security policy comprising trust criteria and instructions for enforcing the security policy;
storing, by the computing device, the security policy in memory;
collecting, by the computing device, device data; and
determining by the computing device and based at least in part on the device data, that the trust criteria is satisfied,
wherein the device driver provides the encrypted information to the non-privileged component for use by the service provider in processing the electronic payment based at least in part on determining the trust criteria is satisfied.

### Claim 10 (depends on 9)

The method of claim 9, wherein the trust criteria specifies one or more conditions including:
a device property;
an expected value of the device property;
an operating mode associated with the computing device;
a command to be executed by:
the computing device;
an operating system of the computing device; or
other device software; and
an expected result of the command.

### Claim 11 (depends on 9)

The method of claim 9, wherein the device data comprises one or more conditions including:
a presence of one or more software components;
an absence of the one or more software components;
whether a particular software component is currently executing;
an operating mode of the computing device;
filesystem information including:
file presence;
file sizes; and
file checksums;
software information, including a version number; and
hardware information including identification information of peripheral devices associated with or connected to the computing device.

### Claim 12

A computing device comprising:
one or more processors; and
a device driver for a payment reader associated with the computing device, the device driver being configured to support a contactless payment and including instructions that, when executed, cause the device driver to perform actions comprising:
receiving, at the device driver, information via the payment reader associated with the computing device;
in response to receiving the information, sending from the device driver to a non-privileged component of the computing device, a notification that the information has been received;
receiving, at the device driver and in response to sending the notification, a public key as stored by the non-privileged component;
encrypting, by the device driver, the information using the public key to generate encrypted information; and
providing, by the device driver, the encrypted information for use by a service provider in processing an electronic payment.

### Claim 13 (depends on 12)

The computing device of claim 12, wherein the device driver is further configured as a privileged component of the computing device, and wherein the non-privileged component comprises a POS application stored in association with the computing device.

### Claim 14 (depends on 12)

The computing device of claim 12, further comprising the payment reader, the payment reader comprising a contactless reader that is embedded in the computing device.

### Claim 15 (depends on 12)

The computing device of claim 12, further comprising an EMV decoder, and wherein the information is coded, the actions further comprising decoding the information using the EMV decoder before encrypting the information.

### Claim 16 (depends on 12)

The computing device of claim 12, wherein the service provider is external to the computing device.

### Claim 17 (depends on 12)

The computing device of claim 12, wherein an operating system kernel associated with the device driver is protected from application programs.

### Claim 18

A system comprising:
one or more processors; and
one or more computer-readable media storing instructions executable by the one or more processors, wherein the instructions, when executed by the one or more processors, cause the system to perform operations comprising:
communicating, by a first component, with a payment reader to receive information;
in response to receiving the information, sending, by the first component and to a second component of a computing device having the first component, a notification that the information has been received;
receiving, by the first component and in response to sending the notification, a public key as stored by the second component;
encrypting, by the first component, the information using the public key to generate encrypted information; and
providing, by the first component, the encrypted information to the second component for use by a service provider in processing an electronic payment.

### Claim 19 (depends on 18)

The system of claim 18, wherein the first component comprises a device driver that is configured as a privileged component of the computing device.

### Claim 20 (depends on 18)

The system of claim 18, wherein the second component is configured as a non-privileged component of the computing device and comprises a POS application stored in association with the computing device.
