Beruflich Dokumente
Kultur Dokumente
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 e
stá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 p
ara comparar bytes, el incremento de i lo pones adentro del IF, debe ir después de
l 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 co
ntra 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 cu
alquier key en PKCS8
Saludos,
Kad
..........
Imports System
Imports System.IO
Imports System.Text
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.Runtime.InteropServices
Imports System.Security
Imports System.Diagnostics
Imports System.ComponentModel
End Class