fabric ca api client.go注释 - Agzs/hyperledger GitHub Wiki
1、api/client.go
引用cloudflare/cfssl/csr包,这个包是CloudFlare's PKI toolkit; 引用fabric-ca/lib/tcert,这个包是Transaction Certificate (TCert), 当在hyperledger fabric区块链上进行交易时,保证匿名性和不可追踪性。 定义以下结构体:
1)RegistrationRequest,注册一个新的身份的请求
成员变量:
Name:身份标识
Type:身份类型
Secret:注册时提供的身份信息,该字段可省略
MaxEnrollments:用户可重复登记次数的最大登记个数,该字段可省略
Affiliation:身份的从属关系,该字段可省略
Attributes:属性,该字段可省略 结构体数组,定义参考:10
CAName:CA的名称,该字段可省略
2) RegistrationResponse,注册响应
成员变量:
Secret:身份信息 //注册成功后会反馈该信息
3)EnrollmentRequest,登记一个身份的请求
成员变量:
Name:要注册的标识名
Secret:注册返回的secret,该字段可省略
Profile:配置文件是在颁发证书时使用的签名配置文件的名称,该字段可省略
Label:使用HSM操作的标签,该字段可省略 HSM 高速存储器?
CSR:Certificate Signing Request info,证书签名请求信息,该字段可省略,结构体指针,定义参考(9)
CAName:想要连接的CA的名称,该字段可省略
4)ReenrollmentRequest,重新注册一个身份的请求,用于在证书即将过期时更新证书
成员变量:
Profile:配置文件是在颁发证书时使用的签名配置文件的名称,该字段可省略
Label:使用HSM操作的标签,该字段可省略 HSM 高速存储器?
CSR:Certificate Signing Request info,证书签名请求信息,该字段可省略
CAName:想要连接的CA的名称,该字段可省略
5)RevocationRequest,单一的证书或身份相关的所有证书撤销请求。
要撤销单个证书,必须设置Serial和AKI字段; 否则,要撤消所有证书和与注册ID相关联的身份,Name字段必须设置为现有的注册ID。RevocationRequest只能由具有“hf.Revoker”属性的用户执行。
成员变量:
Name:想要撤销证书的用户名称,该字段可省略
Serial:要撤销的证书的序列号,该字段可省略
AKI:将要被撤销证书的AKI(Authority Key Identifier),该字段可省略
Reason:撤销证书的原因,该字段可省略默认值为0,其他有效值参考[文档](https://godoc.org/golang.org/x/crypto/ocsp)
CAName:想要连接的CA的名称,该字段可省略
6)GetTCertBatchRequest,为identity.GetTCertBatch提供输入。
identity.GetTCertBatch在fabric-ca/lib/identity.go中,为当前identity返回一批Tcerts。
成员变量:
Count :整型,批处理中的Tcert数目。
AttrNames :string数组类型,将名称和值封装在发出的TCerts中的属性名称。该字段可省略。
EncryptAttrs :bool类型,表示是否加密属性值。当设置为true时,批处理中每个发出的TCert将包含加密的属性值。该字段可省略。
ValidityPeriod :time.Duration类型,证书有效期。如果指定,所使用的值是TCert管理器的最小值和配置的有效期。该字段可省略。
PreKey :string类型,用于密钥派生。
DisableKeyDerivation :bool类型,标识是否使用密钥派生。如果设置为true,则禁用密钥派生,以使TCert与ECert不具有密码相关性。 当使用不支持TCert密钥导出功能的HSM时,这可能是必需的,该字段可省略。
CAName :string类型,想要链接的CA的名称,该字段可省略。
7)GetTCertBatchResponse,identity.GetTCertBatch的返回值
成员变量:
tcert.GetBatchResponse:fabric-ca/lib/Tcert/api.go中,响应GetBatch API。
8)GetCAInfoRequest,获取通用CA信息的请求
成员变量:
CAName :string类型,想要链接的CA的名称,该字段可省略。
9)CSRInfo,CSRInfo is Certificate Signing Request information,证书签名请求信息
成员变量:
CN string `json:"CN"`
Names []csr.Name `json:"names,omitempty"`
Hosts []string `json:"hosts,omitempty"`
KeyRequest *csr.BasicKeyRequest `json:"key,omitempty"`
CA *csr.CAConfig `json:"ca,omitempty"`
SerialNumber string `json:"serial_number,omitempty"`
10)Attribute,一个键值对(name,value)
成员变量:
Name string `json:"name"`
Value string `json:"value"`