IO Wallet SDK
    Preparing search index...
    • Creates a signed OpenID Federation entity configuration JWT.

      The signing callback is called with the JWK selected by header.kid from claims.jwks.keys and the compact JWT signing input.

      Parameters

      • options: CreateEntityConfigurationOptions

        Entity configuration creation options.

        • claims: {
              authority_hints?: string[];
              constraints?: {
                  allowed_entity_types?: string[];
                  max_path_length?: number;
                  naming_constraints?: { excluded?: string[]; permitted?: string[] };
              };
              crit?: string[];
              exp: number;
              iat: number;
              iss: string;
              jwks: {
                  keys: {
                      alg?: string;
                      key_ops?: string[];
                      kid: string;
                      kty: string;
                      use?: string;
                      x5c?: string[];
                      x5t?: string;
                      "x5t#S256"?: string;
                      x5u?: string;
                      [key: string]: unknown;
                  }[];
              };
              metadata?: | {
                  federation_entity?: {
                      contacts?: string[];
                      federation_fetch_endpoint?: string;
                      federation_historical_keys_endpoint?: string;
                      federation_list_endpoint?: string;
                      federation_resolve_endpoint?: string;
                      federation_trust_mark_endpoint?: string;
                      federation_trust_mark_list_endpoint?: string;
                      federation_trust_mark_status_endpoint?: string;
                      homepage_uri?: string;
                      jwks?: {
                          keys: {
                              alg?: string;
                              key_ops?: (...)[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: (...)[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      jwks_uri?: string;
                      logo_uri?: string;
                      organization_name?: string;
                      policy_uri?: string;
                      signed_jwks_uri?: string;
                      tos_uri?: string;
                      [key: string]: unknown;
                  };
                  oauth_authorization_server?: {
                      acr_values_supported: string[];
                      authorization_endpoint: string;
                      authorization_signing_alg_values_supported: string[];
                      client_registration_types_supported: ("automatic" | "explicit")[];
                      code_challenge_methods_supported: string[];
                      grant_types_supported: string[];
                      issuer: string;
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      pushed_authorization_request_endpoint: string;
                      request_object_signing_alg_values_supported: string[];
                      require_signed_request_object?: boolean;
                      response_modes_supported: ("query" | "form_post.jwt")[];
                      response_types_supported: string[];
                      scopes_supported: string[];
                      token_endpoint: string;
                      token_endpoint_auth_methods_supported: string[];
                      token_endpoint_auth_signing_alg_values_supported: string[];
                      [key: string]: unknown;
                  };
                  openid_credential_issuer?: {
                      authorization_servers?: [string, ...string[]];
                      batch_credential_issuance: { batch_size: number };
                      credential_configurations_supported: Record<
                          string,
                          (
                              | {
                                  credential_signing_alg_values_supported: string[];
                                  format: "dc+sd-jwt";
                                  vct: string;
                              }
                              | {
                                  credential_signing_alg_values_supported: number[];
                                  doctype: string;
                                  format: "mso_mdoc";
                              }
                          ) & {
                              claims: { display: (...)[]; path: (...)[] }[];
                              cryptographic_binding_methods_supported: string[];
                              display: { locale: string; name: string }[];
                              proof_types_supported: {
                                  jwt: { proof_signing_alg_values_supported: (...)[] };
                              };
                              scope: string;
                          },
                      >;
                      credential_endpoint: string;
                      credential_hash_alg_supported: string;
                      credential_issuer: string;
                      deferred_credential_endpoint: string;
                      display: { locale: string; name: string }[];
                      evidence_supported: string[];
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      nonce_endpoint: string;
                      notification_endpoint: string;
                      revocation_endpoint: string;
                      status_assertion_endpoint: string;
                      status_attestation_endpoint: string;
                      trust_frameworks_supported: ("it_cie" | "it_wallet" | "eudi_wallet")[];
                      [key: string]: unknown;
                  };
                  openid_credential_verifier?: {
                      application_type: "web";
                      authorization_encrypted_response_alg: string;
                      authorization_encrypted_response_enc: string;
                      authorization_signed_response_alg: string;
                      client_id: string;
                      client_name: string;
                      erasure_endpoint?: string;
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      redirect_uris?: string[];
                      request_uris: string[];
                      response_uris: string[];
                      vp_formats: Record<
                          string,
                          { alg?: string[]; "sd-jwt_alg_values"?: string[] },
                      >;
                      [key: string]: unknown;
                  };
                  wallet_provider?: {
                      jwks?: {
                          keys: {
                              alg?: string;
                              key_ops?: (...)[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: (...)[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      jwks_uri?: string;
                      signed_jwks_uri?: string;
                      [key: string]: unknown;
                  };
              }
              | {
                  federation_entity?: {
                      contacts?: string[];
                      federation_fetch_endpoint?: string;
                      federation_historical_keys_endpoint?: string;
                      federation_list_endpoint?: string;
                      federation_resolve_endpoint?: string;
                      federation_trust_mark_endpoint?: string;
                      federation_trust_mark_list_endpoint?: string;
                      federation_trust_mark_status_endpoint?: string;
                      homepage_uri?: string;
                      jwks?: {
                          keys: {
                              alg?: string;
                              key_ops?: (...)[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: (...)[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      jwks_uri?: string;
                      logo_uri?: string;
                      organization_name?: string;
                      policy_uri?: string;
                      signed_jwks_uri?: string;
                      tos_uri?: string;
                      [key: string]: unknown;
                  };
                  oauth_authorization_server?: {
                      acr_values_supported: string[];
                      authorization_endpoint: string;
                      authorization_signing_alg_values_supported: string[];
                      client_attestation_pop_signing_alg_values_supported: string[];
                      client_attestation_signing_alg_values_supported: string[];
                      client_registration_types_supported: ("automatic" | "explicit")[];
                      code_challenge_methods_supported: string[];
                      dpop_signing_alg_values_supported: string[];
                      grant_types_supported: string[];
                      issuer: string;
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      pushed_authorization_request_endpoint: string;
                      request_object_signing_alg_values_supported: string[];
                      require_signed_request_object: true;
                      response_types_supported: string[];
                      scopes_supported: string[];
                      token_endpoint: string;
                      token_endpoint_auth_methods_supported: string[];
                      token_endpoint_auth_signing_alg_values_supported: string[];
                      [key: string]: unknown;
                  };
                  openid_credential_issuer?: {
                      authorization_servers?: [string, ...string[]];
                      batch_credential_issuance?: { batch_size: number };
                      credential_configurations_supported: Record<
                          string,
                          (
                              | {
                                  credential_signing_alg_values_supported: string[];
                                  format: "dc+sd-jwt";
                                  vct: string;
                              }
                              | {
                                  credential_signing_alg_values_supported: number[];
                                  doctype: string;
                                  format: "mso_mdoc";
                              }
                          ) & {
                              authentic_sources: { dataset_id: string; entity_id: string };
                              credential_metadata: { claims?: (...)[]; display?: (...)[] };
                              cryptographic_binding_methods_supported: string[];
                              proof_types_supported: {
                                  jwt: {
                                      key_attestations_required?: (...) | (...);
                                      proof_signing_alg_values_supported: (...)[];
                                  };
                              };
                              schema_id: string;
                              scope: string;
                          },
                      >;
                      credential_endpoint: string;
                      credential_issuer: string;
                      deferred_credential_endpoint?: string;
                      display?: {
                          background_color?: string;
                          background_image?: {
                              alt_text?: (...)
                              | (...);
                              uri: string;
                              "uri#integrity"?: (...) | (...);
                          };
                          description?: string;
                          locale: string;
                          logo?: {
                              alt_text?: (...)
                              | (...);
                              uri: string;
                              "uri#integrity"?: (...) | (...);
                          };
                          name: string;
                          watermark_image?: {
                              alt_text?: (...)
                              | (...);
                              uri: string;
                              "uri#integrity"?: (...) | (...);
                          };
                      }[];
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      nonce_endpoint?: string;
                      notification_endpoint?: string;
                      status_list_aggregation_endpoint?: string;
                      trust_frameworks_supported: (
                          | "it_cie"
                          | "it_wallet"
                          | "eudi_wallet"
                          | "it_l2+document_proof"
                          | "it_spid"
                      )[];
                      [key: string]: unknown;
                  };
                  openid_credential_verifier?: {
                      application_type: "web";
                      client_id: string;
                      client_name: string;
                      encrypted_response_enc_values_supported: string[];
                      erasure_endpoint?: string;
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      logo_uri: string;
                      redirect_uris?: string[];
                      request_uris: string[];
                      response_uris: string[];
                      vp_formats_supported: Record<
                          string,
                          {
                              alg?: string[];
                              deviceauth_alg_values?: number[];
                              issuerauth_alg_values?: number[];
                              "kb-jwt_alg_values"?: string[];
                              "sd-jwt_alg_values"?: string[];
                          },
                      >;
                      [key: string]: unknown;
                  };
                  wallet_solution?: {
                      jwks?: {
                          keys: {
                              alg?: string;
                              key_ops?: (...)[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: (...)[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      jwks_uri?: string;
                      logo_uri: string;
                      signed_jwks_uri?: string;
                      wallet_metadata: {
                          authorization_endpoint: string;
                          client_id_prefixes_supported: ("openid_federation" | "x509_hash")[];
                          credential_offer_endpoint: string;
                          request_object_signing_alg_values_supported: string[];
                          response_modes_supported: "query"[];
                          response_types_supported: string[];
                          vp_formats_supported: Record<string, { [key: string]: unknown }>;
                          wallet_name: string;
                          [key: string]: unknown;
                      };
                      [key: string]: unknown;
                  };
              }
              | {
                  federation_entity?: {
                      contacts?: string[];
                      federation_fetch_endpoint?: string;
                      federation_historical_keys_endpoint?: string;
                      federation_list_endpoint?: string;
                      federation_resolve_endpoint?: string;
                      federation_trust_mark_endpoint?: string;
                      federation_trust_mark_list_endpoint?: string;
                      federation_trust_mark_status_endpoint?: string;
                      homepage_uri?: string;
                      jwks?: {
                          keys: {
                              alg?: string;
                              key_ops?: (...)[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: (...)[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      jwks_uri?: string;
                      logo_uri?: string;
                      organization_name?: string;
                      policy_uri?: string;
                      signed_jwks_uri?: string;
                      tos_uri?: string;
                      [key: string]: unknown;
                  };
                  oauth_authorization_server?: {
                      acr_values_supported: string[];
                      authorization_endpoint: string;
                      authorization_signing_alg_values_supported: string[];
                      client_attestation_pop_signing_alg_values_supported: string[];
                      client_attestation_signing_alg_values_supported: string[];
                      client_registration_types_supported: ("automatic" | "explicit")[];
                      code_challenge_methods_supported: string[];
                      dpop_signing_alg_values_supported: string[];
                      grant_types_supported: string[];
                      issuer: string;
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      pushed_authorization_request_endpoint: string;
                      request_object_signing_alg_values_supported: string[];
                      require_signed_request_object: true;
                      response_types_supported: string[];
                      scopes_supported: string[];
                      token_endpoint: string;
                      token_endpoint_auth_methods_supported: string[];
                      token_endpoint_auth_signing_alg_values_supported: string[];
                      [key: string]: unknown;
                  };
                  openid_credential_issuer?: {
                      authorization_servers?: [string, ...string[]];
                      batch_credential_issuance?: { batch_size: number };
                      credential_configurations_supported: Record<
                          string,
                          (
                              | {
                                  credential_signing_alg_values_supported: string[];
                                  format: "dc+sd-jwt";
                                  vct: string;
                              }
                              | {
                                  credential_signing_alg_values_supported: number[];
                                  doctype: string;
                                  format: "mso_mdoc";
                              }
                          ) & {
                              authentic_sources: { dataset_id: string; entity_id: string };
                              credential_metadata: { claims?: (...)[]; display?: (...)[] };
                              cryptographic_binding_methods_supported: string[];
                              proof_types_supported: {
                                  jwt: {
                                      key_attestations_required?: (...) | (...);
                                      proof_signing_alg_values_supported: (...)[];
                                  };
                              };
                              schema_id: string;
                              scope: string;
                          },
                      >;
                      credential_endpoint: string;
                      credential_issuer: string;
                      deferred_credential_endpoint?: string;
                      display?: {
                          background_color?: string;
                          background_image?: {
                              alt_text?: (...)
                              | (...);
                              uri: string;
                              "uri#integrity"?: (...) | (...);
                          };
                          description?: string;
                          locale: string;
                          logo?: {
                              alt_text?: (...)
                              | (...);
                              uri: string;
                              "uri#integrity"?: (...) | (...);
                          };
                          name: string;
                          watermark_image?: {
                              alt_text?: (...)
                              | (...);
                              uri: string;
                              "uri#integrity"?: (...) | (...);
                          };
                      }[];
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      nonce_endpoint?: string;
                      notification_endpoint?: string;
                      status_list_aggregation_endpoint?: string;
                      trust_frameworks_supported: (
                          | "it_cie"
                          | "it_wallet"
                          | "eudi_wallet"
                          | "it_l2+document_proof"
                          | "it_spid"
                      )[];
                      [key: string]: unknown;
                  };
                  openid_credential_verifier?: {
                      application_type: "web";
                      client_id: string;
                      client_name: string;
                      encrypted_response_enc_values_supported: string[];
                      erasure_endpoint?: string;
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      logo_uri: string;
                      redirect_uris?: string[];
                      request_uris: string[];
                      response_uris: string[];
                      vp_formats_supported: Record<
                          string,
                          {
                              alg?: string[];
                              deviceauth_alg_values?: number[];
                              issuerauth_alg_values?: number[];
                              "kb-jwt_alg_values"?: string[];
                              "sd-jwt_alg_values"?: string[];
                          },
                      >;
                      [key: string]: unknown;
                  };
                  wallet_solution?: {
                      jwks?: {
                          keys: {
                              alg?: string;
                              key_ops?: (...)[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: (...)[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      jwks_uri?: string;
                      logo_uri: string;
                      signed_jwks_uri?: string;
                      wallet_metadata: {
                          authorization_endpoint: string;
                          client_id_prefixes_supported: ("openid_federation" | "x509_hash")[];
                          credential_offer_endpoint: string;
                          request_object_signing_alg_values_supported: string[];
                          response_types_supported?: string[];
                          vp_formats_supported: Record<string, { [key: string]: unknown }>;
                          wallet_name: string;
                          [key: string]: unknown;
                      };
                      [key: string]: unknown;
                  };
              };
              metadata_policy?: Record<
                  string,
                  | Record<
                      string,
                      {
                          add?: unknown;
                          default?: unknown;
                          essential?: unknown;
                          one_of?: unknown;
                          subset_of?: unknown;
                          superset_of?: unknown;
                          value?: unknown;
                      } & Record<string, any>,
                  >
                  | undefined,
              >;
              metadata_policy_crit?: string[];
              source_endpoint?: string;
              sub: string;
              trust_mark_issuers?: Record<string, string[]>;
              trust_mark_owners?: Record<
                  string,
                  {
                      jwks: {
                          keys: {
                              alg?: string;
                              key_ops?: string[];
                              kid: string;
                              kty: string;
                              use?: string;
                              x5c?: string[];
                              x5t?: string;
                              "x5t#S256"?: string;
                              x5u?: string;
                              [key: string]: unknown;
                          }[];
                      };
                      sub: string;
                  },
              >;
              trust_marks?: { trust_mark: string; trust_mark_type: string }[];
          }
        • signJwtCallback: SignCallback

      Returns Promise<string>

      Signed entity configuration JWT.

      If header or payload validation fails.

      If the matching signing JWK cannot be selected or the JWT input cannot be created.