credentials / irma_api_server Goto Github PK
View Code? Open in Web Editor NEWThis project has been deprecated, use https://github.com/privacybydesign/irmago
License: BSD 3-Clause "New" or "Revised" License
This project has been deprecated, use https://github.com/privacybydesign/irmago
License: BSD 3-Clause "New" or "Revised" License
Hello,
I was able repeat the whole demo.
I have instances of irma_api_server, Irma_configuration, keyshare_server and running irma_mobile on iOS.
I was able to issue attributes on my instance of Irma_api_server with example/issue.html-website hosted on irma_api_server.
But every time I am trying to verify attributes with example/verify.html returns me:
Result Failure!
in the browser.
On the log screen I have following:
13:35:04.527 [qtp196732636-32] INFO o.i.api.web.resources.BaseResource - Received get, token: gvkwYljQmUOj2PEGcmkM0TTUOf6MntDbgqNuoeYw
13:35:04.527 [qtp196732636-32] INFO o.i.api.web.sessions.IrmaSession - Delaying removal of session gvkwYljQmUOj2PEGcmkM0TTUOf6MntDbgqNuoeYw with 600 seconds
13:35:05.606 [qtp196732636-34] INFO o.i.api.web.resources.IssueResource - Received commitments, token: gvkwYljQmUOj2PEGcmkM0TTUOf6MntDbgqNuoeYw
13:35:05.746 [qtp196732636-34] INFO o.i.api.web.sessions.IrmaSession - Delaying removal of session gvkwYljQmUOj2PEGcmkM0TTUOf6MntDbgqNuoeYw with 120 seconds
13:35:05.756 [qtp196732636-32] INFO org.irmacard.api.web.StatusSocket - WebSocket Close: NO_STATUS_CODE
13:35:36.754 [qtp196732636-38] INFO org.irmacard.api.common.JwtParser - Trying signed JWT
13:35:36.757 [qtp196732636-38] INFO org.irmacard.api.common.JwtParser - Trying unsigned JWT
13:35:36.757 [qtp196732636-38] WARN org.irmacard.api.common.JwtParser - Discarding JWT signature!
13:35:36.761 [qtp196732636-38] INFO o.i.api.web.sessions.IrmaSession - Delaying removal of session NIbHEY3oxGavF6QQIeZc8oJZWUUGNtlwsM8c0Adwoych with 120 seconds
13:35:36.792 [qtp196732636-34] INFO org.irmacard.api.web.StatusSocket - WebSocket Connect: WebSocketSession[websocket=JsrAnnotatedEventDriver[websocket=org.irmacard.api.web.StatusSocket@4943ab11],behavior=SERVER,connection=WebSocketServerConnection@724478c1{IDLE}{f=Flusher[queueSize=0,aggregateSize=0,failure=null],g=Generator[SERVER,validating],p=Parser@3d3f3aee[ExtensionStack,s=START,c=0,len=0,f=null,p=WebSocketPolicy@e7c4778[behavior=SERVER,maxTextMessageSize=65536,maxTextMessageBufferSize=32768,maxBinaryMessageSize=65536,maxBinaryMessageBufferSize=32768,asyncWriteTimeout=60000,idleTimeout=0,inputBufferSize=4096]]},remote=WebSocketRemoteEndpoint@5ab36e85[batching=true],incoming=JsrAnnotatedEventDriver[websocket=org.irmacard.api.web.StatusSocket@4943ab11],outgoing=ExtensionStack[queueSize=0,extensions=[],incoming=org.eclipse.jetty.websocket.jsr356.JsrSession,outgoing=org.eclipse.jetty.websocket.server.WebSocketServerConnection]]
13:35:39.933 [qtp196732636-38] INFO o.i.api.web.resources.BaseResource - Received get, token: NIbHEY3oxGavF6QQIeZc8oJZWUUGNtlwsM8c0Adwoych
13:35:39.933 [qtp196732636-38] INFO o.i.api.web.sessions.IrmaSession - Delaying removal of session NIbHEY3oxGavF6QQIeZc8oJZWUUGNtlwsM8c0Adwoych with 600 seconds
13:35:41.051 [qtp196732636-34] INFO o.i.api.web.sessions.IrmaSession - Delaying removal of session NIbHEY3oxGavF6QQIeZc8oJZWUUGNtlwsM8c0Adwoych with 120 seconds
13:35:41.052 [qtp196732636-34] INFO o.i.a.w.r.VerificationResource - Received proofs, token: NIbHEY3oxGavF6QQIeZc8oJZWUUGNtlwsM8c0Adwoych
13:35:41.054 [qtp196732636-38] INFO org.irmacard.api.web.StatusSocket - WebSocket Close: NO_STATUS_CODE
13:35:41.055 [qtp196732636-42] INFO o.i.api.web.sessions.IrmaSession - Closing session NIbHEY3oxGavF6QQIeZc8oJZWUUGNtlwsM8c0Adwoych
13:37:05.752 [Timer-2] WARN o.i.api.web.sessions.IrmaSession - Session gvkwYljQmUOj2PEGcmkM0TTUOf6MntDbgqNuoeYw timeout, removing
13:37:05.752 [Timer-2] WARN org.irmacard.api.web.StatusSocket - StatusSocket.sendUpdate() called but no websocket registered
13:37:05.753 [Timer-2] INFO o.i.api.web.sessions.IrmaSession - Closing session gvkwYljQmUOj2PEGcmkM0TTUOf6MntDbgqNuoeYw
I have generated keys with utils/keygen.sh
, as it said in README.md,
and have following src/main/resources/config.json
Also I put generated keys into issuers/verifiers directories following way:
irma_api_server% ls src/main/resources/verifiers
pk.der
irma_api_server% ls src/main/resources/issuers
sk.der
What else can I perform to have verification/disclosure working?
Hello,
I am trying to follow Readme for building irma_api_server and getting following error:
irma_api_server [tags/v1.4.2] % gradle --version
------------------------------------------------------------
Gradle 4.3.1
------------------------------------------------------------
Build time: 2018-04-30 11:59:57 UTC
Revision: cdb459eef3c887e603a49388c6e83c3ba6fd3567
Groovy: 2.4.8
Ant: Apache Ant(TM) version 1.10.5 compiled on August 21 2018
JVM: 1.8.0_181 (Oracle Corporation 25.181-b15)
OS: Linux 4.18.9-200.fc28.x86_64 amd64
21:35:36.780 [main] ERROR org.irmacard.api.web.ApiApplication - Store initialization failed:
java.lang.NullPointerException: null
at org.irmacard.credentials.info.TreeWalker.parseConfiguration(TreeWalker.java:47)
at org.irmacard.credentials.info.DescriptionStore.initialize(DescriptionStore.java:115)
at org.irmacard.credentials.info.DescriptionStore.initialize(DescriptionStore.java:95)
at org.irmacard.credentials.info.DescriptionStore.initialize(DescriptionStore.java:109)
at org.irmacard.api.web.ApiApplication.loadOrUpdateIrmaConfiguration(ApiApplication.java:127)
at org.irmacard.api.web.ApiApplication.<init>(ApiApplication.java:89)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1375)
at org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1007)
at org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:975)
at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1067)
at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1059)
at org.glassfish.jersey.server.ApplicationHandler.createApplication(ApplicationHandler.java:385)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:342)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:612)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:395)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:871)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
at org.akhikhl.gretty.JettyWebAppContext.super$10$doStart(JettyWebAppContext.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1206)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:130)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:150)
at org.akhikhl.gretty.JettyWebAppContext.doStart(JettyWebAppContext.groovy:44)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:163)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:387)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:354)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.LifeCycle$start$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at org.akhikhl.gretty.JettyServerManager.startServer(JettyServerManager.groovy:45)
at org.akhikhl.gretty.ServerManager$startServer$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.akhikhl.gretty.Runner.run(Runner.groovy:119)
at org.akhikhl.gretty.Runner.this$2$run(Runner.groovy)
at org.akhikhl.gretty.Runner$this$2$run.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at org.akhikhl.gretty.Runner.main(Runner.groovy:46)
Hi, trying to build the server I'm getting an exception, please could you guide me to solve this?
/irma/irma_api_server # gradle --version
------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------
Build time: 2018-02-28 13:36:36 UTC
Revision: 8fa6ce7945b640e6168488e4417f9bb96e4ab46c
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)
OS: Linux 4.9.60-linuxkit-aufs amd64
/irma/irma_api_server # gradle buildProduct
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'irma_api_server'.
> Could not resolve all dependencies for configuration ':runtimeCopy'.
> Could not find org.irmacard.api:irma_api_common:0.9.0.
Searched in the following locations:
file:/root/.m2/repository/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.pom
file:/root/.m2/repository/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.jar
https://credentials.github.io/repos/maven2/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.pom
https://credentials.github.io/repos/maven2/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.jar
https://repo.maven.apache.org/maven2/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.pom
https://repo.maven.apache.org/maven2/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.jar
Required by:
project :
> Could not find org.irmacard.api:irma_api_common:0.9.0.
Searched in the following locations:
file:/root/.m2/repository/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.pom
file:/root/.m2/repository/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.jar
https://credentials.github.io/repos/maven2/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.pom
https://credentials.github.io/repos/maven2/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.jar
https://repo.maven.apache.org/maven2/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.pom
https://repo.maven.apache.org/maven2/org/irmacard/api/irma_api_common/0.9.0/irma_api_common-0.9.0.jar
Required by:
project : > foundation.privacybydesign.common:irma_server_common:0.3.0
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
I tried to compile the irma_api_server. (Mac OS X 10.11.6, Ubuntu 16.0.4.LTS) in both cases the command 'gradle buildProduct' failed at the same place. This is the log from the Ubuntu run (java 8u121-b13-0ubuntu1.16.04.2 , grade 2.10-1)
:preTest
Generating RSA private key, 2048 bit long modulus
..............+++
..............+++
e is 65537 (0x10001)
writing RSA key
writing RSA key
Generating RSA private key, 2048 bit long modulus
......................+++
...........................................................+++
e is 65537 (0x10001)
writing RSA key
writing RSA key
:processTestResources
:testClasses
:test
org.irmacard.api.web.VerificationTest > validSessionTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > missingAttributesTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > brokenProofTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > invalidProofTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > authorizedVerifierTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > boundProofsTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > brokenJsonTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > missingMetadataTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > unnecessarilySignedJwt FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > missingProofTest FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.VerificationTest > unsignedJwt FAILED
javax.ws.rs.BadRequestException at VerificationTest.java:137
org.irmacard.api.web.IssueTest > validIssueTest FAILED
javax.ws.rs.BadRequestException at IssueTest.java:167
org.irmacard.api.web.IssueTest > validBoundIssueTest FAILED
javax.ws.rs.BadRequestException at IssueTest.java:167
org.irmacard.api.web.IssueTest > validBoundIssueTest2 FAILED
javax.ws.rs.BadRequestException at IssueTest.java:167
org.irmacard.api.web.SignatureTest > validSessionTest FAILED
javax.ws.rs.BadRequestException at SignatureTest.java:134
org.irmacard.api.web.SignatureTest > validSessionWithInvalidConditionTest FAILED
javax.ws.rs.BadRequestException at SignatureTest.java:134
org.irmacard.api.web.SignatureTest > oldSignatureSession FAILED
org.irmacard.credentials.info.KeyException at SignatureTest.java:241
org.irmacard.api.web.SignatureTest > expiredAttributeSession FAILED
org.irmacard.credentials.info.KeyException at SignatureTest.java:241
org.irmacard.api.web.SignatureTest > verifySigAsDisclosureProofTest FAILED
javax.ws.rs.BadRequestException at SignatureTest.java:134
org.irmacard.api.web.SignatureTest > validSessionWithConditionTest FAILED
javax.ws.rs.BadRequestException at SignatureTest.java:134
26 tests completed, 20 failed
:test FAILED
FAILURE: Build failed with an exception.
There were failing tests. See the report at: file:///root/irma_api_server/build/reports/tests/index.html
BUILD FAILED
Total time: 40.28 secs
Hello!
I use ubuntu 16.04 and installed java 1.8.0_161 and gradle-4.6 .
I tried to build the irma_api_server and I followed the guide. However, I tried to test it and I used the command node utils/testsp.js http://localhost:8088 but I got he following error:
fs.js:549
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open 'irma_api_server/pk.pem'
at Error (native)
at Object.fs.openSync (fs.js:549:18)
at Object.fs.readFileSync (fs.js:397:15)
at Object. (/home/ias/irma_api_server/utils/testsp.js:31:20)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
Should I execute other command ? How can I deal with this ?
Thanks a lot!
Hi, I'm running the demo configuration and I have the keys and configuration in /etc/irma_api_server
the irma-demo scheme in /etc/irma_api_server/irma-demo
bash-4.4# IRMA_API_CONF=/etc/irma_api_server ./start.sh
09:09:29 INFO org.eclipse.jetty.util.log - Logging initialized @1950ms
09:09:29 INFO org.eclipse.jetty.server.Server - jetty-9.2.10.v20150310
09:09:29 INFO o.a.gretty.JettyConfigurerImpl - Configuring /irma_api_server with file:/irma/irma_api_server/build/output/irma_api_server/conf/irma_api_server/jetty-env.xml
09:09:30,163 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.groovy] at [file:/irma/irma_api_server/build/output/irma_api_server/runner/logback-config/logback.groovy]
09:09:30,164 |-ERROR in ch.qos.logback.classic.LoggerContext[default] - Groovy classes are not available on the class path. ABORTING INITIALIZATION.
09:09:31 INFO o.e.j.server.handler.ContextHandler - Started o.a.g.JettyWebAppContext@15dcfae7{/irma_api_server,file:/irma/irma_api_server/build/output/irma_api_server/webapps-exploded/irma_api_server/webapp/,AVAILABLE}{/irma_api_server.war}
09:09:31 INFO o.e.jetty.server.ServerConnector - Started ServerConnector@607889ea{HTTP/1.1}{0.0.0.0:8088}
09:09:31 INFO o.e.jetty.server.ServerConnector - Started ServerConnector@1458c1a6{SSL-http/1.1}{0.0.0.0:8444}
09:09:31 INFO org.eclipse.jetty.server.Server - Started @4461ms
09:09:31 INFO o.a.gretty.JettyServerStartInfo - Jetty 9.2.10.v20150310 started and listening on ports 8088, 8444
09:09:31 INFO o.a.gretty.JettyServerStartInfo - irma_api_server runs at:
09:09:31 INFO o.a.gretty.JettyServerStartInfo - http://localhost:8088/irma_api_server
09:09:31 INFO o.a.gretty.JettyServerStartInfo - https://localhost:8444/irma_api_server
Run './stop.sh' to stop the server.
When I run
node utils/testsig.js http://localhost:8088 /etc/irma_api_server/irma-demo
or
node utils/testsp.js http://localhost:8088 /etc/irma_api_server/irma-demo
I get this error:
{ uri: 'http://localhost:8088/irma_api_server/api/v2/signature/', method: 'POST', body: 'eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJhYnNyZXF1ZXN0Ijp7ImRhdGEiOiJmb29iYXIiLCJ2YWxpZGl0eSI6NjAsInRpbWVvdXQiOjYwLCJyZXF1ZXN0Ijp7Im1lc3NhZ2UiOiJNZXNzYWdlIHRvIGJlIHNpZ25lZCIsIm1lc3NhZ2VUeXBlIjoiU1RSSU5HIiwiY29udGVudCI6W3sibGFiZWwiOiJOYW1lIiwiYXR0cmlidXRlcyI6eyJpcm1hLWRlbW8uTWlqbk92ZXJoZWlkLmZ1bGxOYW1lLmZpcnN0bmFtZSI6IkpvaGFuIn19LHsibGFiZWwiOiJPdmVyIDIxIiwiYXR0cmlidXRlcyI6WyJpcm1hLWRlbW8uTWlqbk92ZXJoZWlkLmFnZUxvd2VyLm92ZXIxOCIsImlybWEtZGVtby5NaWpuT3ZlcmhlaWQuYWdlTG93ZXIub3ZlcjIxIl19XX19LCJpYXQiOjE1MjI0ODcwMTQsImlzcyI6InRlc3RzaWdjbGllbnQiLCJzdWIiOiJzaWduYXR1cmVfcmVxdWVzdCJ9.' } Error in initial request: {"error":"ATTRIBUTES_WRONG","status":400,"description":"Specified attribute(s) do not belong to this credential type or missing attributes","stacktrace":"org.irmacard.api.common.exceptions.ApiException\n\tat org.irmacard.api.web.resources.SignatureResource.create(SignatureResource.java:121)\n\tat org.irmacard.api.web.resources.SignatureResource.create(SignatureResource.java:66)\n\tat org.irmacard.api.web.resources.BaseResource.newSession(BaseResource.java:92)\n\tat org.irmacard.api.web.resources.SignatureResource.newSession(SignatureResource.java:83)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)\n\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)\n\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)\n\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)\n\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)\n\tat org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:315)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:297)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:267)\n\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)\n\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)\n\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)\n\tat org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)\n\tat org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)\n\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)\n\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)\n\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)\n\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)\n\tat org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:224)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:497)\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)\n\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)\n\tat org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)\n\tat java.lang.Thread.run(Thread.java:748)\n"}
The attributes exists in the folder, but seems they aren't recognised? running from start.sh
script I didn't get any useful log then I ran the server using gradle:
bash-4.4# IRMA_API_CONF=/etc/irma_api_server gradle appRun
:prepareInplaceWebAppFolder SKIPPED
:createInplaceWebAppFolder UP-TO-DATE
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:prepareInplaceWebAppClasses UP-TO-DATE
:prepareInplaceWebApp UP-TO-DATE
:appRun
You're running webapp in hard inplaceMode: Overlay and filtering features of gretty will be disabled!
09:19:09 INFO Configuring /irma_api_server with file:/irma/irma_api_server/src/test/resources/jetty-env.xml
09:19:11.175 [main] INFO o.irmacard.api.web.ApiConfiguration - Taking configuration directory specified by environment variable IRMA_API_CONF
09:19:11.246 [main] INFO o.irmacard.api.web.ApiConfiguration - Using configuration directory: file:///etc/irma_api_server/
09:19:11.246 [main] INFO o.irmacard.api.web.ApiConfiguration - Configuration:
09:19:11.253 [main] INFO o.irmacard.api.web.ApiConfiguration - {"jwt_privatekey":"sk.der","jwt_publickey":"pk.der","schemeManager_publickey":"schemeManager.pk.pem","jwt_issuer":"irma_api_server-demo","enable_verification":true,"enable_issuing":true,"enable_signing":true,"reject_unfloored_validity_timestamps":true,"allow_unsigned_issue_requests":true,"allow_unsigned_verification_requests":true,"allow_unsigned_signature_requests":true,"max_jwt_age":60,"token_response_timeout":600,"token_get_timeout":120,"client_get_timeout":120,"authorized_idps":{"testip":["*"]},"authorized_sps":{"testsp":["*"]},"authorized_sigclients":{"testsigclient":["*"]},"client_names":{}}
09:19:11.255 [main] WARN org.irmacard.api.web.ApiApplication - Enabling IssueResource at /issue
09:19:11.257 [main] WARN org.irmacard.api.web.ApiApplication - Enabling VerificationResource at /verification
09:19:11.258 [main] WARN org.irmacard.api.web.ApiApplication - Enabling SignatureResource at /signature
09:19:11.269 [main] ERROR org.irmacard.api.web.ApiApplication - Store initialization failed:
java.lang.NullPointerException: null
at org.irmacard.credentials.info.TreeWalker.parseConfiguration(TreeWalker.java:47)
at org.irmacard.credentials.info.DescriptionStore.initialize(DescriptionStore.java:115)
at org.irmacard.credentials.info.DescriptionStore.initialize(DescriptionStore.java:95)
at org.irmacard.credentials.info.DescriptionStore.initialize(DescriptionStore.java:109)
at org.irmacard.api.web.ApiApplication.loadOrUpdateIrmaConfiguration(ApiApplication.java:127)
at org.irmacard.api.web.ApiApplication.<init>(ApiApplication.java:89)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1375)
at org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1007)
at org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:975)
at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1067)
at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1059)
at org.glassfish.jersey.server.ApplicationHandler.createApplication(ApplicationHandler.java:385)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:342)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:612)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:395)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:871)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
at org.akhikhl.gretty.JettyWebAppContext.super$10$doStart(JettyWebAppContext.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1206)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:130)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:150)
at org.akhikhl.gretty.JettyWebAppContext.doStart(JettyWebAppContext.groovy:44)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:163)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:387)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:354)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.LifeCycle$start$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at org.akhikhl.gretty.JettyServerManager.startServer(JettyServerManager.groovy:45)
at org.akhikhl.gretty.ServerManager$startServer$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.akhikhl.gretty.Runner.run(Runner.groovy:119)
at org.akhikhl.gretty.Runner.this$2$run(Runner.groovy)
at org.akhikhl.gretty.Runner$this$2$run.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at org.akhikhl.gretty.Runner.main(Runner.groovy:46)
09:19:11 INFO Jetty 9.2.10.v20150310 started and listening on ports 8088, 8444
09:19:11 INFO irma_api_server runs at:
09:19:11 INFO http://localhost:8088/irma_api_server
09:19:11 INFO https://localhost:8444/irma_api_server
Press any key to stop the server.
Now I can see there is an error:
Store initialisation failed:java.lang.NullPointerException: null
I suppose that the store is referring to the scheme and as the initialisation is failing irma can't validate my attributes.
Then if I try to run the signature test:
bash-4.4# node utils/testsig.js http://localhost:8088 /etc/irma_api_server/irma-demo
{ uri: 'http://localhost:8088/irma_api_server/api/v2/signature/',
method: 'POST',
body: 'eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJhYnNyZXF1ZXN0Ijp7ImRhdGEiOiJmb29iYXIiLCJ2YWxpZGl0eSI6NjAsInRpbWVvdXQiOjYwLCJyZXF1ZXN0Ijp7Im1lc3NhZ2UiOiJNZXNzYWdlIHRvIGJlIHNpZ25lZCIsIm1lc3NhZ2VUeXBlIjoiU1RSSU5HIiwiY29udGVudCI6W3sibGFiZWwiOiJOYW1lIiwiYXR0cmlidXRlcyI6eyJpcm1hLWRlbW8uTWlqbk92ZXJoZWlkLmZ1bGxOYW1lLmZpcnN0bmFtZSI6IkpvaGFuIn19LHsibGFiZWwiOiJPdmVyIDIxIiwiYXR0cmlidXRlcyI6WyJpcm1hLWRlbW8uTWlqbk92ZXJoZWlkLmFnZUxvd2VyLm92ZXIxOCIsImlybWEtZGVtby5NaWpuT3ZlcmhlaWQuYWdlTG93ZXIub3ZlcjIxIl19XX19LCJpYXQiOjE1MjI0ODgwODAsImlzcyI6InRlc3RzaWdjbGllbnQiLCJzdWIiOiJzaWduYXR1cmVfcmVxdWVzdCJ9.' }
Error in initial request:
{"error":"ATTRIBUTES_WRONG","status":400,"description":"Specified attribute(s) do not belong to this credential type or missing attributes","stacktrace":"org.irmacard.api.common.exceptions.ApiException\n\tat org.irmacard.api.web.resources.SignatureResource.create(SignatureResource.java:121)\n\tat org.irmacard.api.web.resources.SignatureResource.create(SignatureResource.java:66)\n\tat org.irmacard.api.web.resources.BaseResource.newSession(BaseResource.java:92)\n\tat org.irmacard.api.web.resources.SignatureResource.newSession(SignatureResource.java:83)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)\n\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)\n\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)\n\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)\n\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)\n\tat org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:315)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:297)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:267)\n\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)\n\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)\n\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)\n\tat org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)\n\tat org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)\n\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)\n\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)\n\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)\n\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)\n\tat org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:224)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:497)\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)\n\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)\n\tat org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)\n\tat java.lang.Thread.run(Thread.java:748)\n"}
The server logs are showing this warning:
09:21:20.766 [qtp693958407-12] INFO org.irmacard.api.common.JwtParser - Trying signed JWT
09:21:21.114 [qtp693958407-12] INFO org.irmacard.api.common.JwtParser - Trying unsigned JWT
09:21:21.114 [qtp693958407-12] WARN org.irmacard.api.common.JwtParser - Discarding JWT signature!
I'm not sure why irma-api-server aren't getting the scheme I'm using the demo config.json
/etc/irma_api_server/
├── config.json
└── irma-demo
├── AUTHORS
├── IRMATube
│ ├── Issues
│ │ └── member
│ │ ├── description.xml
│ │ └── logo.png
│ ├── PrivateKeys
│ │ ├── 0.xml
│ │ └── 1.xml
│ ├── PublicKeys
│ │ ├── 0.xml
│ │ └── 1.xml
│ ├── description.xml
│ └── logo.png
├── LICENSE
├── MijnOverheid
│ ├── Issues
│ │ ├── address
│ │ │ ├── description.xml
│ │ │ └── logo.png
│ │ ├── ageHigher
│ │ │ ├── description.xml
│ │ │ └── logo.png
│ │ ├── ageLower
│ │ │ ├── description.xml
│ │ │ └── logo.png
│ │ ├── birthCertificate
│ │ │ ├── description.xml
│ │ │ └── logo.png
│ │ ├── fullName
│ │ │ ├── description.xml
│ │ │ └── logo.png
│ │ ├── idDocument
│ │ │ ├── description.xml
│ │ │ └── logo.png
│ │ └── root
│ │ ├── description.xml
│ │ └── logo.png
│ ├── PrivateKeys
│ │ ├── 0.xml
│ │ └── 1.xml
│ ├── PublicKeys
│ │ ├── 0.xml
│ │ └── 1.xml
│ ├── description.xml
│ └── logo.png
├── README.md
├── RU
│ ├── Issues
│ │ ├── idinData
│ │ │ ├── description.xml
│ │ │ └── logo.png
│ │ └── studentCard
│ │ ├── description.xml
│ │ └── logo.png
│ ├── PrivateKeys
│ │ ├── 0.xml
│ │ ├── 1.xml
│ │ └── 2.xml
│ ├── PublicKeys
│ │ ├── 0.xml
│ │ ├── 1.xml
│ │ └── 2.xml
│ ├── description.xml
│ └── logo.png
├── description.xml
├── index
├── index.sig
├── pk.pem
└── sk.pem
23 directories, 49 files
Thanks in advance.
I tried to follow the signing demo at https://demo.irmacard.org/tomcat/irma_api_server/examples/sign.html, but it seems the websocket handshake goes wrong. I'm receiving a 500 internal server error response.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.