mirror of
https://github.com/mainflux/mainflux.git
synced 2025-04-29 13:49:28 +08:00

* authz service init Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * authz service init Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add proto Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add proto Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * authorize method Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add casbib Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add casbib Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add casbib Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add policy grpc Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add policy grpc Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * fix db connection, add environment variables, docker-compose Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add model.conf policy Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add model.conf policy Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * fix test Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * adding tests, and token for auth Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * revert changes Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * fix auth service Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * small changes, add model conf env var Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * remove users grpc for now Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * fix error Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * some cosmetics Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * resolvin minor comments Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * change endpoint, add file to fix test Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * fix docker env Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * fix alignment and path for model.conf Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
63 lines
1.7 KiB
Go
63 lines
1.7 KiB
Go
package meow
|
|
|
|
import "math/rand"
|
|
|
|
// checksumFunc is a method of computing a Meow checksum.
|
|
type checksumFunc func(uint64, []byte) []byte
|
|
|
|
// checksumSlice adapts Checksum to return a slice instead of an array.
|
|
func checksumSlice(seed uint64, data []byte) []byte {
|
|
cksum := Checksum(seed, data)
|
|
return cksum[:]
|
|
}
|
|
|
|
// checksumHash implements Checksum with the hash.Hash interface. Intended to facilitate comparison between the two.
|
|
func checksumHash(seed uint64, data []byte) []byte {
|
|
h := New(seed)
|
|
h.Write(data)
|
|
return h.Sum(nil)
|
|
}
|
|
|
|
// checksumHashWithReset is intended to confirm hash.Hash Reset() behavior.
|
|
// Hashes some random data, resets and then computes the desired hash.
|
|
func checksumHashWithReset(seed uint64, data []byte) []byte {
|
|
n := rand.Intn(8 << 10)
|
|
r := make([]byte, n)
|
|
rand.Read(r)
|
|
|
|
h := New(seed)
|
|
h.Write(r)
|
|
h.Reset()
|
|
h.Write(data)
|
|
return h.Sum(nil)
|
|
}
|
|
|
|
// checksumRandomBatchedHash implements Checksum by writing random amounts to a hash.Hash.
|
|
func checksumRandomBatchedHash(seed uint64, data []byte) []byte {
|
|
h := New(seed)
|
|
for len(data) > 0 {
|
|
n := rand.Intn(len(data) + 1)
|
|
h.Write(data[:n])
|
|
data = data[n:]
|
|
}
|
|
return h.Sum(nil)
|
|
}
|
|
|
|
// checksumHashWithIntermediateSum computes the checksum and calls Sum()
|
|
// inbetween. Intended to confirm that Sum() does not change hash state.
|
|
func checksumHashWithIntermediateSum(seed uint64, data []byte) []byte {
|
|
h := New(seed)
|
|
half := len(data) / 2
|
|
h.Write(data[:half])
|
|
_ = h.Sum(nil)
|
|
h.Write(data[half:])
|
|
return h.Sum(nil)
|
|
}
|
|
|
|
// checksumPureGo computes the checksum with the fallback Go implementation.
|
|
func checksumPureGo(seed uint64, data []byte) []byte {
|
|
cksum := make([]byte, Size)
|
|
checksumgo(seed, cksum, data)
|
|
return cksum
|
|
}
|