创建区块链证书
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",这导致了"未签名证书"中的文件
,然后将未签名证书复制到证书颁发者,以便在区块链上签名和颁发。
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",这导致了"未签名证书"中的文件
,然后将未签名证书复制到证书颁发者,以便在区块链上签名和颁发。