1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 05:57:03 +09:00
any-sync/util/crypto/derived.go
Mikhail Rakhmanov c211ccf26e
Add encryption
2025-04-07 21:37:55 +02:00

24 lines
577 B
Go

package crypto
import (
"github.com/anyproto/go-slip21"
)
const (
AnysyncSpacePath = "m/SLIP-0021/anysync/space"
AnysyncTreePath = "m/SLIP-0021/anysync/tree/%s"
AnysyncKeyValuePath = "m/SLIP-0021/anysync/keyvalue/%s"
)
// DeriveSymmetricKey derives a symmetric key from seed and path using slip-21
func DeriveSymmetricKey(seed []byte, path string) (SymKey, error) {
master, err := slip21.DeriveForPath(path, seed)
if err != nil {
return nil, err
}
key, err := UnmarshallAESKey(master.SymmetricKey())
if err != nil {
return nil, err
}
return key, nil
}