declare
l_privateKey varchar2(4000) := replace(replace(replace(replace(
'-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAw+ImPl9v2JVqN0y5PNZIgSpk6hJnWhZfgkgE9ZPfoWCJkbOi
EXPUtAhUN6xjv2OhnjUQ4/EDMiQmvUzYu7cacUxD/6mHDSqVmhy3PvayI2aeipwN
gP5YWjlWzdWixnbx8HzuD1MssBo0k4R9CygwHKzpGRhwW59m+J6iZ0mGiIb3X3BP
fD0RF8a9uuUfGpgqyUHubQrdTHBExn+Fte49xldkrHQK2JdNtf4NTyRFg60GGz3j
w83wQhN6zbEkdQ4TZ8ceWwZ8UQnbq5YEie29uvn8ErNTl3UJR+ggBCszTrvFUAe1
6E4CRLWY0GRn4K9NN9f9mrrhFwBI3yIDk3HZIQIDAQABAoIBAQCfb9CPDiE8WYll
z3YqtYO4Vqhi+W3UHsfIhBQ9SwpIEQqIZHzy1aP4kZry4ccivdaLrke8MKzYQCKk
DAuQ5t2IAHqMexEov1ObZ+ojPqsKM3mx+ojnSJ7jeS5VRaFDBwewJg+iu6FxCTNo
KvuYfDKE9JyaR5EUkm8+x+gKSAdP0ZakkBEUFX/pU75dLCNEdDXqjA5b/pc6y+eQ
TJs1n+1+3v6PGllezjKbMOOpxu6y5hagP8cOWQlbR44o+aChqAkH43fJK5PRP56g
vdtP+HcPWdIvSseIguMQF5Gf2RY7Edk27bfMBiGsJU79UQJMQusH+AETG4ZAX/9H
pQQiHsJtAoGBAOR2h0BrJ5eQwOqRLnUj49Z0PnJNSTJeo8PjhvArdV9J9cf+YuJW
3gcBC1cjE9JF4Mj9vaARCBvfLPOLWh2I9ALOSouez2UQOAX4BOGX1lcWcb5JRbFv
uYt6Zz8DbjOU4tfqTAObROR64CWE7h0an3xhMRKACIebD1XKpscLSKAjAoGBANt+
V6CzTl0Wr7Xzd3AlTnTd1kIgVmMJPB13g0zxf8xnWWJeu6jSAXLGfwKUp1Ugrri4
UubPgTVSi6UmfxUcp/2zcVXOpGGo5XRHAOTCZhKsV0hpXARDLm/7OfzOmmgLPYBX
0Oe4pZfsyTPMncRLw7bts7taNxAezaTcVvmsrtPrAoGAY6QKUx8o8mKwsN1G/NH9
YZ/rSGDKxswd8qZ+SKs7kqaoKmSZbgvi4/0hnAxxbakKY76/AFvNRJKugT3KvMzp
V3vvaTuHSpWrSXclcdqOIgdo7kv4uG146AsnkoUFgDu0P+Uw5/XFMz0gG10BmPHu
kwm0pFPw5GvNYWZ0HKWgNC8CgYBC4RdQNvJcuOnnNf0hpaxnPaToVzQbTxgLHnxa
eIdpP+BjcdwaT4rzbvoKTkNCVAgI7tkLzRRgq/sy4iz8wNOLIR8adzFtNGpd6Lij
+3vgmrSpsri/77x5kIIVvtobc7lUnu1ffcqvJQ4Vg3Za9n73ASyvnIiEl+4vGphB
0VUf6wKBgQCtQPEUUIsLfwBw6sFzrFTejTLji7689VStgAQyfvB0HXmtkTdcZ2uw
fjqGAMC1V4m+aGHUE48gDXucqJ48m3OICw1y24Jv9D2GJtb36KFaqxD1vGQ76mji
V72V60xnap7WsTmIUrOIY425tvFw5RZYnnuaR+KFx+Hq3knL2KHpBw==
-----END RSA PRIVATE KEY-----'
,unistr('\000d'),null),unistr('\000a'),null),
'-----BEGIN RSA PRIVATE KEY-----',null),
'-----END RSA PRIVATE KEY-----',null);
l_messageTxt varchar2(4000) :=
'This is a test message!'||unistr('\000d\000a')||
'We want to know if a node:crypto created siganture'||unistr('\000d\000a')||
'is the same as we create signature with dbms_crypto.sign';
l_signature varchar2(4000);
begin
l_signature := utl_raw.cast_to_varchar2(
utl_encode.base64_encode(
dbms_crypto.sign(
src => dbms_crypto.hash( utl_raw.cast_to_raw( l_messageTxt ) , dbms_crypto.hash_sh256 ),
prv_key => utl_raw.cast_to_raw( l_privateKey ),
pubkey_alg => dbms_crypto.key_type_rsa,
sign_alg => dbms_crypto.sign_sha256_rsa
)
)
);
dbms_output.put_line( replace(replace(l_signature,unistr('\000d'),null),unistr('\000a'),null) );
end;
Statement processed.
QpTrDuV52p0phBvqxlljX9Cyr93eVXFArKpYsUURovH1Vx4loCqRY8GIv+tKZ8miELoFjIrqCtIhot7hnJhWb53IUrWt2WOGaCtpcsjMyjKKGBbbADud3CVuFRl1L/mX2BZ07sxNe/mezgADqHWnmuDH0pLC8adyr+iXRMW/s9wYAycqO0EXEmUbx/e3ahdTKpzl50bHu6Yy/Zl8zMZG7RFpfEoK6ZPiK6rjJcMc2+D3iPJPCJ7HRXtIkg62glJPZ82eT134WccaAeVBIEngPb2dhnycUxEjOwZajwecf1otYDEwMkHmlmaMItYNUKNDxwW6AQJY8bFImlfgUlDuDw==