Export a default capability generator
This commit is contained in:
parent
b1ad08e693
commit
6364db7f69
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
import preserves
|
import preserves
|
||||||
import ./protocols/sturdy, ./private/hmacs
|
import ./protocols/sturdy, ./private/hmacs
|
||||||
|
from ./actors import Ref
|
||||||
|
|
||||||
export `$`
|
export `$`
|
||||||
|
|
||||||
|
@ -13,6 +14,10 @@ proc mint*[T](key: openarray[byte]; oid: T; E = void): SturdyRef[E] =
|
||||||
var oidPr = toPreserve(oid, E)
|
var oidPr = toPreserve(oid, E)
|
||||||
SturdyRef[E](oid: oidPr, sig: hmacSha256(key, encode(oidPr), key.len))
|
SturdyRef[E](oid: oidPr, sig: hmacSha256(key, encode(oidPr), key.len))
|
||||||
|
|
||||||
|
proc mint*(): SturdyRef[Ref] =
|
||||||
|
var key: array[16, byte]
|
||||||
|
cast[SturdyRef[Ref]](mint(key, "syndicate", Ref))
|
||||||
|
|
||||||
proc attenuate*[T](r: SturdyRef[T]; caveats: Attenuation): SturdyRef[T] =
|
proc attenuate*[T](r: SturdyRef[T]; caveats: Attenuation): SturdyRef[T] =
|
||||||
result = SturdyRef[T](
|
result = SturdyRef[T](
|
||||||
oid: r.oid,
|
oid: r.oid,
|
||||||
|
|
|
@ -5,17 +5,13 @@ import std/[asyncdispatch, os]
|
||||||
import preserves, syndicate, syndicate/capabilities
|
import preserves, syndicate, syndicate/capabilities
|
||||||
import syndicate/protocols/simpleChatProtocol
|
import syndicate/protocols/simpleChatProtocol
|
||||||
|
|
||||||
proc mintCap: SturdyRef =
|
|
||||||
var key: array[16, byte]
|
|
||||||
mint(key, "syndicate")
|
|
||||||
|
|
||||||
proc unixSocketPath: string =
|
proc unixSocketPath: string =
|
||||||
result = getEnv("SYNDICATE_SOCK")
|
result = getEnv("SYNDICATE_SOCK")
|
||||||
if result == "":
|
if result == "":
|
||||||
result = getEnv("XDG_RUNTIME_DIR", "/run/user/1000") / "dataspace"
|
result = getEnv("XDG_RUNTIME_DIR", "/run/user/1000") / "dataspace"
|
||||||
|
|
||||||
bootDataspace("main") do (root: Ref; turn: var Turn):
|
bootDataspace("main") do (root: Ref; turn: var Turn):
|
||||||
connectUnix(turn, unixSocketPath(), mintCap()) do (turn: var Turn; ds: Ref):
|
connectUnix(turn, unixSocketPath(), capabilities.mint()) do (turn: var Turn; ds: Ref):
|
||||||
var
|
var
|
||||||
username: string
|
username: string
|
||||||
usernameHandle: Handle
|
usernameHandle: Handle
|
||||||
|
|
|
@ -9,10 +9,6 @@ import syndicate/[actors, capabilities]
|
||||||
|
|
||||||
randomize()
|
randomize()
|
||||||
|
|
||||||
proc mint(): SturdyRef =
|
|
||||||
var key: array[16, byte]
|
|
||||||
mint(key, "syndicate")
|
|
||||||
|
|
||||||
type
|
type
|
||||||
A* {.preservesRecord: "A".} = object
|
A* {.preservesRecord: "A".} = object
|
||||||
str*: string
|
str*: string
|
||||||
|
@ -30,7 +26,7 @@ bootDataspace("x") do (ds: Ref; turn: var Turn):
|
||||||
|
|
||||||
bootDataspace("y") do (ds: Ref; turn: var Turn):
|
bootDataspace("y") do (ds: Ref; turn: var Turn):
|
||||||
|
|
||||||
connectUnix(turn, "/run/user/1000/dataspace", mint()) do (turn: var Turn; a: Assertion) -> TurnAction:
|
connectUnix(turn, "/run/user/1000/dataspace", capabilities.mint()) do (turn: var Turn; a: Assertion) -> TurnAction:
|
||||||
let ds = unembed a
|
let ds = unembed a
|
||||||
|
|
||||||
discard publish(turn, ds, A(str: "A unix"))
|
discard publish(turn, ds, A(str: "A unix"))
|
||||||
|
|
Loading…
Reference in New Issue