本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode

将 Anchor 验证功能分离以实现重用

https://blueprints.launchpad.net/anchor/+spec/anchor-separate-package

问题描述

目前,Anchor CSR 验证功能都位于 Anchor 包中。这阻止了其他项目轻松导入和使用验证功能。因此,应将验证功能拆分为 anchor 下的一个模块,以便其他项目可以导入它。这将为验证功能提供一个简单的 API,供 Anchor 和其他项目使用。

这将能够在其他项目中重用 CSR 验证功能,例如提议的 CA/RA Killick,或在 Barbican 中。

其次,执行 CSR 验证的代码在其中一个验证器失败时会中止 - 这对于 Anchor 来说效果很好,但可以通过运行所有验证器并返回一个字典来扩展验证引擎,从而为其他服务提供附加价值,给出运行的每个验证器的结果。

提议的变更

将 certificate_ops.py 中遍历验证器的代码分解到新的文件 ‘validation.py’ 中。扩展此功能以返回一个字典,给出验证器名称及其返回值,或者如果发生错误则抛出异常。

修改 certificate_ops.py 以使用新的 validation.py 和字典返回值,同时捕获任何抛出的异常。

修复测试以使用此新功能。

实现

doug-chivers

里程碑

完成目标里程碑

Kilo

工作项

1 - 将验证功能分解到新文件中 2 - 返回字典 3 - 修复测试以使其工作,确保 certificate_ops.py 仍然捕获验证器抛出的异常

依赖项

Anchor

参考资料

N/A