IP Library › Granted Patent US 7,726,568
Granted Patent B2
US 7,726,568 · App. 11/688,935 · Granted Jun 1, 2010

Smart card session optimization

Assignee: Research In Motion Limited
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 7,726,568
App. No.
11/688,935
Granted
Jun 1, 2010
Kind
B2
Abstract

A method is provided for facilitating communications between a computer device and a smart card reader having an associated smart card. The computer device includes a smart card resource manager and a smart card reader service, the smart card reader service acting as a relay for commands between the smart card resource manager and the smart card reader. The reader sends multiple commands based on the state of the smart card prior to receiving the commands.

Claims (30)

1. A method of facilitating communications between a computer device and a smart card reader having an associated smart card, the computer device including a smart card resource manager and a smart card reader service, the smart card reader service acting as a relay for commands between the smart card resource manager and the smart card reader, the method comprising the smart card reader service:

(a) receiving from the smart card resource manager a first command for placing the smart card in a first state and relaying the first command to the smart card reader;

(b) receiving a second command from the smart card resource manager for placing the smart card into a second state and a third command from the smart card resource manager for placing the smart card into the first state; and

(c) determining if the smart card was in the first state prior to receiving the second command, and (i) if the smart card is determined to have been in the first state then forgoing relaying the second command and the third command to the smart card reader, and (ii) if the smart card is not determined to have been in the first state, then relaying the second command and the third command to the smart card reader.

2. The method of claim 1 wherein determining if the smart card was in the first state prior to receiving the second command comprises determining if any smart card state altering commands were relayed to the smart card reader between relaying the first command to the smart card reader and receiving the second command.

3. The method of claim 2 wherein the smart card reader service will determine that a smart card state altering command has been relayed if any application protocol data unit (APDU) was received from the smart card resource manager between relaying the first command to the smart card reader and receiving the second command.

4. The method of claim 2 wherein determining if a smart card altering command has been relayed comprises comparing any APDU received from the smart card resource manager between relaying the first command to the smart card reader and receiving the second command with a list of known APDUs and determining in dependence thereon if the received APDU is a smart card altering command.

5. The method of claim 2 wherein (c) further comprises determining if the third command is received within a predetermined time duration of the second command, and forgoing relaying the second command and the third command to the smart card reader occurs only if the third command is received within the predetermined time duration of the second command, and if the third command is not received within the predetermined time duration of the second command then the second and third commands are relayed to the smart card reader.

6. The method of claim 1 wherein the first command and the third command are each cold reset commands, the first state is a reset state, and the second command is a power off command.

7. The method of claim 6 comprising receiving at the computer device a smart card insert message from the smart card reader and providing the first cold reset command to the smart card reader service in response to the received smart card insert message.

8. The method of claim 1 wherein the smart card reader service relays commands to the smart card reader using a wireless communications link.

9. The method of claim 1 wherein the smart card reader service relays commands to the smart card reader through a Bluetooth API (Application Programming Interface) installed on the computer device.

10. The method of claim 1 wherein the second command and the third command are received by the smart card reader service without any intervening commands.

11. A computer device for communicating over a wireless communications link with a smart card reader having an associated smart card, the computer device comprising:

a smart card resource manager for providing commands for the smart card reader; and

a smart card reader service for selectively relaying and filtering commands received from the smartcard resource manager for the smart card reader, the smart card reader service being configured for:

(a) receiving from the smart card resource manager a first command for placing the smart card in a first state and relaying the first command to the smart card reader;

(b) receiving a second command from the smart card resource manager for placing the smart card into a second state and a third command from the smart card resource manager for placing the smart card into the first state; and

(c) determining if the smart card was in the first state prior to receiving the second command, and (i) if the smart card is determined to have been in the first state then forgoing relaying the second command and the third command to the smart card reader, and (ii) if the smart card is not determined to have been in the first state, then relaying the second command and the third command to the smart card reader.

12. The device of claim 11 wherein the smart card reader service is configured for determining if the smart card was in the first state prior to receiving the second command by determining if any smart card state altering commands were relayed to the smart card reader between relaying the first command to the smart card reader and receiving the second command.

13. The device of claim 12 wherein the smart card reader service is configured to determine that a smart card state altering command has been relayed if any application protocol data unit (APDU) was received from the smart card resource manager between relaying the first command to the smart card reader and receiving the second command.

14. The device of claim 12 wherein the smart card reader service is configured for determining if a smart card altering command has been relayed by comparing any APDU received from the smart card resource manager between relaying the first command to the smart card reader and receiving the second command with a list of known APDUs and determining in dependence thereon if the received APDU is a smart card altering command.

15. The device of claim 11 the smart card reader service is configured for determining if the third command is received within a predetermined time duration of the second command, and to forgo relaying the second command and the third command to the smart card reader occurs only if the third command is received within the predetermined time duration of the second command, and if the third command is not received within the predetermined time duration of the second command then to relay the second and third commands to the smart card reader.

16. The device of claim 11 wherein the first command and the third command are each cold reset commands, the first state is a reset state, and the second command is a power off command.

17. The device of claim 16 wherein the smart card resource manager produces the first command after the device receives a smart card insert message from the smart card reader.

18. The device of claim 11 wherein the smart card resource manager provides the second command and the third command to the smart card reader service without any intervening commands.

19. The device of claim 11 comprising:

a smart card reader driver through which the smart card reader service receives commands from the smart card resource manager; and

memory that is divided into a user space and a kernel space, with code for implementing the smart card reader service and the smart card resource manager residing in the user space and code for implementing the smart card reader driver residing in the kernel space.

20. A computer program product comprising a computer readable medium carrying instructions for a computer processor to perform the method of claim 1 .

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Feb 23, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 037893/0239 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2007
From: SINGH, RAVI; DAVIS, DINAH; ADAMS, NEIL
To: RESEARCH IN MOTION LIMITED
Reel/Frame 019387/0510 →
Continuity (1)
Related Publication 20080230609A1 · Sep 25, 2008