跳转到主要内容

用于验证CAP消息是否符合OASIS CAP 1.2模式并验证XML签名的Python模块。

项目描述

CAP验证器

确保CAP警报有效的Python模块。

License Badge Super-Linter Unit-Tests Publish-To-PyPI

功能

  • 模式验证: 确保您的CAP XML文件遵循CAP v1.2标准
  • 数字签名验证: 验证CAP XML文件是否来自合法来源且未被篡改。

注意:目前,仅支持由受信任证书颁发机构(CA)颁发的证书。这意味着带有自签名的证书将 无法 通过验证。

入门指南

1. 安装

pip install capvalidator

2A. 使用API

我们可以使用 validate_cap_message(cap, strict) 对CAP XML文件进行完全验证。

  • cap:CAP警报XML字节数组。
  • strict:是否强制执行签名验证。默认为 True
from capvalidator import validate_cap_message

# Read the CAP XML file as a byte string
with open(<cap-file-directory>, "rb") as f:
    cap = f.read()

# Perform the validation
result = validate_cap_message(cap, strict=True)

# Check the result
passed = result.passed
msg = result.msg

if not passed:
    # Logic for handling invalid CAP file

# Logic for handling valid CAP file

或者,我们可以使用 check_schema(cap) 和/或 check_signature(cap) 进行更精细的验证

from capvalidator import check_schema, check_signature

# Read the CAP XML file as a byte string
with open(<cap-file-directory>, "rb") as f:
    cap = f.read()

# Validate the schema
schema_result = check_schema(cap)

# Check the results
passed = schema_result.passed
msg = schema_result.msg

if not passed:
    # Logic for handling invalid CAP file

# Validate the signature
signature_result = check_signature(cap)

# Check the results
passed = signature_result.passed
msg = signature_result.msg

if not passed:
    # Logic for handling invalid CAP file

# Logic for handling valid CAP file

还有一个日期提取器 get_dates(cap),可能对您有用

from capvalidator import get_dates

# Read the CAP XML file as a byte string
with open(<cap-file-directory>, "rb") as f:
    cap = f.read()

dts = get_dates(cap)

sent_date = dts.sent
effective_date = dts.effective
onset_date = dts.onset
expiry_date = dts.expiry

2B. 使用CLI

我们可以对CAP XML文件进行完全验证

capvalidator validate <cap-file-directory>

默认情况下,这包括模式和签名验证。

要手动启用/禁用对有效XML签名的强制执行,我们可以使用分别的 --strict--no-strict 参数

capvalidator validate --strict <cap_file-directory> 
capvalidator validate --no-strict <cap_file-directory> 

或者,对于更精细的验证,我们可以使用 --type 参数

capvalidator validate --type schema <cap-file-directory>
capvalidator validate --type signature <cap-file-directory>

错误和问题

所有错误、增强和问题都由GitHub管理。

联系

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

capvalidator-0.1.0.dev4.tar.gz (17.9 kB 查看哈希值)

上传时间 源代码

构建分发

capvalidator-0.1.0.dev4-py3-none-any.whl (15.9 kB 查看哈希值)

上传时间 Python 3

由...