Cita:
Iniciado por kadghar Antonio,
Tu código es muy bueno, pero tienes pequeños errores, el primero es que la comparación del salt debe ser contra la secuencia de bytes que llamas OIDpkcs5PBKDF2 y lo estás haciendo contra OIDpkcs5PBES2.
El segundo es que los dos bytes que van después de OIDdesEDE3CBC deben ser 2 y 2, tú estás validando 2 y 1, hay que cambiarlo.
Otro error que tienes, seguramente de concentración fue que en la función que usas para comparar bytes, el incremento de i lo pones adentro del IF, debe ir después del END IF, si no, cada vez comparas contra el primer byte.
Por último debes revisar en la función DecodePrivateKeyInfo, donde lees el 2 y 1 del pkcs8, asignas bt al 2 y twobytes al 1, y luego haces dos veces la comparación contra bt, cuando la segunda comparación debería ir contra el 1, o sea contra twobytes.
Haciendo estas pequeñas modificaciones, probé tu código y desencripta perfectamente cualquier key en PKCS8
Saludos,
Kad
Hola, kadghar Te queria pregunta si podrías postear el codigo que tu corregiste; o explicar un poco mas claro; en espcífico el
"El segundo es que los dos bytes que van después de OIDdesEDE3CBC deben ser 2 y 2, tú estás validando 2 y 1, hay que cambiarlo."
de ante mano muchas gracias,
Saludos