4
I need to encrypt this XML
<?xml version="1.0" encoding="utf-8"?><Selos> <CodigoServentia>0000000099</CodigoServentia><Selo><CodigoSequencialUnico>ABC00005</CodigoSequencialUnico><CodigoDeSeguranca>0000000123456879</CodigoDeSeguranca><SeloConsulta></SeloConsulta><DataUtilizacao> / / 0:00:00</DataUtilizacao><Ato><CodigoFiscalDoAto>0</CodigoFiscalDoAto><AnoReferenciaTabela></AnoReferenciaTabela><DataPraticaAto>0</DataPraticaAto><ComposicaoAto><TipoTributacao>0</TipoTributacao><ValorEmolumento>0</ValorEmolumento><ValorTFJ>0</ValorTFJ><ValorFinalUsuario>0</ValorFinalUsuario><Protocolo>0</Protocolo><TipoLivro>301</TipoLivro><OrdemSequencial>0</OrdemSequencial><Folha>0</Folha><NumeroDeOrdem>0</NumeroDeOrdem></ComposicaoAto></Ato></Selo><Selo><CodigoSequencialUnico>ABC00006</CodigoSequencialUnico><CodigoDeSeguranca>0000000121545688</CodigoDeSeguranca><SeloConsulta></SeloConsulta><DataUtilizacao> / / 0:00:00</DataUtilizacao><Ato><CodigoFiscalDoAto>0</CodigoFiscalDoAto><AnoReferenciaTabela></AnoReferenciaTabela><DataPraticaAto>0</DataPraticaAto><ComposicaoAto><TipoTributacao>0</TipoTributacao><ValorEmolumento>0</ValorEmolumento><ValorTFJ>0</ValorTFJ><ValorFinalUsuario>0</ValorFinalUsuario><Protocolo>0</Protocolo><TipoLivro>301</TipoLivro><OrdemSequencial>0</OrdemSequencial><Folha>0</Folha><NumeroDeOrdem>0</NumeroDeOrdem></ComposicaoAto></Ato></Selo><Selo><CodigoSequencialUnico>ABC00007</CodigoSequencialUnico><CodigoDeSeguranca>0000000254326448</CodigoDeSeguranca><SeloConsulta></SeloConsulta><DataUtilizacao> / / 0:00:00</DataUtilizacao><Ato><CodigoFiscalDoAto>0</CodigoFiscalDoAto><AnoReferenciaTabela></AnoReferenciaTabela><DataPraticaAto>0</DataPraticaAto><ComposicaoAto><TipoTributacao>0</TipoTributacao><ValorEmolumento>0</ValorEmolumento><ValorTFJ>0</ValorTFJ><ValorFinalUsuario>0</ValorFinalUsuario><Protocolo>0</Protocolo><TipoLivro>301</TipoLivro><OrdemSequencial>0</OrdemSequencial><Folha>0</Folha><NumeroDeOrdem>0</NumeroDeOrdem></ComposicaoAto></Ato></Selo><Selo><CodigoSequencialUnico>ABC00008</CodigoSequencialUnico><CodigoDeSeguranca>0000000586786542</CodigoDeSeguranca><SeloConsulta></SeloConsulta><DataUtilizacao> / / 0:00:00</DataUtilizacao><Ato><CodigoFiscalDoAto>0</CodigoFiscalDoAto><AnoReferenciaTabela></AnoReferenciaTabela><DataPraticaAto>0</DataPraticaAto><ComposicaoAto><TipoTributacao>0</TipoTributacao><ValorEmolumento>0</ValorEmolumento><ValorTFJ>0</ValorTFJ><ValorFinalUsuario>0</ValorFinalUsuario><Protocolo>0</Protocolo><TipoLivro>301</TipoLivro><OrdemSequencial>0</OrdemSequencial><Folha>0</Folha><NumeroDeOrdem>0</NumeroDeOrdem></ComposicaoAto></Ato></Selo><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>XJWsbgzfmsU3jKBK3dIByMWGqfI=</DigestValue></Reference></SignedInfo><SignatureValue>DA1mqec3eS8SEtbj3T0h1w5XX7mXRvfNjvq1vkqHtyUWZAZ5KASPaaIp1XhRt471x8uCYsL2zI+b6HRAusRFC4h/JEJDTjfR2aqSUNxhTAmgXuOXHXfohCb7lgpyj5N/VFkJO64if5ro1LPN2Vx00rCo/QlXsayJ70MPfyjow+exHWuzLmD/sganHLSzCE1RoEASgzKypsrzWpIvTpvTL9zqZkNmc9Sjqxcv9iYCHV19fha2jH2OvKGecWmgjTxtEp39q7bBbT+otqNQArVuzKtgRGYrAvVuxJ0ag++YwR7AmcyHfGnjtivCB/nywrvknqeiG34zYsJEdH0HxbpraQ==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIINjCCBh6gAwIBAgIQKJ5GtGIn9FIhJPMNgsmNqDANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDE2MDQGA1UECxMtU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2lsIC0gUkZCMRwwGgYDVQQDExNBQyBDZXJ0aXNpZ24gUkZCIEc0MB4XDTE0MTEwNTAwMDAwMFoXDTE1MTEwNDIzNTk1OVowgegxCzAJBgNVBAYTAkJSMRMwEQYDVQQKFApJQ1AtQnJhc2lsMQswCQYDVQQIEwJQUjEVMBMGA1UEBxQMQ2FtcG8gTW91cmFvMTYwNAYDVQQLFC1TZWNyZXRhcmlhIGRhIFJlY2VpdGEgRmVkZXJhbCBkbyBCcmFzaWwgLSBSRkIxFjAUBgNVBAsUDVJGQiBlLUNOUEogQTExIjAgBgNVBAsUGUF1dGVudGljYWRvIHBvciBBUiBGQUNJQVAxLDAqBgNVBAMTI0xXIFNPRlRXQVJFUyBMVERBIE1FOjAxNzYxMTM1MDAwMTMyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkJusSfrhyVOSwTVQYyq48WrEKPL/58/rPAj9k+Xy1PoZdklDf8xo6k50XY46bkcJWPQIe+919UtVO90UMwHDT0iIdzZe9ztnd+8EOkyqIEaBVhLgNTZIpjmZd26iYhYLhwlbi7oPj8Aap2dR0qHkN4nLPusm5CoIedSbVwaOGSzKPj2e9Qhr0Ieq8nXYgxKLKvh4YEZ4JN4pV0BTDYHDbab5nDdKyO+hb8m3yycUxnzUpF5rdGEfFDCc3MacxVVQSN08abUIs0R7U5yI/y+syASyugS0N40GBKAQHJD33wOxebIw2sLE9VVcpa8itnnToj9Ms3Zw9qLCgvp9xF0JlwIDAQABo4IDSTCCA0Uwga4GA1UdEQSBpjCBo6A4BgVgTAEDBKAvBC0yODAyMTk3NjkyOTAyMzQwOTE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCgHQYFYEwBAwKgFAQSTUFSQ0VTRSBNQVNDSElFVFRPoBkGBWBMAQMDoBAEDjAxNzYxMTM1MDAwMTMyoBcGBWBMAQMHoA4EDDAwMDAwMDAwMDAwMIEUZWxpemFAdW5pbWFrZS5jb20uYnIwCQYDVR0TBAIwADAfBgNVHSMEGDAWgBQukerWbeWyWYLcOIUpdjQWVjzQPjAOBgNVHQ8BAf8EBAMCBeAwfwYDVR0gBHgwdjB0BgZgTAECAQwwajBoBggrBgEFBQcCARZcaHR0cDovL2ljcC1icmFzaWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9kcGMvQUNfQ2VydGlzaWduX1JGQi9EUENfQUNfQ2VydGlzaWduX1JGQi5wZGYwggEWBgNVHR8EggENMIIBCTBXoFWgU4ZRaHR0cDovL2ljcC1icmFzaWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9sY3IvQUNDZXJ0aXNpZ25SRkJHNC9MYXRlc3RDUkwuY3JsMFagVKBShlBodHRwOi8vaWNwLWJyYXNpbC5vdXRyYWxjci5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDQ2VydGlzaWduUkZCRzQvTGF0ZXN0Q1JMLmNybDBWoFSgUoZQaHR0cDovL3JlcG9zaXRvcmlvLmljcGJyYXNpbC5nb3YuYnIvbGNyL0NlcnRpc2lnbi9BQ0NlcnRpc2lnblJGQkc0L0xhdGVzdENSTC5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMIGbBggrBgEFBQcBAQSBjjCBizBfBggrBgEFBQcwAoZTaHR0cDovL2ljcC1icmFzaWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9jZXJ0aWZpY2Fkb3MvQUNfQ2VydGlzaWduX1JGQl9HNC5wN2MwKAYIKwYBBQUHMAGGHGh0dHA6Ly9vY3NwLmNlcnRpc2lnbi5jb20uYnIwDQYJKoZIhvcNAQELBQADggIBAAaCUDNCXOzenD8/kSX1hPMsbjO0kvoBjE7wXVqzvwqu7iwoOn5kRlkNPZjmIR8HaJrcvQ/9k2DtM9FbJySiglz6ietsfl2oi8m2lv0RrWPM+RsmSixaF8M8hNSsV5dsHbrha4GZCJN2XWCQvEAQJt13XJBmMaufHZg/umYeVpBhdLvRboG+CxoQHBdNDi58nz+iMyIDtEt5BtOZif6045LN6GuRrIDj9Sm1ogqDDi621G9QsOOooIbz+b3lK4eBXawJDrvjlaIZDaOoKazzbhy2BpJf6q5txAyJauWxxPnb4AYtU1qJNUVSr+2k03F1qhIzPZJ8w0wnSavqbrsV/X8Uy6AWHFqliLdcBcpsQEibzbWO+GwcdtzcCGDL0kZELDKWekwKM7CerNWvSMsOC4uJnPfGuyCfd1P2oZu5+G5g0fee38CVPB0+YSJlE9Ers8UTStJu5t8mq+7NhUyd04C4g5yqTyUkRDv/SPKEN4DfEL1nQ/wPXLNFxCyJnrpCphFDDC8aTDmMPdireltbLLIf8bL9ujHYOgPWkZISn+vYwfXj6jHj4l9Iy59rT8MT9TUFHn9dM/HiIABh3XcoA9756dh3wxZaBewcextxv/3fsVygkL7531vGJijQsH2GS7oAuMexfMJMVOOjHDKukoHfo6qX0VRz9q6yNI/rYmN0</X509Certificate></X509Data></KeyInfo></Signature></Selos>
With this public key:
-----BEGIN CERTIFICATE-----
MIIDczCCAlugAwIBAgIEZ2F1WDANBgkqhkiG9w0BAQsFADBqMQswCQYDVQQGEwJCUjEVMBMGA1UE
CBMMTWluYXMgR2VyYWlzMRcwFQYDVQQHEw5CZWxvIEhvcml6b250ZTENMAsGA1UEChMEVEpNRzEN
MAsGA1UECxMEVEpNRzENMAsGA1UEAxMEVEpNRzAeFw0xMzA3MDIxNjM5MDBaFw0xMzA5MzAxNjM5
MDBaMGoxCzAJBgNVBAYTAkJSMRUwEwYDVQQIEwxNaW5hcyBHZXJhaXMxFzAVBgNVBAcTDkJlbG8g
SG9yaXpvbnRlMQ0wCwYDVQQKEwRUSk1HMQ0wCwYDVQQLEwRUSk1HMQ0wCwYDVQQDEwRUSk1HMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApyliHR49lF/XcMCt0EjHcqzWwG0TjMzRX41O
SmYDNx3yJOs4vnUKxVE4sLaeCePNbFpIo+PJadEoLvl3z2Z8kbLjbTA+72+d1uJRFG7jhczPtIzh
kpeqTkwbwUn3pm3YeF8UslWe/EjpXxbi6BYCWkR+qf352QNX7kYLM6dtOv/bBOtmjh3ZibHbTnEh
clMSUIBhLWfkaCn7PgMKZLszshz+g7436v4/7/hKEeMTLmlhmw7P06ahcaJsYEdCSVaD60hnl5W3
4DtsHBv1sn4MrUjs5RS5lI/s6l8T8XQP70RG4WpKDHO2PbzbjPo9xvxm0C70ur/daBqejU8yd5dR
IQIDAQABoyEwHzAdBgNVHQ4EFgQUVqwwZs4ff9j9qu1asmIoz1dh8RgwDQYJKoZIhvcNAQELBQAD
ggEBADyO+v79KDRDqJFRyRkkOGNlM5iYiGVxMdh/GSsTZzqPCeciNlDAh5lzi1q4NIHjbzhTdPtR
qgPz+LZFZkt7mlvhxHxmzEJC+SAuzL4PfZy/MqWAYu+fQ+SzzG/yLgVjgJgOzCD8Hlmt8FjLHXOr
h71wNmSPc3DUEuE0fDK64sZjMB3cL9ja/RmKPUVglDo9CUFPHghTpKcwz/cTP1OTXBjT7dEFUK5A
Tw889z1NVg3QMn4MKbcRtFWsMOb7vaEhjmLHoxp7/fsdGn2b+FSK3QqMjcE6HOh27v4AVXogS2Io
WIKxMWI3LhAsGtOcGCynXLXsTvJriXYyO5IvlZvsYk0=
-----END CERTIFICATE-----
How do I pass this key in the encryption? (that’s how I tried to do it)
string key = "MIIDczCCAlugAwIBAgIEZ2F1WDANBgkqhkiG9w0BAQsFADBqMQswCQYDVQQGEwJCUjEVMBMGA1UE" +
"CBMMTWluYXMgR2VyYWlzMRcwFQYDVQQHEw5CZWxvIEhvcml6b250ZTENMAsGA1UEChMEVEpNRzEN" +
"MAsGA1UECxMEVEpNRzENMAsGA1UEAxMEVEpNRzAeFw0xMzA3MDIxNjM5MDBaFw0xMzA5MzAxNjM5" +
"MDBaMGoxCzAJBgNVBAYTAkJSMRUwEwYDVQQIEwxNaW5hcyBHZXJhaXMxFzAVBgNVBAcTDkJlbG8g" +
"SG9yaXpvbnRlMQ0wCwYDVQQKEwRUSk1HMQ0wCwYDVQQLEwRUSk1HMQ0wCwYDVQQDEwRUSk1HMIIB" +
"IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApyliHR49lF/XcMCt0EjHcqzWwG0TjMzRX41O" +
"SmYDNx3yJOs4vnUKxVE4sLaeCePNbFpIo+PJadEoLvl3z2Z8kbLjbTA+72+d1uJRFG7jhczPtIzh" +
"kpeqTkwbwUn3pm3YeF8UslWe/EjpXxbi6BYCWkR+qf352QNX7kYLM6dtOv/bBOtmjh3ZibHbTnEh" +
"clMSUIBhLWfkaCn7PgMKZLszshz+g7436v4/7/hKEeMTLmlhmw7P06ahcaJsYEdCSVaD60hnl5W3" +
"4DtsHBv1sn4MrUjs5RS5lI/s6l8T8XQP70RG4WpKDHO2PbzbjPo9xvxm0C70ur/daBqejU8yd5dR" +
"IQIDAQABoyEwHzAdBgNVHQ4EFgQUVqwwZs4ff9j9qu1asmIoz1dh8RgwDQYJKoZIhvcNAQELBQAD" +
"ggEBADyO+v79KDRDqJFRyRkkOGNlM5iYiGVxMdh/GSsTZzqPCeciNlDAh5lzi1q4NIHjbzhTdPtR" +
"qgPz+LZFZkt7mlvhxHxmzEJC+SAuzL4PfZy/MqWAYu+fQ+SzzG/yLgVjgJgOzCD8Hlmt8FjLHXOr" +
"h71wNmSPc3DUEuE0fDK64sZjMB3cL9ja/RmKPUVglDo9CUFPHghTpKcwz/cTP1OTXBjT7dEFUK5A" +
"Tw889z1NVg3QMn4MKbcRtFWsMOb7vaEhjmLHoxp7/fsdGn2b+FSK3QqMjcE6HOh27v4AVXogS2Io" +
"WIKxMWI3LhAsGtOcGCynXLXsTvJriXYyO5IvlZvsYk0=";
// Instancia a class EncryptedXml.
EncryptedXml exml = new EncryptedXml(xmlDoc);
XmlElement elementToEncrypt = xmlDoc.GetElementsByTagName("Selos")[0] as XmlElement;
try
{
EncryptedData edElement = exml.Encrypt(elementToEncrypt, key);
////////////////////////////////////////////////////
// Replace the element from the original XmlDocument
// object with the EncryptedData element.
////////////////////////////////////////////////////
EncryptedXml.ReplaceElement(elementToEncrypt, edElement, false);
}
Returns the following exception
Unable to recover encryption key.
Is that C#, Java, another language? And I’ll repeat what I commented on in your other question: if you post the exception entire (message, class and stack trace) there’s a better chance someone can help you...
– mgibsonbr
That same friend is C#, the full stack trace: It is not possible to recover the encryption key. System.Security in System.Security.Cryptography.xml.Encryptedxml.Encrypt(Xmlelement inputElement, String keyName) in Lib.LibXml.encryptXml(String filename) na c: Users Renan Appdata Roaming Skype My Skype Received Files Testedescriptografarxml Testedescriptografarxml Testedescriptografarxml Lib.Cs:line 129
– Renan Borges
Well, I’ve seen the error: the second argument to
Encrypt
should be the name of the key in the mapping, not the key itself. When solving, I’m still searching...– mgibsonbr
P.S. Another potential problem is that
Encrypt
, to my knowledge, it requires an encryption algorithm symmetrical - the one you’re using is asymmetrical for sure (or wouldn’t have a "public key"), probably RSA (by key size).– mgibsonbr
See if one of these helps you: "How to: Encrypt XML Elements with X.509 Certificates" or "How to: Encrypt XML Elements with Asymmetric Keys"
– mgibsonbr
Renan, you managed to encrypt the file with the public key?
– user27196