Export a default capability generator

This commit is contained in:
Emery Hemingway 2023-04-10 16:56:51 -05:00
parent b1ad08e693
commit 6364db7f69
3 changed files with 7 additions and 10 deletions

View File

@ -3,6 +3,7 @@
import preserves
import ./protocols/sturdy, ./private/hmacs
from ./actors import Ref
export `$`
@ -13,6 +14,10 @@ proc mint*[T](key: openarray[byte]; oid: T; E = void): SturdyRef[E] =
var oidPr = toPreserve(oid, E)
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] =
result = SturdyRef[T](
oid: r.oid,

View File

@ -5,17 +5,13 @@ import std/[asyncdispatch, os]
import preserves, syndicate, syndicate/capabilities
import syndicate/protocols/simpleChatProtocol
proc mintCap: SturdyRef =
var key: array[16, byte]
mint(key, "syndicate")
proc unixSocketPath: string =
result = getEnv("SYNDICATE_SOCK")
if result == "":
result = getEnv("XDG_RUNTIME_DIR", "/run/user/1000") / "dataspace"
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
username: string
usernameHandle: Handle

View File

@ -9,10 +9,6 @@ import syndicate/[actors, capabilities]
randomize()
proc mint(): SturdyRef =
var key: array[16, byte]
mint(key, "syndicate")
type
A* {.preservesRecord: "A".} = object
str*: string
@ -30,7 +26,7 @@ bootDataspace("x") 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
discard publish(turn, ds, A(str: "A unix"))