Search Results encode_url




Overview

APPS.ICX_CALL is a shared Oracle E-Business Suite utility package that centralizes cryptographic hashing, reversible encryption/decryption, and URL encoding/decoding services used throughout the Oracle iProcurement, iSupplier, and Internet Computing Architecture (ICX) stack. It is declared with AUTHID CURRENT_USER, meaning its routines execute with the privileges of the calling schema rather than the definer, which is consistent with its role as a low-level, broadly reusable service layer. The package is referenced by 61 other packages, indicating that it functions as a foundational dependency for session token handling, obscured identifier passing, and secure parameter transport in web-facing EBS pages. The $Header line (ICXSECAS.pls 120.0.12020000.2 2013/03/21) confirms it is a long-lived security-related source file carried forward across the 12.1.1 and 12.2.2 code lines.

Key Procedures and Functions

The package exposes eleven documented routines, grouped by purpose:

  • ENCRYPT / DECRYPT — Baseline symmetric encryption and its inverse, converting a clear string to ciphertext and back.
  • ENCRYPT2 / DECRYPT2 — Session-aware variants that bind the operation to a session identifier; DECRYPT2 accepts a numeric text identifier, implying retrieval from the ICX_TEXT store.
  • ENCRYPT3 / DECRYPT3 — Digit-oriented pair used to obscure numeric values (ENCRYPT3 takes a number and a digit count; DECRYPT3 returns a number from a hexadecimal representation).
  • ENCRYPT4 / DECRYPT4 — Alternative implementation accepting a string plus an optional session identifier.
  • CRCHASH — Produces a numeric cyclic-redundancy hash from a key string and data string, used for integrity checks and non-reversible token generation.
  • ENCODE_URL / DECODE_URL — Added under Bug 5350739 to supply URL encoding and decoding APIs from AOL to the IPG team. ENCODE_URL converts a string to a target character set (defaulting to the ICX_CLIENT_IANA_ENCODING profile value) and then applies form-urlencoded escaping per RFC-1738. DECODE_URL reverses the transformation. The documentation explicitly warns that ENCODE_URL must be applied to individual parameter names and values, never to an entire URL such as http://aaa.yyy.com/abc.html?param=xxx; the complete URL is assembled after the parts are encoded.

Tables Accessed

The package is documented against the ICX synonyms ICX_SESSIONS, ICX_TEXT, ICX_TEXT_S, and ICX_TRANSACTIONS, together with the DBMS_OBFUSCATION_TOOLKIT, OWA_COOKIE, UTL_RAW, and UTL_URL built-ins. ICX_SESSIONS supplies the session context used by the session-bound encrypt/decrypt variants. ICX_TEXT and ICX_TEXT_S store and retrieve the encrypted text payloads referenced by DECRYPT2's numeric text identifier. ICX_TRANSACTIONS supports transactional linkage of tokens and session state. DBMS_OBFUSCATION_TOOLKIT underpins the cryptographic primitives, while UTL_RAW handles raw byte conversion and UTL_URL supplies character-set and URL-encoding mechanics. OWA_COOKIE supports session cookie processing in the web tier.

Usage Notes

ICX_CALL is invoked indirectly rather than by end users. Typical call paths include:

  • EBS web pages and JSP/HTML flows that must embed session-safe, non-guessable parameters in hyperlinks and form actions.
  • Packages that persist encrypted state in ICX_TEXT or ICX_TEXT_S and later rehydrate it via DECRYPT2.
  • Custom code requiring RFC-1738 compliant encoding of query-string components; developers should encode parameter names and values separately and then compose the URL, and should pass p_charset only when a character set other than ICX_CLIENT_IANA_ENCODING is required.

Because the package is AUTHID CURRENT_USER and is a dependency of 61 other packages, changes to its signatures must be assessed for wide downstream impact. Existing KEY-based cryptic tokens should continue to be generated with the session-bound variants to preserve compatibility with stored ICX_TEXT data.