创建区块链证书

cert-tools的Python项目详细描述


[![构建状态](https://travis-ci.org/blockchain-certificates/cert-tools.svg?branch=master)(https://travis ci.org/blockchain certificates/cert tools)

cert tools
用于设计证书模板、实例化证书批的命令行工具,以及导入/导出任务

请参见示例数据中的证书模板和批创建示例

确保您有一个python环境。[建议](https://github.com/blockchain certificates/cert issuer/blob/master/docs/virtualenv.md)


2.git克隆存储库并切换到目录

``bash
git克隆https://github.com/blockchain-certificates/cert-tools.git&;cd cert tools
```

3。运行安装脚本

``bash
pip安装。
```

具体描述如下:




35 35 35是的可选参数在方括号中

```
create certificate template--help

用法:create_v2_certificate_template.py[-h][-c my_config]
[-data_dir data_dir]
[-issuer_logo_file颁发者标志文件]
[--证书图像文件证书图像文件]
[--颁发者网址颁发者网址]
[--颁发者网址颁发者网址]
[--颁发者网址颁发者网址]
--发卡机构电子邮件发卡机构电子邮件
--发卡机构名称发卡机构名称
--发卡机构ID发卡机构ID[--发卡机构密钥发卡机构密钥]
[--证书描述证书描述]
--证书名称证书名称模板文件名]
[-散列电子邮件]
[-吊销列表吊销列表]
[-颁发者公钥颁发者公钥]
--徽章ID徽章ID
[--颁发者签名行颁发者签名行]
[--附加全局字段附加全局字段]
[--附加每个收件人字段附加的每个收件人字段]




以"---"开头的参数(例如--数据目录)也可以在配置文件中设置(/cert tools/conf.ini或通过-c指定)。配置文件语法允许:key=value,flag=true,stuff=[a,b,c](有关详细信息,请参阅https://goo.gl/r74nmi上的语法)。如果在多个位置指定了参数,则命令行值将覆盖覆盖默认值的配置文件值。




--我的配置我的配置
配置文件路径(默认值:无)
--数据文件所在的数据目录数据目录(默认值:无)
--颁发者徽标文件颁发者徽标文件
颁发者徽标图像文件,PNG格式(默认值:无)
--证书图像文件证书图像文件
颁发者徽标图像文件,PNG格式(默认值:无)
--颁发者URL颁发者URL
颁发者URL(默认值:无)
--颁发者URL颁发者URL
我颁发者证书URL(默认值:无)
--颁发者电子邮件颁发者电子邮件
颁发者电子邮件(默认值:无)
--颁发者名称颁发者名称
颁发者名称(默认值:无)
--颁发者ID颁发者ID
颁发者配置文件(默认值:无)
--颁发者密钥颁发者密钥
颁发者颁发密钥(默认值:无)
--证书描述证书描述
证书的显示描述(默认值:
无)
--证书标题证书标题
证书的标题(默认值:无)
--条件说明条件说明
条件说明(默认值:无)
--模板说明模板输出目录(默认值:无)
--模板文件名模板文件名
模板文件名(默认值:无)
--哈希电子邮件是否哈希证书中的电子邮件(默认值:
假)
--吊销列表吊销列表
颁发者吊销列表(默认值:无)
--颁发者公钥颁发者公钥
颁发者公钥(默认值:无)
--徽章ID徽章ID(默认值:无)
--颁发者签名行颁发者签名行签名行(默认值:无)
--其他"全局"字段其他"全局"字段
其他"全局"字段(默认值:无)
--其他"每个收件人"字段其他"每个收件人"字段
其他"每个收件人"字段(默认值:无)


````


这将不包含特定于收件人的数据;这将使用合并标记填充这些字段;这将使用合并标记填充这些字段。




<
<
>
填充证书模板(由上一个脚本创建)使用CSV文件中的收件人数据。它根据csv文件中的值为每个收件人生成一个证书。

csv文件位置可通过conf.ini文件进行配置。

csv文件必须始终包含:

-name
-pubkey
-identity

描述如下。可选参数在括号中


````
实例化证书批处理--帮助


用法:实例化v2_证书批处理.py[-h][-c my_config]
[--data_dir data_dir]
[--issuer_certs_url issuer_certs_url]
[--template_dir template_dir]
[--template_file_name template_file_name]
[--hash_emails]
[--additional_per_recipient_fields additional_per_recipient_fields]
[--unsigned_certificates_dir unsigned_certificates_dir]
[--花名册]


以"---"开头的参数(例如。--数据目录)也可以在配置文件中设置(/cert tools/conf.ini或通过-c指定)。配置文件语法允许:key=value,flag=true,stuff=[a,b,c](有关详细信息,请参阅https://goo.gl/r74nmi上的语法)。如果在多个位置指定了一个参数,则命令行值将覆盖覆盖默认值的配置文件值。

--我的配置我的配置
配置文件路径(默认:无)
--数据文件所在的数据目录数据目录(默认值:无)
--颁发者证书URL颁发者证书URL
颁发者证书URL(默认值:无)
--模板目录模板输出目录(默认值:无)
--模板文件名模板文件名
模板文件名(默认值:无)
--哈希电子邮件是否哈希证书中的电子邮件(默认值:
假)
--每个收件人的其他字段附加的每个收件人字段
附加的每个收件人字段(默认值:无)
--未签名的证书目录未签名的证书目录
未签名证书的输出目录(默认值:
无)
--花名册花名册文件名(默认值:无)

```

####重要提示:在json-ld上下文中定义自定义字段
添加全局或每个收件人自定义字段时,必须在[json-ld上下文](https://json ld.org/spec/latest/json ld/)中定义每个新术语。您可以指向现有的json-ld上下文,或者直接将它们嵌入到证书的上下文中。有关后者的示例,请参见[JSON-LD规范第3.1节](https://json ld.org/spec/latest/json ld/the context)。在这种情况下,'@context'值将是一个数组,列出现有的上下文链接和您的新定义。


这两个选项的示例如下:
``
{
"@context":[
"https://w3id.org/openbadges/v2",
"https://w3id.org/blockcerts/v2",
"https://your custom context/v1"<;——选项1:指向自定义json-ld上下文
{<;--选项2:直接嵌入证书
"xyz_custom_field":"http://path/to/xyz_custom_field",
…//和所有其他自定义字段
}
]
}
````


到字段
-要使用的全局值

示例:

conf.ini:
````
其他全局字段={"字段":[{"路径":"$.certificate.subtitle","值":"自定义子标题"}
````

或,扩展可读性:
`````
其他全局字段={
"fields":
[
{
"path":"$.certificate.subtitle",
"value":"custom subtitle"
}
]
}


`````

conf.ini文件、附加的"每个收件人"字段项和包含每个收件人数据的.csv文件的组合。每个收件人字段用于模板创建和证书实例。在模板创建过程中,我们应用占位符合并标记作为值。这有助于在运行"instantiate_certificate_batch.py"之前预览模板。

对于每个附加的每个收件人字段,必须在"附加的每个收件人字段"配置字段中指明以下内容:

-字段的jsonpath
-要使用的合并标记占位符
-可以在其中找到值(每个收件人)的csv列。这用于实例化证书批处理

示例:

conf.iNI版本:
```
每个收件人的其他字段={"字段":[{"路径":"$.xyz_自定义字段","值":"*";这将包含xyz自定义值*","csv一栏":"xyz_custom_custom_custom_field"}
`````


```````````
``````



``````
` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `
` ` ` ` ` ` ` ` ` ` `D6NZV…H66kuzebkf
```

####about

使用hd扩展的公钥(或私钥)生成比特币地址,用作证书颁发者的吊销地址。这只有在颁发者要求以后能够撤消特定证书时才有用。它创建了一个地址列表,然后可以很容易地与花名册文件合并,例如使用unix的粘贴命令。


为2016年第一批证书运行的testnet扩展公钥创建20个吊销地址:

````
echo"revkey">;创建撤销地址-N 20-P"2016/1"-K TPUBD6NZV…H66kuzebkf>;>rev_addresses.txt
`````


>要合并到花名册(在Unix中)运行:

```>``
```
>粘贴-d,花名册.txt rev_addresses.txt>;花名册与花名册(在Unix中)运行:
>
````



;例如



>见示例配置和输出数据。` conf mainnet.ini`用于在比特币区块链上创建一批2个未签名证书。

步骤是:
-创建模板
-更新配置文件以包含正确的数据以填充证书
-将所需的图像放在"images/"中并指向配置文件
-运行"create_certificate_template.py",这导致证书模板`/certificate\u template s/test.json`
-实例化批处理
-使用收件人的比特币地址添加收件人花名册(在本例中为"rosters/花名册"testnet.csv`)。
-运行"instantiate\u certificate\u batch.py",这导致了"未签名证书"中的文件

,然后将未签名证书复制到证书颁发者,以便在区块链上签名和颁发。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
创建返回java测试结果的selenium测试方法   java Play2长期socket连接和多线程   java Spring引导Soap web服务创建Jaxb2插件错误   编译器构造如何将三地址码(TAC)转换为Java字节码?   java(泛型)无法对非静态类型T进行静态引用   java Kafka如何向多消费者发送消息   具有复杂类型的动态属性的java Odata   java Apache HttpClient线程   ${catalina.base}/lib子目录中的java属性文件解析   JApplet上的java分层对象(扩展JComponet)   java如何回滚Firebase Realitime数据库Android中的更改   Java正在尝试制作计时器   如何解决java。安卓中的lang.OutOfMemory异常?   将Objective C转换为Java Android没有什么问题   在java中,我不能将两个相同的变量设置为不同的值,但在python中我可以?   c#客户端和java服务器之间的身份验证错误   使用asynctask更改活动时发生java 安卓 admob错误