[tor-commits] [pluggable-transports/snowflake] 07/07: Use truncated hash instead crc64 for counted hash

gitolite role git at cupani.torproject.org
Thu Jun 16 17:23:20 UTC 2022


This is an automated email from the git hooks/post-receive script.

shelikhoo pushed a commit to branch main
in repository pluggable-transports/snowflake.

commit 35e9ab8c0b3168b5eaa4f6538b8e9208eb38c508
Author: Shelikhoo <xiaokangwang at outlook.com>
AuthorDate: Wed Jun 15 15:32:58 2022 +0100

    Use truncated hash instead crc64 for counted hash
---
 common/ipsetsink/sink.go | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/common/ipsetsink/sink.go b/common/ipsetsink/sink.go
index b62f786..168d061 100644
--- a/common/ipsetsink/sink.go
+++ b/common/ipsetsink/sink.go
@@ -1,9 +1,10 @@
 package ipsetsink
 
 import (
+	"bytes"
 	"crypto/hmac"
+	"encoding/binary"
 	"hash"
-	"hash/crc64"
 
 	"github.com/clarkduvall/hyperloglog"
 	"golang.org/x/crypto/sha3"
@@ -31,7 +32,7 @@ func (s *IPSetSink) maskIPAddress(ipAddress string) []byte {
 }
 
 func (s *IPSetSink) AddIPToSet(ipAddress string) {
-	s.countDistinct.Add(crc64FromBytes{hashValue(s.maskIPAddress(ipAddress))})
+	s.countDistinct.Add(truncatedHash64FromBytes{hashValue(s.maskIPAddress(ipAddress))})
 }
 
 func (s *IPSetSink) Dump() ([]byte, error) {
@@ -43,10 +44,12 @@ func (s *IPSetSink) Reset() {
 }
 
 type hashValue []byte
-type crc64FromBytes struct {
+type truncatedHash64FromBytes struct {
 	hashValue
 }
 
-func (c crc64FromBytes) Sum64() uint64 {
-	return crc64.Checksum(c.hashValue, crc64.MakeTable(crc64.ECMA))
+func (c truncatedHash64FromBytes) Sum64() uint64 {
+	var value uint64
+	binary.Read(bytes.NewReader(c.hashValue), binary.BigEndian, &value)
+	return value
 }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the tor-commits mailing list