Para fazer a importação do XML de NFe no Emissor do SEFAZ é necessário que o XML tenha sido assinado, embora a assinatura esteja errada ele pergunta se o usuário deseja importar a nota em Modo de Edição.
É exatamente isso que quero fazer, adicionar uma assinatura que já tenho a todos os XML que serão importados nele, o que acontece é que o usuário sempre vai importar no Modo de Edição (nota ainda não assinada).
Como posso fazer isso?
Estou montando o XML com o JDOM, gostaria de colocar essa assinatura (já testei e consigo importar o XML de qualquer nota com ela):<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="#NFe35101002767116000186550010000000051011431550">
<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>EYS3m23M/jfNLpNZgq8qySiY1K4=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>InNSrNXRV/QskXHVf0xIcP2UQWkV9uOY8fmPn2kbIQ/dEJEYYmLb+5r4ZzWE9kvBoAn59sKoVQnf
CWXuSItcGEshP+y8cnfcCYKdnZDM1WWubjxeHEwkbY48xO7Mytr6FuTUYaenH4qzYnEsYKcX8ziU
Pk4YoXnLHnBlFzzH4Q0=
</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIGyDCCBbCgAwIBAgIQaEQiU2uSuWTc/Va5Fa/JmTANBgkqhkiG9w0BAQUFADB0MQswCQYDVQQG
EwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEtMCsGA1UECxMkQ2VydGlzaWduIENlcnRpZmljYWRv
cmEgRGlnaXRhbCBTLkEuMSEwHwYDVQQDExhBQyBDZXJ0aXNpZ24gTXVsdGlwbGEgRzMwHhcNMTAw
OTEzMDAwMDAwWhcNMTMwOTExMjM1OTU5WjCCAQ0xCzAJBgNVBAYTAkJSMRMwEQYDVQQKFApJQ1At
QnJhc2lsMRUwEwYDVQQLFAxJRCAtIDExNTA2MDExKTAnBgNVBAsUIEF1dGVudGljYWRvIHBvciBB
UiBGZWNvbWVyY2lvIFNQMRswGQYDVQQLFBJBc3NpbmF0dXJhIFRpcG8gQTMxFDASBgNVBAsUCyhF
TSBCUkFOQ08pMRQwEgYDVQQLFAsoRU0gQlJBTkNPKTEwMC4GA1UEAxMnTEFNSVBSSU5UIEFDQUJB
TUVOVE9TIEdSQUZJQ09TIExUREEgRVBQMSwwKgYJKoZIhvcNAQkBFh13YWduZXIubGFtaXByaW50
QHRlcnJhLmNvbS5icjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnj5bVJrzIqbz6POmAv12
WEB9R7P4w+tQfIcEqR6fexMc8awn++/iW6aYubOR8Y/frV+3KJ98nbZeRtmO56gtTFNcfFHxOIm/
rbZdTpzkpQEJZGl40fx+ArBsPEk3CEyUOcQREfS41ltH6qgjcSGcBawpCBCXNzCfqldum2tU21UC
AwEAAaOCAz0wggM5MIG4BgNVHREEgbAwga2gPQYFYEwBAwSgNAQyMzAwMzE5NzAwOTQwODQxNjgx
MzAwMDAwMDAwMDAwMDAwMDAwMDE4MjUzOTU2U1NQU1CgGQYFYEwBAwKgEAQOV0FHTkVSIEJFTExV
Q0mgGQYFYEwBAwOgEAQOMDI3NjcxMTYwMDAxODagFwYFYEwBAwegDgQMMDAwMDAwMDAwMDAwgR13
YWduZXIubGFtaXByaW50QHRlcnJhLmNvbS5icjAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFISwQjM0
o0IlpSiXPoPrd/DoT8JUMA4GA1UdDwEB/wQEAwIF4DCCASUGA1UdHwSCARwwggEYMFygWqBYhlZo
dHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29tLmJyL3JlcG9zaXRvcmlvL2xjci9BQ0NlcnRp
c2lnbk11bHRpcGxhRzMvTGF0ZXN0Q1JMLmNybDBboFmgV4ZVaHR0cDovL2ljcC1icmFzaWwub3V0
cmFsY3IuY29tLmJyL3JlcG9zaXRvcmlvL2xjci9BQ0NlcnRpc2lnbk11bHRpcGxhRzMvTGF0ZXN0
Q1JMLmNybDBboFmgV4ZVaHR0cDovL3JlcG9zaXRvcmlvLmljcGJyYXNpbC5nb3YuYnIvbGNyL0Nl
cnRpc2lnbi9BQ0NlcnRpc2lnbk11bHRpcGxhRzMvTGF0ZXN0Q1JMLmNybDBVBgNVHSAETjBMMEoG
BmBMAQIDBTBAMD4GCCsGAQUFBwIBFjJodHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29tLmJy
L3JlcG9zaXRvcmlvL2RwYzAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwgaAGCCsGAQUF
BwEBBIGTMIGQMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5jZXJ0aXNpZ24uY29tLmJyMGQGCCsG
AQUFBzAChlhodHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29tLmJyL3JlcG9zaXRvcmlvL2Nl
cnRpZmljYWRvcy9BQ19DZXJ0aXNpZ25fTXVsdGlwbGFfRzMucDdjMA0GCSqGSIb3DQEBBQUAA4IB
AQA9VSlws6m3K+kO69X5d/GTKSjULwveaRN0Yz8tb5dI0kOGooO/ND4ltmMyUZLv6YXfU3BBVRVb
NYd6iC0PUJe0DR4LlL99UOiPJtI/Y+9kCRmHjrZZfvn1qe1GMVhP1FhXY1xGqOscr/m7A9urbxr1
FpgSWVCeN61METKuUCk/pW5uc6FsRYzET1yB7TB1lLNRE83Z4S4fhXnDA+Mq9rrPvnsV1kUrA/GL
MBLTfEf0K+doAnwf2aqcwBoLlN1BoJFHRgJtwv2x4j9254bePxRfxxXMseUp6j1zWHtFRUK2Z2RS
JL0DuRvtAOOuVT5TCqSFC5sfU/xAqvOZ9DpWbW9y
</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
Element signature = new Element("Signature", Namespace.getNamespace("http://www.w3.org/2000/09/xmldsig#"));
Element signedInfo = new Element("SignedInfo");
signature.addContent( signedInfo );
Element canonicalizationMethod = new Element("CanonicalizationMethod");
canonicalizationMethod.setAttribute("Algorithm", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315");
signedInfo.addContent(canonicalizationMethod);
Element signatureMethod = new Element("SignatureMethod");
signatureMethod.setAttribute("Algorithm", "http://www.w3.org/2000/09/xmldsig#rsa-sha1");
signedInfo.addContent(signatureMethod);
Element reference = new Element("Reference");
Element transforms = new Element("Transforms");
transforms.addContent(new Element("Transform").setAttribute("Algorithm", "http://www.w3.org/2000/09/xmldsig#enveloped-signature") );
transforms.addContent(new Element("Transform").setAttribute("Algorithm", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315") );
reference.addContent(transforms);
reference.addContent(new Element("DigestMethod").setAttribute("Algorithm","http://www.w3.org/2000/09/xmldsig#sha1"));
reference.addContent(new Element("DigestValue","EYS3m23M/jfNLpNZgq8qySiY1K4="));
signedInfo.addContent(reference);
Element signatureValue = new Element("SignatureValue");
signature.addContent(signatureValue);
Element keyInfo = new Element("KeyInfo");
keyInfo.addContent(new Element("X509Data").addContent(new Element("X509Certificate","")));
signature.addContent(keyInfo);
NFe.addContent(signature);