Nueva pregunta

Pregunta:

Fecha: 27-01-2018 06:28:16 (En Español)

Como firmar xml : calcular signaturevalue con php ??[No resuelta]

Estimados buenos días, tengo un archivo xml con el valor del digestvalue correcto, el problema es que no logro hace el firmado, es decir el valor de "<SignatureValue><!-- firma --></SignatureValue>".
alguien podria orientarme sobre que debo firmar exactamente.
Debo firmar todo el <Signature>, o solo el <SignedInfo> o tal vez solo el <digestvalue> ?.

Agradezco sus comentarios.

<Signature Id="signatureKG" 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" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>GicstM2TQwO141EJQtV4mRWixMg=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue><!-- firma --></SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate></X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
Etiquetas: Votos: 0 - Respuestas: 2 - Vistas: 23 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 22-02-2018 10:21:58 lo lograste?   Votos: 0 - Link respuesta
     
  • Fecha: 27-03-2018 10:43:07 hola,

    $txtcertificado = file_get_contents($url_ubicacion_certificado); //leer archivo pfx
    // nota este valor es ilegible

    openssl_pkcs12_read($txtcertificado, $certificado, $clave_certificado) //sacar información del pfx

    $datos_certificado = openssl_x509_parse($certificado);//obtengo datos del certificado

    $txt_a_firmar = '<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod><Reference URI="#'.$dte_iden.'"><Transforms><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></Transform>'.'</Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod><DigestValue>'.$dte_dg.'</DigestValue></Reference></SignedInfo>';

    openssl_sign(txt_a_firmar, $firma, $datos_certificado ["pkey"], OPENSSL_ALGO_SHA1);
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com