mirror of
https://github.com/number571/go-peer.git
synced 2026-09-12 19:50:00 +05:00
update
This commit is contained in:
parent
f0f91d7fc8
commit
d2ee87f7a3
@ -4,6 +4,10 @@
|
||||
|
||||
*??? ??, ????*
|
||||
|
||||
### IMPROVEMENTS
|
||||
|
||||
- Update `cmd/hidden_lake/helpers/encryptor`: append 'pld_head' field
|
||||
|
||||
### CHANGES
|
||||
|
||||
- Update `cmd/hidden_lake`: update list of HLT nodes
|
||||
|
||||
@ -657,10 +657,10 @@ $ make
|
||||
Encrypt and decrypt message
|
||||
```bash
|
||||
$ cd examples/encrypt_message/client_hle
|
||||
$ go run ./main.go e 'hello, world'
|
||||
> 000000000003df67bf78638d051770be...15ce81c8f862ad747405a07236238d04
|
||||
$ go run ./main.go d '000000000003df67bf78638d051770be...15ce81c8f862ad747405a07236238d04'
|
||||
> hello, world
|
||||
$ go run ./main.go e 'hello, world!'
|
||||
> 5a8b4f0b388650fd...8d7cbd8fa01c008
|
||||
$ go run ./main.go d '5a8b4f0b388650fd...8d7cbd8fa01c008'
|
||||
> hello, world!
|
||||
```
|
||||
|
||||
**[⬆ back to top](#installation)**
|
||||
|
||||
1
TODO.md
1
TODO.md
@ -8,7 +8,6 @@
|
||||
6. Append errors (as traffic/database) for all interface methods
|
||||
7. Append Batch's to database
|
||||
8. Custom Unmarshal with fields
|
||||
9. HL schemes update
|
||||
|
||||
### Tests
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -62,15 +62,10 @@ func HandleMessageDecryptAPI(pConfig config.IConfig, pLogger logger.ILogger, pCl
|
||||
return
|
||||
}
|
||||
|
||||
if uint32(pld.GetHead()) != hls_settings.CServiceMask {
|
||||
pLogger.PushWarn(logBuilder.WithMessage("invalid_service_mask"))
|
||||
_ = api.Response(pW, http.StatusFailedDependency, "failed: invalid service mask")
|
||||
return
|
||||
}
|
||||
|
||||
pLogger.PushInfo(logBuilder.WithMessage(http_logger.CLogSuccess))
|
||||
_ = api.Response(pW, http.StatusOK, hle_settings.SContainer{
|
||||
FPublicKey: pubKey.ToString(),
|
||||
FPldHead: pld.GetHead(),
|
||||
FHexData: encoding.HexEncode(pld.GetBody()),
|
||||
})
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import (
|
||||
|
||||
hle_client "github.com/number571/go-peer/cmd/hidden_lake/helpers/encryptor/pkg/client"
|
||||
"github.com/number571/go-peer/pkg/crypto/asymmetric"
|
||||
"github.com/number571/go-peer/pkg/payload"
|
||||
testutils "github.com/number571/go-peer/test/utils"
|
||||
)
|
||||
|
||||
@ -33,13 +34,13 @@ func TestHandleEncryptDecryptAPI(t *testing.T) {
|
||||
|
||||
data := []byte("hello, world!")
|
||||
|
||||
netMsg, err := hleClient.EncryptMessage(context.Background(), pubKey, data)
|
||||
netMsg, err := hleClient.EncryptMessage(context.Background(), pubKey, payload.NewPayload(1, data))
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
gotPubKey, gotData, err := hleClient.DecryptMessage(context.Background(), netMsg)
|
||||
gotPubKey, getPld, err := hleClient.DecryptMessage(context.Background(), netMsg)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@ -50,7 +51,7 @@ func TestHandleEncryptDecryptAPI(t *testing.T) {
|
||||
return
|
||||
}
|
||||
|
||||
if !bytes.Equal(gotData, data) {
|
||||
if !bytes.Equal(getPld.GetBody(), data) {
|
||||
t.Error("got invalid data")
|
||||
return
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@ import (
|
||||
"github.com/number571/go-peer/cmd/hidden_lake/helpers/encryptor/internal/config"
|
||||
hle_settings "github.com/number571/go-peer/cmd/hidden_lake/helpers/encryptor/pkg/settings"
|
||||
hls_settings "github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings"
|
||||
"github.com/number571/go-peer/pkg/network/anonymity/adapters"
|
||||
net_message "github.com/number571/go-peer/pkg/network/message"
|
||||
)
|
||||
|
||||
@ -58,7 +57,7 @@ func HandleMessageEncryptAPI(
|
||||
|
||||
msg, err := pClient.EncryptPayload(
|
||||
pubKey,
|
||||
adapters.NewPayload(hls_settings.CServiceMask, bodyData).ToOrigin(),
|
||||
payload.NewPayload(vContainer.FPldHead, bodyData),
|
||||
)
|
||||
if err != nil {
|
||||
pLogger.PushWarn(logBuilder.WithMessage("encrypt_payload"))
|
||||
|
||||
@ -25,7 +25,7 @@ func TestErrorsAPI(t *testing.T) {
|
||||
),
|
||||
)
|
||||
|
||||
if _, err := client.EncryptMessage(context.Background(), asymmetric.LoadRSAPubKey(testutils.TgPubKeys[0]), []byte{123}); err == nil {
|
||||
if _, err := client.EncryptMessage(context.Background(), asymmetric.LoadRSAPubKey(testutils.TgPubKeys[0]), payload.NewPayload(1, []byte{123})); err == nil {
|
||||
t.Error("success encrypt message with unknown host")
|
||||
return
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@ import (
|
||||
"github.com/number571/go-peer/cmd/hidden_lake/helpers/encryptor/pkg/config"
|
||||
"github.com/number571/go-peer/pkg/crypto/asymmetric"
|
||||
net_message "github.com/number571/go-peer/pkg/network/message"
|
||||
"github.com/number571/go-peer/pkg/payload"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -31,15 +32,15 @@ func (p *sClient) GetIndex(pCtx context.Context) (string, error) {
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (p *sClient) EncryptMessage(pCtx context.Context, pPubKey asymmetric.IPubKey, pData []byte) (net_message.IMessage, error) {
|
||||
res, err := p.fRequester.EncryptMessage(pCtx, pPubKey, pData)
|
||||
func (p *sClient) EncryptMessage(pCtx context.Context, pPubKey asymmetric.IPubKey, pPayload payload.IPayload) (net_message.IMessage, error) {
|
||||
res, err := p.fRequester.EncryptMessage(pCtx, pPubKey, pPayload)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("encrypt message (client): %w", err)
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (p *sClient) DecryptMessage(pCtx context.Context, pNetMsg net_message.IMessage) (asymmetric.IPubKey, []byte, error) {
|
||||
func (p *sClient) DecryptMessage(pCtx context.Context, pNetMsg net_message.IMessage) (asymmetric.IPubKey, payload.IPayload, error) {
|
||||
pubKey, data, err := p.fRequester.DecryptMessage(pCtx, pNetMsg)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("decrypt message (client): %w", err)
|
||||
|
||||
@ -11,6 +11,7 @@ import (
|
||||
"github.com/number571/go-peer/pkg/crypto/asymmetric"
|
||||
"github.com/number571/go-peer/pkg/encoding"
|
||||
net_message "github.com/number571/go-peer/pkg/network/message"
|
||||
"github.com/number571/go-peer/pkg/payload"
|
||||
"github.com/number571/go-peer/pkg/utils"
|
||||
)
|
||||
|
||||
@ -60,7 +61,7 @@ func (p *sRequester) GetIndex(pCtx context.Context) (string, error) {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (p *sRequester) EncryptMessage(pCtx context.Context, pPubKey asymmetric.IPubKey, pData []byte) (net_message.IMessage, error) {
|
||||
func (p *sRequester) EncryptMessage(pCtx context.Context, pPubKey asymmetric.IPubKey, pPayload payload.IPayload) (net_message.IMessage, error) {
|
||||
resp, err := api.Request(
|
||||
pCtx,
|
||||
p.fClient,
|
||||
@ -68,7 +69,8 @@ func (p *sRequester) EncryptMessage(pCtx context.Context, pPubKey asymmetric.IPu
|
||||
fmt.Sprintf(cHandleMessageEncryptTemplate, p.fHost),
|
||||
hle_settings.SContainer{
|
||||
FPublicKey: pPubKey.ToString(),
|
||||
FHexData: encoding.HexEncode(pData),
|
||||
FPldHead: pPayload.GetHead(),
|
||||
FHexData: encoding.HexEncode(pPayload.GetBody()),
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
@ -83,7 +85,7 @@ func (p *sRequester) EncryptMessage(pCtx context.Context, pPubKey asymmetric.IPu
|
||||
return msg, nil
|
||||
}
|
||||
|
||||
func (p *sRequester) DecryptMessage(pCtx context.Context, pNetMsg net_message.IMessage) (asymmetric.IPubKey, []byte, error) {
|
||||
func (p *sRequester) DecryptMessage(pCtx context.Context, pNetMsg net_message.IMessage) (asymmetric.IPubKey, payload.IPayload, error) {
|
||||
resp, err := api.Request(
|
||||
pCtx,
|
||||
p.fClient,
|
||||
@ -110,7 +112,7 @@ func (p *sRequester) DecryptMessage(pCtx context.Context, pNetMsg net_message.IM
|
||||
return nil, nil, ErrInvalidHexFormat
|
||||
}
|
||||
|
||||
return pubKey, data, nil
|
||||
return pubKey, payload.NewPayload(result.FPldHead, data), nil
|
||||
}
|
||||
|
||||
func (p *sRequester) GetPubKey(pCtx context.Context) (asymmetric.IPubKey, error) {
|
||||
|
||||
@ -6,6 +6,7 @@ import (
|
||||
"github.com/number571/go-peer/cmd/hidden_lake/helpers/encryptor/pkg/config"
|
||||
"github.com/number571/go-peer/pkg/crypto/asymmetric"
|
||||
net_message "github.com/number571/go-peer/pkg/network/message"
|
||||
"github.com/number571/go-peer/pkg/payload"
|
||||
)
|
||||
|
||||
type IClient interface {
|
||||
@ -14,8 +15,8 @@ type IClient interface {
|
||||
|
||||
GetPubKey(context.Context) (asymmetric.IPubKey, error)
|
||||
|
||||
EncryptMessage(context.Context, asymmetric.IPubKey, []byte) (net_message.IMessage, error)
|
||||
DecryptMessage(context.Context, net_message.IMessage) (asymmetric.IPubKey, []byte, error)
|
||||
EncryptMessage(context.Context, asymmetric.IPubKey, payload.IPayload) (net_message.IMessage, error)
|
||||
DecryptMessage(context.Context, net_message.IMessage) (asymmetric.IPubKey, payload.IPayload, error)
|
||||
}
|
||||
|
||||
type IRequester interface {
|
||||
@ -24,6 +25,6 @@ type IRequester interface {
|
||||
|
||||
GetPubKey(context.Context) (asymmetric.IPubKey, error)
|
||||
|
||||
EncryptMessage(context.Context, asymmetric.IPubKey, []byte) (net_message.IMessage, error)
|
||||
DecryptMessage(context.Context, net_message.IMessage) (asymmetric.IPubKey, []byte, error)
|
||||
EncryptMessage(context.Context, asymmetric.IPubKey, payload.IPayload) (net_message.IMessage, error)
|
||||
DecryptMessage(context.Context, net_message.IMessage) (asymmetric.IPubKey, payload.IPayload, error)
|
||||
}
|
||||
|
||||
@ -2,5 +2,6 @@ package settings
|
||||
|
||||
type SContainer struct {
|
||||
FPublicKey string `json:"public_key"`
|
||||
FPldHead uint64 `json:"pld_head"`
|
||||
FHexData string `json:"hex_data"`
|
||||
}
|
||||
|
||||
@ -36,7 +36,6 @@ Also, the composition of these works can be found in the book [The general theor
|
||||
|
||||
### 5. Schemes
|
||||
|
||||
<!-- TODO: proto is old, need update -->
|
||||
1. [Hidden Lake proto](https://github.com/number571/go-peer/blob/master/docs/hidden_lake_message_layers.svg)
|
||||
|
||||
## Default applications ports
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -8,8 +8,10 @@ import (
|
||||
"time"
|
||||
|
||||
hle_client "github.com/number571/go-peer/cmd/hidden_lake/helpers/encryptor/pkg/client"
|
||||
"github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings"
|
||||
"github.com/number571/go-peer/pkg/crypto/asymmetric"
|
||||
net_message "github.com/number571/go-peer/pkg/network/message"
|
||||
"github.com/number571/go-peer/pkg/payload"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -44,7 +46,11 @@ func main() {
|
||||
}
|
||||
|
||||
pubKey := asymmetric.LoadRSAPubKey(string(readPubKey))
|
||||
netMsg, err := hleClient.EncryptMessage(ctx, pubKey, []byte(os.Args[2]))
|
||||
netMsg, err := hleClient.EncryptMessage(
|
||||
ctx,
|
||||
pubKey,
|
||||
payload.NewPayload(uint64(settings.CServiceMask), []byte(os.Args[2])),
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@ -61,7 +67,11 @@ func main() {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
fmt.Println(string(data))
|
||||
if data.GetHead() != uint64(settings.CServiceMask) {
|
||||
panic("service mask error")
|
||||
}
|
||||
|
||||
fmt.Println(string(data.GetBody()))
|
||||
default:
|
||||
panic("unknown mode")
|
||||
}
|
||||
|
||||
25344
test/result/coverage.out
25344
test/result/coverage.out
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user