Rokato. CosFm2

复旦FMCOS2.0协议COS功能

Constructor

new CosFm2(cos7816)

构造CosFm2操作对象

Parameters:
NameTypeDescription
cos7816Cos7816

Cos7816操作对象

Members

(static, readonly) FileType :number

FMCOS文件类型

Type:
  • number
Properties
NameTypeDescription
DFnumber

目录空间文件

KEYnumber

安全密钥文件

PBOCnumber

PBOC钱包文件

BINnumber

普通数据文件

FIXnumber

定长记录文件

LOOPnumber

循环记录文件

TLVnumber

变长记录文件

(static, readonly) KeyType :number

FMCOS密钥类型

Type:
  • number
Properties
NameTypeDescription
NEWnumber

添加密钥专用

CCKnumber

卡片主控密钥

ACKnumber

应用主控密钥

EAKnumber

外部认证密钥

AMKnumber

应用维护密钥

IAK_ENCnumber

内部加密密钥

IAK_DECnumber

内部解密密钥

IAK_MACnumber

内部校验密钥

IAK_TACnumber

交易认证密钥

TKnumber

交易认证密钥

PUKnumber

口令解锁密钥

RPKnumber

重置口令密钥

PINnumber

口令认证密钥

UOKnumber

修改透支密钥

UKnumber

圈提减款密钥

PKnumber

消费取现密钥

LKnumber

圈存加款密钥

Methods

(async) addPin(id, pin, use, pow, err) → {Promise}

添加用户PIN字符口令

Parameters:
NameTypeDescription
idnumber

密钥标识ID 注意0x00主口令支持解锁重置错误计数

pinstring

新添加的字符口令 不能小于3和超过12

usePower

使用所需权值 参考Power方法生成

pownumber

提升的权值 范围0~15

errKeyErr

错误计数 参考KeyErr方法生成

Returns:

err/msg + retval

Type: 
Promise

(async) createADF(aid, fid, size, create, erase, sfi) → {Promise}

创建ADF应用目录文件

Parameters:
NameTypeDefaultDescription
aidstring

十六进制字符串数据 注意如果为空字符则为匿名目录

fidnumber

文件标识符

sizenumber

目录空间大小

createPower

创建文件所需权限 参考Power方法生成

erasePower

擦除目录所需权限 参考Power方法生成

sfinumber21

设定FCI-TMP数据关联BIN短文件标识 默认0x15

Returns:

err/msg + retval

Type: 
Promise

(async) createBin(fid, size, read, write, attr) → {Promise}

创建普通数据文件

Parameters:
NameTypeDescription
fidnumber

文件标识符

sizenumber

数据空间大小

readPower

读取所需权值 参考Power方法生成

writePower

写入所需权值 参考Power方法生成

attrFileAttr

文件安全属性 参考FileAttr方法生成

Returns:

err/msg + retval

Type: 
Promise

(async) createDDF(aid, fid, size, create, erase, sfi) → {Promise}

创建DDF目录空间文件

Parameters:
NameTypeDefaultDescription
aidstring

十六进制字符串数据 注意如果为空字符则为匿名目录

fidnumber

文件标识符

sizenumber

目录空间大小

createPower

创建文件所需权限 参考Power方法生成

erasePower

擦除目录所需权限 参考Power方法生成

sfinumber1

应用AID记录入口短文件SFI标识ID 默认0x01

Returns:

err/msg + retval

Type: 
Promise

(async) createFix(fid, logMax, logLen, read, write, attr) → {Promise}

创建定长记录文件

Parameters:
NameTypeDescription
fidnumber

文件标识符

logMaxnumber

记录最大数量

logLennumber

记录固定长度

readPower

读取所需权值 参考Power方法生成

writePower

写入所需权值 参考Power方法生成

attrFileAttr

文件安全属性 参考FileAttr方法生成

Returns:

err/msg + retval

Type: 
Promise

(async) createKey(size, add, fid) → {Promise}

创建安全密钥文件

Parameters:
NameTypeDefaultDescription
sizenumber

密钥空间大小 参考密钥数量*23

addPower

添加密钥所需权值 参考Power方法生成

fidnumber0

文件标识符 默认密钥文件id必须是0

Returns:

err/msg + retval

Type: 
Promise

(async) createLoop(fid, logMax, logLen, read, write, attr) → {Promise}

创建循环记录文件

Parameters:
NameTypeDescription
fidnumber

文件标识符

logMaxnumber

记录最大数量

logLennumber

记录固定长度

readPower

读取所需权值 参考Power方法生成

writePower

写入所需权值 参考Power方法生成

attrFileAttr

文件安全属性 参考FileAttr方法生成

Returns:

err/msg + retval

Type: 
Promise

(async) createPboc(type, use, sfi) → {Promise}

创建PBOC钱包文件

Parameters:
NameTypeDefaultDescription
typePurseType

钱包类型 参考Rokato.CosPboc2.PurseType

usePower

使用所需权值 参考Power方法生成

sfinumber24

交易循环记录短文件标识ID 默认0x18

Returns:

err/msg + retval

Type: 
Promise

(async) createTlv(fid, size, read, write, attr) → {Promise}

创建变长记录文件

Parameters:
NameTypeDescription
fidnumber

文件标识符

sizenumber

数据空间大小

readPower

读取所需权值 参考Power方法生成

writePower

写入所需权值 参考Power方法生成

attrFileAttr

文件安全属性 参考FileAttr方法生成

Returns:

err/msg + retval

Type: 
Promise

(async) eraseDF() → {Promise}

擦除当前目录空间所有数据

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyAdd(oldType, id, attr, key, use, ren, ver, flag, safe) → {Promise}

设置PBOC圈存密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

vernumber0

定义密钥版本号 可空默认0x00

flagnumber0

定义算法标识 可空默认0x00

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyAuth(oldType, id, attr, key, use, ren, pow, err, safe) → {Promise}

设置外部授权认证密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID 注意0x00为主控密钥可用于后续密钥线路安全添加与修改

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

pownumber

提升的权值 范围0~15

errKeyErr

错误计数 参考KeyErr方法生成

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyDec(oldType, id, attr, key, use, ren, ver, flag, safe) → {Promise}

设置内部解密运算密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

vernumber0

定义密钥版本号 可空默认0x00

flagnumber0

定义算法标识 可空默认0x00

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyEnc(oldType, id, attr, key, use, ren, ver, flag, safe) → {Promise}

设置内部加密运算密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

vernumber0

定义密钥版本号 可空默认0x00

flagnumber0

定义算法标识 可空默认0x00

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyMac(oldType, id, attr, key, use, ren, ver, flag, safe) → {Promise}

设置内部校验运算密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

vernumber0

定义密钥版本号 可空默认0x00

flagnumber0

定义算法标识 可空默认0x00

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyPos(oldType, id, attr, key, use, ren, ver, flag, safe) → {Promise}

设置PBOC消费密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

vernumber0

定义密钥版本号 可空默认0x00

flagnumber0

定义算法标识 可空默认0x00

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyRen(oldType, id, attr, key, use, ren, ver, flag, safe) → {Promise}

设置PBOC修改透支密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

vernumber0

定义密钥版本号 可空默认0x00

flagnumber0

定义算法标识 可空默认0x00

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyReset(oldType, id, attr, key, use, ren, err, safe) → {Promise}

设置重置口令密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

errKeyErr

错误计数 参考KeyErr方法生成

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeySafe(oldType, id, attr, key, use, ren, err, safe) → {Promise}

设置文件线路安全密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

errKeyErr

错误计数 参考KeyErr方法生成

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeySub(oldType, id, attr, key, use, ren, ver, flag, safe) → {Promise}

设置PBOC圈提密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

vernumber0

定义密钥版本号 可空默认0x00

flagnumber0

定义算法标识 可空默认0x00

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyTac(oldType, id, attr, key, use, ren, ver, flag, safe) → {Promise}

设置PBOC交易认证密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

vernumber0

定义密钥版本号 可空默认0x00

flagnumber0

定义算法标识 可空默认0x00

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(async) setKeyUnlock(oldType, id, attr, key, use, ren, err, safe) → {Promise}

设置解锁口令密钥

Parameters:
NameTypeDefaultDescription
oldTypeKeyType

旧密钥类型 参考KeyType 注意不为NEW则为修改密钥

idnumber

密钥标识ID

attrKeyAttr

密钥属性选项 参考KeyAttr方法生成

keyKeyData

新添加或修改的密钥数据对象 参考KeyData方法生成

usePower

使用所需权值 参考Power方法生成

renPower

更改所需权值 参考Power方法生成

errKeyErr

错误计数 参考KeyErr方法生成

safeRfSafenull

线路安全选项 参考RfSafe方法生成 默认忽略 注意未添加主控密钥时无效

Returns:

err/msg + retval

Type: 
Promise

(static) FileAttr(macr, macw, enc, idr, idw)

生成FileAttr文件安全属性对象参数

Parameters:
NameTypeDefaultDescription
macrboolean

是否启用线路保护读

macwboolean

是否启用线路保护写

encboolean

是否启用线路加密写

idrnumber0

读操作使用的线路安全密钥标识ID 默认为0

idwnumber0

写操作使用的线路安全密钥标识ID 默认为0

(static) KeyAttr(enc, mac)

生成KeyAttr密钥安全属性对象参数

Parameters:
NameTypeDescription
encboolean

是否启用线路加密

macboolean

是否启用线路保护

(static) KeyErr(retry, max)

生成KeyErr密钥错误计数参数

Parameters:
NameTypeDefaultDescription
retrynumber15

剩余可重试次数 范围0~15 默认15

maxnumber15

最大可错误次数 范围0~15 默认15

(static) Power(min, max)

生成Power权限控制参数

Parameters:
NameTypeDefaultDescription
minnumber

权值最小要求 范围0~15 注意如果最小要求>最大要求代表权限锁死

maxnumber0

权值最大要求 范围0~15 默认为0=忽略权值最大要求

(static) keyTypeStr(type)

FMCOS密钥类型获取字符串描述

Parameters:
NameTypeDescription
typeKeyType

FMCOS密钥类型 参考Rokato.CosFm2.KeyType