idemix

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2023 License: Apache-2.0 Imports: 33 Imported by: 4

Documentation

Index

Constants

View Source
const (
	ConfigDirUser                       = "user"
	ConfigFileIssuerPublicKey           = "IssuerPublicKey"
	IdemixConfigFileRevocationPublicKey = "IssuerRevocationPublicKey"
	ConfigFileSigner                    = "SignerConfig"
)
View Source
const (
	EIDIndex = 2
	RHIndex  = 3
)
View Source
const (
	Any bccsp.SignatureType = 100
)
View Source
const (
	MSPType = "idemix"
)

Variables

This section is empty.

Functions

func CheckRole added in v0.3.0

func CheckRole(bitmask int, role Role) bool

CheckRole Prove that the desired role is contained or not in the bitmask

func GetCurveAndTranslator added in v0.3.0

func GetCurveAndTranslator(curveID math.CurveID) (*math.Curve, idemix2.Translator, error)

func GetFabricCAIdemixMspConfig added in v0.3.0

func GetFabricCAIdemixMspConfig(dir string, ID string) (*m.MSPConfig, error)

GetFabricCAIdemixMspConfig returns the configuration for the Idemix MSP generated by Fabric-CA

func GetIdemixRoleFromMSPRole added in v0.3.0

func GetIdemixRoleFromMSPRole(role *m.MSPRole) int

GetIdemixRoleFromMSPRole gets a MSP Role type and returns the integer value

func GetIdemixRoleFromMSPRoleType added in v0.3.0

func GetIdemixRoleFromMSPRoleType(rtype m.MSPRole_MSPRoleType) int

GetIdemixRoleFromMSPRoleType gets a MSP role type and returns the integer value

func GetIdemixRoleFromMSPRoleValue added in v0.3.0

func GetIdemixRoleFromMSPRoleValue(role int) int

GetIdemixRoleFromMSPRoleValue Receives a MSP role value and returns the idemix equivalent

func GetLocalMspConfigWithType added in v0.3.0

func GetLocalMspConfigWithType(dir string, bccspConfig *factory.FactoryOpts, id string) (*m.MSPConfig, error)

func GetRoleMaskFromIdemixRole

func GetRoleMaskFromIdemixRole(role Role) int

GetRoleMaskFromIdemixRole return a bitmask for one role

func GetRoleMaskFromIdemixRoles added in v0.3.0

func GetRoleMaskFromIdemixRoles(roles []Role) int

GetRoleMaskFromIdemixRoles Receive a list of roles to combine in a single bitmask

func NewBCCSP added in v0.3.0

func NewBCCSP(curveID math.CurveID) (bccsp.BCCSP, error)

NewBCCSP returns an instance of the idemix BCCSP for the given curve

func NewKSVBCCSP added in v0.3.0

func NewKSVBCCSP(kvsStore keystore.KVS, curveID math.CurveID, aries bool) (bccsp.BCCSP, error)

NewKSVBCCSP returns an instance of the idemix BCCSP for the given curve and kvsStore

Types

type AuditInfo

type AuditInfo struct {
	EidNymAuditData *csp.AttrNymAuditData
	RhNymAuditData  *csp.AttrNymAuditData
	Attributes      [][]byte
	Csp             csp.BCCSP `json:"-"`
	IssuerPublicKey csp.Key   `json:"-"`
}

func DeserializeAuditInfo

func DeserializeAuditInfo(raw []byte) (*AuditInfo, error)

func (*AuditInfo) Bytes

func (a *AuditInfo) Bytes() ([]byte, error)

func (*AuditInfo) EnrollmentID

func (a *AuditInfo) EnrollmentID() string

func (*AuditInfo) FromBytes

func (a *AuditInfo) FromBytes(raw []byte) error

func (*AuditInfo) Match

func (a *AuditInfo) Match(id []byte) error

func (*AuditInfo) RevocationHandle added in v0.3.0

func (a *AuditInfo) RevocationHandle() string

type Deserializer added in v0.3.0

type Deserializer struct {
	*Idemix
}

func NewDeserializer

func NewDeserializer(ipk []byte) (*Deserializer, error)

NewDeserializer returns a new deserializer for the best effort strategy

func NewDeserializerWithBCCSP added in v0.3.0

func NewDeserializerWithBCCSP(ipk []byte, verType csp.VerificationType, nymEID []byte, cryptoProvider csp.BCCSP) (*Deserializer, error)

func (*Deserializer) DeserializeAuditInfo added in v0.3.0

func (i *Deserializer) DeserializeAuditInfo(raw []byte) (*AuditInfo, error)

func (*Deserializer) DeserializeSigner added in v0.3.0

func (i *Deserializer) DeserializeSigner(raw []byte) (driver.Signer, error)

func (*Deserializer) DeserializeVerifier added in v0.3.0

func (i *Deserializer) DeserializeVerifier(raw []byte) (driver.Verifier, error)

func (*Deserializer) DeserializeVerifierAgainstNymEID added in v0.3.0

func (i *Deserializer) DeserializeVerifierAgainstNymEID(raw []byte, nymEID []byte) (driver.Verifier, error)

func (*Deserializer) Info added in v0.3.0

func (i *Deserializer) Info(raw []byte, auditInfo []byte) (string, error)

func (*Deserializer) String added in v0.3.0

func (i *Deserializer) String() string

type FolderIdentityLoader added in v0.2.0

type FolderIdentityLoader struct {
	*IdentityLoader
}

func (*FolderIdentityLoader) Load added in v0.2.0

func (f *FolderIdentityLoader) Load(manager driver.Manager, c config.MSP) error

type Idemix added in v0.3.0

type Idemix struct {
	Name            string
	Ipk             []byte
	Csp             bccsp.BCCSP
	IssuerPublicKey bccsp.Key
	RevocationPK    bccsp.Key
	Epoch           int
	VerType         bccsp.VerificationType
	NymEID          []byte
	RhNym           []byte
}

func (*Idemix) Deserialize added in v0.3.0

func (c *Idemix) Deserialize(raw []byte, checkValidity bool) (*Identity, error)

func (*Idemix) DeserializeAgainstNymEID added in v0.3.0

func (c *Idemix) DeserializeAgainstNymEID(raw []byte, checkValidity bool, nymEID []byte) (*Identity, error)

func (*Idemix) DeserializeAuditInfo added in v0.3.0

func (c *Idemix) DeserializeAuditInfo(raw []byte) (*AuditInfo, error)

type Identity added in v0.3.0

type Identity struct {
	Identity           *MSPIdentity
	NymPublicKey       bccsp.Key
	SerializedIdentity *m.SerializedIdentity
	OU                 *m.OrganizationUnit
	Role               *m.MSPRole
}

type IdentityCache added in v0.2.0

type IdentityCache struct {
	// contains filtered or unexported fields
}

func NewIdentityCache added in v0.2.0

func NewIdentityCache(backed IdentityCacheBackendFunc, size int, opts *driver.IdentityOptions) *IdentityCache

func (*IdentityCache) Identity added in v0.2.0

func (c *IdentityCache) Identity(opts *driver.IdentityOptions) (view.Identity, []byte, error)

type IdentityCacheBackendFunc added in v0.2.0

type IdentityCacheBackendFunc func(opts *driver.IdentityOptions) (view.Identity, []byte, error)

type IdentityLoader added in v0.2.0

type IdentityLoader struct{}

func (*IdentityLoader) Load added in v0.2.0

func (i *IdentityLoader) Load(manager driver.Manager, c config.MSP) error

type MSPIdentity added in v0.3.0

type MSPIdentity struct {
	NymPublicKey bccsp.Key
	Idemix       *Idemix
	ID           *msp.IdentityIdentifier
	Role         *m.MSPRole
	OU           *m.OrganizationUnit
	// AssociationProof contains cryptographic proof that this identity
	// belongs to the MSP id.provider, i.e., it proves that the pseudonym
	// is constructed from a secret key on which the CA issued a credential.
	AssociationProof []byte
	VerificationType bccsp.VerificationType
}

func NewMSPIdentityWithVerType added in v0.3.0

func NewMSPIdentityWithVerType(idemix *Idemix, NymPublicKey bccsp.Key, role *m.MSPRole, ou *m.OrganizationUnit, proof []byte, verificationType bccsp.VerificationType) (*MSPIdentity, error)

func (*MSPIdentity) Anonymous added in v0.3.0

func (id *MSPIdentity) Anonymous() bool

func (*MSPIdentity) ExpiresAt added in v0.3.0

func (id *MSPIdentity) ExpiresAt() time.Time

func (*MSPIdentity) GetIdentifier added in v0.3.0

func (id *MSPIdentity) GetIdentifier() *msp.IdentityIdentifier

func (*MSPIdentity) GetMSPIdentifier added in v0.3.0

func (id *MSPIdentity) GetMSPIdentifier() string

func (*MSPIdentity) GetOrganizationalUnits added in v0.3.0

func (id *MSPIdentity) GetOrganizationalUnits() []*msp.OUIdentifier

func (*MSPIdentity) SatisfiesPrincipal added in v0.3.0

func (id *MSPIdentity) SatisfiesPrincipal(principal *m.MSPPrincipal) error

func (*MSPIdentity) Serialize added in v0.3.0

func (id *MSPIdentity) Serialize() ([]byte, error)

func (*MSPIdentity) Validate added in v0.3.0

func (id *MSPIdentity) Validate() error

func (*MSPIdentity) Verify added in v0.3.0

func (id *MSPIdentity) Verify(msg []byte, sig []byte) error

type MSPSigningIdentity added in v0.3.0

type MSPSigningIdentity struct {
	*MSPIdentity `json:"-"`
	Cred         []byte
	UserKey      bccsp.Key `json:"-"`
	NymKey       bccsp.Key `json:"-"`
	EnrollmentId string
}

func (*MSPSigningIdentity) GetPublicVersion added in v0.3.0

func (id *MSPSigningIdentity) GetPublicVersion() driver.Identity

func (*MSPSigningIdentity) Sign added in v0.3.0

func (id *MSPSigningIdentity) Sign(msg []byte) ([]byte, error)

type NymSignatureVerifier added in v0.3.0

type NymSignatureVerifier struct {
	CSP   bccsp.BCCSP
	IPK   bccsp.Key
	NymPK bccsp.Key
}

func (*NymSignatureVerifier) Verify added in v0.3.0

func (v *NymSignatureVerifier) Verify(message, sigma []byte) error

type Provider added in v0.3.0

type Provider struct {
	*Idemix

	SignerService SignerService
	// contains filtered or unexported fields
}

func NewProvider

func NewProvider(conf1 *m.MSPConfig, signerService SignerService, sigType bccsp.SignatureType, cryptoProvider bccsp.BCCSP) (*Provider, error)

func NewProviderWithAnyPolicy added in v0.3.0

func NewProviderWithAnyPolicy(conf1 *m.MSPConfig, sp view2.ServiceProvider) (*Provider, error)

func NewProviderWithAnyPolicyAndCurve added in v0.3.0

func NewProviderWithAnyPolicyAndCurve(conf1 *m.MSPConfig, sp view2.ServiceProvider, curveID math.CurveID) (*Provider, error)

func NewProviderWithEidRhNymPolicy added in v0.3.0

func NewProviderWithEidRhNymPolicy(conf1 *m.MSPConfig, sp view2.ServiceProvider) (*Provider, error)

func NewProviderWithSigType

func NewProviderWithSigType(conf1 *m.MSPConfig, sp view2.ServiceProvider, sigType bccsp.SignatureType) (*Provider, error)

func NewProviderWithSigTypeAncCurve added in v0.3.0

func NewProviderWithSigTypeAncCurve(conf1 *m.MSPConfig, sp view2.ServiceProvider, sigType bccsp.SignatureType, curveID math.CurveID) (*Provider, error)

func NewProviderWithStandardPolicy added in v0.3.0

func NewProviderWithStandardPolicy(conf1 *m.MSPConfig, sp view2.ServiceProvider) (*Provider, error)

func (*Provider) DeserializeSigner added in v0.3.0

func (p *Provider) DeserializeSigner(raw []byte) (driver.Signer, error)

func (*Provider) DeserializeSigningIdentity added in v0.3.0

func (p *Provider) DeserializeSigningIdentity(raw []byte) (driver.SigningIdentity, error)

func (*Provider) DeserializeVerifier added in v0.3.0

func (p *Provider) DeserializeVerifier(raw []byte) (driver.Verifier, error)

func (*Provider) EnrollmentID added in v0.3.0

func (p *Provider) EnrollmentID() string

func (*Provider) Identity added in v0.3.0

func (p *Provider) Identity(opts *driver2.IdentityOptions) (view.Identity, []byte, error)

func (*Provider) Info added in v0.3.0

func (p *Provider) Info(raw []byte, auditInfo []byte) (string, error)

func (*Provider) IsRemote added in v0.3.0

func (p *Provider) IsRemote() bool

func (*Provider) String added in v0.3.0

func (p *Provider) String() string

type Role

type Role int32

Role : Represents a IdemixRole

const (
	MEMBER Role = 1
	ADMIN  Role = 2
	CLIENT Role = 4
	PEER   Role = 8
)

The expected roles are 4; We can combine them using a bitmask

type SignerConfig added in v0.3.0

type SignerConfig struct {
	// Cred represents the serialized idemix credential of the default signer
	Cred []byte `protobuf:"bytes,1,opt,name=Cred,proto3" json:"Cred,omitempty"`
	// Sk is the secret key of the default signer, corresponding to credential Cred
	Sk []byte `protobuf:"bytes,2,opt,name=Sk,proto3" json:"Sk,omitempty"`
	// OrganizationalUnitIdentifier defines the organizational unit the default signer is in
	OrganizationalUnitIdentifier string `` /* 140-byte string literal not displayed */
	// Role defines whether the default signer is admin, member, peer, or client
	Role int `protobuf:"varint,4,opt,name=role,json=role" json:"role,omitempty"`
	// EnrollmentID contains the enrollment id of this signer
	EnrollmentID string `protobuf:"bytes,5,opt,name=enrollment_id,json=enrollmentId" json:"enrollment_id,omitempty"`
	// CRI contains a serialized Credential Revocation Information
	CredentialRevocationInformation []byte `` /* 156-byte string literal not displayed */
	// RevocationHandle is the handle used to single out this credential and determine its revocation status
	RevocationHandle string `protobuf:"bytes,7,opt,name=revocation_handle,json=revocationHandle,proto3" json:"revocation_handle,omitempty"`
	// CurveID specifies the name of the Idemix curve to use, defaults to 'amcl.Fp256bn'
	CurveID string `protobuf:"bytes,8,opt,name=curve_id,json=curveID" json:"curveID,omitempty"`
}

SignerConfig contains the crypto material to set up an idemix signing identity

type SignerService

type SignerService interface {
	RegisterSigner(identity view.Identity, signer driver.Signer, verifier driver.Verifier) error
}

func GetSignerService

func GetSignerService(ctx view2.ServiceProvider) SignerService

Jump to

Keyboard shortcuts

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