mirror of
https://github.com/anyproto/anytype-heart.git
synced 2025-06-09 09:35:00 +09:00
GO-5297: added space key store
Signed-off-by: AnastasiaShemyakinskaya <shem98a@mail.ru>
This commit is contained in:
parent
7669f85e4c
commit
f41af256fa
21 changed files with 4463 additions and 2471 deletions
|
@ -1,11 +1,10 @@
|
|||
package metricsid
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"github.com/anyproto/any-sync/util/crypto"
|
||||
"github.com/anyproto/any-sync/util/strkey"
|
||||
"github.com/anyproto/go-slip10"
|
||||
|
||||
"github.com/anyproto/anytype-heart/util/privkey"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -13,24 +12,6 @@ const (
|
|||
MetricsDerivationPath = "m/99999'/0'"
|
||||
)
|
||||
|
||||
func deriveFromPrivKey(path string, privKey crypto.PrivKey) (key crypto.PrivKey, err error) {
|
||||
rawBytes, err := privKey.Raw()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
node, err := slip10.DeriveForPath(path, rawBytes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return genKey(node)
|
||||
}
|
||||
|
||||
func genKey(node slip10.Node) (key crypto.PrivKey, err error) {
|
||||
reader := bytes.NewReader(node.RawSeed())
|
||||
key, _, err = crypto.GenerateEd25519Key(reader)
|
||||
return
|
||||
}
|
||||
|
||||
func encodeMetricsId(pubKey crypto.PubKey) (string, error) {
|
||||
raw, err := pubKey.Raw()
|
||||
if err != nil {
|
||||
|
@ -40,7 +21,7 @@ func encodeMetricsId(pubKey crypto.PubKey) (string, error) {
|
|||
}
|
||||
|
||||
func DeriveMetricsId(privKey crypto.PrivKey) (string, error) {
|
||||
key, err := deriveFromPrivKey(MetricsDerivationPath, privKey)
|
||||
key, err := privkey.DeriveFromPrivKey(MetricsDerivationPath, privKey)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
26
util/privkey/key.go
Normal file
26
util/privkey/key.go
Normal file
|
@ -0,0 +1,26 @@
|
|||
package privkey
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"github.com/anyproto/any-sync/util/crypto"
|
||||
"github.com/anyproto/go-slip10"
|
||||
)
|
||||
|
||||
func DeriveFromPrivKey(path string, privKey crypto.PrivKey) (key crypto.PrivKey, err error) {
|
||||
rawBytes, err := privKey.Raw()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
node, err := slip10.DeriveForPath(path, rawBytes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return genKey(node)
|
||||
}
|
||||
|
||||
func genKey(node slip10.Node) (key crypto.PrivKey, err error) {
|
||||
reader := bytes.NewReader(node.RawSeed())
|
||||
key, _, err = crypto.GenerateEd25519Key(reader)
|
||||
return
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue