ukey/html/appmanager.html
2026-04-30 16:29:57 +08:00

352 lines
14 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>SFK测试</title>
<link rel='stylesheet' href="../css/styles.css" />
<script type="text/javascript" src="../fiseckey.js"></script>
<script language="JavaScript">
var dev = 0;
var app = 0;
var con = 0;
var conname = 0;
var flag = 0;
function PrintInfo(info) {
deviceManagerText.value = deviceManagerText.value + info + "\r\n";
document.getElementById("deviceManagerText").scrollTop = document.getElementById("deviceManagerText").scrollHeight;
}
function clearconsole() {
deviceManagerText.value = "";
document.getElementById("deviceManagerText").scrollTop = document.getElementById("deviceManagerText").scrollHeight;
}
function seturl(dev,app,con,conname) {
document.getElementById("indexhtml").href="../index.html?dev="+dev+"&app="+app+"&con="+con+"&conname="+conname;
document.getElementById("devhtml").href="./devicemanager.html?dev="+dev+"&app="+app+"&con="+con+"&conname="+conname;
document.getElementById("authhtml").href="./authmanager.html?dev="+dev+"&app="+app+"&con="+con+"&conname="+conname;
document.getElementById("apphtml").href="./appmanager.html?dev="+dev+"&app="+app+"&con="+con+"&conname="+conname;
document.getElementById("filehtml").href="./filemanager.html?dev="+dev+"&app="+app+"&con="+con+"&conname="+conname;
document.getElementById("containerhtml").href="./containermanager.html?dev="+dev+"&app="+app+"&con="+con+"&conname="+conname;
document.getElementById("servicehtml").href="./service.html?dev="+dev+"&app="+app+"&con="+con+"&conname="+conname;
flag = 1;
}
function decodeurl() {
var url = window.location.href;
var tmp = url.split('?');
var param = tmp[1].split('&');
dev = param[0].split('=')[1];
app = param[1].split('=')[1];
con = param[2].split('=')[1];
conname = param[3].split('=')[1];
}
window.onload=function() {
if(flag != 1)
decodeurl();
seturl(dev,app,con,conname);
}
function reload() {
if(flag != 1)
decodeurl();
seturl(dev,app,con,conname);
}
//function
function ChangeDevAuthKey() {
try {
var authkey = appManage.authKey.value;
var result = SKFKEY.SKF_ChangeDevAuthKey(dev, authkey);
if(result == 0)
PrintInfo("设置成功");
else
PrintInfo("设置失败rev = " + result);
}
catch (e) {
PrintInfo(e.message);
}
}
//16进制转字符串
function hexCharCodeToStr(hexCharCodeStr) {
  var trimedStr = hexCharCodeStr.trim();
  var rawStr =
  trimedStr.substr(0,2).toLowerCase() === "0x"
  ?
  trimedStr.substr(2)
  :
  trimedStr;
  var len = rawStr.length;
  if(len % 2 !== 0) {
    alert("Illegal Format ASCII Code!");
    return "";
  }
  var curCharCode;
  var resultStr = [];
  for(var i = 0; i < len;i = i + 2) {
    curCharCode = parseInt(rawStr.substr(i, 2), 16); // ASCII Code Value
    resultStr.push(String.fromCharCode(curCharCode));
  }
  return resultStr.join("");
}
function DevAuth() {
try {
// var authData = appManage.authKey.value;
var random = SKFKEY.SKF_GenRandom(dev,16);
var hexran = hexCharCodeToStr(random);
var ranarrbase64 = window.btoa(hexran);
var authkeybase64 = window.btoa("1234567812345678");
var result = SKFKEY.SKF_SetSymmKey(dev, authkeybase64, 257);
var sessionkey = result;
var EncryptInitresult = SKFKEY.SKF_EncryptInit(sessionkey,0,0,0);
var Encryptresult = SKFKEY.SKF_Encrypt(sessionkey,ranarrbase64);
var result = SKFKEY.SKF_DevAuth(dev, Encryptresult);
if(result == 0)
PrintInfo("验证成功");
else
PrintInfo("设置失败rev = " + result);
}
catch (e) {
PrintInfo(e.message);
}
}
function CreateApplication() {
try {
var appname = appManage.newappname.value;
var adminpin = appManage.adminpin.value;
var usrpin = appManage.usrpin.value;
var retry = appManage.retrycount.value;
var right = appManage.fileright.value;
var result = SKFKEY.SKF_CreateApplication(dev, appname, adminpin, retry, usrpin, retry, right);
app = result;
seturl(dev,app,con,conname);
PrintInfo("应用句柄:"+result);
}
catch (e) {
PrintInfo(e.message);
}
}
function EnumApplication() {
try {
var result = SKFKEY.SKF_EnumApplication(dev);
PrintInfo(result);
}
catch (e) {
PrintInfo(e.message);
}
}
function DeleteApplication() {
try {
var appname = appManage.appname.value;
var result = SKFKEY.SKF_DeleteApplication(dev, appname);
app = 0;
seturl(dev,app,con,conname);
if(result == 0)
PrintInfo("删除成功");
else
PrintInfo("删除失败rev="+result);
}
catch (e) {
PrintInfo(e.message);
}
}
function OpenApplication() {
try {
var appname = appManage.appname.value;
var result = SKFKEY.SKF_OpenApplication(dev, appname);
app = result;
seturl(dev,app,con,conname);
PrintInfo(result);
}
catch (e) {
PrintInfo(e.message);
}
}
function CloseApplication() {
try {
var result = SKFKEY.SKF_CloseApplication(app);
if(result == 0)
PrintInfo("关闭成功");
else
PrintInfo("关闭失败rev="+result);
}
catch (e) {
PrintInfo(e.message);
}
}
</script>
</head>
<body>
<div="root">
<header>
<div>
<h1 class="title">
SKF FisecKey demo
</h1>
<ul class="menu">
<li>
<a id = indexhtml onclick="reload()" href="../index.html?dev=0&app=0&con=0&conname=0">简介</a>
</li>
<li>
<a id = devhtml onclick="reload()" href="./devicemanager.html?dev=0&app=0&con=0&conname=0">设备管理</a>
</li>
<li>
<a id = apphtml onclick="reload()" href="./appmanager.html?dev=0&app=0&con=0&conname=0" class='active'>应用管理</a>
</li>
<li>
<a id = authhtml onclick="reload()" href="./authmanager.html?dev=0&app=0&con=0&conname=0">访问控制</a>
</li>
<li>
<a id = filehtml onclick="reload()" href="./filemanager.html?dev=0&app=0&con=0&conname=0">文件管理</a>
</li>
<li>
<a id = containerhtml onclick="reload()" href="./containermanager.html?dev=0&app=0&con=0&conname=0">容器管理</a>
</li>
<li>
<a id = servicehtml onclick="reload()" href="./service.html?dev=0&app=0&con=0&conname=0">密码服务</a>
</li>
</ul>
</div>
</header>
<main>
<div class = "form1">
<form name = "appManage">
<div class="form-group">
<!-- <div class="line">
<div class="lineleft">
<label class="labelhead" for="authKey">认证参数</label>
</div>
<div class="lineright">
<input type="text" id="authKey"/>
</div>
</div>
<div class="line-help">
<div class="help-tip">
<p>
认证参数:当修改设备认证密钥时,此框输入设备认证密钥。当进行设备认证时,此框输入认证数据
</p>
</div>
</div>-->
<div class="line">
<div class="lineleft">
<label class="labelhead">认证设备</label>
</div>
<div class="lineright">
||
<input class="btn" type="button" value="设备认证" onclick="DevAuth()"/>
</div>
<!-- <input class="btn" type="button" value="修改设备认证密钥" onclick="ChangeDevAuthKey()" />-->
</div>
<div class="line">
<div class="lineleft">
<label class="labelhead" for="appname">应用名</label>
</div>
<div class="lineright">
<input type="text" id="appname" value="name"/>
</div>
</div>
<div class="line-help">
<div class="help-tip">
<p>
应用名称:需要枚举或输入要管理的应用名
</p>
</div>
</div>
<div class="line">
<input class="btn" type="button" value="枚举应用" onclick="EnumApplication()" />
||
<input class="btn" type="button" value="打开应用" onclick="OpenApplication()" />
<input class="btn" type="button" value="关闭应用" onclick="CloseApplication()" />
||
<input class="btn" type="button" value="删除应用" onclick="DeleteApplication()" />
</div>
<div class="line"><div class="hrline"></div></div>
<div class="line">
<div class="lineleft">
<label class="labelhead" for="newappname">新应用名</label>
</div>
<div class="lineright">
<input type="text" id="newappname"/>
</div>
</div>
<div class="line-help">
<div class="help-tip">
<p>
应用名称:需要创建或删除的应用名称
</p>
</div>
</div>
<div class="line">
<div class="lineleft">
<label class="labelhead" for="usrpin">用户Pin码</label>
</div>
<div class="lineright">
<input type="text" id="usrpin"/>
</div>
</div>
<div class="line">
<div class="lineleft">
<label class="labelhead" for="adminpin">管理Pin码</label>
</div>
<div class="lineright">
<input type="text" id="adminpin"/>
</div>
</div>
<div class="line">
<div class="lineleft">
<label class="labelhead" for="retrycount">重试次数</label>
</div>
<div class="lineright">
<input type="text" id="retrycount"/>
</div>
</div>
<div class="line-help">
<div class="help-tip">
<p>
重试次数:Pin码最大重试次数
</p>
</div>
</div>
<div class="line">
<div class="lineleft">
<label>文件及容器权限</label>
</div>
<div class="lineright">
<input type="radio" id='rightnone' value='0' name = "fileright">
<label for="rightnone">禁止访问</label>
<input type="radio" id='rightuser' value='16' name = "fileright">
<label for="rightuser">操作员</label>
<input type="radio" id='rightadmin' value='1' name = "fileright">
<label for="rightadmin">管理员</label>
<input type="radio" id='righteveryone' value='255' name = "fileright">
<label for="righteveryone">所有人</label>
</div>
</div>
<div class="line">
<input class="btn" type="button" value="创建应用" onclick="CreateApplication()" />
</div>
</div>
</form>
</div>
</main>
</div>
<div class="footer">
<input type="button" class="footclear" value="清空" onclick="clearconsole()" />
<textarea readonly class="footconsole" id="deviceManagerText" rows="8"></textarea>
</div>
</body>
</html>