nfephp-org / sped-efinanceira

API para comunicação com a Receita Federal, para atender aos requisitos do e-Financeira
Other
9 stars 19 forks source link

Autenticar XML #63

Closed batata004 closed 6 years ago

batata004 commented 6 years ago

Amigos li o cdigo inteiro porem nao encontrei exatamente a parte que faz a autenticacao do XML

Eu só preciso gerar a parte de autentiacao do xml e colocar dentro do xml pra enviar. onde que faco isso? Agradeco pela atencao!

robmachado commented 6 years ago

Autenticar ??? o que é autenticar para você ??

batata004 commented 6 years ago

Amigo antes de mais nada me perdoe pela minha falta de explicação. É que eu não conheco quase nada sobre certificacao digital e apesar de estar lendo bastante coisa ainda estou muito perdido.

Vou tentar ser mais claro: eu já tenho um XML prontinho com os dados da NFe que desejo emitir. Agora eu preciso APENAS gerar aquela parte do XML que autentica. Vou te dar um exemplo abaixo. Eu preciso apenas saber como gerar isso a partir da minha chave privada que está num arquivo *.pem.

Grato e me desculpe por não falar as coisas direito é que eu realmente não sei quase nada sobre esse assunto.


<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Sign-4.938194207420864E7">

                        <ds:SignedInfo>

                            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
                            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                            <ds:Reference Id="RefElement-3.496850484729869E7" URI="">
                            <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
                            </ds:Transforms>
                            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                            <ds:DigestValue>KsPAoHg2H0y/wSrrOGRihebcE/g=</ds:DigestValue>
                            </ds:Reference>

                        </ds:SignedInfo>

                        <ds:SignatureValue Id="SignatureValueID-7.454649528132233E7">
                        CkDFTzGt0+vgVIYy6t5V2uClQU/1hWwjwEG/L9r3kkOmE11dBggoKhdyVpVFAjFjB5kFSUc309Vl yZv4uIeD11kHcAVlxGQ8JiGiv6wLC37lNp9bfHl67lIK4cgVxJHMyyiyNduoH2Ingq+JLw+J8q5V Qpc/gUTesSeOtjarBLtY4D0om7eMPjPldgRfKpwSg9FdmgID1UlFcBH6JvyTrdVAcYLC0Et8KKAx oqULFRgqBuu9Vcax7n8LrJLzLJqsqrqVFNRakwaKBedbpXICAO+MFh2Aeq8wiCtfDqRQ2oo5ODo2 syFEnpzgsjsO85cLgq9p0M3G3VlpFoeRwQnlMA==
                        </ds:SignatureValue>
                        <ds:KeyInfo>

                            <ds:X509Data>

                                <ds:X509IssuerSerial>

                                    <ds:X509IssuerName>
                                    CN=AC Instituto Fenacon RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR
                                    </ds:X509IssuerName>
                                    <ds:X509SerialNumber>1c28f49fd377eec2a94602f988f1d180</ds:X509SerialNumber>

                                </ds:X509IssuerSerial>

                                <ds:X509Certificate>
                                MIIIPDCCBiSgAwIBAgIQXF4X2+PUuWBo7SmU1Tak7zANBgkqhkiG9w0BAQsFADCBgDELMAkGA1UE BhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEgZGEgUmVjZWl0 YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEkMCIGA1UEAxMbQUMgSW5zdGl0dXRvIEZlbmFjb24g UkZCIEczMB4XDTE3MDUyMjE3MDEyMFoXDTE4MDUyMjE3MDEyMFowggEEMQswCQYDVQQGEwJCUjET MBEGA1UECgwKSUNQLUJyYXNpbDELMAkGA1UECAwCU0MxFjAUBgNVBAcMDUZMT1JJQU5PUE9MSVMx NjA0BgNVBAsMLVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEW MBQGA1UECwwNUkZCIGUtQ05QSiBBMTE3MDUGA1UECwwuQXV0ZW50aWNhZG8gcG9yIEFSIFNlc2Nv biBHcmFuZGUgRmxvcmlhbm9wb2xpczEyMDAGA1UEAwwpTVVOSUNJUElPIERFIEZMT1JJQU5PUE9M SVM6ODI4OTIyODIwMDEyMDQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh2FregECm Sik4UErbxsVVZYdj/ttf07qidaB+XOtXHxSpipAmCwyqBzaiXKUFyfFDHXzrvmYiFj8TUJ28xVzd InDkRnyi4xSIEt2ZUAkurVVed13y5eKj/NUDpJMCfvBvaTgxDsPggoBvPRCYNK8PsiwsqeGvsvY2 f8JaRp3gdGVuVtC68/x+3jdMWBoIRLd3nPRdEhy2TF96ux7eqV4WUY4KL2fQAXJjQp1HPHjOPBTl J9t0igtJn/5UFFNw2HmG4VytMS1tk4Bg7oOPq9PgGiZhiHVTXiMFq9byB8/9rVrQH4RYO5rGX6L7 7RfDmFuaDCPklV86PBWymcamBvB9AgMBAAGjggMpMIIDJTCBswYDVR0RBIGrMIGooD0GBWBMAQME oDQEMjA5MTAxOTcyODIzMzQxOTY5OTEwMDAwMDAwMDAwMDAwMDAwMDAwMDc3ODQ5NVNTUFNDoCAG BWBMAQMCoBcEFUdFQU4gTUFSUVVFUyBMT1VSRUlST6AZBgVgTAEDA6AQBA44Mjg5MjI4MjAwMTIw NKAXBgVgTAEDB6AOBAwwMDAwMDAwMDAwMDCBEW5mZUBwbWYuc2MuZ292LmJyMAkGA1UdEwQCMAAw HwYDVR0jBBgwFoAUJseUPXqHfn9LeIqHPeDPtc6psNowgYYGA1UdIAR/MH0wewYGYEwBAgEiMHEw bwYIKwYBBQUHAgEWY2h0dHA6Ly9pY3AtYnJhc2lsLmFjZmVuYWNvbi5jb20uYnIvcmVwb3NpdG9y aW8vZHBjL0FDLUluc3RpdHV0by1GZW5hY29uLVJGQi9EUENfQUNfSUZlbmFjb25fUkZCLnBkZjCB ygYDVR0fBIHCMIG/MF6gXKBahlhodHRwOi8vaWNwLWJyYXNpbC5hY2ZlbmFjb24uY29tLmJyL3Jl cG9zaXRvcmlvL2xjci9BQ0luc3RpdHV0b0ZlbmFjb25SRkJHMy9MYXRlc3RDUkwuY3JsMF2gW6BZ hldodHRwOi8vaWNwLWJyYXNpbC5vdXRyYWxjci5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDSW5z dGl0dXRvRmVuYWNvblJGQkczL0xhdGVzdENSTC5jcmwwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQW MBQGCCsGAQUFBwMCBggrBgEFBQcDBDCBuwYIKwYBBQUHAQEEga4wgaswZgYIKwYBBQUHMAKGWmh0 dHA6Ly9pY3AtYnJhc2lsLmFjZmVuYWNvbi5jb20uYnIvcmVwb3NpdG9yaW8vY2VydGlmaWNhZG9z L0FDX0luc3RpdHV0b19GZW5hY29uX1JGQkczLnA3YzBBBggrBgEFBQcwAYY1aHR0cDovL29jc3At YWMtaW5zdGl0dXRvLWZlbmFjb24tcmZiLmNlcnRpc2lnbi5jb20uYnIwDQYJKoZIhvcNAQELBQAD ggIBAERKrUntRX36Ar6JbK5ieGFvGU7D1OXAl3EQ8ACVTS9x9m2w03PU1f9SxFx5eyEtw5PTibQB THidvzGqYadUwogG0g5VQamnRUHyk9uSjmi8KpmbI5wX4G7Md+y5jqu2DRcwUWlko2FCEAk/x54L zplIY99MDDH1+Tawbj8PXbhZk2dzFrJXwLu+is6RyI9LwwJwLyWyeWzyuBI0WUYLE7jD3PgDO95b 4QTqDgNkd2dLaaUwk09L0BFPSMiPVavkW7BhkkXNtzC9S5p+Pk2qK67PVC7fFT4IyOg3+T4qPczp hY7eUKocLDU0vaP6iiMkxg5d1/hEbKT0KfoZLk5loy88BgdKMAHZkKFOPTnpMJYZA46UCj2dQG15 lM4nSGmwiwLY6UER1lxQe1NR2KRH65OAwDuGnapCoQqPNmycMC8DrZI/YL3nCY9UI5DUhb86Jhgx gdeBkMpdNe6Gx2NBLe/j46OAs+QqzW0fjkyd6NWLGVQVj18zR3EmqRF0UnV1uAkHUzPBgDfCN87y TwpN9byhROi2mVJ5sav3R3l7U1KYXnZXzkiM6NHrj/wgx3DtHmzdl+fGlGKI5rOIjYLyHS+cUF5e qPMLAgjE5X2w0Tdn8A33A/lQzoCszBMqZt+tuvFyqmeKYZrNi+b3ASsCPMclrcO5Zy5VBvsJL3s+ nqWN
                                </ds:X509Certificate>

                            </ds:X509Data>

                        </ds:KeyInfo>

                    </ds:Signature>
robmachado commented 6 years ago

Bom primeiro ... NFe é em outro projeto !!! aqui lidamos com o eFinanceira O que você quer é fazer uma assinatura digital no XML (não sei do que), para responder eu teria de ter detalhes dessa assinatura e não vou explicar para você pois o assunto não é RÁPIDO tipo faz isso e tá pronto. Essa assinatura é uma construção sobre o XML, em poucas palavras você pega o NODE que quer assinar, canoniza conforme especificado, gera o HASH desse bloco de dados canonizado usando o SHA1, passa isso para base64 e com isso você tem o DIGEST que tá ai no seu exemplo, com esse DIGEST você usa a chave privada do seu certificado para criar a assinatura depois constrói esse NODE inteiro com esses dados e outros que você tem que puxar do certificado (chave publica) e coloca ele no local indicado no XML.