Do not cache N^2 value in PublicKey

Let's keep this structure clean. Computing N^2 is just a really small piece of encryption/decryption work and if we decide we need to tweak performance, we will need a different approach anyway.
This commit is contained in:
Piotr Dyraga committed 2018-05-24 19:02:01 +02:00
1 parent d892a58e4b
commit 69c60e90d5
2 files changed
+2 -7

No files matched your search

+1 -1
View File
@@ -118,6 +118,6 @@ func TestPartialDecryptionZKPBSONification(t *testing.T) {
} }
func TestThresholdKeyBSON(t *testing.T) { func TestThresholdKeyBSON(t *testing.T) {
key := &ThresholdKey{PublicKey{b(9), b(8), nil}, 7, 6, b(3), []*big.Int{b(2), b(34)}} key := &ThresholdKey{PublicKey{b(9), b(8)}, 7, 6, b(3), []*big.Int{b(2), b(34)}}
AssertBSONIsGood(key, new(ThresholdKey), t) AssertBSONIsGood(key, new(ThresholdKey), t)
} }
+1 -6
View File
@@ -8,7 +8,6 @@ import (
type PublicKey struct { type PublicKey struct {
N, G *big.Int // usually G is set to N+1 N, G *big.Int // usually G is set to N+1
n2 *big.Int // the cache value of N^2
} }
func (this *PublicKey) GetBSON() (interface{}, error) { func (this *PublicKey) GetBSON() (interface{}, error) {
@@ -19,11 +18,7 @@ func (this *PublicKey) GetBSON() (interface{}, error) {
} }
func (this *PublicKey) GetNSquare() *big.Int { func (this *PublicKey) GetNSquare() *big.Int {
if this.n2 != nil { return new(big.Int).Mul(this.N, this.N)
return this.n2
}
this.n2 = new(big.Int).Mul(this.N, this.N)
return this.n2
} }
// Encode a plaintext in a cypher one. The plain text must be smaller that // Encode a plaintext in a cypher one. The plain text must be smaller that