Versions in this module Expand all Collapse all v1 v1.6.0 May 16, 2024 v1.5.0 Dec 15, 2023 v1.4.11-beta1 Nov 20, 2023 v1.4.10-beta2 Nov 8, 2023 v1.4.10-beta1 Nov 2, 2023 v1.4.9-beta-2 Oct 15, 2023 v1.4.9-beta Oct 12, 2023 v1.4.8 Aug 25, 2023 v1.4.8-beta Sep 3, 2023 v1.4.6 Dec 9, 2022 v1.4.5 Oct 27, 2022 v1.4.4 Dec 22, 2021 v1.4.3 Nov 16, 2021 v0 v0.0.2 Aug 9, 2023 v0.0.1 Aug 9, 2023 Changes in this version + const PubKeyBytesLenCompressed + const PubKeyBytesLenHybrid + const PubKeyBytesLenUncompressed + var MAX_64_BITS = new(big.Int).SetUint64(0xFFFFFFFFFFFFFFFF) + var VecLength = 512 + func CalculateL(aL, sL []*big.Int, z, x *big.Int) []*big.Int + func CalculateLMRP(aL, sL []*big.Int, z, x *big.Int) []*big.Int + func CalculateR(aR, sR, y, po2 []*big.Int, z, x *big.Int) []*big.Int + func CalculateRMRP(aR, sR, y, zTimesTwo []*big.Int, z, x *big.Int) []*big.Int + func Delta(y []*big.Int, z *big.Int) *big.Int + func DeltaMRP(y []*big.Int, z *big.Int, m int) *big.Int + func DeserializeCompressed(curve elliptic.Curve, b []byte) *ecdsa.PublicKey + func GenKeyImage(privkey *ecdsa.PrivateKey) *ecdsa.PublicKey + func GenKeyRing(ring []*ecdsa.PublicKey, privkey *ecdsa.PrivateKey, s int) ([]*ecdsa.PublicKey, error) + func GenNewKeyRing(size int, privkey *ecdsa.PrivateKey, s int) ([]*ecdsa.PublicKey, error) + func GenerateNewParams(G, H []ECPoint, x *big.Int, L, R, P ECPoint) ([]ECPoint, []ECPoint, ECPoint) + func HashPoint(p *ecdsa.PublicKey) (*big.Int, *big.Int) + func HashPointsToBytes(points []ECPoint) []byte + func InnerProduct(a []*big.Int, b []*big.Int) *big.Int + func InnerProductVerify(c *big.Int, P, U ECPoint, G, H []ECPoint, ipp InnerProdArg) bool + func InnerProductVerifyFast(c *big.Int, P, U ECPoint, G, H []ECPoint, ipp InnerProdArg) bool + func Link(sig_a *RingSignature, sig_b *RingSignature) bool + func MRPVerify(mrp *MultiRangeProof) bool + func PadLeft(str, pad string, l int) string + func PadTo32Bytes(in []byte) (out []byte) + func PowerVector(l int, base *big.Int) []*big.Int + func RandVector(l int) []*big.Int + func STRNot(str string) string + func ScalarVectorMul(v []*big.Int, s *big.Int) []*big.Int + func SerializeCompressed(p *ecdsa.PublicKey) []byte + func StrToBigIntArray(str string) []*big.Int + func TestRingSignature() (bool, []byte) + func VectorAdd(v []*big.Int, w []*big.Int) []*big.Int + func VectorAddScalar(v []*big.Int, s *big.Int) []*big.Int + func VectorHadamard(v, w []*big.Int) []*big.Int + func VectorSum(y []*big.Int) *big.Int + func Verify(sig *RingSignature, verifyMes bool) bool + type Bulletproof struct + type CryptoParams struct + BPG []ECPoint + BPH []ECPoint + C elliptic.Curve + G ECPoint + H ECPoint + KC *btcec.KoblitzCurve + N *big.Int + U ECPoint + V int + var EC CryptoParams + func NewECPrimeGroupKey(n int) CryptoParams + func (c CryptoParams) Zero() ECPoint + type ECPoint struct + X *big.Int + Y *big.Int + func TwoVectorPCommit(a []*big.Int, b []*big.Int) ECPoint + func TwoVectorPCommitWithGens(G, H []ECPoint, a, b []*big.Int) ECPoint + func VectorPCommit(value []*big.Int) (ECPoint, []*big.Int) + func (p ECPoint) Add(p2 ECPoint) ECPoint + func (p ECPoint) Equal(p2 ECPoint) bool + func (p ECPoint) Mult(s *big.Int) ECPoint + func (p ECPoint) Neg() ECPoint + type InnerProdArg struct + A *big.Int + B *big.Int + Challenges []*big.Int + L []ECPoint + R []ECPoint + func InnerProductProve(a []*big.Int, b []*big.Int, c *big.Int, P, U ECPoint, G, H []ECPoint) InnerProdArg + func InnerProductProveSub(proof InnerProdArg, G, H []ECPoint, a []*big.Int, b []*big.Int, u ECPoint, ...) InnerProdArg + func (ipp *InnerProdArg) Deserialize(proof []byte, numChallenges int) error + func (ipp *InnerProdArg) Serialize() []byte + type MultiRangeProof struct + A ECPoint + Comms []ECPoint + Cx *big.Int + Cy *big.Int + Cz *big.Int + IPP InnerProdArg + Mu *big.Int + S ECPoint + T1 ECPoint + T2 ECPoint + Tau *big.Int + Th *big.Int + func MRPProve(values []*big.Int) (MultiRangeProof, error) + func (mrp *MultiRangeProof) Deserialize(proof []byte) error + func (mrp *MultiRangeProof) Serialize() []byte + type PrivateSendVerifier struct + type RangeProof struct + A ECPoint + Comm ECPoint + Cx *big.Int + Cy *big.Int + Cz *big.Int + IPP InnerProdArg + Mu *big.Int + S ECPoint + T1 ECPoint + T2 ECPoint + Tau *big.Int + Th *big.Int + type Ring []*ecdsa.PublicKey + func GenerateMultiRingParams(numRing int, ringSize int, s int) (rings []Ring, privkeys []*ecdsa.PrivateKey, m [32]byte, err error) + func (r Ring) Bytes() (b []byte) + type RingSignature struct + C *big.Int + Curve elliptic.Curve + I []*ecdsa.PublicKey + M [32]byte + NumRing int + Ring []Ring + S [][]*big.Int + SerializedRing []byte + Size int + func Deserialize(r []byte) (*RingSignature, error) + func Sign(m [32]byte, rings []Ring, privkeys []*ecdsa.PrivateKey, s int) (*RingSignature, error) + func (r *RingSignature) Serialize() ([]byte, error)