{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_zqgsuv8rgxwy","handle":"cipherhub-cryptography-toolkit","url":"https://wellknown.network/agents/cipherhub-cryptography-toolkit","links":{"self":"https://wellknown.network/agents/cipherhub-cryptography-toolkit/record.json","html":"https://wellknown.network/agents/cipherhub-cryptography-toolkit","markdown":"https://wellknown.network/agents/cipherhub-cryptography-toolkit/record.md","api":"https://wellknown.network/api/v1/agents/cipherhub-cryptography-toolkit","status":"https://wellknown.network/api/v1/agents/cipherhub-cryptography-toolkit/status","claim":"https://wellknown.network/agents/cipherhub-cryptography-toolkit/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/cipherhub-cryptography-toolkit/claim.json","badge":"https://wellknown.network/agents/cipherhub-cryptography-toolkit/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/cipherhub-cryptography-toolkit/history","tools":"https://wellknown.network/api/v1/agents/cipherhub-cryptography-toolkit/tools"},"ard":{"identifier":"urn:air:tools.cipherhub.cloud:server:cipherhub-cryptography-toolkit","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"CipherHUB Cryptography Toolkit","summary":"Production-grade cryptography toolkit with 31 MCP tools for classical, PQC, and KMS workflows.","description":"Production-grade cryptography toolkit with 31 MCP tools for classical, PQC, and KMS workflows.","publisher":{"name":"bowenerchen","url":null},"homepage":null,"repository":"https://github.com/bowenerchen/CipherHUB-MCP-Server","version":"1.9.4","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://tools.cipherhub.cloud/cipherhub/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-04-30T04:18:04.882713Z","publishedAt":"2026-04-30T04:18:04.882713Z","registryName":"io.github.bowenerchen/cipherhub"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"finance.markets","name":"Markets & Trading","confidence":0.525,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.525,"provenance":"derived"}],"categories":["finance","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-11T00:26:51.772Z","lastProbedAt":"2026-10-11T00:26:51.772Z","statusComputedAt":"2026-10-11T00:29:04.374Z","reliability30d":{"probes":110,"successRate":1,"p50Ms":273,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T00:26:51.772Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":277,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-10T17:29:57.663Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":278,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-10T11:25:00.230Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":246,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-10T04:32:01.038Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":274,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-09T22:27:25.410Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":222,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-09T15:32:19.104Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":233,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-09T09:28:18.473Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":279,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-09T03:23:22.108Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":246,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-08T21:22:51.244Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":256,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-08T14:23:02.327Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":225,"error":null,"detail":{"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"toolCount":55,"toolsHash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","serverName":"cipherhub-mcp","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.11.0","protocolVersion":"2025-03-26"}}],"tools":[{"name":"hello","description":"[utility] 健康检查 / 回显接口。客户端传入 client_msg 字符串，服务端原样回显并附加 server_msg，用于验证 MCP 通道连通性。返回字段：client_msg（回显）、server_msg（服务端附加消息）。"},{"name":"generate_random_data","description":"[random] 使用操作系统 CSPRNG 生成安全随机字节。data_length 指定字节数（1-128），返回 data_in_hex 十六进制字符串。返回字段：data_in_hex（随机数据 Hex 编码）、data_length（实际字节数）。"},{"name":"hash_sum","description":"[hash_digest] 计算消息摘要（支持多算法批量计算）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3 / Shake128 / Shake256。\n【参数】\n- plain_in_hex：明文 Hex 字符串（原始数据 1B ~ 16MB）\n- re"},{"name":"hmac_sum","description":"[hash_digest] 计算 HMAC（基于哈希的消息认证码）。\n【支持算法】Sha1 / Sha224 / Sha256 / Sha384 / Sha512 / Sm3（不支持 SHAKE 系列，因 SHAKE 为 XOF 非固定长度哈希）。\n【参数】\n- key_in_hex：密钥 Hex。SHA 系按 RFC"},{"name":"key_derivation","description":"[kdf] 执行密钥派生（KDF），从高熵秘密或口令派生对称密钥材料。\n【支持算法】\n- HKDF（默认）：RFC 5869 extract-then-expand，底层哈希 Sha256（默认）/ Sha384 / Sha512\n- Sm3Kdf：GB/T 32918 密钥派生，SM3(Z ∥ be32(ct))，c"},{"name":"block_cipher","description":"[symmetric_cipher] 分组密码 CBC 模式加解密。\n【算法】AES128（key=16B） / AES256（key=32B） / SM4（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt\n- input_data_in_h"},{"name":"stream_cipher","description":"[symmetric_cipher] AEAD 流式加解密（认证加密）。\n【算法】AES256GCM（key=32B） / ChaCha20Poly1305（key=32B） / SM4GCM（key=16B）。\n【参数】\n- algorithm：算法名\n- process_type：Encrypt 或 Decrypt"},{"name":"data_padding","description":"[symmetric_cipher] PKCS7 填充/去填充工具。\n【参数】\n- padding_action：DoPadding（填充到 16 字节对齐）或 UnPadding（去填充）\n- data_in_hex：待处理数据 Hex\n【输出】output_data_in_hex、output_length。\n【说"},{"name":"generate_rsa","description":"[rsa] 生成 RSA 密钥对。\n【参数】\n- key_size：2048 / 3072 / 4096（位）\n- private_key_password：可选，设置后私钥 PEM 用 AES-256-CBC 加密保护\n【输出】public_key_in_pem、private_key_in_pem、key_size"},{"name":"rsa_encryption","description":"[rsa] RSA 公钥加密。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n- rsa_padding_mode：RSAES_PKCS1_V1_5 / RSAES_OAEP_SHA_1 / RSAES_OAEP_SHA_224 / R"},{"name":"rsa_decryption","description":"[rsa] RSA 私钥解密。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex（长度 = key_size/8 字节）\n- rsa_padding_mode：必须与加密时一致\n- password：若私钥有密码保护则传入\n【输出】pl"},{"name":"rsa_sign","description":"[rsa] RSA 私钥签名。\n【参数】\n- rsa_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex\n- rsa_sign_padding_mode：RSA_SIGN_PKCS1_V1_5_SHA{1,224,256,384,512} 或 RSA_SIGN_PSS_"},{"name":"rsa_verify","description":"[rsa] RSA 公钥验签。\n【参数】\n- rsa_public_key_in_pem：PEM 格式公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- rsa_sign_padding_mode：必须与签名时一致\n- rsa_sign_raw_data_mode"},{"name":"generate_ecc","description":"[ecc] 生成 ECC 密钥对。\n【曲线】ECC_SECP_256R1 / ECC_SECP_384R1 / ECC_SECP_521R1 / ECC_SECP256K1 / ECC_ED25519（仅签名）/ ECC_X25519（仅 ECDH）。\n【参数】\n- curve：曲线名\n- private_key_pa"},{"name":"ecc_key_exchange","description":"[ecc] ECDH + HKDF 密钥协商，双方各用私钥+对方公钥派生相同对称密钥。\n【参数】\n- alice_ecc_private_key_in_pem：己方私钥 PEM\n- bob_ecc_public_key_in_pem：对方公钥 PEM\n- hash_algorithm：HKDF 底层哈希（Sha256/"},{"name":"ecc_key_sign","description":"[ecc] ECC 私钥签名（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_private_key_in_pem：PEM 私钥\n- data_in_hex：待签数据 Hex\n- sign_raw_data_mode：True=对原文签名（内部先哈希），False=data_in_"},{"name":"ecc_key_verify","description":"[ecc] ECC 公钥验签（SECP* 用 ECDSA，ED25519 用 EdDSA）。\n【参数】\n- ecc_public_key_in_pem：PEM 公钥\n- data_in_hex：原始数据 Hex\n- signature_in_hex：签名 Hex\n- sign_raw_data_mode：必须与签名时一"},{"name":"generate_sm2","description":"[sm2] 生成 SM2（SM2P256V1 / 国密曲线）密钥对。\n【参数】\n- private_key_password：必填，私钥 PEM 加密口令（1-64 字节；私钥只有加密 PEM 一种导出形态）\n【输出】public_key_in_pem、private_key_in_pem、z_in_hex、point"},{"name":"sm2_encryption","description":"[sm2] SM2 公钥加密。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- plain_data_in_hex：明文 Hex\n【输出】cipher_in_hex_with_format 字典，同时返回四种编码格式：\n- C1C3C2_ASN1：ASN.1 DER 编码（推荐，国标 G"},{"name":"sm2_decryption","description":"[sm2] SM2 私钥解密。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- cipher_data_in_hex：密文 Hex\n- cipher_format：必须指定 C1C3C2_ASN1 / C1C2C3_ASN1 / C1C3C2 / C1C2C3\n- sm2_privat"},{"name":"sm2_sign","description":"[sm2] SM2 私钥签名。\n【参数】\n- sm2_private_key_in_pem：PEM 格式私钥\n- data_in_hex：待签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_verify","description":"[sm2] SM2 公钥验签。\n【参数】\n- sm2_public_key_in_pem：PEM 格式公钥\n- data_in_hex：待验签数据 Hex。\n  · RAW 模式（sign_raw_data_mode=True）：消息原文 Hex，服务端走标准 SM2 流程，内部计算 e = SM3(ZA || M) "},{"name":"sm2_private_key_structure_parse","description":"[sm2] 解析 SM2 加密私钥（ENCRYPTED PRIVATE KEY PEM）结构，返回 ASN.1 内部字段的 JSON 视图。用于调试与教学，不会解出私钥值。返回字段：structure（ASN.1 结构 JSON，含加密算法 OID、盐、迭代次数等）。"},{"name":"sm2_public_key_to_hex","description":"[sm2] 将 SM2 PEM 公钥转换为裸 Hex 编码（未压缩点，04 || X || Y）。返回字段：public_key_in_hex（130 个 hex 字符，65 字节）。"},{"name":"zuc_cipher","description":"[symmetric_cipher] ZUC-128 流密码（中国商密算法）。由于 ZUC 是对称流密码，加解密为同一操作，传入明文即输出密文，反之亦然。key_in_hex 固定 16 字节（32 hex 字符），iv_in_hex 固定 16 字节（32 hex 字符），input_data_in_hex 原始数据"},{"name":"ctr_cipher","description":"[symmetric_cipher] [symmetric_cipher] CTR 计数器模式加解密（AES-256-CTR / SM4-CTR）。CTR 是把块密码转成密钥流的模式：加解密为同一操作（密钥流 XOR），无填充，密文长度与明文等长，任意长度输入（1B ~ 16MB）。algorithm 可选 AES25"},{"name":"xts_cipher","description":"[other] [symmetric_cipher] AES-XTS 可调窄分组模式加解密（IEEE 1619 / NIST SP 800-38E）。algorithm 可选 AES128XTS（key 32B = 数据密钥 16B + 调组密钥 16B）或 AES256XTS（key 64B = 32B + 32B）"},{"name":"cert_parse","description":"[cert] [x509_certificate] 解析 X.509 证书（国际 / 国密 GM SM2 双路径）。输入 PEM 证书（≤10KB），返回：证书类型（X.509 (international) / X.509 (GM SM2)，按签名算法 OID 是否落在国密分支 1.2.156.10197 自动判定）"},{"name":"cert_verify","description":"[cert] [x509_certificate] 用 CA 证书验证终端实体证书（单级直接签发验证）。语义：颁发者 DN 与 CA 主体 DN 匹配 + 签名可由 CA 公钥验证；不做链构建、不做吊销检查。有效期不参与 verified 判定，仅以 time_status 字段（valid/expired/not_y"},{"name":"generate_sm9","description":"[sm9_ibc] [sm9_ibc] 生成 SM9 标识密码主密钥（GM/T 0044，GmSSL C 实现）。key_kind='Sign' 生成签名主密钥（验签方持主公钥），'Enc' 生成加密主密钥（加密方持主公钥），默认 Enc。输出：master_public_key_in_pem（明文主公钥，分发给所有用"},{"name":"sm9_extract_key","description":"[sm9_ibc] [sm9_ibc] KGC 按标识提取 SM9 用户私钥（GM/T 0044）。输入：key_kind（Sign/Enc）、master_private_key_in_pem（GenerateSm9 输出的加密主私钥）、private_key_password（主私钥口令，提取的用户钥也以同一口令加"},{"name":"sm9_encryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识加密（GM/T 0044）。任何人持主公钥即可加密：输入 master_public_key_in_pem（key_kind=Enc 的主公钥）、identity（接收方标识，密文与标识绑定）、plain_data_in_hex（明文 hex，1-255 字节，SM9"},{"name":"sm9_decryption","description":"[sm9_ibc] [sm9_ibc] SM9 标识解密（GM/T 0044）。接收方用 KGC 派发的用户钥解密：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Enc 输出）、private_key_password（用户钥口令，与提取时一致）、identity（"},{"name":"sm9_sign","description":"[sm9_ibc] [sm9_ibc] SM9 标识签名（GM/T 0044）。签名者用 KGC 派发的用户钥签名：输入 user_private_key_in_pem（SM9ExtractKey key_kind=Sign 输出）、private_key_password（用户钥口令）、data_in_hex（消息原"},{"name":"sm9_verify","description":"[sm9_ibc] [sm9_ibc] SM9 标识验签（GM/T 0044）。验签方只需主公钥与签名者标识：输入 master_public_key_in_pem（key_kind=Sign 的主公钥）、identity（签名者标识）、data_in_hex（消息原文 hex）、signature_in_hex（DE"},{"name":"ml_kem_keygen","description":"[pqc_kem] 生成 ML-KEM 密钥对（FIPS 203，后量子密钥封装标准）。\n【算法选择】ML-KEM-512（NIST Level 1）/ ML-KEM-768（Level 3，推荐）/ ML-KEM-1024（Level 5）。\n【参数】\n- algorithm：算法名\n- seed_in_hex：64"},{"name":"ml_kem_encap","description":"[pqc_kem] 使用 ML-KEM 公钥执行密钥封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen 时一致\n- public_key_in_hex：ml_kem_keygen 返回的公钥 hex\n【"},{"name":"ml_kem_decap","description":"[pqc_kem] 使用 ML-KEM 私钥执行密钥解封装（FIPS 203）。\n【算法】ML-KEM-512 / ML-KEM-768 / ML-KEM-1024。\n【参数】\n- algorithm：必须与 keygen/encap 一致\n- secret_key_in_hex：ml_kem_keygen 返回的私钥"},{"name":"ml_dsa_keygen","description":"[pqc_signature] 生成 ML-DSA 密钥对（FIPS 204，后量子数字签名标准）。\n【算法选择】algorithm 支持 ML-DSA-44（NIST Level 2）/ ML-DSA-65（Level 3，默认）/ ML-DSA-87（Level 5）。\n【安全等级参考】ML-DSA-44 ≈ AE"},{"name":"ml_dsa_sign","description":"[pqc_signature] 使用 ML-DSA 私钥对消息签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式。\n- RAW 模式：直接签名原始消息（liboqs，最大 256 字节）\n- EXTERNAL_MU 模式：先计算 mu = SHAKE-25"},{"name":"ml_dsa_verify","description":"[pqc_signature] 使用 ML-DSA 公钥验证签名（FIPS 204）。\n【双模式】sign_mode 支持 RAW（默认）和 EXTERNAL_MU 两种模式，必须与签名时使用的模式一致。\n- RAW 模式：直接验证原始消息签名（liboqs，最大 256 字节，空消息合法）\n- EXTERNAL_MU"},{"name":"ml_dsa_compute_mu","description":"[pqc_signature] 独立计算 ML-DSA 的 64 字节 mu 值（FIPS 204 Section 6.2）。\n【用途】用于验证或调试 EXTERNAL_MU 模式的中间值，或与 AWS KMS EXTERNAL_MU 签名流程对接。\n【计算公式】\n- tr = SHAKE-256(raw_pk, 64"},{"name":"hybrid_kex","description":"[pqc_kem] 执行 X25519 + ML-KEM-768 混合密钥交换全流程演示。\n【设计灵感】参考 IETF X-Wing 草案（draft-connolly-cfrg-xwing-kem）的思路，本工具实现的是通用拼接组合器（ecdh_ss || ml_kem_ss → HKDF-SHA256），并非 X-"},{"name":"cbor_encode","description":"[structured_message] 把 JSON 载荷编码为 CBOR 字节流（RFC 8949）。\n【算法】CBOR 规范编码（RFC 8949 §4.2.1）或不定长教学编码（§3.2.2）。\n【参数】\n- json_payload：待编码的 JSON 文本（≤65536 字符），支持两类教学标记：\n  {\""},{"name":"cbor_decode","description":"[structured_message] 把 CBOR 字节流解码为 JSON，并给出逐字段结构拆解树（RFC 8949）。\n【算法】CBOR 解码，定长（§3.2.1）与不定长（§3.2.2）均容忍；\n要求单数据项且逐字节闭合（尾随字节即拒绝）。\n【参数】\n- cbor_in_hex：CBOR 字节的十六进制字符串（"},{"name":"cose_sign1_sign","description":"[cose_sign1] 构造并签名 COSE_Sign1 消息（RFC 9052 §4.2，算法 RFC 9053）。\n【算法】ES256(-7, P-256+SHA-256) / ES384(-35, P-384+SHA-384) /\nES512(-36, P-521+SHA-512) / EdDSA(-8, Ed"},{"name":"cose_sign1_verify","description":"[cose_sign1] 验证 COSE_Sign1 签名（RFC 9052 §4.4 Sig_structure 重构验签）。\n【算法】按 protected 头 alg 声明分派：-7/-35/-36（ES，裸 r||s → DER）\n与 -8（Ed25519）。\n【参数】\n- cose_sign1_in_hex："},{"name":"cose_sign1_parse","description":"[cose_sign1] 纯拆解 COSE_Sign1 消息，不验签（RFC 9052 §4.2）。\n【算法】CBOR 四元素数组 [protected, unprotected, payload, signature]\n逐字段拆解；protected 头解码出 alg；payload 尝试嵌套 CBOR 解码。\n【参"},{"name":"cms_enveloped_encrypt","description":"[cms_enveloped] 构造 CMS EnvelopedData 信封（RFC 5652 §6，KeyTransRecipientInfo）。\n【算法】密钥封装 RSAES-OAEP（RFC 8017 / RFC 3560 参数：hashFunc +\nMGF1 同哈希 + 空 pSource）或 RSAES-P"},{"name":"cms_enveloped_decrypt","description":"[cms_enveloped] 解密 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\nBER/DER 输入均容忍。\n【算法】按消息声明还原算法：rsaesOaep 参数（hashFunc/MGF1/pSource，\nRFC 3560）重建 OAE"},{"name":"cms_enveloped_parse","description":"[cms_enveloped] 纯拆解 CMS EnvelopedData（RFC 5652 §6）/ authEnvelopedData（RFC 5083），\n不解密。\n【算法】自写 ASN.1 TLV walker（X.690 BER 容忍）出结构树 +\nasn1crypto 出结构化字段，两层对照。\n【参数】\n-"},{"name":"cms_signed_sign","description":"[cms_signed] 构造 CMS SignedData 签名消息（RFC 5652 §5）。\n【算法】RSA PKCS#1 v1.5 或 ECDSA × SHA224/256/384/512；\nauthenticatedAttributes 自动携带 contentType + messageDigest +\ns"},{"name":"cms_signed_verify","description":"[cms_signed] 验签 CMS SignedData（RFC 5652 §5），BER/DER 输入均容忍。\n【算法】按消息声明还原 digestAlgorithm / signatureAlgorithm：\nRSA PKCS#1 v1.5、ECDSA、Ed25519、SHA1 消息均可验；rsassa_pss"},{"name":"asn1_parse","description":"[structured_message] 解剖任意 ASN.1/BER 字节的 TLV 结构，给出逐节点拆解树与 DER 判定（X.690）。\n【算法】ASN.1 显微镜：定长（§8.1.3.3-5）/不定长 BER（§8.1.3.6，0x80+EOC）/\n分段八位串（§8.7）/高 tag 号（§8.1.2.4）均容"},{"name":"der_encode","description":"[structured_message] 把 JSON 节点 DSL 编码为 DER 字节（X.690）。\n【算法】DER 规范编码（定长最短 + SET OF 排序）；或教学 BER 不定长\n（构造容器 0x80 + EOC，复刻 AWS KMS 回包形态）。\n【参数】\n- json_payload：节点 DSL（≤"}],"package":null,"toolSurface":{"id":"ts_wax755f6zhqv","endpointId":"ep_ffrjtft748dw","hash":"e73f4b4cf8da5ec69a0cdcd8182abfb6addc50f1b25db73e8b28f891fe4b7a56","toolCount":55,"serverName":"cipherhub-mcp","serverVersion":"1.11.0","protocolVersion":"2025-03-26","firstSeenAt":"2026-09-17T10:23:37.282Z","lastSeenAt":"2026-10-11T00:26:52.232Z","observations":88,"toolNames":["hello","generate_random_data","hash_sum","hmac_sum","key_derivation","block_cipher","stream_cipher","data_padding","generate_rsa","rsa_encryption","rsa_decryption","rsa_sign","rsa_verify","generate_ecc","ecc_key_exchange","ecc_key_sign","ecc_key_verify","generate_sm2","sm2_encryption","sm2_decryption","sm2_sign","sm2_verify","sm2_private_key_structure_parse","sm2_public_key_to_hex","zuc_cipher","ctr_cipher","xts_cipher","cert_parse","cert_verify","generate_sm9","sm9_extract_key","sm9_encryption","sm9_decryption","sm9_sign","sm9_verify","ml_kem_keygen","ml_kem_encap","ml_kem_decap","ml_dsa_keygen","ml_dsa_sign","ml_dsa_verify","ml_dsa_compute_mu","hybrid_kex","cbor_encode","cbor_decode","cose_sign1_sign","cose_sign1_verify","cose_sign1_parse","cms_enveloped_encrypt","cms_enveloped_decrypt","cms_enveloped_parse","cms_signed_sign","cms_signed_verify","asn1_parse","der_encode"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_ffrjtft748dw","url":"https://tools.cipherhub.cloud/cipherhub/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-05T20:25:36.912Z","auth":{"observedAt":"2026-10-05T20:25:37.146Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-05T20:25:37.626Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"cipherhub.cloud","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-09-03T04:19:19.000Z","validTo":"2026-12-02T04:19:18.000Z","daysToExpiry":52,"sanCount":2,"fingerprint256":"AD:90:A1:93:9A:35:61:17:85:F1:69:59:E5:48:34:4C:8D:59:AC:D9:BB:0F:61:65:04:E3:05:DD:54:2B:D4:94"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.bowenerchen/cipherhub","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.bowenerchen%2Fcipherhub","firstSeenAt":"2026-09-06T11:21:21.799Z","fetchedAt":"2026-10-10T06:21:12.637Z","normalizedAt":"2026-10-10T06:21:12.637Z"}]},"firstSeenAt":"2026-09-06T11:21:21.799Z","updatedAt":"2026-10-11T00:30:16.009Z"}