Unit ssl_openssl_lib

DescriptionusesClasses, Interfaces, Objects and RecordsFunctions and ProceduresTypesConstantsVariables

Description

OpenSSL support

This unit is Pascal interface to OpenSSL library (used by ssl_openssl unit). OpenSSL is loaded dynamicly on-demand. If this library is not found in system, requested OpenSSL function just return errorcode.

uses

Overview

Classes, Interfaces, Objects and Records

Name Description
packed record des_ks_struct  

Functions and Procedures

function SslGetError(s: PSSL; ret_code: Integer):Integer;
function SslLibraryInit:Integer;
procedure SslLoadErrorStrings;
function SslCtxSetCipherList(arg0: PSSL_CTX; var str: AnsiString):Integer;
function SslCtxNew(meth: PSSL_METHOD):PSSL_CTX;
procedure SslCtxFree(arg0: PSSL_CTX);
function SslSetFd(s: PSSL; fd: Integer):Integer;
function SslMethodV2:PSSL_METHOD;
function SslMethodV3:PSSL_METHOD;
function SslMethodTLSV1:PSSL_METHOD;
function SslMethodV23:PSSL_METHOD;
function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer;
function SslCtxUsePrivateKeyASN1(pk: integer; ctx: PSSL_CTX; d: AnsiString; len: integer):Integer;
function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: AnsiString; _type: Integer):Integer;
function SslCtxUseCertificate(ctx: PSSL_CTX; x: SslPtr):Integer;
function SslCtxUseCertificateASN1(ctx: PSSL_CTX; len: integer; d: AnsiString):Integer;
function SslCtxUseCertificateFile(ctx: PSSL_CTX; const _file: AnsiString; _type: Integer):Integer;
function SslCtxUseCertificateChainFile(ctx: PSSL_CTX; const _file: AnsiString):Integer;
function SslCtxCheckPrivateKeyFile(ctx: PSSL_CTX):Integer;
procedure SslCtxSetDefaultPasswdCb(ctx: PSSL_CTX; cb: PPasswdCb);
procedure SslCtxSetDefaultPasswdCbUserdata(ctx: PSSL_CTX; u: SslPtr);
function SslCtxLoadVerifyLocations(ctx: PSSL_CTX; const CAfile: AnsiString; const CApath: AnsiString):Integer;
function SslCtxCtrl(ctx: PSSL_CTX; cmd: integer; larg: integer; parg: SslPtr): integer;
function SslNew(ctx: PSSL_CTX):PSSL;
procedure SslFree(ssl: PSSL);
function SslAccept(ssl: PSSL):Integer;
function SslConnect(ssl: PSSL):Integer;
function SslShutdown(ssl: PSSL):Integer;
function SslRead(ssl: PSSL; buf: SslPtr; num: Integer):Integer;
function SslPeek(ssl: PSSL; buf: SslPtr; num: Integer):Integer;
function SslWrite(ssl: PSSL; buf: SslPtr; num: Integer):Integer;
function SslPending(ssl: PSSL):Integer;
function SslGetVersion(ssl: PSSL):AnsiString;
function SslGetPeerCertificate(ssl: PSSL):PX509;
procedure SslCtxSetVerify(ctx: PSSL_CTX; mode: Integer; arg2: PFunction);
function SSLGetCurrentCipher(s: PSSL):SslPtr;
function SSLCipherGetName(c: SslPtr): AnsiString;
function SSLCipherGetBits(c: SslPtr; var alg_bits: Integer):Integer;
function SSLGetVerifyResult(ssl: PSSL):Integer;
function SSLCtrl(ssl: PSSL; cmd: integer; larg: integer; parg: SslPtr):Integer;
function X509New: PX509;
procedure X509Free(x: PX509);
function X509NameOneline(a: PX509_NAME; var buf: AnsiString; size: Integer):AnsiString;
function X509GetSubjectName(a: PX509):PX509_NAME;
function X509GetIssuerName(a: PX509):PX509_NAME;
function X509NameHash(x: PX509_NAME):Cardinal;
function X509Digest(data: PX509; _type: PEVP_MD; md: AnsiString; var len: Integer):Integer;
function X509print(b: PBIO; a: PX509): integer;
function X509SetVersion(x: PX509; version: integer): integer;
function X509SetPubkey(x: PX509; pkey: EVP_PKEY): integer;
function X509SetIssuerName(x: PX509; name: PX509_NAME): integer;
function X509NameAddEntryByTxt(name: PX509_NAME; field: Ansistring; _type: integer; bytes: Ansistring; len, loc, _set: integer): integer;
function X509Sign(x: PX509; pkey: EVP_PKEY; const md: PEVP_MD): integer;
function X509GmtimeAdj(s: PASN1_UTCTIME; adj: integer): PASN1_UTCTIME;
function X509SetNotBefore(x: PX509; tm: PASN1_UTCTIME): integer;
function X509SetNotAfter(x: PX509; tm: PASN1_UTCTIME): integer;
function X509GetSerialNumber(x: PX509): PASN1_INTEGER;
function EvpPkeyNew: EVP_PKEY;
procedure EvpPkeyFree(pk: EVP_PKEY);
function EvpPkeyAssign(pkey: EVP_PKEY; _type: integer; key: Prsa): integer;
function EvpGetDigestByName(Name: AnsiString): PEVP_MD;
procedure EVPcleanup;
function SSLeayversion(t: integer): Ansistring;
procedure ErrErrorString(e: integer; var buf: Ansistring; len: integer);
function ErrGetError: integer;
procedure ErrClearError;
procedure ErrFreeStrings;
procedure ErrRemoveState(pid: integer);
procedure OPENSSLaddallalgorithms;
procedure CRYPTOcleanupAllExData;
procedure RandScreen;
function BioNew(b: PBIO_METHOD): PBIO;
procedure BioFreeAll(b: PBIO);
function BioSMem: PBIO_METHOD;
function BioCtrlPending(b: PBIO): integer;
function BioRead(b: PBIO; var Buf: AnsiString; Len: integer): integer;
function BioWrite(b: PBIO; Buf: AnsiString; Len: integer): integer;
function d2iPKCS12bio(b:PBIO; Pkcs12: SslPtr): SslPtr;
function PKCS12parse(p12: SslPtr; pass: Ansistring; var pkey, cert, ca: SslPtr): integer;
procedure PKCS12free(p12: SslPtr);
function RsaGenerateKey(bits, e: integer; callback: PFunction; cb_arg: SslPtr): PRSA;
function Asn1UtctimeNew: PASN1_UTCTIME;
procedure Asn1UtctimeFree(a: PASN1_UTCTIME);
function Asn1IntegerSet(a: PASN1_INTEGER; v: integer): integer;
function Asn1IntegerGet(a: PASN1_INTEGER): integer;
function i2dX509bio(b: PBIO; x: PX509): integer;
function d2iX509bio(b:PBIO; x:PX509): PX509;
function PEMReadBioX509(b:PBIO; x:PSslPtr; callback:PFunction; cb_arg: SslPtr): PX509;
procedure SkX509PopFree(st: PSTACK; func: TSkPopFreeFunc);
function i2dPrivateKeyBio(b: PBIO; pkey: EVP_PKEY): integer;
procedure DESsetoddparity(Key: des_cblock);
function DESsetkeychecked(key: des_cblock; schedule: des_key_schedule): Integer;
procedure DESecbencrypt(Input: des_cblock; output: des_cblock; ks: des_key_schedule; enc: Integer);
function IsSSLloaded: Boolean;
function InitSSLInterface: Boolean;
function DestroySSLInterface: Boolean;

Types

SslPtr = Pointer;
PSslPtr = ˆSslPtr;
PSSL_CTX = SslPtr;
PSSL = SslPtr;
PSSL_METHOD = SslPtr;
PX509 = SslPtr;
PX509_NAME = SslPtr;
PEVP_MD = SslPtr;
PInteger = ˆInteger;
PBIO_METHOD = SslPtr;
PBIO = SslPtr;
EVP_PKEY = SslPtr;
PRSA = SslPtr;
PASN1_UTCTIME = SslPtr;
PASN1_INTEGER = SslPtr;
PPasswdCb = SslPtr;
PFunction = procedure;
PSTACK = SslPtr;
TSkPopFreeFunc = procedure(p:SslPtr); cdecl;
TX509Free = procedure(x: PX509); cdecl;
DES_cblock = array[0..7] of Byte;
PDES_cblock = ˆDES_cblock;
des_key_schedule = array[1..16] of des_ks_struct;

Constants

EVP_MAX_MD_SIZE = 16 + 20;
SSL_ERROR_NONE = 0;
SSL_ERROR_SSL = 1;
SSL_ERROR_WANT_READ = 2;
SSL_ERROR_WANT_WRITE = 3;
SSL_ERROR_WANT_X509_LOOKUP = 4;
SSL_ERROR_SYSCALL = 5;
SSL_ERROR_ZERO_RETURN = 6;
SSL_ERROR_WANT_CONNECT = 7;
SSL_ERROR_WANT_ACCEPT = 8;
SSL_OP_NO_SSLv2 = $01000000;
SSL_OP_NO_SSLv3 = $02000000;
SSL_OP_NO_TLSv1 = $04000000;
SSL_OP_ALL = $000FFFFF;
SSL_VERIFY_NONE = $00;
SSL_VERIFY_PEER = $01;
OPENSSL_DES_DECRYPT = 0;
OPENSSL_DES_ENCRYPT = 1;
X509_V_OK = 0;
X509_V_ILLEGAL = 1;
X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = 2;
X509_V_ERR_UNABLE_TO_GET_CRL = 3;
X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE = 4;
X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE = 5;
X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY = 6;
X509_V_ERR_CERT_SIGNATURE_FAILURE = 7;
X509_V_ERR_CRL_SIGNATURE_FAILURE = 8;
X509_V_ERR_CERT_NOT_YET_VALID = 9;
X509_V_ERR_CERT_HAS_EXPIRED = 10;
X509_V_ERR_CRL_NOT_YET_VALID = 11;
X509_V_ERR_CRL_HAS_EXPIRED = 12;
X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 13;
X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 14;
X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD = 15;
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 16;
X509_V_ERR_OUT_OF_MEM = 17;
X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = 18;
X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN = 19;
X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY = 20;
X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE = 21;
X509_V_ERR_CERT_CHAIN_TOO_LONG = 22;
X509_V_ERR_CERT_REVOKED = 23;
X509_V_ERR_INVALID_CA = 24;
X509_V_ERR_PATH_LENGTH_EXCEEDED = 25;
X509_V_ERR_INVALID_PURPOSE = 26;
X509_V_ERR_CERT_UNTRUSTED = 27;
X509_V_ERR_CERT_REJECTED = 28;
X509_V_ERR_SUBJECT_ISSUER_MISMATCH = 29;
X509_V_ERR_AKID_SKID_MISMATCH = 30;
X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH = 31;
X509_V_ERR_KEYUSAGE_NO_CERTSIGN = 32;
X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER = 33;
X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION = 34;
X509_V_ERR_APPLICATION_VERIFICATION = 50;
SSL_FILETYPE_ASN1 = 2;
SSL_FILETYPE_PEM = 1;
EVP_PKEY_RSA = 6;
SSL_CTRL_SET_TLSEXT_HOSTNAME = 55;
TLSEXT_NAMETYPE_host_name = 0;

Variables

DLLSSLName: string = 'ssleay32.dll';
DLLSSLName2: string = 'libssl32.dll';
DLLUtilName: string = 'libeay32.dll';
SSLLibHandle: TLibHandle = 0;
SSLUtilHandle: TLibHandle = 0;
SSLLibFile: string = '';
SSLUtilFile: string = '';
_X509Free: TX509Free = nil;

Description

Functions and Procedures

function SslGetError(s: PSSL; ret_code: Integer):Integer;
 
function SslLibraryInit:Integer;
 
procedure SslLoadErrorStrings;
 
function SslCtxSetCipherList(arg0: PSSL_CTX; var str: AnsiString):Integer;
 
function SslCtxNew(meth: PSSL_METHOD):PSSL_CTX;
 
procedure SslCtxFree(arg0: PSSL_CTX);
 
function SslSetFd(s: PSSL; fd: Integer):Integer;
 
function SslMethodV2:PSSL_METHOD;
 
function SslMethodV3:PSSL_METHOD;
 
function SslMethodTLSV1:PSSL_METHOD;
 
function SslMethodV23:PSSL_METHOD;
 
function SslCtxUsePrivateKey(ctx: PSSL_CTX; pkey: SslPtr):Integer;
 
function SslCtxUsePrivateKeyASN1(pk: integer; ctx: PSSL_CTX; d: AnsiString; len: integer):Integer;
 
function SslCtxUsePrivateKeyFile(ctx: PSSL_CTX; const _file: AnsiString; _type: Integer):Integer;
 
function SslCtxUseCertificate(ctx: PSSL_CTX; x: SslPtr):Integer;
 
function SslCtxUseCertificateASN1(ctx: PSSL_CTX; len: integer; d: AnsiString):Integer;
 
function SslCtxUseCertificateFile(ctx: PSSL_CTX; const _file: AnsiString; _type: Integer):Integer;
 
function SslCtxUseCertificateChainFile(ctx: PSSL_CTX; const _file: AnsiString):Integer;
 
function SslCtxCheckPrivateKeyFile(ctx: PSSL_CTX):Integer;
 
procedure SslCtxSetDefaultPasswdCb(ctx: PSSL_CTX; cb: PPasswdCb);
 
procedure SslCtxSetDefaultPasswdCbUserdata(ctx: PSSL_CTX; u: SslPtr);
 
function SslCtxLoadVerifyLocations(ctx: PSSL_CTX; const CAfile: AnsiString; const CApath: AnsiString):Integer;
 
function SslCtxCtrl(ctx: PSSL_CTX; cmd: integer; larg: integer; parg: SslPtr): integer;
 
function SslNew(ctx: PSSL_CTX):PSSL;
 
procedure SslFree(ssl: PSSL);
 
function SslAccept(ssl: PSSL):Integer;
 
function SslConnect(ssl: PSSL):Integer;
 
function SslShutdown(ssl: PSSL):Integer;
 
function SslRead(ssl: PSSL; buf: SslPtr; num: Integer):Integer;
 
function SslPeek(ssl: PSSL; buf: SslPtr; num: Integer):Integer;
 
function SslWrite(ssl: PSSL; buf: SslPtr; num: Integer):Integer;
 
function SslPending(ssl: PSSL):Integer;
 
function SslGetVersion(ssl: PSSL):AnsiString;
 
function SslGetPeerCertificate(ssl: PSSL):PX509;
 
procedure SslCtxSetVerify(ctx: PSSL_CTX; mode: Integer; arg2: PFunction);
 
function SSLGetCurrentCipher(s: PSSL):SslPtr;
 
function SSLCipherGetName(c: SslPtr): AnsiString;
 
function SSLCipherGetBits(c: SslPtr; var alg_bits: Integer):Integer;
 
function SSLGetVerifyResult(ssl: PSSL):Integer;
 
function SSLCtrl(ssl: PSSL; cmd: integer; larg: integer; parg: SslPtr):Integer;
 
function X509New: PX509;
 
procedure X509Free(x: PX509);
 
function X509NameOneline(a: PX509_NAME; var buf: AnsiString; size: Integer):AnsiString;
 
function X509GetSubjectName(a: PX509):PX509_NAME;
 
function X509GetIssuerName(a: PX509):PX509_NAME;
 
function X509NameHash(x: PX509_NAME):Cardinal;
 
function X509Digest(data: PX509; _type: PEVP_MD; md: AnsiString; var len: Integer):Integer;
 
function X509print(b: PBIO; a: PX509): integer;
 
function X509SetVersion(x: PX509; version: integer): integer;
 
function X509SetPubkey(x: PX509; pkey: EVP_PKEY): integer;
 
function X509SetIssuerName(x: PX509; name: PX509_NAME): integer;
 
function X509NameAddEntryByTxt(name: PX509_NAME; field: Ansistring; _type: integer; bytes: Ansistring; len, loc, _set: integer): integer;
 
function X509Sign(x: PX509; pkey: EVP_PKEY; const md: PEVP_MD): integer;
 
function X509GmtimeAdj(s: PASN1_UTCTIME; adj: integer): PASN1_UTCTIME;
 
function X509SetNotBefore(x: PX509; tm: PASN1_UTCTIME): integer;
 
function X509SetNotAfter(x: PX509; tm: PASN1_UTCTIME): integer;
 
function X509GetSerialNumber(x: PX509): PASN1_INTEGER;
 
function EvpPkeyNew: EVP_PKEY;
 
procedure EvpPkeyFree(pk: EVP_PKEY);
 
function EvpPkeyAssign(pkey: EVP_PKEY; _type: integer; key: Prsa): integer;
 
function EvpGetDigestByName(Name: AnsiString): PEVP_MD;
 
procedure EVPcleanup;
 
function SSLeayversion(t: integer): Ansistring;
 
procedure ErrErrorString(e: integer; var buf: Ansistring; len: integer);
 
function ErrGetError: integer;
 
procedure ErrClearError;
 
procedure ErrFreeStrings;
 
procedure ErrRemoveState(pid: integer);
 
procedure OPENSSLaddallalgorithms;
 
procedure CRYPTOcleanupAllExData;
 
procedure RandScreen;
 
function BioNew(b: PBIO_METHOD): PBIO;
 
procedure BioFreeAll(b: PBIO);
 
function BioSMem: PBIO_METHOD;
 
function BioCtrlPending(b: PBIO): integer;
 
function BioRead(b: PBIO; var Buf: AnsiString; Len: integer): integer;
 
function BioWrite(b: PBIO; Buf: AnsiString; Len: integer): integer;
 
function d2iPKCS12bio(b:PBIO; Pkcs12: SslPtr): SslPtr;
 
function PKCS12parse(p12: SslPtr; pass: Ansistring; var pkey, cert, ca: SslPtr): integer;
 
procedure PKCS12free(p12: SslPtr);
 
function RsaGenerateKey(bits, e: integer; callback: PFunction; cb_arg: SslPtr): PRSA;
 
function Asn1UtctimeNew: PASN1_UTCTIME;
 
procedure Asn1UtctimeFree(a: PASN1_UTCTIME);
 
function Asn1IntegerSet(a: PASN1_INTEGER; v: integer): integer;
 
function Asn1IntegerGet(a: PASN1_INTEGER): integer;
 
function i2dX509bio(b: PBIO; x: PX509): integer;
 
function d2iX509bio(b:PBIO; x:PX509): PX509;
 
function PEMReadBioX509(b:PBIO; x:PSslPtr; callback:PFunction; cb_arg: SslPtr): PX509;
 
procedure SkX509PopFree(st: PSTACK; func: TSkPopFreeFunc);
 
function i2dPrivateKeyBio(b: PBIO; pkey: EVP_PKEY): integer;
 
procedure DESsetoddparity(Key: des_cblock);
 
function DESsetkeychecked(key: des_cblock; schedule: des_key_schedule): Integer;
 
procedure DESecbencrypt(Input: des_cblock; output: des_cblock; ks: des_key_schedule; enc: Integer);
 
function IsSSLloaded: Boolean;
 
function InitSSLInterface: Boolean;
 
function DestroySSLInterface: Boolean;
 

Types

SslPtr = Pointer;
 
PSslPtr = ˆSslPtr;
 
PSSL_CTX = SslPtr;
 
PSSL = SslPtr;
 
PSSL_METHOD = SslPtr;
 
PX509 = SslPtr;
 
PX509_NAME = SslPtr;
 
PEVP_MD = SslPtr;
 
PInteger = ˆInteger;
 
PBIO_METHOD = SslPtr;
 
PBIO = SslPtr;
 
EVP_PKEY = SslPtr;
 
PRSA = SslPtr;
 
PASN1_UTCTIME = SslPtr;
 
PASN1_INTEGER = SslPtr;
 
PPasswdCb = SslPtr;
 
PFunction = procedure;
 
PSTACK = SslPtr;
 
TSkPopFreeFunc = procedure(p:SslPtr); cdecl;
 
TX509Free = procedure(x: PX509); cdecl;
 
DES_cblock = array[0..7] of Byte;
 
PDES_cblock = ˆDES_cblock;
 
des_key_schedule = array[1..16] of des_ks_struct;
 

Constants

EVP_MAX_MD_SIZE = 16 + 20;
 
SSL_ERROR_NONE = 0;
 
SSL_ERROR_SSL = 1;
 
SSL_ERROR_WANT_READ = 2;
 
SSL_ERROR_WANT_WRITE = 3;
 
SSL_ERROR_WANT_X509_LOOKUP = 4;
 
SSL_ERROR_SYSCALL = 5;
 
SSL_ERROR_ZERO_RETURN = 6;
 
SSL_ERROR_WANT_CONNECT = 7;
 
SSL_ERROR_WANT_ACCEPT = 8;
 
SSL_OP_NO_SSLv2 = $01000000;
 
SSL_OP_NO_SSLv3 = $02000000;
 
SSL_OP_NO_TLSv1 = $04000000;
 
SSL_OP_ALL = $000FFFFF;
 
SSL_VERIFY_NONE = $00;
 
SSL_VERIFY_PEER = $01;
 
OPENSSL_DES_DECRYPT = 0;
 
OPENSSL_DES_ENCRYPT = 1;
 
X509_V_OK = 0;
 
X509_V_ILLEGAL = 1;
 
X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = 2;
 
X509_V_ERR_UNABLE_TO_GET_CRL = 3;
 
X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE = 4;
 
X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE = 5;
 
X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY = 6;
 
X509_V_ERR_CERT_SIGNATURE_FAILURE = 7;
 
X509_V_ERR_CRL_SIGNATURE_FAILURE = 8;
 
X509_V_ERR_CERT_NOT_YET_VALID = 9;
 
X509_V_ERR_CERT_HAS_EXPIRED = 10;
 
X509_V_ERR_CRL_NOT_YET_VALID = 11;
 
X509_V_ERR_CRL_HAS_EXPIRED = 12;
 
X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 13;
 
X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 14;
 
X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD = 15;
 
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 16;
 
X509_V_ERR_OUT_OF_MEM = 17;
 
X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = 18;
 
X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN = 19;
 
X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY = 20;
 
X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE = 21;
 
X509_V_ERR_CERT_CHAIN_TOO_LONG = 22;
 
X509_V_ERR_CERT_REVOKED = 23;
 
X509_V_ERR_INVALID_CA = 24;
 
X509_V_ERR_PATH_LENGTH_EXCEEDED = 25;
 
X509_V_ERR_INVALID_PURPOSE = 26;
 
X509_V_ERR_CERT_UNTRUSTED = 27;
 
X509_V_ERR_CERT_REJECTED = 28;
 
X509_V_ERR_SUBJECT_ISSUER_MISMATCH = 29;
 
X509_V_ERR_AKID_SKID_MISMATCH = 30;
 
X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH = 31;
 
X509_V_ERR_KEYUSAGE_NO_CERTSIGN = 32;
 
X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER = 33;
 
X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION = 34;
 
X509_V_ERR_APPLICATION_VERIFICATION = 50;
 
SSL_FILETYPE_ASN1 = 2;
 
SSL_FILETYPE_PEM = 1;
 
EVP_PKEY_RSA = 6;
 
SSL_CTRL_SET_TLSEXT_HOSTNAME = 55;
 
TLSEXT_NAMETYPE_host_name = 0;
 

Variables

DLLSSLName: string = 'ssleay32.dll';
 
DLLSSLName2: string = 'libssl32.dll';
 
DLLUtilName: string = 'libeay32.dll';
 
SSLLibHandle: TLibHandle = 0;
 
SSLUtilHandle: TLibHandle = 0;
 
SSLLibFile: string = '';
 
SSLUtilFile: string = '';
 
_X509Free: TX509Free = nil;
 
Generated by PasDoc 0.9.0 on 2012-04-23 21:38:58