diff --git a/README.md b/README.md index f99d08c..e6f171d 100644 --- a/README.md +++ b/README.md @@ -494,3 +494,15 @@ example only encrypt API const responseText = resp.data; ``` +# rsapadingtype parameter value + +1. open modem web-ui : ```http://192.168.8.1``` +2. open web console on your browser (Chrome Ctrl+Shift+I) +3. open tab console +4. execute command +``` +EMUI.LoginStateController.rsapadingtype +``` + + + diff --git a/docs/rsapadingtype.png b/docs/rsapadingtype.png new file mode 100644 index 0000000..7e81237 Binary files /dev/null and b/docs/rsapadingtype.png differ diff --git a/index.ts b/index.ts index d5b008d..b9f2981 100644 --- a/index.ts +++ b/index.ts @@ -11,6 +11,7 @@ import { sendMessage } from "./src/ListSMS"; import {controlMobileData, reconnect, status} from "./src/MobileData"; +const huawei = require('./jslib/public'); // @ts-ignore yargs(hideBin(process.argv)) @@ -36,6 +37,7 @@ yargs(hideBin(process.argv)) type: "string", }) }, async (argv) => { + huawei.publicKey.rsapadingtype=argv.rsapadingtype||"1"; await login(argv.url, argv.username, argv.password); try { const sessionData = await startSession(argv.url); @@ -72,7 +74,8 @@ yargs(hideBin(process.argv)) default: 'none' }) }, async (argv) => { - await login(argv.url, argv.username, argv.password); + huawei.publicKey.rsapadingtype=argv.rsapadingtype||"1"; + await login(argv.url, argv.username, argv.password); try { const sessionData = await startSession(argv.url); switch (argv.exportFormat) { @@ -159,6 +162,7 @@ yargs(hideBin(process.argv)) default: 'none' }) }, async (argv) => { + huawei.publicKey.rsapadingtype=argv.rsapadingtype||"1"; await login(argv.url, argv.username, argv.password); try { const sessionData = await startSession(argv.url); @@ -212,6 +216,7 @@ yargs(hideBin(process.argv)) default: false }) }, async (argv) => { + huawei.publicKey.rsapadingtype=argv.rsapadingtype||"1"; await login(argv.url, argv.username, argv.password); try { const sessionData = await startSession(argv.url); @@ -261,6 +266,7 @@ yargs(hideBin(process.argv)) default: 'none' }) }, async (argv) => { + huawei.publicKey.rsapadingtype=argv.rsapadingtype||"1"; await login(argv.url, argv.username, argv.password); try { const sessionData = await startSession(argv.url); @@ -304,6 +310,7 @@ yargs(hideBin(process.argv)) type: 'string' }) }, async (argv: any) => { + huawei.publicKey.rsapadingtype=argv.rsapadingtype||"1"; await login(argv.url, argv.username, argv.password); try { const sessionData = await startSession(argv.url); @@ -331,6 +338,7 @@ yargs(hideBin(process.argv)) describe: 'change mobile data to on,off or reconnect', }) }, async (argv: any) => { + huawei.publicKey.rsapadingtype=argv.rsapadingtype||"1"; await login(argv.url, argv.username, argv.password); try { const sessionData = await startSession(argv.url); @@ -374,6 +382,7 @@ yargs(hideBin(process.argv)) default: 'none' }) }, async (argv: any) => { + huawei.publicKey.rsapadingtype=argv.rsapadingtype||"1"; await login(argv.url, argv.username, argv.password); try { const sessionData = await startSession(argv.url); @@ -396,9 +405,9 @@ yargs(hideBin(process.argv)) await logout(argv.url); } }) - // .option('verbose', { - // alias: 'v', - // type: 'boolean', - // description: 'Run with verbose logging' - // }) + .option('rsapadingtype', { + type: 'string', + description: 'rsapadingtype, to check your run in web-console: MUI.LoginStateController.rsapadingtype', + default:'1' + }) .parse() diff --git a/jslib/public.js b/jslib/public.js index daa8773..d9e91af 100644 --- a/jslib/public.js +++ b/jslib/public.js @@ -6,6 +6,7 @@ const CryptoJS = require('crypto-js'); const {RSAKey} = require('./rsa'); const publicKey = { publicKey:null, + rsapadingtype:"1", }; const publicSession = { login:'0', @@ -186,19 +187,19 @@ async function doRSAEncrypt(session,encstring) { rsa.setPublic(gEncPublickey.n, gEncPublickey.e); var encStr = base64encode(encstring); var num = encStr.length / 245; - // if (EMUI.LoginStateController.rsapadingtype === '1') { - num = encStr.length / 214; - // } + if (publicKey.rsapadingtype === '1') { + num = encStr.length / 214; + } var restotal = ''; var rsan = gEncPublickey.n; for (var i = 0; i < num; i++) { - // if (EMUI.LoginStateController.rsapadingtype === '1') { + if (publicKey.rsapadingtype === '1') { var encdata = encStr.substr(i * 214, 214); res = rsa.encryptOAEP(encdata); - // } else { - // var encdata = encStr.substr(i * 245, 245); - // res = rsa.encrypt(encdata); - // } + } else { + var encdata = encStr.substr(i * 245, 245); + res = rsa.encrypt(encdata); + } if (res.length !== rsan.length) { i--; continue; diff --git a/package.json b/package.json index 1c9c0b4..c9c6441 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "huawei-hilink", - "version": "1.1.3", + "version": "1.1.4", "description": "huawei-hilink client", "main": "index.js", "scripts": {