1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Dúvida] XML Encrypt em C#

Discussão em 'Programação' iniciada por pmni, 22 de Dezembro de 2008. (Respostas: 0; Visualizações: 804)

  1. pmni

    pmni Power Member

    Boas malta.

    Eu tenho um trabalho universitário para fazer, XML Encrypt, mas encalhei na desencriptação...

    Os controlos estão por ASP.NET, os handlers para inserir, editar e apagar os dados xml funcionam, o encrypt também... só falta o descrypt...
    Bem comecemos pelo código... Tenho uma função que recebe o ficheiro xml encriptado, e a encriptação assimétrica é feita por RSA, que é criado quando a classe se inicializa.

    Código:
    [SIZE=2][COLOR=#0000ff]public[/COLOR][/SIZE][SIZE=2][COLOR=#000000] [/COLOR][/SIZE][SIZE=2][COLOR=#2b91af]XmlDocument[/COLOR][/SIZE][SIZE=2][COLOR=#000000] decryptXML([/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2][COLOR=#000000] sender, [/COLOR][/SIZE][SIZE=2][COLOR=#2b91af]EventArgs[/COLOR][/SIZE][SIZE=2][COLOR=#000000] e, [/COLOR][/SIZE][SIZE=2][COLOR=#2b91af]XmlDocument[/COLOR][/SIZE][SIZE=2][COLOR=#000000] xmlEncDoc)[/COLOR]
    {
    [INDENT][/SIZE][SIZE=2][COLOR=#0000ff]try
    [/COLOR][/SIZE][SIZE=2]{
    [INDENT][/SIZE][SIZE=2][COLOR=#008000]
    [/COLOR][/SIZE][SIZE=2][/SIZE][SIZE=2][COLOR=#2b91af]EncryptedXml[/COLOR][/SIZE][SIZE=2] encXml = [/SIZE][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][SIZE=2] [/SIZE][SIZE=2][COLOR=#2b91af]EncryptedXml[/COLOR][/SIZE][SIZE=2](xmlEncDoc);
    encXml.AddKeyNameMapping([/SIZE][SIZE=2][COLOR=#a31515]"asyncKey"[/COLOR][/SIZE][SIZE=2], rsa);[/SIZE][SIZE=2][COLOR=#008000]
    [/COLOR][/SIZE][SIZE=2]encXml.DecryptDocument();
    xmlEncDoc.RemoveAll();
    [/SIZE][SIZE=2][COLOR=#008000]
    [/COLOR][/SIZE][SIZE=2]rsa.Clear();
    [/SIZE][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][SIZE=2] xmlEncDoc;
    [/INDENT]}
    [/SIZE][SIZE=2][COLOR=#0000ff]catch[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#2b91af]XmlException[/COLOR][/SIZE][SIZE=2] ex)
    {
    [INDENT][/SIZE][SIZE=2][COLOR=#0000ff]throw[/COLOR][/SIZE][SIZE=2] ex;
    [/INDENT]}
    [/INDENT]}
    [/SIZE]
    Bem depois disto dá-me o belo erro:

    Código:
    [B]Description: [/B][FONT=Arial]An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
    
    [/FONT][B]Exception Details: [/B][FONT=Arial]System.Security.Cryptography.CryptographicException: Bad Data.
    
    
    [/FONT][B]Source Error:[/B][FONT=Arial] 
    
    [/FONT][COLOR=red]Line 75:             encXml.DecryptDocument();[/COLOR][COLOR=black]Line 76:             xmlEncDoc.RemoveAll();[/COLOR]
    
    Bem alguma ideia para me resolver o problema?

    Obrigado e cps!
     

Partilhar esta Página