修正quickcomposer对称加密和非对称加密的声明文件

This commit is contained in:
fofolee
2025-02-15 13:31:26 +08:00
parent 02f4b2f132
commit d239953125
2 changed files with 62 additions and 27 deletions

View File

@@ -54,7 +54,7 @@
<script> <script>
import { defineAsyncComponent, ref, computed } from "vue"; import { defineAsyncComponent, ref, computed } from "vue";
import CommandConfig from "./editor/CommandConfig.vue"; import CommandConfig from "components/editor/CommandConfig.vue";
import CommandLanguageBar from "components/editor/CommandLanguageBar"; import CommandLanguageBar from "components/editor/CommandLanguageBar";
import EditorTools from "components/editor/EditorTools"; import EditorTools from "components/editor/EditorTools";
import CommandRunResult from "components/CommandRunResult"; import CommandRunResult from "components/CommandRunResult";
@@ -81,7 +81,6 @@ const CodeEditor = defineAsyncComponent({
timeout: 3000, timeout: 3000,
}); });
// TODO: 对称加密声明
export default { export default {
components: { components: {
CodeEditor, CodeEditor,

View File

@@ -993,41 +993,77 @@ interface quickcomposerApi {
* 对称加密 * 对称加密
* @param config 加密配置 * @param config 加密配置
* @param config.text 要加密的文本 * @param config.text 要加密的文本
* @param config.key 密钥 * @param config.algorithm 加密算法AES, SM4
* @param config.algorithm 加密算法aes-128-cbc, aes-192-cbc, aes-256-cbc, des-cbc, des3-cbc * @param config.mode 操作模式CBC, ECB, GCM (GCM仅AES支持)
* @param config.mode 操作模式encrypt-加密decrypt-解密 * @param config.padding AES填充方式Pkcs7, NoPadding, Iso97971, AnsiX923, Iso10126, ZeroPadding
* @param config.encoding 输出编码base64, hex * SM4填充方式Pkcs#7, None
* @param config.key 密钥配置
* @param config.key.value 密钥值
* @param config.key.codec 密钥编码Utf8, Base64, Hex
* @param config.keyLength 密钥长度128, 192, 256 (仅AES支持192/256)
* @param config.operation 操作类型encrypt-加密decrypt-解密
* @param config.format 输出格式Base64, Hex
* @param config.iv IV配置(ECB模式不需要)
* @param config.iv.value IV值
* @param config.iv.codec IV编码Utf8, Base64, Hex
*/ */
symmetricCrypto(config: { symmetricCrypto(config: {
text: string; text: string;
key: string; algorithm: "AES" | "SM4";
algorithm: mode?: "CBC" | "ECB" | "GCM";
| "aes-128-cbc" padding?:
| "aes-192-cbc" | "Pkcs7"
| "aes-256-cbc" | "NoPadding"
| "des-cbc" | "Iso97971"
| "des3-cbc"; | "AnsiX923"
mode: "encrypt" | "decrypt"; | "Iso10126"
encoding?: "base64" | "hex"; | "ZeroPadding"
}): string; | "Pkcs#7"
| "None";
key: {
value: string;
codec: "Utf8" | "Base64" | "Hex";
};
keyLength?: 128 | 192 | 256;
operation?: "encrypt" | "decrypt";
format?: "Base64" | "Hex";
iv?: {
value: string;
codec: "Utf8" | "Base64" | "Hex";
};
}): string | { enc: string; tag: string }; // GCM模式返回包含tag的对象
/** /**
* 非对称加密 * 非对称加密
* @param config 加密配置 * @param config 加密配置
* @param config.text 要加密的文本 * @param config.text 要加密/解密的文本
* @param config.key 密钥(公钥或私钥) * @param config.algorithm 加密算法SM2, RSA
* @param config.algorithm 加密算法rsa, sm2 * @param config.operation 操作类型encrypt-加密decrypt-解密
* @param config.mode 操作模式encrypt-加密decrypt-解密sign-签名verify-验签 * @param config.format 输出格式Base64, Hex
* @param config.encoding 输出编码base64, hex * @param config.publicKey 公钥配置(加密时必需)
* @param config.padding 填充方式pkcs1, pkcs1_oaep * @param config.publicKey.key 公钥值
* @param config.publicKey.codec 公钥编码Pem, Hex (SM2仅支持HexRSA仅支持Pem)
* @param config.privateKey 私钥配置(解密时必需)
* @param config.privateKey.key 私钥值
* @param config.privateKey.codec 私钥编码Pem, Hex (SM2仅支持HexRSA仅支持Pem)
* @param config.padding RSA填充方式RSAES-PKCS1-V1_5 (仅RSA支持)
* @param config.cipherMode SM2加密模式0-C1C2C3, 1-C1C3C2 (仅SM2支持默认1)
*/ */
asymmetricCrypto(config: { asymmetricCrypto(config: {
text: string; text: string;
key: string; algorithm: "SM2" | "RSA";
algorithm: "rsa" | "sm2"; operation: "encrypt" | "decrypt";
mode: "encrypt" | "decrypt" | "sign" | "verify"; format?: "Base64" | "Hex";
encoding?: "base64" | "hex"; publicKey?: {
padding?: "pkcs1" | "pkcs1_oaep"; key: string;
codec: "Pem" | "Hex";
};
privateKey?: {
key: string;
codec: "Pem" | "Hex";
};
padding?: "RSAES-PKCS1-V1_5";
cipherMode?: 0 | 1;
}): string; }): string;
/** /**