home | cerca | aiuto  
home page università di genova

Marco Ferrante
Personal home page English version

Home page personale
Cifratura DM 24/06/2004

Open source
Delphi/OpenSSL

Delphi import unit per OpenSSL DLL

OpenSSL è un progetto collaborativo per lo sviluppo di un toolkit che implementi SSL/TLS rilasciato sotto una licenza open source simil-BSD.
Per utilizzare OpenSSL su sistemi Microsoft Windows a 32 bit, occorre procurarsi una copia delle DDL dal progetto GNU Win32 (la versione per cui è stata sviluppata questa unit) o dal modulo del progetto wget sul sito SunSite.

Borland Delphi e OpenSSL

Le librerie di OpenSSL possono essere utilizzate da Borland Delphi invocando le DLL.
Il toolkit OpenSSL è composto di due parti: libssl, che implementa SSLv2/v3 e TLS per le comunicazioni di rete e libcrypto, che fornisce i servizi crittografici, le funzioni di hash, il supporto per le strutture dati tipo ASN.1 e la gestione dei certificati X.509.
Per l'uso delle funzioni di rete per la comunicazione SSLv2/v3 e TLS, un buon modulo è disponibile nei componenti di Indy
Per la gestione dei certificati X.509, CSITA ha scritto una unit per l'importazione delle funzioni specifiche.

File necessari

Gnu Win32 libeay32.dll
DLL di OpenSSL. La unit è stata sviluppata per la versione 0.9.6b. Sembra funzionare anche la versione 0.9.6g compilata da Intelicom per il progetto Indy.
libeay32.pas v. 0.7m
Prototipi delle funzioni della DLL. Nella unit non sono definiti tutti i prototipi del migliaio di funzioni esportate della DLL; in particolare non sono presenti quelli che utilizzano parametri file pointer stile C.

Novità della versione 0.7m del 05/11/2010
  • corretti erroi e bug
  • aggiunto il supporto per le funzioni PCKS#8 (contributo di Luis Carrasco - Bambu Code, Mexico)
  • ridefinizione di PChar come PCharacter per gestire i tipi PChar e PAnsiChar
Novità della versione 0.7d, 15/12/2006
  • corretti erroi e bug
  • rimosse le funzioni EVP_MD_size and EVP_MD_CTX_size: non sono definite nella DLL e gestiscono i parametri in mdo dipendente dalla versione.
  • aggiunte le funzioni BIGNUM
  • tra le versioni 0.9.6h e 0.9.7, la funzione OpenSSL_add_all_algorithms è stata divisa in due distinte funzioni. Le informazioni sono sul sito http://www.openssl.org/news/changelog.html In questa versione della unit, OpenSSL_add_all_algorithms è diventato un wrapper che carica dinamicamente la versione corretta.
Novità della versione 0.7 del 14/09/2006
  • bug fix (grazie a M. Hlavac e R. Tamme)
  • funzioni di gestione della memoria
  • funzioni di gestione diretta dei file
Novità della versione 0.6 del 15/07/2003
  • corrette alcuni tipi record (EVP_MD, EVP_MD_CTX, ecc...)
  • definiti nuovi prototipi
Novità della versione 0.4 del 17/03/2003
  • rinominata libeay32.pas
  • corretti alcuni piccoli bug
  • definiti diversi nuovi prototipi
OpenSSLUtils.pas v. 0.5
Alcune classi e funzioni ausiliarie; questa unit è un "esercizio tecnologico" e non può essere utilizzata in un ambiente di produzione.
Nuova versione 0.5, 01/06/2010
  • Grazie a Pablo Romero (Cordoba, Argentina) ora compila su Delphi 2006, 2007, 2009 e 2010
Nuovi esempi della versione 0.3 del 24/03/2003
  • nuova classe TPKCS7 per la lettura delle buste PCKS#7
  • nuova classe TX509Certificate per la verifica dei certificati X.509
  • alcune nuove funzioni
La documentazione delle funzioni è disponibile nel pacchetto dei sorgenti di OpenSSL.

Esempi

Commenti

Suggerimenti, commenti e contributi sono apprezzati; scrivere a marco@csita.unige.it