NW.js (Node-Webkit) + Рутокен = RutokenJS (Начало)

вчера в 22:01

Решил создать модуль (addon) NW.js для работы с Рутокенами и поделиться с сообществом кодом, а так же пригласить вас поучаствовать в открытом проекте.

Суть идеи в том, чтобы можно было использовать все возможности Рутокена в NW приложении с помощью чистого и понятного JavaScript, а также этот модуль может быть использован в Node.JS или io.js.

На данный момент реализованы функции PKCS#11

  • fnInitialize (использует: C_GetFunctionList, C_Initialize)
  • fnCountSlot (использует: C_GetSlotList)
  • fnGetSlotInfo (использует: C_GetSlotInfo)
  • fnGetTokenInfo (использует: C_GetTokenInfo)
  • fnGetMechanismList (использует: C_GetMechanismList)

Пример использования:
var rutoken = require('./rutoken/build/Release/rutoken');

var cntSlot = rutoken.fnCountSlot();
console.log('cntSlot: ', cntSlot);

if(cntSlot > 0) {
    for(var i=0; i <= cntSlot-1; i++) {
        rutoken.fnGetSlotInfo(i, function(data) {
            console.log('Slot info #' + i + "\n", data);
        });
        rutoken.fnGetTokenInfo(i, function(data) {
            console.log('Token info #' + i + "\n", data);
        });
        rutoken.fnGetMechanismList(i, function(data) {
            console.log('Mechanism list #' + i + "\n", data);
        });
    }
}

Проект на GitHub: https://github.com/roman-sopov/RutokenJS

Примеры Node addon: https://github.com/nodejs/node-addon-examples
Документация Node addon: https://nodejs.org/api/addons.html
Документация Рутокен SDK: http://developer.rutoken.ru/pages/viewpage.action? pageId=3178534

© Habrahabr.ru