Skip to Main Content
Oracle PL/SQL for DBAs
book

Oracle PL/SQL for DBAs

by Arup Nanda, Steven Feuerstein
October 2005
Intermediate to advanced content levelIntermediate to advanced
454 pages
14h 44m
English
O'Reilly Media, Inc.
Content preview from Oracle PL/SQL for DBAs

Generating Keys

As mentioned earlier, the DBMS_OBFUSCATION_TOOLKIT function used to generate an encryption key, DES3GETKEY, is not available in the DBMS_CRYPTO package. A new function, RANDOMBYTES, takes its place. If you want to use my get_key function in Oracle Database 10g, you will need to change this function to use RANDOMBYTES instead.

You need to be aware of the following differences when switching key generation methods:

  • In the DBMS_OBFUSCATION_TOOLKIT, the DES3GETKEY function could generate a key with a datatype of either VARCHAR2 or RAW. In DBMS_CRYPTO, all encryptions involving VARCHAR2 are done through RAW, so a VARCHAR2 key is not useful, and the RANDOMBYTES function returns only a RAW key.

  • In DBMS_CRYPTO, you do not need to specify the seed as you do in the DBMS_OBFUSCATION_TOOLKIT. The function gets the seed from the parameter SQLNET.CRYPTO_SEED inside the file SQLNET.ORA. This parameter, therefore, must have a valid value of any combination of characters between 10 and 70 bytes long. Here is an example setting of the parameter:

        SQLNET.CRYPTO_SEED = weipcfwe0cu0we98c0wedcpoweqdufd2d2df2dk2d2d23fv43098fpi
    wef02uc2ecw1x982jd23d908d

Let’s see how I need to change my get_key function to accommodate these changes.

    /* File on web: get_key_2.sql */

    CREATE OR REPLACE FUNCTION get_key (p_length IN PLS_INTEGER)

       RETURN RAW
    IS
       l_ret   RAW (4000);
    BEGIN
       l_ret := dbms_crypto.randombytes (p_length);
       RETURN l_ret;
    END;
    /

Note that there is no which parameter, either. In addition, I have ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Oracle PL/SQL Best Practices

Oracle PL/SQL Best Practices

Steven Feuerstein
Expert Oracle PL/SQL

Expert Oracle PL/SQL

Ron Hardman, Michael McLaughlin
Oracle PL/SQL For Dummies

Oracle PL/SQL For Dummies

Michael Rosenblum, Paul Dorsey

Publisher Resources

ISBN: 0596005873Supplemental ContentErrata Page