IO Wallet SDK
    Preparing search index...

    Function verifyClientAttestationPopJwt

    • Verifies a client attestation proof-of-possession JWT.

      Parameters

      • options: VerifyClientAttestationPopJwtOptions

        Verification options.

        • authorizationServer: string

          The issuer identifier of the authorization server handling the client attestation

        • callbacks: Pick<CallbackContext, "verifyJwt">

          Callbacks used for verifying client attestation pop jwt.

        • clientAttestationPopJwt: string

          The compact client attestation pop jwt.

        • clientAttestationPublicJwk: {
              alg?: string;
              crv?: string;
              d?: string;
              dp?: string;
              dq?: string;
              e?: string;
              ext?: boolean;
              k?: string;
              key_ops?: string[];
              kid?: string;
              kty: string;
              n?: string;
              oth?: { d?: string; r?: string; t?: string; [key: string]: unknown }[];
              p?: string;
              q?: string;
              qi?: string;
              use?: string;
              x?: string;
              x5c?: string[];
              x5t?: string;
              "x5t#S256"?: string;
              x5u?: string;
              y?: string;
              [key: string]: unknown;
          }

          The public JWK to verify the client attestation pop jwt.

        • OptionalexpectedNonce?: string

          Expected nonce in the payload. If not provided the nonce won't be validated.

        • Optionalnow?: Date

          The current time to use when verifying the JWTs. If not provided current time will be used.

          new Date()
          

      Returns Promise<
          {
              header: {
                  alg: string;
                  jwk?: {
                      alg?: string;
                      crv?: string;
                      d?: string;
                      dp?: string;
                      dq?: string;
                      e?: string;
                      ext?: boolean;
                      k?: string;
                      key_ops?: string[];
                      kid?: string;
                      kty: string;
                      n?: string;
                      oth?: { d?: string; r?: string; t?: string; [key: string]: unknown }[];
                      p?: string;
                      q?: string;
                      qi?: string;
                      use?: string;
                      x?: string;
                      x5c?: string[];
                      x5t?: string;
                      "x5t#S256"?: string;
                      x5u?: string;
                      y?: string;
                      [key: string]: unknown;
                  };
                  kid?: string;
                  trust_chain?: [string, ...string[]];
                  typ: "oauth-client-attestation-pop+jwt";
                  x5c?: string[];
                  [key: string]: unknown;
              };
              payload: {
                  aud: string;
                  cnf?: {
                      jkt?: string;
                      jwk?: {
                          alg?: string;
                          crv?: string;
                          d?: string;
                          dp?: string;
                          dq?: string;
                          e?: string;
                          ext?: boolean;
                          k?: string;
                          key_ops?: string[];
                          kid?: string;
                          kty: string;
                          n?: string;
                          oth?: {
                              d?: (...)
                              | (...);
                              r?: (...) | (...);
                              t?: (...) | (...);
                              [key: string]: unknown;
                          }[];
                          p?: string;
                          q?: string;
                          qi?: string;
                          use?: string;
                          x?: string;
                          x5c?: string[];
                          x5t?: string;
                          "x5t#S256"?: string;
                          x5u?: string;
                          y?: string;
                          [key: string]: unknown;
                      };
                      [key: string]: unknown;
                  };
                  exp?: number;
                  iat: number;
                  iss: string;
                  jti: string;
                  nbf?: number;
                  nonce?: string;
                  status?: Record<string, any>;
                  trust_chain?: [string, ...string[]];
                  [key: string]: unknown;
              };
              signer: JwtSignerWithJwk;
          },
      >

      Decoded JWT header, payload, and resolved signer.

      If decoding, algorithm validation, signature verification, or claim validation fails.