[java-idp-plugin-vci] branch main updated: In example, start using own key list earlier
Codeberg
noreply at shibboleth.net
Thu Oct 1 05:29:22 UTC 2026
This is an automated email from the git hooks/post-receive script.
codeberg pushed a commit to branch main
in repository java-idp-plugin-vci.
View the commit online:
https://codeberg.org/Shibboleth/java-idp-plugin-vci/commit/e380f72e5c88ddd738ff97e4fcfd2ef384ffe9eb
The following commit(s) were added to refs/heads/main by this push:
new e380f72 In example, start using own key list earlier
e380f72 is described below
commit e380f72e5c88ddd738ff97e4fcfd2ef384ffe9eb
Author: Janne Lauros <janne.lauros at csc.fi>
AuthorDate: Thu Oct 1 08:29:07 2026 +0300
In example, start using own key list earlier
---
README.md | 60 ++++++++++++++++++++++++++++++------------------------------
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/README.md b/README.md
index 8c820f2..95fd2bc 100644
--- a/README.md
+++ b/README.md
@@ -241,6 +241,10 @@ This chapter builds one deployment in steps. Every step adds something to the pr
tells only what is new. The examples are from a running test deployment so they fit together,
but it is not guaranteed that they work for you as such.
+Before you start, the OP needs an EC signing key. A normal installation of the OP plugin has one,
+*credentials/idp-signing-es.jwk*. Steps 1 to 4 sign with it. The plugin signs credentials with
+EC keys only and does not use the RSA key of the OP.
+
1. A did:jwk credential with both flows and the Status List. Signed with the key of the OP.
2. A second credential, did:web.
3. A third credential, the issuer is the plain url.
@@ -1068,6 +1072,7 @@ What is new:
- the did:web document is published at `/.well-known/did.json`
- the credential header `kid` is a DID URL, `did:web:issuer.example.org#<kid of the key>`
- the Status List url of the credential ends with `~did-web`
+- the plugin gets a signing key list of its own, with the EC key of the OP only
The credential goes next to the two of Step 1 in *metadata/verifiable-credentials.json*:
@@ -1147,8 +1152,27 @@ and wire it in *etc/jetty-rewrite-rules.xml*:
</Configure>
```
-The document has no file behind it. It is formed from the keys that sign credentials and Status
-List Tokens. We still sign with the keys of the OP, so it lists those, also the RSA key.
+The document has no file behind it. It is formed from the keys of
+**openidvci.SigningCredentials**. Without that list it would have all the signing keys of the OP,
+also the RSA key. In *conf/openid-vci-credentials.xml* the EC key of the OP is defined again from
+the same file and put in the list. Nothing changes in signing:
+
+```xml
+<bean id="openidvci.OPESSigningCredential" parent="shibboleth.JWKCredential"
+ p:resource="%{idp.signing.oidc.es.key}" />
+
+<util:list id="openidvci.SigningCredentials">
+ <ref bean="openidvci.OPESSigningCredential" />
+</util:list>
+```
+
+Import the file into *conf/global.xml*. The Entity Configuration of
+[Step 4](#step-4-make-the-url-credential-an-openid-federation-credential) does not see beans of
+*conf/credentials.xml*:
+
+```xml
+<import resource="openid-vci-credentials.xml"/>
+```
<details>
<summary>Example of the document at /.well-known/did.json</summary>
@@ -1182,7 +1206,7 @@ List Tokens. We still sign with the keys of the OP, so it lists those, also the
</details>
-A key needs a name to be listed, the `kid` of a JWK key. The keys of the OP have one.
+A key needs a name to be listed, the `kid` of a JWK key. The EC key of the OP has one.
To make the credential requestable, the same small additions for both flows:
@@ -1297,32 +1321,8 @@ What is new:
metadata and the credential signing keys
- the url credential carries `"fed": "https://issuer.example.org"`, the other credentials not
-#### Signing key
-
-The Entity Configuration publishes the keys credentials are signed with, and it reads them from
-**openidvci.SigningCredentials**. The keys of the OP are not visible to it, so the list has to
-be defined even if the signing key stays the same. If the federation file is imported and the
-list is not defined, the IdP does not start.
-
-In *conf/openid-vci-credentials.xml* the EC key of the OP is defined again from the same file and
-put in the list. Nothing changes in signing:
-
-```xml
-<bean id="openidvci.OPESSigningCredential" parent="shibboleth.JWKCredential"
- p:resource="%{idp.signing.oidc.es.key}" />
-
-<util:list id="openidvci.SigningCredentials">
- <ref bean="openidvci.OPESSigningCredential" />
-</util:list>
-```
-
-Import the file into *conf/global.xml*. Normally it would go to *conf/credentials.xml*, but the
-Entity Configuration is published from the root context and it does not see beans of
-*conf/credentials.xml*:
-
-```xml
-<import resource="openid-vci-credentials.xml"/>
-```
+The Entity Configuration publishes the keys of **openidvci.SigningCredentials** of Step 2. If
+the federation file is imported and the list is not defined, the IdP does not start.
#### Federation
@@ -1336,7 +1336,7 @@ idp.oidfed.entityID = https://issuer.example.org
Nothing checks that the two match, it is your responsibility.
-Import the federation file into *conf/global.xml*, after the import above:
+Import the federation file into *conf/global.xml*, after the import of Step 2:
```xml
<import resource="openid-vci-oidfed.xml"/>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list