跳转到主要内容

用于创建、编辑和与TRO交互的实用工具

项目描述

https://img.shields.io/pypi/v/tro_utils.svg https://img.shields.io/travis/transparency-certified/tro-utils.svg Documentation Status

此软件包提供了一组用于处理透明研究对象(TROs)的实用工具。它旨在与TRO规范结合使用。

它使用Click库来定义命令和选项。以下是主要功能的摘要

  1. 全局选项:脚本定义了几个全局选项,这些选项可以与任何命令一起使用,例如--declaration--profile--gpg-fingerprint--gpg-passphrase--tro-creator--tro-name--tro-description。这些选项可用于指定TRO的各种参数。

  1. 命令:脚本定义了几个命令,每个命令都有其自己的选项和参数。命令包括

    • verify:验证TRO是否已正确签名并时间戳。

    • arrangement:管理TRO中的安排。它有如add(将目录添加为TRO的组成)和list(列出TRO中可用的安排)之类的子命令。

    • composition:管理TRO中的组成。它有一个子命令info,可以获取当前组成的信息。

    • 性能:管理TRO中的性能。它有一个子命令add,可以将性能添加到TRO中。

    • 签名:对TRO进行签名。

    • 报告:生成TRO的报告。

  1. TRO交互:脚本通过tro_utils模块中的TRO类与TRO进行交互。它使用此类创建新的TRO,将安排和性能添加到TRO中,验证TRO,并生成TRO的报告。

示例用法

假设

  • 此软件包已安装

  • 您的GPG密钥存在

  • trs.jsonld可用,并定义TRS功能(以下为示例)

示例工作流程

$ cd /tmp
$ cat trs.jsonld
  {
    "rdfs:comment": "TRS that can monitor netowork accesses or provide Internet isolation",
    "trov:hasCapability": [
      {
        "@id": "trs/capability/1",
        "@type": "trov:CanRecordInternetAccess"
      },
      {
        "@id": "trs/capability/2",
        "@type": "trov:CanProvideInternetIsolation"
      }
    ],
    "trov:owner": "Kacper Kowalik",
    "trov:description": "My local system",
    "trov:contact": "root@dev.null",
    "trov:url": "http://127.0.0.1/",
    "trov:name": "shakuras"
  }
$ export GPG_FINGERPRINT=...
$ export GPG_PASSPHRASE=...
$ git clone https://github.com/transparency-certified/sample-trace-workflow /tmp/sample
# It's sufficient to pass the profile only once
$ tro-utils --declaration sample_tro.jsonld --profile trs.jsonld arrangement add /tmp/sample \
    -m "Before executing workflow" -i .git
  Loading profile from trs.jsonld
$ tro-utils --declaration sample_tro.jsonld arrangement list
  Arrangement(id=arrangement/0): Before executing workflow
$ pushd /tmp/sample && \
  docker build -t xarthisius/sample . && \
  ./run_locally.sh latest xarthisius && \
  popd
$ tro-utils --declaration sample_tro.jsonld arrangement add /tmp/sample \
    -m "After executing workflow" -i .git
$ tro-utils --declaration sample_tro.jsonld arrangement list
  Arrangement(id=arrangement/0): Before executing workflow
  Arrangement(id=arrangement/1): After executing workflow
$ tro-utils --declaration sample_tro.jsonld performance add \
  -m "My magic workflow" \
  -s 2024-03-01T09:22:01 \
  -e 2024-03-02T10:00:11 \
  -c trov:InternetIsolation \
  -c trov:InternetAccessRecording \
  -a arrangement/0 \
  -M arrangement/1
 $ tro-utils --declaration sample_tro.jsonld sign
 $ tro-utils --declaration sample_tro.jsonld verify
   ...
   Verification: OK
 $ curl -LO https://raw.githubusercontent.com/craig-willis/trace-report/main/templates/tro.md.jinja2
 $ tro-utils --declaration sample_tro.jsonld report --template tro.md.jinja2 -o report.md

致谢

此软件包是使用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。

项目详情


下载文件

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

源代码分发

tro_utils-0.1.0.tar.gz (20.0 kB 查看散列值)

上传时间 源代码

构建分发

tro_utils-0.1.0-py2.py3-none-any.whl (12.1 kB 查看散列值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面