Решил создать модуль (C/C++ Addons) для NW.js для работы с Рутокенами и поделиться с сообществом кодом, а так же пригласить вас поучаствовать в этом Open source проекте.
Суть идеи в том, чтобы можно было использовать все возможности Рутокена в NW приложении с помощью чистого и понятного JavaScript, а также этот модуль может быть использован в Node.JS или io.js.
API RutokenJS
Пример использования:
Проект на 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
Суть идеи в том, чтобы можно было использовать все возможности Рутокена в NW приложении с помощью чистого и понятного JavaScript, а также этот модуль может быть использован в Node.JS или io.js.
API RutokenJS
- CKR initialize()
- bool isInitialize()
- CKR finalize()
- object countSlot()
- object getLibInfo()
- object getSlotInfo(int slot)
- object getTokenInfo(int slot)
- object getMechanismList(int slot)
- object getObjectList()
- CKR login(int slot, string pin)
- CKR loguot()
- object random(int size)
- CKR initToken(int slot)
- CKR openSession()
- CKR closeSession()
- CKR closeAllSessions()
- object getSessionInfo()
- CKR getOperationState()
- CKR setOperationState()
Пример использования:
var rutoken = require('./rutoken/rutoken');
var cntSlot = rutoken.countSlot();
console.log('cntSlot: ', cntSlot);
if(cntSlot > 0) {
for(var i=0; i <= cntSlot-1; i++) {
rutoken.getSlotInfo(i, function(data) {
console.log('Slot info #' + i + "\n", data);
});
rutoken.getTokenInfo(i, function(data) {
console.log('Token info #' + i + "\n", data);
});
rutoken.getMechanismList(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