I need a example using DBMS_CRYPTO.SIGN.
I'm need to sign a hash using RSA-SHA1 and I need to know if can i use DBMS_CRYPTO.SIGN?
Have you tried as per the docs?
DECLARE
ip_str VARCHAR2 (200) := 'Secret Message';
-- Use OpenSSL to generate the private and public key (2048 bit RSA key)
-- openssl genrsa -out private.pem 2048
-- openssl rsa -in private.pem -outform PEM -pubout -out public.pem
pubkey VARCHAR (2000) := 'public_key';
prvkey VARCHAR (2000) := 'private_key';
sign_raw RAW (2000);
returnval BOOLEAN := false;
sType PLS_INTEGER := DBMS_CRYPTO.SIGN_SHA224_RSA;
kType PLS_INTEGER := DBMS_CRYPTO.KEY_TYPE_RSA;
BEGIN
sign_raw := DBMS_CRYPTO.SIGN
(
src => UTL_I18N.STRING_TO_RAW(ip_str,'AL32UTF8'),
prv_key => UTL_I18N.STRING_TO_RAW( prvkey, 'AL32UTF8'),
pubkey_alg => kType,
sign_alg => sType
);
returnval := DBMS_CRYPTO.VERIFY
(
src => UTL_I18N.STRING_TO_RAW( ip_str,'AL32UTF8'),
sign => sign_raw,
pub_key => UTL_I18N.STRING_TO_RAW( pubkey, 'AL32UTF8'),
pubkey_alg => kType,
sign_alg => sType
);
DBMS_OUTPUT.PUT_LINE('-------------------------------------------------');
IF returnval THEN
DBMS_OUTPUT.PUT_LINE('True');
ELSE
DBMS_OUTPUT.PUT_LINE('False');
END IF;
DBMS_OUTPUT.PUT_LINE('-------------------------------------------------');
END;
/