Search Results compute_new_hash
Overview
IBY_SECURITY_PKG is the central cryptographic and data-protection utility package within the Oracle Payments (IBY) module of Oracle E-Business Suite. It is responsible for safeguarding sensitive payment instruments and configuration data, most notably credit card numbers, bank account details, and system security keys used throughout the payment lifecycle. The package implements the encryption, key management, hashing, masking, and clear-text encoding services that other IBY components rely upon to meet PCI-related data protection requirements and internal security standards.
The package source header (ibysecs.pls) declares a comprehensive set of constants that define its operating modes. It supports three encryption modes — SCHEDULED, IMMEDIATE, and NONE — and four masking options: DISPLAY_ALL, DISPLAY_NONE, DISPLAY_LAST, and DISPLAY_FIRST. It also defines clear-text encoding schemes (NUMERIC and AL32UTF8), a triple DES maximum key length of 24 bytes, a shared FND wallet location property (FND_DB_WALLET_DIR) used for HTTP callouts from the database, and the masking character 'X'. The G_ENCRYPTED_EXPDATE_FORMAT and G_MASKED_EXPDATE_FORMAT constants govern how card expiry dates are stored and displayed.
Key Procedures and Functions
The package exposes 49 documented procedures and functions, organized around four functional themes:
- Key management: VALIDATE_SYS_KEY, CREATE_SYS_KEY, CHANGE_SYS_KEY, GET_SYS_SUBKEY, GET_SYS_SUBKEY_HEX, and GET_SITE_SALT handle generation, validation, rotation, and retrieval of the system security key and its derived subkeys used across payment processing.
- Encryption and decryption: PREPARE_CLEARTXT, UNPACK_CLEARTXT, and CIPHER_DATA perform the core encrypt/decrypt operations, including the clear-text pre-processing required before encryption.
- Hashing and integrity: GET_HASH, COMPUTE_NEW_HASH, GET_RAW_HASH, GET_KEY_HASH, and GET_SALT_VERSION provide hash generation and salt-version tracking, supporting integrity checks and key validation.
- Masking and encoding: MASK_DATA, MASK_DATE_FIELD, GET_UNMASKED_DATA, ENCODE_NUMBER, DECODE_NUMBER, and ENCODE_CVV handle presentation-layer protection (returning masked values such as the familiar X-prefixed card numbers) and reversible clear-text encoding of numeric values and CVV data.
The ENCODE_NUMBER and DECODE_NUMBER procedures are the specific routines associated with the user's "encode_number" search, providing a reversible numeric encoding scheme (G_ENCODING_NUMERIC) used to obfuscate numeric values where masking alone is insufficient but full encryption is not required.
Tables Accessed
IBY_SECURITY_PKG reads and writes several IBY repository tables through APPS synonyms, including IBY_CREDITCARD and IBY_CREDITCARD_ISSUERS_B (card and issuer data subject to encryption), IBY_SYS_SECURITY_OPTIONS, IBY_SYS_SECURITY_SUBKEYS, IBY_PAYEE_SUBKEYS, and IBY_SECURITY_SEGMENTS (key and subkey storage), IBY_TRANSMIT_VALUES, IBY_TRANSMIT_CONFIGS_B, and IBY_TRANSMIT_PARAMETERS_B (transmission configuration), IBY_BEP_ACCT_OPT_VALS and IBY_BEP_ACCT_OPT_NAME_B (payment account option values), IBY_CC_ISSUER_RANGES (issuer range data), and IBY_TRXN_SUMMARIES_ALL (transaction summaries). Because the package is referenced by 32 other packages, these tables represent the shared security data store consulted throughout payment processing.
Usage Notes
IBY_SECURITY_PKG is not typically invoked directly by end users. It is called programmatically by Oracle Payments forms, concurrent programs, and by other IBY packages that need to encrypt, decrypt, mask, or validate sensitive payment data. Because the package manages the system security key and references the FND wallet, its procedures should only be called in contexts where the wallet is properly configured. Custom extensions should treat these routines as a stable security API rather than reimplementing encoding or masking logic. The header explicitly warns that values such as G_ENCRYPTED_EXPDATE_FORMAT must not be modified, since changing them can corrupt existing encrypted data.