Oracle DBMS_CRYPTO_TOOLKIT_FFI Built-In Package
Versions 10.1 - 19.4

Security Advisory
Oracle Cryptographic Toolkit Foreign Function Interface (FFI)

Reference to the package here at in the DBSecWorx code library is intended solely as a warning that there is no known legitimate reason for anyone to have access to this security package.
 
Recommended Security Rules

 NEVER
  • Grant execute on this package to any user or role
 WITH GREAT CARE
  • Check regularly to determine if execute on this package has been granted and if so treat it as highly suspicious: It should raise alarms.
 CAUTIONS
  • N/A
 
How Oracle Works
N/A N/A
 
DBMS_CRYPTO_TOOLKIT_FFI Package Information
AUTHID DEFINER
Dependencies
CRYPTO_TOOLKIT_LIBRARY DBMS_CRYPTO_TOOLKIT DBMS_CRYPTO_TOOLKIT_TYPES
Documented in Types & Packages No
First Available 19.1
Security Model Owned by SYS with no privileges granted
Source {ORACLE_HOME}/rdbms/admin/prvtoctk.plb
Subprograms
 
ABORTIDENTITY
Undocumented dbms_crypto_toolkit_ffi.abortIdentity(
package_context IN     RAW,
identity        IN OUT RAW);
TBD
 
CLOSEPERSONA
Undocumented dbms_crypto_toolkit_ffi.closePersona(
package_context IN     RAW,
persona         IN OUT RAW);
TBD
 
CLOSEWALLET
Undocumented dbms_crypto_toolkit_ffi.closeWallet(
package_context IN     RAW,
wallet          IN OUT RAW);
TBD
 
CREATEIDENTITY
Undocumented dbms_crypto_toolkit_ffi.createIdentity(
package_context    IN  RAW,
identitytype       IN  BINARY_INTEGER,
public_identity    IN  VARCHAR2,
alias              IN  VARCHAR2,
longer_description IN  VARCHAR2,
trust_qualifier    IN  VARCHAR2,
identity           OUT RAW);
TBD
 
CREATEPERSONA
Undocumented dbms_crypto_toolkit_ffi.createPersona(
package_context     IN  RAW,
cipher_type         IN  BINARY_INTEGER,
private_information IN  RAW,
prl                 IN  VARCHAR2,
alias               IN  VARCHAR2,
longer_description  IN  VARCHAR2,
persona             OUT RAW);
TBD
 
CREATEWALLET
Undocumented dbms_crypto_toolkit_ffi.createWallet(
package_context         IN     RAW,
wallet_resource_locator IN     VARCHAR2,
password                IN     VARCHAR2,
wallet                  IN OUT RAW);
TBD
 
DECRYPT
Undocumented dbms_crypto_toolkit_ffi.decrypt(
package_context  IN RAW,
persona          IN RAW,
decryption_state IN BINARY_INTEGER,
input            IN RAW)
RETURN RAW;
TBD
 
DEENVELOPE
Undocumented dbms_crypto_toolkit_ffi.deenvelope(
package_context  IN  RAW,
persona          IN  RAW,
decryption_state IN  BINARY_INTEGER,
input            IN  RAW,
verified         OUT BOOLEAN,
validated        OUT BOOLEAN,
sender_identity  OUT RAW)
RETURN RAW;
TBD
 
DESTROYWALLET
Undocumented dbms_crypto_toolkit_ffi.destroyWallet(
package_context         IN RAW,
wallet_resource_locator IN VARCHAR2,
password                IN VARCHAR2);
TBD
 
ENCRYPT
Undocumented dbms_crypto_toolkit_ffi.encrypt(
package_context  IN RAW,
persona          IN RAW,
encryption_state IN BINARY_INTEGER,
input            IN RAW)
RETURN RAW;
TBD
 
ENVELOPE
Undocumented dbms_crypto_toolkit_ffi.envelope(
package_context      IN RAW,
persona              IN RAW,
number_of_recipients IN BINARY_INTEGER,
recipient_list       IN RAW,
encryption_state     IN BINARY_INTEGER,
input                IN RAW)
RETURN RAW;
TBD
 
GETPERSONAFROMWALLET
Undocumented dbms_crypto_toolkit_ffi.getPersonaFromWallet(
package_context IN  RAW,
wallet          IN  RAW,
count           IN  BINARY_INTEGER,
alias           OUT VARCHAR2,
comment         OUT VARCHAR2,
identity        OUT RAW,
persona         OUT RAW);
TBD
 
GETPROTECTION
Undocumented dbms_crypto_toolkit_ffi.getProtection(
package_context        IN  RAW,
persona                IN  RAW,
crypto_engine_function IN  BINARY_INTEGER,
data_unit_format       OUT BINARY_INTEGER,
hash_cipher            OUT BINARY_INTEGER,
symmetric_cipher       OUT BINARY_INTEGER,
key_length             OUT BINARY_INTEGER);
TBD
 
HASH
Undocumented dbms_crypto_toolkit_ffi.hash(
package_context IN RAW,
persona         IN RAW,
hash_state      IN BINARY_INTEGER,
input           IN RAW)
RETURN RAW;
TBD
 
INITIALIZE
Undocumented dbms_crypto_toolkit_ffi.initialize(package_context OUT RAW);
DECLARE
 outVal RAW(32767);
BEGIN
  dbms_crypto_toolkit_ffi.initialize(outVal);
--  dbms_output.put_line(outVal);
END;
/
DECLARE
*
ERROR at line 1:
ORA-28817: PL/SQL function returned an error.
ORA-06512: at "SYS.DBMS_CRYPTO_TOOLKIT_FFI", line 6
ORA-06512: at line 4
 
KEYEDHASH
Undocumented dbms_crypto_toolkit_ffi.keyedHash(
package_context IN RAW,
persona         IN RAW,
hash_state      IN BINARY_INTEGER,
input           IN RAW)
RETURN RAW;
TBD
 
OPENPERSONA
Undocumented dbms_crypto_toolkit_ffi.openPersona(
package_context IN     RAW,
persona         IN OUT RAW);
TBD
 
OPENWALLET
Undocumented dbms_crypto_toolkit_ffi.openWallet(
package_context         IN  RAW,
wallet_resource_locator IN  VARCHAR2,
password                IN  VARCHAR2,
wallet                  OUT RAW);
TBD
 
PKDECRYPT
Undocumented dbms_crypto_toolkit_ffi.PKDecrypt(
package_context  IN RAW,
persona          IN RAW,
encryption_state IN BINARY_INTEGER,
input            IN RAW)
RETURN RAW;
TBD
 
PKENCRYPT
Undocumented dbms_crypto_toolkit_ffi.PKEncrypt(
package_context      IN RAW,
persona              IN RAW,
number_of_recipients IN BINARY_INTEGER,
recipient_list       IN RAW,
state                IN BINARY_INTEGER,
input                IN RAW,
RETURN RAW;
TBD
 
RANDOMBYTES
Undocumented dbms_crypto_toolkit_ffi.randomBytes(
package_context         IN RAW,
persona                 IN RAW,
number_of_bytes_desired IN BINARY_INTEGER)
RETURN RAW;
TBD
 
RANDOMNUMBER
Undocumented dbms_crypto_toolkit_ffi.randomNumber(
package_context IN RAW,
persona         IN RAW)
RETURN BINARY_INTEGER;
TBD
 
REMOVEIDENTITY
Undocumented dbms_crypto_toolkit_ffi.removeIdentity(
package_context IN  RAW,
identity        OUT RAW);
TBD
 
REMOVEPERSONA
Undocumented dbms_crypto_toolkit_ffi.removePersona(
package_context IN     RAW,
persona         IN OUT RAW);
TBD
 
SEEDRANDOM
Undocumented dbms_crypto_toolkit_ffi.seedRandom(
package_context IN RAW,
persona         IN RAW,
SEED            IN RAW);
TBD
 
SETPROTECTION
Undocumented dbms_crypto_toolkit_ffi.setProtection(
package_context        IN RAW,
persona                IN RAW,
crypto_engine_function IN BINARY_INTEGER,
data_unit_format       IN BINARY_INTEGER,
hash_cipher            IN BINARY_INTEGER,
symmetric_cipher       IN BINARY_INTEGER,
key_length             IN BINARY_INTEGER);
TBD
 
SIGN
Undocumented dbms_crypto_toolkit_ffi.sign(
package_context IN RAW,
persona         IN RAW,
signature_state IN BINARY_INTEGER,
input           IN RAW)
RETURN RAW;
TBD
 
SIGNDETACHED
Undocumented dbms_crypto_toolkit_ffi.signDetached(
package_context IN RAW,
persona         IN RAW,
signature_state IN BINARY_INTEGER,
input           IN RAW)
RETURN RAW;
TBD
 
STOREPERSONA
Undocumented dbms_crypto_toolkit_ffi.storePersona(
package_context IN     RAW,
persona         IN OUT RAW,
wallet          IN OUT RAW);
TBD
 
STORETRUSTEDIDENTITY
Undocumented dbms_crypto_toolkit_ffi.storeTrustedIdentity(
package_context IN     RAW,
identity        IN OUT RAW,
persona         IN     RAW);
TBD
 
TERMINATE
Undocumented dbms_crypto_toolkit_ffi.terminate(package_context IN OUT RAW);
TBD
 
VALIDATE
Undocumented dbms_crypto_toolkit_ffi.validate(
package_context IN RAW,
persona         IN RAW,
identity        IN RAW)
RETURN BOOLEAN;
TBD
 
VERIFY
Undocumented dbms_crypto_toolkit_ffi.verify(
package_context     IN     RAW,
persona             IN     RAW,
signature_state     IN     BINARY_INTEGER,
signature           IN     RAW,
verified               OUT BOOLEAN,
validated              OUT BOOLEAN,
signing_party_identity OUT RAW)
RETURN RAW;
TBD
 
VERIFYDETACHED
Undocumented dbms_crypto_toolkit_ffi.verifyDetached(
package_context     IN     RAW,
persona             IN     RAW,
signature_state     IN     BINARY_INTEGER,
DATA                IN     RAW,
signature           IN     RAW,
verified               OUT BOOLEAN,
validated              OUT BOOLEAN,
signing_party_identity OUT RAW);
TBD

Related Topics
DBMS_CRYPTO
DBMS_CRYPTO_FFI
DBMS_CRYPTO_INTERNAL
DBMS_CRYPTO_TOOLKIT
DBMS_CRYPTO_TOOLKIT_TYPES
DBMS_RANDOM
DBMS_SQLHASH
UTL_I18N
UTL_RAW