function
signRequest(p) {
if
(!securesignature || !securesignature.signRequest) {
console.error(
'securesignature instance not found, please click homepage first!'
);
return
''
;
}
const clsSecurityGuardParamContext = Java.use(
'com.alibaba.wireless.security.open.SecurityGuardParamContext'
);
const instSecurityGuardParamContext = clsSecurityGuardParamContext.$
new
();
const appKeyField = clsSecurityGuardParamContext.
class
.getDeclaredField(
'appKey'
);
const requestTypeField = clsSecurityGuardParamContext.
class
.getDeclaredField(
'requestType'
);
const paramMapField = clsSecurityGuardParamContext.
class
.getDeclaredField(
'paramMap'
);
appKeyField.setAccessible(
true
);
requestTypeField.setAccessible(
true
);
paramMapField.setAccessible(
true
);
const HashMap = Java.use(
"java.util.HashMap"
);
const paramHashMap = HashMap.$
new
();
const INPUT = `Operation-Type=${p.operationType}&Request-Data=${p.requestData}&Ts=${p.ts}`;
paramHashMap.put(
'INPUT'
, INPUT);
appKeyField.set(instSecurityGuardParamContext,
'SNAIL_APP_KEY_ANDROID'
);
requestTypeField.setInt(instSecurityGuardParamContext, 4);
paramMapField.set(instSecurityGuardParamContext, paramHashMap);
return
securesignature.signRequest(instSecurityGuardParamContext,
''
);
}
rpc.exports = {
signRequest,
};