- Add sha prefix for peer id in protocol

- Add magic cookie in hello msg
- Add tests
This commit is contained in:
Zoltán Papp
2024-06-25 17:36:04 +02:00
parent 0a67f5be1a
commit 085d072b17
6 changed files with 107 additions and 22 deletions
+11 -4
View File
@@ -3,18 +3,25 @@ package messages
import (
"crypto/sha256"
"encoding/base64"
"fmt"
)
const (
IDSize = sha256.Size
prefixLength = 4
IDSize = sha256.Size + 4 // 4 is equal with len(prefix)
)
var (
prefix = []byte("sha-") // 4 bytes
)
func HashID(peerID string) ([]byte, string) {
idHash := sha256.Sum256([]byte(peerID))
idHashString := base64.StdEncoding.EncodeToString(idHash[:])
return idHash[:], idHashString
idHashString := string(prefix) + base64.StdEncoding.EncodeToString(idHash[:])
prefixedHash := append(prefix, idHash[:]...)
return prefixedHash, idHashString
}
func HashIDToString(idHash []byte) string {
return base64.StdEncoding.EncodeToString(idHash)
return fmt.Sprintf("%s%s", idHash[:prefixLength], base64.StdEncoding.EncodeToString(idHash[prefixLength:]))
}