GithubHelp home page GithubHelp logo

decentralized-identity / uni-registrar-driver-did-v1 Goto Github PK

View Code? Open in Web Editor NEW
0.0 14.0 1.0 10.54 MB

A Universal Registrar driver for did:v1 identifiers.

License: Apache License 2.0

Dockerfile 7.95% Java 92.05%
wg-id decentralized-identifiers universal-registrar

uni-registrar-driver-did-v1's Introduction

DIF Logo

Universal Registrar Driver: v1

This is a Universal Registrar driver for did:v1 identifiers.

Specifications

Build and Run (Docker)

docker build -f ./docker/Dockerfile . -t universalregistrar/driver-did-v1
docker run -p 9080:9080 universalregistrar/driver-did-v1

Driver Environment Variables

The driver recognizes the following environment variables:

  • (none)

Driver Input Options

{
    "hostname": "",
    "ledger": "test",
    "keyType": "ed25519"
}
  • hostname: Hostname of a ledger node.
  • ledger: Name of the ledger. Options: live, test, dev.
  • keyType: Type of keys to generate and use. Options: ed25519, rsa.

Driver Output Metadata

{
    "didDocumentLocation": "/root/.dids/veres-test/registered/did%3Av1%3Atest%3Anym%3Az6MkjFYx9ss7FrEVmkJLmUgebJWAQTgHQeT2bPUZKqHin4sc.json"
}
  • didDocumentLocation: The local file system location of the DID document.

uni-registrar-driver-did-v1's People

Contributors

bernhardfuchs avatar cihanss avatar peacekeeper avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

isabella232

uni-registrar-driver-did-v1's Issues

No DID registered error with latest docker image

How to reproduce:

curl -X POST 'http://localhost:9080/1.0/register?driverId=driver-universalregistrar%2Fdriver-did-v1' -d '{"options":{"ledger":"test","keytype": "ed25519"}}'

Error in logs:

[qtp1845746463-29] INFO servlet.RegisterServlet (doPost) - Incoming register request: {"jobId":"7a5bfe37-025f-40f8-9a8d-1c35ace268da","options":{"keytype":"ed25519","ledger":"test"},"secret":null,"didDocument":{"publicKey":[{"id":"P9ZaFHURBAlN5JrVd4eTV37co4jPwmVzcrdUr-jSwzg","type":"Ed25519VerificationKey2018","value":"umweICaKf3DcQeP9sJiuYG7R9luWlDHBgt2Ov6aRXG0=","purpose":["general","assertion","auth"],"encoding":"Jwk","keyType":"Ed25519"},{"id":"3khOXNXXF5zKyH_lsY-soIskGybhXy55IeD3Vnm1COg","type":"JwsVerificationKey2020","value":"cuax93LjlB++LwWrk2LqRHmmvrVkb28jSavVv+wzd8Y=","purpose":["general","assertion","auth"],"encoding":"Jwk","keyType":"Ed25519"},{"id":"RrlziQ4LfkrePHOoPpd7rpTaFdfnalQz7C_Ob4xTMqs","type":"JwsVerificationKey2020","value":"BD5S9Ng4rO8gTTNXs+L2yTZlQQdlhLIelmFPXypC4wycp8NsQvIzsYP469mo76BopNStoqFNMSkva/KH5hMpr+Q=","purpose":["general","assertion","auth"],"encoding":"Jwk","keyType":"P256"},{"id":"recovery-key","type":"JwsVerificationKey2020","value":"+ah5oWFHpTGVLZycSvlLXQJUHIEtqipuPrb8IiaQEx8=","encoding":"Jwk","recovery":true},{"id":"update-key","type":"JwsVerificationKey2020","value":"r/5iwmQhw4PTtpCUNNMMIyj3mNjTG3Y/Dr4NpMqzI1E=","encoding":"Jwk","update":true}]}}
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR: { Error: Cannot find module 'sodium-native'
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at Function.Module._resolveFilename (module.js:548:15)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at Function.Module._load (module.js:475:25)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at Module.require (module.js:597:17)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at require (internal/module.js:11:18)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at Function.generate (/opt/did-cli/node_modules/crypto-ld/lib/Ed25519KeyPair.js:145:22)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at Function.generate (/opt/did-cli/node_modules/crypto-ld/lib/LDKeyPair.js:78:31)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at VeresOneDidDoc.init (/opt/did-cli/node_modules/did-veres-one/lib/VeresOneDidDoc.js:166:35)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at Function.generate (/opt/did-cli/node_modules/did-veres-one/lib/VeresOneDidDoc.js:61:15)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at VeresOne.generate (/opt/did-cli/node_modules/did-veres-one/lib/VeresOne.js:191:27)
[qtp1845746463-29] WARN v1.DidV1Driver (register) - ERR:     at api.generate (/opt/did-cli/lib/drivers/veres/index.js:139:41) code: 'MODULE_NOT_FOUND' }
[qtp1845746463-29] WARN servlet.RegisterServlet (doPost) - Driver reported for {"jobId":"7a5bfe37-025f-40f8-9a8d-1c35ace268da","options":{"keytype":"ed25519","ledger":"test"},"secret":null,"didDocument":{"publicKey":[{"id":"P9ZaFHURBAlN5JrVd4eTV37co4jPwmVzcrdUr-jSwzg","type":"Ed25519VerificationKey2018","value":"umweICaKf3DcQeP9sJiuYG7R9luWlDHBgt2Ov6aRXG0=","purpose":["general","assertion","auth"],"encoding":"Jwk","keyType":"Ed25519"},{"id":"3khOXNXXF5zKyH_lsY-soIskGybhXy55IeD3Vnm1COg","type":"JwsVerificationKey2020","value":"cuax93LjlB++LwWrk2LqRHmmvrVkb28jSavVv+wzd8Y=","purpose":["general","assertion","auth"],"encoding":"Jwk","keyType":"Ed25519"},{"id":"RrlziQ4LfkrePHOoPpd7rpTaFdfnalQz7C_Ob4xTMqs","type":"JwsVerificationKey2020","value":"BD5S9Ng4rO8gTTNXs+L2yTZlQQdlhLIelmFPXypC4wycp8NsQvIzsYP469mo76BopNStoqFNMSkva/KH5hMpr+Q=","purpose":["general","assertion","auth"],"encoding":"Jwk","keyType":"P256"},{"id":"recovery-key","type":"JwsVerificationKey2020","value":"+ah5oWFHpTGVLZycSvlLXQJUHIEtqipuPrb8IiaQEx8=","encoding":"Jwk","recovery":true},{"id":"update-key","type":"JwsVerificationKey2020","value":"r/5iwmQhw4PTtpCUNNMMIyj3mNjTG3Y/Dr4NpMqzI1E=","encoding":"Jwk","update":true}]}}: No DID registered.
uniregistrar.RegistrationException: No DID registered.
	at uniregistrar.driver.did.v1.DidV1Driver.register(DidV1Driver.java:173)
	at uniregistrar.driver.servlet.RegisterServlet.doPost(RegisterServlet.java:52)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:214)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:152)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:505)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
	at java.base/java.lang.Thread.run(Thread.java:834)

did:v1 driver returning incorrect Key IDs

Key IDs from create DID response is missing in did document keylist.

create DID response:

 {
      "id": "did:v1:test:nym:z6MkgAXMYsAtUCSMhXYkXyAm1zkEkdVPeoizq6qt5t5sxiLo#z6MkuvLABTzgxMBrp7851gn455GVW5ezwc4CYEHexk8JNRpP",
      "type": "Ed25519VerificationKey2018",
      "controller": "did:v1:test:nym:z6MkgAXMYsAtUCSMhXYkXyAm1zkEkdVPeoizq6qt5t5sxiLo",
      "publicKeyBase58": "GU57bDkFcohPhcHNL7pDDyiVgWP9XioqrDNj8UAHTD31",
      "privateKeyBase58": "eb8NX73UqUtnaZYNtUZfwN88cSVfktEBVaN58UKPGx1neMcE6yw8f3UZYDraLnL8xqGDibdLt1jQRViUV1sWeD1",
      "privateKeyJwk": {
        "kty": "OKP",
        "d": "IGow1a55uG5pt8c2dDy9SYaMhc6t5DT5CgstilcXajI",
        "crv": "Ed25519",
        "x": "5c6jFCJRqBNFEPdV6LBpzFIwGg52hSKY0Jq2_J7sMBQ"
      },
      "purpose": [
        "authentication"
      ]
    },
    {
      "id": "did:v1:test:nym:z6MkgAXMYsAtUCSMhXYkXyAm1zkEkdVPeoizq6qt5t5sxiLo#z6Mkp4gywCzSLBcco5w4nAgEwnhkcRoyJYB25xjKbU1RFzEg",
      "type": "Ed25519VerificationKey2018",
      "controller": "did:v1:test:nym:z6MkgAXMYsAtUCSMhXYkXyAm1zkEkdVPeoizq6qt5t5sxiLo",
      "publicKeyBase58": "AcRwLxjzze89gb6N6biQ6h9knrY7tevfPwpPmC3QLmTJ",
      "privateKeyBase58": "4F13QvKw77ajVhgVwJi13EH22BLbtfJFyvgECFMuEiv2wnv3krTL15YHuXnV4Ahaa6gcSSs6DPGQwG9YAKjjH2zY",
      "privateKeyJwk": {
        "kty": "OKP",
        "d": "oh_rK04kZtpyGnrByPmdIZBEeXt5sxEwJLsdRRH_Uow",
        "crv": "Ed25519",
        "x": "jsy0_EpPpymibpZTvSOEGsf1reegDrMcWa-vCPgNR40"
      },
      "purpose": [
        "assertionMethod"
      ]
    },

It is missing in did document returned by resolver

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.