setup

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DLogIdentifier = "zkatdlog"
	ProtocolV1     = 1
)

Variables

View Source
var (
	SupportedPrecisions = []uint64{16, 32, 64}
)

Functions

This section is empty.

Types

type IdemixIssuerPublicKey

type IdemixIssuerPublicKey struct {
	PublicKey []byte
	Curve     mathlib.CurveID
}

func (*IdemixIssuerPublicKey) FromProtos

func (*IdemixIssuerPublicKey) ToProtos

type PublicParams

type PublicParams struct {
	// DriverName is the name of token driver this public params refer to.
	DriverName driver.TokenDriverName
	// DriverVersion is the version of token driver this public params refer to.
	DriverVersion driver.TokenDriverVersion
	// Curve is the pairing-friendly elliptic curve used for everything but Idemix.
	Curve mathlib.CurveID
	// PedersenGenerators contains the public parameters for the Pedersen commitment scheme.
	PedersenGenerators []*mathlib.G1
	// RangeProofParams contains the public parameters for the range proof scheme.
	RangeProofParams *RangeProofParams
	// IdemixIssuerPublicKeys contains the idemix issuer public keys
	// Wallets should prefer the use of keys valid under the public key whose index in the array is the smallest.
	IdemixIssuerPublicKeys []*IdemixIssuerPublicKey
	// Auditors is a list of the public keys of the auditor(s).
	AuditorIDs []driver.Identity
	// IssuerIDs is a list of public keys of the entities that can issue tokens.
	IssuerIDs []driver.Identity
	// MaxToken is the maximum quantity a token can hold
	MaxToken uint64
	// QuantityPrecision is the precision used to represent quantities
	QuantityPrecision uint64
}

func NewPublicParamsFromBytes

func NewPublicParamsFromBytes(
	raw []byte,
	driverName driver.TokenDriverName,
	driverVersion driver.TokenDriverVersion,
) (*PublicParams, error)

func NewWith

func NewWith(driverName driver.TokenDriverName, driverVersion driver.TokenDriverVersion, bitLength uint64, idemixIssuerPK []byte, idemixCurveID mathlib.CurveID) (*PublicParams, error)

func Setup

func Setup(bitLength uint64, idemixIssuerPK []byte, idemixCurveID mathlib.CurveID) (*PublicParams, error)

func (*PublicParams) AddAuditor

func (p *PublicParams) AddAuditor(auditor driver.Identity)

func (*PublicParams) AddIssuer

func (p *PublicParams) AddIssuer(id driver.Identity)

func (*PublicParams) Auditors

func (p *PublicParams) Auditors() []driver.Identity

func (*PublicParams) Bytes

func (p *PublicParams) Bytes() ([]byte, error)

func (*PublicParams) CertificationDriver

func (p *PublicParams) CertificationDriver() string

func (*PublicParams) ComputeHash

func (p *PublicParams) ComputeHash() ([]byte, error)

func (*PublicParams) ComputeMaxTokenValue

func (p *PublicParams) ComputeMaxTokenValue() uint64

func (*PublicParams) Deserialize

func (p *PublicParams) Deserialize(raw []byte) error

func (*PublicParams) GeneratePedersenParameters

func (p *PublicParams) GeneratePedersenParameters() error

func (*PublicParams) GenerateRangeProofParameters

func (p *PublicParams) GenerateRangeProofParameters(bitLength uint64) error

func (*PublicParams) GraphHiding

func (p *PublicParams) GraphHiding() bool

func (*PublicParams) Issuers

func (p *PublicParams) Issuers() []driver.Identity

Issuers returns the list of authorized issuers

func (*PublicParams) MaxTokenValue

func (p *PublicParams) MaxTokenValue() uint64

func (*PublicParams) Precision

func (p *PublicParams) Precision() uint64

func (*PublicParams) Serialize

func (p *PublicParams) Serialize() ([]byte, error)

func (*PublicParams) SetAuditors

func (p *PublicParams) SetAuditors(ids []driver.Identity)

SetAuditors sets the auditors to the passed identities

func (*PublicParams) SetIssuers

func (p *PublicParams) SetIssuers(ids []driver.Identity)

SetIssuers sets the issuers to the passed identities

func (*PublicParams) String

func (p *PublicParams) String() string

func (*PublicParams) TokenDataHiding

func (p *PublicParams) TokenDataHiding() bool

func (*PublicParams) TokenDriverName

func (p *PublicParams) TokenDriverName() driver.TokenDriverName

func (*PublicParams) TokenDriverVersion

func (p *PublicParams) TokenDriverVersion() driver.TokenDriverVersion

func (*PublicParams) Validate

func (p *PublicParams) Validate() error

type RangeProofParams

type RangeProofParams struct {
	LeftGenerators  []*mathlib.G1
	RightGenerators []*mathlib.G1
	P               *mathlib.G1
	Q               *mathlib.G1
	BitLength       uint64
	NumberOfRounds  uint64
}

func (*RangeProofParams) FromProto

func (rpp *RangeProofParams) FromProto(params *pp.RangeProofParams) error

func (*RangeProofParams) ToProtos

func (rpp *RangeProofParams) ToProtos() (*pp.RangeProofParams, error)

func (*RangeProofParams) Validate

func (rpp *RangeProofParams) Validate(curveID mathlib.CurveID) error

Jump to

Keyboard shortcuts

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