Foros de consultas y discusión

Problema al integrarse contra el servicio de firma de coesys

Diego Menendez, modificado hace 6 años.

Problema al integrarse contra el servicio de firma de coesys

Youngling Mensajes: 7 Fecha de incorporación: 12/06/17 Mensajes recientes
Estoy intentando realizar la integración con la implementanción de referencia, con el certificado enviado por AGESIC luego de enviado el formulario de solicitud, pero estoy teniendo el siguiente problema con el keystore que configure:

com.gemalto.ics.rnd.egov.dss.sdk.exception.KeyStoreException: java.io.IOException: stream does not represent a PKCS12 key store
2017-06-12 15:56:07.706  INFO 2611 --- [nio-8080-exec-2] u.com.agesic.firma.RequestDSSController  : BB387B29C66557B8D56A094A687555A4 NO PUDO SUBIR EL ARCHIVO


Qué keystore configuro? Lo tengo que generar ? 


keystore.route=/home/local/DOMST/dmenendez/Desktop/esign-releases/certs/AGESIC-COESYS-DSS-TESTING.cer
Rodrigo Bermudez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Hola Diego,

Pediste a soporte que te dieran de alta en el DSS de COESYS de TEST? Al igual que el IdP para autenticación te tienen que dar de alta como Service Provider y agregar tu certificado público.
Una vez hecho esto create un keystore con tu clave privada para firmar (puede ser autogenerada para TEST, lo importante es que en el paso previo le hayas pasado tu certificado público para que lo agreguen a COESYS y te valide la firma)

Luego, yendo al error que colocas, estás usando un certificado y no un keystore para firmar, acá deberías generarte un keystore con tu clave privada y referenciarlo. Una buena herramienta para generarte un keystore es el keystore explorer. Si no lo podes hacer utilizando openssl desde la consola.

Saludos!
​​​​​​​Rodrigo
Diego Menendez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Youngling Mensajes: 7 Fecha de incorporación: 12/06/17 Mensajes recientes
Hola Rodrigo.

Generé mi Keystore y volví a ejecutar la aplicación.

Ahora estoy teniendo el siguiente problema:

com.gemalto.ics.rnd.egov.dss.sdk.exception.KeyStoreException: java.io.IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC
    at com.gemalto.ics.rnd.egov.dss.sdk.create.key.JCAKeyStoreSignatureKeyService.init(JCAKeyStoreSignatureKeyService.java:51)
    at com.gemalto.ics.rnd.egov.dss.sdk.create.key.JCAKeyStoreSignatureKeyService.<init>(JCAKeyStoreSignatureKeyService.java:42)
    at uy.com.agesic.firma.RequestDSSController.handleFileUpload(RequestDSSController.java:111)

Al ejecutar la siguiente línea:

JCAKeyStoreSignatureKeyService jcaKeyStoreSignatureKeyService = new JCAKeyStoreSignatureKeyService("BC","PKCS12", ks, keyStoreKey, keyStoreAlias);

Qué podrá ser? Puede que los jars de gemalto no estén autofirmados?
Gracias 
Saludos.
thumbnail
Nicolas Piquerez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Padawan Mensajes: 62 Fecha de incorporación: 3/10/16 Mensajes recientes
Como andas Diego? El Bouncy Castle es una libreria de criptografía que a veces se pone media "mimosa". Lo mejor es instalarla en al maquina virtual directamente, van los pasos:

INSTALAR BOUNCY CASTLE EN JAVA

Se debe de tener instalado el provider Bouncy Castle para la Java Cryptography Extension and the Java Cryptography Architecture. Esto tanto para la JDK como la jre (dependiendo el sistema pueden estar separadas)

Ir al sitio de BouncyCastle y buscar la libreria adecuada para JDK, en este caso v1.56 (descargar aquí)/
Ir a directorio de JDK/jre
Buscar el archivo de propiedades de seguridad situado en    $JAVA_HOME/jre/lib/security/java.security
Agregar linea al final con:
security.provider.N=org.bouncycastle.jce.provider.BouncyCastleProvider

Donde N es uno mas que el último numero de la lista

Agregar libreria a /lib/ext 



Creo que viene por ahi la mano, contame despues de esto como te fue.

​​​​​​​Saludos
Diego Menendez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Youngling Mensajes: 7 Fecha de incorporación: 12/06/17 Mensajes recientes
Hola! Pude pasar dicho problema.

Ahora tengo otro. Al intentar integrarme me está dando el siguiente mensaje:

"Operation failedThe identity of the requester is unknown.N/A"

Supuestamente ya estoy dado de alta en Coesys. 

Hay manera de chequear en los logs del servicio que está pasando?

Este es el SignRequest que armo:

<?xml version="1.0" encoding="UTF-8"?>
<dss:SignRequest xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" Profile="urn:gemalto:dss:profiles:cades" RequestID="0.9271639871877586">
   <dss:OptionalInputs>
      <dss:ClaimedIdentity>
         <dss:Name Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://apia.statum.biz/ApiaDocumentum</dss:Name>
         <dss:SupportingInfo>
            <SignResponseConsumerURL xmlns="urn:oasis:names:tc:dssx:1.0:profiles:gemalto:demo">http://apia.statum.biz/ApiaDocumentum/dss.response</SignResponseConsumerURL>
         </dss:SupportingInfo>
      </dss:ClaimedIdentity>
      <dss:SignatureType>urn:etsi:ts:102:778</dss:SignatureType>
      <demo:SignatureMethods xmlns:demo="urn:oasis:names:tc:dssx:1.0:profiles:gemalto:demo">
         <demo:SignatureMethod>SmartCard</demo:SignatureMethod>
      </demo:SignatureMethods>
      <ades:SignatureForm xmlns:ades="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#">urn:oasis:names:tc:dss:1.0:profiles:AdES:forms:BES</ades:SignatureForm>
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
         <SignedInfo>
            <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" />
            <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
            <Reference URI="">
               <Transforms>
                  <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
               </Transforms>
               <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
               <DigestValue>ZAwkMzgmPDF6JJZnXtZbnuFobguXLxZPfdbFN2w4f/0=</DigestValue>
            </Reference>
         </SignedInfo>
         <SignatureValue>mQAe6xo7+70xisxfk68nOrJFnr3gmBqynUORUwodKnFZu24gVbARpnbMkd4jFpA2vp9dUqzLOiXS
lAY3OqtKD9VHdP8uGCK38PSifBZAIWa6Y0wvqmC0H+VDYmDKqPc3Gp/FzjuAzn062RCe/bO/n76Q
LDU4Oq5icZgv607p6+vnzb/aErJ9bV9AR4UswvEDMV8JjWrpFRAiaVPuUsNQ02yMIVgz/QRUHMUP
E6JjjLBPiM2zMWebqTjtd77okDaxqSDUNlhjODk6DBw0snrTR2TUX1iNhGK9n5JJw0OR1ZwstNbE
J+lt3nh58vP8M3Iy5rM6350s2RNOZkY9K+nq8Q==</SignatureValue>
         <KeyInfo>
            <X509Data>
               <X509Certificate>MIIDvDCCAqQCCQDRts/WEBQeSzANBgkqhkiG9w0BAQsFADCBnzELMAkGA1UEBhMCVVkxEzARBgNV
BAgMCk1PTlRFVklERU8xEzARBgNVBAcMCk1PTlRFVklERU8xFzAVBgNVBAoMDlNUIENPTlNVTFRP
UkVTMRMwEQYDVQQLDApERVNBUlJPTExPMRMwEQYDVQQDDApERVNBUlJPTExPMSMwIQYJKoZIhvcN
AQkBFhRlcm9kcmlndWV6QHN0LmNvbS51eTAeFw0xNzA1MDQxNDM4MTNaFw0yMTA1MDQxNDM4MTNa
MIGfMQswCQYDVQQGEwJVWTETMBEGA1UECAwKTU9OVEVWSURFTzETMBEGA1UEBwwKTU9OVEVWSURF
TzEXMBUGA1UECgwOU1QgQ09OU1VMVE9SRVMxEzARBgNVBAsMCkRFU0FSUk9MTE8xEzARBgNVBAMM
CkRFU0FSUk9MTE8xIzAhBgkqhkiG9w0BCQEWFGVyb2RyaWd1ZXpAc3QuY29tLnV5MIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp/jaLJFKI1bhnNQ3AuoOB2gbxViwvq80oT/p8BrlhX63
PUFvjj/ZyZsQcyFpn+591+Sx2j69tQk1dNI2tvd7mONSoAtZsak6Klnp/I8IPireTlZCADxsJMzy
BD3FFztpo+ohRHMcxEvr4JERfLKBxqV6GskuewuhEyicJZXsFs6YyHxtpuwOPNoyQ/FQJbwOopgU
m1beyPJUt0Rx1ab1VW/8idv1NDhzJCVJVvUSylFvEO5JeIA3md+FKiwHIrLDNPcIh6mzGtZjYMdL
P2HbZb2Z3Vowk3nf4chBNq5VciQ1eyORabcbU+Dd64n2RTmbvYepuXc618BKBpWmu+4UsQIDAQAB
MA0GCSqGSIb3DQEBCwUAA4IBAQA0F6sZMTchrPfLc8sbGujyjE8f/UNCn/cgzmugZxQJBkLAFrR0
L0DBbhpJmTMCscQqZv57XVku5Mjpcg2EWa5gJhIxp8JJ/GQHkTlZnjorZVNYVOmhQpO8qt7fXTtk
SGrz1h0QzUhWbBw5CfhwguLLeQ+iR7AFJy+gXkAFqiKFiJ/tM5UaURZ6OzXdUXZbjt5vbiGvjEsj
dbY9Z6kDaoPwGcKB5VlE6fVzc8c/iluDgzLrwsuOvVt8j2rasT9kvz8Bd36GDU7YcRdaSk2Nq6+p
JkFOvQlJhCklLwiKFW3ROen2uaxKANOnsvzjaiaX/KaYpzJxrEymS6EMaFPO2ise</X509Certificate>
            </X509Data>
         </KeyInfo>
      </Signature>
   </dss:OptionalInputs>
   <dss:InputDocuments>
      <dss:Document>
         <dss:Base64Data MimeType="application/pdf">L2hvbWUvbG9jYWwvRE9NU1QvZG1lbmVuZGV6L0Rlc2t0b3AvUmVwb3NpdG9yaW8gRGllZ28vUHJlZ3VudGFzQ2FwaXR1bG82LnBkZg==</dss:Base64Data>
      </dss:Document>
   </dss:InputDocuments>
</dss:SignRequest>
thumbnail
Nicolas Piquerez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Padawan Mensajes: 62 Fecha de incorporación: 3/10/16 Mensajes recientes
Diego, estan dados de alta con el ID "apia.statum" , deberías poner eso en el ClaimedIdentity


​​​​​​​Saludos
Alexis Rosano, modificado hace 5 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Youngling Mensajes: 2 Fecha de incorporación: 2/08/18 Mensajes recientes
Hola!

Aprovecho este hilo para hacer una consulta acerca del armado del SignRequest.

Entiendo que el SignRequest armado por Diego Menendez  es correcto.

De acuerdo a un ejemplo, tengo este XML para firmar archivos PDF:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<dss:SignRequest xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" Profile="urn:gemalto:dss:profiles:cades" RequestID="0.10351272094083208">
    <dss:OptionalInputs>
        <dss:ClaimedIdentity><dss:Name Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">sp-sdk-example</dss:Name><dss:SupportingInfo><SignResponseConsumerURL xmlns="urn:oasis:names:tc:dssx:1.0:profiles:gemalto:demo">http://localhost:8080/sp-sdk-example/client/response</SignResponseConsumerURL></dss:SupportingInfo></dss:ClaimedIdentity>
        <dss:SignatureType>urn:etsi:ts:102:778</dss:SignatureType>
        <demo:SignatureMethods xmlns:demo="urn:oasis:names:tc:dssx:1.0:profiles:gemalto:demo"><demo:SignatureMethod>SmartCard</demo:SignatureMethod></demo:SignatureMethods>
        <ades:SignatureForm xmlns:ades="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#">urn:oasis:names:tc:dss:1.0:profiles:AdES:forms:BES</ades:SignatureForm>
        <dss:Properties><dss:SignedProperties>
            <dss:Property><dss:Identifier>urn:oasis:names:tc:dss:1.0:profiles:AdES:SigningTime</dss:Identifier><dss:Value/></dss:Property>
            <dss:Property><dss:Identifier>urn:oasis:names:tc:dss:1.0:profiles:AdES:DataObjectFormat</dss:Identifier><dss:Value><ades:RequestedDocsFormat xmlns:ades="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#"><ades:BinaryValue>MAQGAioD</ades:BinaryValue></ades:RequestedDocsFormat></dss:Value></dss:Property>
            <dss:Property><dss:Identifier>urn:oasis:names:tc:dss:1.0:profiles:AdES:CommitmentTypeIndication</dss:Identifier><dss:Value><ades:RequestedCommitment xmlns:ades="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#"><ades:BinaryValue>MAYGBCoDBAU=</ades:BinaryValue></ades:RequestedCommitment></dss:Value></dss:Property>
            <dss:Property><dss:Identifier>urn:oasis:names:tc:dss:1.0:profiles:AdES:SignatureProductionPlace</dss:Identifier><dss:Value><ades:RequestedSignatureProductionPlace xmlns:ades="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#"><ades:BinaryValue>MA2gCwwJQW55IHBsYWNl</ades:BinaryValue></ades:RequestedSignatureProductionPlace></dss:Value></dss:Property>
            <dss:Property>
                <dss:Identifier>urn:oasis:names:tc:dss:1.0:profiles:AdES:SignerRole</dss:Identifier>
                <dss:Value><ades:RequestedSignerRole xmlns:ades="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#"><ades:BinaryValue>MBygGjAYMBYGByoDBAUGBwgxCwwJQW55IHZhbHVl</ades:BinaryValue></ades:RequestedSignerRole></dss:Value></dss:Property>
        </dss:SignedProperties></dss:Properties>
        <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><DigestValue>0GmdYzpg7I+IA5qnu4Gco/vP0SXWzh0hYximUyrwSnc=</DigestValue></Reference></SignedInfo><SignatureValue>YRJQM6xu6z4u1fcx9hFiwS1dtqIEt3n2Lr80TCqqgcmVJNqc2dA4d7gM/g1yQ3WSm0d9c8JGk7v4
a8cKx6NQjiOfnSUwaJFj3DbGxhqsWIfqRHWxIwVjwwwRNz2ArfjnG3onGKAZXjs7+ATUb8oEpvUb
qC/rkeIPyKEPWcBH9Q8=</SignatureValue><KeyInfo><X509Data>
                <X509Certificate>MIIBlTCB/6ADAgECAgEBMA0GCSqGSIb3DQEBBQUAMBAxDjAMBgNVBAMMBWxpbmsyMB4XDTE0MDUx
                OTE2Mzg1NloXDTE5MDUxOTE2MzkwNlowEjEQMA4GA1UEAwwHc2lnbmluZzCBnzANBgkqhkiG9w0B
                AQEFAAOBjQAwgYkCgYEAne5Z8HFAkNzIQtCwr7M9idQeYBy8nbSX3aV+Q7nB/Y4LgWqYBFqah9vk
                SGabQKhcR+Xo2gV9ik331WaxwnuIsHPz7SOm+bI79ZBfq+/7NWPVFgAUB8jyhaDVmK26SHxPTpA+
                +CgrFJEokOi+qOvxYyibY1LDDN/4SCfn6BWWq88CAwEAATANBgkqhkiG9w0BAQUFAAOBgQARozNY
                uiRfnfDeNjiB1lPdmJQmsEqq+faPv99vPUaxb3lvFbWpgEQ+xkJ5agPKV6JLgo6N9o16LIw8NH9p
                Fw5/JivVtm3EXb63NZHcpRSz2Mk0g3zVSiPZtS4vNjc5EGODTsGn0i9EasE8Qkczh8oyNuyjRV7t
                xZ5/6vDRl1vevQ==</X509Certificate>
</X509Data></KeyInfo></Signature></dss:OptionalInputs>
<dss:InputDocuments><dss:Document><dss:Base64Data MimeType="application/pdf">JVBERi0xLjUNCiW………8OUIwNDc2MEUwQ0YzQUM0OTgwODQwMDhFNDUzNkVFQzc+XSAvUHJldiAxNjEyNjYvWFJlZlN0bSAxNjA5NjQ+Pg0Kc3RhcnR4cmVmDQoxNjE5NDQNCiUlRU9G</dss:Base64Data></dss:Document>
</dss:InputDocuments></dss:SignRequest>

En particular, por qué en un caso se utiliza un tag SignatureForm y en otro SignedProperties, ya que en realidad en ambos casos se quieren firmar PDFs.

Mi ambiente: Estoy trabajando con GX para el Poder Judicial y estamos implementando la firma de documentos PDF a partir del documento electrónico.

Muchas gracias por la ayuda!

Diego MenendezHola! Pude pasar dicho problema.

Ahora tengo otro. Al intentar integrarme me está dando el siguiente mensaje:

"Operation failedThe identity of the requester is unknown.N/A"

Supuestamente ya estoy dado de alta en Coesys. 

Hay manera de chequear en los logs del servicio que está pasando?

Este es el SignRequest que armo:

<?xml version="1.0" encoding="UTF-8"?>
<dss:SignRequest xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" Profile="urn:gemalto:dss:profiles:cades" RequestID="0.9271639871877586">
   <dss:OptionalInputs>
      <dss:ClaimedIdentity>
         <dss:Name Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://apia.statum.biz/ApiaDocumentum</dss:Name>
         <dss:SupportingInfo>
            <SignResponseConsumerURL xmlns="urn:oasis:names:tc:dssx:1.0:profiles:gemalto:demo">http://apia.statum.biz/ApiaDocumentum/dss.response</SignResponseConsumerURL>
         </dss:SupportingInfo>
      </dss:ClaimedIdentity>
      <dss:SignatureType>urn:etsi:ts:102:778</dss:SignatureType>
      <demo:SignatureMethods xmlns:demo="urn:oasis:names:tc:dssx:1.0:profiles:gemalto:demo">
         <demo:SignatureMethod>SmartCard</demo:SignatureMethod>
      </demo:SignatureMethods>
      <ades:SignatureForm xmlns:ades="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#">urn:oasis:names:tc:dss:1.0:profiles:AdES:forms:BES</ades:SignatureForm>
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
         <SignedInfo>
            <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" />
            <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
            <Reference URI="">
               <Transforms>
                  <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
               </Transforms>
               <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
               <DigestValue>ZAwkMzgmPDF6JJZnXtZbnuFobguXLxZPfdbFN2w4f/0=</DigestValue>
            </Reference>
         </SignedInfo>
         <SignatureValue>mQAe6xo7+70xisxfk68nOrJFnr3gmBqynUORUwodKnFZu24gVbARpnbMkd4jFpA2vp9dUqzLOiXS
lAY3OqtKD9VHdP8uGCK38PSifBZAIWa6Y0wvqmC0H+VDYmDKqPc3Gp/FzjuAzn062RCe/bO/n76Q
LDU4Oq5icZgv607p6+vnzb/aErJ9bV9AR4UswvEDMV8JjWrpFRAiaVPuUsNQ02yMIVgz/QRUHMUP
E6JjjLBPiM2zMWebqTjtd77okDaxqSDUNlhjODk6DBw0snrTR2TUX1iNhGK9n5JJw0OR1ZwstNbE
J+lt3nh58vP8M3Iy5rM6350s2RNOZkY9K+nq8Q==</SignatureValue>
         <KeyInfo>
            <X509Data>
               <X509Certificate>MIIDvDCCAqQCCQDRts/WEBQeSzANBgkqhkiG9w0BAQsFADCBnzELMAkGA1UEBhMCVVkxEzARBgNV
BAgMCk1PTlRFVklERU8xEzARBgNVBAcMCk1PTlRFVklERU8xFzAVBgNVBAoMDlNUIENPTlNVTFRP
UkVTMRMwEQYDVQQLDApERVNBUlJPTExPMRMwEQYDVQQDDApERVNBUlJPTExPMSMwIQYJKoZIhvcN
AQkBFhRlcm9kcmlndWV6QHN0LmNvbS51eTAeFw0xNzA1MDQxNDM4MTNaFw0yMTA1MDQxNDM4MTNa
MIGfMQswCQYDVQQGEwJVWTETMBEGA1UECAwKTU9OVEVWSURFTzETMBEGA1UEBwwKTU9OVEVWSURF
TzEXMBUGA1UECgwOU1QgQ09OU1VMVE9SRVMxEzARBgNVBAsMCkRFU0FSUk9MTE8xEzARBgNVBAMM
CkRFU0FSUk9MTE8xIzAhBgkqhkiG9w0BCQEWFGVyb2RyaWd1ZXpAc3QuY29tLnV5MIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp/jaLJFKI1bhnNQ3AuoOB2gbxViwvq80oT/p8BrlhX63
PUFvjj/ZyZsQcyFpn+591+Sx2j69tQk1dNI2tvd7mONSoAtZsak6Klnp/I8IPireTlZCADxsJMzy
BD3FFztpo+ohRHMcxEvr4JERfLKBxqV6GskuewuhEyicJZXsFs6YyHxtpuwOPNoyQ/FQJbwOopgU
m1beyPJUt0Rx1ab1VW/8idv1NDhzJCVJVvUSylFvEO5JeIA3md+FKiwHIrLDNPcIh6mzGtZjYMdL
P2HbZb2Z3Vowk3nf4chBNq5VciQ1eyORabcbU+Dd64n2RTmbvYepuXc618BKBpWmu+4UsQIDAQAB
MA0GCSqGSIb3DQEBCwUAA4IBAQA0F6sZMTchrPfLc8sbGujyjE8f/UNCn/cgzmugZxQJBkLAFrR0
L0DBbhpJmTMCscQqZv57XVku5Mjpcg2EWa5gJhIxp8JJ/GQHkTlZnjorZVNYVOmhQpO8qt7fXTtk
SGrz1h0QzUhWbBw5CfhwguLLeQ+iR7AFJy+gXkAFqiKFiJ/tM5UaURZ6OzXdUXZbjt5vbiGvjEsj
dbY9Z6kDaoPwGcKB5VlE6fVzc8c/iluDgzLrwsuOvVt8j2rasT9kvz8Bd36GDU7YcRdaSk2Nq6+p
JkFOvQlJhCklLwiKFW3ROen2uaxKANOnsvzjaiaX/KaYpzJxrEymS6EMaFPO2ise</X509Certificate>
            </X509Data>
         </KeyInfo>
      </Signature>
   </dss:OptionalInputs>
   <dss:InputDocuments>
      <dss:Document>
         <dss:Base64Data MimeType="application/pdf">L2hvbWUvbG9jYWwvRE9NU1QvZG1lbmVuZGV6L0Rlc2t0b3AvUmVwb3NpdG9yaW8gRGllZ28vUHJlZ3VudGFzQ2FwaXR1bG82LnBkZg==</dss:Base64Data>
      </dss:Document>
   </dss:InputDocuments>
</dss:SignRequest>
Diego Menendez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Youngling Mensajes: 7 Fecha de incorporación: 12/06/17 Mensajes recientes
Nicolas, aparentemente funcionó.

Estoy teniendo el siguiente problema, este es el SignResponse:

Qué será?


<?xml version="1.0" encoding="UTF-8"?>
<ns5:SignResponse xmlns:ns5="urn:oasis:names:tc:dss:1.0:core:schema" xmlns="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#" xmlns:ns2="http://uri.etsi.org/01903/v1.3.2#" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#" xmlns:ns4="urn:gemalto:names:tc:dss:pades:1.0:schema" xmlns:ns6="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ns7="urn:oasis:names:tc:dssx:1.0:profiles:gemalto:demo" Profile="urn:gemalto:dss:profiles:cades" RequestID="0.35061016047610594">
   <ns5:Result>
      <ns5:ResultMajor>urn:oasis:names:tc:dss:1.0:resultmajor:RequesterError</ns5:ResultMajor>
      <ns5:ResultMinor>urn:oasis:names:tc:dss:1.0:resultminor:MessageValidationError</ns5:ResultMinor>
      <ns5:ResultMessage xml:lang="eng">VAL100: PdfFormatValidator</ns5:ResultMessage>
   </ns5:Result>
   <OptionalOutputs xmlns="urn:oasis:names:tc:dss:1.0:core:schema">
      <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
         <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
            <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
            <ds:Reference URI="">
               <ds:Transforms>
                  <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                  <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" />
               </ds:Transforms>
               <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
               <ds:DigestValue>qgWxsJnlxZnygUMVTKmUOlinK/rUETFJz9QcNSAgSc4=</ds:DigestValue>
            </ds:Reference>
         </ds:SignedInfo>
         <ds:SignatureValue>GfA5RIg8yesmQiVXZcgbg+uyFc9vut3ANKP21ucB1d3dM/XgWi+l08YUAEfTBJrFMYEr46hGSYCR
iHldwIHpYmFnQ4X1KvJefP5rIntp9mBI6PodNrOf81/ttGblhkNRhb3b1kMrnwca7QogG8j8mBvD
BNIT9t4kVCB4h9iFpTIo6TzVi/z2w/M08BHGcc6fGBpQApesQxBYQMHK4O5f5pDTnxBDeeGEOldt
21MC+IaWzkWJXeb1IJ1Yj88tsG8PAUZEbMhqimo4ztSjJuJd+A1qQhb2xlvu3WCCMjljy+gt0VK/
5/MsJ9+KTQcPsD3W9pfOdI8QuJFOO4efKNzhMg==</ds:SignatureValue>
         <ds:KeyInfo>
            <ds:X509Data>
               <ds:X509Certificate>MIIGnDCCBISgAwIBAgIUAUPFuYlN4BENUkKY0c9sTXuAEU4wDQYJKoZIhvcNAQELBQAwWjEdMBsG
A1UEAxMUQ29ycmVvIFVydWd1YXlvIC0gQ0ExLDAqBgNVBAoMI0FkbWluaXN0cmFjacOzbiBOYWNp
b25hbCBkZSBDb3JyZW9zMQswCQYDVQQGEwJVWTAeFw0xNzA0MDYxODQ5MDJaFw0xOTA0MDYxODQ5
MDJaMIHHMRgwFgYDVQQFEw9SVUMyMTU5OTYwNjAwMTUxCzAJBgNVBAYTAlVZMXoweAYDVQQKE3FB
R0VOQ0lBIFBBUkEgRUwgREVTQVJST0xMTyBERUwgR09CSUVSTk8gREUgR0VTVElPTiBFTEVDVFJP
TklDQSBZIExBIFNPQ0lFREFEIERFIExBIElORk9STUFDSU9OIFkgREVMIENPTk9DSU1JRU5UTzEi
MCAGA1UEAxMZQUdFU0lDLUNPRVNZUy1EU1MtVEVTVElORzCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAItRiulQW83nuJ9yuASrPKAzIzTzmXrWPNf4zFfYkLAmDbntdOcXqfuUglWKCm1e
nnsRNLeVf0qDc2jh6wpV8dDtFokJ1If+urfAUqyCvXMRxlxpaQYdKGgINZduZ98LdudE64Zi7O2N
jXM5DAqJE7tBddf9Nc8KF8q/oVqDP+LcJADrN3ndFHvzbfIfkxqbwe/RlrTAhLjd0pQepxFErBv2
G5sNxWjffXx8/S0QBS3T9Oi1LMXQmB4s3S484Guw5WYX3V8t21avF0gcoBJIZtbYs/CmEMflBSqY
XI8o33mGvMqWgEA4TNxLWMkmtiUtlFYTslLPwnxPlk/ptd243i0CAwEAAaOCAeowggHmMHkGCCsG
AQUFBwEBBG0wazA2BggrBgEFBQcwAoYqaHR0cDovL2FuY2NhLmNvcnJlby5jb20udXkvYW5jY2Ev
YW5jY2EuY2VyMDEGCCsGAQUFBzABhiVodHRwOi8vYW5jY2EuY29ycmVvLmNvbS51eS9hbmNjYS9P
Q1NQMA4GA1UdDwEB/wQEAwIE8DAMBgNVHRMBAf8EAjAAMDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6
Ly9hbmNjYS5jb3JyZW8uY29tLnV5L2FuY2NhL2FuY2NhLmNybDCBuAYDVR0gBIGwMIGtMGQGC2CG
WoTirh2EiAUEMFUwUwYIKwYBBQUHAgEWR2h0dHA6Ly91Y2UuZ3ViLnV5L2luZm9ybWFjaW9uLXRl
Y25pY2EvcG9saXRpY2FzL2NwX3BlcnNvbmFfanVyaWRpY2EucGRmMEUGC2CGWoTirh2EiAUGMDYw
NAYIKwYBBQUHAgEWKGh0dHA6Ly9hbmNjYS5jb3JyZW8uY29tLnV5L2FuY2NhL2Nwcy5wZGYwEwYD
VR0lBAwwCgYIKwYBBQUHAwIwHQYDVR0OBBYEFBaHhT4vJ/KjNruUEtfKby3mtGzmMB8GA1UdIwQY
MBaAFGzisCaNW9YmCB+YXWngDn9V7K52MA0GCSqGSIb3DQEBCwUAA4ICAQDA6jIsjUiG4WN3hFLP
ZZtH7dWAeXRPpv06Pa0bKYydwNV7KKfsm8w5Jfes+GjVuo+ch0yaNAd2H94VR79zLxCfLUD48WXl
pm9x5b0bG45GVHpPDZmhbeBEIxUBoG8MW8VhfoT8DzXsdjoWl0mw5f9OPMxzbIP2on3HEbD799io
9I5vlssqsv2L06Z+MxKeTiyaiX7IiHPXi3u/SJD4nJln4CQOfX0MBcs+tPBeh6E+zk0DelCRGkB3
J9qLnSiELJb/6Bdag5Zs6ifYANpd71t+p6czJd/u/BGx2uYBR/AM4Vspo5sP6LS4cVaDKi+RoKzS
tUbrVVu44IgMYorAY2A5U6cEYL6Np7d9oCioAJUsqNEjTU0l7DM0HfcJDfmX+nzXHkpjlq4ICPx9
V+fKMMYa6zlohsTU69oKH1MhQBUJ7R1dO5apovVpxwJ7WnFPvnW7kCk5wwLBS2etqwC4Alncoyga
wAfQiLOtZcKPZqRJBcyuHn22eGVTipZcYWAQXnb59+nnqdlIQG/VlKIziItDIYBt/VvdTmoXD1Q5
E9RTZKvBRJFmFDQEzt1WVcNOUH0bIYpxBQHcN9HBAbpudEcjt4KW20i0PZAiKletmn/edC3fn+Iv
RPK59/vR5AhiV6PgagKn5LKzrzzzTT4ro69T/+6tuXmLxSHpfDuVZ9TAqw==</ds:X509Certificate>
            </ds:X509Data>
         </ds:KeyInfo>
      </ds:Signature>
   </OptionalOutputs>
</ns5:SignResponse>
thumbnail
Nicolas Piquerez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Padawan Mensajes: 62 Fecha de incorporación: 3/10/16 Mensajes recientes
Es extraño, parece un error en el formato de PDF, si podes proba firmando a través de la siguiente aplicación el mismo archivo:

https://test-eid.portal.gub.uy/v1.1/sp-dss/client/signPAdES (Seleccionar archivo para subir el PDF y Submit)

y contame que te devuelve el sistema.

Saludos
Diego Menendez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Youngling Mensajes: 7 Fecha de incorporación: 12/06/17 Mensajes recientes
Aparenemente no tuve problemas. Llegue correctamente al servicio de firma, veo el pdf y puedo firmarlo.


Què podrà ser?
​​​​​​​
thumbnail
Nicolas Piquerez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Padawan Mensajes: 62 Fecha de incorporación: 3/10/16 Mensajes recientes
Y luego de firmarlo al dar enviar que te aparece?

​​​​​​​Saludos
Diego Menendez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Youngling Mensajes: 7 Fecha de incorporación: 12/06/17 Mensajes recientes
Nicolas,

Al firmarlo desde el sitio que me enviaron y darle enviar me vuelve al sitio donde subí el documento pdf, con el documento firmado correctamente.

Esto es lo que hago yo en mi código el signRequest:

                    String file = "/home/local/DOMST/dmenendez/Desktop/prueba.pdf";
                    byte[] documento = file.getBytes();

                    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
                    InputStream ks = new FileInputStream(Labels.keyStoreRoute);
                    JCAKeyStoreSignatureKeyService jcaKeyStoreSignatureKeyService = new JCAKeyStoreSignatureKeyService("BC","PKCS12", ks, Labels.keyStoreKey,                 Labels.keyStoreAlias);

                    XmlDSigRequestSigner xmlDSigRS = new XmlDSigRequestSigner();
                    xmlDSigRS.setDigestMethod("http://www.w3.org/2001/04/xmlenc#sha256");
                    xmlDSigRS.setSignatureMethod("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");

                    RequestBuilderImpl requestBuilder = new RequestBuilderImpl(jcaKeyStoreSignatureKeyService, xmlDSigRS,Labels.dssServiceName, Labels.dssResponseURL);
                    requestBuilder.setSignatureMethods(Collections.singletonList("SmartCard"));

                    String requestData = "";
                    String requestId = "";
                    
                    /* Generación de numero aleatorio para el request */
                    SecureRandom secureRandom = new SecureRandom();
                    double random = secureRandom.nextDouble();
                    requestId = "" + random;

                    Map<String, byte[]> signedAttributes = new HashMap<String, byte[]>(); // Atributos

                    String signatureForm = "urn:oasis:names:tc:dss:1.0:profiles:AdES:forms:BES";

                    VisibleSignature vSignature = new VisibleSignature();
                    requestData = requestBuilder.buildPAdESBasicSignRequest(requestId, documento, signedAttributes, signatureForm, vSignature);

                    String newRequestData = StringEscapeUtils.escapeHtml4(Base64.encodeBase64String(requestData.getBytes("UTF-8")));



Luego al recibir el Response me llega el XML con el siguiente mensaje:

 <ns5:Result>
      <ns5:ResultMajor>urn:oasis:names:tc:dss:1.0:resultmajor:RequesterError</ns5:ResultMajor>
      <ns5:ResultMinor>urn:oasis:names:tc:dss:1.0:resultminor:MessageValidationError</ns5:ResultMinor>
      <ns5:ResultMessage xml:lang="eng">VAL100: PdfFormatValidator</ns5:ResultMessage>
   </ns5:Result>

Adjunto el pdf.


Qué será?


Saludos.

Archivos adjuntos:

Diego Menendez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Youngling Mensajes: 7 Fecha de incorporación: 12/06/17 Mensajes recientes
Por lo que estuve investigando el metodo :

requestData = requestBuilder.buildPAdESBasicSignRequest(requestId, documento, signedAttributes, signatureForm, vSignature);

Usa la librería dss-1-1.0.0.jar, en la misma se codifica el documento pdf que envía en bytes a Base64 utililizando la clase "org.bouncycastle.util.encoders.Base64", que también corresponde a la librería dss-1-1.0.0.jar.

Hice la siguiente prueba por fuera:

String path= "/home/local/DOMST/dmenendez/Desktop/prueba.pdf";
String path_firmado= "/home/local/DOMST/dmenendez/Desktop/prueba_firmado.pdf";

String base64 = new String(org.bouncycastle.util.encoders.Base64.encode(path));
byte[] pdf = org.bouncycastle.util.encoders.Base64.decode(base64);

FileOutputStream fileOuputStream = new FileOutputStream(path_firmado); 
fileOuputStream.write(bytes);
fileOuputStream.close();


Al ver el pdf generado, el mismo queda corrupto.
Convirtiendo a través de un sitio online dicho documento a Base64 el mismo queda totalmente diferente al generado con el metodo org.bouncycastle.util.encoders.Base64.encode() de la librería dss-1-1.0.0.jar.

Será el Base64 que genera la librería que está mal? Les suena?

Quedo a la espera.
Gracias
Saludos.
thumbnail
Nicolas Piquerez, modificado hace 6 años.

RE: Problema al integrarse contra el servicio de firma de coesys

Padawan Mensajes: 62 Fecha de incorporación: 3/10/16 Mensajes recientes
Como andas Diego? Disculpa la demora.

Primero queria comentarte que con el metodo "String newRequestData = StringEscapeUtils.escapeHtml4(Base64.encodeBase64String(requestData.getBytes("UTF-8")));" estas codificando en base64 todo el xml del SignRequest y si luego escape-andolo para que pueda ser incrustrado en un HTML.

Lo que podes probar es guardar "requestData.getBytes("UTF-8")" como xml y ahi si sacar el pdf del mismo y aplicarle un decoding de base64. Para asegurarte que este funcionando, pero hasta ahora hemos probado el metodo y no hemos tenido problemas.

No sabria decirte lo de la libreria como hace la codificación del base64, es una libreria bastante conocida porque el problema debe venir por un mal uso. Por ejemplo al hacer write le pasas como parametro "bytes", no debería ser el array "pdf"?

Saludos