Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2021
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Cita:
Empezado por Galaxian Ver Mensaje
Échale un vistazo a esto: https://tools.chilkat.io/xmlDsigGen.cshtml

Solo tienes que coger la firma de uno de los ejemplos de TBAI y pegarla en la ventana. Después de generar la firma digital (la clava) puedes usar el ejemplo de factura-e para enviarlo.

Muchisimas gracias, no conocia esa utilidad, es maravillosa :-)
Responder Con Cita
  #2  
Antiguo 13-07-2021
Avatar de b4aronDeLaBirr4
b4aronDeLaBirr4 b4aronDeLaBirr4 is offline
Miembro
 
Registrado: jul 2021
Posts: 67
Poder: 3
b4aronDeLaBirr4 Va por buen camino
Prueba firma XML Chilkat Tools C#

Anda, una herramienta bastante interesante! ¿Alguna directriz de alguien que la haya usado? He cogido un ejemplo oficial (Ejemplo_TicketBAI_79732487C_A2022_0399.xml) y me muestra esto con las opciones de .pfx/.p12 file y en C#:

Código PHP:
//  ----------------------------------------------------------------------
//  IMPORTANT: This generated example may require Chilkat v9.5.0.80 or later.
//  ----------------------------------------------------------------------
bool success true;
//  Load the XML to be signed from a string...
Chilkat.Xml xmlToSign = new Chilkat.Xml();
xmlToSign.LoadXml("...");

Chilkat.XmlDSigGen gen = new Chilkat.XmlDSigGen();

gen.SigLocation "T:TicketBai";
gen.SigLocationMod 0;
gen.SigId "Signature-63c35f38-2b5f-4600-b3da-3ddee86d62b3-Signature";
gen.SigNamespacePrefix "ds";
gen.SigNamespaceUri "http://www.w3.org/2000/09/xmldsig#";
gen.SigValueId "Signature-63c35f38-2b5f-4600-b3da-3ddee86d62b3-SignatureValue";
gen.SignedInfoCanonAlg "C14N";
gen.SignedInfoDigestMethod "sha256";

//  Set the KeyInfoId before adding references..
gen.KeyInfoId "Signature-63c35f38-2b5f-4600-b3da-3ddee86d62b3-KeyInfo";

//  Create an Object to be added to the Signature.
Chilkat.Xml object1 = new Chilkat.Xml();
object1.Tag "xades:QualifyingProperties";
object1.AddAttribute("xmlns:xades","http://uri.etsi.org/01903/v1.3.2#");
object1.AddAttribute("Id","Signature-63c35f38-2b5f-4600-b3da-3ddee86d62b3-QualifyingProperties");
object1.AddAttribute("Target","#Signature-63c35f38-2b5f-4600-b3da-3ddee86d62b3-Signature");
object1.AddAttribute("xmlns:ds","http://www.w3.org/2000/09/xmldsig#");
object1.UpdateAttrAt("xades:SignedProperties",true,"Id","Signature-63c35f38-2b5f-4600-b3da-3ddee86d62b3-SignedProperties");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningTime","TO BE GENERATED BY CHILKAT");
object1.UpdateAttrAt("xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningCertificate|xades:Cert|xades:CertDigest|ds:DigestMethod",true,"Algorithm","http://www.w3.org/2001/04/xmlenc#sha512");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningCertificate|xades:Cert|xades:CertDigest|ds:DigestValue","TO BE GENERATED BY CHILKAT");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningCertificate|xades:Cert|xades:IssuerSerial|ds:X509IssuerName","TO BE GENERATED BY CHILKAT");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedSignatureProperties|xades:SigningCertificate|xades:Cert|xades:IssuerSerial|ds:X509SerialNumber","TO BE GENERATED BY CHILKAT");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyId|xades:Identifier","https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyId|xades:Description","");
object1.UpdateAttrAt("xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyHash|ds:DigestMethod",true,"Algorithm","http://www.w3.org/2001/04/xmlenc#sha256");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyHash|ds:DigestValue","Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedSignatureProperties|xades:SignaturePolicyIdentifier|xades:SignaturePolicyId|xades:SigPolicyQualifiers|xades:SigPolicyQualifier|xades:SPURI","https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf");
object1.UpdateAttrAt("xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat",true,"ObjectReference","#Reference-7e6f3481-4acc-47de-90fd-67878ad15e8e");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat|xades:Description","");
object1.UpdateAttrAt("xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat|xades:ObjectIdentifier|xades:Identifier",true,"Qualifier","OIDAsURN");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat|xades:ObjectIdentifier|xades:Identifier","urn:oid:1.2.840.10003.5.109.10");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat|xades:ObjectIdentifier|xades:Description","");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat|xades:MimeType","text/xml");
object1.UpdateChildContent("xades:SignedProperties|xades:SignedDataObjectProperties|xades:DataObjectFormat|xades:Encoding","");

gen.AddObject("",object1.GetXml(),"","");

//  -------- Reference 1 --------
gen.AddSameDocRef("","sha512","C14N","","http://www.w3.org/2000/09/xmldsig#Object");
gen.SetRefIdAttr("","Reference-7e6f3481-4acc-47de-90fd-67878ad15e8e");

//  -------- Reference 2 --------
gen.AddObjectRef("Signature-63c35f38-2b5f-4600-b3da-3ddee86d62b3-SignedProperties","sha512","","","http://uri.etsi.org/01903#SignedProperties");

//  -------- Reference 3 --------
gen.AddSameDocRef("Signature-63c35f38-2b5f-4600-b3da-3ddee86d62b3-KeyInfo","sha512","","","");

//  Provide a certificate + private key. (PFX password is test123)
Chilkat.Cert cert = new Chilkat.Cert();
success cert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123");
if (
success != true) {
    
Debug.WriteLine(cert.LastErrorText);
    return;
}

gen.SetX509Cert(cert,true);

gen.KeyInfoType "X509Data+KeyValue";
gen.X509Type "Certificate";

//  Load XML to be signed...
Chilkat.StringBuilder sbXml = new Chilkat.StringBuilder();
xmlToSign.GetXmlSb(sbXml);

gen.Behaviors "CompactSignedXml,TransformSignatureXPath";

//  Sign the XML...
success gen.CreateXmlDSigSb(sbXml);
if (
success != true) {
    
Debug.WriteLine(gen.LastErrorText);
    return;
}

//  -----------------------------------------------

//  Save the signed XML to a file.
success sbXml.WriteFile("qa_output/signedXml.xml","utf-8",false);

Debug.WriteLine(sbXml.GetAsString());

//  ----------------------------------------
//  Verify the signatures we just produced...
Chilkat.XmlDSig verifier = new Chilkat.XmlDSig();
success verifier.LoadSignatureSb(sbXml);
if (
success != true) {
    
Debug.WriteLine(verifier.LastErrorText);
    return;
}

int numSigs verifier.NumSignatures;
int verifyIdx 0;
while (
verifyIdx numSigs) {
    
verifier.Selector verifyIdx;
    
bool verified verifier.VerifySignature(true);
    if (
verified != true) {
        
Debug.WriteLine(verifier.LastErrorText);
        return;
    }

    
verifyIdx verifyIdx 1;
}

Debug.WriteLine("All signatures were successfully verified."); 
Responder Con Cita
  #3  
Antiguo 13-07-2021
jamematen jamematen is offline
Registrado
 
Registrado: jun 2021
Posts: 1
Poder: 0
jamematen Va por buen camino
Firma desde el navegador

Hola a todos.
He llegado aquí buscando información sobre Tickebai y sin ninguna duda es el sitio con la mayor y mejor cantidad.
Después de repasar los mas de mil mensajes de este hilo y hacer algunas pruebas con vuestras aportaciones he llegado a un punto donde me atasco. A ver si me podéis echar una mano.
Necesito firmar el xml de ticketbai desde el navegador, veo que Chilkat genera código para Node.js pero no acabo de entender si ese código podría usarlo desde la parte del cliente (navegador) y tampoco tengo claro que tipo de licencia usa.
Por otra parte he encontrado un librería en github que si se puede usar desde el navegador: PeculiarVentures-xadesjs pero no acabo de encontrar la combinación de parámetros para que me genere la firma tal y como se muestra en los ejemplos. En concreto no consigo que me incluya la transformación: <ds:Transform Algorithm="h t t p://w w w. w3.org/TR/1999/REC-xpath-19991116">
<ds:XPath xmlns:ds="h t t p://w w w .w3.org/2000/09/xmldsig#">not(ancestor-or-self::ds:Signature)</ds:XPath>
</ds:Transform>

Muchas gracias.
Responder Con Cita
  #4  
Antiguo 13-07-2021
Avatar de Eric Mtz
Eric Mtz Eric Mtz is offline
Miembro
 
Registrado: jun 2021
Ubicación: Vitoria-Gasteiz
Posts: 43
Poder: 0
Eric Mtz Va por buen camino
Cita:
Empezado por jamematen Ver Mensaje
Hola a todos.
He llegado aquí buscando información sobre Tickebai y sin ninguna duda es el sitio con la mayor y mejor cantidad.
Después de repasar los mas de mil mensajes de este hilo y hacer algunas pruebas con vuestras aportaciones he llegado a un punto donde me atasco. A ver si me podéis echar una mano.
Necesito firmar el xml de ticketbai desde el navegador, veo que Chilkat genera código para Node.js pero no acabo de entender si ese código podría usarlo desde la parte del cliente (navegador) y tampoco tengo claro que tipo de licencia usa.
Por otra parte he encontrado un librería en github que si se puede usar desde el navegador: PeculiarVentures-xadesjs pero no acabo de encontrar la combinación de parámetros para que me genere la firma tal y como se muestra en los ejemplos. En concreto no consigo que me incluya la transformación: <ds:Transform Algorithm="h t t p://w w w. w3.org/TR/1999/REC-xpath-19991116">
<ds:XPath xmlns:ds="h t t p://w w w .w3.org/2000/09/xmldsig#">not(ancestor-or-self::ds:Signature)</ds:XPath>
</ds:Transform>

Muchas gracias.

¡¡Sangre nueva!!, sacrifiquémosle y hagamos la danza de BATUZ para que el pálpito de Keys se haga realidad.

Nah, es broma, bienvenido al foro, yo no te sé responder pero te deseo suerte igualmente.
Responder Con Cita
  #5  
Antiguo 13-07-2021
Avatar de b4aronDeLaBirr4
b4aronDeLaBirr4 b4aronDeLaBirr4 is offline
Miembro
 
Registrado: jul 2021
Posts: 67
Poder: 3
b4aronDeLaBirr4 Va por buen camino
Problema FirmaXadEsNet

Buenas! Estoy intentando firmar el documento en C# utilizando FirmaXadEsNet y cuando va a firmar con el certificado seleccionado, aparece este error:

Código PHP:
ERROR 2021-07-13 14:13:47,193 [26   Mvc.ExceptionHandling.AbpExceptionFilter Unable to cast object of type 'System.Security.Cryptography.RSACng' to type 'System.Security.Cryptography.RSACryptoServiceProvider'.
System.InvalidCastExceptionUnable to cast object of type 'System.Security.Cryptography.RSACng' to type 'System.Security.Cryptography.RSACryptoServiceProvider'.
   
at FirmaXadesNet.Crypto.Signer.SetSigningKey(X509Certificate2 certificate)
   
at FirmaXadesNet.Crypto.Signer..ctor(X509Certificate2 certificate
No sé si a alguien le ha ocurrido o le suena. He estado leyendo por ahí cosillas pero de momento nada lo ha resuelto así que cualquier comentario sobre el tema sería de ayuda!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3565 Hace 4 Días 11:04:13
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 07:44:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi