新版 ukey 问题调试

This commit is contained in:
cheney
2026-04-30 16:29:57 +08:00
commit 917af8fc32
10 changed files with 5261 additions and 0 deletions
+351
View File
@@ -0,0 +1,351 @@
<!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>