Israel-ICM / DigitalSignatureICM

Generate private and public keys. Perform the respective validation using OpenSSL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DigitalSignatureICM - Firma digital

Herramienta para generar llaves pública y privada con PHP utilizando OpenSSL. Firma cadenas, algo que podria ayudarte si necesitas firmar archivos XML (Para esto ya tendrias que haber realizado los procesos de canonicalización necesarios). Éste es solo un pequeño ejemplo para los que necesiten un código pequeño y limpio sobre el que trabajar.

Comenzando 🚀

Primeramente te aviso que el proyecto fué desarrollado con PHP7 pero evité utilizar sintaxis de esta version por lo cuál el proyecto se puede utilizar en PHP>=5.5 También utilicé Xampp en la version 7.2.5 ten muy en cuenta esto porque necesitarás el path del archivo openssl.cnf que en mi caso se encuentra en:

C:\xampp\php\extras\openssl\openssl.cnf

Ejecutando las pruebas ⚙️

Como verás a continuación el funcionamiento es bastante simple:

<?php
require_once ('DigitalSignatureICM.php');

$keyNamePrivate = 'myKeyPrivate.pem';
$keyNamePublic = 'myKeyPublic.pem';

$digitalSignatureICM = new DigitalSignatureICM();
$config = $digitalSignatureICM->getConfigDefault(); // OJO que para este ejemplo estoy utilizando una configuración que tengo instanciada
por default si necesitas agregar otra configuración puedes enviársela como parámetro en el constructor

// Generamos las llaves privada y pública
$digitalSignatureICM->generateKeys($config, $keyNamePrivate, $keyNamePublic);
// Firmamos un texto de prueba
$signature = $digitalSignatureICM->sign('This text will be signed !!!', $keyNamePrivate);
// Verificamos si existe algún cambio en la firma o texto de prueba ingresado
$verify = $digitalSignatureICM->verifySignature('This text will be signed !!!', $signature, $keyNamePublic);
if ($verify)
    echo 'La firma es válida !!!';
else
    echo 'La firma es inválida y es posible que algún dato haya sido alterado !!!';

Puedes ejecutar el archivo example.php para un primer vistazo del funcionamiento

php example.php

Software utilizado 🛠️

Autores ✒️

Por el momento soy el único contribuidor de éste proyecto

  • Israel Condori Mañueco - Trabajo Inicial - Israel-ICM

Licencia 📄

Este proyecto está bajo la Licencia (MIT) - mira el archivo LICENSE.md para más detalles


⌨️ Con ❤️ por Israel-ICM

About

Generate private and public keys. Perform the respective validation using OpenSSL

License:MIT License


Languages

Language:PHP 100.0%