diff --git a/src/syndicate/sturdy.nim b/src/syndicate/capabilities.nim similarity index 73% rename from src/syndicate/sturdy.nim rename to src/syndicate/capabilities.nim index 6138284..7d7b644 100644 --- a/src/syndicate/sturdy.nim +++ b/src/syndicate/capabilities.nim @@ -2,11 +2,19 @@ # SPDX-License-Identifier: Unlicense import preserves -import ../syndicate/protocols/schemas/sturdy, ./private/hmacs +import ./protocols/sturdy, ./private/hmacs -proc mint*(key: openarray[byte]; oid: Preserve): SturdyRef = +from ./actors import Ref + +type SturdyRef* = sturdy.SturdyRef[Ref] + +proc mint*(key: openarray[byte]; oid: Preserve[Ref]): SturdyRef = SturdyRef(oid: oid, sig: hmacSha256(key, encode(oid), key.len)) +proc mint*[T](key: openarray[byte]; oid: T): SturdyRef = + let oidPr = toPreserve(oid, Ref) + SturdyRef(oid: oidPr, sig: hmacSha256(key, encode(oidPr), key.len)) + proc attenuate*(r: SturdyRef; caveats: Attenuation): SturdyRef = result = SturdyRef( oid: r.oid,