Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
fdb4a73
add spi, provider and interfaces for oid4vc #25937
wistefan Jan 5, 2024
de3da78
update to java 17
wistefan Jan 5, 2024
5fb240b
Fix for empty realm name issue
atharvakshi Jan 1, 2024
9e55511
Make passing parameters to `generateEncodedPath()` type-safe (#25944)
jonkoops Jan 5, 2024
ade5680
Add logging to the policy providers for general debugging purposes
alice-wondered Jan 4, 2024
91dd9dd
Do not switch to admin console too early (#25952)
hmlnarik Jan 5, 2024
4aa4353
Using a valid URI when deleting cookies before/after running tests
pedroigor Jan 4, 2024
e3b5bd2
Bump vite from 5.0.10 to 5.0.11 in /js
dependabot[bot] Jan 8, 2024
16403e3
Bump @typescript-eslint/parser from 6.17.0 to 6.18.0 in /js
dependabot[bot] Jan 8, 2024
0c61b1f
Bump rollup
dependabot[bot] Jan 8, 2024
890bce0
Bump rollup from 4.9.2 to 4.9.4 in /js
dependabot[bot] Jan 8, 2024
a15e3cf
Bump @typescript-eslint/eslint-plugin from 6.17.0 to 6.18.0 in /js
dependabot[bot] Jan 8, 2024
76ff4ca
Bump @types/react from 18.2.46 to 18.2.47 in /js
dependabot[bot] Jan 8, 2024
3290bd0
Bump jsdom from 23.0.1 to 23.2.0 in /js (#25970)
dependabot[bot] Jan 8, 2024
ff97b69
Bump @types/node from 20.10.6 to 20.10.7 in /js
dependabot[bot] Jan 8, 2024
b6c6115
Update web element of the LinkedIn login page (#25905)
tondrusk Jan 8, 2024
5f1c7ac
account console locale zh-CN (#25828)
potterhe Jan 8, 2024
0bd418c
Bump i18next from 23.7.15 to 23.7.16 in /js (#25923)
dependabot[bot] Jan 8, 2024
fee7de6
Add release announcement and migration for new welcome theme (#25895)
jonkoops Jan 8, 2024
9320815
Localization tabs (#25532)
agagancarczyk Jan 8, 2024
2a2a1f0
Check if UMA is enabled on resource, if not reject the request.
Nov 8, 2023
01ef048
Add German translations for account console v3 (#25957)
ReneZeidler Jan 8, 2024
d6d6372
fix: adds a general error message and descriptions for some exception…
shawkins Jan 8, 2024
6010e34
Making metrics with labels for embedded Infinispan the default
ahus1 Jan 5, 2024
b81679b
Deleting a User or User Group might cause that all users suddenly get…
douglaspalmer Nov 16, 2023
0ba411d
Stabilizing test cases by adding cleanups
ahus1 Jan 4, 2024
88e3dda
removed use of ui-ext in library (#25611)
edewit Jan 9, 2024
38580ea
Fixed tiny doc typo (#26012)
sschu Jan 9, 2024
bbdc843
Escape action in the form_post.jwt and only decode path in RedirectUt…
rmartinc Jan 9, 2024
77e024b
Update cs+sk login messages - fixes #25962 (#25963)
McLaynV Jan 9, 2024
ea62822
Add the build step to the overall status check (#25982)
ahus1 Jan 9, 2024
b9dea5f
Improve brute force documentation around how the effective wait time …
pedroigor Jan 9, 2024
7edf8ed
Enhancing Lightweight access token M2(keycloak#25716)
skabano Dec 14, 2023
817e22a
Creating documentation for Lightweight access token(#25743)
skabano Dec 21, 2023
9227db0
fixed label on resource (#25623)
edewit Jan 9, 2024
8913f80
remove userProfileMetadata from user (#25608)
edewit Jan 9, 2024
9d226f2
Bump @typescript-eslint/eslint-plugin from 6.18.0 to 6.18.1 in /js (#…
dependabot[bot] Jan 9, 2024
f002a89
Bump react-hook-form from 7.49.2 to 7.49.3 in /js (#26009)
dependabot[bot] Jan 9, 2024
70228b5
Bump aquasecurity/trivy-action from 0.16.0 to 0.16.1 (#25885)
dependabot[bot] Jan 9, 2024
00db0a6
Could not format default value for log formats (#25910)
mabartos Jan 9, 2024
81e2f1d
change text based on the context (#25664)
edewit Jan 9, 2024
368b861
fixed message for disabling clients (#25672)
edewit Jan 9, 2024
5567a79
Fix OfflineServletAdapterTest failures, and improve logging (#25724)
ahus1 Jan 9, 2024
ed8eaa6
Clarify note about containers
andymunro Jan 9, 2024
a0e74d1
Add landmark element for loading state for consoles (#26037)
jonkoops Jan 9, 2024
509efdf
Remove concurrent loading of remote sessions as at startup time only …
ahus1 Jan 9, 2024
50d2d6f
Added welcome tab to admin-ui (#25992)
agagancarczyk Jan 9, 2024
c4f095f
On invalid submission, IdpUsernamePasswordForm sends back the user to…
reda-alaoui Jan 5, 2024
e5f176d
doc: adding notes about header priority (#25959)
shawkins Jan 10, 2024
6654d31
use content json also for own menu (#25744)
edewit Jan 10, 2024
32011ce
Bump @types/node from 20.10.7 to 20.10.8 in /js (#26062)
dependabot[bot] Jan 10, 2024
c2b0301
Bump @rollup/plugin-typescript from 11.1.5 to 11.1.6 in /js (#26061)
dependabot[bot] Jan 10, 2024
2749cc9
Add progressbar role (#25988)
hmlnarik Jan 10, 2024
ccfb165
more missing translations (#26018)
edewit Jan 10, 2024
28900d9
remove default so it can be empty (#26024)
edewit Jan 10, 2024
50ca6f3
Bump @typescript-eslint/parser from 6.18.0 to 6.18.1 in /js (#26008)
dependabot[bot] Jan 10, 2024
4052fcd
Avoid returning duplicated users in LDAP and unsynced
rmartinc Dec 22, 2023
90a5146
Add federated identity ProviderEvent(s)
reda-alaoui Jan 10, 2024
a6260ca
Remove conditionals about Linux vs. Windows (#26031)
ahus1 Jan 10, 2024
b641671
Add tests to Cypress (#25958)
Aboullos Jan 10, 2024
ebad429
Sanitize logs in JBossLoggingEventListenerProvider
rmartinc Dec 20, 2023
cbf6486
Change RHDG to Infinispan
andymunro Jan 10, 2024
5aacb41
Reduce internal unsupported options in the Keycloak HA documentation
ahus1 Jan 10, 2024
3b31e1e
Replace `react-error-boundary` with own implementation (#26094)
jonkoops Jan 10, 2024
d401325
Add a toggle to use context attributes on the regex policy provider
remituveri Dec 19, 2023
467079b
Ensure protocol forced reauthentication is correctly mapped during SA…
Jan 8, 2024
55273c0
Complete the documentation for the use case of a resource from an ema…
KevinMartinsDevUbi Jan 10, 2024
b81bc91
Fix rest provider example for kc >= 23
cdevienne Jan 10, 2024
87193af
Fix mvn clean of js/ directory
hmlnarik Jan 8, 2024
71e7682
Bump wireit from 0.14.1 to 0.14.3 in /js
dependabot[bot] Jan 11, 2024
72c9af6
Bump eslint-plugin-prettier from 5.1.2 to 5.1.3 in /js
dependabot[bot] Jan 10, 2024
6596a12
Use proper attribute name in UI
hmlnarik Jan 8, 2024
0fad079
Avoid calling primitive wrapper constructors in server-spi-private (#…
thomasdarimont Jan 11, 2024
ddae9b9
Update placeholders for hostname and port (#24153)
lrkwz Jan 11, 2024
b5089b0
Remove unnecessary tooltip on device activity page (#26078)
ReneZeidler Jan 11, 2024
04e2d77
Bump vitest from 1.1.1 to 1.1.3 in /js (#25969)
dependabot[bot] Jan 11, 2024
9781067
Have a more descriptive error message when infinite recusion happens …
ahus1 Jan 11, 2024
93235e7
Fixed a11y violations (#26125)
agagancarczyk Jan 11, 2024
037818b
Enable user profile by default
mposolda Dec 19, 2023
fcc8b9d
Promote Account Console v3 to default and deprecate v2 (#25852)
jonkoops Jan 11, 2024
84c9350
Use email verification instead of executing action for `send-verify-e…
lexcao Sep 17, 2023
24f4dbe
Bump @types/node from 20.10.8 to 20.11.0 in /js
dependabot[bot] Jan 12, 2024
c15e88b
Bump react-router-dom from 6.21.1 to 6.21.2 in /js
dependabot[bot] Jan 12, 2024
f5cb32a
Remove `lodash` as a hard dependency from the Admin Client (#26136)
jonkoops Jan 12, 2024
9f477ea
refactored authentication to use the ui-shared (#25730)
edewit Jan 12, 2024
86e98c0
fixed critical a11y violation (#26157)
agagancarczyk Jan 12, 2024
148832d
Add X509 thumbprint to JWT when using private_key_jwt
MikeTangoEcho Aug 24, 2023
b5cfccf
fix: switching the raw distribution to a weak readiness check (#26097)
shawkins Jan 12, 2024
3325119
Do not use raw parameterized PropertyMapper (#26093)
mabartos Jan 12, 2024
55d2173
Add `@Deprecated` annotation to deprecated profiles (#26174)
jonkoops Jan 12, 2024
f121e6c
Changing to the Infinispan BOM to avoid mis-aligned Infinispan depend…
ahus1 Jan 15, 2024
0482a38
Integrate registration with terms and conditions required action
rmartinc Jan 10, 2024
05237c7
Bump vitest from 1.1.3 to 1.2.0 in /js
dependabot[bot] Jan 15, 2024
1d93543
Bump prettier from 3.1.1 to 3.2.2 in /js
dependabot[bot] Jan 15, 2024
1ccd3e4
Bump rollup
dependabot[bot] Jan 15, 2024
35b7e15
Bump rollup from 4.9.4 to 4.9.5 in /js
dependabot[bot] Jan 15, 2024
6781f5e
OIDC Protocol Mappers with same claim
Jan 2, 2024
21bf373
added attributes to KeycloakProfile definition (#25617)
edewit Jan 15, 2024
ab9aafa
Comprehensive log for the LoggingDistTest and Quarkus IT (#26199)
mabartos Jan 15, 2024
914a439
fix non-POSIX usage of expr in kc.sh (#26166)
elkman Jan 15, 2024
dd3c8c1
fix: provide better error messages for list options (#25918)
shawkins Jan 15, 2024
f780c27
Bump @typescript-eslint/eslint-plugin from 6.18.1 to 6.19.0 in /js
dependabot[bot] Jan 16, 2024
075c5e2
Bump @types/react from 18.2.47 to 18.2.48 in /js
dependabot[bot] Jan 16, 2024
58c9583
Bump vite-plugin-dts from 3.7.0 to 3.7.1 in /js
dependabot[bot] Jan 16, 2024
be77ce0
Bump @typescript-eslint/parser from 6.18.1 to 6.19.0 in /js
dependabot[bot] Jan 16, 2024
761744b
Deprecating the offline session preloading (#26160)
ahus1 Jan 16, 2024
e2a499d
Bump @types/node from 20.11.0 to 20.11.3 in /js
dependabot[bot] Jan 16, 2024
3b88823
fixes navigation when searching for groups (#26053)
edewit Jan 16, 2024
864c811
addendum to #23786 - readiness check should end after the first dump …
shawkins Jan 16, 2024
1b6ec65
Enhance error logs and error events during UserInfo endpoint and Toke…
Oct 27, 2023
5dd4ce8
Bump lightningcss from 1.22.1 to 1.23.0 in /js
dependabot[bot] Jan 16, 2024
48c4140
Localization: Realm Overrides Fixes (#26169)
agagancarczyk Jan 16, 2024
029fa71
added choose as an option to reset (#26065)
edewit Jan 16, 2024
c0b2ac3
fix: permissions tab should be only shown with the correct rights (#2…
pkeuter Jan 16, 2024
297eda4
Add login/ui (#26218)
BlackVoid Jan 16, 2024
4769af2
Fix flaky client scopes test for Firefox (#26195)
Aboullos Jan 16, 2024
0e5088d
Do not use general debug log level for tests (#26242)
mabartos Jan 16, 2024
6a4b4a5
fix indention
wistefan Jan 17, 2024
b900a41
wistefan Jan 17, 2024
c81dff9
add feature flag
wistefan Jan 17, 2024
4c7fd30
Merge branch 'main' into 25937-create-spi-and-provider-for-verifiable…
Jan 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions common/src/main/java/org/keycloak/common/Profile.java
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ public enum Feature {
MULTI_SITE("Multi-site support", Type.PREVIEW),

OFFLINE_SESSION_PRELOADING("Offline session preloading", Type.DEPRECATED),

OID4VC_VCI("Support for the OID4VCI protocol as part of OID4VC.", Type.PREVIEW)
;

private final Type type;
Expand Down
7 changes: 5 additions & 2 deletions js/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions services/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@
<name>Keycloak REST Services</name>
<description />

<properties>
<maven.compiler.release>17</maven.compiler.release>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.keycloak.protocol.oid4vc.issuance;

/**
* Exception to be thrown in case credentials issuance fails.
*
* @author <a href="https://github.com/wistefan">Stefan Wiedemann</a>
*/
public class VCIssuerException extends RuntimeException {

public VCIssuerException(String message) {
super(message);
}

public VCIssuerException(String message, Throwable cause) {
super(message, cause);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.keycloak.protocol.oid4vc.issuance.signing;


import org.keycloak.models.KeycloakSession;
import org.keycloak.protocol.oid4vc.model.VerifiableCredential;

import java.time.Clock;

/**
* {@link VerifiableCredentialsSigningService} implementing the JWT_VC format. It returns a string, containing the
* Signed JWT-Credential
* {@see https://identity.foundation/jwt-vc-presentation-profile/}
*
* @author <a href="https://github.com/wistefan">Stefan Wiedemann</a>
*/
public class JwtSigningService extends SigningService<String> {

public JwtSigningService(KeycloakSession keycloakSession, String keyId, Clock clock, String algorithmType) {
super(keycloakSession, keyId, clock, algorithmType);
}

@Override
public String signCredential(VerifiableCredential verifiableCredential) {

throw new UnsupportedOperationException("JWT-VC Credentials Signing is not yet supported.");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package org.keycloak.protocol.oid4vc.issuance.signing;

import org.keycloak.component.ComponentModel;
import org.keycloak.component.ComponentValidationException;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
import org.keycloak.protocol.oid4vc.model.Format;
import org.keycloak.provider.ConfigurationValidationHelper;
import org.keycloak.provider.ProviderConfigProperty;

import java.util.List;

/**
* @author <a href="https://github.com/wistefan">Stefan Wiedemann</a>
*/
public class JwtSigningServiceProviderFactory implements VCSigningServiceProviderFactory {

public static final Format SUPPORTED_FORMAT = Format.JWT_VC;
private static final String HELP_TEXT = "Issues JWT-VCs following the specification of https://identity.foundation/jwt-vc-presentation-profile/.";

@Override
public VerifiableCredentialsSigningService create(KeycloakSession session, ComponentModel model) {
var keyId = model.get(SigningProperties.KEY_ID.getKey());
var algorithmType = model.get(SigningProperties.ALGORITHM_TYPE.getKey());

return new JwtSigningService(session, keyId, CLOCK, algorithmType);
}

@Override
public String getHelpText() {
return HELP_TEXT;
}

@Override
public List<ProviderConfigProperty> getConfigProperties() {
return VCSigningServiceProviderFactory.configurationBuilder()
.property(SigningProperties.ALGORITHM_TYPE.asConfigProperty())
.build();
}

@Override
public String getId() {
return SUPPORTED_FORMAT.toString();
}

@Override
public void validateSpecificConfiguration(KeycloakSession session, RealmModel realm, ComponentModel model) throws ComponentValidationException {
ConfigurationValidationHelper.check(model)
.checkRequired(SigningProperties.ALGORITHM_TYPE.asConfigProperty());
}

@Override
public Format supportedFormat() {
return SUPPORTED_FORMAT;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.keycloak.protocol.oid4vc.issuance.signing;


import org.keycloak.models.KeycloakSession;
import org.keycloak.protocol.oid4vc.model.VerifiableCredential;

import java.time.Clock;

/**
* {@link VerifiableCredentialsSigningService} implementing the LDP_VC format. It returns a Verifiable Credential,
* containing the created LDProof.
* <p>
* {@see https://www.w3.org/TR/vc-data-model/}
*
* @author <a href="https://github.com/wistefan">Stefan Wiedemann</a>
*/
public class LDSigningService extends SigningService<VerifiableCredential> {


public LDSigningService(KeycloakSession keycloakSession, String keyId, Clock clock, String ldpType) {
super(keycloakSession, keyId, clock, ldpType);

}

@Override
public VerifiableCredential signCredential(VerifiableCredential verifiableCredential) {

throw new UnsupportedOperationException("LD-Credentials Signing is not yet supported.");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package org.keycloak.protocol.oid4vc.issuance.signing;

import org.keycloak.Config;
import org.keycloak.component.ComponentModel;
import org.keycloak.component.ComponentValidationException;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
import org.keycloak.protocol.oid4vc.model.Format;
import org.keycloak.provider.ConfigurationValidationHelper;
import org.keycloak.provider.ProviderConfigProperty;

import java.util.List;

/**
* @author <a href="https://github.com/wistefan">Stefan Wiedemann</a>
*/
public class LDSigningServiceProviderFactory implements VCSigningServiceProviderFactory {
public static final Format SUPPORTED_FORMAT = Format.LDP_VC;
private static final String HELP_TEXT = "Issues Verifiable Credentials in the W3C Data Model, using Linked-Data Proofs. See https://www.w3.org/TR/vc-data-model/";

@Override
public VerifiableCredentialsSigningService create(KeycloakSession session, ComponentModel model) {
var keyId = model.get(SigningProperties.KEY_ID.getKey());
var proofType = model.get(SigningProperties.PROOF_TYPE.getKey());
return new LDSigningService(session, keyId, CLOCK, proofType);
}

@Override
public String getHelpText() {
return HELP_TEXT;
}

@Override
public List<ProviderConfigProperty> getConfigProperties() {
return VCSigningServiceProviderFactory.configurationBuilder()
.property(SigningProperties.PROOF_TYPE.asConfigProperty())
.build();
}

@Override
public String getId() {
return SUPPORTED_FORMAT.toString();
}

@Override
public void validateSpecificConfiguration(KeycloakSession session, RealmModel realm, ComponentModel model) throws ComponentValidationException {
ConfigurationValidationHelper.check(model)
.checkRequired(SigningProperties.PROOF_TYPE.asConfigProperty());
}

@Override
public Format supportedFormat() {
return SUPPORTED_FORMAT;
}

}

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.keycloak.protocol.oid4vc.issuance.signing;

import org.keycloak.models.KeycloakSession;
import org.keycloak.protocol.oid4vc.model.VerifiableCredential;

import java.time.Clock;

/**
* {@link VerifiableCredentialsSigningService} implementing the SD_JWT_VC format. It returns a String, containing
* the signed SD-JWT
* <p>
* {@see https://drafts.oauth.net/oauth-sd-jwt-vc/draft-ietf-oauth-sd-jwt-vc.html}
* {@see https://www.ietf.org/archive/id/draft-fett-oauth-selective-disclosure-jwt-02.html}
*
* @author <a href="https://github.com/wistefan">Stefan Wiedemann</a>
*/
public class SdJwtSigningService extends SigningService<String> {

public SdJwtSigningService(KeycloakSession keycloakSession, String keyId, Clock clock, String algorithmType) {
super(keycloakSession, keyId, clock, algorithmType);
}

@Override
public String signCredential(VerifiableCredential verifiableCredential) {
throw new UnsupportedOperationException("SD-JWT Signing is not yet supported.");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package org.keycloak.protocol.oid4vc.issuance.signing;

import org.keycloak.component.ComponentModel;
import org.keycloak.component.ComponentValidationException;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
import org.keycloak.protocol.oid4vc.model.Format;
import org.keycloak.provider.ConfigurationValidationHelper;
import org.keycloak.provider.ProviderConfigProperty;

import java.util.List;

/**
* @author <a href="https://github.com/wistefan">Stefan Wiedemann</a>
*/
public class SdJwtSigningServiceProviderFactory implements VCSigningServiceProviderFactory {

public static final Format SUPPORTED_FORMAT = Format.SD_JWT_VC;
private static final String HELP_TEXT = "Issues SD-JWT-VCs following the specification of https://drafts.oauth.net/oauth-sd-jwt-vc/draft-ietf-oauth-sd-jwt-vc.html.";

@Override
public VerifiableCredentialsSigningService create(KeycloakSession session, ComponentModel model) {
var keyId = model.get(SigningProperties.KEY_ID.getKey());
var algorithmType = model.get(SigningProperties.ALGORITHM_TYPE.getKey());
return new SdJwtSigningService(session, keyId, CLOCK, algorithmType);
}

@Override
public String getHelpText() {
return HELP_TEXT;
}

@Override
public List<ProviderConfigProperty> getConfigProperties() {
return VCSigningServiceProviderFactory.configurationBuilder()
.property(SigningProperties.ALGORITHM_TYPE.asConfigProperty())
.property(SigningProperties.DECOYS.asConfigProperty())
.build();
}

@Override
public String getId() {
return SUPPORTED_FORMAT.toString();
}

@Override
public void validateSpecificConfiguration(KeycloakSession session, RealmModel realm, ComponentModel model) throws ComponentValidationException {
ConfigurationValidationHelper.check(model)
.checkRequired(SigningProperties.ALGORITHM_TYPE.asConfigProperty())
.checkInt(SigningProperties.DECOYS.asConfigProperty(), true);
}

@Override
public Format supportedFormat() {
return SUPPORTED_FORMAT;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.keycloak.protocol.oid4vc.issuance.signing;

import org.keycloak.crypto.Algorithm;
import org.keycloak.provider.ProviderConfigProperty;

/**
* Properties for configuring the {@link VerifiableCredentialsSigningService}'s
*
* @author <a href="https://github.com/wistefan">Stefan Wiedemann</a>
*/
public enum SigningProperties {

ISSUER_DID("issuerDid", "Did of the issuer.", "Provide the DID of the issuer. Needs to match the provided key material.", ProviderConfigProperty.STRING_TYPE, null),
KEY_ID("keyId", "Id of the signing key.", "The id of the key to be used for signing credentials. The key needs to be provided as a realm key.", ProviderConfigProperty.STRING_TYPE, null),
PROOF_TYPE("proofType", "Type of the LD-Proof.", "The type of LD-Proofs to be created. Needs to fit the provided signing key.", ProviderConfigProperty.STRING_TYPE, null),
ALGORITHM_TYPE("algorithmType", "Type of the signing algorithm.", "The type of the algorithm to be used for signing. Needs to fit the provided signing key.", ProviderConfigProperty.STRING_TYPE, Algorithm.RS256),
DECOYS("decoys", "Number of decoys to be added.", "The number of decoys to be added to the SD-JWT.", ProviderConfigProperty.STRING_TYPE, 0);

private final String key;
private final String label;
private final String helpText;
private final String type;
private final Object defaultValue;

SigningProperties(String key, String label, String helpText, String type, Object defaultValue) {
this.key = key;
this.label = label;
this.helpText = helpText;
this.type = type;
this.defaultValue = defaultValue;
}


public ProviderConfigProperty asConfigProperty() {
return new ProviderConfigProperty(key, label, helpText, type, defaultValue);
}

public String getKey() {
return key;
}
}
Loading