mirror of
https://github.com/anyproto/any-sync.git
synced 2025-06-08 05:57:03 +09:00
24 lines
577 B
Go
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
|
|
}
|