Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
number571 committed Aug 10, 2024
1 parent cdb2a20 commit 8141d99
Show file tree
Hide file tree
Showing 15 changed files with 3,681 additions and 3,687 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

### CHANGES

- Update `pkg/client/message`: delete LoadBytesJoiner32
- Update `cmd/hidden_lake/applications/messenger`: delete work_size_bits param

<!-- ... -->
Expand Down
3,896 changes: 1,948 additions & 1,948 deletions cmd/hidden_lake/_test/result/coverage.out

Large diffs are not rendered by default.

Binary file modified docs/hidden_lake_anonymous_network.docx
Binary file not shown.
Binary file modified docs/hidden_lake_anonymous_network.pdf
Binary file not shown.
19 changes: 10 additions & 9 deletions pkg/client/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,17 @@ import (
)

const (
tcPubKey1023Bit = "PubKey{30818802818067D7C7F48CCCF318A504721D8521ED04DFD24DE947D50476212E279DADA7F627102D6140B922BC30E778BE7FD120E73D02C407E4D053D55C8F3CFACED11CCB8DC96539F51E34B32544EAB8812129BE7AD107E9A352E70F912962D6D0BABAB629F20332A3FBA66BC28D2944F44859959788428300F58DA0873A6796073B17CEEB0203010001}"
tcMessageSize = (2 << 10)
tcKeySizeBits = 1024
// tcMessageSize = (8 << 10)
// tcKeySizeBits = 4096
tcMessageSize = (2 << 10)
tcKeySizeBits = 1024
)

var (
// tgPrivKey = asymmetric.NewRSAPrivKey(tcKeySizeBits)
tgPrivKey = asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024)

tgMsgLimit = testNewClient().GetMessageLimit()
tgPrivKey = asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024)
tgMessages = []string{
testutils.TcBody,
"",
Expand Down Expand Up @@ -150,18 +153,16 @@ func TestEncrypt(t *testing.T) {
client1 := testNewClient()
client2 := testNewClient()

_ = client1.GetSettings()
_ = client1.GetPrivKey()

pl := payload.NewPayload64(uint64(testutils.TcHead), []byte(testutils.TcBody))
msg, err := client1.EncryptMessage(client2.GetPubKey(), pl.ToBytes())
if err != nil {
t.Error(err)
return
}

// os.WriteFile("test_binary.msg", msg.ToBytes(), 0644)
// os.WriteFile("test_string.msg", []byte(msg.ToString()), 0644)
// lMsg, _ := message.LoadMessage(client1.GetSettings(), msg)
// os.WriteFile("test_binary.msg", lMsg.ToBytes(), 0644)
// os.WriteFile("test_string.msg", []byte(lMsg.ToString()), 0644)

_, decMsg, err := client2.DecryptMessage(msg)
if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions pkg/client/message/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func (err *SMessageError) Error() string {
}

var (
ErrUnknownType = &SMessageError{"unknown type of message"}
ErrInvalidMessage = &SMessageError{"invalid message"}
ErrLoadBytesJoiner = &SMessageError{"load bytes joiner"}
ErrUnknownMessageType = &SMessageError{"unknown type of message"}
ErrLoadMessageBytes = &SMessageError{"load message bytes"}
ErrKeySizeGteMessageSize = &SMessageError{"key size >= message size"}
)
44 changes: 18 additions & 26 deletions pkg/client/message/message.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package message

import (
"bytes"

"github.com/number571/go-peer/pkg/encoding"
"github.com/number571/go-peer/pkg/payload/joiner"
)

var (
Expand All @@ -24,31 +25,16 @@ func NewMessage(pEnck, pEncd []byte) IMessage {

// Message can be created only with client module.
func LoadMessage(psett ISettings, pMsg interface{}) (IMessage, error) {
msg := new(sMessage)

var recvMsg []byte
switch x := pMsg.(type) {
case []byte:
recvMsg = x
case string:
recvMsg = encoding.HexDecode(x)
default:
return nil, ErrUnknownType
}

wrapSlice, err := joiner.LoadBytesJoiner32(recvMsg)
if err != nil || len(wrapSlice) != 2 {
return nil, ErrLoadBytesJoiner
}

msg.fEnck = wrapSlice[0]
msg.fEncd = wrapSlice[1]

if !msg.isValid(psett) {
return nil, ErrInvalidMessage
return nil, ErrUnknownMessageType
}

return msg, nil
return loadMessage(psett, recvMsg)
}

func (p *sMessage) GetEnck() []byte {
Expand All @@ -60,18 +46,24 @@ func (p *sMessage) GetEncd() []byte {
}

func (p *sMessage) ToBytes() []byte {
return joiner.NewBytesJoiner32([][]byte{
p.fEnck,
p.fEncd,
})
return bytes.Join(
[][]byte{p.fEnck, p.fEncd},
[]byte{},
)
}

func (p *sMessage) ToString() string {
return encoding.HexEncode(p.ToBytes())
}

func (p *sMessage) isValid(psett ISettings) bool {
return true &&
uint64(len(p.ToBytes())) == psett.GetMessageSizeBytes() &&
uint64(len(p.GetEnck())) == psett.GetKeySizeBits()/8
func loadMessage(pSett ISettings, pBytes []byte) (IMessage, error) {
keySize := pSett.GetKeySizeBits() / 8
msgSize := pSett.GetMessageSizeBytes()
if keySize >= msgSize {
return nil, ErrKeySizeGteMessageSize
}
if uint64(len(pBytes)) != msgSize {
return nil, ErrLoadMessageBytes
}
return NewMessage(pBytes[:keySize], pBytes[keySize:]), nil
}
8 changes: 4 additions & 4 deletions pkg/client/message/message_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import (
)

const (
tcEnck = "4ac068c801a8b48637ae929440d829ed793e3a076477634542a8730ae7ad0e1987756316b6e5b41f8cdcf20c0b68616c1c6581424285eb984cf438bc8314bc02dc918b79f7f524ad7c9111922db7d516a2fb679044059d282b31e9d58a34abaee21ce9e9abc77c38ea5eca5cd53e29f298d3e081389b894bc2c2faee783d4c42"
ecEncd = "04b775815e5dc0573cb949c1d681b733fba8855626997d97e11ca352cd47e0184ef35ccbe1ede94216eb874fbce503201ea24ceb66650a2cdbb8b2edc2f114cb6004aadfe56f9aa39fa391adf2adbf54da29dd124826132c498e569f64e069fd185632336b446be93f4996b5541098a345b4b95a29970aa71a9e4391d1cecbf586a1e6a7704e5ae2e6b7da9a96925bb564749654963cbfec56e53c63341912be9178b0136da9dc64c3f8c76143fbf5e03cb12b0f49b749fac08639a01c3202a65c22bbba8c985c1f4f3d2fed44f57c649375a8d5561f9735385a7aaba111a4ad8eb9ab14f8a4d54f0518f39332e97a79092573e7534a84b6897f326c5c24bbe81d26418249a951e02f591dcfb1556a8ae1fd7dfd5697eb2c2de35a2695623da14f596ef5dab55694b88754f7786d8ba505019b2fca21d49f6e0dbf140177577d5d9b3ce37960d8d2c32312cb1dcc0473b61c7342349c9733bc36b226be18c39a0bdbef3f4ca97b8fada4e3e1d948947bcea37b9de526a94638e36701f1538f49f91b16706f03011b2bb59cb388ca63b4fb6f16053472e2a5e6600d22e4caa1cc5de9844a06a88e05cc51b5c5a33f456534cba50cd7af2ac20acd27eca395eb0bf3e8ef778401c3328c12a8a9ab242e6c867eaa5e600e53ca313b66e4f7aff6a5ce3901a23efce3187f4065caa56b8725f8c41e2947d18289434ae4273b952de8181bb55696eddf5b1ce4846f38538b74afe8711f6feb510696aaa2881ff67447251de8fbe125837c8e6d7fa5bde64d8cae888fcf7758a4cf867a372f00e5659cc1b93c9684de86677541c076f6179b3534750a7c4fbb238a46caeaf5d2fe558970dca638957085fe3b845eef44aea0b7f19a70cf621781192685f66b66fa461e835d44980d9e19c064fb481428a911a9c0a6ff9e2c3982b818e9b559764b4ba4a9dd0dbd2f424b6f62f5ca83b6574c0553fe087382474f185a3be83b0a01c3e00b796722838f5e9328c60d538da732705fb8ab8ff5b43b58ecafbb5a448d7079c3fa8775ca3bdd4e56e60d06863c8d14750a99909eb5f13c83a0a4f79bef47024a581a782b0113d1d006fb2e3133094e9ed13783c4c062c8ae53bbfdc791c8164876ed4d96e68bd3d1a2d7b8e984f85de97fbd4bb0cbc65f18d82fea564ac6967af997684518083b81ac0cf0c3e8082e73806a4514e2a8b4a6085b833209df9c58715890b0f58c7bae6fa304b8afc9bcd4a7d54a08f9ef97b4f03780dfdb9696c630f52aae82a195bae213eaa8d79771f2eaae67780e049ba37aa0775da830df814b4a512cb2153b455abb775c5c52ad577fef4f4a4526f0467c3563aa45eda51b5bc84216e3f4e63ce41be2daece8e3a9406b6bcbd98a3b92d1ee66a6f9bf08e1b35a977588b93463e979d29515447ece633ed0b6f12301291e26fcc83bc0f4dce8d20f76757fd31157c22b1f9092b41e2372b0c9243fedea489ed76998d4ae297abe23e847c19b9a2081a9728c0297b0d5b01a79d2b9217fc7647809ff70b7a3460cf6cd727d000e0e7c5a4817f4e869afb0af27377482835a2303a73749414bcf17ae14ea2b6477018f11a068d9cf3b6af16ede29c55ca5b2fc88e5493853f37e782dcca9ff093c32b4274974b0d023e596166734d39bd8ace96b51413cb832d829b75838e73b7232514321496be18cf06522402f351237aad0da9d8cbc5705e2688a5368f3d52f633c773a82cd6e215802b601f1548f63bc9fcd51c00295e10bfdf58f69ed4056d4af5eb3dee517de240a1cad853274238821dc18aeb72ea936b80e7e80ed069232266a7fe657c3b7f4a1afdb574757544aa9476a4ecc71e346035bcdfd9b25c24e0b6cef9544bd5dc093085eeea2641a09b9d8e87f65d60433a6ea4aa6355024a1a25e6d131bf4bd0ac09e44141ead3b728965441a4a3f094029134129c48a0f88c4ce8bc0c2f74975f6afc36401ec76a80bb394be6eb358391ee0f8474947ba4c45b63b038c61c7d36d980e811821b5b325f53b247bb258fa144cba667cb8657434275b1eb4cb0dc6a0919b43b5d525174c4e7a47dd57d5999bae76abdb2ae2df8483745b039c479d4830c5096c637141d46b8c628e885f4bfad5a05f3d2714eabdacd79f6ce43d7280ab49480fe02e1ec0ec61bcf86cdf052c6d2087908be237fba09e20dd80972c857c59ff60b2e20dd9451efa999cdbd2fa697c74694966b02a52d20d993b91be76d01a7db727d90de582142b569a43311a1bbf73c8904ff6b0aedd64e6d9fadaa45d7d75e7d238a612f87768473a9529ea44886f941e6dab3ad856c15297636b89a9394773162e66c7ad852fb45c21addf96c702c3b2212a1e35306ba2de2f739e66164a9eeca60dcbae4900cadd6151cb58e1e1920a2f1d487fcd5bb276a17e1e40490cb62a1af932f961ddf8008ef914fec1dcf283720baa7e28070b7c982ee405d446540def8ec600486586dedab8267bee0cb7ad07f29bf8b34a91d53a98de1381ba7df0d1ad257d9f555de173cd976beadee3ddfec028c18f6c5ea67b01b39e82b6652481e9f183c0bd8e1184b04049c07f1b9dd569127a8f5dc8751194f1c47268d58e5202229684088da339b91aa0f3f6b71df7872aa192e3be048534ac1b38d98195d7cbd09b43b3f533bfbeee4368d5b227352c449a0f87edab40ae9a8e16d1f007"
tcEnck = "287c039605bb4376a10942cb85080d472e43f883040ff6426799fe97f469bddb5a55fcfb87a73a716d0aebe89ef75e01e0fe57e206744d5efc1ee5ac3e087a7e05089eac529d3502774f14fc1e924f3a8aadbb9b6575f2dde58f42bdc6aa8878b300172a06a8bda40b453505904b30180f18996361e346d34e1cf6850444aa80"
ecEncd = "799657192fc5eb22e606a948bd82aae6e06e344651109836c1883998c7afcbc274a511f8067cd235a601bee7fb6c52af5e789dfbdfdf5ef165c87b487bc79516d046c473298e8d72878d123a7fdb34ac23c5cd9a61d2f7d35e86af618606e57db7a2e3f7da0d2cc45414a4f2f7c05a9f2946029898a8184a4f2f2d957ab1534ae44d8422844b3c39ab60f1e847d6940e79dddcf2e8a5f04cd01be9a75cd7944234fef55bdbc56e6d90f42fcb134d4a1c543606a1cce46b373dc19b8fb1a64e7d40a0bac7268b3e19167ae31607804d706500d5a07bcc35b4bbd14b65728b1cb4621257c7c688a33b868f44c140c68c98a75e879cf960f9015262b739ae88d03c96fefa34393ee63aa9256c54253e54f3664f0d08a5b7c0daee3f38cbae96f65271edb70ed4852c4424200b2f63e5047af7439d51765c33d9b3e4e1ebcd7b85b16a0ddcf2e9028fc70268024b2ad0fec230eeab6f72ea6a58d01ca0423867fa8a8879b4c49a27790725107069e8de1a3735898e89b1e19fb5b16d2e10794512d5e24913b71797157587e6ff15ba386feaf9dfaa29c29990a1a0810ac97b643e886ab34da06ac444c639b0eeac7b780a3ed26fbca315c717a11156429e8b534c17ec9aef74a704383381dec0b9e7a72d8a71a79f84b30ee64a279657708daa246dcaf2114e993561d93627e978e6da4e9e8dd3ca94d7710c288f54e0d16308e059021f1203f8e057b4e0ccd747fce450f9305b938669d493272a56aef12894a67f86d5fc7c3ab84303ccf8e5787cac7afec735c747c8284ca58c9f4b3dcb7e62130fc25165a977fda33d73b6f403cfdc75825295632bb7ec608c96ce5d9ba5ce8e02aa825647d11b76eddc233ea43522d1ed4d305d6505ae9ee2c8a9334e761f242b1b4ce382027ee5d554a2dc0fffb1144447589d8901d15b9c53759533361dde2b646667d16fbf48fab4efd9f5a51a339f6f4a8fd2c82e158ba0776cab36866553e51ea8c0f4c6d431b5d2fdc9378aac9c86abe6c377726ea0c7d75f26aa47d7da16f61a9013fbc2b9580cce1fd23321b1fb356443cc0743325d28fd39f43406932f360db37d2743f04f9d1008374531cbb4b7af06363abc2d3399f44842d63a5020bbb7e977493de3491b20d7b7b9f3b1fca5188f28cd915e707a741956652be510ba2d8a2688c31764e9f62a244e4bc935e41ec4e2f13eb674c784333fc6d63664f992a94c7bea4a6ab235ebf6c28ec6f04d8e4a6cc442b373f3794ef82498c1481b07d9d84b762b24e4d70f6b42eae9afb08fc97adaf74ebe86661c7ba7ea588dca4cf7159238ea72f9dcf0b42886c61063ebce56d62485e5fbe18a68fad366dc20df624e12b354e775695c9937373ecc8cb3d7f740dbc1d535bc756e66c7b29bb2f763801fafd862e9fa58acbb72dea1a26ce01c18a02d8f193efb969d6a96b63193a4ddeb4da2c6fdc7642380eee9a3b11f67152253cadacc5fa25502dfd92a2969597f25c30927199be394f4871f24e0a38d31e4cca2a724cca5f238c4b0b5989b17c3a48fbdc4788fe957312522433becda133c90e91c61f2058cebf685fdd84bf471fceeaddcf4ab9edd4732ddb37c4371b0c301e10605c1ddda4af844273bbd694dfc210356e40dafe83617f89245759164b848d915e4eb6799cfd9a54e70046114d6c53facb96607955ffe87b769b264b30aa62a885c1b801983579a1cd7c3e7a71c25c8bd4e670a8cd17ce756739e6fd600a5a9728de0dbe7926fd59d5fd7de8b25bb525d9996cdffc5712cbe8124bf665763716b965eb502063ca72a4b59b33b940cbff194cac0b780e3b1d944989fcc1f94063f1c5e8887cd5c9e7bff9beae4da19cd2c78996c22ff5fa5355276dd22af4fa03180f170f29f2ede3e3313ab85fbedab1f7eff96e9790bcf558d2487d935d48f791c63bc7d9e1a428703267b6d0e28694832eb263b8a256a801b759316c28d71f3d912bcfc0a79bc65c079601041c767775c01a6939e6178e7b0c1983029d35dc3780e16e13f15f0e98b9fef8665ccd4012b122f5836a94172affa7758dfcbe069a921f9cf50831bafaf39625c8c4342c1dcf99952be371d4cb6620a80381f4a2fe5f910dd2d1ee02201db586a04d0205b28eddc182022a3e7c9e339997d57d6a2ae402dffede42f2505aabecd509277fcc4f51dc21c876742efcd8fa488fd898ff90c5526f9d9f3273d31fb5d97f09aa5978e134fd3a876dc865921fb66ce69a2083d892ecabc623efdb59ad01ff4c24216770e665121e587e035e3465757a339c3a125a69b42cb7086169a20ef208e4dab0c8c619ef821d48a02702b717cbd45c5d7c8dccfbaa6473273185a470e0a490e65052ca0a439737c7962b36b746dc83449bd509c32e9ff4b3374cd2aa18e2ddb63a225169434ea531019a2f2ecdaf46136c13acc8b6a94a9bf11875e1210ff921d163e38d67930f8d44a684a12dff25bc6b6dda20574c0c8b9f8c13bfbbae985ad8e55df0ef307a928ae6eb8e884c0b357d1c5a34e5cb2e7947124ddff481fef519e55ff7d99c6bf430706ae2ff8f19c602822b3fbbd87ca5876aa8ef1721c8d7274806b5b9e0ad0ce5666c9ba9f4743e7914f89e120f041dfcca9439c6f556fc855596c069bec16387fe2cbddfd7dded5b84e3319a3b2f6c7a3182d120a53c7a10365103f0e03f6c390550838d2c2c0011ca4d0de"
)

func TestError(t *testing.T) {
Expand Down Expand Up @@ -121,8 +121,8 @@ func testMessage(t *testing.T, params ISettings, msg IMessage) {
return
}

msg1 := NewMessage(msg.GetEnck(), msg.GetEncd()).(*sMessage)
if !msg1.isValid(params) {
msgBytes := bytes.Join([][]byte{msg.GetEnck(), msg.GetEncd()}, []byte{})
if _, err := loadMessage(params, msgBytes); err != nil {
t.Error("new message is invalid")
return
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/network/message/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
/*
NETWORK MESSAGE FORMAT
E( K, P(HLMR) || HLMR || L(M) || M || R )
E( K, P(HLMR) || HLMR || L(M) || M || L(R) || R )
where
HLMR = H( K, L(M) || M || R )
HLMR = H( K, L(M) || M || L(R) || R )
where
H - HMAC
K - network key
Expand Down
4 changes: 2 additions & 2 deletions pkg/network/message/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ var (
)

type sMessage struct {
fEncd []byte // E( K, P(HLMR) || HLMR || L(M) || M || R )
fHash []byte // HLMR = H( K, L(M) || M || R )
fEncd []byte // E( K, P(HLMR) || HLMR || L(M) || M || L(R) || R )
fHash []byte // HLMR = H( K, L(M) || M || L(R) || R )
fRand []byte // R
fProof uint64 // P(HLMR)
fPayload payload.IPayload32 // M
Expand Down
2 changes: 1 addition & 1 deletion test/result/badge_codelines.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 8141d99

Please sign in to comment.