代码拉取完成,页面将自动刷新
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: idemix/idemix.proto
/*
Package idemix is a generated protocol buffer package.
It is generated from these files:
idemix/idemix.proto
It has these top-level messages:
ECP
ECP2
IssuerPublicKey
IssuerKey
Credential
CredRequest
Signature
NymSignature
*/
package idemix
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// ECP is an elliptic curve point specified by its coordinates
// ECP corresponds to an element of the first group (G1)
type ECP struct {
X []byte `protobuf:"bytes,1,opt,name=X,proto3" json:"X,omitempty"`
Y []byte `protobuf:"bytes,2,opt,name=Y,proto3" json:"Y,omitempty"`
}
func (m *ECP) Reset() { *m = ECP{} }
func (m *ECP) String() string { return proto.CompactTextString(m) }
func (*ECP) ProtoMessage() {}
func (*ECP) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *ECP) GetX() []byte {
if m != nil {
return m.X
}
return nil
}
func (m *ECP) GetY() []byte {
if m != nil {
return m.Y
}
return nil
}
// ECP2 is an elliptic curve point specified by its coordinates
// ECP2 corresponds to an element of the second group (G2)
type ECP2 struct {
XA []byte `protobuf:"bytes,1,opt,name=XA,proto3" json:"XA,omitempty"`
XB []byte `protobuf:"bytes,2,opt,name=XB,proto3" json:"XB,omitempty"`
YA []byte `protobuf:"bytes,3,opt,name=YA,proto3" json:"YA,omitempty"`
YB []byte `protobuf:"bytes,4,opt,name=YB,proto3" json:"YB,omitempty"`
}
func (m *ECP2) Reset() { *m = ECP2{} }
func (m *ECP2) String() string { return proto.CompactTextString(m) }
func (*ECP2) ProtoMessage() {}
func (*ECP2) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
func (m *ECP2) GetXA() []byte {
if m != nil {
return m.XA
}
return nil
}
func (m *ECP2) GetXB() []byte {
if m != nil {
return m.XB
}
return nil
}
func (m *ECP2) GetYA() []byte {
if m != nil {
return m.YA
}
return nil
}
func (m *ECP2) GetYB() []byte {
if m != nil {
return m.YB
}
return nil
}
// IssuerPublicKey specifies an issuer public key that consists of
// AttributeNames - a list of the attribute names of a credential issued by the issuer
// HSk, HRand, HAttrs, W, BarG1, BarG2 - group elements corresponding to the signing key, randomness, and attributes
// ProofC, ProofS compose a zero-knowledge proof of knowledge of the secret key
// Hash is a hash of the public key appended to it
type IssuerPublicKey struct {
AttributeNames []string `protobuf:"bytes,1,rep,name=AttributeNames" json:"AttributeNames,omitempty"`
HSk *ECP `protobuf:"bytes,2,opt,name=HSk" json:"HSk,omitempty"`
HRand *ECP `protobuf:"bytes,3,opt,name=HRand" json:"HRand,omitempty"`
HAttrs []*ECP `protobuf:"bytes,4,rep,name=HAttrs" json:"HAttrs,omitempty"`
W *ECP2 `protobuf:"bytes,5,opt,name=W" json:"W,omitempty"`
BarG1 *ECP `protobuf:"bytes,6,opt,name=BarG1" json:"BarG1,omitempty"`
BarG2 *ECP `protobuf:"bytes,7,opt,name=BarG2" json:"BarG2,omitempty"`
ProofC []byte `protobuf:"bytes,8,opt,name=ProofC,proto3" json:"ProofC,omitempty"`
ProofS []byte `protobuf:"bytes,9,opt,name=ProofS,proto3" json:"ProofS,omitempty"`
Hash []byte `protobuf:"bytes,10,opt,name=Hash,proto3" json:"Hash,omitempty"`
}
func (m *IssuerPublicKey) Reset() { *m = IssuerPublicKey{} }
func (m *IssuerPublicKey) String() string { return proto.CompactTextString(m) }
func (*IssuerPublicKey) ProtoMessage() {}
func (*IssuerPublicKey) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
func (m *IssuerPublicKey) GetAttributeNames() []string {
if m != nil {
return m.AttributeNames
}
return nil
}
func (m *IssuerPublicKey) GetHSk() *ECP {
if m != nil {
return m.HSk
}
return nil
}
func (m *IssuerPublicKey) GetHRand() *ECP {
if m != nil {
return m.HRand
}
return nil
}
func (m *IssuerPublicKey) GetHAttrs() []*ECP {
if m != nil {
return m.HAttrs
}
return nil
}
func (m *IssuerPublicKey) GetW() *ECP2 {
if m != nil {
return m.W
}
return nil
}
func (m *IssuerPublicKey) GetBarG1() *ECP {
if m != nil {
return m.BarG1
}
return nil
}
func (m *IssuerPublicKey) GetBarG2() *ECP {
if m != nil {
return m.BarG2
}
return nil
}
func (m *IssuerPublicKey) GetProofC() []byte {
if m != nil {
return m.ProofC
}
return nil
}
func (m *IssuerPublicKey) GetProofS() []byte {
if m != nil {
return m.ProofS
}
return nil
}
func (m *IssuerPublicKey) GetHash() []byte {
if m != nil {
return m.Hash
}
return nil
}
// IssuerKey specifies an issuer key pair that consists of
// ISk - the issuer secret key and
// IssuerPublicKey - the issuer public key
type IssuerKey struct {
ISk []byte `protobuf:"bytes,1,opt,name=ISk,proto3" json:"ISk,omitempty"`
IPk *IssuerPublicKey `protobuf:"bytes,2,opt,name=IPk" json:"IPk,omitempty"`
}
func (m *IssuerKey) Reset() { *m = IssuerKey{} }
func (m *IssuerKey) String() string { return proto.CompactTextString(m) }
func (*IssuerKey) ProtoMessage() {}
func (*IssuerKey) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
func (m *IssuerKey) GetISk() []byte {
if m != nil {
return m.ISk
}
return nil
}
func (m *IssuerKey) GetIPk() *IssuerPublicKey {
if m != nil {
return m.IPk
}
return nil
}
// Credential specifies a credential object that consists of
// A, B, E, S - signature value
// Attrs - attribute values
type Credential struct {
A *ECP `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"`
B *ECP `protobuf:"bytes,2,opt,name=B" json:"B,omitempty"`
E []byte `protobuf:"bytes,3,opt,name=E,proto3" json:"E,omitempty"`
S []byte `protobuf:"bytes,4,opt,name=S,proto3" json:"S,omitempty"`
Attrs [][]byte `protobuf:"bytes,5,rep,name=Attrs,proto3" json:"Attrs,omitempty"`
}
func (m *Credential) Reset() { *m = Credential{} }
func (m *Credential) String() string { return proto.CompactTextString(m) }
func (*Credential) ProtoMessage() {}
func (*Credential) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
func (m *Credential) GetA() *ECP {
if m != nil {
return m.A
}
return nil
}
func (m *Credential) GetB() *ECP {
if m != nil {
return m.B
}
return nil
}
func (m *Credential) GetE() []byte {
if m != nil {
return m.E
}
return nil
}
func (m *Credential) GetS() []byte {
if m != nil {
return m.S
}
return nil
}
func (m *Credential) GetAttrs() [][]byte {
if m != nil {
return m.Attrs
}
return nil
}
// CredRequest specifies a credential request object that consists of
// Nym - a pseudonym, which is a commitment to the user secret
// IssuerNonce - a random nonce provided by the issuer
// ProofC, ProofS1, ProofS2 - a zero-knowledge proof of knowledge of the
// user secret inside Nym
type CredRequest struct {
Nym *ECP `protobuf:"bytes,1,opt,name=Nym" json:"Nym,omitempty"`
IssuerNonce []byte `protobuf:"bytes,2,opt,name=IssuerNonce,proto3" json:"IssuerNonce,omitempty"`
ProofC []byte `protobuf:"bytes,3,opt,name=ProofC,proto3" json:"ProofC,omitempty"`
ProofS1 []byte `protobuf:"bytes,4,opt,name=ProofS1,proto3" json:"ProofS1,omitempty"`
ProofS2 []byte `protobuf:"bytes,5,opt,name=ProofS2,proto3" json:"ProofS2,omitempty"`
}
func (m *CredRequest) Reset() { *m = CredRequest{} }
func (m *CredRequest) String() string { return proto.CompactTextString(m) }
func (*CredRequest) ProtoMessage() {}
func (*CredRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (m *CredRequest) GetNym() *ECP {
if m != nil {
return m.Nym
}
return nil
}
func (m *CredRequest) GetIssuerNonce() []byte {
if m != nil {
return m.IssuerNonce
}
return nil
}
func (m *CredRequest) GetProofC() []byte {
if m != nil {
return m.ProofC
}
return nil
}
func (m *CredRequest) GetProofS1() []byte {
if m != nil {
return m.ProofS1
}
return nil
}
func (m *CredRequest) GetProofS2() []byte {
if m != nil {
return m.ProofS2
}
return nil
}
// Signature specifies a signature object that consists of
// APrime, ABar, BPrime, Proof* - randomized credential signature values
// and a zero-knowledge proof of knowledge of a credential
// and the corresponding user secret together with the attribute values
// Nonce - a fresh nonce used for the signature
// Nym - a fresh pseudonym (a commitment to to the user secert)
// ProofSRNym - a zero-knowledge proof of knowledge of the
// user secret inside Nym
type Signature struct {
APrime *ECP `protobuf:"bytes,1,opt,name=APrime" json:"APrime,omitempty"`
ABar *ECP `protobuf:"bytes,2,opt,name=ABar" json:"ABar,omitempty"`
BPrime *ECP `protobuf:"bytes,3,opt,name=BPrime" json:"BPrime,omitempty"`
ProofC []byte `protobuf:"bytes,4,opt,name=ProofC,proto3" json:"ProofC,omitempty"`
ProofSSk []byte `protobuf:"bytes,5,opt,name=ProofSSk,proto3" json:"ProofSSk,omitempty"`
ProofSE []byte `protobuf:"bytes,6,opt,name=ProofSE,proto3" json:"ProofSE,omitempty"`
ProofSR2 []byte `protobuf:"bytes,7,opt,name=ProofSR2,proto3" json:"ProofSR2,omitempty"`
ProofSR3 []byte `protobuf:"bytes,8,opt,name=ProofSR3,proto3" json:"ProofSR3,omitempty"`
ProofSSPrime []byte `protobuf:"bytes,9,opt,name=ProofSSPrime,proto3" json:"ProofSSPrime,omitempty"`
ProofSAttrs [][]byte `protobuf:"bytes,10,rep,name=ProofSAttrs,proto3" json:"ProofSAttrs,omitempty"`
Nonce []byte `protobuf:"bytes,11,opt,name=Nonce,proto3" json:"Nonce,omitempty"`
Nym *ECP `protobuf:"bytes,12,opt,name=Nym" json:"Nym,omitempty"`
ProofSRNym []byte `protobuf:"bytes,13,opt,name=ProofSRNym,proto3" json:"ProofSRNym,omitempty"`
}
func (m *Signature) Reset() { *m = Signature{} }
func (m *Signature) String() string { return proto.CompactTextString(m) }
func (*Signature) ProtoMessage() {}
func (*Signature) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (m *Signature) GetAPrime() *ECP {
if m != nil {
return m.APrime
}
return nil
}
func (m *Signature) GetABar() *ECP {
if m != nil {
return m.ABar
}
return nil
}
func (m *Signature) GetBPrime() *ECP {
if m != nil {
return m.BPrime
}
return nil
}
func (m *Signature) GetProofC() []byte {
if m != nil {
return m.ProofC
}
return nil
}
func (m *Signature) GetProofSSk() []byte {
if m != nil {
return m.ProofSSk
}
return nil
}
func (m *Signature) GetProofSE() []byte {
if m != nil {
return m.ProofSE
}
return nil
}
func (m *Signature) GetProofSR2() []byte {
if m != nil {
return m.ProofSR2
}
return nil
}
func (m *Signature) GetProofSR3() []byte {
if m != nil {
return m.ProofSR3
}
return nil
}
func (m *Signature) GetProofSSPrime() []byte {
if m != nil {
return m.ProofSSPrime
}
return nil
}
func (m *Signature) GetProofSAttrs() [][]byte {
if m != nil {
return m.ProofSAttrs
}
return nil
}
func (m *Signature) GetNonce() []byte {
if m != nil {
return m.Nonce
}
return nil
}
func (m *Signature) GetNym() *ECP {
if m != nil {
return m.Nym
}
return nil
}
func (m *Signature) GetProofSRNym() []byte {
if m != nil {
return m.ProofSRNym
}
return nil
}
// NymSignature specifies a signature object that signs a message
// with respect to a pseudonym. It differs from the standard idemix.signature in the fact that
// the standard signature object also proves that the pseudonym is based on a secret certified by
// a CA (issuer), whereas NymSignature only proves that the the owner of the pseudonym
// signed the message
type NymSignature struct {
// ProofC is the Fiat-Shamir challenge of the ZKP
ProofC []byte `protobuf:"bytes,1,opt,name=ProofC,proto3" json:"ProofC,omitempty"`
// ProofSSK is the s-value proving knowledge of the user secret key
ProofSSk []byte `protobuf:"bytes,2,opt,name=ProofSSk,proto3" json:"ProofSSk,omitempty"`
// ProofSRNym is the s-value proving knowledge of the pseudonym secret
ProofSRNym []byte `protobuf:"bytes,3,opt,name=ProofSRNym,proto3" json:"ProofSRNym,omitempty"`
// Nonce is a fresh nonce used for the signature
Nonce []byte `protobuf:"bytes,4,opt,name=Nonce,proto3" json:"Nonce,omitempty"`
}
func (m *NymSignature) Reset() { *m = NymSignature{} }
func (m *NymSignature) String() string { return proto.CompactTextString(m) }
func (*NymSignature) ProtoMessage() {}
func (*NymSignature) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (m *NymSignature) GetProofC() []byte {
if m != nil {
return m.ProofC
}
return nil
}
func (m *NymSignature) GetProofSSk() []byte {
if m != nil {
return m.ProofSSk
}
return nil
}
func (m *NymSignature) GetProofSRNym() []byte {
if m != nil {
return m.ProofSRNym
}
return nil
}
func (m *NymSignature) GetNonce() []byte {
if m != nil {
return m.Nonce
}
return nil
}
func init() {
proto.RegisterType((*ECP)(nil), "ECP")
proto.RegisterType((*ECP2)(nil), "ECP2")
proto.RegisterType((*IssuerPublicKey)(nil), "IssuerPublicKey")
proto.RegisterType((*IssuerKey)(nil), "IssuerKey")
proto.RegisterType((*Credential)(nil), "Credential")
proto.RegisterType((*CredRequest)(nil), "CredRequest")
proto.RegisterType((*Signature)(nil), "Signature")
proto.RegisterType((*NymSignature)(nil), "NymSignature")
}
func init() { proto.RegisterFile("idemix/idemix.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 591 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x54, 0x4d, 0x6b, 0xdb, 0x4c,
0x18, 0x64, 0xf5, 0xe1, 0xc4, 0x8f, 0xf5, 0xe6, 0x0d, 0x9b, 0x12, 0x96, 0x50, 0x8a, 0x2b, 0x4a,
0xc8, 0xc9, 0x21, 0xca, 0x2f, 0x90, 0x8c, 0x5a, 0x87, 0x82, 0x11, 0xd2, 0x21, 0x76, 0x6f, 0xb2,
0xbd, 0xb6, 0x85, 0x2d, 0x2b, 0x5d, 0x49, 0x10, 0xff, 0x8e, 0x5e, 0xfb, 0x4f, 0x7b, 0x29, 0xfb,
0xa1, 0x4f, 0xe8, 0xc9, 0x9a, 0x19, 0x3d, 0xfb, 0x8c, 0x67, 0x16, 0xc1, 0x4d, 0xb2, 0xa1, 0x69,
0xf2, 0xfe, 0x28, 0x7f, 0x26, 0x6f, 0x2c, 0x2b, 0x32, 0xfb, 0x33, 0xe8, 0xfe, 0x34, 0xc0, 0x16,
0xa0, 0x05, 0x41, 0x63, 0xf4, 0x60, 0x85, 0x68, 0xc1, 0xd1, 0x92, 0x68, 0x12, 0x2d, 0xed, 0xaf,
0x60, 0xf8, 0xd3, 0xc0, 0xc1, 0x57, 0xa0, 0x2d, 0x5c, 0xf5, 0x92, 0xb6, 0x70, 0x05, 0xf6, 0xd4,
0x6b, 0xda, 0xc2, 0xe3, 0x78, 0xe9, 0x12, 0x5d, 0xe2, 0xa5, 0xd0, 0x97, 0x1e, 0x31, 0x14, 0xf6,
0xec, 0xdf, 0x1a, 0xfc, 0xff, 0x92, 0xe7, 0x25, 0x65, 0x41, 0xb9, 0x3a, 0x26, 0xeb, 0xef, 0xf4,
0x8c, 0xef, 0xe1, 0xca, 0x2d, 0x0a, 0x96, 0xac, 0xca, 0x82, 0xce, 0xe3, 0x94, 0xe6, 0x04, 0x8d,
0xf5, 0x87, 0x61, 0xd8, 0x63, 0xf1, 0x2d, 0xe8, 0xb3, 0xe8, 0x20, 0x96, 0x8d, 0x1c, 0x63, 0xe2,
0x4f, 0x83, 0x90, 0x13, 0xf8, 0x0e, 0xcc, 0x59, 0x18, 0x9f, 0x36, 0x62, 0x6d, 0xa5, 0x48, 0x0a,
0x7f, 0x84, 0xc1, 0x8c, 0x1f, 0x93, 0x13, 0x63, 0xac, 0xd7, 0xa2, 0xe2, 0xf0, 0x0d, 0xa0, 0x57,
0x62, 0x8a, 0x29, 0x93, 0x0b, 0x4e, 0x88, 0x5e, 0xf9, 0x71, 0x5e, 0xcc, 0xbe, 0x3d, 0x91, 0x41,
0xfb, 0x38, 0x41, 0x55, 0x9a, 0x43, 0x2e, 0xfa, 0x9a, 0x83, 0x6f, 0x61, 0x10, 0xb0, 0x2c, 0xdb,
0x4e, 0xc9, 0xa5, 0xf8, 0xbb, 0x0a, 0xd5, 0x7c, 0x44, 0x86, 0x2d, 0x3e, 0xc2, 0x18, 0x8c, 0x59,
0x9c, 0xef, 0x09, 0x08, 0x56, 0x3c, 0xdb, 0x2e, 0x0c, 0x65, 0x3a, 0x3c, 0x97, 0x6b, 0xd0, 0x5f,
0xa2, 0x83, 0x0a, 0x9b, 0x3f, 0x62, 0x1b, 0xf4, 0x97, 0xa0, 0x4a, 0xe0, 0x7a, 0xd2, 0x0b, 0x32,
0xe4, 0xa2, 0xbd, 0x05, 0x98, 0x32, 0xba, 0xa1, 0xa7, 0x22, 0x89, 0x8f, 0x18, 0x03, 0x92, 0x75,
0x55, 0x66, 0x91, 0xcb, 0x39, 0xaf, 0x93, 0x22, 0xf2, 0x78, 0xdb, 0xbe, 0xaa, 0x0d, 0xf9, 0x1c,
0x45, 0xaa, 0x34, 0x14, 0xe1, 0x0f, 0x60, 0xca, 0x08, 0xcd, 0xb1, 0xfe, 0x60, 0x85, 0x12, 0xd8,
0xbf, 0x10, 0x8c, 0xf8, 0xa2, 0x90, 0xfe, 0x2c, 0x69, 0x5e, 0xf0, 0x76, 0xe6, 0xe7, 0xb4, 0xb3,
0x8b, 0x13, 0x78, 0x0c, 0x23, 0xe9, 0x73, 0x9e, 0x9d, 0xd6, 0x54, 0x5d, 0x95, 0x36, 0xd5, 0x0a,
0x4e, 0xef, 0x04, 0x47, 0xe0, 0x42, 0x46, 0xf5, 0xa4, 0xbc, 0x54, 0xb0, 0x51, 0x1c, 0xd1, 0x5e,
0xad, 0x38, 0xf6, 0x1f, 0x0d, 0x86, 0x51, 0xb2, 0x3b, 0xc5, 0x45, 0xc9, 0x28, 0x6f, 0xdf, 0x0d,
0x58, 0x92, 0xd2, 0x8e, 0x2d, 0xc5, 0x61, 0x02, 0x86, 0xeb, 0xc5, 0xac, 0x13, 0x85, 0x60, 0xf8,
0x9c, 0x27, 0xe7, 0xda, 0x57, 0x4a, 0x71, 0x2d, 0xbf, 0x46, 0xc7, 0xef, 0x1d, 0x5c, 0x4a, 0x1b,
0xd1, 0x41, 0xd9, 0xaa, 0x71, 0xe3, 0xd8, 0x17, 0xd7, 0xaa, 0x76, 0xec, 0x37, 0x53, 0xa1, 0xbc,
0x55, 0xf5, 0x54, 0xe8, 0xb4, 0xb4, 0x67, 0x75, 0xa9, 0x6a, 0x8c, 0x6d, 0xb0, 0xd4, 0xe9, 0xd2,
0xa9, 0xbc, 0x5c, 0x1d, 0x8e, 0x67, 0x2f, 0xb1, 0xec, 0x0f, 0x44, 0x7f, 0x6d, 0x8a, 0x77, 0x2b,
0x7b, 0x19, 0x89, 0x71, 0xb3, 0x6a, 0x44, 0x74, 0x69, 0xf5, 0xbb, 0xfc, 0x04, 0xa0, 0xf6, 0x73,
0xf9, 0x3f, 0x31, 0xd2, 0x62, 0xec, 0x77, 0xb0, 0xe6, 0xe7, 0xb4, 0xc9, 0xbf, 0x49, 0x0a, 0xfd,
0x33, 0x29, 0xad, 0x97, 0x54, 0x77, 0x87, 0xde, 0xdf, 0xd1, 0x38, 0x36, 0x5a, 0x8e, 0xbd, 0xfb,
0x1f, 0x5f, 0x76, 0x49, 0xb1, 0x2f, 0x57, 0x93, 0x75, 0x96, 0x3e, 0xee, 0xcf, 0x6f, 0x94, 0x1d,
0xe9, 0x66, 0x47, 0xd9, 0xe3, 0x36, 0x5e, 0xb1, 0x64, 0xad, 0x3e, 0x78, 0xab, 0x81, 0xf8, 0xe2,
0x3d, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x06, 0x88, 0xd9, 0x9e, 0x08, 0x05, 0x00, 0x00,
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。