关于 cryptpad
cryptpad 是用于安全集成和运维 CryptPad 实例的 skill,涵盖浏览器嵌入、CryptDrive 工作流、实例发现与验证,并强调授权和密钥处理检查。
主要功能
- 01实例发现命令行工具
- 02离线检查文档链接
- 03浏览器嵌入指导
- 04保存与密钥回调模式
- 05运维及结果验证指导
适用场景
- 01检查 CryptPad 实例配置
- 02使用应用自有存储嵌入 CryptPad
- 03诊断同步或持久化问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill cryptpad安装后在 Claude Code 中输入/cryptpad确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdevals/evals.jsontrigger-queries.jsonreferences/architecture.mdintegration.mdoperations.mdsources.mdscripts/cryptpad.pytest_cryptpad.pytemplates/browser-integration.mdintegration-adapter.mjsintegration-plan.md详细介绍
CryptPad
不适用场景
- 如需创建或转换本地办公文件,请使用
documents或anydoc。 - 如需设计通用 API 契约,请使用
api-design-and-evolution。 - 如需执行容器操作,请使用
docker-compose;CryptPad 专属配置请保留在此处。 - EncryptPad 是另一款 OpenPGP 桌面应用。
工作流
- 确认实例来源、部署版本、文档应用和任务: 是现有 CryptDrive 内容、嵌入外部存储的文档,还是实例运维。 切勿仅凭标题、成功的 HTTP 请求或编辑器界面推断权限。
- 阅读架构和接口边界,了解可行性。 对于外部存储,优先使用文档说明的浏览器集成 API;对于现有 CryptDrive 文档,请使用 已授权的浏览器会话。不要臆造持有者令牌 CRUD 路由。
- 如需发现公开实例,请运行下方 CLI。如需嵌入,请先阅读 集成契约,然后使用适配器和计划模板。 如遇自托管故障,请阅读运维。
- 此技能可指导会更改外部状态的操作:编辑、导入、共享、密钥轮换、部署和保留设置变更。 操作前请确认目标、范围和回滚路径。只读发现可不经确认直接进行。 如果现有明确授权涵盖这些细节,请使用该授权。破坏性操作 仍需用户明确指示。对于尚未解决的问题,请先准备可逆操作,再升级处理。
- 通过常规浏览器路径验证结果:文档可以加载、编辑会同步、 保存内容已写入持久存储,并且新会话可以重新打开已保存的内容。 使用真实查看密钥检查只读访问。HTTP 发现不属于此类验证。
- 提供成果或诊断结果,并附上版本和来源证据、实际运行的测试 以及剩余限制。若诊断连续三轮未能收敛,请停止并报告 确切的故障边界和下一步所需证据。不要用原始密文代替导出的文档内容,也不要声称通过符合架构的 eval 就能证明运行时行为。
工具
请从此技能的根目录运行;工具仅使用 Python 标准库,并输出 JSON。
python3 scripts/cryptpad.py probe --origin https://cryptpad.example.org
python3 scripts/cryptpad.py inspect-link < /secure/path/document-link.txt
python3 -m unittest discover -s scripts -p 'test_*.py'
CLI:probe 会对 /api/config 和 /cryptpad-api.js 发送 GET 请求,拒绝
重定向,限制响应大小和超时时间,并且只解析已知 AMD
包装器中的 JSON,不执行 JavaScript。退出码为 0 表示两个资源均已识别,
1 表示发现不完整,2 表示输入无效。enableEmbedding: false 是配置发现结果,而非网络故障。不会推断版本或端到端运行状况。
inspect-link 为离线工具,会从标准输入读取内容,避免将能力链接放入 argv。
它只报告来源、已知应用以及查询和片段是否存在,不会报告它们的值或任意路径。
它不会验证密钥或确定实际权限。
请保护输入文件;不要将真实密钥粘贴到日志或 shell 历史记录中。
测试会测试格式错误的输入、秘密信息脱敏、响应识别、故障处理以及保存和密钥回调。Node.js 可用于运行适配器测试; 没有 Node.js 时,该测试会明确标记为跳过。
集成要点
- 加载实例的
/cryptpad-api.js;调用window.CryptPadAPI(containerId, config)。 这是浏览器 API,不是服务端 REST 文档服务。 - 嵌入服务负责持久化存储、用户授权和会话密钥共享。 集成会话是临时的;常规 CryptDrive 持久化属于独立工作流。
- 默认使用 CryptPad 通过
onNewKey生成的会话密钥。以原子方式比较旧存储密钥,并持久化胜出的编辑密钥/查看密钥对。即使并发更新胜出,也要将胜出的编辑密钥返回给回调。绝不要盲目返回每个客户端各自生成的候选密钥。 onSave接收一个 Blob。只有在数据已持久保存后才确认。保存失败时保留可见的未保存状态;重试需要幂等或基于版本的存储。- 使用编辑密钥设置
mode: 'view'只会锁定界面。应使用真正的查看密钥,并且不要通过查看用户的存储 API 暴露编辑密钥。请确认已部署版本支持相关功能。 - 移除应用 ACL 条目不会终止正在运行且持有密钥的会话。应规划密钥轮换并迁移到新会话;不要声称可以追溯性地实现保密。
- CryptPad 端的 E2EE 不会加密应用存储的导出内容。如果需要 E2EE,应在受信任的客户端中加密/解密,并相应设计密钥分发。
模板与证据
评论
支持 Markdown