Доступ к считывателю чипов ACS из node.js - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь получить доступ к считывателю микросхем ACS (ACR1252) из ​​node.js, используя библиотеку node-usb.Но кажется, что библиотека действительно требует использования из-за отсутствия документации.До сих пор я распознал устройство и подключился к интерфейсам (только на Mac Linux не работает).При обнаружении чипа устройство выдает <Buffer 50 03> и <Buffer 50 02> при удалении чипа.

Однако при отправке команды для получения серийного номера микросхемы вызов на передачу завершается неудачно с ошибкой undefined.

Пока это мой код:

import usb, { InEndpoint, OutEndpoint } from 'usb';

usb.on('attach', device => {
   device.__open();
   device.__claimInterface(0);

   device.open();

   const ifc = device.interface(0);
   ifc.claim();

   const outEndpoint: OutEndpoint = <OutEndpoint>ifc.endpoints[0];
   const inEndpoint: InEndpoint = <InEndpoint>ifc.endpoints[2];

   inEndpoint.startPoll();
   inEndpoint.on('data', (buffer: Buffer) => {
      console.warn('-- Received data: ', buffer);

      if (buffer.toString('hex') === '5003') {
         console.warn('Chip recognized!');
         outEndpoint.transfer(Buffer.from('FF CA 00 00 00', 'hex'), error => {
            console.warn('transfer error', error);
         });
      }
   });
   inEndpoint.on('error', error => {
      console.warn('error', error);
   });
});

Выходные журналы:

-- Received data:  <Buffer 50 03>
Chip recognized!
transfer error undefined
-- Received data:  <Buffer 50 02>

1 Ответ

0 голосов
/ 12 октября 2018

Вам потребуется реализовать протокол CCID для связи со считывателем смарт-карт (это не так просто, как отправка APDU на конечную точку USB).

Рассмотрите возможность использования node-pcsclite, который предоставляет PC / SC API, который является стандартным способом взаимодействия со считывателями смарт-карт - ваш код будет работать с любым считывателем смарт-карт, поддерживаемым установленными драйверами, и вам не придется внедрять CCID.

См., Например, блог Людовика Руссо .

Удачи в вашем проекте!

...