IO Wallet SDK
    Preparing search index...

    Function verifyJarmAuthorizationResponse

    • Verifies a JARM authorization response in signed, encrypted, or signed+encrypted mode.

      The function detects the response mode, performs decryption when needed, verifies JWS signatures for signed payloads, and returns the parsed JARM body with metadata.

      Returns Promise<
          {
              decryptionJwk: | {
                  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;
              }
              | undefined;
              issuer: string
              | undefined;
              jarmAuthorizationResponse:
                  | {
                      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: ...]: ... }[];
                              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;
                      state?: string;
                      status?: Record<string, any>;
                      trust_chain?: [string, ...string[]];
                      [key: string]: unknown;
                  }
                  | {
                      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: ...]: ... }[];
                              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;
                      state?: string;
                      status?: Record<string, any>;
                      trust_chain?: [string, ...string[]];
                      [key: string]: unknown;
                  };
              type: JarmMode;
          },
      >

      Decryption and verification artifacts with parsed JARM payload.

      If the response mode is invalid, decryption fails, or signature verification fails.