You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafodion.apache.org by "Suresh Subbiah (JIRA)" <ji...@apache.org> on 2016/06/20 21:24:58 UTC

[jira] [Created] (TRAFODION-2080) Add builtin functions for certain OpenSSL digest functions

Suresh Subbiah created TRAFODION-2080:
-----------------------------------------

             Summary: Add builtin functions for certain OpenSSL digest functions
                 Key: TRAFODION-2080
                 URL: https://issues.apache.org/jira/browse/TRAFODION-2080
             Project: Apache Trafodion
          Issue Type: Improvement
          Components: sql-general
    Affects Versions: 2.1-incubating
            Reporter: Suresh Subbiah
            Assignee: Suresh Subbiah


Trafodion should support the following functions

md4
md5
sha
sha1
sha224
sha256
sha384
sha512
ripemd160
whirlpool

These functions can be used to calculate a hash value for input strings of varying length, with a low probability of collision. Collision probability is reduced as digest length is increased by choosing an appropriate algorithm. Such hash values are useful when long varchars need to be stored as a key column and a low probability of collisions is acceptable. Storing the digest in the key instead of a varchar of say 4K bytes, allows several thousand bytes to be saved per row (since varchars fully expanded when they are stored in the key)

UDFs can be written to compute these digests but they have a few deficiencies
a) A different declaration is needed for input strings of different lengths
b) Data has to be sent to the udrserv process and the answer received back, adding to messaging overhead

These functions are available in the openssl library. This library is already linked by Trafodion source. Therefore no new dependency will be introduced. The library will be dynamically linked (with -l option) and therefore openssl binaries will not be shipped with Trafodion.

The list of functions could be reduced or increased as necessary.
There will be no PCode implementation for these functions.
The output type will be fixed for each function and will be in binary format. For a user who wishes to display the functions converttohex function will have to be wrapped around the digest function.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)