Debo pedirte disculpas ..
al probar ya en ASP, veo que efectivamente regresa un nulo
Código:
<%
set con = Server.CreateObject("ADODB.Connection")
ConnString = "Provider=SQLNCLI;Server=192.168.0.1;Database="&vBD&";Uid=cccc;Pwd=ccccc;Initial Catalog=pruebas"
Con.CommandTimeout = 0
con.Open ConnString
Set cmd=server.CreateObject("ADODB.command")
Set cmd.ActiveConnection = Con
cmd.CommandText = "DROP ASYMMETRIC KEY ClaveAsimetrica; " &_
"CREATE ASYMMETRIC KEY ClaveAsimetrica WITH ALGORITHM = RSA_2048; " &_
"INSERT INTO TEST (ClaveTxt, ClaveEncrip) VALUES ('$$Clave$$', EncryptByAsymKey(AsymKey_ID('ClaveAsimetrica'), '$$Clave$$'))"
cmd.Execute
set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT ClaveTxt, ClaveEncrip, IsNull(CAST(DecryptByAsymKey(AsymKey_ID('@Password'), ClaveEncrip) as CHAR(10)),'nulo') AS DecryptedData FROM TEST", con
response.write "Clave Texto: " & rs(0) & "<br>"
response.BinaryWrite "Clave Original: " & rs("DecryptedData") & "<br>"
%>
Dame unos minutos para seguir investigando