Search Results uncipher_ccnumber




Overview

IBY_CREDITCARD_PKG is the core PL/SQL package in Oracle Payments (IBY) responsible for the secure handling, encryption, masking, and lifecycle management of credit card instrument data within Oracle E-Business Suite 12.1.1 and 12.2.2. The package body encapsulates all logic required to persist credit card numbers in the IBY_CREDITCARD tables in a secure, reversible, and PCI-conscious manner, while also providing the masking utilities that render card numbers safe for display on user interfaces and reports. Its scope covers encryption-mode detection, ciphering and deciphering of primary account numbers (PANs), compression of card numbers for storage, generation and validation of card instruments, and maintenance of related attributes such as cardholder name and expiry date.

Key Procedures and Functions

The documented API surface of 28 routines groups naturally into several functional areas. Encryption and ciphering routines include UNCIPHER_CCNUMBER, which decrypts a stored card number, and its companion wrapper UNCIPHER_CCNUMBER_UI_WRP, which adapts the decipher logic for UI-layer callers. ENCRYPT_CARD_INFO, ENCRYPT_INSTRUMENTS, and DECRYPT_INSTRUMENTS perform bulk cipher and decipher operations across instrument records, while REMASK_INSTRUMENTS re-applies masking after data has been processed. COMPRESS_CC_NUMBER, UNCOMPRESS_CC_NUMBER, and GET_COMPRESSED_LEN manage the compact representation of card numbers, and GET_CC_ENCRYPT_MODE returns the system-configured encryption mode from IBY_SYS_SECURITY_OPTIONS.

Masking and display routines are led by MASK_CARD_NUMBER, which produces the obfuscated form of a PAN, and GET_MASK_SETTINGS, which supplies the masking configuration. OTHER_CC_ATTRIBS_ENCRYPTED indicates whether auxiliary attributes such as cardholder name and expiry date are encrypted, and ENCRYPT_CHNAME with DECRYPT_CHNAME handle cipher operations specifically for the cardholder name. Card instrument lifecycle routines include CREATE_CARD, UPDATE_CARD, QUERY_CARD, and CHECK_CARD_VALIDITY, the latter validating whether a card record is usable. GET_BILLING_SITE resolves the appropriate billing party site use identifier, accounting for the complexities of the payer model where the site address need not be owned by the card owner.

Tables Accessed

The package operates against the primary credit card instrument store IBY_CREDITCARD, its history counterparts IBY_CREDITCARD_H and IBY_CREDITCARD_H_S, and the instrument summary table IBY_INSTR_S. Configuration and security metadata are drawn from IBY_SYS_SECURITY_OPTIONS, IBY_SYS_SECURITY_SUBKEYS, and IBY_SECURITY_SEGMENTS, governing encryption mode and key segmentation. Issuer data is read from IBY_CREDITCARD_ISSUERS_B and IBY_CC_ISSUER_RANGES, which support card-number range identification. Party and site information is sourced from HZ_PARTIES, HZ_PARTY_SITES, HZ_PARTY_SITE_USES, and HZ_LOCATIONS for billing and address resolution. IBY_IRF_RISKY_INSTR supports risk-related instrument tracking, and DUAL is used for trivial single-row lookups.

Usage Notes

IBY_CREDITCARD_PKG is invoked indirectly by Oracle Payments forms, payment processing flows, and concurrent programs rather than being called directly by end users. It is referenced by 14 other packages, confirming its role as a foundational utility within the IBY schema. Implementers performing custom development for credit card entry, inquiry, or migration should call the public API routines — particularly UNCIPHER_CCNUMBER for decryption and MASK_CARD_NUMBER for display — instead of querying IBY_CREDITCARD directly, since bypassing the package risks exposing encrypted data or bypassing security-segment controls. Because decryption depends on the configured encryption mode and subkeys, any custom code must run under the APPS schema with appropriate privileges and must respect the masking and audit requirements enforced by the package.