Commit 8e7087c8 by 周海峰

密钥管理

parent 67d2e764
......@@ -160,3 +160,16 @@ export function downloadZdxlzjceConfig(query) {
})
}
/**
* 国芯加密卡创建参数
* @param {string} query
* @returns
*/
export function createParam(query) {
return request({
url: 'key/manager/createParam',
method: 'get',
params: query
})
}
......@@ -9,21 +9,21 @@
<el-form label-width="120px" label-position="left">
<el-form-item label="密钥索引" required>
<div class="input-group">
<el-input v-model="params.sdkkeyid" placeholder="110" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.sdkkeyid" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* sdkkeyid: SM2加密的密钥索引</div>
</div>
</el-form-item>
<el-form-item label="私钥授权码" required>
<div class="input-group">
<el-input v-model="params.sdkpassword" type="password" placeholder="pass" show-password style="width: 500px" :disabled="!editable" />
<el-input v-model="params.sdkpassword" type="password" placeholder="" show-password style="width: 500px" :disabled="!editable" />
<div class="tip-text">* SDKPassword: SM2加密私钥授权码</div>
</div>
</el-form-item>
<el-form-item label="配置文件" required>
<div class="input-group">
<el-input v-model="params.hsmfiledir" placeholder="/home/ghca/data/" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.hsmfiledir" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="button-group">
<el-button type="primary" @click="downloadTemplate">下载配置模板</el-button>
<el-button type="primary" @click="uploadConfig">上传配置文件</el-button>
......@@ -39,21 +39,21 @@
<el-form label-width="120px" label-position="left">
<el-form-item label="密钥索引" required>
<div class="input-group">
<el-input v-model="params.sdkkeyid" placeholder="110" style="width: 500px;" :disabled="!editable" />
<el-input v-model="params.sdkkeyid" placeholder="" style="width: 500px;" :disabled="!editable" />
<div class="tip-text">SDKKeyid: SM2加密的密钥索引</div>
</div>
</el-form-item>
<el-form-item label="私钥授权码" required>
<div class="input-group">
<el-input v-model="params.sdkpassword" type="password" placeholder="****" show-password style="width: 500px;" :disabled="!editable" />
<el-input v-model="params.sdkpassword" type="password" placeholder="" show-password style="width: 500px;" :disabled="!editable" />
<div class="tip-text">SDKPassword: SM2加密私钥授权码</div>
</div>
</el-form-item>
<el-form-item label="配置文件" required>
<div class="input-group">
<el-input v-model="params.hsmfiledir" placeholder="/home/ghca/data/" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.hsmfiledir" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="button-group">
<el-button type="primary" @click="downloadTemplate">下载配置模板</el-button>
<el-button type="primary" @click="uploadConfig">上传配置文件</el-button>
......@@ -64,7 +64,7 @@
<el-form-item label="客户端证书" required>
<div class="input-group">
<el-input v-model="params.keystoredir" placeholder="/home/ghca/data/" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.keystoredir" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="button-group">
<el-button type="primary" @click="uploadCert('client')">上传证书</el-button>
</div>
......@@ -74,7 +74,7 @@
<el-form-item label="CA证书" required>
<div class="input-group">
<el-input v-model="params.truststoredir" placeholder="/home/ghca/data/" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.truststoredir" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="button-group">
<el-button type="primary" @click="uploadCert('ca')">上传证书</el-button>
</div>
......@@ -89,55 +89,55 @@
<el-form label-width="120px" label-position="left">
<el-form-item label="权限密码" required>
<div class="input-group">
<el-input v-model="params.password" placeholder="110" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.cphpwd" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* Ccore.PhKeyHandle.password</div>
</div>
</el-form-item>
<el-form-item label="比特值" required>
<div class="input-group">
<el-input v-model="params.bits" placeholder="pass" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.ecccipherbits" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* ECCCipher.bits</div>
</div>
</el-form-item>
<el-form-item label="X向量" required>
<div class="input-group">
<el-input v-model="params.x" placeholder="/home/ghca/data/" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.ecccipherx" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* ECCCipher.X</div>
</div>
</el-form-item>
<el-form-item label="Y向量" required>
<div class="input-group">
<el-input v-model="params.y" placeholder="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.eccciphery" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* ECCCipher.Y</div>
</div>
</el-form-item>
<el-form-item label="哈希值" required>
<div class="input-group">
<el-input v-model="params.m" placeholder="0, 27, 28, 35, 90, -3, -128, 76, -117, -31, 86" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.ecccipherm" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* ECCCipher.M</div>
</div>
</el-form-item>
<el-form-item label="密钥密文" required>
<div class="input-group">
<el-input v-model="params.c" placeholder="-18, 92, 111, -108, 103, -78, 28, 59, 67, -5" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.ecccipherc" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* ECCCipher.C</div>
</div>
</el-form-item>
<el-form-item label="向量长度" required>
<div class="input-group">
<el-input v-model="params.l" placeholder="16" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.ecccipherl" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* ECCCipher.L</div>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary">参数生成</el-button>
<el-button type="primary" @click="generateParams">参数生成</el-button>
<span class="tip-text" style="margin-left: 16px;">* 点击自动带入加密卡的相关参数</span>
</el-form-item>
</el-form>
......@@ -148,84 +148,84 @@
<el-form label-width="120px" label-position="left">
<el-form-item label="主键" required>
<div class="input-group">
<el-input v-model="params.tid" placeholder="110" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.credtid" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.credential.tid: 加密机设备ID</div>
</div>
</el-form-item>
<el-form-item label="访问密钥" required>
<div class="input-group">
<el-input v-model="params.credaccesskey" type="password" placeholder="****" show-password style="width: 500px" :disabled="!editable" />
<el-input v-model="params.credaccesskey" type="password" placeholder="" show-password style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.credential.credaccesskey: 加密机设备密码</div>
</div>
</el-form-item>
<el-form-item label="私钥" required>
<div class="input-group">
<el-input v-model="params.secretkey" type="password" placeholder="************" show-password style="width: 500px" :disabled="!editable" />
<el-input v-model="params.credsecretkey" type="password" placeholder="" show-password style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.credential.secretkey: 私钥</div>
</div>
</el-form-item>
<el-form-item label="序列" required>
<div class="input-group">
<el-input v-model="params.iv" placeholder="1,2,3,4,5,6,7,8,9,8,7,6," style="width: 500px" :disabled="!editable" />
<el-input v-model="params.crediv" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.credential.iv: 序列</div>
</div>
</el-form-item>
<el-form-item label="协议" required>
<div class="input-group">
<el-input v-model="params.protocol" placeholder="http" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.credprotocol" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.credential.protocol: 协议</div>
</div>
</el-form-item>
<el-form-item label="地址" required>
<div class="input-group">
<el-input v-model="params.host" placeholder="kotest.gh--truststoredir.com" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.credhost" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.credential.host: 地址</div>
</div>
</el-form-item>
<el-form-item label="端口" required>
<div class="input-group">
<el-input v-model="params.credport" placeholder="18180" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.credport" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.credential.credport: 端口</div>
</div>
</el-form-item>
<el-form-item label="主密钥" required>
<div class="input-group">
<el-input v-model="params.keyid" placeholder="5984eba--2884--4ef7--a0c" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.keyid" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.keyid.keyid</div>
</div>
</el-form-item>
<el-form-item label="密钥的类型" required>
<div class="input-group">
<el-input v-model="params.keyspec" placeholder="SM4" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.keyspec" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.keyid.keyspec</div>
</div>
</el-form-item>
<el-form-item label="密钥用途" required>
<div class="input-group">
<el-input v-model="params.keyusage" placeholder="ENCRYPT_DECRYPT" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.keyusage" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.keyid.keyusage</div>
</div>
</el-form-item>
<el-form-item label="密钥来源" required>
<div class="input-group">
<el-input v-model="params.origin" placeholder="KMS" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.origin" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.keyid.origin</div>
</div>
</el-form-item>
<el-form-item label="保护级别" required>
<div class="input-group">
<el-input v-model="params.protectionlevel" placeholder="HSM" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.protectionlevel" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* kms.keyid.protectionlevel</div>
</div>
</el-form-item>
......@@ -237,42 +237,42 @@
<el-form label-width="120px" label-position="left">
<el-form-item label="协议" required>
<div class="input-group">
<el-input v-model="params.protocol" placeholder="110" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.protocol" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* thkms.protocol</div>
</div>
</el-form-item>
<el-form-item label="主机" required>
<div class="input-group">
<el-input v-model="params.host" placeholder="pass" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.thhost" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* thkms.host</div>
</div>
</el-form-item>
<el-form-item label="端口" required>
<div class="input-group">
<el-input v-model="params.credport" placeholder="/home/ghca/data/" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.thport" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* thkms.credport</div>
</div>
</el-form-item>
<el-form-item label="应用ID" required>
<div class="input-group">
<el-input v-model="params.appId" placeholder="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.appid" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* thkms.appId</div>
</div>
</el-form-item>
<el-form-item label="主密钥" required>
<div class="input-group">
<el-input v-model="params.keyid" placeholder="0, 27, 28, 35, 90, -3, -128, 76, -117, -31, 86" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.keyid" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* thkms.keyid</div>
</div>
</el-form-item>
<el-form-item label="私钥证书" required>
<div class="input-group">
<el-input v-model="params.sm2pri" placeholder="-18, 92, 111, -108, 103, -78, 28, 59, 67, -5" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.keystoredir" placeholder="" style="width: 500px" :disabled="!editable" />
<el-button type="primary" @click="uploadCert('sm2')">上传证书</el-button>
<div class="tip-text">* 类似sm2pri.pkcs8.der 证书上传</div>
</div>
......@@ -280,7 +280,7 @@
<el-form-item label="公钥证书" required>
<div class="input-group">
<el-input v-model="params.sm2pub" placeholder="16" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.truststoredir" placeholder="" style="width: 500px" :disabled="!editable" />
<el-button type="primary" @click="uploadCert('sm2pub')">上传证书</el-button>
<div class="tip-text">* 类似sm2pub.cer 证书上传</div>
</div>
......@@ -293,35 +293,35 @@
<el-form label-width="120px" label-position="left">
<el-form-item label="IP" required>
<div class="input-group">
<el-input v-model="params.ip" placeholder="110" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.ip" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* IP</div>
</div>
</el-form-item>
<el-form-item label="端口" required>
<div class="input-group">
<el-input v-model="params.port" placeholder="pass" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.port" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* 端口</div>
</div>
</el-form-item>
<el-form-item label="密码" required>
<div class="input-group">
<el-input v-model="params.password" type="password" placeholder="********" show-password style="width: 500px" :disabled="!editable" />
<el-input v-model="params.password" type="password" placeholder="" show-password style="width: 500px" :disabled="!editable" />
<div class="tip-text">* 密码</div>
</div>
</el-form-item>
<el-form-item label="算法类型" required>
<div class="input-group">
<el-input v-model="params.algorithm" placeholder="SM4" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.salg" placeholder="SM4" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* 算法类型</div>
</div>
</el-form-item>
<el-form-item label="密钥号" required>
<div class="input-group">
<el-input v-model="params.keyNo" placeholder="0, 27, 28, 35, 90, -3, -128, 76, -117, -31, 83, 84, 46, 61, -97, -92, 120, -19, 46, -121, -27, -107, -58, 90, 118, 0, 6, 105, 68, -41, 96, 30" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.keynum" placeholder="" style="width: 500px" :disabled="!editable" />
<div class="tip-text">* 密钥号</div>
</div>
</el-form-item>
......@@ -333,7 +333,7 @@
<el-form label-width="120px" label-position="left">
<el-form-item label="配置文件" required>
<div class="input-group">
<el-input v-model="params.configPath" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.zdxlzjcedir" style="width: 500px" :disabled="!editable" />
<el-button type="primary" @click="downloadTemplate">下载配置模板</el-button>
<el-button type="primary" @click="uploadConfig">上传配置文件</el-button>
</div>
......@@ -341,7 +341,7 @@
<el-form-item label="用户证书路径">
<div class="input-group">
<el-input v-model="params.certsPath" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.certspem" style="width: 500px" :disabled="!editable" />
<el-button type="primary" @click="uploadCert('certs')">上传证书</el-button>
<div class="tip-text">* certs.pem</div>
</div>
......@@ -349,7 +349,7 @@
<el-form-item label="用户密钥路径">
<div class="input-group">
<el-input v-model="params.keyPath" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.sigkeypem" style="width: 500px" :disabled="!editable" />
<el-button type="primary" @click="uploadCert('sigkey')">上传证书</el-button>
<div class="tip-text">* sig.key.pem</div>
</div>
......@@ -357,7 +357,7 @@
<el-form-item label="服务端CA证书路径">
<div class="input-group">
<el-input v-model="params.caPath" style="width: 500px" :disabled="!editable" />
<el-input v-model="params.cacrtpem" style="width: 500px" :disabled="!editable" />
<el-button type="primary" @click="uploadCert('ca')">上传证书</el-button>
<div class="tip-text">* ca.crt.pem</div>
</div>
......@@ -417,6 +417,10 @@ export default {
}
},
methods: {
// 生成国芯加密卡参数
generateParams() {
this.$emit('generate-params')
},
// 下载配置模板
downloadTemplate() {
this.$emit('download-template')
......
......@@ -43,6 +43,7 @@
@download-template="handleDownloadTemplate"
@upload-config="handleUploadConfig"
@upload-cert="handleUploadCert"
@generate-params="generateParams"
/>
</div>
</div>
......@@ -90,7 +91,7 @@
</template>
<script>
import { queryKeys, showKeyParams, editIsUse, testCallKey, saveKeyParams, uploadHsmConfig} from "@/api/ruleConfig/keyManagement.js"
import { queryKeys, showKeyParams, editIsUse, testCallKey, saveKeyParams, uploadHsmConfig, createParam} from "@/api/ruleConfig/keyManagement.js"
import ParamsConfig from './components/ParamsConfig.vue'
/**
......@@ -309,6 +310,19 @@ export default {
this.uploadLoading = false;
}
},
generateParams() {
// TODO: 实现生成国芯加密卡参数的逻辑
this.$modal.msgSuccess('开始生成国芯加密卡参数')
createParam({ cphpwd: this.configParams.cphpwd }).then(res => {
if (res.code === 'POP_00014') {
this.$modal.msgSuccess('生成成功')
} else {
this.$modal.msgError(res.msg || '生成失败')
}
}).catch(() => {
this.$modal.msgError('生成异常')
})
}
}
}
</script>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论