DBA Data[Home] [Help]

PACKAGE BODY: APPS.IBY_CC_SECURITY_PUB

Source


1 PACKAGE BODY IBY_CC_SECURITY_PUB AS
2 /*$Header: ibyccscb.pls 120.1 2005/10/18 23:16:38 jleybovi noship $*/
3 
4 
5   -- secure reference number prefix
6   G_SEC_REF_PREFIX CONSTANT NUMBER := 9;
7   -- secure reference number length
8   G_SEC_REF_LENGTH CONSTANT NUMBER := 25;
9 
10   -- number of characters to leak unmasked
11   G_UNMASK_LENGTH CONSTANT NUMBER := 4;
12   -- masking character
13   G_MASK_CHAR CONSTANT VARCHAR2(1) := 'X';
14 
15   -- USE
16   --  Extracts the security segment primary key from a secured
17   --  card reference number
18   --
19   FUNCTION Get_Segment_Id( p_sec_card_ref IN VARCHAR2 )
20   RETURN iby_security_segments.sec_segment_id%TYPE
21   IS
22   BEGIN
23     IF NOT ((SUBSTR(p_sec_card_ref,1,1) = G_SEC_REF_PREFIX)
24            AND (LENGTH(p_sec_card_ref) = G_SEC_REF_LENGTH))
25     THEN
26       RETURN NULL;
27     END IF;
28 
29     RETURN TO_NUMBER(SUBSTR(p_sec_card_ref,1 + LENGTH(G_SEC_REF_PREFIX),G_SEC_REF_LENGTH - LENGTH(G_SEC_REF_PREFIX) - G_UNMASK_LENGTH));
30   EXCEPTION
31     WHEN OTHERS THEN
32       RETURN NULL;
33   END Get_Segment_Id;
34 
35   FUNCTION Encryption_Enabled RETURN BOOLEAN
36   IS
37     l_mode             iby_sys_security_options.cc_encryption_mode%TYPE;
38 
39     CURSOR c_encrypt_mode
40     IS
41       SELECT cc_encryption_mode
42       FROM iby_sys_security_options;
43   BEGIN
44     IF (c_encrypt_mode%ISOPEN) THEN CLOSE c_encrypt_mode; END IF;
45 
46     OPEN c_encrypt_mode;
47     FETCH c_encrypt_mode INTO l_mode;
48     CLOSE c_encrypt_mode;
49 
50     RETURN (l_mode = 'IMMEDIATE') OR (l_mode = 'SCHEDULED');
51   END Encryption_Enabled;
52 
53 END IBY_CC_SECURITY_PUB;