352 lines
14 KiB
HTML
352 lines
14 KiB
HTML
<!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>
|