adjust the toolkit to the new location
This commit is contained in:
committed by
Michael Muré
parent
06f478b9c3
commit
0647e4ff8a
@@ -8,7 +8,7 @@ Please note that UCAN in itself doesn't enforce any protocol, topology or transp
|
||||
|
||||
Your situation may be different from this, and would call for a different setup.
|
||||
|
||||
Remember that everything in `go-ucan-toolkit` is essentially helpers, pre-made building blocks. You can use them, change them or make your own.
|
||||
Remember that everything in `/toolkit` is essentially helpers, pre-made building blocks. You can use them, change them or make your own.
|
||||
|
||||
## Scenario 1
|
||||
|
||||
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"github.com/ucan-wg/go-ucan/did"
|
||||
"github.com/ucan-wg/go-ucan/pkg/command"
|
||||
"github.com/MetaMask/go-did-it"
|
||||
|
||||
"github.com/INFURA/go-ucan-toolkit/issuer"
|
||||
"github.com/ucan-wg/go-ucan/pkg/command"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/issuer"
|
||||
)
|
||||
|
||||
func RequestResolver(r *http.Request) (*issuer.ResolvedRequest, error) {
|
||||
|
||||
@@ -8,12 +8,13 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/ucan-wg/go-ucan/did"
|
||||
"github.com/MetaMask/go-did-it"
|
||||
|
||||
"github.com/ucan-wg/go-ucan/pkg/command"
|
||||
"github.com/ucan-wg/go-ucan/token/delegation"
|
||||
|
||||
"github.com/INFURA/go-ucan-toolkit/client"
|
||||
"github.com/INFURA/go-ucan-toolkit/issuer"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/client"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/issuer"
|
||||
)
|
||||
|
||||
var _ client.DelegationRequester = &Requester{}
|
||||
@@ -55,5 +56,5 @@ func (r Requester) RequestDelegation(ctx context.Context, audience did.DID, cmd
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return issuer.DecodeResponse(res)
|
||||
return issuer.DecodeResponse(res, audience, cmd, subject)
|
||||
}
|
||||
|
||||
@@ -13,19 +13,20 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/libp2p/go-libp2p/core/crypto"
|
||||
"github.com/ucan-wg/go-ucan/did"
|
||||
"github.com/MetaMask/go-did-it"
|
||||
"github.com/MetaMask/go-did-it/crypto"
|
||||
|
||||
"github.com/ucan-wg/go-ucan/pkg/command"
|
||||
"github.com/ucan-wg/go-ucan/pkg/container"
|
||||
"github.com/ucan-wg/go-ucan/pkg/policy"
|
||||
"github.com/ucan-wg/go-ucan/pkg/policy/literal"
|
||||
"github.com/ucan-wg/go-ucan/token/delegation"
|
||||
|
||||
example "github.com/INFURA/go-ucan-toolkit/_example"
|
||||
protocol "github.com/INFURA/go-ucan-toolkit/_example/_protocol-issuer"
|
||||
"github.com/INFURA/go-ucan-toolkit/client"
|
||||
"github.com/INFURA/go-ucan-toolkit/issuer"
|
||||
"github.com/INFURA/go-ucan-toolkit/server/bearer"
|
||||
example "github.com/ucan-wg/go-ucan/toolkit/_example"
|
||||
protocol "github.com/ucan-wg/go-ucan/toolkit/_example/_protocol-issuer"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/client"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/issuer"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/server/bearer"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -49,7 +50,7 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func run(ctx context.Context, ownIssuerUrl string, priv crypto.PrivKey, d did.DID,
|
||||
func run(ctx context.Context, ownIssuerUrl string, priv crypto.PrivateKeySigningBytes, d did.DID,
|
||||
serviceIssuerUrl string, serviceUrl string, serviceDid did.DID) error {
|
||||
log.Printf("Alice DID is %s", d.String())
|
||||
|
||||
@@ -67,7 +68,7 @@ func run(ctx context.Context, ownIssuerUrl string, priv crypto.PrivKey, d did.DI
|
||||
return delegation.New(iss, aud, cmd, policies, subject)
|
||||
}
|
||||
|
||||
cli, err := client.NewWithIssuer(priv, protocol.NewRequester("http://"+serviceIssuerUrl), issuingLogic)
|
||||
cli, err := client.NewWithIssuer(priv, d, protocol.NewRequester("http://"+serviceIssuerUrl), issuingLogic)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -12,14 +12,17 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/ucan-wg/go-ucan/did"
|
||||
"github.com/MetaMask/go-did-it"
|
||||
didkeyctl "github.com/MetaMask/go-did-it/controller/did-key"
|
||||
"github.com/MetaMask/go-did-it/crypto/ed25519"
|
||||
|
||||
"github.com/ucan-wg/go-ucan/pkg/command"
|
||||
"github.com/ucan-wg/go-ucan/pkg/container"
|
||||
|
||||
example "github.com/INFURA/go-ucan-toolkit/_example"
|
||||
protocol "github.com/INFURA/go-ucan-toolkit/_example/_protocol-issuer"
|
||||
"github.com/INFURA/go-ucan-toolkit/client"
|
||||
"github.com/INFURA/go-ucan-toolkit/server/bearer"
|
||||
example "github.com/ucan-wg/go-ucan/toolkit/_example"
|
||||
protocol "github.com/ucan-wg/go-ucan/toolkit/_example/_protocol-issuer"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/client"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/server/bearer"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -43,14 +46,15 @@ func main() {
|
||||
|
||||
func run(ctx context.Context, aliceUrl string, aliceDid did.DID, serverUrl string, serviceDid did.DID) error {
|
||||
// Let's generate a keypair for our client:
|
||||
priv, d, err := did.GenerateEd25519()
|
||||
pub, priv, err := ed25519.GenerateKeyPair()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
d := didkeyctl.FromPublicKey(pub)
|
||||
|
||||
log.Printf("Bob DID is %s", d.String())
|
||||
|
||||
cli, err := client.NewClient(priv, protocol.NewRequester("http://"+aliceUrl))
|
||||
cli, err := client.NewClient(priv, d, protocol.NewRequester("http://"+aliceUrl))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -69,13 +73,13 @@ func run(ctx context.Context, aliceUrl string, aliceDid did.DID, serverUrl strin
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return nil
|
||||
case <-time.After(5 * time.Second):
|
||||
case <-time.After(1 * time.Second):
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func makeRequest(ctx context.Context, clientDid did.DID, serviceUrl string, aliceDid did.DID, proofs container.Writer) error {
|
||||
// we construct a URL that include the our DID and Alice DID as path, as requested by the UCAN policy we get issued
|
||||
// we construct a URL that include our DID and Alice DID as path, as requested by the UCAN policy we get issued
|
||||
u, err := url.JoinPath("http://"+serviceUrl, aliceDid.String(), clientDid.String())
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -11,16 +11,17 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/libp2p/go-libp2p/core/crypto"
|
||||
"github.com/ucan-wg/go-ucan/did"
|
||||
"github.com/MetaMask/go-did-it"
|
||||
"github.com/MetaMask/go-did-it/crypto"
|
||||
|
||||
"github.com/ucan-wg/go-ucan/pkg/command"
|
||||
"github.com/ucan-wg/go-ucan/pkg/policy"
|
||||
"github.com/ucan-wg/go-ucan/pkg/policy/literal"
|
||||
"github.com/ucan-wg/go-ucan/token/delegation"
|
||||
|
||||
example "github.com/INFURA/go-ucan-toolkit/_example"
|
||||
protocol "github.com/INFURA/go-ucan-toolkit/_example/_protocol-issuer"
|
||||
"github.com/INFURA/go-ucan-toolkit/issuer"
|
||||
example "github.com/ucan-wg/go-ucan/toolkit/_example"
|
||||
protocol "github.com/ucan-wg/go-ucan/toolkit/_example/_protocol-issuer"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/issuer"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -42,7 +43,7 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func run(ctx context.Context, issuerUrl string, servicePrivKey crypto.PrivKey) error {
|
||||
func run(ctx context.Context, issuerUrl string, servicePrivKey crypto.PrivateKeySigningBytes) error {
|
||||
issuingLogic := func(iss did.DID, aud did.DID, cmd command.Command) (*delegation.Token, error) {
|
||||
log.Printf("issuing delegation to %v for %v", aud, cmd)
|
||||
|
||||
|
||||
@@ -9,10 +9,10 @@ import (
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"github.com/ucan-wg/go-ucan/did"
|
||||
"github.com/MetaMask/go-did-it"
|
||||
|
||||
example "github.com/INFURA/go-ucan-toolkit/_example"
|
||||
"github.com/INFURA/go-ucan-toolkit/server/exectx"
|
||||
example "github.com/ucan-wg/go-ucan/toolkit/_example"
|
||||
"github.com/ucan-wg/go-ucan/toolkit/server/exectx"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -3,8 +3,10 @@ package example
|
||||
import (
|
||||
"encoding/base64"
|
||||
|
||||
"github.com/libp2p/go-libp2p/core/crypto"
|
||||
"github.com/ucan-wg/go-ucan/did"
|
||||
"github.com/MetaMask/go-did-it"
|
||||
didkeyctl "github.com/MetaMask/go-did-it/controller/did-key"
|
||||
"github.com/MetaMask/go-did-it/crypto"
|
||||
"github.com/MetaMask/go-did-it/crypto/ed25519"
|
||||
)
|
||||
|
||||
// Endpoints
|
||||
@@ -16,20 +18,20 @@ var AliceIssuerUrl = ":8082"
|
||||
|
||||
// Service
|
||||
|
||||
var ServicePrivKey crypto.PrivKey
|
||||
var ServicePrivKey crypto.PrivateKeySigningBytes
|
||||
var ServiceDid did.DID
|
||||
|
||||
// Alice
|
||||
|
||||
var AlicePrivKey crypto.PrivKey
|
||||
var AlicePrivKey crypto.PrivateKeySigningBytes
|
||||
var AliceDid did.DID
|
||||
|
||||
func init() {
|
||||
servPrivRaw, _ := base64.StdEncoding.DecodeString("CAESQGs7hPBRBmxH1UmHrdcPrBkecuFUuCWHK0kMJvZYCBqIa35SGxUdXVGuigQDkMpf7xO4C2C2Acl8QTtSrYS7Cnc=")
|
||||
ServicePrivKey, _ = crypto.UnmarshalPrivateKey(servPrivRaw)
|
||||
ServiceDid, _ = did.FromPrivKey(ServicePrivKey)
|
||||
servPrivRaw, _ := base64.StdEncoding.DecodeString("HVcbgoj30c+7zoQzUgpl7Jc7bkXoyvo9bMX5OHaAohpv036EMxuWXGqmEWhFKHPEuRAaIGSURK8pyUYOAseiiQ==")
|
||||
ServicePrivKey, _ = ed25519.PrivateKeyFromBytes(servPrivRaw)
|
||||
ServiceDid = didkeyctl.FromPrivateKey(ServicePrivKey)
|
||||
|
||||
alicePrivRaw, _ := base64.StdEncoding.DecodeString("CAESQFESA31nDYUhXXwbCNSFvg7M+TOFgyxy0tVX6o+TkJAKqAwDvtGxZeGyUjibGd/op+xOLvzE6BrTIOw62K3yLp8=")
|
||||
AlicePrivKey, _ = crypto.UnmarshalPrivateKey(alicePrivRaw)
|
||||
AliceDid, _ = did.FromPrivKey(AlicePrivKey)
|
||||
alicePrivRaw, _ := base64.StdEncoding.DecodeString("jIIk/4ZBgIzx7fU41AWYRUDjgQmgFTIXxN4WeZAPCjwE04oLfiHgNjwIIZi97a6WwSIL5tFGdkrqDkSmDx95tw==")
|
||||
AlicePrivKey, _ = ed25519.PrivateKeyFromBytes(alicePrivRaw)
|
||||
AliceDid = didkeyctl.FromPrivateKey(AlicePrivKey)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user