js-rockeyarm
Version:
A javascript library for Feitian ROCKEY ARM dongle.
104 lines (79 loc) • 4.79 kB
JavaScript
import RockeyArm from '../src/index.js'
var dongle = new RockeyArm()
var ret
var i = 0
var item
var index = null
var pid = 'A1AEB604'
console.log('ROCKEY-ARM node.js api test')
ret = dongle.Enum()
if(ret.param === null){
console.log('failed')
}
for (i=0; i<ret.param.length; i++){
item = JSON.parse(ret.param[i])
if(item.productId === pid){
index = i
break
}
}
if (index === null){
console.log('Do not find ROCKEY-ARM Product ID:%s', pid)
}
ret = dongle.Open(index)
console.log('Open ret:',ret)
ret = dongle.VerifyPIN(1, '6ABD0831AA9DB0C3')
console.log('VerifyPIN ret:',ret)
ret = dongle.EccGenPubPriKey(0x0004)
console.log('EccGenPubPriKey ret:', ret)
var eccPrivateKey = ret.param.privateKey
var eccPublicKey = ret.param.publicKey
ret = dongle.RsaGenPubPriKey(0x0003)
console.log('RsaGenPubPriKey ret:', ret)
var privateKey = ret.param.privateKey
var publicKey = ret.param.publicKey
//var privateKey = '0004000001000100D3EABD92AB582984AADFE924162BD3D20C8666CCEAB77939852F3271285340545C2D04B1196DB96A94F5E6B4D25AB70C7AD5569CDCFEBE7A145D60629AC3A75E0B5DFCD724D70C1E4F264E9D22854DFC6122F333CC53361523664456AC44DEDD7F570E7680BDCF634976ADC99C55592E97168C0DC00BC9D9DBC13DD0A27852EB00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006C1677F8DE424A72EB80E7764B84B1369AC2D69E403DB2AC1EFD52BA1ABA53BE738156BA49E108488F8FD8CB73DB67300B5AD321912AB1D6AC9A6FF5FB403E15B00A2C249EB1490BEBF634C8A7830B3CD1FA420798E0DA66B4766E42812303A9ACF70DA57ED0B6E615843BB7B5C190390BEE35627B280B078FFCA93132D0D3290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
//var publicKey = '0004000001000100D3EABD92AB582984AADFE924162BD3D20C8666CCEAB77939852F3271285340545C2D04B1196DB96A94F5E6B4D25AB70C7AD5569CDCFEBE7A145D60629AC3A75E0B5DFCD724D70C1E4F264E9D22854DFC6122F333CC53361523664456AC44DEDD7F570E7680BDCF634976ADC99C55592E97168C0DC00BC9D9DBC13DD0A27852EB0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
console.log(publicKey, privateKey)
ret = dongle.RsaPri(3, 0, '010203040506', 6)
console.log('RsaPri ret:', ret)
var cipher = ret.param.result
var cipherLen = ret.param.len
//var cipher = '5FC025F6D22068B40A1E2C4D889583A3474651957009FACEE4FEC7E160972FE3BF26A3FC1591AF1EB249BC650B4C62C3872BF490F46F615D55EBACA5C92822687C14B9E1802001B0C12A1B5DBC4C2406F71F6A3239BFB632A3E91ED2F6531A751DDD357180A39B64EA64A2C4167C8BAB8E48C0646A2BB337B5687D1A545240A40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
//var cipherLen = 128
ret = dongle.RsaPub(1, publicKey, cipher, cipherLen)
console.log('RsaPub ret:', ret)
ret = dongle.WriteShareMemory('AAAABBBB')
console.log('WriteShareMemory ret:',ret)
ret = dongle.ReadShareMemory()
console.log('ReadShareMemory ret:', ret)
ret = dongle.ReadData(1, 8)
console.log('ReadData ret:',ret)
ret = dongle.WriteData(0, '0102030405060708', 8)
console.log('WriteData ret:',ret)
ret = dongle.GetUTCTime()
console.log('GetUTCTime ret:',ret)
//var deadline = {type: 'hours', time: 3} //设置可用时间3小时
//var deadline = {type: 'nolimit', time: 0} //不限制使用时间
var deadline = {type: 'timestamp', time: new Date(2024,0,1,0,0,0,0).getTime().toString(10)} //设置2024年1月1日0时0分0秒到期
ret = dongle.SetDeadline(deadline)
console.log(ret)
ret = dongle.GetDeadline()
console.log(ret)
//ret = dongle.GenUniqueKey(6, '123456')
console.log('GenUniqueKey ret:',ret)
var fileAttr = {size: 100, readPriv: 1, writePriv: 1}
//ret = dongle.CreateFile(1, 1, fileAttr)
console.log('CreateFile ret:',ret)
ret = dongle.ListFile(1,12)
console.log('ListFile ret:',ret)
ret = dongle.DeleteFile(1, 1)
console.log('DeleteFile ret:',ret)
ret = dongle.RunExeFile(2, '0001020', 32)
console.log('RunExeFile ret:',ret)
ret = dongle.GenRandom(8)
console.log('GenRandom ret:',ret)
ret = dongle.ResetState()
console.log('ResetState ret:',ret)
ret = dongle.Close()
console.log('Close ret:',ret)