Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-07-2014
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Actualizacion de unidad sello.pas XE2

Buenas noches estimados colegas.

Hasta hace unos dias, la plataforma sobre la que programaba era Delphi 2007, pero por causas ajenas a mi, he tenido que migrar a la version XE2. Obviamente hubo que hacer mucha talacha, ya que con la incorporacion del famoso unicode, el codigo en 2007 ya no funciona corectamente en XE2, especificamente hablando de la unidad sello.pas con la cual se generan los sellosdigitales de los CFDIs. He logrado actualizar todas las rutinas de dicha unidad y aparentemente funcionan bien, pero la realidad es que el sello digital, no lo devuelve correctamente, por lo tanto a la hora de hacer la validacion, se rechaza el dicho sello. He estado buscando mas información en al web y creo que ya me agote todos los recursos existentes. He parado un rato con la unidad sello.pas para intentar con los componentes lockbox 3, pero tambien no he logrado sacar el sello correctamente. Ahora vuelvo otra vez a intentar ajustar la unidad sello.pas.

ya he bajado las versiones mas actualizadas de la unidad libeay32.pas, asi como de la libreria libeay32.dll y nada, sigue generandome el mismo sello invalido. he incluso monitoreado las variables que devuelven las rutinas de la libreria y he notado un cierto desfase, pero no se a que se como corregirlo. les envio dichos datos.

Datos Generados con la Version 2007
Cita:
Tamaño en Bytes de la Cadena Original: 4
Longitud de la Cadena Original: 626
Tamaño en Byes de inbuf: 8193
Longitud De la Cadena Orginal en UTF8: 628

key:=LoadPrivateKey(llaveprivada,'');

Valores de la Varible Key:
ktype: 6, save_type: 6, references: 1
pkey.ptr: , key.pkey.dsa.pad: 0, key.pkey.dsa.version: 0, key.pkey.dsa.write_params: 1662324256
key.pkey.dsa.flags: 20384720,key.pkey.dsa.references: 0
save_parameters: 1

EVP_SignInit(@mdctx,EVP_sha1());

Valores de la Varible mdctx:
digest._type: 64, digest.pkey_type: 65, digest.md_size: 20
sha.h0: 0, sha.h1: 0, sha.h2: 20384992, sha.h3: 0, sha.h4: 0
sha.Nl: 0, sha.Nh: 0, sha.num: 0
sha.data[0]: 0, sha.data[1]: 0, sha.data[2]: 0, sha.data[3]: 0, sha.data[4]: 0
sha.data[5]: 0, sha.data[6]: 0, sha.data[7]: 0, sha.data[8]: 0, sha.data[9]: 0
sha.data[10]: 0, sha.data[11]: 0, sha.data[12]: 0, sha.data[13]: 0, sha.data[14]: 0
sha.data[15]: 0, sha.data[16]: 0

sello
T8HRuNbBCpywc4fw7uWQEaM3qNNo0Iv3wQqomJx2ADYTxkCRBDBvBcDqnIo1KRj+KeDtEeI1CbH+AM6o8LZE/r2YZb4Tq7y08qqeVitvdxer2zokj5Sclnc0x/JthBlv72R0ZhWFaV/JI79dJBid48FwcfCiWYwMc+gXoguACwo=
Aplicando la misma cadena original, al mismo xml de ejemplo, pero en delphi xe2 me devuelve
Cita:
Tamaño en Bytes de la Cadena Original: 4
Longitud de la Cadena Original: 626
Tamaño en Bytes de inbuf: 1000000
Longitud De la Cadena Orginal en UTF8: 628

key:=LoadPrivateKey(llaveprivada,'');

Valores de la Varible Key:
ktype: 6, save_type: 6, references: 1
pkey.ptr: , key.pkey.dsa.pad: 0, key.pkey.dsa.version: 0, key.pkey.dsa.write_params: 1662324256
key.pkey.dsa.flags: 26449360,key.pkey.dsa.references: 0
save_parameters: 1

EVP_SignInit(@mdctx,EVP_sha1());

Valores de la Varible mdctx:
digest._type: 64, digest.pkey_type: 65, digest.md_size: 20
sha.h0: 0, sha.h1: 0, sha.h2: 26447576, sha.h3: 0, sha.h4: 0
sha.Nl: 0, sha.Nh: 0, sha.num: 0
sha.data[0]: 0, sha.data[1]: 0, sha.data[2]: 0, sha.data[3]: 0, sha.data[4]: 0
sha.data[5]: 0, sha.data[6]: 0, sha.data[7]: 0, sha.data[8]: 0, sha.data[9]: 0
sha.data[10]: 0, sha.data[11]: 0, sha.data[12]: 0, sha.data[13]: 0, sha.data[14]: 0
sha.data[15]: 0, sha.data[16]: 0

sello (Invalido)
fyppu5HOjV4YcpRUVNqvy1Z6Dwk/SnbxaC8OeiRV1UDZiAwlWA7TRrMpWxkIBvc32U1OhV8hp5hq3DjfxGfK+YFLlTpiZenIdzxSfZZX5Uf0Rk3XU4tIR3W2IwmgrQ5j hzuc78EG9RwoI9Hl+oR9MtDKWesEtMWxUAo/JJiKinU=
Noto que hay una diferencia en la varible key, en el valor key.pkey.dsa.flags que pasa de 20384720 a 26449360 y lo mismo sucede en la variable mdctx valor sha.h2, aumenta de tamaño en exactamente la misma cantidad en ambos casos. No se si este sea el problema, pero sospecho que debe ser algun tipo de dato que este afectando.

Alguien sabe a que se refieren ls valores dsa flags y sha ha2?

Cualquier ayuda sera bienvenida. Muchas Gracias.
Responder Con Cita
 



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
Unidad de Red ander Varios 2 17-03-2011 08:48:06
Vista, BDE, Unidad de red torito Varios 0 22-04-2008 01:18:09
Impresion de fondo como sello de agua camino Impresión 6 02-11-2007 21:57:29
Titulo en la Unidad RolphyReyes Varios 9 09-05-2007 20:18:28
unidad A joHn je@N API de Windows 4 25-06-2005 02:31:09


La franja horaria es GMT +2. Ahora son las 23:19:09.


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