Versions in this module Expand all Collapse all v0 v0.2.2 Jan 8, 2024 v0.2.1 Nov 27, 2023 v0.1.7 Nov 27, 2023 v0.1.7-beta.3 Sep 28, 2023 v0.1.7-beta.2 Sep 28, 2023 v0.1.7-beta.1 Sep 27, 2023 v0.1.6 Sep 10, 2023 v0.1.5 Sep 6, 2023 v0.1.4 Sep 5, 2023 v0.1.3 Aug 28, 2023 v0.1.2 Aug 10, 2023 v0.1.1 Aug 10, 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)