Protección nativa de datos en PowerBuilder

 


Esta semana he estado viendo el video que publicó Dora Sistemas en su canal el viernes 21 de Enero sobre la protección de nativa de datos en PowerBuilder.

Hasta ahora estaba usando para codificar en base 64 y encriptar un objeto llamado n_cryptoapi que me descargué de la página de Topwiz Software, pero ahora con estas nuevas funciones nativas ya no lo voy a necesitar.

Para hacerme la vida un poco mas fácil, he desarrollado los objetos nativos crypterobject y coderobject de PowerBuilder y he creado mis propios objetos nvo_crypterobject y nvo_coderobject.

En el objeto nvo_coderobject he creado las siguientes funciones:



El objetivo básico ha sido trabajar con Strings en vez de con Blobs, que me resulta mas sencillo, y además, he añadido funciones de lectura y escritura de ficheros a partir de blobs para evitar el uso de esas funciones con un objeto gráfico como el InkPictureControl.

Por su parte en el objeto nvo_crypterobject he creado las siguientes funciones:


En las funciones de encriptación simétrica el objetivo ha sido simplificarlas con parámetros string y dejar fijo mi vector de iniciación  así como el "OperationMode" y el "Padding".

En las funciones de encriptación asimétrica he  dejado fijo el Algoritmo de Encriptación y también he pasado los parámetros como strings. Para poder guardar correctamente la clave privada como string he tenido que codificarla en hexadecimal utilizando el objeto nvo_coderobject.

Finalmente he creado las funciones para hacer hasing para que me retornen un string codificado en hexadecimal con el objeto nvo_coderobject.

Aunque he cambiado algo el ejemplo de Dora Sistemas para poder ejecutar todas las opciones sin ir cambiando el código, no voy a subir ningún video demostrativo ni publicar el programa compilado. 
Lo único que os dejo son las fuentes por si a alguien, con mejores conocimientos o con mas interés, le apetece desarrollarlo mas....

Video demo de Dora Sistemas en Youtube: 

youtu.be/MbuxTZYqmvM

06-12-2022: Proyecto descrito en artículo archivado. Nueva versión en repositorio con librería en .Net6 y PowerBuilder 2022 build 1892.

Os dejo el enlace de proyecto actual en GitHub:


Comentarios