handlers

package
v0.0.0-...-fbe82ab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewIssuerPublicKey

func NewIssuerPublicKey(pk IssuerPublicKey) *issuerPublicKey

func NewIssuerSecretKey

func NewIssuerSecretKey(sk IssuerSecretKey, exportable bool) *issuerSecretKey

func NewNymPublicKey

func NewNymPublicKey(pk Ecp) *nymPublicKey

func NewNymSecretKey

func NewNymSecretKey(sk Big, pk Ecp, exportable bool) (*nymSecretKey, error)

func NewRevocationPublicKey

func NewRevocationPublicKey(pubKey *ecdsa.PublicKey) *revocationPublicKey

func NewRevocationSecretKey

func NewRevocationSecretKey(sk *ecdsa.PrivateKey, exportable bool) *revocationSecretKey

func NewUserSecretKey

func NewUserSecretKey(sk Big, exportable bool) *userSecretKey

Types

type Big

type Big interface {
	//bytes返回此键的字节表示形式
	Bytes() ([]byte, error)
}

大表示一个大整数

type CredRequest

type CredRequest interface {
	//签名创建一个新的凭证请求,这是交互式凭证颁发协议的第一条消息
	//(从用户到颁发者)
	Sign(sk Big, ipk IssuerPublicKey, nonce []byte) ([]byte, error)

	//验证验证验证凭据请求
	Verify(credRequest []byte, ipk IssuerPublicKey, nonce []byte) error
}

CredRequest是一个本地接口,用于与IDemix实现分离。 发出凭证请求。

type Credential

type Credential interface {

	//签名颁发新的凭据,这是交互式颁发协议的最后一步
	//在此步骤中,所有属性值都由颁发者添加,然后与承诺一起签名
	//来自凭据请求的用户密钥
	Sign(key IssuerSecretKey, credentialRequest []byte, attributes []bccsp.IdemixAttribute) ([]byte, error)

	//通过验证签名以加密方式验证凭据
	//属性值和用户密钥
	Verify(sk Big, ipk IssuerPublicKey, credential []byte, attributes []bccsp.IdemixAttribute) error
}

CredRequest是一个本地接口,用于与IDemix实现分离。 证书的颁发。

type CredentialRequestSigner

type CredentialRequestSigner struct {
	//CredRequest实现基础加密算法
	CredRequest CredRequest
}

CredentialRequestSigner生成凭据请求

func (*CredentialRequestSigner) Sign

func (c *CredentialRequestSigner) Sign(k bccsp.Key, digest []byte, opts bccsp.SignerOpts) ([]byte, error)

type CredentialRequestVerifier

type CredentialRequestVerifier struct {
	//CredRequest实现基础加密算法
	CredRequest CredRequest
}

CredentialRequestVerifier验证凭据请求

func (*CredentialRequestVerifier) Verify

func (c *CredentialRequestVerifier) Verify(k bccsp.Key, signature, digest []byte, opts bccsp.SignerOpts) (bool, error)

type CredentialSigner

type CredentialSigner struct {
	Credential Credential
}

func (*CredentialSigner) Sign

func (s *CredentialSigner) Sign(k bccsp.Key, digest []byte, opts bccsp.SignerOpts) (signature []byte, err error)

type CredentialVerifier

type CredentialVerifier struct {
	Credential Credential
}

func (*CredentialVerifier) Verify

func (v *CredentialVerifier) Verify(k bccsp.Key, signature, digest []byte, opts bccsp.SignerOpts) (valid bool, err error)

type CriSigner

type CriSigner struct {
	Revocation Revocation
}

func (*CriSigner) Sign

func (s *CriSigner) Sign(k bccsp.Key, digest []byte, opts bccsp.SignerOpts) ([]byte, error)

type CriVerifier

type CriVerifier struct {
	Revocation Revocation
}

func (*CriVerifier) Verify

func (v *CriVerifier) Verify(k bccsp.Key, signature, digest []byte, opts bccsp.SignerOpts) (bool, error)

type Ecp

type Ecp interface {
	//bytes返回此键的字节表示形式
	Bytes() ([]byte, error)
}

ECP表示一个椭圆曲线点

type Issuer

type Issuer interface {
	//new key生成新的IDemix颁发者密钥w.r.t传递的属性名。
	NewKey(AttributeNames []string) (IssuerSecretKey, error)

	//NewPublicKeyFromBytes将传递的字节转换为颁发者公钥
	//它确保这样获得的公钥具有传递的属性(如果指定的话)
	NewPublicKeyFromBytes(raw []byte, attributes []string) (IssuerPublicKey, error)
}

Issuer是一个本地接口,用于与IDemix实现分离。

type IssuerKeyGen

type IssuerKeyGen struct {
	//exportable是允许颁发者密钥标记为exportable的标志。
	//如果密钥标记为可导出,则其byte s方法将返回密钥的字节表示形式。
	Exportable bool
	//颁发者实现基础加密算法
	Issuer Issuer
}

issuerkeygen生成颁发者密钥。

func (*IssuerKeyGen) KeyGen

func (g *IssuerKeyGen) KeyGen(opts bccsp.KeyGenOpts) (k bccsp.Key, err error)

type IssuerPublicKey

type IssuerPublicKey interface {

	//bytes返回此键的字节表示形式
	Bytes() ([]byte, error)

	//哈希返回此键的哈希表示形式。
	//输出应该是抗碰撞的
	Hash() []byte
}

IssuerPublickey是颁发者公钥

type IssuerPublicKeyImporter

type IssuerPublicKeyImporter struct {
	//颁发者实现基础加密算法
	Issuer Issuer
}

IssuerPublickeyImporter导入颁发者公钥

func (*IssuerPublicKeyImporter) KeyImport

func (i *IssuerPublicKeyImporter) KeyImport(raw interface{}, opts bccsp.KeyImportOpts) (k bccsp.Key, err error)

type IssuerSecretKey

type IssuerSecretKey interface {

	//bytes返回此键的字节表示形式
	Bytes() ([]byte, error)

	//public返回对应的公钥
	Public() IssuerPublicKey
}

IssuerPublickey是颁发者密钥

type NymKeyDerivation

type NymKeyDerivation struct {
	//exportable是允许颁发者密钥标记为exportable的标志。
	//如果密钥标记为可导出,则其byte s方法将返回密钥的字节表示形式。
	Exportable bool
	//用户实现底层加密算法
	User User
}

NymkeyDerivation派生Nyms

func (*NymKeyDerivation) KeyDeriv

func (kd *NymKeyDerivation) KeyDeriv(k bccsp.Key, opts bccsp.KeyDerivOpts) (dk bccsp.Key, err error)

type NymPublicKeyImporter

type NymPublicKeyImporter struct {
	//用户实现底层加密算法
	User User
}

NymPublicKeyImporter导入Nym公钥

func (*NymPublicKeyImporter) KeyImport

func (i *NymPublicKeyImporter) KeyImport(raw interface{}, opts bccsp.KeyImportOpts) (k bccsp.Key, err error)

type NymSignatureScheme

type NymSignatureScheme interface {
	//签名创建新的IDemix假名签名
	Sign(sk Big, Nym Ecp, RNym Big, ipk IssuerPublicKey, digest []byte) ([]byte, error)

	//验证验证Idemix NymSignature
	Verify(pk IssuerPublicKey, Nym Ecp, signature, digest []byte) error
}

NymSignatureScheme是一个本地接口,用于与IDemix实现分离。 与纽约商品交易所标志相关的操作

type NymSigner

type NymSigner struct {
	NymSignatureScheme NymSignatureScheme
}

func (*NymSigner) Sign

func (s *NymSigner) Sign(k bccsp.Key, digest []byte, opts bccsp.SignerOpts) ([]byte, error)

type NymVerifier

type NymVerifier struct {
	NymSignatureScheme NymSignatureScheme
}

func (*NymVerifier) Verify

func (v *NymVerifier) Verify(k bccsp.Key, signature, digest []byte, opts bccsp.SignerOpts) (bool, error)

type Revocation

type Revocation interface {

	//newkey生成用于吊销的长期签名密钥
	NewKey() (*ecdsa.PrivateKey, error)

	//sign创建特定时间段(epoch)的凭证吊销信息。
	//用户可以使用CRI来证明他们没有被撤销。
	//注意,当不使用撤销(即alg=alg_no_撤销)时,不使用输入的未撤销数据,
	//由此产生的CRI可以被任何签名者使用。
	Sign(key *ecdsa.PrivateKey, unrevokedHandles [][]byte, epoch int, alg bccsp.RevocationAlgorithm) ([]byte, error)

	//验证验证特定时期的吊销pk是否有效,
	//通过检查它是否使用长期吊销密钥签名。
	//注意,即使我们不使用撤销(即alg=alg_no_撤销),我们也需要
	//验证签名以确保颁发者确实签署了没有吊销的签名
	//在这个时代使用。
	Verify(pk *ecdsa.PublicKey, cri []byte, epoch int, alg bccsp.RevocationAlgorithm) error
}

吊销是一个本地接口,用于与IDemix实现分离 与撤销相关的操作

type RevocationKeyGen

type RevocationKeyGen struct {
	//exportable是允许将吊销密钥标记为exportable的标志。
	//如果密钥标记为可导出,则其byte s方法将返回密钥的字节表示形式。
	Exportable bool
	//吊销实现基础加密算法
	Revocation Revocation
}

RevocationKeyGen生成吊销密钥。

func (*RevocationKeyGen) KeyGen

func (g *RevocationKeyGen) KeyGen(opts bccsp.KeyGenOpts) (bccsp.Key, error)

type RevocationPublicKeyImporter

type RevocationPublicKeyImporter struct {
}

RevocationPublicKeyImporter导入吊销公钥

func (*RevocationPublicKeyImporter) KeyImport

func (i *RevocationPublicKeyImporter) KeyImport(raw interface{}, opts bccsp.KeyImportOpts) (k bccsp.Key, err error)

type SignatureScheme

type SignatureScheme interface {
	//签名创建新的IDemix签名(schnorr类型签名)。
	//属性切片控制公开哪些属性:
	//如果attributes[i].type==bccsp.idemixHiddenAttribute,则attribute i保持隐藏状态,否则将被公开。
	//我们要求撤销句柄保持未公开(即,属性[rhindex]==bccsp.idemixhiddenattribute)。
	//参数应理解为:
	//cred:IDemix凭证的序列化版本;
	//sk:用户密钥;
	//(nym,rnym):nym密钥对;
	//ipk:发行人公钥;
	//属性:如上所述;
	//msg:要签名的消息;
	//Rhindex:与属性相关的撤销句柄索引;
	//
	//是在引用中创建的)。
	Sign(cred []byte, sk Big, Nym Ecp, RNym Big, ipk IssuerPublicKey, attributes []bccsp.IdemixAttribute,
		msg []byte, rhIndex int, cri []byte) ([]byte, error)

	//verify验证IDemix签名。
	//属性切片控制它希望公开的属性
	//如果属性[i].type==bccsp.idemixHiddenAttribute,则属性i保持隐藏状态,否则
	//属性[i].值应包含所公开的属性值。
	//换句话说,此函数将检查如果属性i被公开,则第i个属性等于属性[i].value。
	//参数应理解为:
	//ipk:发行人公钥;
	//签名:签名验证;
	//消息:消息已签名;
	//属性:如上所述;
	//Rhindex:与属性相关的撤销句柄索引;
	//吊销公钥:吊销公钥;
	//时代:撤销时代。
	Verify(ipk IssuerPublicKey, signature, msg []byte, attributes []bccsp.IdemixAttribute, rhIndex int, revocationPublicKey *ecdsa.PublicKey, epoch int) error
}

SignatureScheme是一个本地接口,用于与IDemix实现分离。 标志相关操作

type Signer

type Signer struct {
	SignatureScheme SignatureScheme
}

func (*Signer) Sign

func (s *Signer) Sign(k bccsp.Key, digest []byte, opts bccsp.SignerOpts) ([]byte, error)

type User

type User interface {
	//new key生成新的用户密钥
	NewKey() (Big, error)

	//newkeyfrombytes将传递的字节转换为用户密钥
	NewKeyFromBytes(raw []byte) (Big, error)

	//makenym创建一个新的不可链接的笔名
	MakeNym(sk Big, key IssuerPublicKey) (Ecp, Big, error)

	//NewPublicNymFromBytes将传递的字节转换为公共名称
	NewPublicNymFromBytes(raw []byte) (Ecp, error)
}

用户是从IDemix实现中分离出来的本地接口

type UserKeyGen

type UserKeyGen struct {
	//exportable是允许颁发者密钥标记为exportable的标志。
	//如果密钥标记为可导出,则其byte s方法将返回密钥的字节表示形式。
	Exportable bool
	//用户实现底层加密算法
	User User
}

func (*UserKeyGen) KeyGen

func (g *UserKeyGen) KeyGen(opts bccsp.KeyGenOpts) (bccsp.Key, error)

type UserKeyImporter

type UserKeyImporter struct {
	//exportable是允许将密钥标记为exportable的标志。
	//如果密钥标记为可导出,则其byte s方法将返回密钥的字节表示形式。
	Exportable bool
	//用户实现底层加密算法
	User User
}

用户密钥导入器导入用户密钥

func (*UserKeyImporter) KeyImport

func (i *UserKeyImporter) KeyImport(raw interface{}, opts bccsp.KeyImportOpts) (k bccsp.Key, err error)

type Verifier

type Verifier struct {
	SignatureScheme SignatureScheme
}

func (*Verifier) Verify

func (v *Verifier) Verify(k bccsp.Key, signature, digest []byte, opts bccsp.SignerOpts) (bool, error)

Directories

Path Synopsis
伪造者生成的代码。
伪造者生成的代码。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL