From d0464e6f11d7f63115eb872392177728dc0c59ff Mon Sep 17 00:00:00 2001 From: Jono Wenger <jono@elixxir.io> Date: Wed, 20 Jan 2021 13:02:02 -0800 Subject: [PATCH] Make ResponseFingerprint set the first bit to zero --- e2e/singleUse/responseFingerprint.go | 6 ++++-- e2e/singleUse/responseFingerprint_test.go | 5 ++--- e2e/singleUse/transmitFingerprint.go | 3 +-- e2e/singleUse/transmitFingerprint_test.go | 5 ++--- go.mod | 2 +- go.sum | 2 ++ 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/e2e/singleUse/responseFingerprint.go b/e2e/singleUse/responseFingerprint.go index a7458b88..37c84ba9 100644 --- a/e2e/singleUse/responseFingerprint.go +++ b/e2e/singleUse/responseFingerprint.go @@ -21,8 +21,10 @@ const responseFPConstant = "responseFPConstant" // the given key number. func ResponseFingerprint(dhKey *cyclic.Int, keyNum uint64) format.Fingerprint { // Create fingerprint - fp := format.Fingerprint{} - copy(fp[:], makeKeyHash(dhKey, keyNum, responseFPConstant)) + fp := format.NewFingerprint(makeKeyHash(dhKey, keyNum, responseFPConstant)) + + // Set the first bit as zero to ensure everything stays in the group + fp[0] &= 0b01111111 return fp } diff --git a/e2e/singleUse/responseFingerprint_test.go b/e2e/singleUse/responseFingerprint_test.go index 28a29281..7dd1f932 100644 --- a/e2e/singleUse/responseFingerprint_test.go +++ b/e2e/singleUse/responseFingerprint_test.go @@ -24,13 +24,12 @@ func TestResponseFingerprint(t *testing.T) { dhKey := diffieHellman.GeneratePublicKey(diffieHellman.GeneratePrivateKey( diffieHellman.DefaultPrivateKeyLength, grp, prng), grp) testFP := ResponseFingerprint(dhKey, 0) - testFPBase64 := base64.StdEncoding.EncodeToString(testFP[:]) - if expectedFP != testFPBase64 { + if expectedFP != testFP.String() { t.Errorf("ResponseFingerprint() did not return the expected "+ "fingerprint for public key %s."+ "\nexpected: %s\nreceived: %s", - dhKey.Text(10), expectedFP, testFPBase64) + dhKey.Text(10), expectedFP, testFP) } } diff --git a/e2e/singleUse/transmitFingerprint.go b/e2e/singleUse/transmitFingerprint.go index c246063f..98a92a9a 100644 --- a/e2e/singleUse/transmitFingerprint.go +++ b/e2e/singleUse/transmitFingerprint.go @@ -18,8 +18,7 @@ const transmitFPConstant = "transmitFPConstant" // message. func TransmitFingerprint(dhKey *cyclic.Int) format.Fingerprint { // Create fingerprint - fp := format.Fingerprint{} - copy(fp[:], makeHash(dhKey, []byte(transmitFPConstant))) + fp := format.NewFingerprint(makeHash(dhKey, []byte(transmitFPConstant))) // Set the first bit as zero to ensure everything stays in the group fp[0] &= 0b01111111 diff --git a/e2e/singleUse/transmitFingerprint_test.go b/e2e/singleUse/transmitFingerprint_test.go index 5d0f382a..db1ec5f6 100644 --- a/e2e/singleUse/transmitFingerprint_test.go +++ b/e2e/singleUse/transmitFingerprint_test.go @@ -38,13 +38,12 @@ func TestTransmitFingerprint_Consistency(t *testing.T) { dhKey := diffieHellman.GeneratePublicKey(diffieHellman.GeneratePrivateKey( diffieHellman.DefaultPrivateKeyLength, grp, prng), grp) testFP := TransmitFingerprint(dhKey) - testFPBase64 := base64.StdEncoding.EncodeToString(testFP[:]) - if expected != testFPBase64 { + if expected != testFP.String() { t.Errorf("TransmitFingerprint() did not return the expected "+ "fingerprint for public key %s at index %d."+ "\nexpected: %s\nreceived: %s", - dhKey.Text(10), i, expected, testFPBase64) + dhKey.Text(10), i, expected, testFP) } } } diff --git a/go.mod b/go.mod index ff4e9997..dc77cace 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.13 require ( github.com/pkg/errors v0.9.1 github.com/spf13/jwalterweatherman v1.1.0 - gitlab.com/elixxir/primitives v0.0.3-0.20210107183456-9cf6fe2de1e5 + gitlab.com/elixxir/primitives v0.0.3-0.20210120174718-802bdcda9dbb gitlab.com/xx_network/crypto v0.0.5-0.20210107183440-804e0f8b7d22 gitlab.com/xx_network/primitives v0.0.4-0.20210106014326-691ebfca3b07 golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de diff --git a/go.sum b/go.sum index c0581c0f..45a88be4 100644 --- a/go.sum +++ b/go.sum @@ -61,6 +61,8 @@ gitlab.com/elixxir/primitives v0.0.3-0.20210104223605-0e47af99d9d5 h1:gFnu6lXLNG gitlab.com/elixxir/primitives v0.0.3-0.20210104223605-0e47af99d9d5/go.mod h1:BLL0lkR9foigqmsz1p3OLnwACBhS9fd3mVk9Ftflg9E= gitlab.com/elixxir/primitives v0.0.3-0.20210107183456-9cf6fe2de1e5 h1:50HbCJWirpX2Q+NNhIHcs0M9f45H1UJ/7LNMu81Bnn0= gitlab.com/elixxir/primitives v0.0.3-0.20210107183456-9cf6fe2de1e5/go.mod h1:Ph6isHUDVjmRUd9DioyKpd8W9J52gKBiDeue4DCygXA= +gitlab.com/elixxir/primitives v0.0.3-0.20210120174718-802bdcda9dbb h1:BA/qishMQwdNU7NJTq9WzkSIR45Fi35OrIJ8zqOy3lE= +gitlab.com/elixxir/primitives v0.0.3-0.20210120174718-802bdcda9dbb/go.mod h1:Ph6isHUDVjmRUd9DioyKpd8W9J52gKBiDeue4DCygXA= gitlab.com/xx_network/crypto v0.0.5-0.20201217195719-cc31e1d1eee3 h1:xXJAkvhHZl5CUX8/9rqe8hod5FbqZrxwMuT8cG48Mxs= gitlab.com/xx_network/crypto v0.0.5-0.20201217195719-cc31e1d1eee3/go.mod h1:iHCS8UOFndbXivLTeIarxN8TKbi3NcanZj29KtMzs2o= gitlab.com/xx_network/crypto v0.0.5-0.20210107183440-804e0f8b7d22 h1:SQga1vOuAGzbYURnBjG0f37r7WmWKZRdiqmdopaNMb4= -- GitLab