IdSSLOpenSSLHeaders.pas 1.1 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161
  1. {
  2. $Project$
  3. $Workfile$
  4. $Revision$
  5. $DateUTC$
  6. $Id$
  7. This file is part of the Indy (Internet Direct) project, and is offered
  8. under the dual-licensing agreement described on the Indy website.
  9. (http://www.indyproject.org/)
  10. Copyright:
  11. (c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
  12. }
  13. {
  14. $Log$
  15. }
  16. {
  17. Rev 1.8 28.09.2004 21:38:44 Andreas Hausladen
  18. commented out unused function ErrMsg
  19. Rev 1.7 2004-05-07 16:52:50 Mattias
  20. Minor cleanup
  21. Rev 1.6 2004-05-07 16:34:36 Mattias
  22. Implemented OpenSSL locking callbacks
  23. Rev 1.5 10/16/03 11:16:44 PM RLebeau
  24. Updated to better support C++Builder by adding an $EXTERNSYM define to
  25. 'time_t' so that it won't be included in the auto-generated HPP file. The
  26. native time.h header file is used instead.
  27. Rev 1.4 10/17/2003 1:08:12 AM DSiders
  28. Added localization comments.
  29. Rev 1.3 12/9/2002 12:48:42 PM JPMugaas
  30. Fixed stupid compile error for the moment. The Macros in err.h have to be
  31. sorted out later.
  32. Rev 1.1 12/8/2002 07:25:52 PM JPMugaas
  33. Added published host and port properties.
  34. Rev 1.0 11/13/2002 08:01:32 AM JPMugaas
  35. }
  36. unit IdSSLOpenSSLHeaders;
  37. {
  38. Author: Gregor Ibic ([email protected])
  39. Copyright: (c) Gregor Ibic, Intelicom d.o.o and Indy Working Group.
  40. }
  41. {
  42. Note to self::
  43. ===== Win32 with mingw32 ====
  44. Configuring for mingw
  45. no-camellia [default] OPENSSL_NO_CAMELLIA (skip dir)
  46. no-capieng [default] OPENSSL_NO_CAPIENG (skip dir)
  47. no-cms [default] OPENSSL_NO_CMS (skip dir)
  48. no-gmp [default] OPENSSL_NO_GMP (skip dir)
  49. no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir)
  50. no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5
  51. no-mdc2 [default] OPENSSL_NO_MDC2 (skip dir)
  52. no-montasm [default]
  53. no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
  54. no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir)
  55. no-seed [default] OPENSSL_NO_SEED (skip dir)
  56. no-shared [default]
  57. no-zlib [default]
  58. no-zlib-dynamic [default]
  59. IsMK1MF=1
  60. CC =gcc
  61. CFLAG =-DOPENSSL_THREADS -DDSO_WIN32 -mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall -D_WIN32_WINNT=0x333 -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
  62. EX_LIBS =-lwsock32 -lgdi32
  63. CPUID_OBJ =x86cpuid-cof.o
  64. BN_ASM =bn86-cof.o co86-cof.o
  65. DES_ENC =dx86-cof.o yx86-cof.o
  66. AES_ASM_OBJ =ax86-cof.o
  67. BF_ENC =bx86-cof.o
  68. CAST_ENC =cx86-cof.o
  69. RC4_ENC =rx86-cof.o rc4_skey.o
  70. RC5_ENC =r586-cof.o
  71. MD5_OBJ_ASM =mx86-cof.o
  72. SHA1_OBJ_ASM =sx86-cof.o s512sse2-cof.o
  73. RMD160_OBJ_ASM=rm86-cof.o
  74. PROCESSOR =
  75. RANLIB =true
  76. ARFLAGS =
  77. PERL =perl
  78. THIRTY_TWO_BIT mode
  79. DES_PTR used
  80. DES_RISC1 used
  81. DES_UNROLL used
  82. BN_LLONG mode
  83. RC4_INDEX mode
  84. RC4_CHUNK is undefined
  85. Configured for mingw.
  86. Generating x86 for GNU assember
  87. Bignum
  88. DES
  89. crypt
  90. Blowfish
  91. CAST5
  92. RC4
  93. MD5
  94. SHA1
  95. RIPEMD160
  96. RC5\32
  97. CPUID
  98. Generating makefile
  99. Generating DLL definition files
  100. Building the libraries
  101. Building OpenSSL
  102. ===== Win64 ======
  103. Targeting Windows Server 2003 X64 RETAIL
  104. perl Configure VC-WIN64A
  105. W:\openssl\openssl-0.9.8k>perl Configure VC-WIN64A
  106. Configuring for VC-WIN64A
  107. no-camellia [default] OPENSSL_NO_CAMELLIA (skip dir)
  108. no-capieng [default] OPENSSL_NO_CAPIENG (skip dir)
  109. no-cms [default] OPENSSL_NO_CMS (skip dir)
  110. no-gmp [default] OPENSSL_NO_GMP (skip dir)
  111. no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir)
  112. no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5
  113. no-mdc2 [default] OPENSSL_NO_MDC2 (skip dir)
  114. no-montasm [default]
  115. no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
  116. no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir)
  117. no-seed [default] OPENSSL_NO_SEED (skip dir)
  118. no-shared [default]
  119. no-zlib [default]
  120. no-zlib-dynamic [default]
  121. IsMK1MF=1
  122. CC =cl
  123. CFLAG =-DOPENSSL_THREADS -DDSO_WIN32
  124. EX_LIBS =
  125. CPUID_OBJ =
  126. BN_ASM =bn_asm.o
  127. DES_ENC =des_enc.o fcrypt_b.o
  128. AES_ASM_OBJ =aes_core.o aes_cbc.o
  129. BF_ENC =bf_enc.o
  130. CAST_ENC =c_enc.o
  131. RC4_ENC =rc4_enc.o rc4_skey.o
  132. RC5_ENC =rc5_enc.o
  133. MD5_OBJ_ASM =
  134. SHA1_OBJ_ASM =
  135. RMD160_OBJ_ASM=
  136. PROCESSOR =
  137. RANLIB =true
  138. ARFLAGS =
  139. PERL =perl
  140. SIXTY_FOUR_BIT mode
  141. DES_INT used
  142. RC4_CHUNK is unsigned long long
  143. Configured for VC-WIN64A.
  144. W:\openssl\openssl-0.9.8k>ms\do_win64a
  145. W:\openssl\openssl-0.9.8k>perl util\mkfiles.pl 1>MINFO
  146. W:\openssl\openssl-0.9.8k>perl ms\uplink.pl win64a 1>ms\uptable.asm
  147. W:\openssl\openssl-0.9.8k>ml64 -c -Foms\uptable.obj ms\uptable.asm
  148. Microsoft (R) Macro Assembler (AMD64) Version 8.00.40310.39
  149. Copyright (C) Microsoft Corporation. All rights reserved.
  150. Assembling: ms\uptable.asm
  151. W:\openssl\openssl-0.9.8k>perl util\mk1mf.pl no-asm VC-WIN64A 1>ms\nt.mak
  152. W:\openssl\openssl-0.9.8k>perl util\mk1mf.pl dll no-asm VC-WIN64A 1>ms\ntdll.ma
  153. k
  154. W:\openssl\openssl-0.9.8k>perl util\mkdef.pl 32 libeay 1>ms\libeay32.def
  155. W:\openssl\openssl-0.9.8k>perl util\mkdef.pl 32 ssleay 1>ms\ssleay32.def
  156. CFLAG= /MD /Ox /W3 /Gs0 /GF /Gy /nologo
  157. -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DOPENSSL_SYSNAME_WIN32
  158. -DOPENSSL_SYSNAME_WINNT -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE
  159. -D_CRT_NONSTDC_NO_DEPRECATE -DOPENSSL_USE_APPLINK -I. /Fdout32dll
  160. -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2
  161. -DOPENSSL_NO_CMS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5
  162. -DOPENSSL_NO_DYNAMIC_ENGINE
  163. }
  164. interface
  165. {$I IdCompilerDefines.inc}
  166. {$IFNDEF USE_OPENSSL}
  167. {$message error Should not compile if USE_OPENSSL is not defined!!!}
  168. {$ENDIF}
  169. {$WRITEABLECONST OFF}
  170. {$IFNDEF FPC}
  171. {$IFDEF WIN32}
  172. {$ALIGN OFF}
  173. {$ENDIF}
  174. {$IFDEF WIN64}
  175. {$ALIGN ON}
  176. {$ENDIF}
  177. {$IFNDEF WIN32_OR_WIN64}
  178. {$IFNDEF VCL_CROSS_COMPILE}
  179. {$message error error alignment!}
  180. {$ENDIF}
  181. {$ENDIF}
  182. {$ELSE}
  183. {$packrecords C}
  184. {$ENDIF}
  185. //THe OpenSSL developers use a IF 0 and an IF 1 convention for selectively
  186. //enabling or disabling things.
  187. {$DEFINE USE_THIS}
  188. {.$DEFINE OMIT_THIS}
  189. {
  190. IMPORTANT!!!!
  191. A lot of IFDEF's and defines have to used because OpenSSL has a number of options'
  192. and those can effect the API. The options are determined by a "configure" script
  193. that generates apporpriate make files with the appropriate defines. If you do
  194. custom compiles of OpenSSL or if it's compiled differently that what I assume,
  195. you will need to add or deactivate the defines.
  196. my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
  197. # MD2_CHAR slags pentium pros
  198. my $x86_gcc_opts="RC4_INDEX MD2_INT";
  199. ...
  200. # This is what $depflags will look like with the above defaults
  201. # (we need this to see if we should advise the user to run "make depend"):
  202. my $default_depflags = " -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_CMS -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED";
  203. }
  204. // # Our development configs
  205. // "purify", "purify gcc:-g -DPURIFY -Wall::(unknown)::-lsocket -lnsl::::",
  206. // "debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror::(unknown)::-lefence::::",
  207. // "debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown):::::bn86-elf.o co86-elf.o",
  208. // "debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
  209. // "debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
  210. // "debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::::",
  211. // "debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
  212. // "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
  213. // "debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
  214. // "debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
  215. // "debug-steve64", "gcc:-m64 -DL_ENDIAN -DTERMIO -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -DOPENSSL_NO_DEPRECATED -g -pedantic -Wall -Werror -Wno-long-long -Wsign-compare -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  216. // "debug-steve32", "gcc:-m32 -DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -DOPENSSL_NO_DEPRECATED -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  217. // "debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -m32 -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
  218. // "debug-steve-opt", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -m32 -O3 -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
  219. // "debug-steve-linux-pseudo64", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
  220. // "debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  221. // "debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  222. // "debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  223. // "debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  224. // "debug-geoff","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  225. // "debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
  226. // "debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
  227. // "debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  228. // "debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  229. // "dist", "cc:-O::(unknown)::::::",
  230. // # Basic configs that should work on any (32 and less bit) box
  231. // "gcc", "gcc:-O3::(unknown):::BN_LLONG:::",
  232. // "cc", "cc:-O::(unknown)::::::",
  233. // ####VOS Configurations
  234. // "vos-gcc","gcc:-O3 -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DB_ENDIAN::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
  235. // "debug-vos-gcc","gcc:-O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DB_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
  236. // #### Solaris x86 with GNU C setups
  237. // # -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have to do it
  238. // # here because whenever GNU C instantiates an assembler template it
  239. // # surrounds it with #APP #NO_APP comment pair which (at least Solaris
  240. // # 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic"
  241. // # error message.
  242. // "solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  243. // # -shared -static-libgcc might appear controversial, but modules taken
  244. // # from static libgcc do not have relocations and linking them into our
  245. // # shared objects doesn't have any negative side-effects. On the contrary,
  246. // # doing so makes it possible to use gcc shared build with Sun C. Given
  247. // # that gcc generates faster code [thanks to inline assembler], I would
  248. // # actually recommend to consider using gcc shared build even with vendor
  249. // # compiler:-)
  250. // # <[email protected]>
  251. // "solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  252. //
  253. // #### Solaris x86 with Sun C setups
  254. // "solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  255. // "solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  256. // #### SPARC Solaris with GNU C setups
  257. // "solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  258. // "solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  259. // # -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
  260. // "solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  261. // "solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  262. // ####
  263. // "debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  264. // "debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  265. // #### SPARC Solaris with Sun C setups
  266. // # SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
  267. // # SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
  268. // # SC5.0 note: Compiler common patch 107357-01 or later is required!
  269. // "solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  270. // "solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  271. // "solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  272. // "solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
  273. // ####
  274. // "debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  275. // "debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  276. // #### SunOS configs, assuming sparc for the gcc one.
  277. // #"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
  278. // "sunos-gcc","gcc:-O3 -mv8 -Dssize_t=int::(unknown):SUNOS::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1:${no_asm}::",
  279. // #### IRIX 5.x configs
  280. // # -mips2 flag is added by ./config when appropriate.
  281. // "irix-gcc","gcc:-O3 -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${no_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  282. // "irix-cc", "cc:-O2 -use_readonly_const -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC2 DES_UNROLL BF_PTR:${no_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  283. // #### IRIX 6.x configs
  284. // # Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
  285. // # './Configure irix-cc -o32' manually.
  286. // "irix-mips3-gcc","gcc:-mabi=n32 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT::bn-mips3.o::::::::::dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  287. // "irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT::bn-mips3.o::::::::::dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  288. // # N64 ABI builds.
  289. // "irix64-mips4-gcc","gcc:-mabi=64 -mips4 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::bn-mips3.o::::::::::dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  290. // "irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::bn-mips3.o::::::::::dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  291. // #### Unified HP-UX ANSI C configs.
  292. // # Special notes:
  293. // # - Originally we were optimizing at +O4 level. It should be noted
  294. // # that the only difference between +O3 and +O4 is global inter-
  295. // # procedural analysis. As it has to be performed during the link
  296. // # stage the compiler leaves behind certain pseudo-code in lib*.a
  297. // # which might be release or even patch level specific. Generating
  298. // # the machine code for and analyzing the *whole* program appears
  299. // # to be *extremely* memory demanding while the performance gain is
  300. // # actually questionable. The situation is intensified by the default
  301. // # HP-UX data set size limit (infamous 'maxdsiz' tunable) of 64MB
  302. // # which is way too low for +O4. In other words, doesn't +O3 make
  303. // # more sense?
  304. // # - Keep in mind that the HP compiler by default generates code
  305. // # suitable for execution on the host you're currently compiling at.
  306. // # If the toolkit is ment to be used on various PA-RISC processors
  307. // # consider './config +DAportable'.
  308. // # - +DD64 is chosen in favour of +DA2.0W because it's meant to be
  309. // # compatible with *future* releases.
  310. // # - If you run ./Configure hpux-parisc-[g]cc manually don't forget to
  311. // # pass -D_REENTRANT on HP-UX 10 and later.
  312. // # - -DMD32_XARRAY triggers workaround for compiler bug we ran into in
  313. // # 32-bit message digests. (For the moment of this writing) HP C
  314. // # doesn't seem to "digest" too many local variables (they make "him"
  315. // # chew forever:-). For more details look-up MD32_XARRAY comment in
  316. // # crypto/sha/sha_lcl.h.
  317. // # <[email protected]>
  318. // #
  319. // # Since there is mention of this in shlib/hpux10-cc.sh
  320. // "hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  321. // "hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  322. // "hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1::pa-risc2.o::::::::::dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  323. // "hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  324. // # More attempts at unified 10.X and 11.X targets for HP C compiler.
  325. // #
  326. // # Chris Ruemmler <[email protected]>
  327. // # Kevin Steves <[email protected]>
  328. // "hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  329. // "hpux-parisc1_0-cc","cc:+DAportable +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  330. // "hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2.o::::::::::dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  331. // "hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  332. // # HP/UX IA-64 targets
  333. // "hpux-ia64-cc","cc:-Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD32 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  334. // # Frank Geurts <[email protected]> has patiently assisted with
  335. // # with debugging of the following config.
  336. // "hpux64-ia64-cc","cc:-Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  337. // # GCC builds...
  338. // "hpux-ia64-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:-fpic:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  339. // "hpux64-ia64-gcc","gcc:-mlp64 -O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:-fpic:-mlp64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  340. // # Legacy HPUX 9.X configs...
  341. // "hpux-cc", "cc:-DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY -Ae +ESlit +O2 -z::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  342. // "hpux-gcc", "gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  343. // #### HP MPE/iX http://jazz.external.hp.com/src/openssl/
  344. // "MPE/iX-gcc", "gcc:-D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
  345. // # DEC Alpha OSF/1/Tru64 targets.
  346. // #
  347. // # "What's in a name? That which we call a rose
  348. // # By any other word would smell as sweet."
  349. // #
  350. // # - William Shakespeare, "Romeo & Juliet", Act II, scene II.
  351. // #
  352. // # For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version
  353. // #
  354. // "osf1-alpha-gcc", "gcc:-O3::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
  355. // "osf1-alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
  356. // "tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared::-msym:.so",
  357. // ####
  358. // #### Variety of LINUX:-)
  359. // ####
  360. // # *-generic* is endian-neutral target, but ./config is free to
  361. // # throw in -D[BL]_ENDIAN, whichever appropriate...
  362. // "linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  363. // "linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc32.o::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  364. // #### IA-32 targets...
  365. // "linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  366. // "linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  367. // "linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
  368. // ####
  369. // "linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  370. // "linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc64.o::::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  371. // "linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  372. // "linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  373. // "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  374. // "linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  375. // #### SPARC Linux setups
  376. // # Ray Miller <[email protected]> has patiently
  377. // # assisted with debugging of following two configs.
  378. // "linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  379. // # it's a real mess with -mcpu=ultrasparc option under Linux, but
  380. // # -Wa,-Av8plus should do the trick no matter what.
  381. // "linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  382. // # GCC 3.1 is a requirement
  383. // "linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  384. // #### Alpha Linux with GNU C and Compaq C setups
  385. // # Special notes:
  386. // # - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
  387. // # ought to run './Configure linux-alpha+bwx-gcc' manually, do
  388. // # complement the command line with -mcpu=ev56, -mcpu=ev6 or whatever
  389. // # which is appropriate.
  390. // # - If you use ccc keep in mind that -fast implies -arch host and the
  391. // # compiler is free to issue instructions which gonna make elder CPU
  392. // # choke. If you wish to build "blended" toolkit, add -arch generic
  393. // # *after* -fast and invoke './Configure linux-alpha-ccc' manually.
  394. // #
  395. // # <[email protected]>
  396. // #
  397. // "linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  398. // "linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  399. // "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${no_asm}",
  400. // "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${no_asm}",
  401. // #### *BSD [do see comment about ${BSDthreads} above!]
  402. // "BSD-generic32","gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  403. // "BSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  404. // "BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  405. // "debug-BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall -g::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  406. // "BSD-sparcv8", "gcc:-DB_ENDIAN -DTERMIOS -O3 -mv8 -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  407. // "BSD-generic64","gcc:-DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  408. // # -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
  409. // # simply *happens* to work around a compiler bug in gcc 3.3.3,
  410. // # triggered by RIPEMD160 code.
  411. // "BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  412. // "BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  413. // "BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  414. // "bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall::(unknown)::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  415. // "nextstep", "cc:-O -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
  416. // "nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
  417. // # NCR MP-RAS UNIX ver 02.03.01
  418. // "ncr-scde","cc:-O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw::(unknown)::-lsocket -lnsl -lc89:${x86_gcc_des} ${x86_gcc_opts}:::",
  419. // # QNX
  420. // "qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown):::${x86_gcc_des} ${x86_gcc_opts}:",
  421. // "qnx6", "cc:-DL_ENDIAN -DTERMIOS::(unknown)::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:",
  422. // #### SCO/Caldera targets.
  423. // #
  424. // # Originally we had like unixware-*, unixware-*-pentium, unixware-*-p6, etc.
  425. // # Now we only have blended unixware-* as it's the only one used by ./config.
  426. // # If you want to optimize for particular microarchitecture, bypass ./config
  427. // # and './Configure unixware-7 -Kpentium_pro' or whatever appropriate.
  428. // # Note that not all targets include assembler support. Mostly because of
  429. // # lack of motivation to support out-of-date platforms with out-of-date
  430. // # compiler drivers and assemblers. Tim Rice <[email protected]> has
  431. // # patiently assisted to debug most of it.
  432. // #
  433. // # UnixWare 2.0x fails destest with -O.
  434. // "unixware-2.0","cc:-DFILIO_H -DNO_STRINGS_H::-Kthread::-lsocket -lnsl -lresolv -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
  435. // "unixware-2.1","cc:-O -DFILIO_H::-Kthread::-lsocket -lnsl -lresolv -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
  436. // "unixware-7","cc:-O -DFILIO_H -Kalloca::-Kthread::-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}:${x86_elf_asm}:dlfcn:svr5-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  437. // "unixware-7-gcc","gcc:-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -march=pentium -Wall::-D_REENTRANT::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:gnu-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  438. // # SCO 5 - Ben Laurie <[email protected]> says the -O breaks the SCO cc.
  439. // "sco5-cc", "cc:-belf::(unknown)::-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  440. // "sco5-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  441. // #### IBM's AIX.
  442. // "aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
  443. // "aix-gcc", "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
  444. // "aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
  445. // # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
  446. // # at build time. $OBJECT_MODE is respected at ./config stage!
  447. // "aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
  448. // "aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
  449. // #
  450. // # Cray T90 and similar (SDSC)
  451. // # It's Big-endian, but the algorithms work properly when B_ENDIAN is NOT
  452. // # defined. The T90 ints and longs are 8 bytes long, and apparently the
  453. // # B_ENDIAN code assumes 4 byte ints. Fortunately, the non-B_ENDIAN and
  454. // # non L_ENDIAN code aligns the bytes in each word correctly.
  455. // #
  456. // # The BIT_FIELD_LIMITS define is to avoid two fatal compiler errors:
  457. // #'Taking the address of a bit field is not allowed. '
  458. // #'An expression with bit field exists as the operand of "sizeof" '
  459. // # (written by Wayne Schroeder <[email protected]>)
  460. // #
  461. // # j90 is considered the base machine type for unicos machines,
  462. // # so this configuration is now called "cray-j90" ...
  463. // "cray-j90", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::(unknown):CRAY::SIXTY_FOUR_BIT_LONG DES_INT:::",
  464. // #
  465. // # Cray T3E (Research Center Juelich, [email protected])
  466. // #
  467. // # The BIT_FIELD_LIMITS define was written for the C90 (it seems). I added
  468. // # another use. Basically, the problem is that the T3E uses some bit fields
  469. // # for some st_addr stuff, and then sizeof and address-of fails
  470. // # I could not use the ams/alpha.o option because the Cray assembler, 'cam'
  471. // # did not like it.
  472. // "cray-t3e", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::(unknown):CRAY::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:::",
  473. // # DGUX, 88100.
  474. // "dgux-R3-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):::RC4_INDEX DES_UNROLL:::",
  475. // "dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::-lnsl -lsocket:RC4_INDEX DES_UNROLL:::",
  476. // "dgux-R4-x86-gcc", "gcc:-O3 -fomit-frame-pointer -DL_ENDIAN::(unknown)::-lnsl -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
  477. // # Sinix/ReliantUNIX RM400
  478. // # NOTE: The CDS++ Compiler up to V2.0Bsomething has the IRIX_CC_BUG optimizer problem. Better use -g */
  479. // "ReliantUNIX","cc:-KPIC -g -DTERMIOS -DB_ENDIAN::-Kthread:SNI:-lsocket -lnsl -lc -L/usr/ucblib -lucb:BN_LLONG DES_PTR DES_RISC2 DES_UNROLL BF_PTR:${no_asm}:dlfcn:reliantunix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
  480. // "SINIX","cc:-O::(unknown):SNI:-lsocket -lnsl -lc -L/usr/ucblib -lucb:RC4_INDEX RC4_CHAR:::",
  481. // "SINIX-N","/usr/ucb/cc:-O2 -misaligned::(unknown)::-lucb:RC4_INDEX RC4_CHAR:::",
  482. // # SIEMENS BS2000/OSD: an EBCDIC-based mainframe
  483. // "BS2000-OSD","c89:-O -XLLML -XLLMK -XL -DB_ENDIAN -DTERMIOS -DCHARSET_EBCDIC::(unknown)::-lsocket -lnsl:THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
  484. // # OS/390 Unix an EBCDIC-based Unix system on IBM mainframe
  485. // # You need to compile using the c89.sh wrapper in the tools directory, because the
  486. // # IBM compiler does not like the -L switch after any object modules.
  487. // #
  488. // "OS390-Unix","c89.sh:-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE::(unknown):::THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
  489. // # Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
  490. // "VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32",
  491. // "VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32",
  492. // # Visual C targets
  493. // "VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
  494. // "VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
  495. // "VC-WIN32","cl::::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
  496. // # Borland C++ 4.5
  497. // "BC-32","bcc32::::WIN32::BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN:${no_asm}:win32",
  498. // # MinGW
  499. // "mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall -D_WIN32_WINNT=0x333:::MINGW32:-lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin -shared:.dll.a",
  500. // # UWIN
  501. // "UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
  502. // # Cygwin
  503. // "Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
  504. // "Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
  505. // "debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
  506. // # NetWare from David Ward ([email protected])
  507. // # requires either MetroWerks NLM development tools, or gcc / nlmconv
  508. // # NetWare defaults socket bio to WinSock sockets. However,
  509. // # the builds can be configured to use BSD sockets instead.
  510. // # netware-clib => legacy CLib c-runtime support
  511. // "netware-clib", "mwccnlm::::::${x86_gcc_opts}::",
  512. // "netware-clib-bsdsock", "mwccnlm::::::${x86_gcc_opts}::",
  513. // "netware-clib-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::",
  514. // "netware-clib-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::",
  515. // # netware-libc => LibC/NKS support
  516. // "netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
  517. // "netware-libc-bsdsock", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
  518. // "netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
  519. // "netware-libc-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
  520. // # DJGPP
  521. // "DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
  522. // # Ultrix from Bernhard Simon <[email protected]>
  523. // "ultrix-cc","cc:-std1 -O -Olimit 2500 -DL_ENDIAN::(unknown):::::::",
  524. // "ultrix-gcc","gcc:-O3 -DL_ENDIAN::(unknown):::BN_LLONG::::",
  525. // # K&R C is no longer supported; you need gcc on old Ultrix installations
  526. // ##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown):::::::",
  527. // ##### MacOS X (a.k.a. Rhapsody or Darwin) setup
  528. // "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
  529. // "darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
  530. // "darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc64.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
  531. // "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
  532. // "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
  533. // "darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
  534. // "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
  535. // ##### A/UX
  536. // "aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
  537. // ##### Sony NEWS-OS 4.x
  538. // "newsos4-gcc","gcc:-O -DB_ENDIAN::(unknown):NEWS4:-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
  539. // ##### GNU Hurd
  540. // "hurd-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
  541. // ##### OS/2 EMX
  542. // "OS2-EMX", "gcc::::::::",
  543. // ##### VxWorks for various targets
  544. // "vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
  545. // "vxworks-ppc750","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h \$(DEBUG_FLAG):::VXWORKS:-r:::::",
  546. // "vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
  547. // "vxworks-ppc860","ccppc:-nostdinc -msoft-float -DCPU=PPC860 -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
  548. // "vxworks-mipsle","ccmips:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r::${no_asm}::::::ranlibmips:",
  549. // ##### Compaq Non-Stop Kernel (Tandem)
  550. // "tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN::(unknown):::THIRTY_TWO_BIT:::",
  551. {enable if you want FIPS support and are using an openssl library with FIPS support compiled in.}
  552. {$DEFINE OPENSSL_FIPS}
  553. //use this only for Safe Stack define and some define changes in OpenSSL 1.0
  554. //defines.
  555. {$UNDEF OPENSSL_1_0}
  556. {$IFDEF WIN32}
  557. {$DEFINE OPENSSL_SYSNAME_WIN32}
  558. {$DEFINE OPENSSL_SYS_WIN32}
  559. {$DEFINE L_ENDIAN}
  560. {$DEFINE DSO_WIN32}
  561. {$DEFINE BN_LLONG}
  562. {$DEFINE RC4_INDEX}
  563. {$DEFINE EXPORT_VAR_AS_FN}
  564. {$DEFINE RC4_INDEX}
  565. {$DEFINE MD2_INT}
  566. {$DEFINE _CRT_SECURE_NO_DEPRECATE}
  567. {$DEFINE _CRT_NONSTDC_NO_DEPRECATE}
  568. {$DEFINE BN_ASM}
  569. {$DEFINE MD5_ASM}
  570. {$DEFINE SHA1_ASM}
  571. {$DEFINE RMD160_ASM}
  572. {$DEFINE OPENSSL_NO_CMS}
  573. {$DEFINE OPENSSL_NO_GMP}
  574. {$DEFINE OPENSSL_NO_CAMELLIA}
  575. {$DEFINE OPENSSL_NO_RC5}
  576. {$DEFINE OPENSSL_NO_MD2}
  577. {$DEFINE OPENSSL_NO_MDC2}
  578. {$DEFINE OPENSSL_NO_KRB5}
  579. {$DEFINE OPENSSL_NO_MDC}
  580. {$DEFINE OPENSSL_NO_DYNAMIC_ENGINE}
  581. {$DEFINE OPENSSL_NO_RFC3779}
  582. {$DEFINE OPENSSL_NO_SEED}
  583. {$DEFINE OPENSSL_NO_CAPIENG}
  584. {$DEFINE OPENSSL_NO_JPAKE}
  585. {$DEFINE OPENSSL_1_0}
  586. {$ENDIF}
  587. {$IFDEF WINCE}
  588. {$DEFINE BN_LLONG}
  589. {$DEFINE RC4_INDEX}
  590. {$DEFINE EXPORT_VAR_AS_FN}
  591. {$DEFINE RC4_INDEX}
  592. {$DEFINE MD2_INT}
  593. {$DEFINE OPENSSL_NO_CMS}
  594. {$DEFINE OPENSSL_NO_CAMELLIA}
  595. {$DEFINE OPENSSL_NO_RC5}
  596. {$DEFINE OPENSSL_NO_MD2}
  597. {$DEFINE OPENSSL_NO_MDC2}
  598. {$DEFINE OPENSSL_NO_KRB5}
  599. {$DEFINE OPENSSL_NO_DYNAMIC_ENGINE}
  600. {$DEFINE EXPORT_VAR_AS_FN}
  601. {$DEFINE OPENSSL_NO_RFC3779}
  602. {$DEFINE OPENSSL_NO_SEED}
  603. {$DEFINE OPENSSL_NO_CAPIENG}
  604. {$DEFINE OPENSSL_NO_JPAKE}
  605. {$ENDIF}
  606. {$IFDEF WIN64}
  607. //"VC-WIN64A","cl::::WIN64A::-SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32",
  608. {$DEFINE SIXTY_FOUR_BIT}
  609. {$DEFINE RC4_CHUNK_LL}
  610. {$DEFINE DES_INT}
  611. {$DEFINE EXPORT_VAR_AS_FN}
  612. {$DEFINE L_ENDIAN}
  613. {$DEFINE DSO_WIN32}
  614. {$DEFINE OPENSSL_SYSNAME_WIN32}
  615. {$DEFINE OPENSSL_SYSNAME_WINNT}
  616. {$DEFINE UNICODE}
  617. {$DEFINE _UNICODE}
  618. {$DEFINE _CRT_SECURE_NO_DEPRECATE}
  619. {$DEFINE _CRT_NONSTDC_NO_DEPRECATE}
  620. {$DEFINE OPENSSL_NO_CAMELLIA}
  621. {$DEFINE OPENSSL_NO_RC5}
  622. {$DEFINE OPENSSL_NO_MD2}
  623. {$DEFINE OPENSSL_NO_MDC2}
  624. {$DEFINE OPENSSL_NO_KRB5}
  625. {$DEFINE OPENSSL_NO_DYNAMIC_ENGINE}
  626. {$DEFINE EXPORT_VAR_AS_FN}
  627. {$DEFINE OPENSSL_NO_GMP}
  628. {$DEFINE OPENSSL_NO_RFC3779}
  629. {$DEFINE OPENSSL_NO_SEED}
  630. {$DEFINE OPENSSL_NO_CAPIENG}
  631. {$DEFINE OPENSSL_NO_JPAKE}
  632. {$DEFINE OPENSSL_1_0}
  633. {$ENDIF}
  634. {$IFDEF UNIX}
  635. //attempt to get this right from FreeBSD CVS
  636. //Makefile compile options. The file is located
  637. //at http://www.freebsd.org/cgi/cvsweb.cgi/src/crypto/openssl/ .
  638. {$DEFINE OPENSSL_NO_CAMELLIA}
  639. {$DEFINE OPENSSL_NO_GMP}
  640. {$DEFINE OPENSSL_NO_MD2}
  641. {$DEFINE OPENSSL_NO_MDC2}
  642. {$DEFINE OPENSSL_NO_RC5}
  643. {$DEFINE OPENSSL_NO_SEED}
  644. {$DEFINE OPENSSL_NO_RFC3779}
  645. {$DEFINE OPENSSL_NO_CAPIENG}
  646. {$DEFINE OPENSSL_NO_JPAKE}
  647. {$ENDIF}
  648. //#if (defined(OPENSSL_NO_RSA) || defined(OPENSSL_NO_MD5)) && !defined(OPENSSL_NO_SSL2)
  649. //#define OPENSSL_NO_SSL2
  650. //#endif
  651. {$IFDEF OPENSSL_NO_RSA}
  652. {$IFNDEF OPENSSL_NO_SSL2}
  653. {$DEFINE OPENSSL_NO_SSL2}
  654. {$ENDIF}
  655. {$ENDIF}
  656. {$IFDEF OPENSSL_NO_MD5}
  657. {$IFNDEF OPENSSL_NO_SSL2}
  658. {$DEFINE OPENSSL_NO_SSL2}
  659. {$ENDIF}
  660. {$ENDIF}
  661. {$IFDEF WIN64}
  662. {$DEFINE SYS_WIN}
  663. {$ENDIF}
  664. {$IFDEF WIN32}
  665. {$DEFINE SYS_WIN}
  666. {$ENDIF}
  667. {$IFDEF WINCE}
  668. {$DEFINE SYS_WIN}
  669. {$ENDIF}
  670. {$IFNDEF SIXTY_FOUR_BIT}
  671. {$IFNDEF SIXTY_FOUR_BIT_LONG}
  672. //I've over simplified this because we don't support 8 or 16bit architectures
  673. {$DEFINE THIRTY_TWO_BIT}
  674. {$ENDIF}
  675. {$ENDIF}
  676. {$IFDEF OPENSSL_1_0}
  677. {$DEFINE DEBUG_SAFESTACK}
  678. {$UNDEF OPENSSL_NO_SEED}
  679. {$UNDEF OPENSSL_NO_MDC2}
  680. {$UNDEF OPENSSL_NO_CMS}
  681. {$UNDEF OPENSSL_NO_CAPIENG}
  682. {$ENDIF}
  683. // the following emits are a workaround to a
  684. // name conflict with Win32 API header files
  685. (*$HPPEMIT '#include <time.h>'*)
  686. {$IFDEF SYS_WIN}
  687. (*$HPPEMIT '#undef X509_NAME'*)
  688. (*$HPPEMIT '#undef X509_EXTENSIONS'*)
  689. (*$HPPEMIT '#undef X509_CERT_PAIR'*)
  690. (*$HPPEMIT '#undef PKCS7_ISSUER_AND_SERIAL'*)
  691. (*$HPPEMIT '#undef OCSP_RESPONSE'*)
  692. (*$HPPEMIT '#undef OCSP_REQUEST'*)
  693. (*$HPPEMIT '#undef PKCS7_SIGNER_INFO'*)
  694. (*$HPPEMIT '#undef OCSP_REQUEST'*)
  695. (*$HPPEMIT '#undef OCSP_RESPONSE'*)
  696. {$ENDIF}
  697. // the following emits are a workaround to allow
  698. // compiling in C++ without having to re-define
  699. // OpenSSL data types and without having to
  700. // include the OpenSSL header files
  701. {$IFDEF HAS_DIRECTIVE_HPPEMIT_NAMESPACE}
  702. {$HPPEMIT OPENNAMESPACE}
  703. {$ELSE}
  704. (*$HPPEMIT 'namespace Idsslopensslheaders'*)
  705. (*$HPPEMIT '{'*)
  706. {$ENDIF}
  707. (*$HPPEMIT ' struct SSL;'*)
  708. (*$HPPEMIT ' typedef SSL* PSSL;'*)
  709. (*$HPPEMIT ' struct SSL_CTX;'*)
  710. (*$HPPEMIT ' typedef SSL_CTX* PSSL_CTX;'*)
  711. (*$HPPEMIT ' struct SSL_METHOD;'*)
  712. (*$HPPEMIT ' typedef SSL_METHOD* PSSL_METHOD;'*)
  713. (*$HPPEMIT ' struct X509;'*)
  714. (*$HPPEMIT ' typedef X509* PX509;'*)
  715. (*$HPPEMIT ' struct X509_NAME;'*)
  716. (*$HPPEMIT ' typedef X509_NAME* PX509_NAME;'*)
  717. {$IFDEF HAS_DIRECTIVE_HPPEMIT_NAMESPACE}
  718. {$HPPEMIT CLOSENAMESPACE}
  719. {$ELSE}
  720. (*$HPPEMIT '}'*)
  721. {$ENDIF}
  722. // RLebeau: why are the following types not being placed in
  723. // the Idsslopensslheaders namespace with the types above?
  724. (*$HPPEMIT 'struct RSA;'*)
  725. (*$HPPEMIT 'typedef RSA* PRSA;'*)
  726. (*$HPPEMIT 'struct DSA;'*)
  727. (*$HPPEMIT 'typedef DSA* PDSA;'*)
  728. (*$HPPEMIT 'struct DH;'*)
  729. (*$HPPEMIT 'typedef DH* PDH;'*)
  730. (*$HPPEMIT 'typedef void* PEC_KEY;'*)
  731. uses
  732. IdException,
  733. IdGlobal,
  734. {$IFDEF WINDOWS}
  735. Windows,
  736. IdWinsock2,
  737. {$ENDIF}
  738. {$IFDEF USE_VCL_POSIX}
  739. Posix.SysSocket,
  740. Posix.SysTime,
  741. Posix.SysTypes,
  742. {$ENDIF}
  743. {$IFDEF KYLIXCOMPAT}
  744. libc,
  745. {$ENDIF}
  746. {$IFDEF USE_BASEUNIX}
  747. baseunix,
  748. sockets,
  749. {$ENDIF}
  750. SysUtils,
  751. IdCTypes;
  752. //temp for compile tests
  753. {.$DEFINE SSLEAY_MACROS}
  754. const
  755. {$IFNDEF HAS_PAnsiChar}
  756. cNull: TIdAnsiChar = 0;
  757. {$ENDIF}
  758. {$EXTERNALSYM CONF_MFLAGS_IGNORE_ERRORS}
  759. CONF_MFLAGS_IGNORE_ERRORS = $1;
  760. {$EXTERNALSYM CONF_MFLAGS_IGNORE_RETURN_CODES}
  761. CONF_MFLAGS_IGNORE_RETURN_CODES = $2;
  762. {$EXTERNALSYM CONF_MFLAGS_SILENT}
  763. CONF_MFLAGS_SILENT = $4;
  764. {$EXTERNALSYM CONF_MFLAGS_NO_DSO}
  765. CONF_MFLAGS_NO_DSO = $8;
  766. {$EXTERNALSYM CONF_MFLAGS_IGNORE_MISSING_FILE}
  767. CONF_MFLAGS_IGNORE_MISSING_FILE = $10;
  768. {$EXTERNALSYM CONF_MFLAGS_DEFAULT_SECTION}
  769. CONF_MFLAGS_DEFAULT_SECTION = $20;
  770. {$EXTERNALSYM CONF_F_CONF_DUMP_FP}
  771. CONF_F_CONF_DUMP_FP = 104;
  772. {$EXTERNALSYM CONF_F_CONF_LOAD}
  773. CONF_F_CONF_LOAD = 100;
  774. {$EXTERNALSYM CONF_F_CONF_LOAD_BIO}
  775. CONF_F_CONF_LOAD_BIO = 102;
  776. {$EXTERNALSYM CONF_F_CONF_LOAD_FP}
  777. CONF_F_CONF_LOAD_FP = 103;
  778. {$EXTERNALSYM CONF_F_CONF_MODULES_LOAD}
  779. CONF_F_CONF_MODULES_LOAD = 116;
  780. {$EXTERNALSYM CONF_F_DEF_LOAD}
  781. CONF_F_DEF_LOAD = 120;
  782. {$EXTERNALSYM CONF_F_DEF_LOAD_BIO}
  783. CONF_F_DEF_LOAD_BIO = 121;
  784. {$EXTERNALSYM CONF_F_MODULE_INIT}
  785. CONF_F_MODULE_INIT = 115;
  786. {$EXTERNALSYM CONF_F_MODULE_LOAD_DSO}
  787. CONF_F_MODULE_LOAD_DSO = 117;
  788. {$EXTERNALSYM CONF_F_CONF_PARSE_LIST}
  789. CONF_F_CONF_PARSE_LIST = 119;
  790. {$EXTERNALSYM CONF_F_MODULE_RUN}
  791. CONF_F_MODULE_RUN = 118;
  792. {$EXTERNALSYM CONF_F_NCONF_DUMP_BIO}
  793. CONF_F_NCONF_DUMP_BIO = 105;
  794. {$EXTERNALSYM CONF_F_NCONF_DUMP_FP}
  795. CONF_F_NCONF_DUMP_FP = 106;
  796. {$EXTERNALSYM CONF_F_NCONF_GET_NUMBER}
  797. CONF_F_NCONF_GET_NUMBER = 107;
  798. {$EXTERNALSYM CONF_F_NCONF_GET_NUMBER_E}
  799. CONF_F_NCONF_GET_NUMBER_E = 112;
  800. {$EXTERNALSYM CONF_F_NCONF_GET_SECTION}
  801. CONF_F_NCONF_GET_SECTION = 108;
  802. {$EXTERNALSYM CONF_F_NCONF_GET_STRING}
  803. CONF_F_NCONF_GET_STRING = 109;
  804. {$EXTERNALSYM CONF_F_NCONF_LOAD}
  805. CONF_F_NCONF_LOAD = 113;
  806. {$EXTERNALSYM CONF_F_NCONF_LOAD_BIO}
  807. CONF_F_NCONF_LOAD_BIO = 110;
  808. {$EXTERNALSYM CONF_F_NCONF_LOAD_FP}
  809. CONF_F_NCONF_LOAD_FP = 114;
  810. {$EXTERNALSYM CONF_F_NCONF_NEW}
  811. CONF_F_NCONF_NEW = 111;
  812. {$EXTERNALSYM CONF_F_STR_COPY}
  813. CONF_F_STR_COPY = 101;
  814. //* Reason codes. */
  815. {$EXTERNALSYM CONF_R_ERROR_LOADING_DSO}
  816. CONF_R_ERROR_LOADING_DSO = 110;
  817. {$EXTERNALSYM CONF_R_LIST_CANNOT_BE_NULL}
  818. CONF_R_LIST_CANNOT_BE_NULL = 115;
  819. {$EXTERNALSYM CONF_R_MISSING_CLOSE_SQUARE_BRACKET}
  820. CONF_R_MISSING_CLOSE_SQUARE_BRACKET = 100;
  821. {$EXTERNALSYM CONF_R_MISSING_EQUAL_SIGN}
  822. CONF_R_MISSING_EQUAL_SIGN = 101;
  823. {$EXTERNALSYM CONF_R_MISSING_FINISH_FUNCTION}
  824. CONF_R_MISSING_FINISH_FUNCTION = 111;
  825. {$EXTERNALSYM CONF_R_MISSING_INIT_FUNCTION}
  826. CONF_R_MISSING_INIT_FUNCTION = 112;
  827. {$EXTERNALSYM CONF_R_MODULE_INITIALIZATION_ERROR}
  828. CONF_R_MODULE_INITIALIZATION_ERROR = 109;
  829. {$EXTERNALSYM CONF_R_NO_CLOSE_BRACE}
  830. CONF_R_NO_CLOSE_BRACE = 102;
  831. {$EXTERNALSYM CONF_R_NO_CONF}
  832. CONF_R_NO_CONF = 105;
  833. {$EXTERNALSYM CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}
  834. CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE = 106;
  835. {$EXTERNALSYM CONF_R_NO_SECTION}
  836. CONF_R_NO_SECTION = 107;
  837. {$EXTERNALSYM CONF_R_NO_SUCH_FILE}
  838. CONF_R_NO_SUCH_FILE = 114;
  839. {$EXTERNALSYM CONF_R_NO_VALUE}
  840. CONF_R_NO_VALUE = 108;
  841. {$EXTERNALSYM CONF_R_UNABLE_TO_CREATE_NEW_SECTION}
  842. CONF_R_UNABLE_TO_CREATE_NEW_SECTION = 103;
  843. {$EXTERNALSYM CONF_R_UNKNOWN_MODULE_NAME}
  844. CONF_R_UNKNOWN_MODULE_NAME = 113;
  845. {$EXTERNALSYM CONF_R_VARIABLE_HAS_NO_VALUE}
  846. CONF_R_VARIABLE_HAS_NO_VALUE = 104;
  847. {$EXTERNALSYM ASN1_F_A2D_ASN1_OBJECT}
  848. ASN1_F_A2D_ASN1_OBJECT = 100;
  849. {$EXTERNALSYM ASN1_F_A2I_ASN1_ENUMERATED}
  850. ASN1_F_A2I_ASN1_ENUMERATED = 236;
  851. {$EXTERNALSYM ASN1_F_A2I_ASN1_INTEGER}
  852. ASN1_F_A2I_ASN1_INTEGER = 101;
  853. {$EXTERNALSYM ASN1_F_A2I_ASN1_STRING}
  854. ASN1_F_A2I_ASN1_STRING = 102;
  855. {$EXTERNALSYM ASN1_F_ASN1_COLLATE_PRIMITIVE}
  856. ASN1_F_ASN1_COLLATE_PRIMITIVE = 103;
  857. {$EXTERNALSYM ASN1_F_ASN1_D2I_BIO}
  858. ASN1_F_ASN1_D2I_BIO = 104;
  859. {$EXTERNALSYM ASN1_F_ASN1_D2I_FP}
  860. ASN1_F_ASN1_D2I_FP = 105;
  861. {$EXTERNALSYM ASN1_F_ASN1_DUP}
  862. ASN1_F_ASN1_DUP = 106;
  863. {$EXTERNALSYM ASN1_F_ASN1_ENUMERATED_SET}
  864. ASN1_F_ASN1_ENUMERATED_SET = 232;
  865. {$EXTERNALSYM ASN1_F_ASN1_ENUMERATED_TO_BN}
  866. ASN1_F_ASN1_ENUMERATED_TO_BN = 233;
  867. {$EXTERNALSYM ASN1_F_ASN1_GENERALIZEDTIME_NEW}
  868. ASN1_F_ASN1_GENERALIZEDTIME_NEW = 222;
  869. {$EXTERNALSYM ASN1_F_ASN1_GET_OBJECT}
  870. ASN1_F_ASN1_GET_OBJECT = 107;
  871. {$EXTERNALSYM ASN1_F_ASN1_HEADER_NEW}
  872. ASN1_F_ASN1_HEADER_NEW = 108;
  873. {$EXTERNALSYM ASN1_F_ASN1_I2D_BIO}
  874. ASN1_F_ASN1_I2D_BIO = 109;
  875. {$EXTERNALSYM ASN1_F_ASN1_I2D_FP}
  876. ASN1_F_ASN1_I2D_FP = 110;
  877. {$EXTERNALSYM ASN1_F_ASN1_INTEGER_SET}
  878. ASN1_F_ASN1_INTEGER_SET = 111;
  879. {$EXTERNALSYM ASN1_F_ASN1_INTEGER_TO_BN}
  880. ASN1_F_ASN1_INTEGER_TO_BN = 112;
  881. {$EXTERNALSYM ASN1_F_ASN1_OBJECT_NEW}
  882. ASN1_F_ASN1_OBJECT_NEW = 113;
  883. {$EXTERNALSYM ASN1_F_ASN1_OUTPUT_DATA}
  884. ASN1_F_ASN1_OUTPUT_DATA= 207;
  885. {$EXTERNALSYM ASN1_F_ASN1_PACK_STRING}
  886. ASN1_F_ASN1_PACK_STRING = 245;
  887. {$EXTERNALSYM ASN1_F_ASN1_PBE_SET}
  888. ASN1_F_ASN1_PBE_SET = 253;
  889. {$EXTERNALSYM ASN1_F_ASN1_SEQ_PACK}
  890. ASN1_F_ASN1_SEQ_PACK = 246;
  891. {$EXTERNALSYM ASN1_F_ASN1_SEQ_UNPACK}
  892. ASN1_F_ASN1_SEQ_UNPACK = 247;
  893. {$EXTERNALSYM ASN1_F_ASN1_SIGN}
  894. ASN1_F_ASN1_SIGN = 114;
  895. {$EXTERNALSYM ASN1_F_ASN1_STRING_NEW}
  896. ASN1_F_ASN1_STRING_NEW = 115;
  897. {$EXTERNALSYM ASN1_F_ASN1_STRING_TYPE_NEW}
  898. ASN1_F_ASN1_STRING_TYPE_NEW = 116;
  899. {$EXTERNALSYM ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING}
  900. ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING = 117;
  901. {$EXTERNALSYM ASN1_F_ASN1_TYPE_GET_OCTETSTRING}
  902. ASN1_F_ASN1_TYPE_GET_OCTETSTRING = 118;
  903. {$EXTERNALSYM ASN1_F_ASN1_TYPE_NEW}
  904. ASN1_F_ASN1_TYPE_NEW = 119;
  905. {$EXTERNALSYM ASN1_F_ASN1_UNPACK_STRING}
  906. ASN1_F_ASN1_UNPACK_STRING = 248;
  907. {$EXTERNALSYM ASN1_F_ASN1_UTCTIME_NEW}
  908. ASN1_F_ASN1_UTCTIME_NEW = 120;
  909. {$EXTERNALSYM ASN1_F_ASN1_VERIFY}
  910. ASN1_F_ASN1_VERIFY = 121;
  911. {$EXTERNALSYM ASN1_F_B64_READ_ASN1}
  912. ASN1_F_B64_READ_ASN1 = 208;
  913. {$EXTERNALSYM ASN1_F_B64_WRITE_ASN1}
  914. ASN1_F_B64_WRITE_ASN1 = 209;
  915. {$EXTERNALSYM ASN1_F_BIO_NEW_NDEF}
  916. ASN1_F_BIO_NEW_NDEF = 212;
  917. {$EXTERNALSYM ASN1_F_BITSTR_CB}
  918. ASN1_F_BITSTR_CB = 180;
  919. {$EXTERNALSYM ASN1_F_SMIME_READ_ASN1}
  920. ASN1_F_SMIME_READ_ASN1 = 210;
  921. {$EXTERNALSYM ASN1_F_SMIME_TEXT}
  922. ASN1_F_SMIME_TEXT = 211;
  923. {$EXTERNALSYM ASN1_F_AUTHORITY_KEYID_NEW}
  924. ASN1_F_AUTHORITY_KEYID_NEW = 237;
  925. {$EXTERNALSYM ASN1_F_BASIC_CONSTRAINTS_NEW}
  926. ASN1_F_BASIC_CONSTRAINTS_NEW = 226;
  927. {$EXTERNALSYM ASN1_F_BN_TO_ASN1_ENUMERATED}
  928. ASN1_F_BN_TO_ASN1_ENUMERATED = 234;
  929. {$EXTERNALSYM ASN1_F_BN_TO_ASN1_INTEGER}
  930. ASN1_F_BN_TO_ASN1_INTEGER = 122;
  931. {$EXTERNALSYM ASN1_F_D2I_ASN1_BIT_STRING}
  932. ASN1_F_D2I_ASN1_BIT_STRING = 123;
  933. {$EXTERNALSYM ASN1_F_D2I_ASN1_BMPSTRING}
  934. ASN1_F_D2I_ASN1_BMPSTRING = 124;
  935. {$EXTERNALSYM ASN1_F_D2I_ASN1_BOOLEAN}
  936. ASN1_F_D2I_ASN1_BOOLEAN = 125;
  937. {$EXTERNALSYM ASN1_F_D2I_ASN1_BYTES}
  938. ASN1_F_D2I_ASN1_BYTES = 126;
  939. {$EXTERNALSYM ASN1_F_D2I_ASN1_ENUMERATED}
  940. ASN1_F_D2I_ASN1_ENUMERATED = 235;
  941. {$EXTERNALSYM ASN1_F_D2I_ASN1_GENERALIZEDTIME}
  942. ASN1_F_D2I_ASN1_GENERALIZEDTIME = 223;
  943. {$EXTERNALSYM ASN1_F_D2I_ASN1_HEADER}
  944. ASN1_F_D2I_ASN1_HEADER = 127;
  945. {$EXTERNALSYM ASN1_F_D2I_ASN1_INTEGER}
  946. ASN1_F_D2I_ASN1_INTEGER = 128;
  947. {$EXTERNALSYM ASN1_F_D2I_ASN1_OBJECT}
  948. ASN1_F_D2I_ASN1_OBJECT = 129;
  949. {$EXTERNALSYM ASN1_F_D2I_ASN1_OCTET_STRING}
  950. ASN1_F_D2I_ASN1_OCTET_STRING = 130;
  951. {$EXTERNALSYM ASN1_F_D2I_ASN1_PRINT_TYPE}
  952. ASN1_F_D2I_ASN1_PRINT_TYPE = 131;
  953. {$EXTERNALSYM ASN1_F_D2I_ASN1_SET}
  954. ASN1_F_D2I_ASN1_SET = 132;
  955. {$EXTERNALSYM ASN1_F_D2I_ASN1_TIME}
  956. ASN1_F_D2I_ASN1_TIME = 224;
  957. {$EXTERNALSYM ASN1_F_D2I_ASN1_TYPE}
  958. ASN1_F_D2I_ASN1_TYPE = 133;
  959. {$EXTERNALSYM ASN1_F_D2I_ASN1_TYPE_BYTES}
  960. ASN1_F_D2I_ASN1_TYPE_BYTES = 134;
  961. {$EXTERNALSYM ASN1_F_D2I_ASN1_UINTEGER}
  962. ASN1_F_D2I_ASN1_UINTEGER = 280;
  963. {$EXTERNALSYM ASN1_F_D2I_ASN1_UTCTIME}
  964. ASN1_F_D2I_ASN1_UTCTIME = 135;
  965. {$EXTERNALSYM ASN1_F_D2I_ASN1_UTF8STRING}
  966. ASN1_F_D2I_ASN1_UTF8STRING = 266;
  967. {$EXTERNALSYM ASN1_F_D2I_ASN1_VISIBLESTRING}
  968. ASN1_F_D2I_ASN1_VISIBLESTRING = 267;
  969. {$EXTERNALSYM ASN1_F_D2I_AUTHORITY_KEYID}
  970. ASN1_F_D2I_AUTHORITY_KEYID = 238;
  971. {$EXTERNALSYM ASN1_F_D2I_BASIC_CONSTRAINTS}
  972. ASN1_F_D2I_BASIC_CONSTRAINTS = 227;
  973. {$EXTERNALSYM ASN1_F_D2I_DHPARAMS}
  974. ASN1_F_D2I_DHPARAMS = 136;
  975. {$EXTERNALSYM ASN1_F_D2I_DIST_POINT}
  976. ASN1_F_D2I_DIST_POINT = 276;
  977. {$EXTERNALSYM ASN1_F_D2I_DIST_POINT_NAME}
  978. ASN1_F_D2I_DIST_POINT_NAME = 277;
  979. {$EXTERNALSYM ASN1_F_D2I_DSAPARAMS}
  980. ASN1_F_D2I_DSAPARAMS = 137;
  981. {$EXTERNALSYM ASN1_F_D2I_DSAPRIVATEKEY}
  982. ASN1_F_D2I_DSAPRIVATEKEY = 138;
  983. {$EXTERNALSYM ASN1_F_D2I_DSAPUBLICKEY}
  984. ASN1_F_D2I_DSAPUBLICKEY = 139;
  985. {$EXTERNALSYM ASN1_F_D2I_GENERAL_NAME}
  986. ASN1_F_D2I_GENERAL_NAME = 230;
  987. {$EXTERNALSYM ASN1_F_D2I_NETSCAPE_CERT_SEQUENCE}
  988. ASN1_F_D2I_NETSCAPE_CERT_SEQUENCE = 228;
  989. {$EXTERNALSYM ASN1_F_D2I_NETSCAPE_PKEY}
  990. ASN1_F_D2I_NETSCAPE_PKEY = 140;
  991. {$EXTERNALSYM ASN1_F_D2I_NETSCAPE_RSA}
  992. ASN1_F_D2I_NETSCAPE_RSA = 141;
  993. {$EXTERNALSYM ASN1_F_D2I_NETSCAPE_RSA_2}
  994. ASN1_F_D2I_NETSCAPE_RSA_2 = 142;
  995. {$EXTERNALSYM ASN1_F_D2I_NETSCAPE_SPKAC}
  996. ASN1_F_D2I_NETSCAPE_SPKAC = 143;
  997. {$EXTERNALSYM ASN1_F_D2I_NETSCAPE_SPKI}
  998. ASN1_F_D2I_NETSCAPE_SPKI = 144;
  999. {$EXTERNALSYM ASN1_F_D2I_NOTICEREF}
  1000. ASN1_F_D2I_NOTICEREF = 268;
  1001. {$EXTERNALSYM ASN1_F_D2I_PBE2PARAM}
  1002. ASN1_F_D2I_PBE2PARAM = 262;
  1003. {$EXTERNALSYM ASN1_F_D2I_PBEPARAM}
  1004. ASN1_F_D2I_PBEPARAM = 249;
  1005. {$EXTERNALSYM ASN1_F_D2I_PBKDF2PARAM}
  1006. ASN1_F_D2I_PBKDF2PARAM = 263;
  1007. {$EXTERNALSYM ASN1_F_D2I_PKCS12}
  1008. ASN1_F_D2I_PKCS12 = 254;
  1009. {$EXTERNALSYM ASN1_F_D2I_PKCS12_BAGS}
  1010. ASN1_F_D2I_PKCS12_BAGS = 255;
  1011. {$EXTERNALSYM ASN1_F_D2I_PKCS12_MAC_DATA}
  1012. ASN1_F_D2I_PKCS12_MAC_DATA = 256;
  1013. {$EXTERNALSYM ASN1_F_D2I_PKCS12_SAFEBAG}
  1014. ASN1_F_D2I_PKCS12_SAFEBAG = 257;
  1015. {$EXTERNALSYM ASN1_F_D2I_PKCS7}
  1016. ASN1_F_D2I_PKCS7 = 145;
  1017. {$EXTERNALSYM ASN1_F_D2I_PKCS7_DIGEST}
  1018. ASN1_F_D2I_PKCS7_DIGEST = 146;
  1019. {$EXTERNALSYM ASN1_F_D2I_PKCS7_ENCRYPT}
  1020. ASN1_F_D2I_PKCS7_ENCRYPT = 147;
  1021. {$EXTERNALSYM ASN1_F_D2I_PKCS7_ENC_CONTENT}
  1022. ASN1_F_D2I_PKCS7_ENC_CONTENT = 148;
  1023. {$EXTERNALSYM ASN1_F_D2I_PKCS7_ENVELOPE}
  1024. ASN1_F_D2I_PKCS7_ENVELOPE = 149;
  1025. {$EXTERNALSYM ASN1_F_D2I_PKCS7_ISSUER_AND_SERIAL}
  1026. ASN1_F_D2I_PKCS7_ISSUER_AND_SERIAL = 150;
  1027. {$EXTERNALSYM ASN1_F_D2I_PKCS7_RECIP_INFO}
  1028. ASN1_F_D2I_PKCS7_RECIP_INFO = 151;
  1029. {$EXTERNALSYM ASN1_F_D2I_PKCS7_SIGNED}
  1030. ASN1_F_D2I_PKCS7_SIGNED = 152;
  1031. {$EXTERNALSYM ASN1_F_D2I_PKCS7_SIGNER_INFO}
  1032. ASN1_F_D2I_PKCS7_SIGNER_INFO = 153;
  1033. {$EXTERNALSYM ASN1_F_D2I_PKCS7_SIGN_ENVELOPE}
  1034. ASN1_F_D2I_PKCS7_SIGN_ENVELOPE = 154;
  1035. {$EXTERNALSYM ASN1_F_D2I_PKCS8_PRIV_KEY_INFO}
  1036. ASN1_F_D2I_PKCS8_PRIV_KEY_INFO = 250;
  1037. {$EXTERNALSYM ASN1_F_D2I_PKEY_USAGE_PERIOD}
  1038. ASN1_F_D2I_PKEY_USAGE_PERIOD = 239;
  1039. {$EXTERNALSYM ASN1_F_D2I_POLICYINFO}
  1040. ASN1_F_D2I_POLICYINFO = 269;
  1041. {$EXTERNALSYM ASN1_F_D2I_POLICYQUALINFO}
  1042. ASN1_F_D2I_POLICYQUALINFO = 270;
  1043. {$EXTERNALSYM ASN1_F_D2I_PRIVATEKEY}
  1044. ASN1_F_D2I_PRIVATEKEY = 155;
  1045. {$EXTERNALSYM ASN1_F_D2I_PUBLICKEY}
  1046. ASN1_F_D2I_PUBLICKEY = 156;
  1047. {$EXTERNALSYM ASN1_F_D2I_RSAPRIVATEKEY}
  1048. ASN1_F_D2I_RSAPRIVATEKEY = 157;
  1049. {$EXTERNALSYM ASN1_F_D2I_RSAPUBLICKEY}
  1050. ASN1_F_D2I_RSAPUBLICKEY = 158;
  1051. {$EXTERNALSYM ASN1_F_D2I_SXNET}
  1052. ASN1_F_D2I_SXNET = 241;
  1053. {$EXTERNALSYM ASN1_F_D2I_SXNETID}
  1054. ASN1_F_D2I_SXNETID = 243;
  1055. {$EXTERNALSYM ASN1_F_D2I_USERNOTICE}
  1056. ASN1_F_D2I_USERNOTICE = 271;
  1057. {$EXTERNALSYM ASN1_F_D2I_X509}
  1058. ASN1_F_D2I_X509 = 159;
  1059. {$EXTERNALSYM ASN1_F_D2I_X509_ALGOR}
  1060. ASN1_F_D2I_X509_ALGOR = 160;
  1061. {$EXTERNALSYM ASN1_F_D2I_X509_ATTRIBUTE}
  1062. ASN1_F_D2I_X509_ATTRIBUTE = 161;
  1063. {$EXTERNALSYM ASN1_F_D2I_X509_CINF}
  1064. ASN1_F_D2I_X509_CINF = 162;
  1065. {$EXTERNALSYM ASN1_F_D2I_X509_CRL}
  1066. ASN1_F_D2I_X509_CRL = 163;
  1067. {$EXTERNALSYM ASN1_F_D2I_X509_CRL_INFO}
  1068. ASN1_F_D2I_X509_CRL_INFO = 164;
  1069. {$EXTERNALSYM ASN1_F_D2I_X509_EXTENSION}
  1070. ASN1_F_D2I_X509_EXTENSION = 165;
  1071. {$EXTERNALSYM ASN1_F_D2I_X509_KEY}
  1072. ASN1_F_D2I_X509_KEY = 166;
  1073. {$EXTERNALSYM ASN1_F_D2I_X509_NAME}
  1074. ASN1_F_D2I_X509_NAME = 167;
  1075. {$EXTERNALSYM ASN1_F_D2I_X509_NAME_ENTRY}
  1076. ASN1_F_D2I_X509_NAME_ENTRY = 168;
  1077. {$EXTERNALSYM ASN1_F_D2I_X509_PKEY}
  1078. ASN1_F_D2I_X509_PKEY = 169;
  1079. {$EXTERNALSYM ASN1_F_D2I_X509_PUBKEY}
  1080. ASN1_F_D2I_X509_PUBKEY = 170;
  1081. {$EXTERNALSYM ASN1_F_D2I_X509_REQ}
  1082. ASN1_F_D2I_X509_REQ = 171;
  1083. {$EXTERNALSYM ASN1_F_D2I_X509_REQ_INFO}
  1084. ASN1_F_D2I_X509_REQ_INFO = 172;
  1085. {$EXTERNALSYM ASN1_F_D2I_X509_REVOKED}
  1086. ASN1_F_D2I_X509_REVOKED = 173;
  1087. {$EXTERNALSYM ASN1_F_D2I_X509_SIG}
  1088. ASN1_F_D2I_X509_SIG = 174;
  1089. {$EXTERNALSYM ASN1_F_D2I_X509_VAL}
  1090. ASN1_F_D2I_X509_VAL = 175;
  1091. {$EXTERNALSYM ASN1_F_DIST_POINT_NAME_NEW}
  1092. ASN1_F_DIST_POINT_NAME_NEW = 278;
  1093. {$EXTERNALSYM ASN1_F_DIST_POINT_NEW}
  1094. ASN1_F_DIST_POINT_NEW = 279;
  1095. {$EXTERNALSYM ASN1_F_GENERAL_NAME_NEW}
  1096. ASN1_F_GENERAL_NAME_NEW = 231;
  1097. {$EXTERNALSYM ASN1_F_I2D_ASN1_HEADER}
  1098. ASN1_F_I2D_ASN1_HEADER = 176;
  1099. {$EXTERNALSYM ASN1_F_I2D_ASN1_TIME}
  1100. ASN1_F_I2D_ASN1_TIME = 225;
  1101. {$EXTERNALSYM ASN1_F_I2D_DHPARAMS}
  1102. ASN1_F_I2D_DHPARAMS = 177;
  1103. {$EXTERNALSYM ASN1_F_I2D_DSAPARAMS}
  1104. ASN1_F_I2D_DSAPARAMS = 178;
  1105. {$EXTERNALSYM ASN1_F_I2D_DSAPRIVATEKEY}
  1106. ASN1_F_I2D_DSAPRIVATEKEY = 179;
  1107. {$EXTERNALSYM ASN1_F_I2D_DSAPUBLICKEY}
  1108. ASN1_F_I2D_DSAPUBLICKEY = 180;
  1109. {$EXTERNALSYM ASN1_F_I2D_NETSCAPE_RSA}
  1110. ASN1_F_I2D_NETSCAPE_RSA = 181;
  1111. {$EXTERNALSYM ASN1_F_I2D_PKCS7}
  1112. ASN1_F_I2D_PKCS7 = 182;
  1113. {$EXTERNALSYM ASN1_F_I2D_PRIVATEKEY}
  1114. ASN1_F_I2D_PRIVATEKEY = 183;
  1115. {$EXTERNALSYM ASN1_F_I2D_PUBLICKEY}
  1116. ASN1_F_I2D_PUBLICKEY = 184;
  1117. {$EXTERNALSYM ASN1_F_I2D_RSAPRIVATEKEY}
  1118. ASN1_F_I2D_RSAPRIVATEKEY = 185;
  1119. {$EXTERNALSYM ASN1_F_I2D_RSAPUBLICKEY}
  1120. ASN1_F_I2D_RSAPUBLICKEY = 186;
  1121. {$EXTERNALSYM ASN1_F_I2D_X509_ATTRIBUTE}
  1122. ASN1_F_I2D_X509_ATTRIBUTE = 187;
  1123. {$EXTERNALSYM ASN1_F_I2T_ASN1_OBJECT}
  1124. ASN1_F_I2T_ASN1_OBJECT = 188;
  1125. {$EXTERNALSYM ASN1_F_NETSCAPE_CERT_SEQUENCE_NEW}
  1126. ASN1_F_NETSCAPE_CERT_SEQUENCE_NEW = 229;
  1127. {$EXTERNALSYM ASN1_F_NETSCAPE_PKEY_NEW}
  1128. ASN1_F_NETSCAPE_PKEY_NEW = 189;
  1129. {$EXTERNALSYM ASN1_F_NETSCAPE_SPKAC_NEW}
  1130. ASN1_F_NETSCAPE_SPKAC_NEW = 190;
  1131. {$EXTERNALSYM ASN1_F_NETSCAPE_SPKI_NEW}
  1132. ASN1_F_NETSCAPE_SPKI_NEW = 191;
  1133. {$EXTERNALSYM ASN1_F_NOTICEREF_NEW}
  1134. ASN1_F_NOTICEREF_NEW = 272;
  1135. {$EXTERNALSYM ASN1_F_PBE2PARAM_NEW}
  1136. ASN1_F_PBE2PARAM_NEW = 264;
  1137. {$EXTERNALSYM ASN1_F_PBEPARAM_NEW}
  1138. ASN1_F_PBEPARAM_NEW = 251;
  1139. {$EXTERNALSYM ASN1_F_PBKDF2PARAM_NEW}
  1140. ASN1_F_PBKDF2PARAM_NEW = 265;
  1141. {$EXTERNALSYM ASN1_F_PKCS12_BAGS_NEW}
  1142. ASN1_F_PKCS12_BAGS_NEW = 258;
  1143. {$EXTERNALSYM ASN1_F_PKCS12_MAC_DATA_NEW}
  1144. ASN1_F_PKCS12_MAC_DATA_NEW = 259;
  1145. {$EXTERNALSYM ASN1_F_PKCS12_NEW}
  1146. ASN1_F_PKCS12_NEW = 260;
  1147. {$EXTERNALSYM ASN1_F_PKCS12_SAFEBAG_NEW}
  1148. ASN1_F_PKCS12_SAFEBAG_NEW = 261;
  1149. {$EXTERNALSYM ASN1_F_PKCS5_PBE2_SET}
  1150. ASN1_F_PKCS5_PBE2_SET = 281;
  1151. {$EXTERNALSYM ASN1_F_PKCS7_DIGEST_NEW}
  1152. ASN1_F_PKCS7_DIGEST_NEW = 192;
  1153. {$EXTERNALSYM ASN1_F_PKCS7_ENCRYPT_NEW}
  1154. ASN1_F_PKCS7_ENCRYPT_NEW = 193;
  1155. {$EXTERNALSYM ASN1_F_PKCS7_ENC_CONTENT_NEW}
  1156. ASN1_F_PKCS7_ENC_CONTENT_NEW = 194;
  1157. {$EXTERNALSYM ASN1_F_PKCS7_ENVELOPE_NEW}
  1158. ASN1_F_PKCS7_ENVELOPE_NEW = 195;
  1159. {$EXTERNALSYM ASN1_F_PKCS7_ISSUER_AND_SERIAL_NEW}
  1160. ASN1_F_PKCS7_ISSUER_AND_SERIAL_NEW = 196;
  1161. {$EXTERNALSYM ASN1_F_PKCS7_NEW}
  1162. ASN1_F_PKCS7_NEW = 197;
  1163. {$EXTERNALSYM ASN1_F_PKCS7_RECIP_INFO_NEW}
  1164. ASN1_F_PKCS7_RECIP_INFO_NEW = 198;
  1165. {$EXTERNALSYM ASN1_F_PKCS7_SIGNED_NEW}
  1166. ASN1_F_PKCS7_SIGNED_NEW = 199;
  1167. {$EXTERNALSYM ASN1_F_PKCS7_SIGNER_INFO_NEW}
  1168. ASN1_F_PKCS7_SIGNER_INFO_NEW = 200;
  1169. {$EXTERNALSYM ASN1_F_PKCS7_SIGN_ENVELOPE_NEW}
  1170. ASN1_F_PKCS7_SIGN_ENVELOPE_NEW = 201;
  1171. {$EXTERNALSYM ASN1_F_PKCS8_PRIV_KEY_INFO_NEW}
  1172. ASN1_F_PKCS8_PRIV_KEY_INFO_NEW = 252;
  1173. {$EXTERNALSYM ASN1_F_PKEY_USAGE_PERIOD_NEW}
  1174. ASN1_F_PKEY_USAGE_PERIOD_NEW = 240;
  1175. {$EXTERNALSYM ASN1_F_POLICYINFO_NEW}
  1176. ASN1_F_POLICYINFO_NEW = 273;
  1177. {$EXTERNALSYM ASN1_F_POLICYQUALINFO_NEW}
  1178. ASN1_F_POLICYQUALINFO_NEW = 274;
  1179. {$EXTERNALSYM ASN1_F_SXNETID_NEW}
  1180. ASN1_F_SXNETID_NEW = 244;
  1181. {$EXTERNALSYM ASN1_F_SXNET_NEW}
  1182. ASN1_F_SXNET_NEW = 242;
  1183. {$EXTERNALSYM ASN1_F_USERNOTICE_NEW}
  1184. ASN1_F_USERNOTICE_NEW = 275;
  1185. {$EXTERNALSYM ASN1_F_X509_ALGOR_NEW}
  1186. ASN1_F_X509_ALGOR_NEW = 202;
  1187. {$EXTERNALSYM ASN1_F_X509_ATTRIBUTE_NEW}
  1188. ASN1_F_X509_ATTRIBUTE_NEW = 203;
  1189. {$EXTERNALSYM ASN1_F_X509_CINF_NEW}
  1190. ASN1_F_X509_CINF_NEW = 204;
  1191. {$EXTERNALSYM ASN1_F_X509_CRL_INFO_NEW}
  1192. ASN1_F_X509_CRL_INFO_NEW = 205;
  1193. {$EXTERNALSYM ASN1_F_X509_CRL_NEW}
  1194. ASN1_F_X509_CRL_NEW = 206;
  1195. {$EXTERNALSYM ASN1_F_X509_DHPARAMS_NEW}
  1196. ASN1_F_X509_DHPARAMS_NEW = 207;
  1197. {$EXTERNALSYM ASN1_F_X509_EXTENSION_NEW}
  1198. ASN1_F_X509_EXTENSION_NEW = 208;
  1199. {$EXTERNALSYM ASN1_F_X509_INFO_NEW}
  1200. ASN1_F_X509_INFO_NEW = 209;
  1201. {$EXTERNALSYM ASN1_F_X509_KEY_NEW}
  1202. ASN1_F_X509_KEY_NEW = 210;
  1203. {$EXTERNALSYM ASN1_F_X509_NAME_ENTRY_NEW}
  1204. ASN1_F_X509_NAME_ENTRY_NEW = 211;
  1205. {$EXTERNALSYM ASN1_F_X509_NAME_NEW}
  1206. ASN1_F_X509_NAME_NEW = 212;
  1207. {$EXTERNALSYM ASN1_F_X509_NEW}
  1208. ASN1_F_X509_NEW = 213;
  1209. {$EXTERNALSYM ASN1_F_X509_PKEY_NEW}
  1210. ASN1_F_X509_PKEY_NEW = 214;
  1211. {$EXTERNALSYM ASN1_F_X509_PUBKEY_NEW}
  1212. ASN1_F_X509_PUBKEY_NEW = 215;
  1213. {$EXTERNALSYM ASN1_F_X509_REQ_INFO_NEW}
  1214. ASN1_F_X509_REQ_INFO_NEW = 216;
  1215. {$EXTERNALSYM ASN1_F_X509_REQ_NEW}
  1216. ASN1_F_X509_REQ_NEW = 217;
  1217. {$EXTERNALSYM ASN1_F_X509_REVOKED_NEW}
  1218. ASN1_F_X509_REVOKED_NEW = 218;
  1219. {$EXTERNALSYM ASN1_F_X509_SIG_NEW}
  1220. ASN1_F_X509_SIG_NEW = 219;
  1221. {$EXTERNALSYM ASN1_F_X509_VAL_FREE}
  1222. ASN1_F_X509_VAL_FREE = 220;
  1223. {$EXTERNALSYM ASN1_F_X509_VAL_NEW}
  1224. ASN1_F_X509_VAL_NEW = 221;
  1225. {$EXTERNALSYM ASN1_OBJECT_FLAG_CRITICAL}
  1226. ASN1_OBJECT_FLAG_CRITICAL = $02;
  1227. {$EXTERNALSYM ASN1_OBJECT_FLAG_DYNAMIC}
  1228. ASN1_OBJECT_FLAG_DYNAMIC = $01;
  1229. {$EXTERNALSYM ASN1_OBJECT_FLAG_DYNAMIC_DATA}
  1230. ASN1_OBJECT_FLAG_DYNAMIC_DATA = $08;
  1231. {$EXTERNALSYM ASN1_OBJECT_FLAG_DYNAMIC_STRINGS}
  1232. ASN1_OBJECT_FLAG_DYNAMIC_STRINGS = $04;
  1233. {$EXTERNALSYM ASN1_R_ADDING_OBJECT}
  1234. ASN1_R_ADDING_OBJECT = 171;
  1235. {$EXTERNALSYM ASN1_R_ASN1_PARSE_ERROR}
  1236. ASN1_R_ASN1_PARSE_ERROR= 198;
  1237. {$EXTERNALSYM ASN1_R_ASN1_SIG_PARSE_ERROR}
  1238. ASN1_R_ASN1_SIG_PARSE_ERROR = 199;
  1239. {$EXTERNALSYM ASN1_R_AUX_ERROR}
  1240. ASN1_R_AUX_ERROR = 100;
  1241. {$EXTERNALSYM ASN1_R_BAD_CLASS}
  1242. ASN1_R_BAD_CLASS = 101;
  1243. {$EXTERNALSYM ASN1_R_BAD_OBJECT_HEADER}
  1244. ASN1_R_BAD_OBJECT_HEADER = 102;
  1245. {$EXTERNALSYM ASN1_R_BAD_PASSWORD_READ}
  1246. ASN1_R_BAD_PASSWORD_READ = 103;
  1247. {$EXTERNALSYM ASN1_R_BAD_TAG}
  1248. ASN1_R_BAD_TAG = 104;
  1249. {$EXTERNALSYM ASN1_R_BMPSTRING_IS_WRONG_LENGTH}
  1250. ASN1_R_BMPSTRING_IS_WRONG_LENGTH = 210;
  1251. {$EXTERNALSYM ASN1_R_BN_LIB}
  1252. ASN1_R_BN_LIB = 105;
  1253. {$EXTERNALSYM ASN1_R_BOOLEAN_IS_WRONG_LENGTH}
  1254. ASN1_R_BOOLEAN_IS_WRONG_LENGTH = 106;
  1255. {$EXTERNALSYM ASN1_R_BUFFER_TOO_SMALL}
  1256. ASN1_R_BUFFER_TOO_SMALL = 107;
  1257. {$EXTERNALSYM ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}
  1258. ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER = 108;
  1259. {$EXTERNALSYM ASN1_R_DATA_IS_WRONG}
  1260. ASN1_R_DATA_IS_WRONG = 109;
  1261. {$EXTERNALSYM ASN1_R_DECODE_ERROR}
  1262. ASN1_R_DECODE_ERROR = 110;
  1263. {$EXTERNALSYM ASN1_R_DECODING_ERROR}
  1264. ASN1_R_DECODING_ERROR = 111;
  1265. {$EXTERNALSYM ASN1_R_DEPTH_EXCEEDED}
  1266. ASN1_R_DEPTH_EXCEEDED = 174;
  1267. {$EXTERNALSYM ASN1_R_ENCODE_ERROR}
  1268. ASN1_R_ENCODE_ERROR = 112;
  1269. {$EXTERNALSYM ASN1_R_ERROR_GETTING_TIME}
  1270. ASN1_R_ERROR_GETTING_TIME = 173;
  1271. {$EXTERNALSYM ASN1_R_ERROR_LOADING_SECTION}
  1272. ASN1_R_ERROR_LOADING_SECTION = 172;
  1273. {$EXTERNALSYM ASN1_R_ERROR_PARSING_SET_ELEMENT}
  1274. ASN1_R_ERROR_PARSING_SET_ELEMENT = 113;
  1275. {$EXTERNALSYM ASN1_R_ERROR_SETTING_CIPHER_PARAMS}
  1276. ASN1_R_ERROR_SETTING_CIPHER_PARAMS = 114;
  1277. {$EXTERNALSYM ASN1_R_EXPECTING_AN_INTEGER}
  1278. ASN1_R_EXPECTING_AN_INTEGER = 115;
  1279. {$EXTERNALSYM ASN1_R_EXPECTING_AN_OBJECT}
  1280. ASN1_R_EXPECTING_AN_OBJECT = 116;
  1281. {$EXTERNALSYM ASN1_R_EXPECTING_A_BOOLEAN}
  1282. ASN1_R_EXPECTING_A_BOOLEAN = 117;
  1283. {$EXTERNALSYM ASN1_R_EXPECTING_A_TIME}
  1284. ASN1_R_EXPECTING_A_TIME = 118;
  1285. {$EXTERNALSYM ASN1_R_EXPLICIT_LENGTH_MISMATCH}
  1286. ASN1_R_EXPLICIT_LENGTH_MISMATCH = 119;
  1287. {$EXTERNALSYM ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}
  1288. ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED = 120;
  1289. {$EXTERNALSYM ASN1_R_FIELD_MISSING}
  1290. ASN1_R_FIELD_MISSING = 121;
  1291. {$EXTERNALSYM ASN1_R_FIRST_NUM_TOO_LARGE}
  1292. ASN1_R_FIRST_NUM_TOO_LARGE = 122;
  1293. {$EXTERNALSYM ASN1_R_HEADER_TOO_LONG}
  1294. ASN1_R_HEADER_TOO_LONG = 123;
  1295. {$EXTERNALSYM ASN1_R_ILLEGAL_BITSTRING_FORMAT}
  1296. ASN1_R_ILLEGAL_BITSTRING_FORMAT = 175;
  1297. {$EXTERNALSYM ASN1_R_ILLEGAL_BOOLEAN}
  1298. ASN1_R_ILLEGAL_BOOLEAN = 176;
  1299. {$EXTERNALSYM ASN1_R_ILLEGAL_CHARACTERS}
  1300. ASN1_R_ILLEGAL_CHARACTERS = 124;
  1301. {$EXTERNALSYM ASN1_R_ILLEGAL_FORMAT}
  1302. ASN1_R_ILLEGAL_FORMAT = 177;
  1303. {$EXTERNALSYM ASN1_R_ILLEGAL_HEX}
  1304. ASN1_R_ILLEGAL_HEX = 178;
  1305. {$EXTERNALSYM ASN1_R_ILLEGAL_IMPLICIT_TAG}
  1306. ASN1_R_ILLEGAL_IMPLICIT_TAG = 179;
  1307. {$EXTERNALSYM ASN1_R_ILLEGAL_INTEGER}
  1308. ASN1_R_ILLEGAL_INTEGER = 180;
  1309. {$EXTERNALSYM ASN1_R_ILLEGAL_NESTED_TAGGING}
  1310. ASN1_R_ILLEGAL_NESTED_TAGGING = 181;
  1311. {$EXTERNALSYM ASN1_R_ILLEGAL_NULL}
  1312. ASN1_R_ILLEGAL_NULL = 125;
  1313. {$EXTERNALSYM ASN1_R_ILLEGAL_NULL_VALUE}
  1314. ASN1_R_ILLEGAL_NULL_VALUE = 182;
  1315. {$EXTERNALSYM ASN1_R_ILLEGAL_OBJECT}
  1316. ASN1_R_ILLEGAL_OBJECT = 183;
  1317. {$EXTERNALSYM ASN1_R_ILLEGAL_OPTIONAL_ANY}
  1318. ASN1_R_ILLEGAL_OPTIONAL_ANY = 126;
  1319. {$EXTERNALSYM ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}
  1320. ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE = 170;
  1321. {$EXTERNALSYM ASN1_R_ILLEGAL_TAGGED_ANY}
  1322. ASN1_R_ILLEGAL_TAGGED_ANY = 127;
  1323. {$EXTERNALSYM ASN1_R_ILLEGAL_TIME_VALUE}
  1324. ASN1_R_ILLEGAL_TIME_VALUE = 184;
  1325. {$EXTERNALSYM ASN1_R_INTEGER_NOT_ASCII_FORMAT}
  1326. ASN1_R_INTEGER_NOT_ASCII_FORMAT = 185;
  1327. {$EXTERNALSYM ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}
  1328. ASN1_R_INTEGER_TOO_LARGE_FOR_LONG = 128;
  1329. {$EXTERNALSYM ASN1_R_INVALID_BMPSTRING_LENGTH}
  1330. ASN1_R_INVALID_BMPSTRING_LENGTH = 129;
  1331. {$EXTERNALSYM ASN1_R_INVALID_DIGIT}
  1332. ASN1_R_INVALID_DIGIT = 130;
  1333. {$EXTERNALSYM ASN1_R_INVALID_MIME_TYPE}
  1334. ASN1_R_INVALID_MIME_TYPE = 200;
  1335. {$EXTERNALSYM ASN1_R_INVALID_MODIFIER}
  1336. ASN1_R_INVALID_MODIFIER = 186;
  1337. {$EXTERNALSYM ASN1_R_INVALID_NUMBER}
  1338. ASN1_R_INVALID_NUMBER = 187;
  1339. {$EXTERNALSYM ASN1_R_INVALID_OBJECT_ENCODING}
  1340. ASN1_R_INVALID_OBJECT_ENCODING = 212;
  1341. {$EXTERNALSYM ASN1_R_INVALID_SEPARATOR}
  1342. ASN1_R_INVALID_SEPARATOR = 131;
  1343. {$EXTERNALSYM ASN1_R_INVALID_TIME_FORMAT}
  1344. ASN1_R_INVALID_TIME_FORMAT = 132;
  1345. {$EXTERNALSYM ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}
  1346. ASN1_R_INVALID_UNIVERSALSTRING_LENGTH = 133;
  1347. {$EXTERNALSYM ASN1_R_INVALID_UTF8STRING}
  1348. ASN1_R_INVALID_UTF8STRING = 134;
  1349. {$EXTERNALSYM ASN1_R_IV_TOO_LARGE}
  1350. ASN1_R_IV_TOO_LARGE = 135;
  1351. {$EXTERNALSYM ASN1_R_LENGTH_ERROR}
  1352. ASN1_R_LENGTH_ERROR = 136;
  1353. {$EXTERNALSYM ASN1_R_LIST_ERROR}
  1354. ASN1_R_LIST_ERROR = 188;
  1355. {$EXTERNALSYM ASN1_R_MIME_NO_CONTENT_TYPE}
  1356. ASN1_R_MIME_NO_CONTENT_TYPE = 201;
  1357. {$EXTERNALSYM ASN1_R_MIME_PARSE_ERROR}
  1358. ASN1_R_MIME_PARSE_ERROR = 202;
  1359. {$EXTERNALSYM ASN1_R_MIME_SIG_PARSE_ERROR}
  1360. ASN1_R_MIME_SIG_PARSE_ERROR = 203;
  1361. {$EXTERNALSYM ASN1_R_MISSING_EOC}
  1362. ASN1_R_MISSING_EOC = 137;
  1363. {$EXTERNALSYM ASN1_R_MISSING_SECOND_NUMBER}
  1364. ASN1_R_MISSING_SECOND_NUMBER = 138;
  1365. {$EXTERNALSYM ASN1_R_MISSING_VALUE}
  1366. ASN1_R_MISSING_VALUE = 189;
  1367. {$EXTERNALSYM ASN1_R_MSTRING_NOT_UNIVERSAL}
  1368. ASN1_R_MSTRING_NOT_UNIVERSAL = 139;
  1369. {$EXTERNALSYM ASN1_R_MSTRING_WRONG_TAG}
  1370. ASN1_R_MSTRING_WRONG_TAG = 140;
  1371. {$EXTERNALSYM ASN1_R_NESTED_ASN1_STRING}
  1372. ASN1_R_NESTED_ASN1_STRING = 197;
  1373. {$EXTERNALSYM ASN1_R_NON_HEX_CHARACTERS}
  1374. ASN1_R_NON_HEX_CHARACTERS = 141;
  1375. {$EXTERNALSYM ASN1_R_NOT_ASCII_FORMAT}
  1376. ASN1_R_NOT_ASCII_FORMAT = 190;
  1377. {$EXTERNALSYM ASN1_R_NOT_ENOUGH_DATA}
  1378. ASN1_R_NOT_ENOUGH_DATA = 142;
  1379. {$EXTERNALSYM ASN1_R_NO_CONTENT_TYPE}
  1380. ASN1_R_NO_CONTENT_TYPE = 204;
  1381. {$EXTERNALSYM ASN1_R_NO_MATCHING_CHOICE_TYPE}
  1382. ASN1_R_NO_MATCHING_CHOICE_TYPE = 143;
  1383. {$EXTERNALSYM ASN1_R_NO_MULTIPART_BODY_FAILURE}
  1384. ASN1_R_NO_MULTIPART_BODY_FAILURE = 205;
  1385. {$EXTERNALSYM ASN1_R_NO_MULTIPART_BOUNDARY}
  1386. ASN1_R_NO_MULTIPART_BOUNDARY = 206;
  1387. {$EXTERNALSYM ASN1_R_NO_SIG_CONTENT_TYPE}
  1388. ASN1_R_NO_SIG_CONTENT_TYPE = 207;
  1389. {$EXTERNALSYM ASN1_R_NULL_IS_WRONG_LENGTH}
  1390. ASN1_R_NULL_IS_WRONG_LENGTH = 144;
  1391. {$EXTERNALSYM ASN1_R_OBJECT_NOT_ASCII_FORMAT}
  1392. ASN1_R_OBJECT_NOT_ASCII_FORMAT = 191;
  1393. {$EXTERNALSYM ASN1_R_ODD_NUMBER_OF_CHARS}
  1394. ASN1_R_ODD_NUMBER_OF_CHARS = 145;
  1395. {$EXTERNALSYM ASN1_R_PRIVATE_KEY_HEADER_MISSING}
  1396. ASN1_R_PRIVATE_KEY_HEADER_MISSING = 146;
  1397. {$EXTERNALSYM ASN1_R_SECOND_NUMBER_TOO_LARGE}
  1398. ASN1_R_SECOND_NUMBER_TOO_LARGE = 147;
  1399. {$EXTERNALSYM ASN1_R_SEQUENCE_LENGTH_MISMATCH}
  1400. ASN1_R_SEQUENCE_LENGTH_MISMATCH = 148;
  1401. {$EXTERNALSYM ASN1_R_SEQUENCE_NOT_CONSTRUCTED}
  1402. ASN1_R_SEQUENCE_NOT_CONSTRUCTED = 149;
  1403. {$EXTERNALSYM ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}
  1404. ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG = 192;
  1405. {$EXTERNALSYM ASN1_R_SHORT_LINE}
  1406. ASN1_R_SHORT_LINE = 150;
  1407. {$EXTERNALSYM ASN1_R_SIG_INVALID_MIME_TYPE}
  1408. ASN1_R_SIG_INVALID_MIME_TYPE = 208;
  1409. {$EXTERNALSYM ASN1_R_STREAMING_NOT_SUPPORTED}
  1410. ASN1_R_STREAMING_NOT_SUPPORTED = 209;
  1411. {$EXTERNALSYM ASN1_R_STRING_TOO_LONG}
  1412. ASN1_R_STRING_TOO_LONG = 151;
  1413. {$EXTERNALSYM ASN1_R_STRING_TOO_SHORT}
  1414. ASN1_R_STRING_TOO_SHORT = 152;
  1415. {$EXTERNALSYM ASN1_R_TAG_VALUE_TOO_HIGH}
  1416. ASN1_R_TAG_VALUE_TOO_HIGH = 153;
  1417. {$EXTERNALSYM ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}
  1418. ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD = 154;
  1419. {$EXTERNALSYM ASN1_R_TIME_NOT_ASCII_FORMAT}
  1420. ASN1_R_TIME_NOT_ASCII_FORMAT = 193;
  1421. {$EXTERNALSYM ASN1_R_TOO_LONG}
  1422. ASN1_R_TOO_LONG = 155;
  1423. {$EXTERNALSYM ASN1_R_TYPE_NOT_CONSTRUCTED}
  1424. ASN1_R_TYPE_NOT_CONSTRUCTED = 156;
  1425. {$EXTERNALSYM ASN1_R_UNABLE_TO_DECODE_RSA_KEY}
  1426. ASN1_R_UNABLE_TO_DECODE_RSA_KEY = 157;
  1427. {$EXTERNALSYM ASN1_R_UNABLE_TO_DECODE_RSA_PRIVATE_KEY}
  1428. ASN1_R_UNABLE_TO_DECODE_RSA_PRIVATE_KEY = 158;
  1429. {$EXTERNALSYM ASN1_R_UNEXPECTED_EOC}
  1430. ASN1_R_UNEXPECTED_EOC = 159;
  1431. {$EXTERNALSYM ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}
  1432. ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH = 211;
  1433. {$EXTERNALSYM ASN1_R_UNKNOWN_FORMAT}
  1434. ASN1_R_UNKNOWN_FORMAT = 160;
  1435. {$EXTERNALSYM ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}
  1436. ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM = 161;
  1437. {$EXTERNALSYM ASN1_R_UNKNOWN_OBJECT_TYPE}
  1438. ASN1_R_UNKNOWN_OBJECT_TYPE = 162;
  1439. {$EXTERNALSYM ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}
  1440. ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE = 163;
  1441. {$EXTERNALSYM ASN1_R_UNKNOWN_TAG}
  1442. ASN1_R_UNKNOWN_TAG = 194;
  1443. {$EXTERNALSYM ASN1_R_UNKOWN_FORMAT}
  1444. ASN1_R_UNKOWN_FORMAT = 195;
  1445. {$EXTERNALSYM ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}
  1446. ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE = 164;
  1447. {$EXTERNALSYM ASN1_R_UNSUPPORTED_CIPHER}
  1448. ASN1_R_UNSUPPORTED_CIPHER = 165;
  1449. {$EXTERNALSYM ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM}
  1450. ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM = 166;
  1451. {$EXTERNALSYM ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}
  1452. ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE = 167;
  1453. {$EXTERNALSYM ASN1_R_UNSUPPORTED_TYPE}
  1454. ASN1_R_UNSUPPORTED_TYPE = 196;
  1455. {$EXTERNALSYM ASN1_R_WRONG_TAG}
  1456. ASN1_R_WRONG_TAG = 168;
  1457. {$EXTERNALSYM ASN1_R_WRONG_TYPE}
  1458. ASN1_R_WRONG_TYPE = 169;
  1459. {$EXTERNALSYM ASN1_STRING_FLAG_BITS_LEFT}
  1460. ASN1_STRING_FLAG_BITS_LEFT = $08;
  1461. {$EXTERNALSYM ASN1_STRING_FLAG_NDEF}
  1462. ASN1_STRING_FLAG_NDEF = $010;
  1463. //* This flag is used by the CMS code to indicate that a string is not
  1464. // * complete and is a place holder for content when it had all been
  1465. // * accessed. The flag will be reset when content has been written to it.
  1466. // */
  1467. {$EXTERNALSYM ASN1_STRING_FLAG_CONT}
  1468. ASN1_STRING_FLAG_CONT = $020;
  1469. {$EXTERNALSYM ASN1_LONG_UNDEF}
  1470. ASN1_LONG_UNDEF = $7fffffff; //0x7fffffffL
  1471. {$EXTERNALSYM UB_NAME}
  1472. UB_NAME = 32768;
  1473. {$EXTERNALSYM UB_COMMON_NAME}
  1474. UB_COMMON_NAME = 64;
  1475. {$EXTERNALSYM UB_LOCALITY_NAME}
  1476. UB_LOCALITY_NAME = 128;
  1477. {$EXTERNALSYM UB_STATE_NAME}
  1478. UB_STATE_NAME = 128;
  1479. {$EXTERNALSYM UB_ORGANIZATION_NAME}
  1480. UB_ORGANIZATION_NAME = 64;
  1481. {$EXTERNALSYM UB_ORGANIZATION_UNIT_NAME}
  1482. UB_ORGANIZATION_UNIT_NAME = 64;
  1483. {$EXTERNALSYM UB_TITLE}
  1484. UB_TITLE = 64;
  1485. {$EXTERNALSYM UB_EMAIL_ADDRESS}
  1486. UB_EMAIL_ADDRESS = 128;
  1487. {$EXTERNALSYM ASN1_STRFLGS_ESC_2253}
  1488. ASN1_STRFLGS_ESC_2253 = 1;
  1489. {$EXTERNALSYM ASN1_STRFLGS_ESC_CTRL}
  1490. ASN1_STRFLGS_ESC_CTRL = 2;
  1491. {$EXTERNALSYM ASN1_STRFLGS_ESC_MSB}
  1492. ASN1_STRFLGS_ESC_MSB = 4;
  1493. {$EXTERNALSYM ASN1_STRFLGS_ESC_QUOTE}
  1494. ASN1_STRFLGS_ESC_QUOTE = 8;
  1495. {$EXTERNALSYM ASN1_STRFLGS_UTF8_CONVERT}
  1496. ASN1_STRFLGS_UTF8_CONVERT = $10;
  1497. {$EXTERNALSYM ASN1_STRFLGS_IGNORE_TYPE}
  1498. ASN1_STRFLGS_IGNORE_TYPE = $20;
  1499. {$EXTERNALSYM ASN1_STRFLGS_SHOW_TYPE}
  1500. ASN1_STRFLGS_SHOW_TYPE = $40;
  1501. {$EXTERNALSYM ASN1_STRFLGS_DUMP_ALL}
  1502. ASN1_STRFLGS_DUMP_ALL = $80;
  1503. {$EXTERNALSYM ASN1_STRFLGS_DUMP_UNKNOWN}
  1504. ASN1_STRFLGS_DUMP_UNKNOWN = $100;
  1505. {$EXTERNALSYM ASN1_STRFLGS_DUMP_DER}
  1506. ASN1_STRFLGS_DUMP_DER = $200;
  1507. {$EXTERNALSYM ASN1_STRFLGS_RFC2253}
  1508. ASN1_STRFLGS_RFC2253 = ASN1_STRFLGS_ESC_2253 or
  1509. ASN1_STRFLGS_ESC_CTRL or
  1510. ASN1_STRFLGS_ESC_MSB or
  1511. ASN1_STRFLGS_UTF8_CONVERT or
  1512. ASN1_STRFLGS_DUMP_UNKNOWN or
  1513. ASN1_STRFLGS_DUMP_DER;
  1514. {$EXTERNALSYM BIO_BIND_NORMAL}
  1515. BIO_BIND_NORMAL = 0;
  1516. {$EXTERNALSYM BIO_BIND_REUSEADDR}
  1517. BIO_BIND_REUSEADDR = 2;
  1518. {$EXTERNALSYM BIO_BIND_REUSEADDR_IF_UNUSED}
  1519. BIO_BIND_REUSEADDR_IF_UNUSED = 1;
  1520. {$EXTERNALSYM BIO_CB_CTRL}
  1521. BIO_CB_CTRL = $06;
  1522. {$EXTERNALSYM BIO_CB_FREE}
  1523. BIO_CB_FREE = $01;
  1524. {$EXTERNALSYM BIO_CB_GETS}
  1525. BIO_CB_GETS = $05;
  1526. {$EXTERNALSYM BIO_CB_PUTS}
  1527. BIO_CB_PUTS = $04;
  1528. {$EXTERNALSYM BIO_CB_READ}
  1529. BIO_CB_READ = $02;
  1530. {$EXTERNALSYM BIO_CB_RETURN}
  1531. BIO_CB_RETURN = $80;
  1532. {$EXTERNALSYM BIO_CB_WRITE}
  1533. BIO_CB_WRITE = $03;
  1534. {$EXTERNALSYM BIO_CLOSE}
  1535. BIO_CLOSE = $01;
  1536. {$EXTERNALSYM BIO_CONN_S_BEFORE}
  1537. BIO_CONN_S_BEFORE = 1;
  1538. {$EXTERNALSYM BIO_CONN_S_BLOCKED_CONNECT}
  1539. BIO_CONN_S_BLOCKED_CONNECT = 7;
  1540. {$EXTERNALSYM BIO_CONN_S_CONNECT}
  1541. BIO_CONN_S_CONNECT = 5;
  1542. {$EXTERNALSYM BIO_CONN_S_CREATE_SOCKET}
  1543. BIO_CONN_S_CREATE_SOCKET = 4;
  1544. {$EXTERNALSYM BIO_CONN_S_GET_IP}
  1545. BIO_CONN_S_GET_IP = 2;
  1546. {$EXTERNALSYM BIO_CONN_S_GET_PORT}
  1547. BIO_CONN_S_GET_PORT = 3;
  1548. {$EXTERNALSYM BIO_CONN_S_NBIO}
  1549. BIO_CONN_S_NBIO = 8;
  1550. {$EXTERNALSYM BIO_CONN_S_OK}
  1551. BIO_CONN_S_OK = 6;
  1552. {$EXTERNALSYM BIO_CTRL_DUP}
  1553. BIO_CTRL_DUP = 12;
  1554. {$EXTERNALSYM BIO_CTRL_EOF}
  1555. BIO_CTRL_EOF = 2;
  1556. {$EXTERNALSYM BIO_CTRL_FLUSH}
  1557. BIO_CTRL_FLUSH = 11;
  1558. {$EXTERNALSYM BIO_CTRL_GET}
  1559. BIO_CTRL_GET = 5;
  1560. {$EXTERNALSYM BIO_CTRL_GET_CALLBACK}
  1561. BIO_CTRL_GET_CALLBACK = 15;
  1562. {$EXTERNALSYM BIO_CTRL_GET_CLOSE}
  1563. BIO_CTRL_GET_CLOSE = 8;
  1564. {$EXTERNALSYM BIO_CTRL_INFO}
  1565. BIO_CTRL_INFO = 3;
  1566. {$EXTERNALSYM BIO_CTRL_PENDING}
  1567. BIO_CTRL_PENDING = 10;
  1568. {$EXTERNALSYM BIO_CTRL_POP}
  1569. BIO_CTRL_POP = 7;
  1570. {$EXTERNALSYM BIO_CTRL_PUSH}
  1571. BIO_CTRL_PUSH = 6;
  1572. {$EXTERNALSYM BIO_CTRL_RESET}
  1573. BIO_CTRL_RESET = 1;
  1574. {$EXTERNALSYM BIO_CTRL_SET}
  1575. BIO_CTRL_SET = 4;
  1576. {$EXTERNALSYM BIO_CTRL_SET_CALLBACK}
  1577. BIO_CTRL_SET_CALLBACK = 14;
  1578. {$EXTERNALSYM BIO_CTRL_SET_CLOSE}
  1579. BIO_CTRL_SET_CLOSE = 9;
  1580. {$EXTERNALSYM BIO_CTRL_SET_FILENAME}
  1581. BIO_CTRL_SET_FILENAME = 30;
  1582. //* dgram BIO stuff */
  1583. {$EXTERNALSYM BIO_CTRL_DGRAM_CONNECT}
  1584. BIO_CTRL_DGRAM_CONNECT = 31; //* BIO dgram special */
  1585. {$EXTERNALSYM BIO_CTRL_DGRAM_SET_CONNECTED}
  1586. BIO_CTRL_DGRAM_SET_CONNECTED = 32; //* allow for an externally
  1587. //* connected socket to be
  1588. //* passed in */
  1589. {$EXTERNALSYM BIO_CTRL_DGRAM_SET_RECV_TIMEOUT}
  1590. BIO_CTRL_DGRAM_SET_RECV_TIMEOUT = 33; //* setsockopt, essentially */
  1591. {$EXTERNALSYM BIO_CTRL_DGRAM_GET_RECV_TIMEOUT}
  1592. BIO_CTRL_DGRAM_GET_RECV_TIMEOUT = 34; //* getsockopt, essentially */
  1593. {$EXTERNALSYM BIO_CTRL_DGRAM_SET_SEND_TIMEOUT}
  1594. BIO_CTRL_DGRAM_SET_SEND_TIMEOUT = 35; //* setsockopt, essentially */
  1595. {$EXTERNALSYM BIO_CTRL_DGRAM_GET_SEND_TIMEOUT}
  1596. BIO_CTRL_DGRAM_GET_SEND_TIMEOUT = 36; //* getsockopt, essentially */
  1597. {$EXTERNALSYM BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP}
  1598. BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP = 37; //* flag whether the last */
  1599. {$EXTERNALSYM BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP}
  1600. BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP = 38; //* I/O operation tiemd out */
  1601. //* #ifdef IP_MTU_DISCOVER */
  1602. {$EXTERNALSYM BIO_CTRL_DGRAM_MTU_DISCOVER}
  1603. BIO_CTRL_DGRAM_MTU_DISCOVER = 39; //* set DF bit on egress packets */
  1604. //* #endif */
  1605. {$EXTERNALSYM BIO_CTRL_DGRAM_QUERY_MTU}
  1606. BIO_CTRL_DGRAM_QUERY_MTU = 40; //* as kernel for current MTU */
  1607. {$EXTERNALSYM BIO_CTRL_DGRAM_GET_MTU}
  1608. BIO_CTRL_DGRAM_GET_MTU = 41; //* get cached value for MTU */
  1609. {$EXTERNALSYM BIO_CTRL_DGRAM_SET_MTU}
  1610. BIO_CTRL_DGRAM_SET_MTU = 42; //* set cached value for
  1611. // * MTU. want to use this
  1612. // * if asking the kernel
  1613. // * fails */
  1614. {$EXTERNALSYM BIO_CTRL_DGRAM_MTU_EXCEEDED}
  1615. BIO_CTRL_DGRAM_MTU_EXCEEDED = 43; //* check whether the MTU
  1616. // * was exceed in the
  1617. // * previous write
  1618. // * operation */
  1619. {$EXTERNALSYM BIO_CTRL_DGRAM_GET_PEER}
  1620. BIO_CTRL_DGRAM_GET_PEER = 46;
  1621. {$EXTERNALSYM BIO_CTRL_DGRAM_SET_PEER}
  1622. BIO_CTRL_DGRAM_SET_PEER = 44; //* Destination for the data */
  1623. {$EXTERNALSYM BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT}
  1624. BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT = 45; //* Next DTLS handshake timeout to
  1625. {$EXTERNALSYM BIO_CTRL_WPENDING}
  1626. BIO_CTRL_WPENDING = 13;
  1627. {$EXTERNALSYM BIO_C_DESTROY_BIO_PAIR}
  1628. BIO_C_DESTROY_BIO_PAIR = 139;
  1629. {$EXTERNALSYM BIO_C_DO_STATE_MACHINE}
  1630. BIO_C_DO_STATE_MACHINE = 101;
  1631. {$EXTERNALSYM BIO_C_FILE_SEEK}
  1632. BIO_C_FILE_SEEK = 128;
  1633. {$EXTERNALSYM BIO_C_FILE_TELL}
  1634. BIO_C_FILE_TELL = 133;
  1635. {$EXTERNALSYM BIO_C_GET_ACCEPT}
  1636. BIO_C_GET_ACCEPT = 124;
  1637. {$EXTERNALSYM BIO_C_GET_BIND_MODE}
  1638. BIO_C_GET_BIND_MODE = 132;
  1639. {$EXTERNALSYM BIO_C_GET_BUFF_NUM_LINES}
  1640. BIO_C_GET_BUFF_NUM_LINES = 116;
  1641. {$EXTERNALSYM BIO_C_GET_BUF_MEM_PTR}
  1642. BIO_C_GET_BUF_MEM_PTR = 115;
  1643. {$EXTERNALSYM BIO_C_GET_CIPHER_CTX}
  1644. BIO_C_GET_CIPHER_CTX = 129;
  1645. {$EXTERNALSYM BIO_C_GET_CIPHER_STATUS}
  1646. BIO_C_GET_CIPHER_STATUS = 113;
  1647. {$EXTERNALSYM BIO_C_GET_CONNECT}
  1648. BIO_C_GET_CONNECT = 123;
  1649. {$EXTERNALSYM BIO_C_GET_FD}
  1650. BIO_C_GET_FD = 105;
  1651. {$EXTERNALSYM BIO_C_GET_FILE_PTR}
  1652. BIO_C_GET_FILE_PTR = 107;
  1653. {$EXTERNALSYM BIO_C_GET_MD}
  1654. BIO_C_GET_MD = 112;
  1655. {$EXTERNALSYM BIO_C_GET_MD_CTX}
  1656. BIO_C_GET_MD_CTX = 120;
  1657. {$EXTERNALSYM BIO_C_GET_PROXY_PARAM}
  1658. BIO_C_GET_PROXY_PARAM = 121;
  1659. {$EXTERNALSYM BIO_C_GET_READ_REQUEST}
  1660. BIO_C_GET_READ_REQUEST = 141;
  1661. {$EXTERNALSYM BIO_C_GET_SOCKS}
  1662. BIO_C_GET_SOCKS = 134;
  1663. {$EXTERNALSYM BIO_C_GET_SSL}
  1664. BIO_C_GET_SSL = 110;
  1665. {$EXTERNALSYM BIO_C_GET_SSL_NUM_RENEGOTIATES}
  1666. BIO_C_GET_SSL_NUM_RENEGOTIATES = 126;
  1667. {$EXTERNALSYM BIO_C_GET_WRITE_BUF_SIZE}
  1668. BIO_C_GET_WRITE_BUF_SIZE = 137;
  1669. {$EXTERNALSYM BIO_C_GET_WRITE_GUARANTEE}
  1670. BIO_C_GET_WRITE_GUARANTEE = 140;
  1671. {$EXTERNALSYM BIO_C_MAKE_BIO_PAIR}
  1672. BIO_C_MAKE_BIO_PAIR = 138;
  1673. {$EXTERNALSYM BIO_C_SET_ACCEPT}
  1674. BIO_C_SET_ACCEPT = 118;
  1675. {$EXTERNALSYM BIO_C_SET_BIND_MODE}
  1676. BIO_C_SET_BIND_MODE = 131;
  1677. {$EXTERNALSYM BIO_C_SET_BUFF_READ_DATA}
  1678. BIO_C_SET_BUFF_READ_DATA = 122;
  1679. {$EXTERNALSYM BIO_C_SET_BUFF_SIZE}
  1680. BIO_C_SET_BUFF_SIZE = 117;
  1681. {$EXTERNALSYM BIO_C_SET_BUF_MEM}
  1682. BIO_C_SET_BUF_MEM = 114;
  1683. {$EXTERNALSYM BIO_C_SET_BUF_MEM_EOF_RETURN}
  1684. BIO_C_SET_BUF_MEM_EOF_RETURN = 130;
  1685. {$EXTERNALSYM BIO_C_SET_CONNECT}
  1686. BIO_C_SET_CONNECT = 100;
  1687. {$EXTERNALSYM BIO_C_SET_FD}
  1688. BIO_C_SET_FD = 104;
  1689. {$EXTERNALSYM BIO_C_SET_FILENAME}
  1690. BIO_C_SET_FILENAME = 108;
  1691. {$EXTERNALSYM BIO_C_SET_FILE_PTR}
  1692. BIO_C_SET_FILE_PTR = 106;
  1693. {$EXTERNALSYM BIO_C_SET_MD}
  1694. BIO_C_SET_MD = 111;
  1695. {$EXTERNALSYM BIO_C_SET_NBIO}
  1696. BIO_C_SET_NBIO = 102;
  1697. {$EXTERNALSYM BIO_C_SET_PROXY_PARAM}
  1698. BIO_C_SET_PROXY_PARAM = 103;
  1699. {$EXTERNALSYM BIO_C_SET_SOCKS}
  1700. BIO_C_SET_SOCKS = 135;
  1701. {$EXTERNALSYM BIO_C_SET_SSL}
  1702. BIO_C_SET_SSL = 109;
  1703. {$EXTERNALSYM BIO_C_SET_SSL_RENEGOTIATE_BYTES}
  1704. BIO_C_SET_SSL_RENEGOTIATE_BYTES = 125;
  1705. {$EXTERNALSYM BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT}
  1706. BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT = 127;
  1707. {$EXTERNALSYM BIO_C_SET_WRITE_BUF_SIZE}
  1708. BIO_C_SET_WRITE_BUF_SIZE = 136;
  1709. {$EXTERNALSYM BIO_C_SHUTDOWN_WR}
  1710. BIO_C_SHUTDOWN_WR = 142;
  1711. {$EXTERNALSYM BIO_C_NREAD0}
  1712. BIO_C_NREAD0 = 143;
  1713. {$EXTERNALSYM BIO_C_NREAD}
  1714. BIO_C_NREAD = 144;
  1715. {$EXTERNALSYM BIO_C_NWRITE0}
  1716. BIO_C_NWRITE0 = 145;
  1717. {$EXTERNALSYM BIO_C_NWRITE}
  1718. BIO_C_NWRITE = 146;
  1719. {$EXTERNALSYM BIO_C_RESET_READ_REQUEST}
  1720. BIO_C_RESET_READ_REQUEST = 147;
  1721. {$EXTERNALSYM BIO_C_SET_MD_CTX}
  1722. BIO_C_SET_MD_CTX = 148;
  1723. {$EXTERNALSYM BIO_C_SSL_MODE}
  1724. BIO_C_SSL_MODE = 119;
  1725. {$EXTERNALSYM BIO_FLAGS_BASE64_NO_NL}
  1726. BIO_FLAGS_BASE64_NO_NL = $100;
  1727. {$EXTERNALSYM BIO_FLAGS_IO_SPECIAL}
  1728. BIO_FLAGS_IO_SPECIAL = $04;
  1729. {$EXTERNALSYM BIO_FLAGS_READ}
  1730. BIO_FLAGS_READ = $01;
  1731. {$EXTERNALSYM BIO_FLAGS_WRITE}
  1732. BIO_FLAGS_WRITE = $02;
  1733. {$EXTERNALSYM BIO_FLAGS_RWS}
  1734. BIO_FLAGS_RWS = BIO_FLAGS_READ or
  1735. BIO_FLAGS_WRITE or
  1736. BIO_FLAGS_IO_SPECIAL;
  1737. {$EXTERNALSYM BIO_FLAGS_SHOULD_RETRY}
  1738. BIO_FLAGS_SHOULD_RETRY = $08;
  1739. {$EXTERNALSYM BIO_FP_APPEND}
  1740. BIO_FP_APPEND = $08;
  1741. {$EXTERNALSYM BIO_FP_READ}
  1742. BIO_FP_READ = $02;
  1743. {$EXTERNALSYM BIO_FP_TEXT}
  1744. BIO_FP_TEXT = $10;
  1745. {$EXTERNALSYM BIO_FP_WRITE}
  1746. BIO_FP_WRITE = $04;
  1747. {$EXTERNALSYM BIO_F_ACPT_STATE}
  1748. BIO_F_ACPT_STATE = 100;
  1749. {$EXTERNALSYM BIO_F_BIO_ACCEPT}
  1750. BIO_F_BIO_ACCEPT = 101;
  1751. {$EXTERNALSYM BIO_F_BIO_BER_GET_HEADER}
  1752. BIO_F_BIO_BER_GET_HEADER = 102;
  1753. {$EXTERNALSYM BIO_F_BIO_CTRL}
  1754. BIO_F_BIO_CTRL = 103;
  1755. {$EXTERNALSYM BIO_F_BIO_GETHOSTBYNAME}
  1756. BIO_F_BIO_GETHOSTBYNAME = 120;
  1757. {$EXTERNALSYM BIO_F_BIO_GETS}
  1758. BIO_F_BIO_GETS = 104;
  1759. {$EXTERNALSYM BIO_F_BIO_GET_ACCEPT_SOCKET}
  1760. BIO_F_BIO_GET_ACCEPT_SOCKET = 105;
  1761. {$EXTERNALSYM BIO_F_BIO_GET_HOST_IP}
  1762. BIO_F_BIO_GET_HOST_IP = 106;
  1763. {$EXTERNALSYM BIO_F_BIO_GET_PORT}
  1764. BIO_F_BIO_GET_PORT = 107;
  1765. {$EXTERNALSYM BIO_F_BIO_MAKE_PAIR}
  1766. BIO_F_BIO_MAKE_PAIR = 121;
  1767. {$EXTERNALSYM BIO_F_BIO_NEW}
  1768. BIO_F_BIO_NEW = 108;
  1769. {$EXTERNALSYM BIO_F_BIO_NEW_FILE}
  1770. BIO_F_BIO_NEW_FILE = 109;
  1771. {$EXTERNALSYM BIO_F_BIO_PUTS}
  1772. BIO_F_BIO_PUTS = 110;
  1773. {$EXTERNALSYM BIO_F_BIO_READ}
  1774. BIO_F_BIO_READ = 111;
  1775. {$EXTERNALSYM BIO_F_BIO_SOCK_INIT}
  1776. BIO_F_BIO_SOCK_INIT = 112;
  1777. {$EXTERNALSYM BIO_F_BIO_WRITE}
  1778. BIO_F_BIO_WRITE = 113;
  1779. {$EXTERNALSYM BIO_F_BUFFER_CTRL}
  1780. BIO_F_BUFFER_CTRL = 114;
  1781. {$EXTERNALSYM BIO_F_CONN_STATE}
  1782. BIO_F_CONN_STATE = 115;
  1783. {$EXTERNALSYM BIO_F_FILE_CTRL}
  1784. BIO_F_FILE_CTRL = 116;
  1785. {$EXTERNALSYM BIO_F_MEM_WRITE}
  1786. BIO_F_MEM_WRITE = 117;
  1787. {$EXTERNALSYM BIO_F_SSL_NEW}
  1788. BIO_F_SSL_NEW = 118;
  1789. {$EXTERNALSYM BIO_F_WSASTARTUP}
  1790. BIO_F_WSASTARTUP = 119;
  1791. {$EXTERNALSYM BIO_GHBN_CTRL_CACHE_SIZE}
  1792. BIO_GHBN_CTRL_CACHE_SIZE = 3;
  1793. {$EXTERNALSYM BIO_GHBN_CTRL_FLUSH}
  1794. BIO_GHBN_CTRL_FLUSH = 5;
  1795. {$EXTERNALSYM BIO_GHBN_CTRL_GET_ENTRY}
  1796. BIO_GHBN_CTRL_GET_ENTRY = 4;
  1797. {$EXTERNALSYM BIO_GHBN_CTRL_HITS}
  1798. BIO_GHBN_CTRL_HITS = 1;
  1799. {$EXTERNALSYM BIO_GHBN_CTRL_MISSES}
  1800. BIO_GHBN_CTRL_MISSES = 2;
  1801. {$EXTERNALSYM BIO_NOCLOSE}
  1802. BIO_NOCLOSE = $00;
  1803. {$EXTERNALSYM BIO_RR_CONNECT}
  1804. BIO_RR_CONNECT = $02;
  1805. {$EXTERNALSYM BIO_RR_SSL_X509_LOOKUP}
  1806. BIO_RR_SSL_X509_LOOKUP = $01;
  1807. {$EXTERNALSYM BIO_R_ACCEPT_ERROR}
  1808. BIO_R_ACCEPT_ERROR = 100;
  1809. {$EXTERNALSYM BIO_R_BAD_FOPEN_MODE}
  1810. BIO_R_BAD_FOPEN_MODE = 101;
  1811. {$EXTERNALSYM BIO_R_BAD_HOSTNAME_LOOKUP}
  1812. BIO_R_BAD_HOSTNAME_LOOKUP = 102;
  1813. {$EXTERNALSYM BIO_R_BROKEN_PIPE}
  1814. BIO_R_BROKEN_PIPE = 124;
  1815. {$EXTERNALSYM BIO_R_CONNECT_ERROR}
  1816. BIO_R_CONNECT_ERROR = 103;
  1817. {$EXTERNALSYM BIO_R_ERROR_SETTING_NBIO}
  1818. BIO_R_ERROR_SETTING_NBIO = 104;
  1819. {$EXTERNALSYM BIO_R_ERROR_SETTING_NBIO_ON_ACCEPTED_SOCKET}
  1820. BIO_R_ERROR_SETTING_NBIO_ON_ACCEPTED_SOCKET = 105;
  1821. {$EXTERNALSYM BIO_R_ERROR_SETTING_NBIO_ON_ACCEPT_SOCKET}
  1822. BIO_R_ERROR_SETTING_NBIO_ON_ACCEPT_SOCKET = 106;
  1823. {$EXTERNALSYM BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}
  1824. BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET = 107;
  1825. {$EXTERNALSYM BIO_R_INVALID_ARGUMENT}
  1826. BIO_R_INVALID_ARGUMENT = 125;
  1827. {$EXTERNALSYM BIO_R_INVALID_IP_ADDRESS}
  1828. BIO_R_INVALID_IP_ADDRESS = 108;
  1829. {$EXTERNALSYM BIO_R_IN_USE}
  1830. BIO_R_IN_USE = 123;
  1831. {$EXTERNALSYM BIO_R_KEEPALIVE}
  1832. BIO_R_KEEPALIVE = 109;
  1833. {$EXTERNALSYM BIO_R_NBIO_CONNECT_ERROR}
  1834. BIO_R_NBIO_CONNECT_ERROR = 110;
  1835. {$EXTERNALSYM BIO_R_NO_ACCEPT_PORT_SPECIFIED}
  1836. BIO_R_NO_ACCEPT_PORT_SPECIFIED = 111;
  1837. {$EXTERNALSYM BIO_R_NO_HOSTNAME_SPECIFIED}
  1838. BIO_R_NO_HOSTNAME_SPECIFIED = 112;
  1839. {$EXTERNALSYM BIO_R_NO_PORT_DEFINED}
  1840. BIO_R_NO_PORT_DEFINED = 113;
  1841. {$EXTERNALSYM BIO_R_NO_PORT_SPECIFIED}
  1842. BIO_R_NO_PORT_SPECIFIED = 114;
  1843. {$EXTERNALSYM BIO_R_NULL_PARAMETER}
  1844. BIO_R_NULL_PARAMETER = 115;
  1845. {$EXTERNALSYM BIO_R_TAG_MISMATCH}
  1846. BIO_R_TAG_MISMATCH = 116;
  1847. {$EXTERNALSYM BIO_R_UNABLE_TO_BIND_SOCKET}
  1848. BIO_R_UNABLE_TO_BIND_SOCKET = 117;
  1849. {$EXTERNALSYM BIO_R_UNABLE_TO_CREATE_SOCKET}
  1850. BIO_R_UNABLE_TO_CREATE_SOCKET = 118;
  1851. {$EXTERNALSYM BIO_R_UNABLE_TO_LISTEN_SOCKET}
  1852. BIO_R_UNABLE_TO_LISTEN_SOCKET = 119;
  1853. {$EXTERNALSYM BIO_R_UNINITIALIZED}
  1854. BIO_R_UNINITIALIZED = 120;
  1855. {$EXTERNALSYM BIO_R_UNSUPPORTED_METHOD}
  1856. BIO_R_UNSUPPORTED_METHOD = 121;
  1857. {$EXTERNALSYM BIO_R_WSASTARTUP}
  1858. BIO_R_WSASTARTUP = 122;
  1859. {$EXTERNALSYM BIO_TYPE_ACCEPT}
  1860. BIO_TYPE_ACCEPT = 13 or $0400 or $0100;
  1861. {$EXTERNALSYM BIO_TYPE_BASE64}
  1862. BIO_TYPE_BASE64 = 11 or $0200;
  1863. {$EXTERNALSYM BIO_TYPE_BER}
  1864. BIO_TYPE_BER = 18 or $0200;
  1865. {$EXTERNALSYM BIO_TYPE_BIO}
  1866. BIO_TYPE_BIO = 19 or $0400;
  1867. {$EXTERNALSYM BIO_TYPE_BUFFER}
  1868. BIO_TYPE_BUFFER = 9 or $0200;
  1869. {$EXTERNALSYM BIO_TYPE_CIPHER}
  1870. BIO_TYPE_CIPHER = 10 or $0200;
  1871. {$EXTERNALSYM BIO_TYPE_CONNECT}
  1872. BIO_TYPE_CONNECT = 12 or $0400 or $0100;
  1873. {$EXTERNALSYM BIO_TYPE_DESCRIPTOR}
  1874. BIO_TYPE_DESCRIPTOR = $0100;
  1875. {$EXTERNALSYM BIO_TYPE_FD}
  1876. BIO_TYPE_FD = 4 or $0400 or $0100;
  1877. {$EXTERNALSYM BIO_TYPE_FILE}
  1878. BIO_TYPE_FILE = 2 or $0400;
  1879. {$EXTERNALSYM BIO_TYPE_FILTER}
  1880. BIO_TYPE_FILTER = $0200;
  1881. {$EXTERNALSYM BIO_TYPE_MD}
  1882. BIO_TYPE_MD = 8 or $0200;
  1883. {$EXTERNALSYM BIO_TYPE_MEM}
  1884. BIO_TYPE_MEM = 1 or $0400;
  1885. {$EXTERNALSYM BIO_TYPE_NBIO_TEST}
  1886. BIO_TYPE_NBIO_TEST = 16 or $0200;
  1887. {$EXTERNALSYM BIO_TYPE_NONE}
  1888. BIO_TYPE_NONE = 0;
  1889. {$EXTERNALSYM BIO_TYPE_NULL}
  1890. BIO_TYPE_NULL = 6 or $0400;
  1891. {$EXTERNALSYM BIO_TYPE_NULL_FILTER}
  1892. BIO_TYPE_NULL_FILTER = 17 or $0200;
  1893. {$EXTERNALSYM BIO_TYPE_PROXY_CLIENT}
  1894. BIO_TYPE_PROXY_CLIENT = 14 or $0200;
  1895. {$EXTERNALSYM BIO_TYPE_PROXY_SERVER}
  1896. BIO_TYPE_PROXY_SERVER = 15 or $0200;
  1897. {$EXTERNALSYM BIO_TYPE_SOCKET}
  1898. BIO_TYPE_SOCKET = 5 or $0400 or $0100;
  1899. {$EXTERNALSYM BIO_TYPE_SOURCE_SINK}
  1900. BIO_TYPE_SOURCE_SINK = $0400;
  1901. {$EXTERNALSYM BIO_TYPE_SSL}
  1902. BIO_TYPE_SSL = 7 or $0200;
  1903. {$EXTERNALSYM BIO_TYPE_LINEBUFFER}
  1904. BIO_TYPE_LINEBUFFER = 20 or $0200;
  1905. {$EXTERNALSYM BIO_TYPE_DGRAM}
  1906. BIO_TYPE_DGRAM = 21 or $0400 or $0100;
  1907. {$EXTERNALSYM BIO_TYPE_COMP}
  1908. BIO_TYPE_COMP = 23 or $0200;
  1909. {$IFDEF SIXTY_FOUR_BIT_LONG}
  1910. {$EXTERNALSYM BN_BITS}
  1911. BN_BITS = 128;
  1912. {$EXTERNALSYM BN_BYTES}
  1913. BN_BYTES = 8;
  1914. {$EXTERNALSYM BN_BITS2}
  1915. BN_BITS2 = 64;
  1916. {$EXTERNALSYM BN_BITS4}
  1917. BN_BITS4 = 32;
  1918. {$EXTERNALSYM BN_DEC_FMT1}
  1919. BN_DEC_FMT1 = '%lu'; {Do not localize}
  1920. {$EXTERNALSYM BN_DEC_FMT2}
  1921. BN_DEC_FMT2 = '%019lu'; {Do not localize}
  1922. {$EXTERNALSYM BN_DEC_NUM}
  1923. BN_DEC_NUM = 19;
  1924. {$ENDIF}
  1925. {$IFDEF SIXTY_FOUR_BIT}
  1926. {$UNDEF BN_LLONG}
  1927. {$UNDEF BN_ULLONG}
  1928. {$EXTERNALSYM OPENSSL_BN_BITS}
  1929. OPENSSL_BN_BITS = 128;
  1930. {$EXTERNALSYM OPENSSL_BN_BYTES}
  1931. OPENSSL_BN_BYTES = 8;
  1932. {$EXTERNALSYM OPENSSL_BN_BITS2}
  1933. OPENSSL_BN_BITS2 = 64;
  1934. {$EXTERNALSYM OPENSSL_BN_BITS4}
  1935. OPENSSL_BN_BITS4 = 32;
  1936. {$EXTERNALSYM OPENSSL_BN_DEC_FMT1}
  1937. OPENSSL_BN_DEC_FMT1 = '%llu'; {Do not localize}
  1938. {$EXTERNALSYM OPENSSL_BN_DEC_FMT2}
  1939. OPENSSL_BN_DEC_FMT2 = '%019llu'; {Do not localize}
  1940. {$EXTERNALSYM OPENSSL_BN_DEC_NUM}
  1941. OPENSSL_BN_DEC_NUM = 19;
  1942. {$ENDIF}
  1943. {$IFDEF THIRTY_TWO_BIT}
  1944. {$EXTERNALSYM BN_BITS}
  1945. BN_BITS = 64;
  1946. {$EXTERNALSYM BN_BYTES}
  1947. BN_BYTES = 4;
  1948. {$EXTERNALSYM BN_BITS2}
  1949. BN_BITS2 = 32;
  1950. {$EXTERNALSYM BN_BITS4}
  1951. BN_BITS4 = 16;
  1952. {$EXTERNALSYM BN_DEC_FMT1}
  1953. BN_DEC_FMT1 = '%lu'; {Do not localize}
  1954. {$EXTERNALSYM BN_DEC_FMT2}
  1955. BN_DEC_FMT2 = '%09lu'; {Do not localize}
  1956. {$EXTERNALSYM BN_DEC_NUM}
  1957. BN_DEC_NUM = 9;
  1958. {$ENDIF}
  1959. {$EXTERNALSYM BN_CTX_NUM}
  1960. BN_CTX_NUM = 12;
  1961. {$IFNDEF OPENSSL_NO_DEPRECATED}
  1962. {$EXTERNALSYM BN_DEFAULT_BITS}
  1963. BN_DEFAULT_BITS = 1280;
  1964. {$ENDIF}
  1965. {$EXTERNALSYM BN_FLG_FREE}
  1966. BN_FLG_FREE = $8000;
  1967. {$EXTERNALSYM BN_FLG_MALLOCED}
  1968. BN_FLG_MALLOCED = $01;
  1969. {$EXTERNALSYM BN_FLG_STATIC_DATA}
  1970. BN_FLG_STATIC_DATA = $02;
  1971. {$EXTERNALSYM BN_FLG_CONSTTIME}
  1972. BN_FLG_CONSTTIME = $04;
  1973. //* avoid leaking exponent information through timing,
  1974. //* BN_mod_exp_mont() will call BN_mod_exp_mont_consttime,
  1975. //* BN_div() will call BN_div_no_branch,
  1976. // * BN_mod_inverse() will call BN_mod_inverse_no_branch.
  1977. // */
  1978. {$IFNDEF OPENSSL_NO_DEPRECATED}
  1979. {$EXTERNALSYM BN_FLG_EXP_CONSTTIME}
  1980. BN_FLG_EXP_CONSTTIME = BN_FLG_CONSTTIME; //* deprecated name for the flag */
  1981. //* avoid leaking exponent information through timings
  1982. //* (BN_mod_exp_mont() will call BN_mod_exp_mont_consttime) */
  1983. {$ENDIF}
  1984. {$EXTERNALSYM BN_F_BN_BLINDING_CONVERT}
  1985. BN_F_BN_BLINDING_CONVERT = 100;
  1986. {$EXTERNALSYM BN_F_BN_BLINDING_INVERT}
  1987. BN_F_BN_BLINDING_INVERT = 101;
  1988. {$EXTERNALSYM BN_F_BN_BLINDING_NEW}
  1989. BN_F_BN_BLINDING_NEW = 102;
  1990. {$EXTERNALSYM BN_F_BN_BLINDING_UPDATE}
  1991. BN_F_BN_BLINDING_UPDATE = 103;
  1992. {$EXTERNALSYM BN_F_BN_BN2DEC}
  1993. BN_F_BN_BN2DEC = 104;
  1994. {$EXTERNALSYM BN_F_BN_BN2HEX}
  1995. BN_F_BN_BN2HEX = 105;
  1996. {$EXTERNALSYM BN_F_BN_CTX_NEW}
  1997. BN_F_BN_CTX_NEW = 106;
  1998. {$EXTERNALSYM BN_F_BN_DIV}
  1999. BN_F_BN_DIV = 107;
  2000. {$EXTERNALSYM BN_F_BN_DIV_NO_BRANCH}
  2001. BN_F_BN_DIV_NO_BRANCH = 138;
  2002. {$EXTERNALSYM BN_F_BN_EXPAND2}
  2003. BN_F_BN_EXPAND2 = 108;
  2004. {$EXTERNALSYM BN_F_BN_MOD_EXP_MONT}
  2005. BN_F_BN_MOD_EXP_MONT = 109;
  2006. {$EXTERNALSYM BN_F_BN_MOD_INVERSE}
  2007. BN_F_BN_MOD_INVERSE = 110;
  2008. {$EXTERNALSYM BN_F_BN_MOD_INVERSE_NO_BRANCH}
  2009. BN_F_BN_MOD_INVERSE_NO_BRANCH = 139;
  2010. {$EXTERNALSYM BN_F_BN_MOD_MUL_RECIPROCAL}
  2011. BN_F_BN_MOD_MUL_RECIPROCAL = 111;
  2012. {$EXTERNALSYM BN_F_BN_MPI2BN}
  2013. BN_F_BN_MPI2BN = 112;
  2014. {$EXTERNALSYM BN_F_BN_NEW}
  2015. BN_F_BN_NEW = 113;
  2016. {$EXTERNALSYM BN_F_BN_RAND}
  2017. BN_F_BN_RAND = 114;
  2018. {$EXTERNALSYM BN_F_BN_USUB}
  2019. BN_F_BN_USUB = 115;
  2020. {$EXTERNALSYM BN_MASK2}
  2021. BN_MASK2 = $ffffffff;
  2022. {$EXTERNALSYM BN_MASK2h}
  2023. BN_MASK2h = $ffff0000;
  2024. {$EXTERNALSYM BN_MASK2h1}
  2025. BN_MASK2h1 = $ffff8000;
  2026. {$EXTERNALSYM BN_MASK2l}
  2027. BN_MASK2l = $ffff;
  2028. {$EXTERNALSYM BN_R_ARG2_LT_ARG3}
  2029. BN_R_ARG2_LT_ARG3 = 100;
  2030. {$EXTERNALSYM BN_R_BAD_RECIPROCAL}
  2031. BN_R_BAD_RECIPROCAL = 101;
  2032. {$EXTERNALSYM BN_R_CALLED_WITH_EVEN_MODULUS}
  2033. BN_R_CALLED_WITH_EVEN_MODULUS = 102;
  2034. {$EXTERNALSYM BN_R_DIV_BY_ZERO}
  2035. BN_R_DIV_BY_ZERO = 103;
  2036. {$EXTERNALSYM BN_R_ENCODING_ERROR}
  2037. BN_R_ENCODING_ERROR = 104;
  2038. {$EXTERNALSYM BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}
  2039. BN_R_EXPAND_ON_STATIC_BIGNUM_DATA = 105;
  2040. {$EXTERNALSYM BN_R_INVALID_LENGTH}
  2041. BN_R_INVALID_LENGTH = 106;
  2042. {$EXTERNALSYM BN_R_NOT_INITIALIZED}
  2043. BN_R_NOT_INITIALIZED = 107;
  2044. {$EXTERNALSYM BN_R_NO_INVERSE}
  2045. BN_R_NO_INVERSE = 108;
  2046. {$EXTERNALSYM BN_TBIT}
  2047. BN_TBIT = $80000000;
  2048. {$EXTERNALSYM BUFSIZ}
  2049. BUFSIZ = 1024;
  2050. {$EXTERNALSYM BUF_F_BUF_MEM_GROW}
  2051. BUF_F_BUF_MEM_GROW = 100;
  2052. {$EXTERNALSYM BUF_F_BUF_MEM_NEW}
  2053. BUF_F_BUF_MEM_NEW = 101;
  2054. {$EXTERNALSYM BUF_F_BUF_STRDUP}
  2055. BUF_F_BUF_STRDUP = 102;
  2056. //function codes
  2057. {$EXTERNALSYM RAND_F_ENG_RAND_GET_RAND_METHOD}
  2058. RAND_F_ENG_RAND_GET_RAND_METHOD = 108;
  2059. {$EXTERNALSYM RAND_F_FIPS_RAND}
  2060. RAND_F_FIPS_RAND = 103;
  2061. {$EXTERNALSYM RAND_F_FIPS_RAND_BYTES}
  2062. RAND_F_FIPS_RAND_BYTES = 102;
  2063. {$EXTERNALSYM RAND_F_FIPS_RAND_GET_RAND_METHOD}
  2064. RAND_F_FIPS_RAND_GET_RAND_METHOD = 109;
  2065. {$EXTERNALSYM RAND_F_FIPS_RAND_SET_DT}
  2066. RAND_F_FIPS_RAND_SET_DT = 106;
  2067. {$EXTERNALSYM RAND_F_FIPS_SET_DT}
  2068. RAND_F_FIPS_SET_DT = 104;
  2069. {$EXTERNALSYM RAND_F_FIPS_SET_PRNG_SEED}
  2070. RAND_F_FIPS_SET_PRNG_SEED = 107;
  2071. {$EXTERNALSYM RAND_F_FIPS_SET_TEST_MODE}
  2072. RAND_F_FIPS_SET_TEST_MODE = 105;
  2073. {$EXTERNALSYM RAND_F_RAND_GET_RAND_METHOD}
  2074. RAND_F_RAND_GET_RAND_METHOD = 101;
  2075. {$EXTERNALSYM RAND_F_SSLEAY_RAND_BYTES}
  2076. RAND_F_SSLEAY_RAND_BYTES = 100;
  2077. //* Reason codes. */
  2078. {$EXTERNALSYM RAND_R_NON_FIPS_METHOD}
  2079. RAND_R_NON_FIPS_METHOD = 105;
  2080. {$EXTERNALSYM RAND_R_NOT_IN_TEST_MODE}
  2081. RAND_R_NOT_IN_TEST_MODE = 106;
  2082. {$EXTERNALSYM RAND_R_NO_KEY_SET}
  2083. RAND_R_NO_KEY_SET = 107;
  2084. {$EXTERNALSYM RAND_R_PRNG_ASKING_FOR_TOO_MUCH}
  2085. RAND_R_PRNG_ASKING_FOR_TOO_MUCH = 101;
  2086. {$EXTERNALSYM RAND_R_PRNG_ERROR}
  2087. RAND_R_PRNG_ERROR = 108;
  2088. {$EXTERNALSYM RAND_R_PRNG_KEYED}
  2089. RAND_R_PRNG_KEYED = 109;
  2090. {$EXTERNALSYM RAND_R_PRNG_NOT_REKEYED}
  2091. RAND_R_PRNG_NOT_REKEYED = 102;
  2092. {$EXTERNALSYM RAND_R_PRNG_NOT_RESEEDED}
  2093. RAND_R_PRNG_NOT_RESEEDED = 103;
  2094. {$EXTERNALSYM RAND_R_PRNG_NOT_SEEDED}
  2095. RAND_R_PRNG_NOT_SEEDED = 100;
  2096. {$EXTERNALSYM RAND_R_PRNG_SEED_MUST_NOT_MATCH_KEY}
  2097. RAND_R_PRNG_SEED_MUST_NOT_MATCH_KEY = 110;
  2098. {$EXTERNALSYM RAND_R_PRNG_STUCK}
  2099. RAND_R_PRNG_STUCK = 104;
  2100. {$EXTERNALSYM B_ASN1_BIT_STRING}
  2101. B_ASN1_BIT_STRING = $0400;
  2102. {$EXTERNALSYM B_ASN1_BMPSTRING}
  2103. B_ASN1_BMPSTRING = $0800;
  2104. {$EXTERNALSYM B_ASN1_GENERALSTRING}
  2105. B_ASN1_GENERALSTRING = $0080;
  2106. {$EXTERNALSYM B_ASN1_GRAPHICSTRING}
  2107. B_ASN1_GRAPHICSTRING = $0020;
  2108. {$EXTERNALSYM B_ASN1_IA5STRING}
  2109. B_ASN1_IA5STRING = $0010;
  2110. {$EXTERNALSYM B_ASN1_ISO64STRING}
  2111. B_ASN1_ISO64STRING = $0040;
  2112. {$EXTERNALSYM B_ASN1_NUMERICSTRING}
  2113. B_ASN1_NUMERICSTRING = $0001;
  2114. {$EXTERNALSYM B_ASN1_OCTET_STRING}
  2115. B_ASN1_OCTET_STRING = $0200;
  2116. {$EXTERNALSYM B_ASN1_PRINTABLESTRING}
  2117. B_ASN1_PRINTABLESTRING = $0002;
  2118. {$EXTERNALSYM B_ASN1_T61STRING}
  2119. B_ASN1_T61STRING = $0004;
  2120. {$EXTERNALSYM B_ASN1_TELETEXSTRING}
  2121. B_ASN1_TELETEXSTRING = $0008;
  2122. {$EXTERNALSYM B_ASN1_UNIVERSALSTRING}
  2123. B_ASN1_UNIVERSALSTRING = $0100;
  2124. {$EXTERNALSYM B_ASN1_UNKNOWN}
  2125. B_ASN1_UNKNOWN = $1000;
  2126. {$EXTERNALSYM B_ASN1_UTF8STRING}
  2127. B_ASN1_UTF8STRING = $2000;
  2128. {$EXTERNALSYM B_ASN1_VIDEOTEXSTRING}
  2129. B_ASN1_VIDEOTEXSTRING = $0008;
  2130. {$EXTERNALSYM B_ASN1_VISIBLESTRING}
  2131. B_ASN1_VISIBLESTRING = $0040;
  2132. {$EXTERNALSYM B_ASN1_UTCTIME}
  2133. B_ASN1_UTCTIME = $4000;
  2134. {$EXTERNALSYM B_ASN1_GENERALIZEDTIME}
  2135. B_ASN1_GENERALIZEDTIME = $8000;
  2136. {$EXTERNALSYM B_ASN1_SEQUENCE}
  2137. B_ASN1_SEQUENCE = $10000;
  2138. {$EXTERNALSYM B_ASN1_TIME}
  2139. B_ASN1_TIME = B_ASN1_UTCTIME or
  2140. {$EXTERNALSYM B_ASN1_PRINTABLE}
  2141. B_ASN1_GENERALIZEDTIME;
  2142. {$EXTERNALSYM B_ASN1_PRINTABLE}
  2143. B_ASN1_PRINTABLE = B_ASN1_NUMERICSTRING or
  2144. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2145. B_ASN1_PRINTABLESTRING or
  2146. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2147. B_ASN1_T61STRING or
  2148. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2149. B_ASN1_IA5STRING or
  2150. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2151. B_ASN1_BIT_STRING or
  2152. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2153. B_ASN1_UNIVERSALSTRING or
  2154. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2155. B_ASN1_BMPSTRING or
  2156. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2157. B_ASN1_UTF8STRING or
  2158. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2159. B_ASN1_SEQUENCE or
  2160. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2161. B_ASN1_UNKNOWN;
  2162. {$EXTERNALSYM B_ASN1_DIRECTORYSTRING}
  2163. B_ASN1_DIRECTORYSTRING = B_ASN1_PRINTABLESTRING or
  2164. {$EXTERNALSYM B_ASN1_DISPLAYTEXT}
  2165. B_ASN1_TELETEXSTRING or
  2166. {$EXTERNALSYM B_ASN1_DISPLAYTEXT}
  2167. B_ASN1_BMPSTRING or
  2168. {$EXTERNALSYM B_ASN1_DISPLAYTEXT}
  2169. B_ASN1_UNIVERSALSTRING or
  2170. {$EXTERNALSYM B_ASN1_DISPLAYTEXT}
  2171. B_ASN1_UTF8STRING;
  2172. {$EXTERNALSYM B_ASN1_DISPLAYTEXT}
  2173. B_ASN1_DISPLAYTEXT = B_ASN1_IA5STRING or
  2174. {$EXTERNALSYM MBSTRING_FLAG}
  2175. B_ASN1_VISIBLESTRING or
  2176. {$EXTERNALSYM MBSTRING_FLAG}
  2177. B_ASN1_BMPSTRING or
  2178. {$EXTERNALSYM MBSTRING_FLAG}
  2179. B_ASN1_UTF8STRING;
  2180. {$EXTERNALSYM MBSTRING_FLAG}
  2181. MBSTRING_FLAG = $1000;
  2182. {$EXTERNALSYM MBSTRING_UTF8}
  2183. MBSTRING_UTF8 = MBSTRING_FLAG;
  2184. {$EXTERNALSYM MBSTRING_ASC}
  2185. MBSTRING_ASC = MBSTRING_FLAG or 1;
  2186. {$EXTERNALSYM MBSTRING_BMP}
  2187. MBSTRING_BMP = MBSTRING_FLAG or 2;
  2188. {$EXTERNALSYM MBSTRING_UNIV}
  2189. MBSTRING_UNIV = MBSTRING_FLAG or 4;
  2190. {$EXTERNALSYM SMIME_OLDMIME}
  2191. SMIME_OLDMIME = $400;
  2192. {$EXTERNALSYM SMIME_CRLFEOL}
  2193. SMIME_CRLFEOL = $800;
  2194. {$EXTERNALSYM SMIME_STREAM}
  2195. SMIME_STREAM = $1000;
  2196. {$EXTERNALSYM _CLOCKS_PER_SEC_}
  2197. _CLOCKS_PER_SEC_ = 1000;
  2198. {$EXTERNALSYM _CLOCKS_PER_SEC_}
  2199. {$EXTERNALSYM CLOCKS_PER_SEC}
  2200. CLOCKS_PER_SEC = _CLOCKS_PER_SEC_;
  2201. {$EXTERNALSYM CLOCKS_PER_SEC}
  2202. {$EXTERNALSYM CLK_TCK}
  2203. CLK_TCK = CLOCKS_PER_SEC;
  2204. {$EXTERNALSYM CLK_TCK}
  2205. //* Function codes. */
  2206. {$EXTERNALSYM COMP_F_BIO_ZLIB_FLUSH}
  2207. COMP_F_BIO_ZLIB_FLUSH = 99;
  2208. {$EXTERNALSYM COMP_F_BIO_ZLIB_NEW}
  2209. COMP_F_BIO_ZLIB_NEW = 100;
  2210. {$EXTERNALSYM COMP_F_BIO_ZLIB_READ}
  2211. COMP_F_BIO_ZLIB_READ = 101;
  2212. {$EXTERNALSYM COMP_F_BIO_ZLIB_WRITE}
  2213. COMP_F_BIO_ZLIB_WRITE = 102;
  2214. //* Reason codes. */
  2215. {$EXTERNALSYM COMP_R_ZLIB_DEFLATE_ERROR}
  2216. COMP_R_ZLIB_DEFLATE_ERROR = 99;
  2217. {$EXTERNALSYM COMP_R_ZLIB_INFLATE_ERROR}
  2218. COMP_R_ZLIB_INFLATE_ERROR = 100;
  2219. {$EXTERNALSYM COMP_R_ZLIB_NOT_SUPPORTED}
  2220. COMP_R_ZLIB_NOT_SUPPORTED = 101;
  2221. {$EXTERNALSYM CRYPTO_EX_INDEX_BIO}
  2222. CRYPTO_EX_INDEX_BIO = 0;
  2223. {$EXTERNALSYM CRYPTO_EX_INDEX_SSL}
  2224. CRYPTO_EX_INDEX_SSL = 1;
  2225. {$EXTERNALSYM CRYPTO_EX_INDEX_SSL_CTX}
  2226. CRYPTO_EX_INDEX_SSL_CTX = 2;
  2227. {$EXTERNALSYM CRYPTO_EX_INDEX_SSL_SESSION}
  2228. CRYPTO_EX_INDEX_SSL_SESSION = 3;
  2229. {$EXTERNALSYM CRYPTO_EX_INDEX_X509_STORE}
  2230. CRYPTO_EX_INDEX_X509_STORE = 4;
  2231. {$EXTERNALSYM CRYPTO_EX_INDEX_X509_STORE_CTX}
  2232. CRYPTO_EX_INDEX_X509_STORE_CTX = 5;
  2233. {$EXTERNALSYM CRYPTO_EX_INDEX_RSA}
  2234. CRYPTO_EX_INDEX_RSA = 6;
  2235. {$EXTERNALSYM CRYPTO_EX_INDEX_DSA}
  2236. CRYPTO_EX_INDEX_DSA = 7;
  2237. {$EXTERNALSYM CRYPTO_EX_INDEX_DH}
  2238. CRYPTO_EX_INDEX_DH = 8;
  2239. {$EXTERNALSYM CRYPTO_EX_INDEX_ENGINE}
  2240. CRYPTO_EX_INDEX_ENGINE = 9;
  2241. {$EXTERNALSYM CRYPTO_EX_INDEX_X509}
  2242. CRYPTO_EX_INDEX_X509 = 10;
  2243. {$EXTERNALSYM CRYPTO_EX_INDEX_UI}
  2244. CRYPTO_EX_INDEX_UI = 11;
  2245. {$EXTERNALSYM CRYPTO_EX_INDEX_ECDSA}
  2246. CRYPTO_EX_INDEX_ECDSA = 12;
  2247. {$EXTERNALSYM CRYPTO_EX_INDEX_ECDH}
  2248. CRYPTO_EX_INDEX_ECDH = 13;
  2249. {$EXTERNALSYM CRYPTO_EX_INDEX_COMP}
  2250. CRYPTO_EX_INDEX_COMP = 14;
  2251. {$EXTERNALSYM CRYPTO_EX_INDEX_STORE}
  2252. CRYPTO_EX_INDEX_STORE = 15;
  2253. {$EXTERNALSYM CRYPTO_EX_INDEX_USER}
  2254. CRYPTO_EX_INDEX_USER = 100;
  2255. {$EXTERNALSYM CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX}
  2256. CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX = 100;
  2257. {$EXTERNALSYM CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID}
  2258. CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID = 103;
  2259. {$EXTERNALSYM CRYPTO_F_CRYPTO_GET_NEW_LOCKID}
  2260. CRYPTO_F_CRYPTO_GET_NEW_LOCKID = 101;
  2261. {$EXTERNALSYM CRYPTO_F_CRYPTO_SET_EX_DATA}
  2262. CRYPTO_F_CRYPTO_SET_EX_DATA = 102;
  2263. {$EXTERNALSYM CRYPTO_F_DEF_ADD_INDEX}
  2264. CRYPTO_F_DEF_ADD_INDEX = 104;
  2265. {$EXTERNALSYM CRYPTO_F_DEF_GET_CLASS}
  2266. CRYPTO_F_DEF_GET_CLASS = 105;
  2267. {$EXTERNALSYM CRYPTO_F_INT_DUP_EX_DATA}
  2268. CRYPTO_F_INT_DUP_EX_DATA = 106;
  2269. {$EXTERNALSYM CRYPTO_F_INT_FREE_EX_DATA}
  2270. CRYPTO_F_INT_FREE_EX_DATA = 107;
  2271. {$EXTERNALSYM CRYPTO_F_INT_NEW_EX_DATA}
  2272. CRYPTO_F_INT_NEW_EX_DATA = 108;
  2273. {$EXTERNALSYM CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK}
  2274. CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK = 100;
  2275. {$EXTERNALSYM CRYPTO_LOCK}
  2276. CRYPTO_LOCK = 1;
  2277. {$EXTERNALSYM CRYPTO_LOCK_ERR}
  2278. CRYPTO_LOCK_ERR = 1;
  2279. {$EXTERNALSYM CRYPTO_LOCK_ERR_HASH}
  2280. CRYPTO_LOCK_ERR_HASH = 2;
  2281. {$EXTERNALSYM CRYPTO_LOCK_X509}
  2282. CRYPTO_LOCK_X509 = 3;
  2283. {$EXTERNALSYM CRYPTO_LOCK_X509_INFO}
  2284. CRYPTO_LOCK_X509_INFO = 4;
  2285. {$EXTERNALSYM CRYPTO_LOCK_X509_PKEY}
  2286. CRYPTO_LOCK_X509_PKEY = 5;
  2287. {$EXTERNALSYM CRYPTO_LOCK_X509_CRL}
  2288. CRYPTO_LOCK_X509_CRL = 6;
  2289. {$EXTERNALSYM CRYPTO_LOCK_X509_REQ}
  2290. CRYPTO_LOCK_X509_REQ = 7;
  2291. {$EXTERNALSYM CRYPTO_LOCK_DSA}
  2292. CRYPTO_LOCK_DSA = 8;
  2293. {$EXTERNALSYM CRYPTO_LOCK_RSA}
  2294. CRYPTO_LOCK_RSA = 9;
  2295. {$EXTERNALSYM CRYPTO_LOCK_EVP_PKEY}
  2296. CRYPTO_LOCK_EVP_PKEY = 10;
  2297. {$EXTERNALSYM CRYPTO_LOCK_X509_STORE}
  2298. CRYPTO_LOCK_X509_STORE = 11;
  2299. {$EXTERNALSYM CRYPTO_LOCK_SSL_CTX}
  2300. CRYPTO_LOCK_SSL_CTX = 12;
  2301. {$EXTERNALSYM CRYPTO_LOCK_SSL_CERT}
  2302. CRYPTO_LOCK_SSL_CERT = 13;
  2303. {$EXTERNALSYM CRYPTO_LOCK_SSL_SESSION}
  2304. CRYPTO_LOCK_SSL_SESSION = 14;
  2305. {$EXTERNALSYM CRYPTO_LOCK_SSL_SESS_CERT}
  2306. CRYPTO_LOCK_SSL_SESS_CERT = 15;
  2307. {$EXTERNALSYM CRYPTO_LOCK_SSL}
  2308. CRYPTO_LOCK_SSL = 16;
  2309. {$EXTERNALSYM CRYPTO_LOCK_SSL_METHOD}
  2310. CRYPTO_LOCK_SSL_METHOD = 17;
  2311. {$EXTERNALSYM CRYPTO_LOCK_RAND}
  2312. CRYPTO_LOCK_RAND = 18;
  2313. // CRYPTO_LOCK_RAND = 17;
  2314. {$EXTERNALSYM CRYPTO_LOCK_RAND2}
  2315. CRYPTO_LOCK_RAND2 = 19;
  2316. {$EXTERNALSYM CRYPTO_LOCK_MALLOC}
  2317. CRYPTO_LOCK_MALLOC = 20;
  2318. //was CRYPTO_LOCK_MALLOC = 18;
  2319. {$EXTERNALSYM CRYPTO_LOCK_BIO}
  2320. CRYPTO_LOCK_BIO = 21;
  2321. //was CRYPTO_LOCK_BIO = 19;
  2322. {$EXTERNALSYM CRYPTO_LOCK_GETHOSTBYNAME}
  2323. CRYPTO_LOCK_GETHOSTBYNAME = 22;
  2324. //was CRYPTO_LOCK_GETHOSTBYNAME = 20;
  2325. {$EXTERNALSYM CRYPTO_LOCK_GETSERVBYNAME}
  2326. CRYPTO_LOCK_GETSERVBYNAME = 23;
  2327. //was CRYPTO_LOCK_GETSERVBYNAME = 21;
  2328. {$EXTERNALSYM CRYPTO_LOCK_READDIR}
  2329. CRYPTO_LOCK_READDIR = 24;
  2330. //was CRYPTO_LOCK_READDIR = 22;
  2331. {$EXTERNALSYM CRYPTO_LOCK_RSA_BLINDING}
  2332. CRYPTO_LOCK_RSA_BLINDING = 25;
  2333. //was CRYPTO_LOCK_RSA_BLINDING = 23;
  2334. {$EXTERNALSYM CRYPTO_LOCK_DH}
  2335. CRYPTO_LOCK_DH = 26;
  2336. {$EXTERNALSYM CRYPTO_LOCK_MALLOC2}
  2337. CRYPTO_LOCK_MALLOC2 = 27;
  2338. {$EXTERNALSYM CRYPTO_LOCK_DSO}
  2339. CRYPTO_LOCK_DSO = 28;
  2340. {$EXTERNALSYM CRYPTO_LOCK_DYNLOCK}
  2341. CRYPTO_LOCK_DYNLOCK = 29;
  2342. {$EXTERNALSYM CRYPTO_LOCK_ENGINE}
  2343. CRYPTO_LOCK_ENGINE = 30;
  2344. {$EXTERNALSYM CRYPTO_LOCK_UI}
  2345. CRYPTO_LOCK_UI = 31;
  2346. {$EXTERNALSYM CRYPTO_LOCK_ECDSA}
  2347. CRYPTO_LOCK_ECDSA = 32;
  2348. {$EXTERNALSYM CRYPTO_LOCK_EC}
  2349. CRYPTO_LOCK_EC = 33;
  2350. {$EXTERNALSYM CRYPTO_LOCK_ECDH}
  2351. CRYPTO_LOCK_ECDH = 34;
  2352. {$EXTERNALSYM CRYPTO_LOCK_BN}
  2353. CRYPTO_LOCK_BN = 35;
  2354. {$EXTERNALSYM CRYPTO_LOCK_EC_PRE_COMP}
  2355. CRYPTO_LOCK_EC_PRE_COMP = 36;
  2356. {$EXTERNALSYM CRYPTO_LOCK_STORE}
  2357. CRYPTO_LOCK_STORE = 37;
  2358. {$EXTERNALSYM CRYPTO_LOCK_COMP}
  2359. CRYPTO_LOCK_COMP = 38;
  2360. {$IFNDEF OPENSSL_FIPS}
  2361. {$EXTERNALSYM CRYPTO_NUM_LOCKS}
  2362. CRYPTO_NUM_LOCKS = 39;
  2363. // was OPENSSL_CRYPTO_NUM_LOCKS = 24;
  2364. {$ELSE}
  2365. {$EXTERNALSYM CRYPTO_LOCK_FIPS}
  2366. CRYPTO_LOCK_FIPS = 39;
  2367. {$EXTERNALSYM CRYPTO_LOCK_FIPS2}
  2368. CRYPTO_LOCK_FIPS2 = 40;
  2369. {$EXTERNALSYM CRYPTO_NUM_LOCKS}
  2370. CRYPTO_NUM_LOCKS = 41;
  2371. {$ENDIF}
  2372. {$EXTERNALSYM CRYPTO_MEM_CHECK_DISABLE}
  2373. CRYPTO_MEM_CHECK_DISABLE = $3;
  2374. {$EXTERNALSYM CRYPTO_MEM_CHECK_ENABLE}
  2375. CRYPTO_MEM_CHECK_ENABLE = $2;
  2376. {$EXTERNALSYM CRYPTO_MEM_CHECK_OFF}
  2377. CRYPTO_MEM_CHECK_OFF = $0;
  2378. {$EXTERNALSYM CRYPTO_MEM_CHECK_ON}
  2379. CRYPTO_MEM_CHECK_ON = $1;
  2380. {$EXTERNALSYM CRYPTO_READ}
  2381. CRYPTO_READ = 4;
  2382. {$EXTERNALSYM CRYPTO_UNLOCK}
  2383. CRYPTO_UNLOCK = 2;
  2384. {$EXTERNALSYM CRYPTO_WRITE}
  2385. CRYPTO_WRITE = 8;
  2386. {$EXTERNALSYM V_CRYPTO_MDEBUG_TIME}
  2387. V_CRYPTO_MDEBUG_TIME = $1;
  2388. {$EXTERNALSYM V_CRYPTO_MDEBUG_THREAD}
  2389. V_CRYPTO_MDEBUG_THREAD = $2;
  2390. {$IFNDEF OPENSSL_NO_AES}
  2391. {$EXTERNALSYM AES_ENCRYPT}
  2392. AES_ENCRYPT = 1;
  2393. {$EXTERNALSYM AES_DECRYPT}
  2394. AES_DECRYPT = 0;
  2395. {$EXTERNALSYM AES_MAXNR}
  2396. AES_MAXNR = 14;
  2397. {$EXTERNALSYM AES_BLOCK_SIZE}
  2398. AES_BLOCK_SIZE = 16;
  2399. {$ENDIF}
  2400. //* These values are used as commands to DSO_ctrl() */
  2401. {$EXTERNALSYM DSO_CTRL_GET_FLAGS}
  2402. DSO_CTRL_GET_FLAGS = 1;
  2403. {$EXTERNALSYM DSO_CTRL_SET_FLAGS}
  2404. DSO_CTRL_SET_FLAGS = 2;
  2405. {$EXTERNALSYM DSO_CTRL_OR_FLAGS}
  2406. DSO_CTRL_OR_FLAGS = 3;
  2407. ///* By default, DSO_load() will translate the provided filename into a form
  2408. // * typical for the platform (more specifically the DSO_METHOD) using the
  2409. // * dso_name_converter function of the method. Eg. win32 will transform "blah"
  2410. // * into "blah.dll", and dlfcn will transform it into "libblah.so". The
  2411. // * behaviour can be overriden by setting the name_converter callback in the DSO
  2412. // * object (using DSO_set_name_converter()). This callback could even utilise
  2413. // * the DSO_METHOD's converter too if it only wants to override behaviour for
  2414. // * one or two possible DSO methods. However, the following flag can be set in a
  2415. // * DSO to prevent *any* native name-translation at all - eg. if the caller has
  2416. // * prompted the user for a path to a driver library so the filename should be
  2417. // * interpreted as-is. */
  2418. {$EXTERNALSYM DSO_FLAG_NO_NAME_TRANSLATION}
  2419. DSO_FLAG_NO_NAME_TRANSLATION = $01;
  2420. ///* An extra flag to give if only the extension should be added as
  2421. // * translation. This is obviously only of importance on Unix and
  2422. // * other operating systems where the translation also may prefix
  2423. // * the name with something, like 'lib', and ignored everywhere else.
  2424. // * This flag is also ignored if DSO_FLAG_NO_NAME_TRANSLATION is used
  2425. // * at the same time. */
  2426. {$EXTERNALSYM DSO_FLAG_NAME_TRANSLATION_EXT_ONLY}
  2427. DSO_FLAG_NAME_TRANSLATION_EXT_ONLY = $02;
  2428. ///* The following flag controls the translation of symbol names to upper
  2429. // * case. This is currently only being implemented for OpenVMS.
  2430. // */
  2431. {$EXTERNALSYM DSO_FLAG_UPCASE_SYMBOL}
  2432. DSO_FLAG_UPCASE_SYMBOL = $10;
  2433. //* This flag loads the library with public symbols.
  2434. // * Meaning: The exported symbols of this library are public
  2435. // * to all libraries loaded after this library.
  2436. // * At the moment only implemented in unix.
  2437. // */
  2438. {$EXTERNALSYM DSO_FLAG_GLOBAL_SYMBOLS}
  2439. DSO_FLAG_GLOBAL_SYMBOLS = $20;
  2440. //seed.h
  2441. {$IFNDEF OPENSSL_NO_SEED}
  2442. {$IFDEF AES_LONG} //* look whether we need 'long' to get 32 bits */
  2443. {$DEFINE SEED_LONG}
  2444. {$ENDIF}
  2445. {$EXTERNALSYM SEED_BLOCK_SIZE}
  2446. SEED_BLOCK_SIZE = 16;
  2447. {$EXTERNALSYM SEED_KEY_LENGTH}
  2448. SEED_KEY_LENGTH = 16;
  2449. {$ENDIF}
  2450. {$IFNDEF OPENSSL_NO_CAST}
  2451. {$EXTERNALSYM CAST_BLOCK}
  2452. CAST_BLOCK = 8;
  2453. {$EXTERNALSYM CAST_DECRYPT}
  2454. CAST_DECRYPT = 0;
  2455. {$EXTERNALSYM CAST_ENCRYPT}
  2456. CAST_ENCRYPT = 1;
  2457. {$EXTERNALSYM CAST_KEY_LENGTH}
  2458. CAST_KEY_LENGTH = 16;
  2459. {$ENDIF}
  2460. {$IFNDEF OPENSSL_NO_DES}
  2461. {$EXTERNALSYM DES_CBC_MODE}
  2462. DES_CBC_MODE = 0;
  2463. {$EXTERNALSYM DES_DECRYPT}
  2464. DES_DECRYPT = 0;
  2465. {$EXTERNALSYM DES_ENCRYPT}
  2466. DES_ENCRYPT = 1;
  2467. {$EXTERNALSYM DES_PCBC_MODE}
  2468. DES_PCBC_MODE = 1;
  2469. {$ENDIF}
  2470. {$IFNDEF OPENSSL_NO_DH}
  2471. //the OpenSSL developers probably only wanted to make sure this was defined.
  2472. {$EXTERNALSYM DH_MAX_MODULUS_BITS}
  2473. DH_MAX_MODULUS_BITS = 10000;
  2474. {$EXTERNALSYM DH_FIPS_MIN_MODULUS_BITS}
  2475. DH_FIPS_MIN_MODULUS_BITS = 1024;
  2476. {$EXTERNALSYM DH_FLAG_CACHE_MONT_P}
  2477. DH_FLAG_CACHE_MONT_P = $01;
  2478. {$EXTERNALSYM DH_FLAG_NO_EXP_CONSTTIME}
  2479. DH_FLAG_NO_EXP_CONSTTIME = $02;
  2480. {$EXTERNALSYM DH_GENERATOR_2}
  2481. DH_GENERATOR_2 = 2;
  2482. {$EXTERNALSYM DH_GENERATOR_5}
  2483. DH_GENERATOR_5 = 5;
  2484. {$EXTERNALSYM DH_CHECK_P_NOT_PRIME}
  2485. DH_CHECK_P_NOT_PRIME = $01;
  2486. {$EXTERNALSYM DH_CHECK_P_NOT_STRONG_PRIME}
  2487. DH_CHECK_P_NOT_STRONG_PRIME = $02;
  2488. {$EXTERNALSYM DH_UNABLE_TO_CHECK_GENERATOR}
  2489. DH_UNABLE_TO_CHECK_GENERATOR = $04;
  2490. {$EXTERNALSYM DH_NOT_SUITABLE_GENERATOR}
  2491. DH_NOT_SUITABLE_GENERATOR = $08;
  2492. {$EXTERNALSYM DH_CHECK_PUBKEY_TOO_SMALL}
  2493. DH_CHECK_PUBKEY_TOO_SMALL = $01;
  2494. {$EXTERNALSYM DH_CHECK_PUBKEY_TOO_LARGE}
  2495. DH_CHECK_PUBKEY_TOO_LARGE = $02;
  2496. {$EXTERNALSYM DH_CHECK_P_NOT_SAFE_PRIME}
  2497. DH_CHECK_P_NOT_SAFE_PRIME = DH_CHECK_P_NOT_STRONG_PRIME;
  2498. {$EXTERNALSYM DH_F_DHPARAMS_PRINT}
  2499. DH_F_DHPARAMS_PRINT = 100;
  2500. {$EXTERNALSYM DH_F_DHPARAMS_PRINT_FP}
  2501. DH_F_DHPARAMS_PRINT_FP = 101;
  2502. {$EXTERNALSYM DH_F_COMPUTE_KEY}
  2503. DH_F_COMPUTE_KEY = 102;
  2504. {$EXTERNALSYM DH_F_GENERATE_KEY}
  2505. DH_F_GENERATE_KEY = 103;
  2506. {$EXTERNALSYM DH_F_GENERATE_PARAMETERS}
  2507. DH_F_GENERATE_PARAMETERS = 104;
  2508. {$EXTERNALSYM DH_F_DH_NEW_METHOD}
  2509. DH_F_DH_NEW_METHOD = 105;
  2510. {$EXTERNALSYM DH_F_DH_NEW}
  2511. DH_F_DH_NEW = 105;
  2512. {$EXTERNALSYM DH_F_DH_BUILTIN_GENPARAMS}
  2513. DH_F_DH_BUILTIN_GENPARAMS = 106;
  2514. {$EXTERNALSYM DH_F_DH_COMPUTE_KEY}
  2515. DH_F_DH_COMPUTE_KEY = 107;
  2516. //was DH_F_DH_COMPUTE_KEY = 102;
  2517. {$EXTERNALSYM DH_F_DH_GENERATE_KEY}
  2518. DH_F_DH_GENERATE_KEY = 108;
  2519. //was DH_F_DH_GENERATE_KEY = 103;
  2520. {$EXTERNALSYM DH_F_DH_GENERATE_PARAMETERS}
  2521. DH_F_DH_GENERATE_PARAMETERS = 109;
  2522. //was DH_F_DH_GENERATE_PARAMETERS = 104;
  2523. {$EXTERNALSYM DH_R_NO_PRIVATE_VALUE}
  2524. DH_R_NO_PRIVATE_VALUE = 100;
  2525. {$EXTERNALSYM DH_R_BAD_GENERATOR}
  2526. DH_R_BAD_GENERATOR = 101;
  2527. {$EXTERNALSYM DH_R_INVALID_PUBKEY}
  2528. DH_R_INVALID_PUBKEY = 102;
  2529. {$EXTERNALSYM DH_R_MODULUS_TOO_LARGE}
  2530. DH_R_MODULUS_TOO_LARGE = 103;
  2531. {$EXTERNALSYM DH_R_KEY_SIZE_TOO_SMALL}
  2532. DH_R_KEY_SIZE_TOO_SMALL = 104;
  2533. {$ENDIF}
  2534. {$IFNDEF OPENSSL_NO_DSA}
  2535. //I think the OpenSSL developers wanted to make sure this was defined.
  2536. {$EXTERNALSYM DSA_MAX_MODULUS_BITS}
  2537. DSA_MAX_MODULUS_BITS = 10000;
  2538. {$EXTERNALSYM DSA_FIPS_MIN_MODULUS_BITS}
  2539. DSA_FIPS_MIN_MODULUS_BITS = 1024;
  2540. {$EXTERNALSYM DSA_FLAG_CACHE_MONT_P}
  2541. DSA_FLAG_CACHE_MONT_P = $01;
  2542. {$EXTERNALSYM DSA_FLAG_NO_EXP_CONSTTIME}
  2543. DSA_FLAG_NO_EXP_CONSTTIME = $02; //* new with 0.9.7h; the built-in DSA
  2544. ///* If this flag is set the DSA method is FIPS compliant and can be used
  2545. // * in FIPS mode. This is set in the validated module method. If an
  2546. // * application sets this flag in its own methods it is its reposibility
  2547. // * to ensure the result is compliant.
  2548. // */
  2549. {$EXTERNALSYM DSA_FLAG_FIPS_METHOD}
  2550. DSA_FLAG_FIPS_METHOD = $0400;
  2551. ///* If this flag is set the operations normally disabled in FIPS mode are
  2552. // * permitted it is then the applications responsibility to ensure that the
  2553. // * usage is compliant.
  2554. // */
  2555. {$EXTERNALSYM DSA_FLAG_NON_FIPS_ALLOW}
  2556. DSA_FLAG_NON_FIPS_ALLOW = $0400;
  2557. {$EXTERNALSYM DSA_F_D2I_DSA_SIG}
  2558. DSA_F_D2I_DSA_SIG = 110;
  2559. {$EXTERNALSYM DSA_F_DSAPARAMS_PRINT}
  2560. DSA_F_DSAPARAMS_PRINT = 100;
  2561. {$EXTERNALSYM DSA_F_DSAPARAMS_PRINT_FP}
  2562. DSA_F_DSAPARAMS_PRINT_FP = 101;
  2563. {$EXTERNALSYM DSA_F_DSA_BUILTIN_KEYGEN}
  2564. DSA_F_DSA_BUILTIN_KEYGEN = 119;
  2565. {$EXTERNALSYM DSA_F_DSA_BUILTIN_PARAMGEN}
  2566. DSA_F_DSA_BUILTIN_PARAMGEN = 118;
  2567. {$EXTERNALSYM DSA_F_DSA_DO_SIGN}
  2568. DSA_F_DSA_DO_SIGN = 112;
  2569. {$EXTERNALSYM DSA_F_DSA_DO_VERIFY}
  2570. DSA_F_DSA_DO_VERIFY = 113;
  2571. {$EXTERNALSYM DSA_F_DSA_IS_PRIME}
  2572. DSA_F_DSA_IS_PRIME = 102;
  2573. {$EXTERNALSYM DSA_F_DSA_NEW}
  2574. DSA_F_DSA_NEW = 103;
  2575. {$EXTERNALSYM DSA_F_DSA_PRINT}
  2576. DSA_F_DSA_PRINT = 104;
  2577. {$EXTERNALSYM DSA_F_DSA_PRINT_FP}
  2578. DSA_F_DSA_PRINT_FP = 105;
  2579. {$EXTERNALSYM DSA_F_DSA_SIGN}
  2580. DSA_F_DSA_SIGN = 106;
  2581. {$EXTERNALSYM DSA_F_DSA_SIGN_SETUP}
  2582. DSA_F_DSA_SIGN_SETUP = 107;
  2583. {$EXTERNALSYM DSA_F_DSA_SIG_NEW}
  2584. DSA_F_DSA_SIG_NEW = 109;
  2585. {$EXTERNALSYM DSA_F_DSA_VERIFY}
  2586. DSA_F_DSA_VERIFY = 108;
  2587. {$EXTERNALSYM DSA_F_DSA_GENERATE_PARAMETERS}
  2588. DSA_F_DSA_GENERATE_PARAMETERS = 117;
  2589. {$EXTERNALSYM DSA_F_I2D_DSA_SIG}
  2590. DSA_F_I2D_DSA_SIG = 111;
  2591. {$EXTERNALSYM DSA_F_SIG_CB}
  2592. DSA_F_SIG_CB = 114;
  2593. {$EXTERNALSYM DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}
  2594. DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE = 100;
  2595. {$EXTERNALSYM DSA_R_MISSING_PARAMETERS}
  2596. DSA_R_MISSING_PARAMETERS = 101;
  2597. {$EXTERNALSYM DSA_R_BAD_Q_VALUE}
  2598. DSA_R_BAD_Q_VALUE = 102;
  2599. {$EXTERNALSYM DSA_R_MODULUS_TOO_LARGE}
  2600. DSA_R_MODULUS_TOO_LARGE = 103;
  2601. {$EXTERNALSYM DSA_R_NON_FIPS_METHOD}
  2602. DSA_R_NON_FIPS_METHOD = 104;
  2603. {$EXTERNALSYM DSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE}
  2604. DSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE = 105;
  2605. {$EXTERNALSYM DSA_R_KEY_SIZE_TOO_SMALL}
  2606. DSA_R_KEY_SIZE_TOO_SMALL = 106;
  2607. {$ENDIF}
  2608. {$IFNDEF NO_EC}
  2609. {$EXTERNALSYM ECC_MAX_FIELD_BITS}
  2610. ECC_MAX_FIELD_BITS = 661;
  2611. {$EXTERNALSYM EC_NAMED_CURVE}
  2612. EC_NAMED_CURVE = $001;
  2613. {$EXTERNALSYM POINT_CONVERSION_COMPRESSED}
  2614. POINT_CONVERSION_COMPRESSED = 2;
  2615. {$EXTERNALSYM POINT_CONVERSION_UNCOMPRESSED}
  2616. POINT_CONVERSION_UNCOMPRESSED = 4;
  2617. {$EXTERNALSYM POINT_CONVERSION_HYBRID}
  2618. POINT_CONVERSION_HYBRID = 6;
  2619. {$EXTERNALSYM EC_PKEY_NO_PARAMETERS}
  2620. EC_PKEY_NO_PARAMETERS = $001;
  2621. {$EXTERNALSYM EC_PKEY_NO_PUBKEY}
  2622. EC_PKEY_NO_PUBKEY = $002;
  2623. //* Error codes for the EC functions. */
  2624. //* Function codes. */
  2625. {$EXTERNALSYM EC_F_COMPUTE_WNAF}
  2626. EC_F_COMPUTE_WNAF = 143;
  2627. {$EXTERNALSYM EC_F_D2I_ECPARAMETERS}
  2628. EC_F_D2I_ECPARAMETERS = 144;
  2629. {$EXTERNALSYM EC_F_D2I_ECPKPARAMETERS}
  2630. EC_F_D2I_ECPKPARAMETERS = 145;
  2631. {$EXTERNALSYM EC_F_D2I_ECPRIVATEKEY}
  2632. EC_F_D2I_ECPRIVATEKEY = 146;
  2633. {$EXTERNALSYM EC_F_ECPARAMETERS_PRINT}
  2634. EC_F_ECPARAMETERS_PRINT = 147;
  2635. {$EXTERNALSYM EC_F_ECPARAMETERS_PRINT_FP}
  2636. EC_F_ECPARAMETERS_PRINT_FP = 148;
  2637. {$EXTERNALSYM EC_F_ECPKPARAMETERS_PRINT}
  2638. EC_F_ECPKPARAMETERS_PRINT = 149;
  2639. {$EXTERNALSYM EC_F_ECPKPARAMETERS_PRINT_FP}
  2640. EC_F_ECPKPARAMETERS_PRINT_FP = 150;
  2641. {$EXTERNALSYM EC_F_ECP_NIST_MOD_192}
  2642. EC_F_ECP_NIST_MOD_192 = 203;
  2643. {$EXTERNALSYM EC_F_ECP_NIST_MOD_224}
  2644. EC_F_ECP_NIST_MOD_224 = 204;
  2645. {$EXTERNALSYM EC_F_ECP_NIST_MOD_256}
  2646. EC_F_ECP_NIST_MOD_256 = 205;
  2647. {$EXTERNALSYM EC_F_ECP_NIST_MOD_521}
  2648. EC_F_ECP_NIST_MOD_521 = 206;
  2649. {$EXTERNALSYM EC_F_EC_ASN1_GROUP2CURVE}
  2650. EC_F_EC_ASN1_GROUP2CURVE = 153;
  2651. {$EXTERNALSYM EC_F_EC_ASN1_GROUP2FIELDID}
  2652. EC_F_EC_ASN1_GROUP2FIELDID = 154;
  2653. {$EXTERNALSYM EC_F_EC_ASN1_GROUP2PARAMETERS}
  2654. EC_F_EC_ASN1_GROUP2PARAMETERS = 155;
  2655. {$EXTERNALSYM EC_F_EC_ASN1_GROUP2PKPARAMETERS}
  2656. EC_F_EC_ASN1_GROUP2PKPARAMETERS = 156;
  2657. {$EXTERNALSYM EC_F_EC_ASN1_PARAMETERS2GROUP}
  2658. EC_F_EC_ASN1_PARAMETERS2GROUP = 157;
  2659. {$EXTERNALSYM EC_F_EC_ASN1_PKPARAMETERS2GROUP}
  2660. EC_F_EC_ASN1_PKPARAMETERS2GROUP = 158;
  2661. {$EXTERNALSYM EC_F_EC_EX_DATA_SET_DATA}
  2662. EC_F_EC_EX_DATA_SET_DATA = 211;
  2663. {$EXTERNALSYM EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY}
  2664. EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY = 208;
  2665. {$EXTERNALSYM EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT}
  2666. EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT = 159;
  2667. {$EXTERNALSYM EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE}
  2668. EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE = 195;
  2669. {$EXTERNALSYM EC_F_EC_GF2M_SIMPLE_OCT2POINT}
  2670. EC_F_EC_GF2M_SIMPLE_OCT2POINT = 160;
  2671. {$EXTERNALSYM EC_F_EC_GF2M_SIMPLE_POINT2OCT}
  2672. EC_F_EC_GF2M_SIMPLE_POINT2OCT = 161;
  2673. {$EXTERNALSYM EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES}
  2674. EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES = 162;
  2675. {$EXTERNALSYM EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES}
  2676. EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES = 163;
  2677. {$EXTERNALSYM EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES}
  2678. EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES = 164;
  2679. {$EXTERNALSYM EC_F_EC_GFP_MONT_FIELD_DECODE}
  2680. EC_F_EC_GFP_MONT_FIELD_DECODE = 133;
  2681. {$EXTERNALSYM EC_F_EC_GFP_MONT_FIELD_ENCODE}
  2682. EC_F_EC_GFP_MONT_FIELD_ENCODE = 134;
  2683. {$EXTERNALSYM EC_F_EC_GFP_MONT_FIELD_MUL}
  2684. EC_F_EC_GFP_MONT_FIELD_MUL = 131;
  2685. {$EXTERNALSYM EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE}
  2686. EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE = 209;
  2687. {$EXTERNALSYM EC_F_EC_GFP_MONT_FIELD_SQR}
  2688. EC_F_EC_GFP_MONT_FIELD_SQR = 132;
  2689. {$EXTERNALSYM EC_F_EC_GFP_MONT_GROUP_SET_CURVE}
  2690. EC_F_EC_GFP_MONT_GROUP_SET_CURVE = 189;
  2691. {$EXTERNALSYM EC_F_EC_GFP_MONT_GROUP_SET_CURVE_GFP}
  2692. EC_F_EC_GFP_MONT_GROUP_SET_CURVE_GFP = 135;
  2693. {$EXTERNALSYM EC_F_EC_GFP_NIST_FIELD_MUL}
  2694. EC_F_EC_GFP_NIST_FIELD_MUL = 200;
  2695. {$EXTERNALSYM EC_F_EC_GFP_NIST_FIELD_SQR}
  2696. EC_F_EC_GFP_NIST_FIELD_SQR = 201;
  2697. {$EXTERNALSYM EC_F_EC_GFP_NIST_GROUP_SET_CURVE}
  2698. EC_F_EC_GFP_NIST_GROUP_SET_CURVE = 202;
  2699. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT}
  2700. EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT = 165;
  2701. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE}
  2702. EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE = 166;
  2703. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE_GFP}
  2704. EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE_GFP = 100;
  2705. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_GROUP_SET_GENERATOR}
  2706. EC_F_EC_GFP_SIMPLE_GROUP_SET_GENERATOR = 101;
  2707. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_MAKE_AFFINE}
  2708. EC_F_EC_GFP_SIMPLE_MAKE_AFFINE = 102;
  2709. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_OCT2POINT}
  2710. EC_F_EC_GFP_SIMPLE_OCT2POINT = 103;
  2711. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_POINT2OCT}
  2712. EC_F_EC_GFP_SIMPLE_POINT2OCT = 104;
  2713. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE}
  2714. EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE = 137;
  2715. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES}
  2716. EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES = 167;
  2717. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES_GFP}
  2718. EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES_GFP = 105;
  2719. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES}
  2720. EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES = 168;
  2721. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES_GFP}
  2722. EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES_GFP = 128;
  2723. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES}
  2724. EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES = 169;
  2725. {$EXTERNALSYM EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES_GFP}
  2726. EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES_GFP = 129;
  2727. {$EXTERNALSYM EC_F_EC_GROUP_CHECK}
  2728. EC_F_EC_GROUP_CHECK = 170;
  2729. {$EXTERNALSYM EC_F_EC_GROUP_CHECK_DISCRIMINANT}
  2730. EC_F_EC_GROUP_CHECK_DISCRIMINANT = 171;
  2731. {$EXTERNALSYM EC_F_EC_GROUP_COPY}
  2732. EC_F_EC_GROUP_COPY = 106;
  2733. {$EXTERNALSYM EC_F_EC_GROUP_GET0_GENERATOR}
  2734. EC_F_EC_GROUP_GET0_GENERATOR = 139;
  2735. {$EXTERNALSYM EC_F_EC_GROUP_GET_COFACTOR}
  2736. EC_F_EC_GROUP_GET_COFACTOR = 140;
  2737. {$EXTERNALSYM EC_F_EC_GROUP_GET_CURVE_GF2M}
  2738. EC_F_EC_GROUP_GET_CURVE_GF2M = 172;
  2739. {$EXTERNALSYM EC_F_EC_GROUP_GET_CURVE_GFP}
  2740. EC_F_EC_GROUP_GET_CURVE_GFP = 130;
  2741. {$EXTERNALSYM EC_F_EC_GROUP_GET_DEGREE}
  2742. EC_F_EC_GROUP_GET_DEGREE = 173;
  2743. {$EXTERNALSYM EC_F_EC_GROUP_GET_ORDER}
  2744. EC_F_EC_GROUP_GET_ORDER = 141;
  2745. {$EXTERNALSYM EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS}
  2746. EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS = 193;
  2747. {$EXTERNALSYM EC_F_EC_GROUP_GET_TRINOMIAL_BASIS}
  2748. EC_F_EC_GROUP_GET_TRINOMIAL_BASIS = 194;
  2749. {$EXTERNALSYM EC_F_EC_GROUP_NEW}
  2750. EC_F_EC_GROUP_NEW = 108;
  2751. {$EXTERNALSYM EC_F_EC_GROUP_NEW_BY_CURVE_NAME}
  2752. EC_F_EC_GROUP_NEW_BY_CURVE_NAME = 174;
  2753. {$EXTERNALSYM EC_F_EC_GROUP_NEW_FROM_DATA}
  2754. EC_F_EC_GROUP_NEW_FROM_DATA = 175;
  2755. {$EXTERNALSYM EC_F_EC_GROUP_PRECOMPUTE_MULT}
  2756. EC_F_EC_GROUP_PRECOMPUTE_MULT = 142;
  2757. {$EXTERNALSYM EC_F_EC_GROUP_SET_CURVE_GF2M}
  2758. EC_F_EC_GROUP_SET_CURVE_GF2M = 176;
  2759. {$EXTERNALSYM EC_F_EC_GROUP_SET_CURVE_GFP}
  2760. EC_F_EC_GROUP_SET_CURVE_GFP = 109;
  2761. {$EXTERNALSYM EC_F_EC_GROUP_SET_EXTRA_DATA}
  2762. EC_F_EC_GROUP_SET_EXTRA_DATA = 110;
  2763. {$EXTERNALSYM EC_F_EC_GROUP_SET_GENERATOR}
  2764. EC_F_EC_GROUP_SET_GENERATOR = 111;
  2765. {$EXTERNALSYM EC_F_EC_KEY_CHECK_KEY}
  2766. EC_F_EC_KEY_CHECK_KEY = 177;
  2767. {$EXTERNALSYM EC_F_EC_KEY_COPY}
  2768. EC_F_EC_KEY_COPY = 178;
  2769. {$EXTERNALSYM EC_F_EC_KEY_GENERATE_KEY}
  2770. EC_F_EC_KEY_GENERATE_KEY = 179;
  2771. {$EXTERNALSYM EC_F_EC_KEY_NEW}
  2772. EC_F_EC_KEY_NEW = 182;
  2773. {$EXTERNALSYM EC_F_EC_KEY_PRINT}
  2774. EC_F_EC_KEY_PRINT = 180;
  2775. {$EXTERNALSYM EC_F_EC_KEY_PRINT_FP}
  2776. EC_F_EC_KEY_PRINT_FP = 181;
  2777. {$EXTERNALSYM EC_F_EC_POINTS_MAKE_AFFINE}
  2778. EC_F_EC_POINTS_MAKE_AFFINE = 136;
  2779. {$EXTERNALSYM EC_F_EC_POINTS_MUL}
  2780. EC_F_EC_POINTS_MUL = 138;
  2781. {$EXTERNALSYM EC_F_EC_POINT_ADD}
  2782. EC_F_EC_POINT_ADD = 112;
  2783. {$EXTERNALSYM EC_F_EC_POINT_CMP}
  2784. EC_F_EC_POINT_CMP = 113;
  2785. {$EXTERNALSYM EC_F_EC_POINT_COPY}
  2786. EC_F_EC_POINT_COPY = 114;
  2787. {$EXTERNALSYM EC_F_EC_POINT_DBL}
  2788. EC_F_EC_POINT_DBL = 115;
  2789. {$EXTERNALSYM EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M}
  2790. EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M = 183;
  2791. {$EXTERNALSYM EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP}
  2792. EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP = 116;
  2793. {$EXTERNALSYM EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP}
  2794. EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP = 117;
  2795. {$EXTERNALSYM EC_F_EC_POINT_INVERT}
  2796. EC_F_EC_POINT_INVERT = 210;
  2797. {$EXTERNALSYM EC_F_EC_POINT_IS_AT_INFINITY}
  2798. EC_F_EC_POINT_IS_AT_INFINITY = 118;
  2799. {$EXTERNALSYM EC_F_EC_POINT_IS_ON_CURVE}
  2800. EC_F_EC_POINT_IS_ON_CURVE = 119;
  2801. {$EXTERNALSYM EC_F_EC_POINT_MAKE_AFFINE}
  2802. EC_F_EC_POINT_MAKE_AFFINE = 120;
  2803. {$EXTERNALSYM EC_F_EC_POINT_MUL}
  2804. EC_F_EC_POINT_MUL = 184;
  2805. {$EXTERNALSYM EC_F_EC_POINT_NEW}
  2806. EC_F_EC_POINT_NEW = 121;
  2807. {$EXTERNALSYM EC_F_EC_POINT_OCT2POINT}
  2808. EC_F_EC_POINT_OCT2POINT = 122;
  2809. {$EXTERNALSYM EC_F_EC_POINT_POINT2OCT}
  2810. EC_F_EC_POINT_POINT2OCT = 123;
  2811. {$EXTERNALSYM EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M}
  2812. EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M = 185;
  2813. {$EXTERNALSYM EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP}
  2814. EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP = 124;
  2815. {$EXTERNALSYM EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M}
  2816. EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M = 186;
  2817. {$EXTERNALSYM EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP}
  2818. EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP = 125;
  2819. {$EXTERNALSYM EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP}
  2820. EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP = 126;
  2821. {$EXTERNALSYM EC_F_EC_POINT_SET_TO_INFINITY}
  2822. EC_F_EC_POINT_SET_TO_INFINITY = 127;
  2823. {$EXTERNALSYM EC_F_EC_PRE_COMP_DUP}
  2824. EC_F_EC_PRE_COMP_DUP = 207;
  2825. {$EXTERNALSYM EC_F_EC_PRE_COMP_NEW}
  2826. EC_F_EC_PRE_COMP_NEW = 196;
  2827. {$EXTERNALSYM EC_F_EC_WNAF_MUL}
  2828. EC_F_EC_WNAF_MUL = 187;
  2829. {$EXTERNALSYM EC_F_EC_WNAF_PRECOMPUTE_MULT}
  2830. EC_F_EC_WNAF_PRECOMPUTE_MULT = 188;
  2831. {$EXTERNALSYM EC_F_I2D_ECPARAMETERS}
  2832. EC_F_I2D_ECPARAMETERS = 190;
  2833. {$EXTERNALSYM EC_F_I2D_ECPKPARAMETERS}
  2834. EC_F_I2D_ECPKPARAMETERS = 191;
  2835. {$EXTERNALSYM EC_F_I2D_ECPRIVATEKEY}
  2836. EC_F_I2D_ECPRIVATEKEY = 192;
  2837. {$EXTERNALSYM EC_F_I2O_ECPUBLICKEY}
  2838. EC_F_I2O_ECPUBLICKEY = 151;
  2839. {$EXTERNALSYM EC_F_O2I_ECPUBLICKEY}
  2840. EC_F_O2I_ECPUBLICKEY = 152;
  2841. //* Reason codes. */
  2842. {$EXTERNALSYM EC_R_ASN1_ERROR}
  2843. EC_R_ASN1_ERROR = 115;
  2844. {$EXTERNALSYM EC_R_ASN1_UNKNOWN_FIELD}
  2845. EC_R_ASN1_UNKNOWN_FIELD = 116;
  2846. {$EXTERNALSYM EC_R_BUFFER_TOO_SMALL}
  2847. EC_R_BUFFER_TOO_SMALL = 100;
  2848. {$EXTERNALSYM EC_R_D2I_ECPKPARAMETERS_FAILURE}
  2849. EC_R_D2I_ECPKPARAMETERS_FAILURE = 117;
  2850. {$EXTERNALSYM EC_R_DISCRIMINANT_IS_ZERO}
  2851. EC_R_DISCRIMINANT_IS_ZERO = 118;
  2852. {$EXTERNALSYM EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}
  2853. EC_R_EC_GROUP_NEW_BY_NAME_FAILURE = 119;
  2854. {$EXTERNALSYM EC_R_FIELD_TOO_LARGE}
  2855. EC_R_FIELD_TOO_LARGE = 138;
  2856. {$EXTERNALSYM EC_R_GROUP2PKPARAMETERS_FAILURE}
  2857. EC_R_GROUP2PKPARAMETERS_FAILURE = 120;
  2858. {$EXTERNALSYM EC_R_I2D_ECPKPARAMETERS_FAILURE}
  2859. EC_R_I2D_ECPKPARAMETERS_FAILURE = 121;
  2860. {$EXTERNALSYM EC_R_INCOMPATIBLE_OBJECTS}
  2861. EC_R_INCOMPATIBLE_OBJECTS = 101;
  2862. {$EXTERNALSYM EC_R_INVALID_ARGUMENT}
  2863. EC_R_INVALID_ARGUMENT = 112;
  2864. {$EXTERNALSYM EC_R_INVALID_COMPRESSED_POINT}
  2865. EC_R_INVALID_COMPRESSED_POINT = 110;
  2866. {$EXTERNALSYM EC_R_INVALID_COMPRESSION_BIT}
  2867. EC_R_INVALID_COMPRESSION_BIT = 109;
  2868. {$EXTERNALSYM EC_R_INVALID_ENCODING}
  2869. EC_R_INVALID_ENCODING = 102;
  2870. {$EXTERNALSYM EC_R_INVALID_FIELD}
  2871. EC_R_INVALID_FIELD = 103;
  2872. {$EXTERNALSYM EC_R_INVALID_FORM}
  2873. EC_R_INVALID_FORM = 104;
  2874. {$EXTERNALSYM EC_R_INVALID_GROUP_ORDER}
  2875. EC_R_INVALID_GROUP_ORDER = 122;
  2876. {$EXTERNALSYM EC_R_INVALID_PENTANOMIAL_BASIS}
  2877. EC_R_INVALID_PENTANOMIAL_BASIS = 132;
  2878. {$EXTERNALSYM EC_R_INVALID_PRIVATE_KEY}
  2879. EC_R_INVALID_PRIVATE_KEY = 123;
  2880. {$EXTERNALSYM EC_R_INVALID_TRINOMIAL_BASIS}
  2881. EC_R_INVALID_TRINOMIAL_BASIS = 137;
  2882. {$EXTERNALSYM EC_R_MISSING_PARAMETERS}
  2883. EC_R_MISSING_PARAMETERS = 124;
  2884. {$EXTERNALSYM EC_R_MISSING_PRIVATE_KEY}
  2885. EC_R_MISSING_PRIVATE_KEY = 125;
  2886. {$EXTERNALSYM EC_R_NOT_A_NIST_PRIME}
  2887. EC_R_NOT_A_NIST_PRIME = 135;
  2888. {$EXTERNALSYM EC_R_NOT_A_SUPPORTED_NIST_PRIME}
  2889. EC_R_NOT_A_SUPPORTED_NIST_PRIME = 136;
  2890. {$EXTERNALSYM EC_R_NOT_IMPLEMENTED}
  2891. EC_R_NOT_IMPLEMENTED = 126;
  2892. {$EXTERNALSYM EC_R_NOT_INITIALIZED}
  2893. EC_R_NOT_INITIALIZED = 111;
  2894. {$EXTERNALSYM EC_R_NO_FIELD_MOD}
  2895. EC_R_NO_FIELD_MOD = 133;
  2896. {$EXTERNALSYM EC_R_PASSED_NULL_PARAMETER}
  2897. EC_R_PASSED_NULL_PARAMETER = 134;
  2898. {$EXTERNALSYM EC_R_PKPARAMETERS2GROUP_FAILURE}
  2899. EC_R_PKPARAMETERS2GROUP_FAILURE = 127;
  2900. {$EXTERNALSYM EC_R_POINT_AT_INFINITY}
  2901. EC_R_POINT_AT_INFINITY = 106;
  2902. {$EXTERNALSYM EC_R_POINT_IS_NOT_ON_CURVE}
  2903. EC_R_POINT_IS_NOT_ON_CURVE = 107;
  2904. {$EXTERNALSYM EC_R_SLOT_FULL}
  2905. EC_R_SLOT_FULL = 108;
  2906. {$EXTERNALSYM EC_R_UNDEFINED_GENERATOR}
  2907. EC_R_UNDEFINED_GENERATOR = 113;
  2908. {$EXTERNALSYM EC_R_UNDEFINED_ORDER}
  2909. EC_R_UNDEFINED_ORDER = 128;
  2910. {$EXTERNALSYM EC_R_UNKNOWN_GROUP}
  2911. EC_R_UNKNOWN_GROUP = 129;
  2912. {$EXTERNALSYM EC_R_UNKNOWN_ORDER}
  2913. EC_R_UNKNOWN_ORDER = 114;
  2914. {$EXTERNALSYM EC_R_UNSUPPORTED_FIELD}
  2915. EC_R_UNSUPPORTED_FIELD = 131;
  2916. {$EXTERNALSYM EC_R_WRONG_ORDER}
  2917. EC_R_WRONG_ORDER = 130;
  2918. {$ENDIF}
  2919. {$IFNDEF OPENSSL_NO_ECDSA}
  2920. {$EXTERNALSYM ECDSA_F_ECDSA_DATA_NEW_METHOD}
  2921. ECDSA_F_ECDSA_DATA_NEW_METHOD = 100;
  2922. {$EXTERNALSYM ECDSA_F_ECDSA_DO_SIGN}
  2923. ECDSA_F_ECDSA_DO_SIGN = 101;
  2924. {$EXTERNALSYM ECDSA_F_ECDSA_DO_VERIFY}
  2925. ECDSA_F_ECDSA_DO_VERIFY = 102;
  2926. {$EXTERNALSYM ECDSA_F_ECDSA_SIGN_SETUP}
  2927. ECDSA_F_ECDSA_SIGN_SETUP = 103;
  2928. {$EXTERNALSYM ECDSA_R_BAD_SIGNATURE}
  2929. ECDSA_R_BAD_SIGNATURE = 100;
  2930. {$EXTERNALSYM ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}
  2931. ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE = 101;
  2932. {$EXTERNALSYM ECDSA_R_ERR_EC_LIB}
  2933. ECDSA_R_ERR_EC_LIB = 102;
  2934. {$EXTERNALSYM ECDSA_R_MISSING_PARAMETERS}
  2935. ECDSA_R_MISSING_PARAMETERS = 103;
  2936. {$EXTERNALSYM ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED}
  2937. ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED = 104;
  2938. {$EXTERNALSYM ECDSA_R_SIGNATURE_MALLOC_FAILED}
  2939. ECDSA_R_SIGNATURE_MALLOC_FAILED = 105;
  2940. {$ENDIF}
  2941. {$IFNDEF OPENSSL_NO_ECDH}
  2942. {$EXTERNALSYM ECDH_F_ECDH_COMPUTE_KEY}
  2943. ECDH_F_ECDH_COMPUTE_KEY = 100;
  2944. {$EXTERNALSYM ECDH_F_ECDH_DATA_NEW_METHOD}
  2945. ECDH_F_ECDH_DATA_NEW_METHOD = 101;
  2946. {$EXTERNALSYM ECDH_R_KDF_FAILED}
  2947. ECDH_R_KDF_FAILED = 102;
  2948. {$EXTERNALSYM ECDH_R_NO_PRIVATE_VALUE}
  2949. ECDH_R_NO_PRIVATE_VALUE = 100;
  2950. {$EXTERNALSYM ECDH_R_POINT_ARITHMETIC_FAILURE}
  2951. ECDH_R_POINT_ARITHMETIC_FAILURE = 101;
  2952. {$ENDIF}
  2953. {$IFNDEF OPENSSL_NO_BF}
  2954. {$EXTERNALSYM BF_BLOCK}
  2955. BF_BLOCK = 8;
  2956. {$EXTERNALSYM BF_DECRYPT}
  2957. BF_DECRYPT = 0;
  2958. {$EXTERNALSYM BF_ENCRYPT}
  2959. BF_ENCRYPT = 1;
  2960. {$EXTERNALSYM BF_ROUNDS}
  2961. BF_ROUNDS = 16;
  2962. {$ENDIF}
  2963. {$EXTERNALSYM EVP_MAX_MD_SIZE}
  2964. EVP_MAX_MD_SIZE = 64; //* longest known is SHA512 */ - value I found, 16+20;
  2965. {$EXTERNALSYM EVP_MAX_KEY_LENGTH}
  2966. EVP_MAX_KEY_LENGTH = 32; //value I found, 24;
  2967. {$EXTERNALSYM EVP_MAX_IV_LENGTH}
  2968. EVP_MAX_IV_LENGTH = 16; //value I found, 8;
  2969. {$EXTERNALSYM EVP_MAX_BLOCK_LENGTH}
  2970. EVP_MAX_BLOCK_LENGTH=32;
  2971. {$EXTERNALSYM NID_dhKeyAgreement}
  2972. NID_dhKeyAgreement = 28;
  2973. {$EXTERNALSYM NID_dsa}
  2974. NID_dsa = 116;
  2975. {$EXTERNALSYM NID_dsa_2}
  2976. NID_dsa_2 = 67;
  2977. {$EXTERNALSYM NID_dsaWithSHA}
  2978. NID_dsaWithSHA = 66;
  2979. {$EXTERNALSYM NID_dsaWithSHA1}
  2980. NID_dsaWithSHA1 = 113;
  2981. {$EXTERNALSYM NID_dsaWithSHA1_2}
  2982. NID_dsaWithSHA1_2 = 70;
  2983. {$EXTERNALSYM EVP_PKEY_MO_SIGN}
  2984. EVP_PKEY_MO_SIGN = $0001;
  2985. {$EXTERNALSYM EVP_PKEY_MO_VERIFY}
  2986. EVP_PKEY_MO_VERIFY = $0002;
  2987. {$EXTERNALSYM EVP_PKEY_MO_ENCRYPT}
  2988. EVP_PKEY_MO_ENCRYPT = $0004;
  2989. {$EXTERNALSYM EVP_PKEY_MO_DECRYPT}
  2990. EVP_PKEY_MO_DECRYPT = $0008;
  2991. {$EXTERNALSYM EVP_MD_FLAG_FIPS}
  2992. EVP_MD_FLAG_FIPS = $0400;
  2993. //* Note if suitable for use in FIPS mode */
  2994. {$EXTERNALSYM EVP_MD_FLAG_PKEY_DIGEST}
  2995. EVP_MD_FLAG_PKEY_DIGEST = $0002; //* digest is a "clone" digest used
  2996. // * which is a copy of an existing
  2997. // * one for a specific public key type.
  2998. // * EVP_dss1() etc */
  2999. //* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */
  3000. {$EXTERNALSYM EVP_MD_FLAG_PKEY_METHOD_SIGNATURE}
  3001. EVP_MD_FLAG_PKEY_METHOD_SIGNATURE = $0004; //note: conflicts with FIPS
  3002. //* DigestAlgorithmIdentifier flags... */
  3003. {$EXTERNALSYM EVP_MD_FLAG_DIGALGID_MASK}
  3004. EVP_MD_FLAG_DIGALGID_MASK = $0018;
  3005. //* NULL or absent parameter accepted. Use NULL */
  3006. {$EXTERNALSYM EVP_MD_FLAG_DIGALGID_NULL}
  3007. EVP_MD_FLAG_DIGALGID_NULL = $0000;
  3008. //* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */
  3009. {$EXTERNALSYM EVP_MD_FLAG_DIGALGID_ABSENT}
  3010. EVP_MD_FLAG_DIGALGID_ABSENT = $0008;
  3011. //* Custom handling via ctrl */
  3012. {$EXTERNALSYM EVP_MD_FLAG_DIGALGID_CUSTOM}
  3013. EVP_MD_FLAG_DIGALGID_CUSTOM = $0018;
  3014. {$EXTERNALSYM EVP_MD_FLAG_SVCTX}
  3015. EVP_MD_FLAG_SVCTX = $0800;
  3016. //* pass EVP_MD_SVCTX to sign/verify */
  3017. //* Digest ctrls */
  3018. {$EXTERNALSYM EVP_MD_CTRL_DIGALGID}
  3019. EVP_MD_CTRL_DIGALGID = $1;
  3020. {$EXTERNALSYM EVP_MD_CTRL_MICALG}
  3021. EVP_MD_CTRL_MICALG = $2;
  3022. //* Minimum Algorithm specific ctrl value */
  3023. {$EXTERNALSYM EVP_MD_CTRL_ALG_CTRL}
  3024. EVP_MD_CTRL_ALG_CTRL = $1000;
  3025. {$EXTERNALSYM NID_undef}
  3026. NID_undef = 0;
  3027. {$EXTERNALSYM NID_rsaEncryption}
  3028. NID_rsaEncryption = 6;
  3029. {$EXTERNALSYM NID_rsa}
  3030. NID_rsa = 19;
  3031. {$EXTERNALSYM NID_X9_62_id_ecPublicKey}
  3032. NID_X9_62_id_ecPublicKey = 408;
  3033. {$EXTERNALSYM EVP_PKEY_NONE}
  3034. EVP_PKEY_NONE = NID_undef;
  3035. {$EXTERNALSYM EVP_PKEY_RSA}
  3036. EVP_PKEY_RSA = NID_rsaEncryption;
  3037. {$EXTERNALSYM EVP_PKEY_RSA2}
  3038. EVP_PKEY_RSA2 = NID_rsa;
  3039. {$EXTERNALSYM EVP_PKEY_DSA}
  3040. EVP_PKEY_DSA = NID_dsa;
  3041. {$EXTERNALSYM EVP_PKEY_DSA1}
  3042. EVP_PKEY_DSA1 = NID_dsa_2;
  3043. {$EXTERNALSYM EVP_PKEY_DSA2}
  3044. EVP_PKEY_DSA2 = NID_dsaWithSHA;
  3045. {$EXTERNALSYM EVP_PKEY_DSA3}
  3046. EVP_PKEY_DSA3 = NID_dsaWithSHA1;
  3047. {$EXTERNALSYM EVP_PKEY_DSA4}
  3048. EVP_PKEY_DSA4 = NID_dsaWithSHA1_2;
  3049. {$EXTERNALSYM EVP_PKEY_DH}
  3050. EVP_PKEY_DH = NID_dhKeyAgreement;
  3051. {$EXTERNALSYM EVP_PKEY_EC}
  3052. EVP_PKEY_EC = NID_X9_62_id_ecPublicKey;
  3053. {$EXTERNALSYM EVP_PKT_SIGN}
  3054. EVP_PKT_SIGN = $0010;
  3055. {$EXTERNALSYM EVP_PKT_ENC}
  3056. EVP_PKT_ENC = $0020;
  3057. {$EXTERNALSYM EVP_PKT_EXCH}
  3058. EVP_PKT_EXCH = $0040;
  3059. {$EXTERNALSYM EVP_PKT_EXP}
  3060. EVP_PKT_EXP = $1000;
  3061. {$EXTERNALSYM EVP_PKS_RSA}
  3062. EVP_PKS_RSA = $0100;
  3063. {$EXTERNALSYM EVP_PKS_DSA}
  3064. EVP_PKS_DSA = $0200;
  3065. {$EXTERNALSYM EVP_PKS_EC}
  3066. EVP_PKS_EC = $0400;
  3067. {$EXTERNALSYM EVP_PK_RSA}
  3068. EVP_PK_RSA = $0001;
  3069. {$EXTERNALSYM EVP_PK_DSA}
  3070. EVP_PK_DSA = $0002;
  3071. {$EXTERNALSYM EVP_PK_DH}
  3072. EVP_PK_DH = $0004;
  3073. {$EXTERNALSYM EVP_PK_EC}
  3074. EVP_PK_EC = $0008;
  3075. {$EXTERNALSYM EVP_BLOWFISH_KEY_SIZE}
  3076. EVP_BLOWFISH_KEY_SIZE = 16;
  3077. {$EXTERNALSYM EVP_CAST5_KEY_SIZE}
  3078. EVP_CAST5_KEY_SIZE = 16;
  3079. {$EXTERNALSYM EVP_RC2_KEY_SIZE}
  3080. EVP_RC2_KEY_SIZE = 16;
  3081. {$EXTERNALSYM EVP_RC4_KEY_SIZE}
  3082. EVP_RC4_KEY_SIZE = 16;
  3083. {$EXTERNALSYM EVP_RC5_32_12_16_KEY_SIZE}
  3084. EVP_RC5_32_12_16_KEY_SIZE = 16;
  3085. {$EXTERNALSYM EVP_MD_CTX_FLAG_ONESHOT}
  3086. EVP_MD_CTX_FLAG_ONESHOT = $0001;
  3087. //* digest update will be called
  3088. //* once only */
  3089. {$EXTERNALSYM EVP_MD_CTX_FLAG_CLEANED}
  3090. EVP_MD_CTX_FLAG_CLEANED = $0002;
  3091. //* context has already been
  3092. //* cleaned */
  3093. {$EXTERNALSYM EVP_MD_CTX_FLAG_REUSE}
  3094. EVP_MD_CTX_FLAG_REUSE = $0004;
  3095. //* Don't free up ctx->md_data
  3096. //* in EVP_MD_CTX_cleanup */
  3097. //OpenSSL 1.0.0.
  3098. //* FIPS and pad options are ignored in 1.0.0, definitions are here
  3099. // * so we don't accidentally reuse the values for other purposes.
  3100. // */
  3101. {$EXTERNALSYM EVP_MD_CTX_FLAG_NON_FIPS_ALLOW}
  3102. EVP_MD_CTX_FLAG_NON_FIPS_ALLOW = $0008; //* Allow use of non FIPS digest
  3103. // * in FIPS mode */
  3104. //* The following PAD options are also currently ignored in 1.0.0, digest
  3105. // * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*()
  3106. // * instead.
  3107. // */
  3108. {$EXTERNALSYM EVP_MD_CTX_FLAG_PAD_MASK}
  3109. EVP_MD_CTX_FLAG_PAD_MASK = $F0; //* RSA mode to use */
  3110. {$EXTERNALSYM EVP_MD_CTX_FLAG_PAD_PKCS1}
  3111. EVP_MD_CTX_FLAG_PAD_PKCS1 = $00; //* PKCS#1 v1.5 mode */
  3112. {$EXTERNALSYM EVP_MD_CTX_FLAG_PAD_X931}
  3113. EVP_MD_CTX_FLAG_PAD_X931 = $10; //* X9.31 mode */
  3114. {$EXTERNALSYM EVP_MD_CTX_FLAG_PAD_PSS}
  3115. EVP_MD_CTX_FLAG_PAD_PSS = $20; //* PSS mode */
  3116. //#define M_EVP_MD_CTX_FLAG_PSS_SALT(ctx) \
  3117. // ((ctx->flags>>16) &0xFFFF) /* seed length */
  3118. {$EXTERNALSYM EVP_MD_CTX_FLAG_PSS_MDLEN}
  3119. EVP_MD_CTX_FLAG_PSS_MDLEN = $FFFF; //* salt len same as digest */
  3120. {$EXTERNALSYM EVP_MD_CTX_FLAG_PSS_MREC}
  3121. EVP_MD_CTX_FLAG_PSS_MREC = $FFFE; //* salt max or auto recovered */
  3122. {$EXTERNALSYM EVP_MD_CTX_FLAG_NO_INIT}
  3123. EVP_MD_CTX_FLAG_NO_INIT = $0100; //* Don't initialize md_data */
  3124. //* Modes for ciphers */
  3125. {$EXTERNALSYM EVP_CIPH_STREAM_CIPHER}
  3126. EVP_CIPH_STREAM_CIPHER = $0;
  3127. {$EXTERNALSYM EVP_CIPH_ECB_MODE}
  3128. EVP_CIPH_ECB_MODE = $1;
  3129. {$EXTERNALSYM EVP_CIPH_CBC_MODE}
  3130. EVP_CIPH_CBC_MODE = $2;
  3131. {$EXTERNALSYM EVP_CIPH_CFB_MODE}
  3132. EVP_CIPH_CFB_MODE = $3;
  3133. {$EXTERNALSYM EVP_CIPH_OFB_MODE}
  3134. EVP_CIPH_OFB_MODE = $4;
  3135. {$EXTERNALSYM EVP_CIPH_CTR_MODE}
  3136. EVP_CIPH_CTR_MODE = $5;
  3137. {$EXTERNALSYM EVP_CIPH_GCM_MODE}
  3138. EVP_CIPH_GCM_MODE = $6;
  3139. {$EXTERNALSYM EVP_CIPH_CCM_MODE}
  3140. EVP_CIPH_CCM_MODE = $7;
  3141. {$EXTERNALSYM EVP_CIPH_XTS_MODE}
  3142. EVP_CIPH_XTS_MODE = $10001;
  3143. {$EXTERNALSYM EVP_CIPH_MODE}
  3144. EVP_CIPH_MODE = $F0007;
  3145. //* Set if variable length cipher */
  3146. {$EXTERNALSYM EVP_CIPH_VARIABLE_LENGTH}
  3147. EVP_CIPH_VARIABLE_LENGTH = $8;
  3148. //* Set if the iv handling should be done by the cipher itself */
  3149. {$EXTERNALSYM EVP_CIPH_CUSTOM_IV}
  3150. EVP_CIPH_CUSTOM_IV = $10;
  3151. //* Set if the cipher's init() function should be called if key is NULL */
  3152. {$EXTERNALSYM EVP_CIPH_ALWAYS_CALL_INIT}
  3153. EVP_CIPH_ALWAYS_CALL_INIT = $20;
  3154. //* Call ctrl() to init cipher parameters */
  3155. {$EXTERNALSYM EVP_CIPH_CTRL_INIT}
  3156. EVP_CIPH_CTRL_INIT = $40;
  3157. //* Don't use standard key length function */
  3158. {$EXTERNALSYM EVP_CIPH_CUSTOM_KEY_LENGTH}
  3159. EVP_CIPH_CUSTOM_KEY_LENGTH = $80;
  3160. //* Don't use standard block padding */
  3161. {$EXTERNALSYM EVP_CIPH_NO_PADDING}
  3162. EVP_CIPH_NO_PADDING = $100;
  3163. //* cipher handles random key generation */
  3164. {$EXTERNALSYM EVP_CIPH_RAND_KEY}
  3165. EVP_CIPH_RAND_KEY = $200;
  3166. //* cipher has its own additional copying logic */
  3167. {$EXTERNALSYM EVP_CIPH_CUSTOM_COPY}
  3168. EVP_CIPH_CUSTOM_COPY = $400;
  3169. //* Allow use default ASN1 get/set iv */
  3170. {$EXTERNALSYM EVP_CIPH_FLAG_DEFAULT_ASN1}
  3171. EVP_CIPH_FLAG_DEFAULT_ASN1 = $1000;
  3172. //* Buffer length in bits not bytes: CFB1 mode only */
  3173. {$EXTERNALSYM EVP_CIPH_FLAG_LENGTH_BITS}
  3174. EVP_CIPH_FLAG_LENGTH_BITS = $2000;
  3175. //* Note if suitable for use in FIPS mode */
  3176. {$EXTERNALSYM EVP_CIPH_FLAG_FIPS}
  3177. EVP_CIPH_FLAG_FIPS = $4000;
  3178. //* Allow non FIPS cipher in FIPS mode */
  3179. {$EXTERNALSYM EVP_CIPH_FLAG_NON_FIPS_ALLOW}
  3180. EVP_CIPH_FLAG_NON_FIPS_ALLOW = $8000;
  3181. ///* Cipher handles any and all padding logic as well
  3182. // * as finalisation.
  3183. // */
  3184. {$EXTERNALSYM EVP_CIPH_FLAG_CUSTOM_CIPHER}
  3185. EVP_CIPH_FLAG_CUSTOM_CIPHER = $100000;
  3186. {$EXTERNALSYM EVP_CIPH_FLAG_AEAD_CIPHER}
  3187. EVP_CIPH_FLAG_AEAD_CIPHER = $200000;
  3188. {$EXTERNALSYM EVP_CTRL_INIT}
  3189. EVP_CTRL_INIT = $0;
  3190. {$EXTERNALSYM EVP_CTRL_SET_KEY_LENGTH}
  3191. EVP_CTRL_SET_KEY_LENGTH = $1;
  3192. {$EXTERNALSYM EVP_CTRL_GET_RC2_KEY_BITS}
  3193. EVP_CTRL_GET_RC2_KEY_BITS = $2;
  3194. {$EXTERNALSYM EVP_CTRL_SET_RC2_KEY_BITS}
  3195. EVP_CTRL_SET_RC2_KEY_BITS = $3;
  3196. {$EXTERNALSYM EVP_CTRL_GET_RC5_ROUNDS}
  3197. EVP_CTRL_GET_RC5_ROUNDS = $4;
  3198. {$EXTERNALSYM EVP_CTRL_SET_RC5_ROUNDS}
  3199. EVP_CTRL_SET_RC5_ROUNDS = $5;
  3200. {$EXTERNALSYM EVP_CTRL_RAND_KEY}
  3201. EVP_CTRL_RAND_KEY = $6;
  3202. {$EXTERNALSYM EVP_CTRL_PBE_PRF_NID}
  3203. EVP_CTRL_PBE_PRF_NID = $7;
  3204. {$EXTERNALSYM EVP_CTRL_COPY}
  3205. EVP_CTRL_COPY = $8;
  3206. {$EXTERNALSYM EVP_CTRL_GCM_SET_IVLEN}
  3207. EVP_CTRL_GCM_SET_IVLEN = $9;
  3208. {$EXTERNALSYM EVP_CTRL_GCM_GET_TAG}
  3209. EVP_CTRL_GCM_GET_TAG = $10;
  3210. {$EXTERNALSYM EVP_CTRL_GCM_SET_TAG}
  3211. EVP_CTRL_GCM_SET_TAG = $11;
  3212. {$EXTERNALSYM EVP_CTRL_GCM_SET_IV_FIXED}
  3213. EVP_CTRL_GCM_SET_IV_FIXED = $12;
  3214. {$EXTERNALSYM EVP_CTRL_GCM_IV_GEN}
  3215. EVP_CTRL_GCM_IV_GEN = $13;
  3216. {$EXTERNALSYM EVP_CTRL_CCM_SET_IVLEN}
  3217. EVP_CTRL_CCM_SET_IVLEN = EVP_CTRL_GCM_SET_IVLEN;
  3218. {$EXTERNALSYM EVP_CTRL_CCM_GET_TAG}
  3219. EVP_CTRL_CCM_GET_TAG = EVP_CTRL_GCM_GET_TAG;
  3220. {$EXTERNALSYM EVP_CTRL_CCM_SET_TAG}
  3221. EVP_CTRL_CCM_SET_TAG = EVP_CTRL_GCM_SET_TAG;
  3222. {$EXTERNALSYM EVP_CTRL_CCM_SET_L}
  3223. EVP_CTRL_CCM_SET_L = $14;
  3224. {$EXTERNALSYM EVP_CTRL_CCM_SET_MSGLEN}
  3225. EVP_CTRL_CCM_SET_MSGLEN = $15;
  3226. ///* AEAD cipher deduces payload length and returns number of bytes
  3227. // * required to store MAC and eventual padding. Subsequent call to
  3228. // * EVP_Cipher even appends/verifies MAC.
  3229. // */
  3230. {$EXTERNALSYM EVP_CTRL_AEAD_TLS1_AAD}
  3231. EVP_CTRL_AEAD_TLS1_AAD = $16;
  3232. //* Used by composite AEAD ciphers, no-op in GCM, CCM... */
  3233. {$EXTERNALSYM EVP_CTRL_AEAD_SET_MAC_KEY}
  3234. EVP_CTRL_AEAD_SET_MAC_KEY = $17;
  3235. //* Set the GCM invocation field, decrypt only */
  3236. {$EXTERNALSYM EVP_CTRL_GCM_SET_IV_INV}
  3237. EVP_CTRL_GCM_SET_IV_INV = $18;
  3238. //* PBE type */
  3239. //* GCM TLS constants */
  3240. //* Length of fixed part of IV derived from PRF */
  3241. {$EXTERNALSYM EVP_GCM_TLS_FIXED_IV_LEN}
  3242. EVP_GCM_TLS_FIXED_IV_LEN = 4;
  3243. //* Length of explicit part of IV part of TLS records */
  3244. {$EXTERNALSYM EVP_GCM_TLS_EXPLICIT_IV_LEN}
  3245. EVP_GCM_TLS_EXPLICIT_IV_LEN = 8;
  3246. //* Length of tag for TLS */
  3247. {$EXTERNALSYM EVP_GCM_TLS_TAG_LEN}
  3248. EVP_GCM_TLS_TAG_LEN = 16;
  3249. //* Can appear as the outermost AlgorithmIdentifier */
  3250. {$EXTERNALSYM EVP_PBE_TYPE_OUTER}
  3251. EVP_PBE_TYPE_OUTER = $0;
  3252. //* Is an PRF type OID */
  3253. {$EXTERNALSYM EVP_PBE_TYPE_PRF}
  3254. EVP_PBE_TYPE_PRF = $1;
  3255. {$EXTERNALSYM ASN1_PKEY_ALIAS}
  3256. ASN1_PKEY_ALIAS = $1;
  3257. {$EXTERNALSYM ASN1_PKEY_DYNAMIC}
  3258. ASN1_PKEY_DYNAMIC = $2;
  3259. {$EXTERNALSYM ASN1_PKEY_SIGPARAM_NULL}
  3260. ASN1_PKEY_SIGPARAM_NULL = $4;
  3261. {$EXTERNALSYM ASN1_PKEY_CTRL_PKCS7_SIGN}
  3262. ASN1_PKEY_CTRL_PKCS7_SIGN = $1;
  3263. {$EXTERNALSYM ASN1_PKEY_CTRL_PKCS7_ENCRYPT}
  3264. ASN1_PKEY_CTRL_PKCS7_ENCRYPT = $2;
  3265. {$EXTERNALSYM ASN1_PKEY_CTRL_DEFAULT_MD_NID}
  3266. ASN1_PKEY_CTRL_DEFAULT_MD_NID = $3;
  3267. {$EXTERNALSYM ASN1_PKEY_CTRL_CMS_SIGN}
  3268. ASN1_PKEY_CTRL_CMS_SIGN = $5;
  3269. {$EXTERNALSYM ASN1_PKEY_CTRL_CMS_ENVELOPE}
  3270. ASN1_PKEY_CTRL_CMS_ENVELOPE = $7;
  3271. {$EXTERNALSYM EVP_PKEY_OP_UNDEFINED}
  3272. EVP_PKEY_OP_UNDEFINED = 0;
  3273. {$EXTERNALSYM EVP_PKEY_OP_PARAMGEN}
  3274. EVP_PKEY_OP_PARAMGEN =(1 shl 1);
  3275. {$EXTERNALSYM EVP_PKEY_OP_KEYGEN}
  3276. EVP_PKEY_OP_KEYGEN = (1 shl 2);
  3277. {$EXTERNALSYM EVP_PKEY_OP_SIGN}
  3278. EVP_PKEY_OP_SIGN = (1 shl 3);
  3279. {$EXTERNALSYM EVP_PKEY_OP_VERIFY}
  3280. EVP_PKEY_OP_VERIFY = (1 shl 4);
  3281. {$EXTERNALSYM EVP_PKEY_OP_VERIFYRECOVER}
  3282. EVP_PKEY_OP_VERIFYRECOVER = (1 shl 5);
  3283. {$EXTERNALSYM EVP_PKEY_OP_SIGNCTX}
  3284. EVP_PKEY_OP_SIGNCTX = (1 shl 6);
  3285. {$EXTERNALSYM EVP_PKEY_OP_VERIFYCTX}
  3286. EVP_PKEY_OP_VERIFYCTX = (1 shl 7);
  3287. {$EXTERNALSYM EVP_PKEY_OP_ENCRYPT}
  3288. EVP_PKEY_OP_ENCRYPT = (1 shl 8);
  3289. {$EXTERNALSYM EVP_PKEY_OP_DECRYPT}
  3290. EVP_PKEY_OP_DECRYPT = (1 shl 9);
  3291. {$EXTERNALSYM EVP_PKEY_OP_DERIVE}
  3292. EVP_PKEY_OP_DERIVE = (1 shl 10);
  3293. {$EXTERNALSYM EVP_PKEY_OP_TYPE_SIG}
  3294. EVP_PKEY_OP_TYPE_SIG =
  3295. {$EXTERNALSYM EVP_PKEY_OP_TYPE_CRYPT}
  3296. (EVP_PKEY_OP_SIGN or EVP_PKEY_OP_VERIFY or EVP_PKEY_OP_VERIFYRECOVER
  3297. {$EXTERNALSYM EVP_PKEY_OP_TYPE_CRYPT}
  3298. or EVP_PKEY_OP_SIGNCTX or EVP_PKEY_OP_VERIFYCTX);
  3299. {$EXTERNALSYM EVP_PKEY_OP_TYPE_CRYPT}
  3300. EVP_PKEY_OP_TYPE_CRYPT = (EVP_PKEY_OP_ENCRYPT or EVP_PKEY_OP_DECRYPT);
  3301. // EVP_PKEY_OP_TYPE_NOGEN =
  3302. // (EVP_PKEY_OP_SIG or EVP_PKEY_OP_CRYPT or EVP_PKEY_OP_DERIVE);
  3303. // guessing from above. THere may be a typo in the header.
  3304. {$EXTERNALSYM EVP_PKEY_OP_TYPE_NOGEN}
  3305. EVP_PKEY_OP_TYPE_NOGEN =
  3306. {$EXTERNALSYM EVP_PKEY_OP_TYPE_GEN}
  3307. (EVP_PKEY_OP_TYPE_SIG or EVP_PKEY_OP_TYPE_CRYPT or EVP_PKEY_OP_DERIVE);
  3308. {$EXTERNALSYM EVP_PKEY_OP_TYPE_GEN}
  3309. EVP_PKEY_OP_TYPE_GEN =
  3310. (EVP_PKEY_OP_PARAMGEN or EVP_PKEY_OP_KEYGEN);
  3311. {$EXTERNALSYM EVP_PKEY_CTRL_MD}
  3312. EVP_PKEY_CTRL_MD = 1;
  3313. {$EXTERNALSYM EVP_PKEY_CTRL_PEER_KEY}
  3314. EVP_PKEY_CTRL_PEER_KEY = 2;
  3315. {$EXTERNALSYM EVP_PKEY_CTRL_PKCS7_ENCRYPT}
  3316. EVP_PKEY_CTRL_PKCS7_ENCRYPT = 3;
  3317. {$EXTERNALSYM EVP_PKEY_CTRL_PKCS7_DECRYPT}
  3318. EVP_PKEY_CTRL_PKCS7_DECRYPT = 4;
  3319. {$EXTERNALSYM EVP_PKEY_CTRL_PKCS7_SIGN}
  3320. EVP_PKEY_CTRL_PKCS7_SIGN = 5;
  3321. {$EXTERNALSYM EVP_PKEY_CTRL_SET_MAC_KEY}
  3322. EVP_PKEY_CTRL_SET_MAC_KEY = 6;
  3323. {$EXTERNALSYM EVP_PKEY_CTRL_DIGESTINIT}
  3324. EVP_PKEY_CTRL_DIGESTINIT = 7;
  3325. //* Used by GOST key encryption in TLS */
  3326. {$EXTERNALSYM EVP_PKEY_CTRL_SET_IV}
  3327. EVP_PKEY_CTRL_SET_IV = 8;
  3328. {$EXTERNALSYM EVP_PKEY_CTRL_CMS_ENCRYPT}
  3329. EVP_PKEY_CTRL_CMS_ENCRYPT = 9;
  3330. {$EXTERNALSYM EVP_PKEY_CTRL_CMS_DECRYPT}
  3331. EVP_PKEY_CTRL_CMS_DECRYPT = 10;
  3332. {$EXTERNALSYM EVP_PKEY_CTRL_CMS_SIGN}
  3333. EVP_PKEY_CTRL_CMS_SIGN = 11;
  3334. {$EXTERNALSYM EVP_PKEY_CTRL_CIPHER}
  3335. EVP_PKEY_CTRL_CIPHER = 12;
  3336. {$EXTERNALSYM EVP_PKEY_ALG_CTRL}
  3337. EVP_PKEY_ALG_CTRL = $1000;
  3338. {$EXTERNALSYM EVP_PKEY_FLAG_AUTOARGLEN}
  3339. EVP_PKEY_FLAG_AUTOARGLEN = 2;
  3340. ///* Method handles all operations: don't assume any digest related
  3341. // * defaults.
  3342. // */
  3343. {$EXTERNALSYM EVP_PKEY_FLAG_SIGCTX_CUSTOM}
  3344. EVP_PKEY_FLAG_SIGCTX_CUSTOM = 4;
  3345. {$EXTERNALSYM EVP_F_AESNI_INIT_KEY}
  3346. EVP_F_AESNI_INIT_KEY = 165;
  3347. {$EXTERNALSYM EVP_F_AESNI_XTS_CIPHER}
  3348. EVP_F_AESNI_XTS_CIPHER = 176;
  3349. {$EXTERNALSYM EVP_F_AES_INIT_KEY}
  3350. EVP_F_AES_INIT_KEY = 133;
  3351. {$EXTERNALSYM EVP_F_ALG_MODULE_INIT}
  3352. EVP_F_ALG_MODULE_INIT = 138;
  3353. {$EXTERNALSYM EVP_F_AES_XTS}
  3354. EVP_F_AES_XTS = 172;
  3355. {$EXTERNALSYM EVP_F_AES_XTS_CIPHER}
  3356. EVP_F_AES_XTS_CIPHER = 175;
  3357. {$EXTERNALSYM EVP_F_CAMELLIA_INIT_KEY}
  3358. EVP_F_CAMELLIA_INIT_KEY = 159;
  3359. {$EXTERNALSYM EVP_F_CMAC_INIT}
  3360. EVP_F_CMAC_INIT = 173;
  3361. {$EXTERNALSYM EVP_F_D2I_PKEY}
  3362. EVP_F_D2I_PKEY = 100;
  3363. {$EXTERNALSYM EVP_F_DO_SIGVER_INIT}
  3364. EVP_F_DO_SIGVER_INIT = 161;
  3365. {$EXTERNALSYM EVP_F_DO_EVP_ENC_ENGINE}
  3366. EVP_F_DO_EVP_ENC_ENGINE = 140;
  3367. {$EXTERNALSYM EVP_F_DSAPKEY2PKCS8}
  3368. EVP_F_DSAPKEY2PKCS8 = 134;
  3369. {$EXTERNALSYM EVP_F_DSA_PKEY2PKCS8}
  3370. EVP_F_DSA_PKEY2PKCS8 = 135;
  3371. {$EXTERNALSYM EVP_F_ECDSA_PKEY2PKCS8}
  3372. EVP_F_ECDSA_PKEY2PKCS8 = 129;
  3373. {$EXTERNALSYM EVP_F_ECKEY_PKEY2PKCS8}
  3374. EVP_F_ECKEY_PKEY2PKCS8 = 132;
  3375. {$EXTERNALSYM EVP_F_EVP_CIPHERINIT_EX}
  3376. EVP_F_EVP_CIPHERINIT_EX = 123;
  3377. {$EXTERNALSYM EVP_F_EVP_CIPHER_CTX_COPY}
  3378. EVP_F_EVP_CIPHER_CTX_COPY = 163;
  3379. {$EXTERNALSYM EVP_F_EVP_CIPHER_CTX_CTRL}
  3380. EVP_F_EVP_CIPHER_CTX_CTRL = 124;
  3381. {$EXTERNALSYM EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH}
  3382. EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH = 122;
  3383. {$EXTERNALSYM EVP_F_EVP_DECRYPTFINAL_EX}
  3384. EVP_F_EVP_DECRYPTFINAL_EX = 101;
  3385. //was EVP_F_EVP_DECRYPTFINAL = 101;
  3386. {$EXTERNALSYM EVP_F_EVP_DIGESTINIT_EX}
  3387. EVP_F_EVP_DIGESTINIT_EX = 128;
  3388. {$EXTERNALSYM EVP_F_EVP_ENCRYPTFINAL_EX}
  3389. EVP_F_EVP_ENCRYPTFINAL_EX = 127;
  3390. {$EXTERNALSYM EVP_F_EVP_MD_CTX_COPY_EX}
  3391. EVP_F_EVP_MD_CTX_COPY_EX = 110;
  3392. {$EXTERNALSYM EVP_F_EVP_MD_SIZE}
  3393. EVP_F_EVP_MD_SIZE = 162;
  3394. //was EVP_F_EVP_MD_CTX_COPY = 110;
  3395. {$EXTERNALSYM EVP_F_EVP_OPENINIT}
  3396. EVP_F_EVP_OPENINIT = 102;
  3397. {$EXTERNALSYM EVP_F_EVP_PBE_ALG_ADD}
  3398. EVP_F_EVP_PBE_ALG_ADD = 115;
  3399. {$EXTERNALSYM EVP_F_EVP_PBE_ALG_ADD_TYPE}
  3400. EVP_F_EVP_PBE_ALG_ADD_TYPE = 160;
  3401. {$EXTERNALSYM EVP_F_EVP_PBE_CIPHERINIT}
  3402. EVP_F_EVP_PBE_CIPHERINIT = 116;
  3403. {$EXTERNALSYM EVP_F_EVP_PKCS82PKEY}
  3404. EVP_F_EVP_PKCS82PKEY = 111;
  3405. {$EXTERNALSYM EVP_F_EVP_PKEY2PKCS8_BROKEN}
  3406. EVP_F_EVP_PKEY2PKCS8_BROKEN = 113;
  3407. //was EVP_F_EVP_PKEY2PKCS8 = 113;
  3408. {$EXTERNALSYM EVP_F_EVP_PKCS82PKEY_BROKEN}
  3409. EVP_F_EVP_PKCS82PKEY_BROKEN = 136;
  3410. {$EXTERNALSYM EVP_F_EVP_PKEY_COPY_PARAMETERS}
  3411. EVP_F_EVP_PKEY_COPY_PARAMETERS = 103;
  3412. {$EXTERNALSYM EVP_F_EVP_PKEY_CTX_CTRL}
  3413. EVP_F_EVP_PKEY_CTX_CTRL = 137;
  3414. {$EXTERNALSYM EVP_F_EVP_PKEY_CTX_CTRL_STR}
  3415. EVP_F_EVP_PKEY_CTX_CTRL_STR = 150;
  3416. {$EXTERNALSYM EVP_F_EVP_PKEY_CTX_DUP}
  3417. EVP_F_EVP_PKEY_CTX_DUP = 156;
  3418. {$EXTERNALSYM EVP_F_EVP_PKEY_DECRYPT}
  3419. EVP_F_EVP_PKEY_DECRYPT = 104;
  3420. {$EXTERNALSYM EVP_F_EVP_PKEY_DECRYPT_INIT}
  3421. EVP_F_EVP_PKEY_DECRYPT_INIT = 138;
  3422. {$EXTERNALSYM EVP_F_EVP_PKEY_DECRYPT_OLD}
  3423. EVP_F_EVP_PKEY_DECRYPT_OLD = 151;
  3424. {$EXTERNALSYM EVP_F_EVP_PKEY_DERIVE}
  3425. EVP_F_EVP_PKEY_DERIVE = 153;
  3426. {$EXTERNALSYM EVP_F_EVP_PKEY_DERIVE_INIT}
  3427. EVP_F_EVP_PKEY_DERIVE_INIT = 154;
  3428. {$EXTERNALSYM EVP_F_EVP_PKEY_DERIVE_SET_PEER}
  3429. EVP_F_EVP_PKEY_DERIVE_SET_PEER = 155;
  3430. {$EXTERNALSYM EVP_F_EVP_PKEY_ENCRYPT}
  3431. EVP_F_EVP_PKEY_ENCRYPT = 105;
  3432. {$EXTERNALSYM EVP_F_EVP_PKEY_ENCRYPT_INIT}
  3433. EVP_F_EVP_PKEY_ENCRYPT_INIT = 139;
  3434. {$EXTERNALSYM EVP_F_EVP_PKEY_ENCRYPT_OLD}
  3435. EVP_F_EVP_PKEY_ENCRYPT_OLD = 152;
  3436. {$EXTERNALSYM EVP_F_EVP_PKEY_GET1_DH}
  3437. EVP_F_EVP_PKEY_GET1_DH = 119;
  3438. {$EXTERNALSYM EVP_F_EVP_PKEY_GET1_DSA}
  3439. EVP_F_EVP_PKEY_GET1_DSA = 120;
  3440. {$EXTERNALSYM EVP_F_EVP_PKEY_GET1_ECDSA}
  3441. EVP_F_EVP_PKEY_GET1_ECDSA = 130;
  3442. {$EXTERNALSYM EVP_F_EVP_PKEY_GET1_EC_KEY}
  3443. EVP_F_EVP_PKEY_GET1_EC_KEY = 131;
  3444. {$EXTERNALSYM EVP_F_EVP_PKEY_GET1_RSA}
  3445. EVP_F_EVP_PKEY_GET1_RSA = 121;
  3446. {$EXTERNALSYM EVP_F_EVP_PKEY_KEYGEN}
  3447. EVP_F_EVP_PKEY_KEYGEN = 146;
  3448. {$EXTERNALSYM EVP_F_EVP_PKEY_KEYGEN_INIT}
  3449. EVP_F_EVP_PKEY_KEYGEN_INIT = 147;
  3450. {$EXTERNALSYM EVP_F_EVP_PKEY_NEW}
  3451. EVP_F_EVP_PKEY_NEW = 106;
  3452. {$EXTERNALSYM EVP_F_EVP_PKEY_PARAMGEN}
  3453. EVP_F_EVP_PKEY_PARAMGEN = 148;
  3454. {$EXTERNALSYM EVP_F_EVP_PKEY_PARAMGEN_INIT}
  3455. EVP_F_EVP_PKEY_PARAMGEN_INIT = 149;
  3456. {$EXTERNALSYM EVP_F_EVP_PKEY_SIGN}
  3457. EVP_F_EVP_PKEY_SIGN = 140;
  3458. {$EXTERNALSYM EVP_F_EVP_PKEY_SIGN_INIT}
  3459. EVP_F_EVP_PKEY_SIGN_INIT = 141;
  3460. {$EXTERNALSYM EVP_F_EVP_PKEY_VERIFY}
  3461. EVP_F_EVP_PKEY_VERIFY = 142;
  3462. {$EXTERNALSYM EVP_F_EVP_PKEY_VERIFY_INIT}
  3463. EVP_F_EVP_PKEY_VERIFY_INIT = 143;
  3464. {$EXTERNALSYM EVP_F_EVP_PKEY_VERIFY_RECOVER}
  3465. EVP_F_EVP_PKEY_VERIFY_RECOVER = 144;
  3466. {$EXTERNALSYM EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT}
  3467. EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT = 145;
  3468. {$EXTERNALSYM EVP_F_EVP_RIJNDAEL}
  3469. EVP_F_EVP_RIJNDAEL = 126;
  3470. {$EXTERNALSYM EVP_F_EVP_SIGNFINAL}
  3471. EVP_F_EVP_SIGNFINAL = 107;
  3472. {$EXTERNALSYM EVP_F_EVP_VERIFYFINAL}
  3473. EVP_F_EVP_VERIFYFINAL = 108;
  3474. {$EXTERNALSYM EVP_F_FIPS_CIPHERINIT}
  3475. EVP_F_FIPS_CIPHERINIT = 166;
  3476. {$EXTERNALSYM EVP_F_FIPS_CIPHER_CTX_COPY}
  3477. EVP_F_FIPS_CIPHER_CTX_COPY = 170;
  3478. {$EXTERNALSYM EVP_F_FIPS_CIPHER_CTX_CTRL}
  3479. EVP_F_FIPS_CIPHER_CTX_CTRL = 167;
  3480. {$EXTERNALSYM EVP_F_FIPS_CIPHER_CTX_SET_KEY_LENGTH}
  3481. EVP_F_FIPS_CIPHER_CTX_SET_KEY_LENGTH = 171;
  3482. {$EXTERNALSYM EVP_F_FIPS_DIGESTINIT}
  3483. EVP_F_FIPS_DIGESTINIT = 168;
  3484. {$EXTERNALSYM EVP_F_FIPS_MD_CTX_COPY}
  3485. EVP_F_FIPS_MD_CTX_COPY = 169;
  3486. {$EXTERNALSYM EVP_F_HMAC_INIT_EX}
  3487. EVP_F_HMAC_INIT_EX = 174;
  3488. {$EXTERNALSYM EVP_F_INT_CTX_NEW}
  3489. EVP_F_INT_CTX_NEW = 157;
  3490. {$EXTERNALSYM EVP_F_PKCS5_PBE_KEYIVGEN}
  3491. EVP_F_PKCS5_PBE_KEYIVGEN = 117;
  3492. {$EXTERNALSYM EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN}
  3493. EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN = 164;
  3494. {$EXTERNALSYM EVP_F_PKCS5_V2_PBE_KEYIVGEN}
  3495. EVP_F_PKCS5_V2_PBE_KEYIVGEN = 118;
  3496. {$EXTERNALSYM EVP_F_PKCS8_SET_BROKEN}
  3497. EVP_F_PKCS8_SET_BROKEN = 112;
  3498. {$EXTERNALSYM EVP_F_PKEY_SET_TYPE}
  3499. EVP_F_PKEY_SET_TYPE = 158;
  3500. //was EVP_F_EVP_PKCS8_SET_BROKEN = 112;
  3501. {$EXTERNALSYM EVP_F_RC2_MAGIC_TO_METH}
  3502. EVP_F_RC2_MAGIC_TO_METH = 109;
  3503. {$EXTERNALSYM EVP_F_RC5_CTRL}
  3504. EVP_F_RC5_CTRL = 125;
  3505. {$EXTERNALSYM EVP_R_AES_IV_SETUP_FAILED}
  3506. EVP_R_AES_IV_SETUP_FAILED = 162;
  3507. {$EXTERNALSYM EVP_R_AES_KEY_SETUP_FAILED}
  3508. EVP_R_AES_KEY_SETUP_FAILED = 143;
  3509. {$EXTERNALSYM EVP_R_ASN1_LIB}
  3510. EVP_R_ASN1_LIB = 140;
  3511. {$EXTERNALSYM EVP_R_BAD_BLOCK_LENGTH}
  3512. EVP_R_BAD_BLOCK_LENGTH = 136;
  3513. {$EXTERNALSYM EVP_R_BAD_DECRYPT}
  3514. EVP_R_BAD_DECRYPT = 100;
  3515. {$EXTERNALSYM EVP_R_BN_DECODE_ERROR}
  3516. EVP_R_BN_DECODE_ERROR = 112;
  3517. {$EXTERNALSYM EVP_R_BN_PUBKEY_ERROR}
  3518. EVP_R_BN_PUBKEY_ERROR = 113;
  3519. {$EXTERNALSYM EVP_R_BUFFER_TOO_SMALL}
  3520. EVP_R_BUFFER_TOO_SMALL = 155;
  3521. {$EXTERNALSYM EVP_R_CIPHER_PARAMETER_ERROR}
  3522. EVP_R_CIPHER_PARAMETER_ERROR = 122;
  3523. {$EXTERNALSYM EVP_R_COMMAND_NOT_SUPPORTED}
  3524. EVP_R_COMMAND_NOT_SUPPORTED = 147;
  3525. {$EXTERNALSYM EVP_R_DECODE_ERROR}
  3526. EVP_R_DECODE_ERROR = 114;
  3527. {$EXTERNALSYM EVP_R_DIFFERENT_KEY_TYPES}
  3528. EVP_R_DIFFERENT_KEY_TYPES = 101;
  3529. {$EXTERNALSYM EVP_R_DIFFERENT_PARAMETERS}
  3530. EVP_R_DIFFERENT_PARAMETERS = 153;
  3531. {$EXTERNALSYM EVP_R_DISABLED_FOR_FIPS}
  3532. EVP_R_DISABLED_FOR_FIPS = 163; //was 144;
  3533. {$EXTERNALSYM EVP_R_ENCODE_ERROR}
  3534. EVP_R_ENCODE_ERROR = 115;
  3535. {$EXTERNALSYM EVP_R_ERROR_LOADING_SECTION}
  3536. EVP_R_ERROR_LOADING_SECTION = 165;
  3537. {$EXTERNALSYM EVP_R_ERROR_SETTING_FIPS_MODE}
  3538. EVP_R_ERROR_SETTING_FIPS_MODE = 166;
  3539. {$EXTERNALSYM EVP_R_EVP_PBE_CIPHERINIT_ERROR}
  3540. EVP_R_EVP_PBE_CIPHERINIT_ERROR = 119;
  3541. {$EXTERNALSYM EVP_R_EXPECTING_AN_RSA_KEY}
  3542. EVP_R_EXPECTING_AN_RSA_KEY = 127;
  3543. {$EXTERNALSYM EVP_R_EXPECTING_A_DH_KEY}
  3544. EVP_R_EXPECTING_A_DH_KEY = 128;
  3545. {$EXTERNALSYM EVP_R_EXPECTING_A_DSA_KEY}
  3546. EVP_R_EXPECTING_A_DSA_KEY = 129;
  3547. {$EXTERNALSYM EVP_R_EXPECTING_A_ECDSA_KEY}
  3548. EVP_R_EXPECTING_A_ECDSA_KEY = 141;
  3549. {$EXTERNALSYM EVP_R_EXPECTING_A_EC_KEY}
  3550. EVP_R_EXPECTING_A_EC_KEY = 142;
  3551. {$EXTERNALSYM EVP_R_FIPS_MODE_NOT_SUPPORTED}
  3552. EVP_R_FIPS_MODE_NOT_SUPPORTED = 167;
  3553. {$EXTERNALSYM EVP_R_INITIALIZATION_ERROR}
  3554. EVP_R_INITIALIZATION_ERROR = 134;
  3555. {$EXTERNALSYM EVP_R_INPUT_NOT_INITIALIZED}
  3556. EVP_R_INPUT_NOT_INITIALIZED = 111;
  3557. {$EXTERNALSYM EVP_R_INVALID_DIGEST}
  3558. EVP_R_INVALID_DIGEST = 152;
  3559. {$EXTERNALSYM EVP_R_INVALID_KEY_LENGTH}
  3560. EVP_R_INVALID_KEY_LENGTH = 130;
  3561. {$EXTERNALSYM EVP_R_INVALID_OPERATION}
  3562. EVP_R_INVALID_OPERATION = 148;
  3563. {$EXTERNALSYM EVP_R_INVALID_FIPS_MODE}
  3564. EVP_R_INVALID_FIPS_MODE = 168; //was: 148;
  3565. {$EXTERNALSYM EVP_R_IV_TOO_LARGE}
  3566. EVP_R_IV_TOO_LARGE = 102;
  3567. {$EXTERNALSYM EVP_R_KEYGEN_FAILURE}
  3568. EVP_R_KEYGEN_FAILURE = 120;
  3569. {$EXTERNALSYM EVP_R_MESSAGE_DIGEST_IS_NULL}
  3570. EVP_R_MESSAGE_DIGEST_IS_NULL = 159;
  3571. {$EXTERNALSYM EVP_R_METHOD_NOT_SUPPORTED}
  3572. EVP_R_METHOD_NOT_SUPPORTED = 144;
  3573. {$EXTERNALSYM EVP_R_MISSING_PARMATERS}
  3574. EVP_R_MISSING_PARMATERS = 103;
  3575. {$EXTERNALSYM EVP_R_NO_CIPHER_SET}
  3576. EVP_R_NO_CIPHER_SET = 131;
  3577. {$EXTERNALSYM EVP_R_NO_DEFAULT_DIGEST}
  3578. EVP_R_NO_DEFAULT_DIGEST = 158;
  3579. {$EXTERNALSYM EVP_R_NO_DIGEST_SET}
  3580. EVP_R_NO_DIGEST_SET = 139;
  3581. {$EXTERNALSYM EVP_R_NO_DSA_PARAMETERS}
  3582. EVP_R_NO_DSA_PARAMETERS = 116;
  3583. {$EXTERNALSYM EVP_R_NO_KEY_SET}
  3584. EVP_R_NO_KEY_SET = 154;
  3585. {$EXTERNALSYM EVP_R_NO_OPERATION_SET}
  3586. EVP_R_NO_OPERATION_SET = 149;
  3587. {$EXTERNALSYM EVP_R_NO_SIGN_FUNCTION_CONFIGURED}
  3588. EVP_R_NO_SIGN_FUNCTION_CONFIGURED = 104;
  3589. {$EXTERNALSYM EVP_R_NO_VERIFY_FUNCTION_CONFIGURED}
  3590. EVP_R_NO_VERIFY_FUNCTION_CONFIGURED = 105;
  3591. {$EXTERNALSYM EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}
  3592. EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE = 150;
  3593. {$EXTERNALSYM EVP_R_OPERATON_NOT_INITIALIZED}
  3594. EVP_R_OPERATON_NOT_INITIALIZED = 151;
  3595. {$EXTERNALSYM EVP_R_PKCS8_UNKNOWN_BROKEN_TYPE}
  3596. EVP_R_PKCS8_UNKNOWN_BROKEN_TYPE = 117;
  3597. {$EXTERNALSYM EVP_R_PRIVATE_KEY_DECODE_ERROR}
  3598. EVP_R_PRIVATE_KEY_DECODE_ERROR = 145;
  3599. {$EXTERNALSYM EVP_R_PRIVATE_KEY_ENCODE_ERROR}
  3600. EVP_R_PRIVATE_KEY_ENCODE_ERROR = 146;
  3601. {$EXTERNALSYM EVP_R_PUBLIC_KEY_NOT_RSA}
  3602. EVP_R_PUBLIC_KEY_NOT_RSA = 106;
  3603. {$EXTERNALSYM EVP_R_TOO_LARGE}
  3604. EVP_R_TOO_LARGE = 164;
  3605. {$EXTERNALSYM EVP_R_UNKNOWN_CIPHER}
  3606. EVP_R_UNKNOWN_CIPHER = 160;
  3607. {$EXTERNALSYM EVP_R_UNKNOWN_DIGEST}
  3608. EVP_R_UNKNOWN_DIGEST = 161;
  3609. {$EXTERNALSYM EVP_R_UNKNOWN_OPTION}
  3610. EVP_R_UNKNOWN_OPTION = 169; //149;
  3611. {$EXTERNALSYM EVP_R_UNKNOWN_PBE_ALGORITHM}
  3612. EVP_R_UNKNOWN_PBE_ALGORITHM = 121;
  3613. {$EXTERNALSYM EVP_R_UNSUPPORTED_CIPHER}
  3614. EVP_R_UNSUPPORTED_CIPHER = 107;
  3615. {$EXTERNALSYM EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS}
  3616. EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS = 135;
  3617. {$EXTERNALSYM EVP_R_UNSUPPORTED_KEYLENGTH}
  3618. EVP_R_UNSUPPORTED_KEYLENGTH = 123;
  3619. {$EXTERNALSYM EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}
  3620. EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION = 124;
  3621. {$EXTERNALSYM EVP_R_UNSUPPORTED_KEY_SIZE}
  3622. EVP_R_UNSUPPORTED_KEY_SIZE = 108;
  3623. {$EXTERNALSYM EVP_R_UNSUPPORTED_PRF}
  3624. EVP_R_UNSUPPORTED_PRF = 125;
  3625. {$EXTERNALSYM EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}
  3626. EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM = 118;
  3627. {$EXTERNALSYM EVP_R_UNSUPPORTED_SALT_TYPE}
  3628. EVP_R_UNSUPPORTED_SALT_TYPE = 126;
  3629. {$EXTERNALSYM EVP_R_WRONG_FINAL_BLOCK_LENGTH}
  3630. EVP_R_WRONG_FINAL_BLOCK_LENGTH = 109;
  3631. {$EXTERNALSYM EVP_R_WRONG_PUBLIC_KEY_TYPE}
  3632. EVP_R_WRONG_PUBLIC_KEY_TYPE = 110;
  3633. {$EXTERNALSYM EVP_R_SEED_KEY_SETUP_FAILED}
  3634. EVP_R_SEED_KEY_SETUP_FAILED = 162;
  3635. {$IFDEF OPENSSL_FIPS}
  3636. //* Function codes. */
  3637. {$EXTERNALSYM FIPS_F_DH_BUILTIN_GENPARAMS}
  3638. FIPS_F_DH_BUILTIN_GENPARAMS = 100;
  3639. {$EXTERNALSYM FIPS_F_DSA_BUILTIN_PARAMGEN}
  3640. FIPS_F_DSA_BUILTIN_PARAMGEN = 101;
  3641. {$EXTERNALSYM FIPS_F_DSA_DO_SIGN}
  3642. FIPS_F_DSA_DO_SIGN = 102;
  3643. {$EXTERNALSYM FIPS_F_DSA_DO_VERIFY}
  3644. FIPS_F_DSA_DO_VERIFY = 103;
  3645. {$EXTERNALSYM FIPS_F_EVP_CIPHERINIT_EX}
  3646. FIPS_F_EVP_CIPHERINIT_EX = 124;
  3647. {$EXTERNALSYM FIPS_F_EVP_DIGESTINIT_EX}
  3648. FIPS_F_EVP_DIGESTINIT_EX = 125;
  3649. {$EXTERNALSYM FIPS_F_FIPS_CHECK_DSA}
  3650. FIPS_F_FIPS_CHECK_DSA = 104;
  3651. {$EXTERNALSYM FIPS_F_FIPS_CHECK_INCORE_FINGERPRINT}
  3652. FIPS_F_FIPS_CHECK_INCORE_FINGERPRINT = 105;
  3653. {$EXTERNALSYM FIPS_F_FIPS_CHECK_RSA}
  3654. FIPS_F_FIPS_CHECK_RSA = 106;
  3655. {$EXTERNALSYM FIPS_F_FIPS_DSA_CHECK}
  3656. FIPS_F_FIPS_DSA_CHECK = 107;
  3657. {$EXTERNALSYM FIPS_F_FIPS_MODE_SET}
  3658. FIPS_F_FIPS_MODE_SET = 108;
  3659. {$EXTERNALSYM FIPS_F_FIPS_PKEY_SIGNATURE_TEST}
  3660. FIPS_F_FIPS_PKEY_SIGNATURE_TEST = 109;
  3661. {$EXTERNALSYM FIPS_F_FIPS_SELFTEST_AES}
  3662. FIPS_F_FIPS_SELFTEST_AES = 110;
  3663. {$EXTERNALSYM FIPS_F_FIPS_SELFTEST_DES}
  3664. FIPS_F_FIPS_SELFTEST_DES = 111;
  3665. {$EXTERNALSYM FIPS_F_FIPS_SELFTEST_DSA}
  3666. FIPS_F_FIPS_SELFTEST_DSA = 112;
  3667. {$EXTERNALSYM FIPS_F_FIPS_SELFTEST_HMAC}
  3668. FIPS_F_FIPS_SELFTEST_HMAC = 113;
  3669. {$EXTERNALSYM FIPS_F_FIPS_SELFTEST_RNG}
  3670. FIPS_F_FIPS_SELFTEST_RNG = 114;
  3671. {$EXTERNALSYM FIPS_F_FIPS_SELFTEST_SHA1}
  3672. FIPS_F_FIPS_SELFTEST_SHA1 = 115;
  3673. {$EXTERNALSYM FIPS_F_HASH_FINAL}
  3674. FIPS_F_HASH_FINAL = 123;
  3675. {$EXTERNALSYM FIPS_F_RSA_BUILTIN_KEYGEN}
  3676. FIPS_F_RSA_BUILTIN_KEYGEN = 116;
  3677. {$EXTERNALSYM FIPS_F_RSA_EAY_PRIVATE_DECRYPT}
  3678. FIPS_F_RSA_EAY_PRIVATE_DECRYPT = 117;
  3679. {$EXTERNALSYM FIPS_F_RSA_EAY_PRIVATE_ENCRYPT}
  3680. FIPS_F_RSA_EAY_PRIVATE_ENCRYPT = 118;
  3681. {$EXTERNALSYM FIPS_F_RSA_EAY_PUBLIC_DECRYPT}
  3682. FIPS_F_RSA_EAY_PUBLIC_DECRYPT = 119;
  3683. {$EXTERNALSYM FIPS_F_RSA_EAY_PUBLIC_ENCRYPT}
  3684. FIPS_F_RSA_EAY_PUBLIC_ENCRYPT = 120;
  3685. {$EXTERNALSYM FIPS_F_RSA_X931_GENERATE_KEY_EX}
  3686. FIPS_F_RSA_X931_GENERATE_KEY_EX = 121;
  3687. {$EXTERNALSYM FIPS_F_SSLEAY_RAND_BYTES}
  3688. FIPS_F_SSLEAY_RAND_BYTES = 122;
  3689. //* Reason codes. */
  3690. {$EXTERNALSYM FIPS_R_CANNOT_READ_EXE}
  3691. FIPS_R_CANNOT_READ_EXE = 103;
  3692. {$EXTERNALSYM FIPS_R_CANNOT_READ_EXE_DIGEST}
  3693. FIPS_R_CANNOT_READ_EXE_DIGEST = 104;
  3694. {$EXTERNALSYM FIPS_R_CONTRADICTING_EVIDENCE}
  3695. FIPS_R_CONTRADICTING_EVIDENCE = 114;
  3696. {$EXTERNALSYM FIPS_R_EXE_DIGEST_DOES_NOT_MATCH}
  3697. FIPS_R_EXE_DIGEST_DOES_NOT_MATCH = 105;
  3698. {$EXTERNALSYM FIPS_R_FINGERPRINT_DOES_NOT_MATCH}
  3699. FIPS_R_FINGERPRINT_DOES_NOT_MATCH = 110;
  3700. {$EXTERNALSYM FIPS_R_FINGERPRINT_DOES_NOT_MATCH_NONPIC_RELOCATED}
  3701. FIPS_R_FINGERPRINT_DOES_NOT_MATCH_NONPIC_RELOCATED = 111;
  3702. {$EXTERNALSYM FIPS_R_FINGERPRINT_DOES_NOT_MATCH_SEGMENT_ALIASING}
  3703. FIPS_R_FINGERPRINT_DOES_NOT_MATCH_SEGMENT_ALIASING = 112;
  3704. {$EXTERNALSYM FIPS_R_FIPS_MODE_ALREADY_SET}
  3705. FIPS_R_FIPS_MODE_ALREADY_SET = 102;
  3706. {$EXTERNALSYM FIPS_R_FIPS_SELFTEST_FAILED}
  3707. FIPS_R_FIPS_SELFTEST_FAILED = 106;
  3708. {$EXTERNALSYM FIPS_R_INVALID_KEY_LENGTH}
  3709. FIPS_R_INVALID_KEY_LENGTH = 109;
  3710. {$EXTERNALSYM FIPS_R_KEY_TOO_SHORT}
  3711. FIPS_R_KEY_TOO_SHORT = 108;
  3712. {$EXTERNALSYM FIPS_R_NON_FIPS_METHOD}
  3713. FIPS_R_NON_FIPS_METHOD = 100;
  3714. {$EXTERNALSYM FIPS_R_PAIRWISE_TEST_FAILED}
  3715. FIPS_R_PAIRWISE_TEST_FAILED = 107;
  3716. {$EXTERNALSYM FIPS_R_RSA_DECRYPT_ERROR}
  3717. FIPS_R_RSA_DECRYPT_ERROR = 115;
  3718. {$EXTERNALSYM FIPS_R_RSA_ENCRYPT_ERROR}
  3719. FIPS_R_RSA_ENCRYPT_ERROR = 116;
  3720. {$EXTERNALSYM FIPS_R_SELFTEST_FAILED}
  3721. FIPS_R_SELFTEST_FAILED = 101;
  3722. {$EXTERNALSYM FIPS_R_TEST_FAILURE}
  3723. FIPS_R_TEST_FAILURE = 117;
  3724. {$EXTERNALSYM FIPS_R_UNSUPPORTED_PLATFORM}
  3725. FIPS_R_UNSUPPORTED_PLATFORM = 113;
  3726. {$ENDIF}
  3727. {$IFNDEF OPENSSL_NO_ENGINE}
  3728. //* These flags are used to control combinations of algorithm (methods)
  3729. // * by bitwise "OR"ing. */
  3730. {$EXTERNALSYM ENGINE_METHOD_RSA : TIdC_UINT}
  3731. ENGINE_METHOD_RSA : TIdC_UINT = $0001;
  3732. {$EXTERNALSYM ENGINE_METHOD_DSA : TIdC_UINT}
  3733. ENGINE_METHOD_DSA : TIdC_UINT = $0002;
  3734. {$EXTERNALSYM ENGINE_METHOD_DH : TIdC_UINT}
  3735. ENGINE_METHOD_DH : TIdC_UINT = $0004;
  3736. {$EXTERNALSYM ENGINE_METHOD_RAND : TIdC_UINT}
  3737. ENGINE_METHOD_RAND : TIdC_UINT = $0008;
  3738. {$EXTERNALSYM ENGINE_METHOD_ECDH : TIdC_UINT}
  3739. ENGINE_METHOD_ECDH : TIdC_UINT = $0010;
  3740. {$EXTERNALSYM ENGINE_METHOD_ECDSA : TIdC_UINT}
  3741. ENGINE_METHOD_ECDSA : TIdC_UINT = $0020;
  3742. {$EXTERNALSYM ENGINE_METHOD_CIPHERS : TIdC_UINT}
  3743. ENGINE_METHOD_CIPHERS : TIdC_UINT = $0040;
  3744. {$EXTERNALSYM ENGINE_METHOD_DIGESTS : TIdC_UINT}
  3745. ENGINE_METHOD_DIGESTS : TIdC_UINT = $0080;
  3746. {$EXTERNALSYM ENGINE_METHOD_STORE : TIdC_UINT}
  3747. ENGINE_METHOD_STORE : TIdC_UINT = $0100;
  3748. {$EXTERNALSYM ENGINE_METHOD_PKEY_METHS : TIdC_UINT}
  3749. ENGINE_METHOD_PKEY_METHS : TIdC_UINT = $0200;
  3750. {$EXTERNALSYM ENGINE_METHOD_PKEY_ASN1_METHS : TIdC_UINT}
  3751. ENGINE_METHOD_PKEY_ASN1_METHS : TIdC_UINT = $0400;
  3752. //* Obvious all-or-nothing cases. */
  3753. {$EXTERNALSYM ENGINE_METHOD_ALL : TIdC_UINT}
  3754. ENGINE_METHOD_ALL : TIdC_UINT = $FFFF;
  3755. {$EXTERNALSYM ENGINE_METHOD_NONE : TIdC_UINT}
  3756. ENGINE_METHOD_NONE : TIdC_UINT = $0000;
  3757. {$EXTERNALSYM ENGINE_TABLE_FLAG_NOINIT : TIdC_UINT}
  3758. ENGINE_TABLE_FLAG_NOINIT : TIdC_UINT = $0001;
  3759. {$EXTERNALSYM ENGINE_FLAGS_MANUAL_CMD_CTRL : TIdC_INT}
  3760. ENGINE_FLAGS_MANUAL_CMD_CTRL : TIdC_INT = $0002;
  3761. {$EXTERNALSYM ENGINE_FLAGS_BY_ID_COPY : TIdC_INT}
  3762. ENGINE_FLAGS_BY_ID_COPY : TIdC_INT = $0004;
  3763. {$EXTERNALSYM ENGINE_CMD_FLAG_NUMERIC : TIdC_UINT}
  3764. ENGINE_CMD_FLAG_NUMERIC : TIdC_UINT = $0001;
  3765. {$EXTERNALSYM ENGINE_CMD_FLAG_STRING : TIdC_UINT}
  3766. ENGINE_CMD_FLAG_STRING : TIdC_UINT = $0002;
  3767. {$EXTERNALSYM ENGINE_CMD_FLAG_NO_INPUT : TIdC_UINT}
  3768. ENGINE_CMD_FLAG_NO_INPUT : TIdC_UINT = $0004;
  3769. {$EXTERNALSYM ENGINE_CMD_FLAG_INTERNAL : TIdC_UINT}
  3770. ENGINE_CMD_FLAG_INTERNAL : TIdC_UINT = $0008;
  3771. {$EXTERNALSYM ENGINE_CTRL_SET_LOGSTREAM}
  3772. ENGINE_CTRL_SET_LOGSTREAM = 1;
  3773. {$EXTERNALSYM ENGINE_CTRL_SET_PASSWORD_CALLBACK}
  3774. ENGINE_CTRL_SET_PASSWORD_CALLBACK = 2;
  3775. {$EXTERNALSYM ENGINE_CTRL_HUP}
  3776. ENGINE_CTRL_HUP = 3;
  3777. //* Close and reinitialise any
  3778. // handles/connections etc. */
  3779. {$EXTERNALSYM ENGINE_CTRL_SET_USER_INTERFACE}
  3780. ENGINE_CTRL_SET_USER_INTERFACE = 4; //* Alternative to callback */
  3781. {$EXTERNALSYM _CALLBACK_DATA}
  3782. _CALLBACK_DATA = 5;
  3783. //* User-specific data, used
  3784. // when calling the password
  3785. // callback and the user
  3786. // interface */
  3787. {$EXTERNALSYM D_CONFIGURATION}
  3788. D_CONFIGURATION = 6;
  3789. //* Load a configuration, given
  3790. //a string that represents a
  3791. //file name or so */
  3792. {$EXTERNALSYM D_SECTION}
  3793. D_SECTION = 7;
  3794. ///* Load data from a given
  3795. //section in the already loaded
  3796. //configuration */
  3797. ////* Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", then
  3798. // * all the remaining control commands will return failure, so it is worth
  3799. // * checking this first if the caller is trying to "discover" the engine's
  3800. // * capabilities and doesn't want errors generated unnecessarily. */
  3801. {$EXTERNALSYM ENGINE_CTRL_HAS_CTRL_FUNCTION}
  3802. ENGINE_CTRL_HAS_CTRL_FUNCTION = 10;
  3803. ///* Returns a positive command number for the first command supported by the
  3804. // * engine. Returns zero if no ctrl commands are supported. */
  3805. {$EXTERNALSYM ENGINE_CTRL_GET_FIRST_CMD_TYPE}
  3806. ENGINE_CTRL_GET_FIRST_CMD_TYPE = 11;
  3807. ///* The 'long' argument specifies a command implemented by the engine, and the
  3808. // * return value is the next command supported, or zero if there are no more. */
  3809. {$EXTERNALSYM ENGINE_CTRL_GET_NEXT_CMD_TYPE}
  3810. ENGINE_CTRL_GET_NEXT_CMD_TYPE = 12;
  3811. ///* The 'void*' argument is a command name (cast from 'const char *'), and the
  3812. // * return value is the command that corresponds to it. */
  3813. {$EXTERNALSYM ENGINE_CTRL_GET_CMD_FROM_NAME}
  3814. ENGINE_CTRL_GET_CMD_FROM_NAME = 13;
  3815. ///* The next two allow a command to be converted into its corresponding string
  3816. // * form. In each case, the 'long' argument supplies the command. In the NAME_LEN
  3817. // * case, the return value is the length of the command name (not counting a
  3818. // * trailing EOL). In the NAME case, the 'void*' argument must be a string buffer
  3819. // * large enough, and it will be populated with the name of the command (WITH a
  3820. // * trailing EOL). */
  3821. {$EXTERNALSYM ENGINE_CTRL_GET_NAME_LEN_FROM_CMD}
  3822. ENGINE_CTRL_GET_NAME_LEN_FROM_CMD = 14;
  3823. {$EXTERNALSYM ENGINE_CTRL_GET_NAME_FROM_CMD}
  3824. ENGINE_CTRL_GET_NAME_FROM_CMD = 15;
  3825. //* The next two are similar but give a "short description" of a command. */
  3826. {$EXTERNALSYM ENGINE_CTRL_GET_DESC_LEN_FROM_CMD}
  3827. ENGINE_CTRL_GET_DESC_LEN_FROM_CMD = 16;
  3828. {$EXTERNALSYM ENGINE_CTRL_GET_DESC_FROM_CMD}
  3829. ENGINE_CTRL_GET_DESC_FROM_CMD = 17;
  3830. ///* With this command, the return value is the OR'd combination of
  3831. // * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given
  3832. // * engine-specific ctrl command expects. */
  3833. {$EXTERNALSYM ENGINE_CTRL_GET_CMD_FLAGS}
  3834. ENGINE_CTRL_GET_CMD_FLAGS = 18;
  3835. ///* ENGINE implementations should start the numbering of their own control
  3836. // * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). */
  3837. {$EXTERNALSYM ENGINE_CMD_BASE}
  3838. ENGINE_CMD_BASE = 200;
  3839. ///* NB: These 2 nCipher "chil" control commands are deprecated, and their
  3840. // * functionality is now available through ENGINE-specific control commands
  3841. // * (exposed through the above-mentioned 'CMD'-handling). Code using these 2
  3842. // * commands should be migrated to the more general command handling before these
  3843. // * are removed. */
  3844. //* Flags specific to the nCipher "chil" engine */
  3845. {$EXTERNALSYM ENGINE_CTRL_CHIL_SET_FORKCHECK}
  3846. ENGINE_CTRL_CHIL_SET_FORKCHECK = 100;
  3847. ///* Depending on the value of the (long)i argument, this sets or
  3848. // * unsets the SimpleForkCheck flag in the CHIL API to enable or
  3849. // * disable checking and workarounds for applications that fork().
  3850. // */
  3851. {$EXTERNALSYM ENGINE_CTRL_CHIL_NO_LOCKING}
  3852. ENGINE_CTRL_CHIL_NO_LOCKING = 101;
  3853. ///* This prevents the initialisation function from providing mutex
  3854. // * callbacks to the nCipher library. */
  3855. ///* Binary/behaviour compatibility levels */
  3856. {$EXTERNALSYM OSSL_DYNAMIC_VERSION : TIdC_UINT}
  3857. OSSL_DYNAMIC_VERSION : TIdC_UINT = $00020000;
  3858. ///* Binary versions older than this are too old for us (whether we're a loader or
  3859. // * a loadee) */
  3860. {$EXTERNALSYM OSSL_DYNAMIC_OLDEST : TIdC_UINT}
  3861. OSSL_DYNAMIC_OLDEST : TIdC_UINT = $00020000;
  3862. //* Function codes. */
  3863. {$EXTERNALSYM ENGINE_F_DYNAMIC_CTRL}
  3864. ENGINE_F_DYNAMIC_CTRL = 180;
  3865. {$EXTERNALSYM ENGINE_F_DYNAMIC_GET_DATA_CTX}
  3866. ENGINE_F_DYNAMIC_GET_DATA_CTX = 181;
  3867. {$EXTERNALSYM ENGINE_F_DYNAMIC_LOAD}
  3868. ENGINE_F_DYNAMIC_LOAD = 182;
  3869. {$EXTERNALSYM ENGINE_F_DYNAMIC_SET_DATA_CTX}
  3870. ENGINE_F_DYNAMIC_SET_DATA_CTX = 183;
  3871. {$EXTERNALSYM ENGINE_F_ENGINE_ADD}
  3872. ENGINE_F_ENGINE_ADD = 105;
  3873. {$EXTERNALSYM ENGINE_F_ENGINE_BY_ID}
  3874. ENGINE_F_ENGINE_BY_ID = 106;
  3875. {$EXTERNALSYM ENGINE_F_ENGINE_CMD_IS_EXECUTABLE}
  3876. ENGINE_F_ENGINE_CMD_IS_EXECUTABLE = 170;
  3877. {$EXTERNALSYM ENGINE_F_ENGINE_CTRL}
  3878. ENGINE_F_ENGINE_CTRL = 142;
  3879. {$EXTERNALSYM ENGINE_F_ENGINE_CTRL_CMD}
  3880. ENGINE_F_ENGINE_CTRL_CMD = 178;
  3881. {$EXTERNALSYM ENGINE_F_ENGINE_CTRL_CMD_STRING}
  3882. ENGINE_F_ENGINE_CTRL_CMD_STRING = 171;
  3883. {$EXTERNALSYM ENGINE_F_ENGINE_FINISH}
  3884. ENGINE_F_ENGINE_FINISH = 107;
  3885. {$EXTERNALSYM ENGINE_F_ENGINE_FREE_UTIL}
  3886. ENGINE_F_ENGINE_FREE_UTIL = 108;
  3887. {$EXTERNALSYM ENGINE_F_ENGINE_GET_CIPHER}
  3888. ENGINE_F_ENGINE_GET_CIPHER = 185;
  3889. {$EXTERNALSYM ENGINE_F_ENGINE_GET_DEFAULT_TYPE}
  3890. ENGINE_F_ENGINE_GET_DEFAULT_TYPE = 177;
  3891. {$EXTERNALSYM ENGINE_F_ENGINE_GET_DIGEST}
  3892. ENGINE_F_ENGINE_GET_DIGEST = 186;
  3893. {$EXTERNALSYM ENGINE_F_ENGINE_GET_NEXT}
  3894. ENGINE_F_ENGINE_GET_NEXT = 115;
  3895. {$EXTERNALSYM ENGINE_F_ENGINE_GET_PKEY_ASN1_METH}
  3896. ENGINE_F_ENGINE_GET_PKEY_ASN1_METH = 193;
  3897. {$EXTERNALSYM ENGINE_F_ENGINE_GET_PKEY_METH}
  3898. ENGINE_F_ENGINE_GET_PKEY_METH = 192;
  3899. {$EXTERNALSYM ENGINE_F_ENGINE_GET_PREV}
  3900. ENGINE_F_ENGINE_GET_PREV = 116;
  3901. {$EXTERNALSYM ENGINE_F_ENGINE_INIT}
  3902. ENGINE_F_ENGINE_INIT = 119;
  3903. {$EXTERNALSYM ENGINE_F_ENGINE_LIST_ADD}
  3904. ENGINE_F_ENGINE_LIST_ADD = 120;
  3905. {$EXTERNALSYM ENGINE_F_ENGINE_LIST_REMOVE}
  3906. ENGINE_F_ENGINE_LIST_REMOVE = 121;
  3907. {$EXTERNALSYM ENGINE_F_ENGINE_LOAD_PRIVATE_KEY}
  3908. ENGINE_F_ENGINE_LOAD_PRIVATE_KEY = 150;
  3909. {$EXTERNALSYM ENGINE_F_ENGINE_LOAD_PUBLIC_KEY}
  3910. ENGINE_F_ENGINE_LOAD_PUBLIC_KEY = 151;
  3911. //was ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT = 192;
  3912. {$EXTERNALSYM ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT}
  3913. ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT = 194;
  3914. {$EXTERNALSYM ENGINE_F_ENGINE_NEW}
  3915. ENGINE_F_ENGINE_NEW = 122;
  3916. {$EXTERNALSYM ENGINE_F_ENGINE_REMOVE}
  3917. ENGINE_F_ENGINE_REMOVE = 123;
  3918. {$EXTERNALSYM ENGINE_F_ENGINE_SET_DEFAULT_STRING}
  3919. ENGINE_F_ENGINE_SET_DEFAULT_STRING = 189;
  3920. {$EXTERNALSYM ENGINE_F_ENGINE_SET_DEFAULT_TYPE}
  3921. ENGINE_F_ENGINE_SET_DEFAULT_TYPE = 126;
  3922. {$EXTERNALSYM ENGINE_F_ENGINE_SET_ID}
  3923. ENGINE_F_ENGINE_SET_ID = 129;
  3924. {$EXTERNALSYM ENGINE_F_ENGINE_SET_NAME}
  3925. ENGINE_F_ENGINE_SET_NAME = 130;
  3926. {$EXTERNALSYM ENGINE_F_ENGINE_TABLE_REGISTER}
  3927. ENGINE_F_ENGINE_TABLE_REGISTER = 184;
  3928. {$EXTERNALSYM ENGINE_F_ENGINE_UNLOAD_KEY}
  3929. ENGINE_F_ENGINE_UNLOAD_KEY = 152;
  3930. {$EXTERNALSYM ENGINE_F_ENGINE_UNLOCKED_FINISH}
  3931. ENGINE_F_ENGINE_UNLOCKED_FINISH = 191;
  3932. {$EXTERNALSYM ENGINE_F_ENGINE_UP_REF}
  3933. ENGINE_F_ENGINE_UP_REF = 190;
  3934. {$EXTERNALSYM ENGINE_F_INT_CTRL_HELPER}
  3935. ENGINE_F_INT_CTRL_HELPER = 172;
  3936. {$EXTERNALSYM ENGINE_F_INT_ENGINE_CONFIGURE}
  3937. ENGINE_F_INT_ENGINE_CONFIGURE = 188;
  3938. {$EXTERNALSYM ENGINE_F_INT_ENGINE_MODULE_INIT}
  3939. ENGINE_F_INT_ENGINE_MODULE_INIT = 187;
  3940. {$EXTERNALSYM ENGINE_F_LOG_MESSAGE}
  3941. ENGINE_F_LOG_MESSAGE = 141;
  3942. //* Reason codes. */
  3943. {$EXTERNALSYM ENGINE_R_ALREADY_LOADED}
  3944. ENGINE_R_ALREADY_LOADED = 100;
  3945. {$EXTERNALSYM ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER}
  3946. ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER = 133;
  3947. {$EXTERNALSYM ENGINE_R_CMD_NOT_EXECUTABLE}
  3948. ENGINE_R_CMD_NOT_EXECUTABLE = 134;
  3949. {$EXTERNALSYM ENGINE_R_COMMAND_TAKES_INPUT}
  3950. ENGINE_R_COMMAND_TAKES_INPUT = 135;
  3951. {$EXTERNALSYM ENGINE_R_COMMAND_TAKES_NO_INPUT}
  3952. ENGINE_R_COMMAND_TAKES_NO_INPUT = 136;
  3953. {$EXTERNALSYM ENGINE_R_CONFLICTING_ENGINE_ID}
  3954. ENGINE_R_CONFLICTING_ENGINE_ID = 103;
  3955. {$EXTERNALSYM ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED}
  3956. ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED = 119;
  3957. {$EXTERNALSYM ENGINE_R_DH_NOT_IMPLEMENTED}
  3958. ENGINE_R_DH_NOT_IMPLEMENTED = 139;
  3959. {$EXTERNALSYM ENGINE_R_DSA_NOT_IMPLEMENTED}
  3960. ENGINE_R_DSA_NOT_IMPLEMENTED = 140;
  3961. {$EXTERNALSYM ENGINE_R_DSO_FAILURE}
  3962. ENGINE_R_DSO_FAILURE = 104;
  3963. {$EXTERNALSYM ENGINE_R_DSO_NOT_FOUND}
  3964. ENGINE_R_DSO_NOT_FOUND = 132;
  3965. {$EXTERNALSYM ENGINE_R_ENGINES_SECTION_ERROR}
  3966. ENGINE_R_ENGINES_SECTION_ERROR = 148;
  3967. //was: ENGINE_R_ENGINE_CONFIGURATION_ERROR = 101;
  3968. {$EXTERNALSYM ENGINE_R_ENGINE_CONFIGURATION_ERROR}
  3969. ENGINE_R_ENGINE_CONFIGURATION_ERROR = 102;
  3970. {$EXTERNALSYM ENGINE_R_ENGINE_IS_NOT_IN_LIST}
  3971. ENGINE_R_ENGINE_IS_NOT_IN_LIST = 105;
  3972. {$EXTERNALSYM ENGINE_R_ENGINE_SECTION_ERROR}
  3973. ENGINE_R_ENGINE_SECTION_ERROR = 149;
  3974. {$EXTERNALSYM ENGINE_R_FAILED_LOADING_PRIVATE_KEY}
  3975. ENGINE_R_FAILED_LOADING_PRIVATE_KEY = 128;
  3976. {$EXTERNALSYM ENGINE_R_FAILED_LOADING_PUBLIC_KEY}
  3977. ENGINE_R_FAILED_LOADING_PUBLIC_KEY = 129;
  3978. {$EXTERNALSYM ENGINE_R_FINISH_FAILED}
  3979. ENGINE_R_FINISH_FAILED = 106;
  3980. {$EXTERNALSYM ENGINE_R_GET_HANDLE_FAILED}
  3981. ENGINE_R_GET_HANDLE_FAILED = 107;
  3982. {$EXTERNALSYM ENGINE_R_ID_OR_NAME_MISSING}
  3983. ENGINE_R_ID_OR_NAME_MISSING = 108;
  3984. {$EXTERNALSYM ENGINE_R_INIT_FAILED}
  3985. ENGINE_R_INIT_FAILED = 109;
  3986. {$EXTERNALSYM ENGINE_R_INTERNAL_LIST_ERROR}
  3987. ENGINE_R_INTERNAL_LIST_ERROR = 110;
  3988. {$EXTERNALSYM ENGINE_R_INVALID_ARGUMENT}
  3989. ENGINE_R_INVALID_ARGUMENT = 143;
  3990. {$EXTERNALSYM ENGINE_R_INVALID_CMD_NAME}
  3991. ENGINE_R_INVALID_CMD_NAME = 137;
  3992. {$EXTERNALSYM ENGINE_R_INVALID_CMD_NUMBER}
  3993. ENGINE_R_INVALID_CMD_NUMBER = 138;
  3994. {$EXTERNALSYM ENGINE_R_INVALID_INIT_VALUE}
  3995. ENGINE_R_INVALID_INIT_VALUE = 151;
  3996. {$EXTERNALSYM ENGINE_R_INVALID_STRING}
  3997. ENGINE_R_INVALID_STRING = 150;
  3998. {$EXTERNALSYM ENGINE_R_NOT_INITIALISED}
  3999. ENGINE_R_NOT_INITIALISED = 117;
  4000. {$EXTERNALSYM ENGINE_R_NOT_LOADED}
  4001. ENGINE_R_NOT_LOADED = 112;
  4002. {$EXTERNALSYM ENGINE_R_NO_CONTROL_FUNCTION}
  4003. ENGINE_R_NO_CONTROL_FUNCTION = 120;
  4004. {$EXTERNALSYM ENGINE_R_NO_INDEX}
  4005. ENGINE_R_NO_INDEX = 144;
  4006. {$EXTERNALSYM ENGINE_R_NO_LOAD_FUNCTION}
  4007. ENGINE_R_NO_LOAD_FUNCTION = 125;
  4008. {$EXTERNALSYM ENGINE_R_NO_REFERENCE}
  4009. ENGINE_R_NO_REFERENCE = 130;
  4010. {$EXTERNALSYM ENGINE_R_NO_SUCH_ENGINE}
  4011. ENGINE_R_NO_SUCH_ENGINE = 116;
  4012. {$EXTERNALSYM ENGINE_R_NO_UNLOAD_FUNCTION}
  4013. ENGINE_R_NO_UNLOAD_FUNCTION = 126;
  4014. {$EXTERNALSYM ENGINE_R_PROVIDE_PARAMETERS}
  4015. ENGINE_R_PROVIDE_PARAMETERS = 113;
  4016. {$EXTERNALSYM ENGINE_R_RSA_NOT_IMPLEMENTED}
  4017. ENGINE_R_RSA_NOT_IMPLEMENTED = 141;
  4018. {$EXTERNALSYM ENGINE_R_UNIMPLEMENTED_CIPHER}
  4019. ENGINE_R_UNIMPLEMENTED_CIPHER = 146;
  4020. {$EXTERNALSYM ENGINE_R_UNIMPLEMENTED_DIGEST}
  4021. ENGINE_R_UNIMPLEMENTED_DIGEST = 147;
  4022. {$EXTERNALSYM ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD}
  4023. ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD = 101;
  4024. {$EXTERNALSYM ENGINE_R_VERSION_INCOMPATIBILITY}
  4025. ENGINE_R_VERSION_INCOMPATIBILITY = 145;
  4026. {$ENDIF}
  4027. {$EXTERNALSYM MSS_EXIT_FAILURE}
  4028. MSS_EXIT_FAILURE = 1;
  4029. {$EXTERNALSYM MSS_EXIT_SUCCESS}
  4030. MSS_EXIT_SUCCESS = 0;
  4031. {$EXTERNALSYM FILENAME_MAX}
  4032. FILENAME_MAX = 1024;
  4033. {$EXTERNALSYM FOPEN_MAX}
  4034. FOPEN_MAX = 20;
  4035. {$IFNDEF OPENSSL_NO_IDEA}
  4036. {$EXTERNALSYM IDEA_BLOCK}
  4037. IDEA_BLOCK = 8;
  4038. {$EXTERNALSYM IDEA_DECRYPT}
  4039. IDEA_DECRYPT = 0;
  4040. {$EXTERNALSYM IDEA_ENCRYPT}
  4041. IDEA_ENCRYPT = 1;
  4042. {$EXTERNALSYM IDEA_KEY_LENGTH}
  4043. IDEA_KEY_LENGTH = 16;
  4044. {$ENDIF}
  4045. {$EXTERNALSYM IS_SEQUENCE}
  4046. IS_SEQUENCE = 0;
  4047. {$EXTERNALSYM IS_SET}
  4048. IS_SET = 1;
  4049. {$EXTERNALSYM KRBDES_DECRYPT}
  4050. KRBDES_DECRYPT = DES_DECRYPT;
  4051. {$EXTERNALSYM KRBDES_ENCRYPT}
  4052. KRBDES_ENCRYPT = DES_ENCRYPT;
  4053. {$EXTERNALSYM LH_LOAD_MULT}
  4054. LH_LOAD_MULT = 256;
  4055. {$EXTERNALSYM L_ctermid}
  4056. L_ctermid = 16;
  4057. {$EXTERNALSYM L_cuserid}
  4058. L_cuserid = 9;
  4059. {$EXTERNALSYM L_tmpnam}
  4060. L_tmpnam = 1024;
  4061. //chamellia.h
  4062. {$IFNDEF OPENSSL_NO_CAMELLIA}
  4063. {$EXTERNALSYM CAMELLIA_ENCRYPT}
  4064. CAMELLIA_ENCRYPT = 1;
  4065. {$EXTERNALSYM CAMELLIA_DECRYPT}
  4066. CAMELLIA_DECRYPT = 0;
  4067. //* This should be a hidden type, but EVP requires that the size be known */
  4068. {$EXTERNALSYM CAMELLIA_BLOCK_SIZE}
  4069. CAMELLIA_BLOCK_SIZE = 16;
  4070. {$EXTERNALSYM CAMELLIA_TABLE_BYTE_LEN}
  4071. CAMELLIA_TABLE_BYTE_LEN = 272;
  4072. {$EXTERNALSYM CAMELLIA_TABLE_WORD_LEN}
  4073. CAMELLIA_TABLE_WORD_LEN = (CAMELLIA_TABLE_BYTE_LEN / 4);
  4074. {$ENDIF}
  4075. //whrlpool.h
  4076. {$EXTERNALSYM WHIRLPOOL_DIGEST_LENGTH}
  4077. WHIRLPOOL_DIGEST_LENGTH = (512 div 8);
  4078. {$EXTERNALSYM WHIRLPOOL_BBLOCK}
  4079. WHIRLPOOL_BBLOCK = 512;
  4080. {$EXTERNALSYM WHIRLPOOL_COUNTER}
  4081. WHIRLPOOL_COUNTER = (256 div 8);
  4082. {$IFNDEF OPENSSL_NO_MD2}
  4083. {$EXTERNALSYM MD2_BLOCK}
  4084. MD2_BLOCK = 16;
  4085. {$EXTERNALSYM MD2_DIGEST_LENGTH}
  4086. MD2_DIGEST_LENGTH = 16;
  4087. {$ENDIF}
  4088. {$IFNDEF OPENSSL_NO_MD4}
  4089. {$EXTERNALSYM MD4_CBLOCK}
  4090. MD4_CBLOCK = 64;
  4091. {$EXTERNALSYM MD4_LBLOCK}
  4092. MD4_LBLOCK = (MD4_CBLOCK div 4);
  4093. {$EXTERNALSYM MD4_DIGEST_LENGTH}
  4094. MD4_DIGEST_LENGTH = 16;
  4095. {$ENDIF}
  4096. {$IFNDEF OPENSSL_NO_MD5}
  4097. {$EXTERNALSYM MD5_CBLOCK}
  4098. MD5_CBLOCK = 64;
  4099. {$EXTERNALSYM MD5_LBLOCK}
  4100. MD5_LBLOCK = 16; //(MD5_CBLOCK/4);
  4101. {$EXTERNALSYM MD5_DIGEST_LENGTH}
  4102. MD5_DIGEST_LENGTH = 16;
  4103. {$ENDIF}
  4104. {$IFNDEF OPENSSL_NO_MDC2}
  4105. {$EXTERNALSYM OPENSSL_MDC2_BLOCK}
  4106. OPENSSL_MDC2_BLOCK = 8;
  4107. {$EXTERNALSYM OPENSSL_MDC2_DIGEST_LENGTH}
  4108. OPENSSL_MDC2_DIGEST_LENGTH = 16;
  4109. {$ENDIF}
  4110. {$IFNDEF OPENSSL_NO_SHA}
  4111. {$EXTERNALSYM SHA_LBLOCK}
  4112. SHA_LBLOCK = 16;
  4113. {$EXTERNALSYM SHA_CBLOCK}
  4114. SHA_CBLOCK = 64; //(SHA_LBLOCK * 4);
  4115. {$EXTERNALSYM SHA_DIGEST_LENGTH}
  4116. SHA_DIGEST_LENGTH = 20;
  4117. {$EXTERNALSYM SHA_LAST_BLOCK}
  4118. SHA_LAST_BLOCK = ( SHA_CBLOCK -8);
  4119. {$EXTERNALSYM SHA256_CBLOCK}
  4120. SHA256_CBLOCK = ( SHA_LBLOCK * 4);
  4121. {$EXTERNALSYM SHA224_DIGEST_LENGTH}
  4122. SHA224_DIGEST_LENGTH = 28;
  4123. {$EXTERNALSYM SHA256_DIGEST_LENGTH}
  4124. SHA256_DIGEST_LENGTH = 32;
  4125. {$EXTERNALSYM SHA384_DIGEST_LENGTH}
  4126. SHA384_DIGEST_LENGTH = 48;
  4127. {$EXTERNALSYM SHA512_DIGEST_LENGTH}
  4128. SHA512_DIGEST_LENGTH = 64;
  4129. {$IFNDEF OPENSSL_NO_SHA512}
  4130. {$EXTERNALSYM SHA512_CBLOCK}
  4131. SHA512_CBLOCK = (SHA_LBLOCK*8);
  4132. {$ENDIF}
  4133. {$ENDIF}
  4134. {$EXTERNALSYM LN_SMIMECapabilities}
  4135. LN_SMIMECapabilities = 'S/MIME Capabilities'; {Do not localize}
  4136. {$EXTERNALSYM LN_X500}
  4137. LN_X500 = 'X500'; {Do not localize}
  4138. {$EXTERNALSYM LN_X509}
  4139. LN_X509 = 'X509'; {Do not localize}
  4140. {$EXTERNALSYM LN_algorithm}
  4141. LN_algorithm = 'algorithm'; {Do not localize}
  4142. {$EXTERNALSYM LN_authority_key_identifier}
  4143. LN_authority_key_identifier = 'X509v3 Authority Key Identifier'; {Do not localize}
  4144. {$EXTERNALSYM LN_basic_constraints}
  4145. LN_basic_constraints = 'X509v3 Basic Constraints'; {Do not localize}
  4146. {$EXTERNALSYM LN_bf_cbc}
  4147. LN_bf_cbc = 'bf-cbc'; {Do not localize}
  4148. {$EXTERNALSYM LN_bf_cfb64}
  4149. LN_bf_cfb64 = 'bf-cfb'; {Do not localize}
  4150. {$EXTERNALSYM LN_bf_ecb}
  4151. LN_bf_ecb = 'bf-ecb'; {Do not localize}
  4152. {$EXTERNALSYM LN_bf_ofb64}
  4153. LN_bf_ofb64 = 'bf-ofb'; {Do not localize}
  4154. {$EXTERNALSYM LN_cast5_cbc}
  4155. LN_cast5_cbc = 'cast5-cbc'; {Do not localize}
  4156. {$EXTERNALSYM LN_cast5_cfb64}
  4157. LN_cast5_cfb64 = 'cast5-cfb'; {Do not localize}
  4158. {$EXTERNALSYM LN_cast5_ecb}
  4159. LN_cast5_ecb = 'cast5-ecb'; {Do not localize}
  4160. {$EXTERNALSYM LN_cast5_ofb64}
  4161. LN_cast5_ofb64 = 'cast5-ofb'; {Do not localize}
  4162. {$EXTERNALSYM LN_certBag}
  4163. LN_certBag = 'certBag'; {Do not localize}
  4164. {$EXTERNALSYM LN_certificate_policies}
  4165. LN_certificate_policies = 'X509v3 Certificate Policies'; {Do not localize}
  4166. {$EXTERNALSYM LN_client_auth}
  4167. LN_client_auth = 'TLS Web Client Authentication'; {Do not localize}
  4168. {$EXTERNALSYM LN_code_sign}
  4169. LN_code_sign = 'Code Signing'; {Do not localize}
  4170. {$EXTERNALSYM LN_commonName}
  4171. LN_commonName = 'commonName'; {Do not localize}
  4172. {$EXTERNALSYM LN_countryName}
  4173. LN_countryName = 'countryName'; {Do not localize}
  4174. {$EXTERNALSYM LN_crlBag}
  4175. LN_crlBag = 'crlBag'; {Do not localize}
  4176. {$EXTERNALSYM LN_crl_distribution_points}
  4177. LN_crl_distribution_points = 'X509v3 CRL Distribution Points'; {Do not localize}
  4178. {$EXTERNALSYM LN_crl_number}
  4179. LN_crl_number = 'X509v3 CRL Number'; {Do not localize}
  4180. {$EXTERNALSYM LN_crl_reason}
  4181. LN_crl_reason = 'CRL Reason Code'; {Do not localize}
  4182. {$EXTERNALSYM LN_delta_crl}
  4183. LN_delta_crl = 'X509v3 Delta CRL Indicator'; {Do not localize}
  4184. {$EXTERNALSYM LN_des_cbc}
  4185. LN_des_cbc = 'des-cbc'; {Do not localize}
  4186. {$EXTERNALSYM LN_des_cfb64}
  4187. LN_des_cfb64 = 'des-cfb'; {Do not localize}
  4188. {$EXTERNALSYM LN_des_ecb}
  4189. LN_des_ecb = 'des-ecb'; {Do not localize}
  4190. {$EXTERNALSYM LN_des_ede}
  4191. LN_des_ede = 'des-ede'; {Do not localize}
  4192. {$EXTERNALSYM LN_des_ede3}
  4193. LN_des_ede3 = 'des-ede3'; {Do not localize}
  4194. {$EXTERNALSYM LN_des_ede3_cbc}
  4195. LN_des_ede3_cbc = 'des-ede3-cbc'; {Do not localize}
  4196. {$EXTERNALSYM LN_des_ede3_cfb64}
  4197. LN_des_ede3_cfb64 = 'des-ede3-cfb'; {Do not localize}
  4198. {$EXTERNALSYM LN_des_ede3_ofb64}
  4199. LN_des_ede3_ofb64 = 'des-ede3-ofb'; {Do not localize}
  4200. {$EXTERNALSYM LN_des_ede_cbc}
  4201. LN_des_ede_cbc = 'des-ede-cbc'; {Do not localize}
  4202. {$EXTERNALSYM LN_des_ede_cfb64}
  4203. LN_des_ede_cfb64 = 'des-ede-cfb'; {Do not localize}
  4204. {$EXTERNALSYM LN_des_ede_ofb64}
  4205. LN_des_ede_ofb64 = 'des-ede-ofb'; {Do not localize}
  4206. {$EXTERNALSYM LN_des_ofb64}
  4207. LN_des_ofb64 = 'des-ofb'; {Do not localize}
  4208. {$EXTERNALSYM LN_description}
  4209. LN_description = 'description'; {Do not localize}
  4210. {$EXTERNALSYM LN_desx_cbc}
  4211. LN_desx_cbc = 'desx-cbc'; {Do not localize}
  4212. {$EXTERNALSYM LN_dhKeyAgreement}
  4213. LN_dhKeyAgreement = 'dhKeyAgreement'; {Do not localize}
  4214. {$EXTERNALSYM LN_dsa}
  4215. LN_dsa = 'dsaEncryption'; {Do not localize}
  4216. {$EXTERNALSYM LN_dsaWithSHA}
  4217. LN_dsaWithSHA = 'dsaWithSHA'; {Do not localize}
  4218. {$EXTERNALSYM LN_dsaWithSHA1}
  4219. LN_dsaWithSHA1 = 'dsaWithSHA1'; {Do not localize}
  4220. {$EXTERNALSYM LN_dsaWithSHA1_2}
  4221. LN_dsaWithSHA1_2 = 'dsaWithSHA1-old'; {Do not localize}
  4222. {$EXTERNALSYM LN_dsa_2}
  4223. LN_dsa_2 = 'dsaEncryption-old'; {Do not localize}
  4224. {$EXTERNALSYM LN_email_protect}
  4225. LN_email_protect = 'E-mail Protection'; {Do not localize}
  4226. {$EXTERNALSYM LN_ext_key_usage}
  4227. LN_ext_key_usage = 'X509v3 Extended Key Usage'; {Do not localize}
  4228. {$EXTERNALSYM LN_friendlyName}
  4229. LN_friendlyName = 'friendlyName'; {Do not localize}
  4230. {$EXTERNALSYM LN_givenName}
  4231. LN_givenName = 'givenName'; {Do not localize}
  4232. {$EXTERNALSYM LN_hmacWithSHA1}
  4233. LN_hmacWithSHA1 = 'hmacWithSHA1'; {Do not localize}
  4234. {$EXTERNALSYM LN_id_pbkdf2}
  4235. LN_id_pbkdf2 = 'PBKDF2'; {Do not localize}
  4236. {$EXTERNALSYM LN_id_qt_cps}
  4237. LN_id_qt_cps = 'Policy Qualifier CPS'; {Do not localize}
  4238. {$EXTERNALSYM LN_id_qt_unotice}
  4239. LN_id_qt_unotice = 'Policy Qualifier User Notice'; {Do not localize}
  4240. {$EXTERNALSYM LN_idea_cbc}
  4241. LN_idea_cbc = 'idea-cbc'; {Do not localize}
  4242. {$EXTERNALSYM LN_idea_cfb64}
  4243. LN_idea_cfb64 = 'idea-cfb'; {Do not localize}
  4244. {$EXTERNALSYM LN_idea_ecb}
  4245. LN_idea_ecb = 'idea-ecb'; {Do not localize}
  4246. {$EXTERNALSYM LN_idea_ofb64}
  4247. LN_idea_ofb64 = 'idea-ofb'; {Do not localize}
  4248. {$EXTERNALSYM LN_initials}
  4249. LN_initials = 'initials'; {Do not localize}
  4250. {$EXTERNALSYM LN_invalidity_date}
  4251. LN_invalidity_date = 'Invalidity Date'; {Do not localize}
  4252. {$EXTERNALSYM LN_issuer_alt_name}
  4253. LN_issuer_alt_name = 'X509v3 Issuer Alternative Name'; {Do not localize}
  4254. {$EXTERNALSYM LN_keyBag}
  4255. LN_keyBag = 'keyBag'; {Do not localize}
  4256. {$EXTERNALSYM LN_key_usage}
  4257. LN_key_usage = 'X509v3 Key Usage'; {Do not localize}
  4258. {$EXTERNALSYM LN_localKeyID}
  4259. LN_localKeyID = 'localKeyID'; {Do not localize}
  4260. {$EXTERNALSYM LN_localityName}
  4261. LN_localityName = 'localityName'; {Do not localize}
  4262. {$EXTERNALSYM LN_md2}
  4263. LN_md2 = 'md2'; {Do not localize}
  4264. {$EXTERNALSYM LN_md2WithRSAEncryption}
  4265. LN_md2WithRSAEncryption = 'md2WithRSAEncryption'; {Do not localize}
  4266. {$EXTERNALSYM LN_md4}
  4267. LN_md4 = 'md4'; {Do not localize}
  4268. {$EXTERNALSYM LN_md5}
  4269. LN_md5 = 'md5'; {Do not localize}
  4270. {$EXTERNALSYM LN_md5WithRSA}
  4271. LN_md5WithRSA = 'md5WithRSA'; {Do not localize}
  4272. {$EXTERNALSYM LN_md5WithRSAEncryption}
  4273. LN_md5WithRSAEncryption = 'md5WithRSAEncryption'; {Do not localize}
  4274. {$EXTERNALSYM LN_md5_sha1}
  4275. LN_md5_sha1 = 'md5-sha1'; {Do not localize}
  4276. {$EXTERNALSYM LN_mdc2}
  4277. LN_mdc2 = 'mdc2'; {Do not localize}
  4278. {$EXTERNALSYM LN_mdc2WithRSA}
  4279. LN_mdc2WithRSA = 'mdc2withRSA'; {Do not localize}
  4280. {$EXTERNALSYM LN_ms_code_com}
  4281. LN_ms_code_com = 'Microsoft Commercial Code Signing'; {Do not localize}
  4282. {$EXTERNALSYM LN_ms_code_ind}
  4283. LN_ms_code_ind = 'Microsoft Individual Code Signing'; {Do not localize}
  4284. {$EXTERNALSYM LN_ms_ctl_sign}
  4285. LN_ms_ctl_sign = 'Microsoft Trust List Signing'; {Do not localize}
  4286. {$EXTERNALSYM LN_ms_efs}
  4287. LN_ms_efs = 'Microsoft Encrypted File System'; {Do not localize}
  4288. {$EXTERNALSYM LN_ms_sgc}
  4289. LN_ms_sgc = 'Microsoft Server Gated Crypto'; {Do not localize}
  4290. {$EXTERNALSYM LN_netscape}
  4291. LN_netscape = 'Netscape Communications Corp.'; {Do not localize}
  4292. {$EXTERNALSYM LN_netscape_base_url}
  4293. LN_netscape_base_url = 'Netscape Base Url'; {Do not localize}
  4294. {$EXTERNALSYM LN_netscape_ca_policy_url}
  4295. LN_netscape_ca_policy_url = 'Netscape CA Policy Url'; {Do not localize}
  4296. {$EXTERNALSYM LN_netscape_ca_revocation_url}
  4297. LN_netscape_ca_revocation_url = 'Netscape CA Revocation Url'; {Do not localize}
  4298. {$EXTERNALSYM LN_netscape_cert_extension}
  4299. LN_netscape_cert_extension = 'Netscape Certificate Extension'; {Do not localize}
  4300. {$EXTERNALSYM LN_netscape_cert_sequence}
  4301. LN_netscape_cert_sequence = 'Netscape Certificate Sequence'; {Do not localize}
  4302. {$EXTERNALSYM LN_netscape_cert_type}
  4303. LN_netscape_cert_type = 'Netscape Cert Type'; {Do not localize}
  4304. {$EXTERNALSYM LN_netscape_comment}
  4305. LN_netscape_comment = 'Netscape Comment'; {Do not localize}
  4306. {$EXTERNALSYM LN_netscape_data_type}
  4307. LN_netscape_data_type = 'Netscape Data Type'; {Do not localize}
  4308. {$EXTERNALSYM LN_netscape_renewal_url}
  4309. LN_netscape_renewal_url = 'Netscape Renewal Url'; {Do not localize}
  4310. {$EXTERNALSYM LN_netscape_revocation_url}
  4311. LN_netscape_revocation_url = 'Netscape Revocation Url'; {Do not localize}
  4312. {$EXTERNALSYM LN_netscape_ssl_server_name}
  4313. LN_netscape_ssl_server_name = 'Netscape SSL Server Name'; {Do not localize}
  4314. {$EXTERNALSYM LN_ns_sgc}
  4315. LN_ns_sgc = 'Netscape Server Gated Crypto'; {Do not localize}
  4316. {$EXTERNALSYM LN_organizationName}
  4317. LN_organizationName = 'organizationName'; {Do not localize}
  4318. {$EXTERNALSYM LN_organizationalUnitName}
  4319. LN_organizationalUnitName = 'organizationalUnitName'; {Do not localize}
  4320. {$EXTERNALSYM LN_pbeWithMD2AndDES_CBC}
  4321. LN_pbeWithMD2AndDES_CBC = 'pbeWithMD2AndDES-CBC'; {Do not localize}
  4322. {$EXTERNALSYM LN_pbeWithMD2AndRC2_CBC}
  4323. LN_pbeWithMD2AndRC2_CBC = 'pbeWithMD2AndRC2-CBC'; {Do not localize}
  4324. {$EXTERNALSYM LN_pbeWithMD5AndCast5_CBC}
  4325. LN_pbeWithMD5AndCast5_CBC = 'pbeWithMD5AndCast5CBC'; {Do not localize}
  4326. {$EXTERNALSYM LN_pbeWithMD5AndDES_CBC}
  4327. LN_pbeWithMD5AndDES_CBC = 'pbeWithMD5AndDES-CBC'; {Do not localize}
  4328. {$EXTERNALSYM LN_pbeWithMD5AndRC2_CBC}
  4329. LN_pbeWithMD5AndRC2_CBC = 'pbeWithMD5AndRC2-CBC'; {Do not localize}
  4330. {$EXTERNALSYM LN_pbeWithSHA1AndDES_CBC}
  4331. LN_pbeWithSHA1AndDES_CBC = 'pbeWithSHA1AndDES-CBC'; {Do not localize}
  4332. {$EXTERNALSYM LN_pbeWithSHA1AndRC2_CBC}
  4333. LN_pbeWithSHA1AndRC2_CBC = 'pbeWithSHA1AndRC2-CBC'; {Do not localize}
  4334. {$EXTERNALSYM LN_pbe_WithSHA1And128BitRC2_CBC}
  4335. LN_pbe_WithSHA1And128BitRC2_CBC = 'pbeWithSHA1And128BitRC2-CBC'; {Do not localize}
  4336. {$EXTERNALSYM LN_pbe_WithSHA1And128BitRC4}
  4337. LN_pbe_WithSHA1And128BitRC4 = 'pbeWithSHA1And128BitRC4'; {Do not localize}
  4338. {$EXTERNALSYM LN_pbe_WithSHA1And2_Key_TripleDES_CBC}
  4339. LN_pbe_WithSHA1And2_Key_TripleDES_CBC = 'pbeWithSHA1And2-KeyTripleDES-CBC'; {Do not localize}
  4340. {$EXTERNALSYM LN_pbe_WithSHA1And3_Key_TripleDES_CBC}
  4341. LN_pbe_WithSHA1And3_Key_TripleDES_CBC = 'pbeWithSHA1And3-KeyTripleDES-CBC'; {Do not localize}
  4342. {$EXTERNALSYM LN_pbe_WithSHA1And40BitRC2_CBC}
  4343. LN_pbe_WithSHA1And40BitRC2_CBC = 'pbeWithSHA1And40BitRC2-CBC'; {Do not localize}
  4344. {$EXTERNALSYM LN_pbe_WithSHA1And40BitRC4}
  4345. LN_pbe_WithSHA1And40BitRC4 = 'pbeWithSHA1And40BitRC4'; {Do not localize}
  4346. {$EXTERNALSYM LN_pbes2}
  4347. LN_pbes2 = 'PBES2'; {Do not localize}
  4348. {$EXTERNALSYM LN_pbmac1}
  4349. LN_pbmac1 = 'PBMAC1'; {Do not localize}
  4350. {$EXTERNALSYM LN_pkcs}
  4351. LN_pkcs = 'pkcs'; {Do not localize}
  4352. {$EXTERNALSYM LN_pkcs3}
  4353. LN_pkcs3 = 'pkcs3'; {Do not localize}
  4354. {$EXTERNALSYM LN_pkcs7}
  4355. LN_pkcs7 = 'pkcs7'; {Do not localize}
  4356. {$EXTERNALSYM LN_pkcs7_data}
  4357. LN_pkcs7_data = 'pkcs7-data'; {Do not localize}
  4358. {$EXTERNALSYM LN_pkcs7_digest}
  4359. LN_pkcs7_digest = 'pkcs7-digestData'; {Do not localize}
  4360. {$EXTERNALSYM LN_pkcs7_encrypted}
  4361. LN_pkcs7_encrypted = 'pkcs7-encryptedData'; {Do not localize}
  4362. {$EXTERNALSYM LN_pkcs7_enveloped}
  4363. LN_pkcs7_enveloped = 'pkcs7-envelopedData'; {Do not localize}
  4364. {$EXTERNALSYM LN_pkcs7_signed}
  4365. LN_pkcs7_signed = 'pkcs7-signedData'; {Do not localize}
  4366. {$EXTERNALSYM LN_pkcs7_signedAndEnveloped}
  4367. LN_pkcs7_signedAndEnveloped = 'pkcs7-signedAndEnvelopedData'; {Do not localize}
  4368. {$EXTERNALSYM LN_pkcs8ShroudedKeyBag}
  4369. LN_pkcs8ShroudedKeyBag = 'pkcs8ShroudedKeyBag'; {Do not localize}
  4370. {$EXTERNALSYM LN_pkcs9}
  4371. LN_pkcs9 = 'pkcs9'; {Do not localize}
  4372. {$EXTERNALSYM LN_pkcs9_challengePassword}
  4373. LN_pkcs9_challengePassword = 'challengePassword'; {Do not localize}
  4374. {$EXTERNALSYM LN_pkcs9_contentType}
  4375. LN_pkcs9_contentType = 'contentType'; {Do not localize}
  4376. {$EXTERNALSYM LN_pkcs9_countersignature}
  4377. LN_pkcs9_countersignature = 'countersignature'; {Do not localize}
  4378. {$EXTERNALSYM LN_pkcs9_emailAddress}
  4379. LN_pkcs9_emailAddress = 'emailAddress'; {Do not localize}
  4380. {$EXTERNALSYM LN_pkcs9_extCertAttributes}
  4381. LN_pkcs9_extCertAttributes = 'extendedCertificateAttributes'; {Do not localize}
  4382. {$EXTERNALSYM LN_pkcs9_messageDigest}
  4383. LN_pkcs9_messageDigest = 'messageDigest'; {Do not localize}
  4384. {$EXTERNALSYM LN_pkcs9_signingTime}
  4385. LN_pkcs9_signingTime = 'signingTime'; {Do not localize}
  4386. {$EXTERNALSYM LN_pkcs9_unstructuredAddress}
  4387. LN_pkcs9_unstructuredAddress = 'unstructuredAddress'; {Do not localize}
  4388. {$EXTERNALSYM LN_pkcs9_unstructuredName}
  4389. LN_pkcs9_unstructuredName = 'unstructuredName'; {Do not localize}
  4390. {$EXTERNALSYM LN_private_key_usage_period}
  4391. LN_private_key_usage_period = 'X509v3 Private Key Usage Period'; {Do not localize}
  4392. {$EXTERNALSYM LN_rc2_40_cbc}
  4393. LN_rc2_40_cbc = 'rc2-40-cbc'; {Do not localize}
  4394. {$EXTERNALSYM LN_rc2_64_cbc}
  4395. LN_rc2_64_cbc = 'rc2-64-cbc'; {Do not localize}
  4396. {$EXTERNALSYM LN_rc2_cbc}
  4397. LN_rc2_cbc = 'rc2-cbc'; {Do not localize}
  4398. {$EXTERNALSYM LN_rc2_cfb64}
  4399. LN_rc2_cfb64 = 'rc2-cfb'; {Do not localize}
  4400. {$EXTERNALSYM LN_rc2_ecb}
  4401. LN_rc2_ecb = 'rc2-ecb'; {Do not localize}
  4402. {$EXTERNALSYM LN_rc2_ofb64}
  4403. LN_rc2_ofb64 = 'rc2-ofb'; {Do not localize}
  4404. {$EXTERNALSYM LN_rc4}
  4405. LN_rc4 = 'rc4'; {Do not localize}
  4406. {$EXTERNALSYM LN_rc4_40}
  4407. LN_rc4_40 = 'rc4-40'; {Do not localize}
  4408. {$EXTERNALSYM LN_rc5_cbc}
  4409. LN_rc5_cbc = 'rc5-cbc'; {Do not localize}
  4410. {$EXTERNALSYM LN_rc5_cfb64}
  4411. LN_rc5_cfb64 = 'rc5-cfb'; {Do not localize}
  4412. {$EXTERNALSYM LN_rc5_ecb}
  4413. LN_rc5_ecb = 'rc5-ecb'; {Do not localize}
  4414. {$EXTERNALSYM LN_rc5_ofb64}
  4415. LN_rc5_ofb64 = 'rc5-ofb'; {Do not localize}
  4416. {$EXTERNALSYM LN_ripemd160}
  4417. LN_ripemd160 = 'ripemd160'; {Do not localize}
  4418. {$EXTERNALSYM LN_ripemd160WithRSA}
  4419. LN_ripemd160WithRSA = 'ripemd160WithRSA'; {Do not localize}
  4420. {$EXTERNALSYM LN_rle_compression}
  4421. LN_rle_compression = 'run length compression'; {Do not localize}
  4422. {$EXTERNALSYM LN_rsa}
  4423. LN_rsa = 'rsa'; {Do not localize}
  4424. {$EXTERNALSYM LN_rsaEncryption}
  4425. LN_rsaEncryption = 'rsaEncryption'; {Do not localize}
  4426. {$EXTERNALSYM LN_rsadsi}
  4427. LN_rsadsi = 'rsadsi'; {Do not localize}
  4428. {$EXTERNALSYM LN_safeContentsBag}
  4429. LN_safeContentsBag = 'safeContentsBag'; {Do not localize}
  4430. {$EXTERNALSYM LN_sdsiCertificate}
  4431. LN_sdsiCertificate = 'sdsiCertificate'; {Do not localize}
  4432. {$EXTERNALSYM LN_secretBag}
  4433. LN_secretBag = 'secretBag'; {Do not localize}
  4434. {$EXTERNALSYM LN_serialNumber}
  4435. LN_serialNumber = 'serialNumber'; {Do not localize}
  4436. {$EXTERNALSYM LN_server_auth}
  4437. LN_server_auth = 'TLS Web Server Authentication'; {Do not localize}
  4438. {$EXTERNALSYM LN_sha}
  4439. LN_sha = 'sha'; {Do not localize}
  4440. {$EXTERNALSYM LN_sha1}
  4441. LN_sha1 = 'sha1'; {Do not localize}
  4442. {$EXTERNALSYM LN_sha1WithRSA}
  4443. LN_sha1WithRSA = 'sha1WithRSA'; {Do not localize}
  4444. {$EXTERNALSYM LN_sha1WithRSAEncryption}
  4445. LN_sha1WithRSAEncryption = 'sha1WithRSAEncryption'; {Do not localize}
  4446. {$EXTERNALSYM LN_shaWithRSAEncryption}
  4447. LN_shaWithRSAEncryption = 'shaWithRSAEncryption'; {Do not localize}
  4448. {$EXTERNALSYM LN_sha256WithRSAEncryption}
  4449. LN_sha256WithRSAEncryption = 'sha256WithRSAEncryption'; {Do not localize}
  4450. {$EXTERNALSYM LN_sha384WithRSAEncryption}
  4451. LN_sha384WithRSAEncryption = 'sha384WithRSAEncryption'; {Do not localize}
  4452. {$EXTERNALSYM LN_sha512WithRSAEncryption}
  4453. LN_sha512WithRSAEncryption = 'sha512WithRSAEncryption'; {do not localize}
  4454. {$EXTERNALSYM LN_sha224WithRSAEncryption}
  4455. LN_sha224WithRSAEncryption = 'sha224WithRSAEncryption'; {Do not localize}
  4456. {$EXTERNALSYM LN_stateOrProvinceName}
  4457. LN_stateOrProvinceName = 'stateOrProvinceName'; {Do not localize}
  4458. {$EXTERNALSYM LN_subject_alt_name}
  4459. LN_subject_alt_name = 'X509v3 Subject Alternative Name'; {Do not localize}
  4460. {$EXTERNALSYM LN_subject_key_identifier}
  4461. LN_subject_key_identifier = 'X509v3 Subject Key Identifier'; {Do not localize}
  4462. {$EXTERNALSYM LN_surname}
  4463. LN_surname = 'surname'; {Do not localize}
  4464. {$EXTERNALSYM LN_sxnet}
  4465. LN_sxnet = 'Strong Extranet ID'; {Do not localize}
  4466. {$EXTERNALSYM LN_time_stamp}
  4467. LN_time_stamp = 'Time Stamping'; {Do not localize}
  4468. {$EXTERNALSYM LN_title}
  4469. LN_title = 'title'; {Do not localize}
  4470. {$EXTERNALSYM LN_undef}
  4471. LN_undef = 'undefined'; {Do not localize}
  4472. {$EXTERNALSYM LN_uniqueIdentifier}
  4473. LN_uniqueIdentifier = 'uniqueIdentifier'; {Do not localize}
  4474. {$EXTERNALSYM LN_x509Certificate}
  4475. LN_x509Certificate = 'x509Certificate'; {Do not localize}
  4476. {$EXTERNALSYM LN_x509Crl}
  4477. LN_x509Crl = 'x509Crl'; {Do not localize}
  4478. {$EXTERNALSYM LN_zlib_compression}
  4479. LN_zlib_compression = 'zlib compression'; {Do not localize}
  4480. {$EXTERNALSYM NID_SMIMECapabilities}
  4481. NID_SMIMECapabilities = 167;
  4482. {$EXTERNALSYM NID_X500}
  4483. NID_X500 = 11;
  4484. {$EXTERNALSYM NID_X509}
  4485. NID_X509 = 12;
  4486. {$EXTERNALSYM NID_algorithm}
  4487. NID_algorithm = 38;
  4488. {$EXTERNALSYM NID_authority_key_identifier}
  4489. NID_authority_key_identifier = 90;
  4490. {$EXTERNALSYM NID_basic_constraints}
  4491. NID_basic_constraints = 87;
  4492. {$EXTERNALSYM NID_bf_cbc}
  4493. NID_bf_cbc = 91;
  4494. {$EXTERNALSYM NID_bf_cfb64}
  4495. NID_bf_cfb64 = 93;
  4496. {$EXTERNALSYM NID_bf_ecb}
  4497. NID_bf_ecb = 92;
  4498. {$EXTERNALSYM NID_bf_ofb64}
  4499. NID_bf_ofb64 = 94;
  4500. {$EXTERNALSYM NID_cast5_cbc}
  4501. NID_cast5_cbc = 108;
  4502. {$EXTERNALSYM NID_cast5_cfb64}
  4503. NID_cast5_cfb64 = 110;
  4504. {$EXTERNALSYM NID_cast5_ecb}
  4505. NID_cast5_ecb = 109;
  4506. {$EXTERNALSYM NID_cast5_ofb64}
  4507. NID_cast5_ofb64 = 111;
  4508. {$EXTERNALSYM NID_certBag}
  4509. NID_certBag = 152;
  4510. {$EXTERNALSYM NID_certificate_policies}
  4511. NID_certificate_policies = 89;
  4512. {$EXTERNALSYM NID_client_auth}
  4513. NID_client_auth = 130;
  4514. {$EXTERNALSYM NID_code_sign}
  4515. NID_code_sign = 131;
  4516. {$EXTERNALSYM NID_commonName}
  4517. NID_commonName = 13;
  4518. {$EXTERNALSYM NID_countryName}
  4519. NID_countryName = 14;
  4520. {$EXTERNALSYM NID_crlBag}
  4521. NID_crlBag = 153;
  4522. {$EXTERNALSYM NID_crl_distribution_points}
  4523. NID_crl_distribution_points = 103;
  4524. {$EXTERNALSYM NID_crl_number}
  4525. NID_crl_number = 88;
  4526. {$EXTERNALSYM NID_crl_reason}
  4527. NID_crl_reason = 141;
  4528. {$EXTERNALSYM NID_delta_crl}
  4529. NID_delta_crl = 140;
  4530. {$EXTERNALSYM NID_des_cbc}
  4531. NID_des_cbc = 31;
  4532. {$EXTERNALSYM NID_des_cfb64}
  4533. NID_des_cfb64 = 30;
  4534. {$EXTERNALSYM NID_des_ecb}
  4535. NID_des_ecb = 29;
  4536. {$EXTERNALSYM NID_des_ede}
  4537. NID_des_ede = 32;
  4538. {$EXTERNALSYM NID_des_ede3}
  4539. NID_des_ede3 = 33;
  4540. {$EXTERNALSYM NID_des_ede3_cbc}
  4541. NID_des_ede3_cbc = 44;
  4542. {$EXTERNALSYM NID_des_ede3_cfb64}
  4543. NID_des_ede3_cfb64 = 61;
  4544. {$EXTERNALSYM NID_des_ede3_ofb64}
  4545. NID_des_ede3_ofb64 = 63;
  4546. {$EXTERNALSYM NID_des_ede_cbc}
  4547. NID_des_ede_cbc = 43;
  4548. {$EXTERNALSYM NID_des_ede_cfb64}
  4549. NID_des_ede_cfb64 = 60;
  4550. {$EXTERNALSYM NID_des_ede_ofb64}
  4551. NID_des_ede_ofb64 = 62;
  4552. {$EXTERNALSYM NID_des_ofb64}
  4553. NID_des_ofb64 = 45;
  4554. {$EXTERNALSYM NID_description}
  4555. NID_description = 107;
  4556. {$EXTERNALSYM NID_desx_cbc}
  4557. NID_desx_cbc = 80;
  4558. {$EXTERNALSYM NID_email_protect}
  4559. NID_email_protect = 132;
  4560. {$EXTERNALSYM NID_ext_key_usage}
  4561. NID_ext_key_usage = 126;
  4562. {$EXTERNALSYM NID_friendlyName}
  4563. NID_friendlyName = 156;
  4564. {$EXTERNALSYM NID_givenName}
  4565. NID_givenName = 99;
  4566. {$EXTERNALSYM NID_hmacWithSHA1}
  4567. NID_hmacWithSHA1 = 163;
  4568. {$EXTERNALSYM NID_id_kp}
  4569. NID_id_kp = 128;
  4570. {$EXTERNALSYM NID_id_pbkdf2}
  4571. NID_id_pbkdf2 = 69;
  4572. {$EXTERNALSYM NID_id_pkix}
  4573. NID_id_pkix = 127;
  4574. {$EXTERNALSYM NID_id_qt_cps}
  4575. NID_id_qt_cps = 164;
  4576. {$EXTERNALSYM NID_id_qt_unotice}
  4577. NID_id_qt_unotice = 165;
  4578. {$EXTERNALSYM NID_idea_cbc}
  4579. NID_idea_cbc = 34;
  4580. {$EXTERNALSYM NID_idea_cfb64}
  4581. NID_idea_cfb64 = 35;
  4582. {$EXTERNALSYM NID_idea_ecb}
  4583. NID_idea_ecb = 36;
  4584. {$EXTERNALSYM NID_idea_ofb64}
  4585. NID_idea_ofb64 = 46;
  4586. {$EXTERNALSYM NID_initials}
  4587. NID_initials = 101;
  4588. {$EXTERNALSYM NID_invalidity_date}
  4589. NID_invalidity_date = 142;
  4590. {$EXTERNALSYM NID_issuer_alt_name}
  4591. NID_issuer_alt_name = 86;
  4592. {$EXTERNALSYM NID_keyBag}
  4593. NID_keyBag = 150;
  4594. {$EXTERNALSYM NID_key_usage}
  4595. NID_key_usage = 83;
  4596. {$EXTERNALSYM NID_ld_ce}
  4597. NID_ld_ce = 81;
  4598. {$EXTERNALSYM NID_localKeyID}
  4599. NID_localKeyID = 157;
  4600. {$EXTERNALSYM NID_localityName}
  4601. NID_localityName = 15;
  4602. {$EXTERNALSYM NID_md2}
  4603. NID_md2 = 3;
  4604. {$EXTERNALSYM NID_md2WithRSAEncryption}
  4605. NID_md2WithRSAEncryption = 7;
  4606. {$EXTERNALSYM NID_md4}
  4607. NID_md4 = 257;
  4608. {$EXTERNALSYM NID_md4WithRSAEncryption}
  4609. NID_md4WithRSAEncryption = 396;
  4610. {$EXTERNALSYM NID_md5}
  4611. NID_md5 = 4;
  4612. {$EXTERNALSYM NID_md5WithRSA}
  4613. NID_md5WithRSA = 104;
  4614. {$EXTERNALSYM NID_md5WithRSAEncryption}
  4615. NID_md5WithRSAEncryption = 8;
  4616. {$EXTERNALSYM NID_md5_sha1}
  4617. NID_md5_sha1 = 114;
  4618. {$EXTERNALSYM NID_mdc2}
  4619. NID_mdc2 = 95;
  4620. {$EXTERNALSYM NID_mdc2WithRSA}
  4621. NID_mdc2WithRSA = 96;
  4622. {$EXTERNALSYM NID_ms_code_com}
  4623. NID_ms_code_com = 135;
  4624. {$EXTERNALSYM NID_ms_code_ind}
  4625. NID_ms_code_ind = 134;
  4626. {$EXTERNALSYM NID_ms_ctl_sign}
  4627. NID_ms_ctl_sign = 136;
  4628. {$EXTERNALSYM NID_ms_efs}
  4629. NID_ms_efs = 138;
  4630. {$EXTERNALSYM NID_ms_sgc}
  4631. NID_ms_sgc = 137;
  4632. {$EXTERNALSYM NID_netscape}
  4633. NID_netscape = 57;
  4634. {$EXTERNALSYM NID_netscape_base_url}
  4635. NID_netscape_base_url = 72;
  4636. {$EXTERNALSYM NID_netscape_ca_policy_url}
  4637. NID_netscape_ca_policy_url = 76;
  4638. {$EXTERNALSYM NID_netscape_ca_revocation_url}
  4639. NID_netscape_ca_revocation_url = 74;
  4640. {$EXTERNALSYM NID_netscape_cert_extension}
  4641. NID_netscape_cert_extension = 58;
  4642. {$EXTERNALSYM NID_netscape_cert_sequence}
  4643. NID_netscape_cert_sequence = 79;
  4644. {$EXTERNALSYM NID_netscape_cert_type}
  4645. NID_netscape_cert_type = 71;
  4646. {$EXTERNALSYM NID_netscape_comment}
  4647. NID_netscape_comment = 78;
  4648. {$EXTERNALSYM NID_netscape_data_type}
  4649. NID_netscape_data_type = 59;
  4650. {$EXTERNALSYM NID_netscape_renewal_url}
  4651. NID_netscape_renewal_url = 75;
  4652. {$EXTERNALSYM NID_netscape_revocation_url}
  4653. NID_netscape_revocation_url = 73;
  4654. {$EXTERNALSYM NID_netscape_ssl_server_name}
  4655. NID_netscape_ssl_server_name = 77;
  4656. {$EXTERNALSYM NID_ns_sgc}
  4657. NID_ns_sgc = 139;
  4658. {$EXTERNALSYM NID_organizationName}
  4659. NID_organizationName = 17;
  4660. {$EXTERNALSYM NID_organizationalUnitName}
  4661. NID_organizationalUnitName = 18;
  4662. {$EXTERNALSYM NID_pbeWithMD2AndDES_CBC}
  4663. NID_pbeWithMD2AndDES_CBC = 9;
  4664. {$EXTERNALSYM NID_pbeWithMD2AndRC2_CBC}
  4665. NID_pbeWithMD2AndRC2_CBC = 168;
  4666. {$EXTERNALSYM NID_pbeWithMD5AndCast5_CBC}
  4667. NID_pbeWithMD5AndCast5_CBC = 112;
  4668. {$EXTERNALSYM NID_pbeWithMD5AndDES_CBC}
  4669. NID_pbeWithMD5AndDES_CBC = 10;
  4670. {$EXTERNALSYM NID_pbeWithMD5AndRC2_CBC}
  4671. NID_pbeWithMD5AndRC2_CBC = 169;
  4672. {$EXTERNALSYM NID_pbeWithSHA1AndDES_CBC}
  4673. NID_pbeWithSHA1AndDES_CBC = 170;
  4674. {$EXTERNALSYM NID_pbeWithSHA1AndRC2_CBC}
  4675. NID_pbeWithSHA1AndRC2_CBC = 68;
  4676. {$EXTERNALSYM NID_pbe_WithSHA1And128BitRC2_CBC}
  4677. NID_pbe_WithSHA1And128BitRC2_CBC = 148;
  4678. {$EXTERNALSYM NID_pbe_WithSHA1And128BitRC4}
  4679. NID_pbe_WithSHA1And128BitRC4 = 144;
  4680. {$EXTERNALSYM NID_pbe_WithSHA1And2_Key_TripleDES_CBC}
  4681. NID_pbe_WithSHA1And2_Key_TripleDES_CBC = 147;
  4682. {$EXTERNALSYM NID_pbe_WithSHA1And3_Key_TripleDES_CBC}
  4683. NID_pbe_WithSHA1And3_Key_TripleDES_CBC = 146;
  4684. {$EXTERNALSYM NID_pbe_WithSHA1And40BitRC2_CBC}
  4685. NID_pbe_WithSHA1And40BitRC2_CBC = 149;
  4686. {$EXTERNALSYM NID_pbe_WithSHA1And40BitRC4}
  4687. NID_pbe_WithSHA1And40BitRC4 = 145;
  4688. {$EXTERNALSYM NID_pbes2}
  4689. NID_pbes2 = 161;
  4690. {$EXTERNALSYM NID_pbmac1}
  4691. NID_pbmac1 = 162;
  4692. {$EXTERNALSYM NID_pkcs}
  4693. NID_pkcs = 2;
  4694. {$EXTERNALSYM NID_pkcs3}
  4695. NID_pkcs3 = 27;
  4696. {$EXTERNALSYM NID_pkcs7}
  4697. NID_pkcs7 = 20;
  4698. {$EXTERNALSYM NID_pkcs7_data}
  4699. NID_pkcs7_data = 21;
  4700. {$EXTERNALSYM NID_pkcs7_digest}
  4701. NID_pkcs7_digest = 25;
  4702. {$EXTERNALSYM NID_pkcs7_encrypted}
  4703. NID_pkcs7_encrypted = 26;
  4704. {$EXTERNALSYM NID_pkcs7_enveloped}
  4705. NID_pkcs7_enveloped = 23;
  4706. {$EXTERNALSYM NID_pkcs7_signed}
  4707. NID_pkcs7_signed = 22;
  4708. {$EXTERNALSYM NID_pkcs7_signedAndEnveloped}
  4709. NID_pkcs7_signedAndEnveloped = 24;
  4710. {$EXTERNALSYM NID_pkcs8ShroudedKeyBag}
  4711. NID_pkcs8ShroudedKeyBag = 151;
  4712. {$EXTERNALSYM NID_pkcs9}
  4713. NID_pkcs9 = 47;
  4714. {$EXTERNALSYM NID_pkcs9_challengePassword}
  4715. NID_pkcs9_challengePassword = 54;
  4716. {$EXTERNALSYM NID_pkcs9_contentType}
  4717. NID_pkcs9_contentType = 50;
  4718. {$EXTERNALSYM NID_pkcs9_countersignature}
  4719. NID_pkcs9_countersignature = 53;
  4720. {$EXTERNALSYM NID_pkcs9_emailAddress}
  4721. NID_pkcs9_emailAddress = 48;
  4722. {$EXTERNALSYM NID_pkcs9_extCertAttributes}
  4723. NID_pkcs9_extCertAttributes = 56;
  4724. {$EXTERNALSYM NID_pkcs9_messageDigest}
  4725. NID_pkcs9_messageDigest = 51;
  4726. {$EXTERNALSYM NID_pkcs9_signingTime}
  4727. NID_pkcs9_signingTime = 52;
  4728. {$EXTERNALSYM NID_pkcs9_unstructuredAddress}
  4729. NID_pkcs9_unstructuredAddress = 55;
  4730. {$EXTERNALSYM NID_pkcs9_unstructuredName}
  4731. NID_pkcs9_unstructuredName = 49;
  4732. {$EXTERNALSYM NID_private_key_usage_period}
  4733. NID_private_key_usage_period = 84;
  4734. {$EXTERNALSYM NID_rc2_40_cbc}
  4735. NID_rc2_40_cbc = 98;
  4736. {$EXTERNALSYM NID_rc2_64_cbc}
  4737. NID_rc2_64_cbc = 166;
  4738. {$EXTERNALSYM NID_rc2_cbc}
  4739. NID_rc2_cbc = 37;
  4740. {$EXTERNALSYM NID_rc2_cfb64}
  4741. NID_rc2_cfb64 = 39;
  4742. {$EXTERNALSYM NID_rc2_ecb}
  4743. NID_rc2_ecb = 38;
  4744. {$EXTERNALSYM NID_rc2_ofb64}
  4745. NID_rc2_ofb64 = 40;
  4746. {$EXTERNALSYM NID_rc4}
  4747. NID_rc4 = 5;
  4748. {$EXTERNALSYM NID_rc4_40}
  4749. NID_rc4_40 = 97;
  4750. {$EXTERNALSYM NID_rc5_cbc}
  4751. NID_rc5_cbc = 120;
  4752. {$EXTERNALSYM NID_rc5_cfb64}
  4753. NID_rc5_cfb64 = 122;
  4754. {$EXTERNALSYM NID_rc5_ecb}
  4755. NID_rc5_ecb = 121;
  4756. {$EXTERNALSYM NID_rc5_ofb64}
  4757. NID_rc5_ofb64 = 123;
  4758. {$EXTERNALSYM NID_ripemd160}
  4759. NID_ripemd160 = 117;
  4760. {$EXTERNALSYM NID_ripemd160WithRSA}
  4761. NID_ripemd160WithRSA = 119;
  4762. {$EXTERNALSYM NID_rle_compression}
  4763. NID_rle_compression = 124;
  4764. {$EXTERNALSYM NID_rsadsi}
  4765. NID_rsadsi = 1;
  4766. {$EXTERNALSYM NID_safeContentsBag}
  4767. NID_safeContentsBag = 155;
  4768. {$EXTERNALSYM NID_sdsiCertificate}
  4769. NID_sdsiCertificate = 159;
  4770. {$EXTERNALSYM NID_secretBag}
  4771. NID_secretBag = 154;
  4772. {$EXTERNALSYM NID_serialNumber}
  4773. NID_serialNumber = 105;
  4774. {$EXTERNALSYM NID_server_auth}
  4775. NID_server_auth = 129;
  4776. {$EXTERNALSYM NID_sha}
  4777. NID_sha = 41;
  4778. {$EXTERNALSYM NID_sha1}
  4779. NID_sha1 = 64;
  4780. {$EXTERNALSYM NID_sha1WithRSA}
  4781. NID_sha1WithRSA = 115;
  4782. {$EXTERNALSYM NID_sha1WithRSAEncryption}
  4783. NID_sha1WithRSAEncryption = 65;
  4784. {$EXTERNALSYM NID_sha256WithRSAEncryption}
  4785. NID_sha256WithRSAEncryption = 668;
  4786. {$EXTERNALSYM NID_sha384WithRSAEncryption}
  4787. NID_sha384WithRSAEncryption = 669;
  4788. {$EXTERNALSYM NID_sha512WithRSAEncryption}
  4789. NID_sha512WithRSAEncryption = 670;
  4790. {$EXTERNALSYM NID_sha224WithRSAEncryption}
  4791. NID_sha224WithRSAEncryption = 671;
  4792. {$EXTERNALSYM NID_shaWithRSAEncryption}
  4793. NID_shaWithRSAEncryption = 42;
  4794. {$EXTERNALSYM NID_stateOrProvinceName}
  4795. NID_stateOrProvinceName = 16;
  4796. {$EXTERNALSYM NID_subject_alt_name}
  4797. NID_subject_alt_name = 85;
  4798. {$EXTERNALSYM NID_subject_key_identifier}
  4799. NID_subject_key_identifier = 82;
  4800. {$EXTERNALSYM NID_surname}
  4801. NID_surname = 100;
  4802. {$EXTERNALSYM NID_sxnet}
  4803. NID_sxnet = 143;
  4804. {$EXTERNALSYM NID_time_stamp}
  4805. NID_time_stamp = 133;
  4806. {$EXTERNALSYM NID_title}
  4807. NID_title = 106;
  4808. {$EXTERNALSYM NID_uniqueIdentifier}
  4809. NID_uniqueIdentifier = 102;
  4810. {$EXTERNALSYM NID_x509Certificate}
  4811. NID_x509Certificate = 158;
  4812. {$EXTERNALSYM NID_x509Crl}
  4813. NID_x509Crl = 160;
  4814. {$EXTERNALSYM NID_zlib_compression}
  4815. NID_zlib_compression = 125;
  4816. {$EXTERNALSYM OBJ_F_OBJ_CREATE}
  4817. OBJ_F_OBJ_CREATE = 100;
  4818. {$EXTERNALSYM OBJ_F_OBJ_DUP}
  4819. OBJ_F_OBJ_DUP = 101;
  4820. {$EXTERNALSYM OBJ_F_OBJ_NID2LN}
  4821. OBJ_F_OBJ_NID2LN = 102;
  4822. {$EXTERNALSYM OBJ_F_OBJ_NID2OBJ}
  4823. OBJ_F_OBJ_NID2OBJ = 103;
  4824. {$EXTERNALSYM OBJ_F_OBJ_NID2SN}
  4825. OBJ_F_OBJ_NID2SN = 104;
  4826. {$EXTERNALSYM OBJ_NAME_ALIAS}
  4827. OBJ_NAME_ALIAS = $8000;
  4828. {$EXTERNALSYM OBJ_NAME_TYPE_CIPHER_METH}
  4829. OBJ_NAME_TYPE_CIPHER_METH = $02;
  4830. {$EXTERNALSYM OBJ_NAME_TYPE_COMP_METH}
  4831. OBJ_NAME_TYPE_COMP_METH = $04;
  4832. {$EXTERNALSYM OBJ_NAME_TYPE_MD_METH}
  4833. OBJ_NAME_TYPE_MD_METH = $01;
  4834. {$EXTERNALSYM OBJ_NAME_TYPE_NUM}
  4835. OBJ_NAME_TYPE_NUM = $05;
  4836. {$EXTERNALSYM OBJ_NAME_TYPE_PKEY_METH}
  4837. OBJ_NAME_TYPE_PKEY_METH = $03;
  4838. {$EXTERNALSYM OBJ_NAME_TYPE_UNDEF}
  4839. OBJ_NAME_TYPE_UNDEF = $00;
  4840. {$EXTERNALSYM OBJ_R_MALLOC_FAILURE}
  4841. OBJ_R_MALLOC_FAILURE = 100;
  4842. {$EXTERNALSYM OBJ_R_UNKNOWN_NID}
  4843. OBJ_R_UNKNOWN_NID = 101;
  4844. {$EXTERNALSYM OPENSSL_VERSION_NUMBER}
  4845. OPENSSL_VERSION_NUMBER = $1000105f; // MMNNFFPPS Major, Minor, Fix, Patch, Status
  4846. {$EXTERNALSYM OPENSSL_VERSION_TEXT}
  4847. {$IFDEF OPENSSL_FIPS}
  4848. OPENSSL_VERSION_TEXT = 'OpenSSL 1.0.1e-fips 11 Feb 2013'; {Do not localize}
  4849. {$ELSE}
  4850. OPENSSL_VERSION_TEXT = 'OpenSSL 1.0.1e 11 Feb 2013'; {Do not localize}
  4851. {$ENDIF}
  4852. {$EXTERNALSYM OPENSSL_VERSION_PTEXT}
  4853. OPENSSL_VERSION_PTEXT = ' part of '+ OPENSSL_VERSION_TEXT; {Do not localize}
  4854. {$EXTERNALSYM PEM_BUFSIZE}
  4855. PEM_BUFSIZE = 1024;
  4856. {$EXTERNALSYM PEM_DEK_DES_CBC}
  4857. PEM_DEK_DES_CBC = 40;
  4858. {$EXTERNALSYM PEM_DEK_DES_ECB}
  4859. PEM_DEK_DES_ECB = 60;
  4860. {$EXTERNALSYM PEM_DEK_DES_EDE}
  4861. PEM_DEK_DES_EDE = 50;
  4862. {$EXTERNALSYM PEM_DEK_IDEA_CBC}
  4863. PEM_DEK_IDEA_CBC = 45;
  4864. {$EXTERNALSYM PEM_DEK_RSA}
  4865. PEM_DEK_RSA = 70;
  4866. {$EXTERNALSYM PEM_DEK_RSA_MD2}
  4867. PEM_DEK_RSA_MD2 = 80;
  4868. {$EXTERNALSYM PEM_DEK_RSA_MD5}
  4869. PEM_DEK_RSA_MD5 = 90;
  4870. {$EXTERNALSYM PEM_ERROR}
  4871. PEM_ERROR = 30;
  4872. {$EXTERNALSYM PEM_F_DEF_CALLBACK}
  4873. PEM_F_DEF_CALLBACK = 100;
  4874. {$EXTERNALSYM PEM_F_LOAD_IV}
  4875. PEM_F_LOAD_IV = 101;
  4876. {$EXTERNALSYM PEM_F_PEM_ASN1_READ}
  4877. PEM_F_PEM_ASN1_READ = 102;
  4878. {$EXTERNALSYM PEM_F_PEM_ASN1_READ_BIO}
  4879. PEM_F_PEM_ASN1_READ_BIO = 103;
  4880. {$EXTERNALSYM PEM_F_PEM_ASN1_WRITE}
  4881. PEM_F_PEM_ASN1_WRITE = 104;
  4882. {$EXTERNALSYM PEM_F_PEM_ASN1_WRITE_BIO}
  4883. PEM_F_PEM_ASN1_WRITE_BIO = 105;
  4884. {$EXTERNALSYM PEM_F_PEM_DO_HEADER}
  4885. PEM_F_PEM_DO_HEADER = 106;
  4886. {$EXTERNALSYM PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY}
  4887. PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY = 118;
  4888. {$EXTERNALSYM PEM_F_PEM_GET_EVP_CIPHER_INFO}
  4889. PEM_F_PEM_GET_EVP_CIPHER_INFO = 107;
  4890. {$EXTERNALSYM PEM_F_PEM_READ}
  4891. PEM_F_PEM_READ = 108;
  4892. {$EXTERNALSYM PEM_F_PEM_READ_BIO}
  4893. PEM_F_PEM_READ_BIO = 109;
  4894. {$EXTERNALSYM PEM_F_PEM_SEALFINAL}
  4895. PEM_F_PEM_SEALFINAL = 110;
  4896. {$EXTERNALSYM PEM_F_PEM_SEALINIT}
  4897. PEM_F_PEM_SEALINIT = 111;
  4898. {$EXTERNALSYM PEM_F_PEM_SIGNFINAL}
  4899. PEM_F_PEM_SIGNFINAL = 112;
  4900. {$EXTERNALSYM PEM_F_PEM_WRITE}
  4901. PEM_F_PEM_WRITE = 113;
  4902. {$EXTERNALSYM PEM_F_PEM_WRITE_BIO}
  4903. PEM_F_PEM_WRITE_BIO = 114;
  4904. {$EXTERNALSYM PEM_F_PEM_WRITE_BIO_PKCS8PRIVATEKEY}
  4905. PEM_F_PEM_WRITE_BIO_PKCS8PRIVATEKEY = 119;
  4906. {$EXTERNALSYM PEM_F_PEM_X509_INFO_READ}
  4907. PEM_F_PEM_X509_INFO_READ = 115;
  4908. {$EXTERNALSYM PEM_F_PEM_X509_INFO_READ_BIO}
  4909. PEM_F_PEM_X509_INFO_READ_BIO = 116;
  4910. {$EXTERNALSYM PEM_F_PEM_X509_INFO_WRITE_BIO}
  4911. PEM_F_PEM_X509_INFO_WRITE_BIO = 117;
  4912. {$EXTERNALSYM PEM_MD_MD2}
  4913. PEM_MD_MD2 = NID_md2;
  4914. {$EXTERNALSYM PEM_MD_MD2_RSA}
  4915. PEM_MD_MD2_RSA = NID_md2WithRSAEncryption;
  4916. {$EXTERNALSYM PEM_MD_MD5}
  4917. PEM_MD_MD5 = NID_md5;
  4918. {$EXTERNALSYM PEM_MD_MD5_RSA}
  4919. PEM_MD_MD5_RSA = NID_md5WithRSAEncryption;
  4920. {$EXTERNALSYM PEM_MD_SHA}
  4921. PEM_MD_SHA = NID_sha;
  4922. {$EXTERNALSYM PEM_MD_SHA_RSA}
  4923. PEM_MD_SHA_RSA = NID_sha1WithRSAEncryption;
  4924. {$EXTERNALSYM PEM_OBJ_UNDEF}
  4925. PEM_OBJ_UNDEF = 0;
  4926. {$EXTERNALSYM PEM_OBJ_X509}
  4927. PEM_OBJ_X509 = 1;
  4928. {$EXTERNALSYM PEM_OBJ_X509_REQ}
  4929. PEM_OBJ_X509_REQ = 2;
  4930. {$EXTERNALSYM PEM_OBJ_CRL}
  4931. PEM_OBJ_CRL = 3;
  4932. {$EXTERNALSYM PEM_OBJ_SSL_SESSION}
  4933. PEM_OBJ_SSL_SESSION = 4;
  4934. {$EXTERNALSYM PEM_OBJ_PRIV_KEY}
  4935. PEM_OBJ_PRIV_KEY = 10;
  4936. {$EXTERNALSYM PEM_OBJ_PRIV_RSA}
  4937. PEM_OBJ_PRIV_RSA = 11;
  4938. {$EXTERNALSYM PEM_OBJ_PRIV_DSA}
  4939. PEM_OBJ_PRIV_DSA = 12;
  4940. {$EXTERNALSYM PEM_OBJ_PRIV_DH}
  4941. PEM_OBJ_PRIV_DH = 13;
  4942. {$EXTERNALSYM PEM_OBJ_PUB_RSA}
  4943. PEM_OBJ_PUB_RSA = 14;
  4944. {$EXTERNALSYM PEM_OBJ_PUB_DSA}
  4945. PEM_OBJ_PUB_DSA = 15;
  4946. {$EXTERNALSYM PEM_OBJ_PUB_DH}
  4947. PEM_OBJ_PUB_DH = 16;
  4948. {$EXTERNALSYM PEM_OBJ_DHPARAMS}
  4949. PEM_OBJ_DHPARAMS = 17;
  4950. {$EXTERNALSYM PEM_OBJ_DSAPARAMS}
  4951. PEM_OBJ_DSAPARAMS = 18;
  4952. {$EXTERNALSYM PEM_OBJ_PRIV_RSA_PUBLIC}
  4953. PEM_OBJ_PRIV_RSA_PUBLIC = 19;
  4954. {$EXTERNALSYM PEM_OBJ_PRIV_ECDSA}
  4955. PEM_OBJ_PRIV_ECDSA = 20;
  4956. {$EXTERNALSYM PEM_OBJ_PUB_ECDSA}
  4957. PEM_OBJ_PUB_ECDSA = 21;
  4958. {$EXTERNALSYM PEM_OBJ_ECPARAMETERS}
  4959. PEM_OBJ_ECPARAMETERS = 22;
  4960. {$EXTERNALSYM PEM_R_BAD_BASE64_DECODE}
  4961. PEM_R_BAD_BASE64_DECODE = 100;
  4962. {$EXTERNALSYM PEM_R_BAD_DECRYPT}
  4963. PEM_R_BAD_DECRYPT = 101;
  4964. {$EXTERNALSYM PEM_R_BAD_END_LINE}
  4965. PEM_R_BAD_END_LINE = 102;
  4966. {$EXTERNALSYM PEM_R_BAD_IV_CHARS}
  4967. PEM_R_BAD_IV_CHARS = 103;
  4968. {$EXTERNALSYM PEM_R_BAD_PASSWORD_READ}
  4969. PEM_R_BAD_PASSWORD_READ = 104;
  4970. {$EXTERNALSYM PEM_R_ERROR_CONVERTING_PRIVATE_KEY}
  4971. PEM_R_ERROR_CONVERTING_PRIVATE_KEY = 115;
  4972. {$EXTERNALSYM PEM_R_NOT_DEK_INFO}
  4973. PEM_R_NOT_DEK_INFO = 105;
  4974. {$EXTERNALSYM PEM_R_NOT_ENCRYPTED}
  4975. PEM_R_NOT_ENCRYPTED = 106;
  4976. {$EXTERNALSYM PEM_R_NOT_PROC_TYPE}
  4977. PEM_R_NOT_PROC_TYPE = 107;
  4978. {$EXTERNALSYM PEM_R_NO_START_LINE}
  4979. PEM_R_NO_START_LINE = 108;
  4980. {$EXTERNALSYM PEM_R_PROBLEMS_GETTING_PASSWORD}
  4981. PEM_R_PROBLEMS_GETTING_PASSWORD = 109;
  4982. {$EXTERNALSYM PEM_R_PUBLIC_KEY_NO_RSA}
  4983. PEM_R_PUBLIC_KEY_NO_RSA = 110;
  4984. {$EXTERNALSYM PEM_R_READ_KEY}
  4985. PEM_R_READ_KEY = 111;
  4986. {$EXTERNALSYM PEM_R_SHORT_HEADER}
  4987. PEM_R_SHORT_HEADER = 112;
  4988. {$EXTERNALSYM PEM_R_UNSUPPORTED_CIPHER}
  4989. PEM_R_UNSUPPORTED_CIPHER = 113;
  4990. {$EXTERNALSYM PEM_R_UNSUPPORTED_ENCRYPTION}
  4991. PEM_R_UNSUPPORTED_ENCRYPTION = 114;
  4992. {$EXTERNALSYM PEM_STRING_EVP_PKEY}
  4993. PEM_STRING_EVP_PKEY = 'ANY PRIVATE KEY'; {Do not localize}
  4994. {$EXTERNALSYM PEM_STRING_X509_OLD}
  4995. PEM_STRING_X509_OLD = 'X509 CERTIFICATE'; {Do not localize}
  4996. {$EXTERNALSYM PEM_STRING_X509}
  4997. PEM_STRING_X509 = 'CERTIFICATE'; {Do not localize}
  4998. {$EXTERNALSYM PEM_STRING_X509_PAIR}
  4999. PEM_STRING_X509_PAIR = 'CERTIFICATE PAIR'; {Do not localize}
  5000. {$EXTERNALSYM PEM_STRING_X509_TRUSTED}
  5001. PEM_STRING_X509_TRUSTED = 'TRUSTED CERTIFICATE'; {Do not localize}
  5002. {$EXTERNALSYM PEM_STRING_X509_REQ_OLD}
  5003. PEM_STRING_X509_REQ_OLD = 'NEW CERTIFICATE REQUEST'; {Do not localize}
  5004. {$EXTERNALSYM PEM_STRING_X509_REQ}
  5005. PEM_STRING_X509_REQ = 'CERTIFICATE REQUEST'; {Do not localize}
  5006. {$EXTERNALSYM PEM_STRING_X509_CRL}
  5007. PEM_STRING_X509_CRL = 'X509 CRL'; {Do not localize}
  5008. {$EXTERNALSYM PEM_STRING_PUBLIC}
  5009. PEM_STRING_PUBLIC = 'PUBLIC KEY'; {Do not localize}
  5010. {$EXTERNALSYM PEM_STRING_RSA}
  5011. PEM_STRING_RSA = 'RSA PRIVATE KEY'; {Do not localize}
  5012. {$EXTERNALSYM PEM_STRING_RSA_PUBLIC}
  5013. PEM_STRING_RSA_PUBLIC = 'RSA PUBLIC KEY'; {Do not localize}
  5014. {$EXTERNALSYM PEM_STRING_DSA}
  5015. PEM_STRING_DSA = 'DSA PRIVATE KEY'; {Do not localize}
  5016. {$EXTERNALSYM PEM_STRING_DSA_PUBLIC}
  5017. PEM_STRING_DSA_PUBLIC = 'DSA PUBLIC KEY'; {Do not localize}
  5018. {$EXTERNALSYM PEM_STRING_PKCS7}
  5019. PEM_STRING_PKCS7 = 'PKCS7'; {Do not localize}
  5020. {$EXTERNALSYM PEM_STRING_PKCS7_SIGNED}
  5021. PEM_STRING_PKCS7_SIGNED ='PKCS #7 SIGNED DATA'; {Do not localize}
  5022. {$EXTERNALSYM PEM_STRING_PKCS8}
  5023. PEM_STRING_PKCS8 = 'ENCRYPTED PRIVATE KEY'; {Do not localize}
  5024. {$EXTERNALSYM PEM_STRING_PKCS8INF}
  5025. PEM_STRING_PKCS8INF = 'PRIVATE KEY'; {Do not localize}
  5026. {$EXTERNALSYM PEM_STRING_DHPARAMS}
  5027. PEM_STRING_DHPARAMS = 'DH PARAMETERS'; {Do not localize}
  5028. {$EXTERNALSYM PEM_STRING_SSL_SESSION}
  5029. PEM_STRING_SSL_SESSION = 'SSL SESSION PARAMETERS'; {Do not localize}
  5030. {$EXTERNALSYM PEM_STRING_DSAPARAMS}
  5031. PEM_STRING_DSAPARAMS = 'DSA PARAMETERS'; {Do not localize}
  5032. {$EXTERNALSYM PEM_STRING_ECDSA_PUBLIC}
  5033. PEM_STRING_ECDSA_PUBLIC = 'ECDSA PUBLIC KEY'; {Do not localize}
  5034. {$EXTERNALSYM PEM_STRING_ECPARAMETERS}
  5035. PEM_STRING_ECPARAMETERS = 'EC PARAMETERS'; {Do not localize}
  5036. {$EXTERNALSYM PEM_STRING_ECPRIVATEKEY}
  5037. PEM_STRING_ECPRIVATEKEY = 'EC PRIVATE KEY'; {Do not localize}
  5038. {$EXTERNALSYM PEM_STRING_CMS}
  5039. PEM_STRING_CMS = 'CMS'; {Do not localize}
  5040. {$EXTERNALSYM PEM_TYPE_CLEAR}
  5041. PEM_TYPE_CLEAR = 40;
  5042. {$EXTERNALSYM PEM_TYPE_ENCRYPTED}
  5043. PEM_TYPE_ENCRYPTED = 10;
  5044. {$EXTERNALSYM PEM_TYPE_MIC_CLEAR}
  5045. PEM_TYPE_MIC_CLEAR = 30;
  5046. {$EXTERNALSYM PEM_TYPE_MIC_ONLY}
  5047. PEM_TYPE_MIC_ONLY = 20;
  5048. {$EXTERNALSYM PKCS5_DEFAULT_ITER}
  5049. PKCS5_DEFAULT_ITER = 2048;
  5050. {$EXTERNALSYM PKCS5_SALT_LEN}
  5051. PKCS5_SALT_LEN = 8;
  5052. {$EXTERNALSYM PKCS7_F_PKCS7_ADD_CERTIFICATE}
  5053. PKCS7_F_PKCS7_ADD_CERTIFICATE = 100;
  5054. {$EXTERNALSYM PKCS7_F_PKCS7_ADD_CRL}
  5055. PKCS7_F_PKCS7_ADD_CRL = 101;
  5056. {$EXTERNALSYM PKCS7_F_PKCS7_ADD_RECIPIENT_INFO}
  5057. PKCS7_F_PKCS7_ADD_RECIPIENT_INFO = 102;
  5058. {$EXTERNALSYM PKCS7_F_PKCS7_ADD_SIGNER}
  5059. PKCS7_F_PKCS7_ADD_SIGNER = 103;
  5060. {$EXTERNALSYM PKCS7_F_PKCS7_CTRL}
  5061. PKCS7_F_PKCS7_CTRL = 104;
  5062. {$EXTERNALSYM PKCS7_F_PKCS7_DATADECODE}
  5063. PKCS7_F_PKCS7_DATADECODE = 112;
  5064. {$EXTERNALSYM PKCS7_F_PKCS7_DATAINIT}
  5065. PKCS7_F_PKCS7_DATAINIT = 105;
  5066. {$EXTERNALSYM PKCS7_F_PKCS7_DATASIGN}
  5067. PKCS7_F_PKCS7_DATASIGN = 106;
  5068. {$EXTERNALSYM PKCS7_F_PKCS7_DATAVERIFY}
  5069. PKCS7_F_PKCS7_DATAVERIFY = 107;
  5070. {$EXTERNALSYM PKCS7_F_PKCS7_SET_CIPHER}
  5071. PKCS7_F_PKCS7_SET_CIPHER = 108;
  5072. {$EXTERNALSYM PKCS7_F_PKCS7_SET_CONTENT}
  5073. PKCS7_F_PKCS7_SET_CONTENT = 109;
  5074. {$EXTERNALSYM PKCS7_F_PKCS7_SET_TYPE}
  5075. PKCS7_F_PKCS7_SET_TYPE = 110;
  5076. {$EXTERNALSYM PKCS7_F_PKCS7_SIGNATUREVERIFY}
  5077. PKCS7_F_PKCS7_SIGNATUREVERIFY = 113;
  5078. {$EXTERNALSYM PKCS7_OP_GET_DETACHED_SIGNATURE}
  5079. PKCS7_OP_GET_DETACHED_SIGNATURE = 2;
  5080. {$EXTERNALSYM PKCS7_OP_SET_DETACHED_SIGNATURE}
  5081. PKCS7_OP_SET_DETACHED_SIGNATURE = 1;
  5082. {$EXTERNALSYM PKCS7_R_CIPHER_NOT_INITIALIZED}
  5083. PKCS7_R_CIPHER_NOT_INITIALIZED = 116;
  5084. {$EXTERNALSYM PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH}
  5085. PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH = 100;
  5086. {$EXTERNALSYM PKCS7_R_DIGEST_FAILURE}
  5087. PKCS7_R_DIGEST_FAILURE = 101;
  5088. {$EXTERNALSYM PKCS7_R_INTERNAL_ERROR}
  5089. PKCS7_R_INTERNAL_ERROR = 102;
  5090. {$EXTERNALSYM PKCS7_R_MISSING_CERIPEND_INFO}
  5091. PKCS7_R_MISSING_CERIPEND_INFO = 103;
  5092. {$EXTERNALSYM PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}
  5093. PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE = 115;
  5094. {$EXTERNALSYM PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}
  5095. PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE = 104;
  5096. {$EXTERNALSYM PKCS7_R_SIGNATURE_FAILURE}
  5097. PKCS7_R_SIGNATURE_FAILURE = 105;
  5098. {$EXTERNALSYM PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}
  5099. PKCS7_R_UNABLE_TO_FIND_CERTIFICATE = 106;
  5100. {$EXTERNALSYM PKCS7_R_UNABLE_TO_FIND_MEM_BIO}
  5101. PKCS7_R_UNABLE_TO_FIND_MEM_BIO = 107;
  5102. {$EXTERNALSYM PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}
  5103. PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST = 108;
  5104. {$EXTERNALSYM PKCS7_R_UNKNOWN_DIGEST_TYPE}
  5105. PKCS7_R_UNKNOWN_DIGEST_TYPE = 109;
  5106. {$EXTERNALSYM PKCS7_R_UNKNOWN_OPERATION}
  5107. PKCS7_R_UNKNOWN_OPERATION = 110;
  5108. {$EXTERNALSYM PKCS7_R_UNSUPPORTED_CIPHER_TYPE}
  5109. PKCS7_R_UNSUPPORTED_CIPHER_TYPE = 111;
  5110. {$EXTERNALSYM PKCS7_R_UNSUPPORTED_CONTENT_TYPE}
  5111. PKCS7_R_UNSUPPORTED_CONTENT_TYPE = 112;
  5112. {$EXTERNALSYM PKCS7_R_WRONG_CONTENT_TYPE}
  5113. PKCS7_R_WRONG_CONTENT_TYPE = 113;
  5114. {$EXTERNALSYM PKCS7_R_WRONG_PKCS7_TYPE}
  5115. PKCS7_R_WRONG_PKCS7_TYPE = 114;
  5116. {$EXTERNALSYM PKCS7_S_BODY}
  5117. PKCS7_S_BODY = 1;
  5118. {$EXTERNALSYM PKCS7_S_HEADER}
  5119. PKCS7_S_HEADER = 0;
  5120. {$EXTERNALSYM PKCS7_S_TAIL}
  5121. PKCS7_S_TAIL = 2;
  5122. {$EXTERNALSYM PKCS8_NEG_PRIVKEY}
  5123. PKCS8_NEG_PRIVKEY = 4;
  5124. {$EXTERNALSYM PKCS8_NS_DB}
  5125. PKCS8_NS_DB = 3;
  5126. {$EXTERNALSYM PKCS8_EMBEDDED_PARAM}
  5127. PKCS8_EMBEDDED_PARAM = 2;
  5128. {$EXTERNALSYM PKCS8_NO_OCTET}
  5129. PKCS8_NO_OCTET = 1;
  5130. {$EXTERNALSYM PKCS8_OK}
  5131. PKCS8_OK = 0;
  5132. {$EXTERNALSYM P_tmpdir}
  5133. P_tmpdir = '/tmp'; {Do not localize}
  5134. {$EXTERNALSYM MSS_RAND_MAX}
  5135. MSS_RAND_MAX = $7fffffff;
  5136. {$IFNDEF OPENSSL_NO_RC2}
  5137. {$EXTERNALSYM RC2_BLOCK}
  5138. RC2_BLOCK = 8;
  5139. {$EXTERNALSYM RC2_DECRYPT}
  5140. RC2_DECRYPT = 0;
  5141. {$EXTERNALSYM RC2_ENCRYPT}
  5142. RC2_ENCRYPT = 1;
  5143. {$EXTERNALSYM RC2_KEY_LENGTH}
  5144. RC2_KEY_LENGTH = 16;
  5145. {$ENDIF}
  5146. {$IFNDEF OPENSSL_NO_RC5}
  5147. {$EXTERNALSYM RC5_12_ROUNDS}
  5148. RC5_12_ROUNDS = 12;
  5149. {$EXTERNALSYM RC5_16_ROUNDS}
  5150. RC5_16_ROUNDS = 16;
  5151. {$EXTERNALSYM RC5_32_BLOCK}
  5152. RC5_32_BLOCK = 8;
  5153. {$EXTERNALSYM RC5_32_KEY_LENGTH}
  5154. RC5_32_KEY_LENGTH = 16;
  5155. {$EXTERNALSYM RC5_8_ROUNDS}
  5156. RC5_8_ROUNDS = 8;
  5157. {$EXTERNALSYM RC5_DECRYPT}
  5158. RC5_DECRYPT = 0;
  5159. {$EXTERNALSYM RC5_ENCRYPT}
  5160. RC5_ENCRYPT = 1;
  5161. {$ENDIF}
  5162. {$IFNDEF OPENSSL_NO_HMAC}
  5163. {$EXTERNALSYM HMAC_MAX_MD_CBLOCK}
  5164. HMAC_MAX_MD_CBLOCK = 128; //* largest known is SHA512 */
  5165. {$ENDIF}
  5166. {$IFNDEF OPENSSL_NO_RIPEMD}
  5167. {$EXTERNALSYM RIPEMD160_BLOCK}
  5168. RIPEMD160_BLOCK = 16;
  5169. {$EXTERNALSYM RIPEMD160_CBLOCK}
  5170. RIPEMD160_CBLOCK = 64;
  5171. {$EXTERNALSYM RIPEMD160_DIGEST_LENGTH}
  5172. RIPEMD160_DIGEST_LENGTH = 20;
  5173. {$EXTERNALSYM RIPEMD160_LAST_BLOCK}
  5174. RIPEMD160_LAST_BLOCK = 56;
  5175. {$EXTERNALSYM RIPEMD160_LBLOCK}
  5176. RIPEMD160_LBLOCK = 16;
  5177. {$EXTERNALSYM RIPEMD160_LENGTH_BLOCK}
  5178. RIPEMD160_LENGTH_BLOCK = 8;
  5179. {$ENDIF}
  5180. {$IFNDEF OPENSSL_NO_RSA}
  5181. ///* If this flag is set the RSA method is FIPS compliant and can be used
  5182. // * in FIPS mode. This is set in the validated module method. If an
  5183. // * application sets this flag in its own methods it is its reposibility
  5184. // * to ensure the result is compliant.
  5185. // */
  5186. {$EXTERNALSYM RSA_FLAG_FIPS_METHOD}
  5187. RSA_FLAG_FIPS_METHOD = $0400;
  5188. ///* If this flag is set the operations normally disabled in FIPS mode are
  5189. // * permitted it is then the applications responsibility to ensure that the
  5190. // * usage is compliant.
  5191. // */
  5192. {$EXTERNALSYM RSA_FLAG_NON_FIPS_ALLOW}
  5193. RSA_FLAG_NON_FIPS_ALLOW = $0400;
  5194. {$EXTERNALSYM RSA_3}
  5195. RSA_3 = $3;
  5196. {$EXTERNALSYM RSA_F4}
  5197. RSA_F4 = $10001;
  5198. {$EXTERNALSYM RSA_FLAG_BLINDING}
  5199. RSA_FLAG_BLINDING = $08;
  5200. {$EXTERNALSYM RSA_FLAG_CACHE_PRIVATE}
  5201. RSA_FLAG_CACHE_PRIVATE = $04;
  5202. {$EXTERNALSYM RSA_FLAG_CACHE_PUBLIC}
  5203. RSA_FLAG_CACHE_PUBLIC = $02;
  5204. {$EXTERNALSYM RSA_FLAG_EXT_PKEY}
  5205. RSA_FLAG_EXT_PKEY = $20;
  5206. {$EXTERNALSYM RSA_FLAG_SIGN_VER}
  5207. RSA_FLAG_SIGN_VER = $0040;
  5208. {$EXTERNALSYM RSA_FLAG_NO_BLINDING}
  5209. RSA_FLAG_NO_BLINDING =$0080; //* new with 0.9.6j and 0.9.7b; the built-in
  5210. //* RSA implementation now uses blinding by
  5211. //* default (ignoring RSA_FLAG_BLINDING),
  5212. //* but other engines might not need it
  5213. //*/
  5214. {$EXTERNALSYM RSA_FLAG_NO_CONSTTIME}
  5215. RSA_FLAG_NO_CONSTTIME = $0100; //* new with 0.9.8f; the built-in RSA
  5216. //* implementation now uses constant time
  5217. //* operations by default in private key operations,
  5218. //* e.g., constant time modular exponentiation,
  5219. //* modular inverse without leaking branches,
  5220. //* division without leaking branches. This
  5221. //* flag disables these constant time
  5222. //* operations and results in faster RSA
  5223. //* private key operations.
  5224. //*/
  5225. {$IFNDEF OPENSSL_NO_DEPRECATED}
  5226. {$EXTERNALSYM RSA_FLAG_NO_EXP_CONSTTIME}
  5227. RSA_FLAG_NO_EXP_CONSTTIME = RSA_FLAG_NO_CONSTTIME; //* deprecated name for the flag*/
  5228. //* new with 0.9.7h; the built-in RSA
  5229. //* implementation now uses constant time
  5230. //* modular exponentiation for secret exponents
  5231. //* by default. This flag causes the
  5232. //* faster variable sliding window method to
  5233. //* be used for all exponents.
  5234. //*/
  5235. {$ENDIF}
  5236. //the openssl developers probably only wanted to define this if it was not already defined.
  5237. {$EXTERNALSYM RSA_MAX_MODULUS_BITS}
  5238. RSA_MAX_MODULUS_BITS = 16384;
  5239. {$EXTERNALSYM RSA_FIPS_MIN_MODULUS_BITS}
  5240. RSA_FIPS_MIN_MODULUS_BITS = 1024;
  5241. //the openssl developers probably only wanted to define this if it was not already defined.
  5242. {$EXTERNALSYM RSA_SMALL_MODULUS_BITS}
  5243. RSA_SMALL_MODULUS_BITS = 3072;
  5244. //the openssl developers probably only wanted to define this if it was not already defined.
  5245. {$EXTERNALSYM RSA_MAX_PUBEXP_BITS}
  5246. RSA_MAX_PUBEXP_BITS = 64; //* exponent limit enforced for "large" modulus only */
  5247. {$EXTERNALSYM RSA_FLAG_THREAD_SAFE}
  5248. RSA_FLAG_THREAD_SAFE = $10;
  5249. //* function codes */
  5250. {$EXTERNALSYM RSA_F_FIPS_RSA_SIGN}
  5251. RSA_F_FIPS_RSA_SIGN = 140;
  5252. {$EXTERNALSYM RSA_F_FIPS_RSA_VERIFY}
  5253. RSA_F_FIPS_RSA_VERIFY = 141;
  5254. {$EXTERNALSYM RSA_F_MEMORY_LOCK}
  5255. RSA_F_MEMORY_LOCK = 100;
  5256. {$EXTERNALSYM RSA_F_RSA_CHECK_KEY}
  5257. RSA_F_RSA_CHECK_KEY = 123;
  5258. {$EXTERNALSYM RSA_F_RSA_EAY_PRIVATE_DECRYPT}
  5259. RSA_F_RSA_EAY_PRIVATE_DECRYPT = 101;
  5260. {$EXTERNALSYM RSA_F_RSA_EAY_PRIVATE_ENCRYPT}
  5261. RSA_F_RSA_EAY_PRIVATE_ENCRYPT = 102;
  5262. {$EXTERNALSYM RSA_F_RSA_EAY_PUBLIC_DECRYPT}
  5263. RSA_F_RSA_EAY_PUBLIC_DECRYPT = 103;
  5264. {$EXTERNALSYM RSA_F_RSA_EAY_PUBLIC_ENCRYPT}
  5265. RSA_F_RSA_EAY_PUBLIC_ENCRYPT = 104;
  5266. {$EXTERNALSYM RSA_F_RSA_GENERATE_KEY}
  5267. RSA_F_RSA_GENERATE_KEY = 105;
  5268. {$EXTERNALSYM RSA_F_RSA_NEW_METHOD}
  5269. RSA_F_RSA_NEW_METHOD = 106;
  5270. {$EXTERNALSYM RSA_F_RSA_PADDING_ADD_NONE}
  5271. RSA_F_RSA_PADDING_ADD_NONE = 107;
  5272. {$EXTERNALSYM RSA_F_RSA_PADDING_ADD_PKCS1_OAEP}
  5273. RSA_F_RSA_PADDING_ADD_PKCS1_OAEP = 121;
  5274. {$EXTERNALSYM RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1}
  5275. RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 = 108;
  5276. {$EXTERNALSYM RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2}
  5277. RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 = 109;
  5278. {$EXTERNALSYM RSA_F_RSA_PADDING_ADD_SSLV23}
  5279. RSA_F_RSA_PADDING_ADD_SSLV23 = 110;
  5280. {$EXTERNALSYM RSA_F_RSA_PADDING_CHECK_NONE}
  5281. RSA_F_RSA_PADDING_CHECK_NONE = 111;
  5282. {$EXTERNALSYM RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP}
  5283. RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP = 122;
  5284. {$EXTERNALSYM RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1}
  5285. RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 = 112;
  5286. {$EXTERNALSYM RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2}
  5287. RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 = 113;
  5288. {$EXTERNALSYM RSA_F_RSA_PADDING_CHECK_SSLV23}
  5289. RSA_F_RSA_PADDING_CHECK_SSLV23 = 114;
  5290. {$EXTERNALSYM RSA_F_RSA_PRINT}
  5291. RSA_F_RSA_PRINT = 115;
  5292. {$EXTERNALSYM RSA_F_RSA_PRINT_FP}
  5293. RSA_F_RSA_PRINT_FP = 116;
  5294. {$EXTERNALSYM RSA_F_RSA_PRIVATE_ENCRYPT}
  5295. RSA_F_RSA_PRIVATE_ENCRYPT = 137;
  5296. {$EXTERNALSYM RSA_F_RSA_PUBLIC_DECRYPT}
  5297. RSA_F_RSA_PUBLIC_DECRYPT = 138;
  5298. {$EXTERNALSYM RSA_F_RSA_SETUP_BLINDING}
  5299. RSA_F_RSA_SETUP_BLINDING = 136;
  5300. {$EXTERNALSYM RSA_F_RSA_SET_DEFAULT_METHOD}
  5301. RSA_F_RSA_SET_DEFAULT_METHOD = 139;
  5302. {$EXTERNALSYM RSA_F_RSA_SET_METHOD}
  5303. RSA_F_RSA_SET_METHOD = 142;
  5304. {$EXTERNALSYM RSA_F_RSA_SIGN}
  5305. RSA_F_RSA_SIGN = 117;
  5306. {$EXTERNALSYM RSA_F_RSA_SIGN_ASN1_OCTET_STRING}
  5307. RSA_F_RSA_SIGN_ASN1_OCTET_STRING = 118;
  5308. {$EXTERNALSYM RSA_F_RSA_VERIFY}
  5309. RSA_F_RSA_VERIFY = 119;
  5310. {$EXTERNALSYM RSA_F_RSA_VERIFY_ASN1_OCTET_STRING}
  5311. RSA_F_RSA_VERIFY_ASN1_OCTET_STRING = 120;
  5312. {$EXTERNALSYM RSA_F_RSA_VERIFY_PKCS1_PSS}
  5313. RSA_F_RSA_VERIFY_PKCS1_PSS = 126;
  5314. {$EXTERNALSYM RSA_METHOD_FLAG_NO_CHECK}
  5315. RSA_METHOD_FLAG_NO_CHECK = $01;
  5316. {$EXTERNALSYM RSA_NO_PADDING}
  5317. RSA_NO_PADDING = 3;
  5318. {$EXTERNALSYM RSA_PKCS1_OAEP_PADDING}
  5319. RSA_PKCS1_OAEP_PADDING = 4;
  5320. {$EXTERNALSYM RSA_PKCS1_PADDING}
  5321. RSA_PKCS1_PADDING = 1;
  5322. {$EXTERNALSYM RSA_R_ALGORITHM_MISMATCH}
  5323. RSA_R_ALGORITHM_MISMATCH = 100;
  5324. {$EXTERNALSYM RSA_R_BAD_E_VALUE}
  5325. RSA_R_BAD_E_VALUE = 101;
  5326. {$EXTERNALSYM RSA_R_BAD_FIXED_HEADER_DECRYPT}
  5327. RSA_R_BAD_FIXED_HEADER_DECRYPT = 102;
  5328. {$EXTERNALSYM RSA_R_BAD_PAD_BYTE_COUNT}
  5329. RSA_R_BAD_PAD_BYTE_COUNT = 103;
  5330. {$EXTERNALSYM RSA_R_BAD_SIGNATURE}
  5331. RSA_R_BAD_SIGNATURE = 104;
  5332. {$EXTERNALSYM RSA_R_BLOCK_TYPE_IS_NOT_01}
  5333. RSA_R_BLOCK_TYPE_IS_NOT_01 = 106;
  5334. {$EXTERNALSYM RSA_R_BLOCK_TYPE_IS_NOT_02}
  5335. RSA_R_BLOCK_TYPE_IS_NOT_02 = 107;
  5336. {$EXTERNALSYM RSA_R_DATA_GREATER_THAN_MOD_LEN}
  5337. RSA_R_DATA_GREATER_THAN_MOD_LEN = 108;
  5338. {$EXTERNALSYM RSA_R_DATA_TOO_LARGE}
  5339. RSA_R_DATA_TOO_LARGE = 109;
  5340. {$EXTERNALSYM RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}
  5341. RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE = 110;
  5342. {$EXTERNALSYM RSA_R_DATA_TOO_SMALL}
  5343. RSA_R_DATA_TOO_SMALL = 111;
  5344. {$EXTERNALSYM RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}
  5345. RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE = 122;
  5346. {$EXTERNALSYM RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}
  5347. RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY = 112;
  5348. {$EXTERNALSYM RSA_R_DMP1_NOT_CONGRUENT_TO_D}
  5349. RSA_R_DMP1_NOT_CONGRUENT_TO_D = 124;
  5350. {$EXTERNALSYM RSA_R_DMQ1_NOT_CONGRUENT_TO_D}
  5351. RSA_R_DMQ1_NOT_CONGRUENT_TO_D = 125;
  5352. {$EXTERNALSYM RSA_R_D_E_NOT_CONGRUENT_TO_1}
  5353. RSA_R_D_E_NOT_CONGRUENT_TO_1 = 123;
  5354. {$EXTERNALSYM RSA_R_IQMP_NOT_INVERSE_OF_Q}
  5355. RSA_R_IQMP_NOT_INVERSE_OF_Q = 126;
  5356. {$EXTERNALSYM RSA_R_KEY_SIZE_TOO_SMALL}
  5357. RSA_R_KEY_SIZE_TOO_SMALL = 120;
  5358. {$EXTERNALSYM RSA_R_LAST_OCTET_INVALID}
  5359. RSA_R_LAST_OCTET_INVALID = 134;
  5360. {$EXTERNALSYM RSA_R_MODULUS_TOO_LARGE}
  5361. RSA_R_MODULUS_TOO_LARGE = 105;
  5362. {$EXTERNALSYM RSA_R_NON_FIPS_METHOD}
  5363. RSA_R_NON_FIPS_METHOD = 141;
  5364. {$EXTERNALSYM RSA_R_NO_PUBLIC_EXPONENT}
  5365. RSA_R_NO_PUBLIC_EXPONENT = 140;
  5366. {$EXTERNALSYM RSA_R_NULL_BEFORE_BLOCK_MISSING}
  5367. RSA_R_NULL_BEFORE_BLOCK_MISSING = 113;
  5368. {$EXTERNALSYM RSA_R_N_DOES_NOT_EQUAL_P_Q}
  5369. RSA_R_N_DOES_NOT_EQUAL_P_Q = 127;
  5370. {$EXTERNALSYM RSA_R_OAEP_DECODING_ERROR}
  5371. RSA_R_OAEP_DECODING_ERROR = 121;
  5372. {$EXTERNALSYM RSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE}
  5373. RSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE = 142;
  5374. {$EXTERNALSYM RSA_R_PADDING_CHECK_FAILED}
  5375. RSA_R_PADDING_CHECK_FAILED = 114;
  5376. {$EXTERNALSYM RSA_R_P_NOT_PRIME}
  5377. RSA_R_P_NOT_PRIME = 128;
  5378. {$EXTERNALSYM RSA_R_Q_NOT_PRIME}
  5379. RSA_R_Q_NOT_PRIME = 129;
  5380. {$EXTERNALSYM RSA_R_SLEN_CHECK_FAILED}
  5381. RSA_R_SLEN_CHECK_FAILED = 136;
  5382. {$EXTERNALSYM RSA_R_SLEN_RECOVERY_FAILED}
  5383. RSA_R_SLEN_RECOVERY_FAILED = 135;
  5384. {$EXTERNALSYM RSA_R_SSLV3_ROLLBACK_ATTACK}
  5385. RSA_R_SSLV3_ROLLBACK_ATTACK = 115;
  5386. {$EXTERNALSYM RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}
  5387. RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD = 116;
  5388. {$EXTERNALSYM RSA_R_UNKNOWN_ALGORITHM_TYPE}
  5389. RSA_R_UNKNOWN_ALGORITHM_TYPE = 117;
  5390. {$EXTERNALSYM RSA_R_UNKNOWN_PADDING_TYPE}
  5391. RSA_R_UNKNOWN_PADDING_TYPE = 118;
  5392. {$EXTERNALSYM RSA_R_WRONG_SIGNATURE_LENGTH}
  5393. RSA_R_WRONG_SIGNATURE_LENGTH = 119;
  5394. {$EXTERNALSYM RSA_SSLV23_PADDING}
  5395. RSA_SSLV23_PADDING = 2;
  5396. {$ENDIF}
  5397. {$EXTERNALSYM SEEK_CUR}
  5398. SEEK_CUR = 1;
  5399. {$EXTERNALSYM SEEK_END}
  5400. SEEK_END = 2;
  5401. {$EXTERNALSYM SEEK_SET}
  5402. SEEK_SET = 0;
  5403. {$EXTERNALSYM SN_Algorithm}
  5404. SN_Algorithm = 'Algorithm'; {Do not localize}
  5405. {$EXTERNALSYM SN_SMIMECapabilities}
  5406. SN_SMIMECapabilities = 'SMIME-CAPS'; {Do not localize}
  5407. {$EXTERNALSYM SN_authority_key_identifier}
  5408. SN_authority_key_identifier = 'authorityKeyIdentifier'; {Do not localize}
  5409. {$EXTERNALSYM SN_basic_constraints}
  5410. SN_basic_constraints = 'basicConstraints'; {Do not localize}
  5411. {$EXTERNALSYM SN_bf_cbc}
  5412. SN_bf_cbc = 'BF-CBC'; {Do not localize}
  5413. {$EXTERNALSYM SN_bf_cfb64}
  5414. SN_bf_cfb64 = 'BF-CFB'; {Do not localize}
  5415. {$EXTERNALSYM SN_bf_ecb}
  5416. SN_bf_ecb = 'BF-ECB'; {Do not localize}
  5417. {$EXTERNALSYM SN_bf_ofb64}
  5418. SN_bf_ofb64 = 'BF-OFB'; {Do not localize}
  5419. {$EXTERNALSYM SN_cast5_cbc}
  5420. SN_cast5_cbc = 'CAST5-CBC'; {Do not localize}
  5421. {$EXTERNALSYM SN_cast5_cfb64}
  5422. SN_cast5_cfb64 = 'CAST5-CFB'; {Do not localize}
  5423. {$EXTERNALSYM SN_cast5_ecb}
  5424. SN_cast5_ecb = 'CAST5-ECB'; {Do not localize}
  5425. {$EXTERNALSYM SN_cast5_ofb64}
  5426. SN_cast5_ofb64 = 'CAST5-OFB'; {Do not localize}
  5427. {$EXTERNALSYM SN_certificate_policies}
  5428. SN_certificate_policies = 'certificatePolicies'; {Do not localize}
  5429. {$EXTERNALSYM SN_client_auth}
  5430. SN_client_auth = 'clientAuth'; {Do not localize}
  5431. {$EXTERNALSYM SN_code_sign}
  5432. SN_code_sign = 'codeSigning'; {Do not localize}
  5433. {$EXTERNALSYM SN_commonName}
  5434. SN_commonName = 'CN'; {Do not localize}
  5435. {$EXTERNALSYM SN_countryName}
  5436. SN_countryName = 'C'; {Do not localize}
  5437. {$EXTERNALSYM SN_crl_distribution_points}
  5438. SN_crl_distribution_points = 'crlDistributionPoints'; {Do not localize}
  5439. {$EXTERNALSYM SN_crl_number}
  5440. SN_crl_number = 'crlNumber'; {Do not localize}
  5441. {$EXTERNALSYM SN_crl_reason}
  5442. SN_crl_reason = 'CRLReason'; {Do not localize}
  5443. {$EXTERNALSYM SN_delta_crl}
  5444. SN_delta_crl = 'deltaCRL'; {Do not localize}
  5445. {$EXTERNALSYM SN_des_cbc}
  5446. SN_des_cbc = 'DES-CBC'; {Do not localize}
  5447. {$EXTERNALSYM SN_des_cfb64}
  5448. SN_des_cfb64 = 'DES-CFB'; {Do not localize}
  5449. {$EXTERNALSYM SN_des_ecb}
  5450. SN_des_ecb = 'DES-ECB'; {Do not localize}
  5451. {$EXTERNALSYM SN_des_ede}
  5452. SN_des_ede = 'DES-EDE'; {Do not localize}
  5453. {$EXTERNALSYM SN_des_ede3}
  5454. SN_des_ede3 = 'DES-EDE3'; {Do not localize}
  5455. {$EXTERNALSYM SN_des_ede3_cbc}
  5456. SN_des_ede3_cbc = 'DES-EDE3-CBC'; {Do not localize}
  5457. {$EXTERNALSYM SN_des_ede3_cfb64}
  5458. SN_des_ede3_cfb64 = 'DES-EDE3-CFB'; {Do not localize}
  5459. {$EXTERNALSYM SN_des_ede3_ofb64}
  5460. SN_des_ede3_ofb64 = 'DES-EDE3-OFB'; {Do not localize}
  5461. {$EXTERNALSYM SN_des_ede_cbc}
  5462. SN_des_ede_cbc = 'DES-EDE-CBC'; {Do not localize}
  5463. {$EXTERNALSYM SN_des_ede_cfb64}
  5464. SN_des_ede_cfb64 = 'DES-EDE-CFB'; {Do not localize}
  5465. {$EXTERNALSYM SN_des_ede_ofb64}
  5466. SN_des_ede_ofb64 = 'DES-EDE-OFB'; {Do not localize}
  5467. {$EXTERNALSYM SN_des_ofb64}
  5468. SN_des_ofb64 = 'DES-OFB'; {Do not localize}
  5469. {$EXTERNALSYM SN_description}
  5470. SN_description = 'D'; {Do not localize}
  5471. {$EXTERNALSYM SN_desx_cbc}
  5472. SN_desx_cbc = 'DESX-CBC'; {Do not localize}
  5473. {$EXTERNALSYM SN_dsa}
  5474. SN_dsa = 'DSA'; {Do not localize}
  5475. {$EXTERNALSYM SN_dsaWithSHA}
  5476. SN_dsaWithSHA = 'DSA-SHA'; {Do not localize}
  5477. {$EXTERNALSYM SN_dsaWithSHA1}
  5478. SN_dsaWithSHA1 = 'DSA-SHA1'; {Do not localize}
  5479. {$EXTERNALSYM SN_dsaWithSHA1_2}
  5480. SN_dsaWithSHA1_2 = 'DSA-SHA1-old'; {Do not localize}
  5481. {$EXTERNALSYM SN_dsa_2}
  5482. SN_dsa_2 = 'DSA-old'; {Do not localize}
  5483. {$EXTERNALSYM SN_X9_62_id_ecPublicKey}
  5484. SN_X9_62_id_ecPublicKey = 'id-ecPublicKey'; {Do not localize}
  5485. {$EXTERNALSYM SN_email_protect}
  5486. SN_email_protect = 'emailProtection'; {Do not localize}
  5487. {$EXTERNALSYM SN_ext_key_usage}
  5488. SN_ext_key_usage = 'extendedKeyUsage'; {Do not localize}
  5489. {$EXTERNALSYM SN_givenName}
  5490. SN_givenName = 'G'; {Do not localize}
  5491. {$EXTERNALSYM SN_id_kp}
  5492. SN_id_kp = 'id-kp'; {Do not localize}
  5493. {$EXTERNALSYM SN_id_pkix}
  5494. SN_id_pkix = 'PKIX'; {Do not localize}
  5495. {$EXTERNALSYM SN_id_qt_cps}
  5496. SN_id_qt_cps = 'id-qt-cps'; {Do not localize}
  5497. {$EXTERNALSYM SN_id_qt_unotice}
  5498. SN_id_qt_unotice = 'id-qt-unotice'; {Do not localize}
  5499. {$EXTERNALSYM SN_idea_cbc}
  5500. SN_idea_cbc = 'IDEA-CBC'; {Do not localize}
  5501. {$EXTERNALSYM SN_idea_cfb64}
  5502. SN_idea_cfb64 = 'IDEA-CFB'; {Do not localize}
  5503. {$EXTERNALSYM SN_idea_ecb}
  5504. SN_idea_ecb = 'IDEA-ECB'; {Do not localize}
  5505. {$EXTERNALSYM SN_idea_ofb64}
  5506. SN_idea_ofb64 = 'IDEA-OFB'; {Do not localize}
  5507. {$EXTERNALSYM SN_identified_organization}
  5508. SN_identified_organization = 'identified-organization'; {Do not localize}
  5509. {$EXTERNALSYM SN_initials}
  5510. SN_initials = 'I'; {Do not localize}
  5511. {$EXTERNALSYM SN_invalidity_date}
  5512. SN_invalidity_date = 'invalidityDate'; {Do not localize}
  5513. {$EXTERNALSYM SN_iso}
  5514. SN_iso = 'ISO'; {Do not localize}
  5515. {$EXTERNALSYM SN_issuer_alt_name}
  5516. SN_issuer_alt_name = 'issuerAltName'; {Do not localize}
  5517. {$EXTERNALSYM SN_itu_t}
  5518. SN_itu_t = 'ITU-T'; {Do not localize}
  5519. {$EXTERNALSYM SN_joint_iso_itu_t}
  5520. SN_joint_iso_itu_t = 'JOINT-ISO-ITU-T'; {Do not localize}
  5521. {$EXTERNALSYM SN_key_usage}
  5522. SN_key_usage = 'keyUsage'; {Do not localize}
  5523. {$EXTERNALSYM SN_ld_ce}
  5524. SN_ld_ce = 'ld-ce'; {Do not localize}
  5525. {$EXTERNALSYM SN_localityName}
  5526. SN_localityName = 'L'; {Do not localize}
  5527. {$EXTERNALSYM SN_md2}
  5528. SN_md2 = 'MD2'; {Do not localize}
  5529. {$EXTERNALSYM SN_md2WithRSAEncryption}
  5530. SN_md2WithRSAEncryption = 'RSA-MD2'; {Do not localize}
  5531. {$EXTERNALSYM SN_md5}
  5532. SN_md5 = 'MD5'; {Do not localize}
  5533. {$EXTERNALSYM SN_md5WithRSA}
  5534. SN_md5WithRSA = 'RSA-NP-MD5'; {Do not localize}
  5535. {$EXTERNALSYM SN_md5WithRSAEncryption}
  5536. SN_md5WithRSAEncryption = 'RSA-MD5'; {Do not localize}
  5537. {$EXTERNALSYM SN_md5_sha1}
  5538. SN_md5_sha1 = 'MD5-SHA1'; {Do not localize}
  5539. {$EXTERNALSYM SN_mdc2}
  5540. SN_mdc2 = 'MDC2'; {Do not localize}
  5541. {$EXTERNALSYM SN_mdc2WithRSA}
  5542. SN_mdc2WithRSA = 'RSA-MDC2'; {Do not localize}
  5543. {$EXTERNALSYM SN_member_body}
  5544. SN_member_body ='member-body'; {Do not localize}
  5545. {$EXTERNALSYM SN_ms_code_com}
  5546. SN_ms_code_com = 'msCodeCom'; {Do not localize}
  5547. {$EXTERNALSYM SN_ms_code_ind}
  5548. SN_ms_code_ind = 'msCodeInd'; {Do not localize}
  5549. {$EXTERNALSYM SN_ms_ctl_sign}
  5550. SN_ms_ctl_sign = 'msCTLSign'; {Do not localize}
  5551. {$EXTERNALSYM SN_ms_efs}
  5552. SN_ms_efs = 'msEFS'; {Do not localize}
  5553. {$EXTERNALSYM SN_ms_sgc}
  5554. SN_ms_sgc = 'msSGC'; {Do not localize}
  5555. {$EXTERNALSYM SN_netscape}
  5556. SN_netscape = 'Netscape'; {Do not localize}
  5557. {$EXTERNALSYM SN_netscape_base_url}
  5558. SN_netscape_base_url = 'nsBaseUrl'; {Do not localize}
  5559. {$EXTERNALSYM SN_netscape_ca_policy_url}
  5560. SN_netscape_ca_policy_url = 'nsCaPolicyUrl'; {Do not localize}
  5561. {$EXTERNALSYM SN_netscape_ca_revocation_url}
  5562. SN_netscape_ca_revocation_url = 'nsCaRevocationUrl'; {Do not localize}
  5563. {$EXTERNALSYM SN_netscape_cert_extension}
  5564. SN_netscape_cert_extension = 'nsCertExt'; {Do not localize}
  5565. {$EXTERNALSYM SN_netscape_cert_sequence}
  5566. SN_netscape_cert_sequence = 'nsCertSequence'; {Do not localize}
  5567. {$EXTERNALSYM SN_netscape_cert_type}
  5568. SN_netscape_cert_type = 'nsCertType'; {Do not localize}
  5569. {$EXTERNALSYM SN_netscape_comment}
  5570. SN_netscape_comment = 'nsComment'; {Do not localize}
  5571. {$EXTERNALSYM SN_netscape_data_type}
  5572. SN_netscape_data_type = 'nsDataType'; {Do not localize}
  5573. {$EXTERNALSYM SN_netscape_renewal_url}
  5574. SN_netscape_renewal_url = 'nsRenewalUrl'; {Do not localize}
  5575. {$EXTERNALSYM SN_netscape_revocation_url}
  5576. SN_netscape_revocation_url = 'nsRevocationUrl'; {Do not localize}
  5577. {$EXTERNALSYM SN_netscape_ssl_server_name}
  5578. SN_netscape_ssl_server_name = 'nsSslServerName'; {Do not localize}
  5579. {$EXTERNALSYM SN_ns_sgc}
  5580. SN_ns_sgc = 'nsSGC'; {Do not localize}
  5581. {$EXTERNALSYM SN_organizationName}
  5582. SN_organizationName = 'O'; {Do not localize}
  5583. {$EXTERNALSYM SN_organizationalUnitName}
  5584. SN_organizationalUnitName = 'OU'; {Do not localize}
  5585. {$EXTERNALSYM SN_pkcs9_emailAddress}
  5586. SN_pkcs9_emailAddress = 'Email'; {Do not localize}
  5587. {$EXTERNALSYM SN_private_key_usage_period}
  5588. SN_private_key_usage_period = 'privateKeyUsagePeriod'; {Do not localize}
  5589. {$EXTERNALSYM SN_rc2_40_cbc}
  5590. SN_rc2_40_cbc = 'RC2-40-CBC'; {Do not localize}
  5591. {$EXTERNALSYM SN_rc2_64_cbc}
  5592. SN_rc2_64_cbc = 'RC2-64-CBC'; {Do not localize}
  5593. {$EXTERNALSYM SN_rc2_cbc}
  5594. SN_rc2_cbc = 'RC2-CBC'; {Do not localize}
  5595. {$EXTERNALSYM SN_rc2_cfb64}
  5596. SN_rc2_cfb64 = 'RC2-CFB'; {Do not localize}
  5597. {$EXTERNALSYM SN_rc2_ecb}
  5598. SN_rc2_ecb = 'RC2-ECB'; {Do not localize}
  5599. {$EXTERNALSYM SN_rc2_ofb64}
  5600. SN_rc2_ofb64 = 'RC2-OFB'; {Do not localize}
  5601. {$EXTERNALSYM SN_rc4}
  5602. SN_rc4 = 'RC4'; {Do not localize}
  5603. {$EXTERNALSYM SN_rc4_40}
  5604. SN_rc4_40 = 'RC4-40'; {Do not localize}
  5605. {$EXTERNALSYM SN_rc5_cbc}
  5606. SN_rc5_cbc = 'RC5-CBC'; {Do not localize}
  5607. {$EXTERNALSYM SN_rc5_cfb64}
  5608. SN_rc5_cfb64 = 'RC5-CFB'; {Do not localize}
  5609. {$EXTERNALSYM SN_rc5_ecb}
  5610. SN_rc5_ecb = 'RC5-ECB'; {Do not localize}
  5611. {$EXTERNALSYM SN_rc5_ofb64}
  5612. SN_rc5_ofb64 = 'RC5-OFB'; {Do not localize}
  5613. {$EXTERNALSYM SN_ripemd160}
  5614. SN_ripemd160 = 'RIPEMD160'; {Do not localize}
  5615. {$EXTERNALSYM SN_ripemd160WithRSA}
  5616. SN_ripemd160WithRSA = 'RSA-RIPEMD160'; {Do not localize}
  5617. {$EXTERNALSYM SN_rle_compression}
  5618. SN_rle_compression = 'RLE'; {Do not localize}
  5619. {$EXTERNALSYM SN_rsa}
  5620. SN_rsa = 'RSA'; {Do not localize}
  5621. {$EXTERNALSYM SN_serialNumber}
  5622. SN_serialNumber = 'SN'; {Do not localize}
  5623. {$EXTERNALSYM SN_server_auth}
  5624. SN_server_auth = 'serverAuth'; {Do not localize}
  5625. {$EXTERNALSYM SN_sha}
  5626. SN_sha = 'SHA'; {Do not localize}
  5627. {$EXTERNALSYM SN_sha1}
  5628. SN_sha1 = 'SHA1'; {Do not localize}
  5629. {$EXTERNALSYM SN_sha1WithRSA}
  5630. SN_sha1WithRSA = 'RSA-SHA1-2'; {Do not localize}
  5631. {$EXTERNALSYM SN_sha1WithRSAEncryption}
  5632. SN_sha1WithRSAEncryption = 'RSA-SHA1'; {Do not localize}
  5633. {$EXTERNALSYM SN_shaWithRSAEncryption}
  5634. SN_shaWithRSAEncryption = 'RSA-SHA'; {Do not localize}
  5635. {$EXTERNALSYM SN_stateOrProvinceName}
  5636. SN_stateOrProvinceName = 'ST'; {Do not localize}
  5637. {$EXTERNALSYM SN_subject_alt_name}
  5638. SN_subject_alt_name = 'subjectAltName'; {Do not localize}
  5639. {$EXTERNALSYM SN_subject_key_identifier}
  5640. SN_subject_key_identifier = 'subjectKeyIdentifier'; {Do not localize}
  5641. {$EXTERNALSYM SN_surname}
  5642. SN_surname = 'S'; {Do not localize}
  5643. {$EXTERNALSYM SN_sxnet}
  5644. SN_sxnet = 'SXNetID'; {Do not localize}
  5645. {$EXTERNALSYM SN_time_stamp}
  5646. SN_time_stamp = 'timeStamping'; {Do not localize}
  5647. {$EXTERNALSYM SN_title}
  5648. SN_title = 'T'; {Do not localize}
  5649. {$EXTERNALSYM SN_undef}
  5650. SN_undef = 'UNDEF'; {Do not localize}
  5651. {$EXTERNALSYM SN_uniqueIdentifier}
  5652. SN_uniqueIdentifier = 'UID'; {Do not localize}
  5653. {$EXTERNALSYM SN_zlib_compression}
  5654. SN_zlib_compression = 'ZLIB'; {Do not localize}
  5655. {$EXTERNALSYM OCSP_DEFAULT_NONCE_LENGTH}
  5656. OCSP_DEFAULT_NONCE_LENGTH = 16;
  5657. {$EXTERNALSYM OCSP_NOCERTS}
  5658. OCSP_NOCERTS = $1;
  5659. {$EXTERNALSYM OCSP_NOINTERN}
  5660. OCSP_NOINTERN = $2;
  5661. {$EXTERNALSYM OCSP_NOSIGS}
  5662. OCSP_NOSIGS = $4;
  5663. {$EXTERNALSYM OCSP_NOCHAIN}
  5664. OCSP_NOCHAIN = $8;
  5665. {$EXTERNALSYM OCSP_NOVERIFY}
  5666. OCSP_NOVERIFY = $10;
  5667. {$EXTERNALSYM OCSP_NOEXPLICIT}
  5668. OCSP_NOEXPLICIT = $20;
  5669. {$EXTERNALSYM OCSP_NOCASIGN}
  5670. OCSP_NOCASIGN = $40;
  5671. {$EXTERNALSYM OCSP_NODELEGATED}
  5672. OCSP_NODELEGATED = $80;
  5673. {$EXTERNALSYM OCSP_NOCHECKS}
  5674. OCSP_NOCHECKS = $100;
  5675. {$EXTERNALSYM OCSP_TRUSTOTHER}
  5676. OCSP_TRUSTOTHER = $200;
  5677. {$EXTERNALSYM OCSP_RESPID_KEY}
  5678. OCSP_RESPID_KEY = $400;
  5679. {$EXTERNALSYM OCSP_NOTIME}
  5680. OCSP_NOTIME = $800;
  5681. {$EXTERNALSYM OCSP_RESPONSE_STATUS_SUCCESSFUL}
  5682. OCSP_RESPONSE_STATUS_SUCCESSFUL = 0;
  5683. {$EXTERNALSYM OCSP_RESPONSE_STATUS_MALFORMEDREQUEST}
  5684. OCSP_RESPONSE_STATUS_MALFORMEDREQUEST = 1;
  5685. {$EXTERNALSYM OCSP_RESPONSE_STATUS_INTERNALERROR}
  5686. OCSP_RESPONSE_STATUS_INTERNALERROR = 2;
  5687. {$EXTERNALSYM OCSP_RESPONSE_STATUS_TRYLATER}
  5688. OCSP_RESPONSE_STATUS_TRYLATER = 3;
  5689. {$EXTERNALSYM OCSP_RESPONSE_STATUS_SIGREQUIRED}
  5690. OCSP_RESPONSE_STATUS_SIGREQUIRED = 5;
  5691. {$EXTERNALSYM OCSP_RESPONSE_STATUS_UNAUTHORIZED}
  5692. OCSP_RESPONSE_STATUS_UNAUTHORIZED = 6;
  5693. {$EXTERNALSYM OCSP_REVOKED_STATUS_NOSTATUS}
  5694. OCSP_REVOKED_STATUS_NOSTATUS = -1;
  5695. {$EXTERNALSYM OCSP_REVOKED_STATUS_UNSPECIFIED}
  5696. OCSP_REVOKED_STATUS_UNSPECIFIED = 0;
  5697. {$EXTERNALSYM OCSP_REVOKED_STATUS_KEYCOMPROMISE}
  5698. OCSP_REVOKED_STATUS_KEYCOMPROMISE = 1;
  5699. {$EXTERNALSYM OCSP_REVOKED_STATUS_CACOMPROMISE}
  5700. OCSP_REVOKED_STATUS_CACOMPROMISE = 2;
  5701. {$EXTERNALSYM OCSP_REVOKED_STATUS_AFFILIATIONCHANGED}
  5702. OCSP_REVOKED_STATUS_AFFILIATIONCHANGED = 3;
  5703. {$EXTERNALSYM OCSP_REVOKED_STATUS_SUPERSEDED}
  5704. OCSP_REVOKED_STATUS_SUPERSEDED = 4;
  5705. {$EXTERNALSYM OCSP_REVOKED_STATUS_CESSATIONOFOPERATION}
  5706. OCSP_REVOKED_STATUS_CESSATIONOFOPERATION = 5;
  5707. {$EXTERNALSYM OCSP_REVOKED_STATUS_CERTIFICATEHOLD}
  5708. OCSP_REVOKED_STATUS_CERTIFICATEHOLD = 6;
  5709. {$EXTERNALSYM OCSP_REVOKED_STATUS_REMOVEFROMCRL}
  5710. OCSP_REVOKED_STATUS_REMOVEFROMCRL = 8;
  5711. {$EXTERNALSYM V_OCSP_CERTSTATUS_GOOD}
  5712. V_OCSP_CERTSTATUS_GOOD = 0;
  5713. {$EXTERNALSYM V_OCSP_CERTSTATUS_REVOKED}
  5714. V_OCSP_CERTSTATUS_REVOKED = 1;
  5715. {$EXTERNALSYM V_OCSP_CERTSTATUS_UNKNOWN}
  5716. V_OCSP_CERTSTATUS_UNKNOWN = 2;
  5717. {$EXTERNALSYM OCSP_F_ASN1_STRING_ENCODE}
  5718. OCSP_F_ASN1_STRING_ENCODE = 100;
  5719. {$EXTERNALSYM OCSP_F_D2I_OCSP_NONCE}
  5720. OCSP_F_D2I_OCSP_NONCE = 102;
  5721. {$EXTERNALSYM OCSP_F_OCSP_BASIC_ADD1_STATUS}
  5722. OCSP_F_OCSP_BASIC_ADD1_STATUS = 103;
  5723. {$EXTERNALSYM OCSP_F_OCSP_BASIC_SIGN}
  5724. OCSP_F_OCSP_BASIC_SIGN = 104;
  5725. {$EXTERNALSYM OCSP_F_OCSP_BASIC_VERIFY}
  5726. OCSP_F_OCSP_BASIC_VERIFY = 105;
  5727. {$EXTERNALSYM OCSP_F_OCSP_CERT_ID_NEW}
  5728. OCSP_F_OCSP_CERT_ID_NEW = 101;
  5729. {$EXTERNALSYM OCSP_F_OCSP_CHECK_DELEGATED}
  5730. OCSP_F_OCSP_CHECK_DELEGATED = 106;
  5731. {$EXTERNALSYM OCSP_F_OCSP_CHECK_IDS}
  5732. OCSP_F_OCSP_CHECK_IDS = 107;
  5733. {$EXTERNALSYM OCSP_F_OCSP_CHECK_ISSUER}
  5734. OCSP_F_OCSP_CHECK_ISSUER = 108;
  5735. {$EXTERNALSYM OCSP_F_OCSP_CHECK_VALIDITY}
  5736. OCSP_F_OCSP_CHECK_VALIDITY = 115;
  5737. {$EXTERNALSYM OCSP_F_OCSP_MATCH_ISSUERID}
  5738. OCSP_F_OCSP_MATCH_ISSUERID = 109;
  5739. {$EXTERNALSYM OCSP_F_OCSP_PARSE_URL}
  5740. OCSP_F_OCSP_PARSE_URL = 114;
  5741. {$EXTERNALSYM OCSP_F_OCSP_REQUEST_SIGN}
  5742. OCSP_F_OCSP_REQUEST_SIGN = 110;
  5743. {$EXTERNALSYM OCSP_F_OCSP_REQUEST_VERIFY}
  5744. OCSP_F_OCSP_REQUEST_VERIFY = 116;
  5745. {$EXTERNALSYM OCSP_F_OCSP_RESPONSE_GET1_BASIC}
  5746. OCSP_F_OCSP_RESPONSE_GET1_BASIC = 111;
  5747. {$EXTERNALSYM OCSP_F_OCSP_SENDREQ_BIO}
  5748. OCSP_F_OCSP_SENDREQ_BIO = 112;
  5749. {$EXTERNALSYM OCSP_F_PARSE_HTTP_LINE1}
  5750. OCSP_F_PARSE_HTTP_LINE1 = 117;
  5751. {$EXTERNALSYM OCSP_F_REQUEST_VERIFY}
  5752. OCSP_F_REQUEST_VERIFY = 113;
  5753. //* Reason codes. */
  5754. {$EXTERNALSYM OCSP_R_BAD_DATA}
  5755. OCSP_R_BAD_DATA = 100;
  5756. {$EXTERNALSYM OCSP_R_CERTIFICATE_VERIFY_ERROR}
  5757. OCSP_R_CERTIFICATE_VERIFY_ERROR = 101;
  5758. {$EXTERNALSYM OCSP_R_DIGEST_ERR}
  5759. OCSP_R_DIGEST_ERR = 102;
  5760. {$EXTERNALSYM OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}
  5761. OCSP_R_ERROR_IN_NEXTUPDATE_FIELD = 122;
  5762. {$EXTERNALSYM OCSP_R_ERROR_IN_THISUPDATE_FIELD}
  5763. OCSP_R_ERROR_IN_THISUPDATE_FIELD = 123;
  5764. {$EXTERNALSYM OCSP_R_ERROR_PARSING_URL}
  5765. OCSP_R_ERROR_PARSING_URL = 121;
  5766. {$EXTERNALSYM OCSP_R_MISSING_OCSPSIGNING_USAGE}
  5767. OCSP_R_MISSING_OCSPSIGNING_USAGE = 103;
  5768. {$EXTERNALSYM OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}
  5769. OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE = 124;
  5770. {$EXTERNALSYM OCSP_R_NOT_BASIC_RESPONSE}
  5771. OCSP_R_NOT_BASIC_RESPONSE = 104;
  5772. {$EXTERNALSYM OCSP_R_NO_CERTIFICATES_IN_CHAIN}
  5773. OCSP_R_NO_CERTIFICATES_IN_CHAIN = 105;
  5774. {$EXTERNALSYM OCSP_R_NO_CONTENT}
  5775. OCSP_R_NO_CONTENT = 106;
  5776. {$EXTERNALSYM OCSP_R_NO_PUBLIC_KEY}
  5777. OCSP_R_NO_PUBLIC_KEY = 107;
  5778. {$EXTERNALSYM OCSP_R_NO_RESPONSE_DATA}
  5779. OCSP_R_NO_RESPONSE_DATA = 108;
  5780. {$EXTERNALSYM OCSP_R_NO_REVOKED_TIME}
  5781. OCSP_R_NO_REVOKED_TIME = 109;
  5782. {$EXTERNALSYM OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}
  5783. OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE = 110;
  5784. {$EXTERNALSYM OCSP_R_REQUEST_NOT_SIGNED}
  5785. OCSP_R_REQUEST_NOT_SIGNED = 128;
  5786. {$EXTERNALSYM OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}
  5787. OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA = 111;
  5788. {$EXTERNALSYM OCSP_R_ROOT_CA_NOT_TRUSTED}
  5789. OCSP_R_ROOT_CA_NOT_TRUSTED = 112;
  5790. {$EXTERNALSYM OCSP_R_SERVER_READ_ERROR}
  5791. OCSP_R_SERVER_READ_ERROR = 113;
  5792. {$EXTERNALSYM OCSP_R_SERVER_RESPONSE_ERROR}
  5793. OCSP_R_SERVER_RESPONSE_ERROR = 114;
  5794. {$EXTERNALSYM OCSP_R_SERVER_RESPONSE_PARSE_ERROR}
  5795. OCSP_R_SERVER_RESPONSE_PARSE_ERROR = 115;
  5796. {$EXTERNALSYM OCSP_R_SERVER_WRITE_ERROR}
  5797. OCSP_R_SERVER_WRITE_ERROR = 116;
  5798. {$EXTERNALSYM OCSP_R_SIGNATURE_FAILURE}
  5799. OCSP_R_SIGNATURE_FAILURE = 117;
  5800. {$EXTERNALSYM OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}
  5801. OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND = 118;
  5802. {$EXTERNALSYM OCSP_R_STATUS_EXPIRED}
  5803. OCSP_R_STATUS_EXPIRED = 125;
  5804. {$EXTERNALSYM OCSP_R_STATUS_NOT_YET_VALID}
  5805. OCSP_R_STATUS_NOT_YET_VALID = 126;
  5806. {$EXTERNALSYM OCSP_R_STATUS_TOO_OLD}
  5807. OCSP_R_STATUS_TOO_OLD = 127;
  5808. {$EXTERNALSYM OCSP_R_UNKNOWN_MESSAGE_DIGEST}
  5809. OCSP_R_UNKNOWN_MESSAGE_DIGEST = 119;
  5810. {$EXTERNALSYM OCSP_R_UNKNOWN_NID}
  5811. OCSP_R_UNKNOWN_NID = 120;
  5812. {$EXTERNALSYM OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}
  5813. OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE = 129;
  5814. {$EXTERNALSYM SSL_ST_CONNECT}
  5815. SSL_ST_CONNECT = $1000;
  5816. {$EXTERNALSYM SSL_ST_ACCEPT}
  5817. SSL_ST_ACCEPT = $2000;
  5818. {$EXTERNALSYM SSL_ST_MASK}
  5819. SSL_ST_MASK = $0FFF;
  5820. {$EXTERNALSYM SSL_ST_INIT}
  5821. SSL_ST_INIT = SSL_ST_CONNECT or SSL_ST_ACCEPT;
  5822. {$EXTERNALSYM SSL_ST_BEFORE}
  5823. SSL_ST_BEFORE = $4000;
  5824. {$EXTERNALSYM SSL_ST_OK}
  5825. SSL_ST_OK = $03;
  5826. {$EXTERNALSYM SSL_ST_RENEGOTIATE}
  5827. SSL_ST_RENEGOTIATE = $04 or SSL_ST_INIT;
  5828. {$EXTERNALSYM SSL_CB_LOOP}
  5829. SSL_CB_LOOP = $01;
  5830. {$EXTERNALSYM SSL_CB_EXIT}
  5831. SSL_CB_EXIT = $02;
  5832. {$EXTERNALSYM SSL_CB_READ}
  5833. SSL_CB_READ = $04;
  5834. {$EXTERNALSYM SSL_CB_WRITE}
  5835. SSL_CB_WRITE = $08;
  5836. {$EXTERNALSYM SSL_CB_ALERT}
  5837. SSL_CB_ALERT = $4000;
  5838. {$EXTERNALSYM SSL_CB_READ_ALERT}
  5839. SSL_CB_READ_ALERT = SSL_CB_ALERT or SSL_CB_READ;
  5840. {$EXTERNALSYM SSL_CB_WRITE_ALERT}
  5841. SSL_CB_WRITE_ALERT = SSL_CB_ALERT or SSL_CB_WRITE;
  5842. {$EXTERNALSYM SSL_CB_ACCEPT_LOOP}
  5843. SSL_CB_ACCEPT_LOOP = SSL_ST_ACCEPT or SSL_CB_LOOP;
  5844. {$EXTERNALSYM SSL_CB_ACCEPT_EXIT}
  5845. SSL_CB_ACCEPT_EXIT = SSL_ST_ACCEPT or SSL_CB_EXIT;
  5846. {$EXTERNALSYM SSL_CB_CONNECT_LOOP}
  5847. SSL_CB_CONNECT_LOOP = SSL_ST_CONNECT or SSL_CB_LOOP;
  5848. {$EXTERNALSYM SSL_CB_CONNECT_EXIT}
  5849. SSL_CB_CONNECT_EXIT = SSL_ST_CONNECT or SSL_CB_EXIT;
  5850. {$EXTERNALSYM SSL_CB_HANDSHAKE_START}
  5851. SSL_CB_HANDSHAKE_START = $10;
  5852. {$EXTERNALSYM SSL_CB_HANDSHAKE_DONE}
  5853. SSL_CB_HANDSHAKE_DONE = $20;
  5854. {$EXTERNALSYM SSL_ST_READ_BODY}
  5855. SSL_ST_READ_BODY = $F1;
  5856. {$EXTERNALSYM SSL_ST_READ_DONE}
  5857. SSL_ST_READ_DONE = $F2;
  5858. {$EXTERNALSYM SSL_ST_READ_HEADER}
  5859. SSL_ST_READ_HEADER = $F0;
  5860. {$EXTERNALSYM SSL23_ST_CR_SRVR_HELLO_A}
  5861. SSL23_ST_CR_SRVR_HELLO_A = $220 or SSL_ST_CONNECT;
  5862. {$EXTERNALSYM SSL23_ST_CR_SRVR_HELLO_B}
  5863. SSL23_ST_CR_SRVR_HELLO_B = $221 or SSL_ST_CONNECT;
  5864. {$EXTERNALSYM SSL23_ST_CW_CLNT_HELLO_A}
  5865. SSL23_ST_CW_CLNT_HELLO_A = $210 or SSL_ST_CONNECT;
  5866. {$EXTERNALSYM SSL23_ST_CW_CLNT_HELLO_B}
  5867. SSL23_ST_CW_CLNT_HELLO_B = $211 or SSL_ST_CONNECT;
  5868. {$EXTERNALSYM SSL23_ST_SR_CLNT_HELLO_A}
  5869. SSL23_ST_SR_CLNT_HELLO_A = $210 or SSL_ST_ACCEPT;
  5870. {$EXTERNALSYM SSL23_ST_SR_CLNT_HELLO_B}
  5871. SSL23_ST_SR_CLNT_HELLO_B = $211 or SSL_ST_ACCEPT;
  5872. {$EXTERNALSYM SSL2_AT_MD5_WITH_RSA_ENCRYPTION}
  5873. SSL2_AT_MD5_WITH_RSA_ENCRYPTION = $01;
  5874. {$EXTERNALSYM SSL2_CF_5_BYTE_ENC}
  5875. SSL2_CF_5_BYTE_ENC = $01;
  5876. {$EXTERNALSYM SSL2_CF_8_BYTE_ENC}
  5877. SSL2_CF_8_BYTE_ENC = $02;
  5878. {$EXTERNALSYM SSL2_CHALLENGE_LENGTH}
  5879. SSL2_CHALLENGE_LENGTH = 16;
  5880. {$EXTERNALSYM SSL2_CK_DES_192_EDE3_CBC_WITH_MD5}
  5881. SSL2_CK_DES_192_EDE3_CBC_WITH_MD5 = $020700c0;
  5882. {$EXTERNALSYM SSL2_CK_DES_192_EDE3_CBC_WITH_SHA}
  5883. SSL2_CK_DES_192_EDE3_CBC_WITH_SHA = $020701c0;
  5884. {$EXTERNALSYM SSL2_CK_DES_64_CBC_WITH_MD5}
  5885. SSL2_CK_DES_64_CBC_WITH_MD5 = $02060040;
  5886. {$EXTERNALSYM SSL2_CK_DES_64_CBC_WITH_SHA}
  5887. SSL2_CK_DES_64_CBC_WITH_SHA = $02060140;
  5888. {$EXTERNALSYM SSL2_CK_DES_64_CFB64_WITH_MD5_1}
  5889. SSL2_CK_DES_64_CFB64_WITH_MD5_1 = $02ff0800;
  5890. {$EXTERNALSYM SSL2_CK_IDEA_128_CBC_WITH_MD5}
  5891. SSL2_CK_IDEA_128_CBC_WITH_MD5 = $02050080;
  5892. {$EXTERNALSYM SSL2_CK_NULL}
  5893. SSL2_CK_NULL = $02ff0810;
  5894. {$EXTERNALSYM SSL2_CK_NULL_WITH_MD5}
  5895. SSL2_CK_NULL_WITH_MD5 = $02000000;
  5896. {$EXTERNALSYM SSL2_CK_RC2_128_CBC_EXPORT40_WITH_MD5}
  5897. SSL2_CK_RC2_128_CBC_EXPORT40_WITH_MD5 = $02040080;
  5898. {$EXTERNALSYM SSL2_CK_RC2_128_CBC_WITH_MD5}
  5899. SSL2_CK_RC2_128_CBC_WITH_MD5 = $02030080;
  5900. {$EXTERNALSYM SSL2_CK_RC4_128_EXPORT40_WITH_MD5}
  5901. SSL2_CK_RC4_128_EXPORT40_WITH_MD5 = $02020080;
  5902. {$EXTERNALSYM SSL2_CK_RC4_128_WITH_MD5}
  5903. SSL2_CK_RC4_128_WITH_MD5 = $02010080;
  5904. {$EXTERNALSYM SSL2_CK_RC4_64_WITH_MD5}
  5905. SSL2_CK_RC4_64_WITH_MD5 = $02080080;
  5906. {$EXTERNALSYM SSL2_CONNECTION_ID_LENGTH}
  5907. SSL2_CONNECTION_ID_LENGTH = 16;
  5908. {$EXTERNALSYM SSL2_CT_X509_CERTIFICATE}
  5909. SSL2_CT_X509_CERTIFICATE = $01;
  5910. {$EXTERNALSYM SSL2_MAX_CERT_CHALLENGE_LENGTH}
  5911. SSL2_MAX_CERT_CHALLENGE_LENGTH = 32;
  5912. {$EXTERNALSYM SSL2_MAX_CHALLENGE_LENGTH}
  5913. SSL2_MAX_CHALLENGE_LENGTH = 32;
  5914. {$EXTERNALSYM SSL2_MAX_CONNECTION_ID_LENGTH}
  5915. SSL2_MAX_CONNECTION_ID_LENGTH = 16;
  5916. {$EXTERNALSYM SSL2_MAX_KEY_MATERIAL_LENGTH}
  5917. SSL2_MAX_KEY_MATERIAL_LENGTH = 24;
  5918. {$EXTERNALSYM SSL2_MAX_MASTER_KEY_LENGTH_IN_BITS}
  5919. SSL2_MAX_MASTER_KEY_LENGTH_IN_BITS = 256;
  5920. {$EXTERNALSYM SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER}
  5921. SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER = 16383;
  5922. {$EXTERNALSYM SSL2_MAX_SSL_SESSION_ID_LENGTH}
  5923. SSL2_MAX_SSL_SESSION_ID_LENGTH = 32;
  5924. {$EXTERNALSYM SSL2_MIN_CERT_CHALLENGE_LENGTH}
  5925. SSL2_MIN_CERT_CHALLENGE_LENGTH = 16;
  5926. {$EXTERNALSYM SSL2_MIN_CHALLENGE_LENGTH}
  5927. SSL2_MIN_CHALLENGE_LENGTH = 16;
  5928. {$EXTERNALSYM SSL2_MT_CLIENT_CERTIFICATE}
  5929. SSL2_MT_CLIENT_CERTIFICATE = 8;
  5930. {$EXTERNALSYM SSL2_MT_CLIENT_FINISHED}
  5931. SSL2_MT_CLIENT_FINISHED = 3;
  5932. {$EXTERNALSYM SSL2_MT_CLIENT_HELLO}
  5933. SSL2_MT_CLIENT_HELLO = 1;
  5934. {$EXTERNALSYM SSL2_MT_CLIENT_MASTER_KEY}
  5935. SSL2_MT_CLIENT_MASTER_KEY = 2;
  5936. {$EXTERNALSYM SSL2_MT_ERROR}
  5937. SSL2_MT_ERROR = 0;
  5938. {$EXTERNALSYM SSL2_MT_REQUEST_CERTIFICATE}
  5939. SSL2_MT_REQUEST_CERTIFICATE = 7;
  5940. {$EXTERNALSYM SSL2_MT_SERVER_FINISHED}
  5941. SSL2_MT_SERVER_FINISHED = 6;
  5942. {$EXTERNALSYM SSL2_MT_SERVER_HELLO}
  5943. SSL2_MT_SERVER_HELLO = 4;
  5944. {$EXTERNALSYM SSL2_MT_SERVER_VERIFY}
  5945. SSL2_MT_SERVER_VERIFY = 5;
  5946. {$EXTERNALSYM SSL2_PE_BAD_CERTIFICATE}
  5947. SSL2_PE_BAD_CERTIFICATE = $0004;
  5948. {$EXTERNALSYM SSL2_PE_NO_CERTIFICATE}
  5949. SSL2_PE_NO_CERTIFICATE = $0002;
  5950. {$EXTERNALSYM SSL2_PE_NO_CIPHER}
  5951. SSL2_PE_NO_CIPHER = $0001;
  5952. {$EXTERNALSYM SSL2_PE_UNDEFINED_ERROR}
  5953. SSL2_PE_UNDEFINED_ERROR = $0000;
  5954. {$EXTERNALSYM SSL2_PE_UNSUPPORTED_CERTIFICATE_TYPE}
  5955. SSL2_PE_UNSUPPORTED_CERTIFICATE_TYPE = $0006;
  5956. {$EXTERNALSYM SSL2_SSL_SESSION_ID_LENGTH}
  5957. SSL2_SSL_SESSION_ID_LENGTH = 16;
  5958. {$EXTERNALSYM SSL2_ST_CLIENT_START_ENCRYPTION}
  5959. SSL2_ST_CLIENT_START_ENCRYPTION = $80 or SSL_ST_CONNECT;
  5960. {$EXTERNALSYM SSL2_ST_GET_CLIENT_FINISHED_A}
  5961. SSL2_ST_GET_CLIENT_FINISHED_A = $50 or SSL_ST_ACCEPT;
  5962. {$EXTERNALSYM SSL2_ST_GET_CLIENT_FINISHED_B}
  5963. SSL2_ST_GET_CLIENT_FINISHED_B = $51 or SSL_ST_ACCEPT;
  5964. {$EXTERNALSYM SSL2_ST_GET_CLIENT_HELLO_A}
  5965. SSL2_ST_GET_CLIENT_HELLO_A = $10 or SSL_ST_ACCEPT;
  5966. {$EXTERNALSYM SSL2_ST_GET_CLIENT_HELLO_B}
  5967. SSL2_ST_GET_CLIENT_HELLO_B = $11 or SSL_ST_ACCEPT;
  5968. {$EXTERNALSYM SSL2_ST_GET_CLIENT_HELLO_C}
  5969. SSL2_ST_GET_CLIENT_HELLO_C = $12 or SSL_ST_ACCEPT;
  5970. {$EXTERNALSYM SSL2_ST_GET_CLIENT_MASTER_KEY_A}
  5971. SSL2_ST_GET_CLIENT_MASTER_KEY_A = $30 or SSL_ST_ACCEPT;
  5972. {$EXTERNALSYM SSL2_ST_GET_CLIENT_MASTER_KEY_B}
  5973. SSL2_ST_GET_CLIENT_MASTER_KEY_B = $31 or SSL_ST_ACCEPT;
  5974. {$EXTERNALSYM SSL2_ST_GET_SERVER_FINISHED_A}
  5975. SSL2_ST_GET_SERVER_FINISHED_A = $70 or SSL_ST_CONNECT;
  5976. {$EXTERNALSYM SSL2_ST_GET_SERVER_FINISHED_B}
  5977. SSL2_ST_GET_SERVER_FINISHED_B = $71 or SSL_ST_CONNECT;
  5978. {$EXTERNALSYM SSL2_ST_GET_SERVER_HELLO_A}
  5979. SSL2_ST_GET_SERVER_HELLO_A = $20 or SSL_ST_CONNECT;
  5980. {$EXTERNALSYM SSL2_ST_GET_SERVER_HELLO_B}
  5981. SSL2_ST_GET_SERVER_HELLO_B = $21 or SSL_ST_CONNECT;
  5982. {$EXTERNALSYM SSL2_ST_GET_SERVER_VERIFY_A}
  5983. SSL2_ST_GET_SERVER_VERIFY_A = $60 or SSL_ST_CONNECT;
  5984. {$EXTERNALSYM SSL2_ST_GET_SERVER_VERIFY_B}
  5985. SSL2_ST_GET_SERVER_VERIFY_B = $61 or SSL_ST_CONNECT;
  5986. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_CERTIFICATE_A}
  5987. SSL2_ST_SEND_CLIENT_CERTIFICATE_A = $50 or SSL_ST_CONNECT;
  5988. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_CERTIFICATE_B}
  5989. SSL2_ST_SEND_CLIENT_CERTIFICATE_B = $51 or SSL_ST_CONNECT;
  5990. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_CERTIFICATE_C}
  5991. SSL2_ST_SEND_CLIENT_CERTIFICATE_C = $52 or SSL_ST_CONNECT;
  5992. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_CERTIFICATE_D}
  5993. SSL2_ST_SEND_CLIENT_CERTIFICATE_D = $53 or SSL_ST_CONNECT;
  5994. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_FINISHED_A}
  5995. SSL2_ST_SEND_CLIENT_FINISHED_A = $40 or SSL_ST_CONNECT;
  5996. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_FINISHED_B}
  5997. SSL2_ST_SEND_CLIENT_FINISHED_B = $41 or SSL_ST_CONNECT;
  5998. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_HELLO_A}
  5999. SSL2_ST_SEND_CLIENT_HELLO_A = $10 or SSL_ST_CONNECT;
  6000. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_HELLO_B}
  6001. SSL2_ST_SEND_CLIENT_HELLO_B = $11 or SSL_ST_CONNECT;
  6002. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_MASTER_KEY_A}
  6003. SSL2_ST_SEND_CLIENT_MASTER_KEY_A = $30 or SSL_ST_CONNECT;
  6004. {$EXTERNALSYM SSL2_ST_SEND_CLIENT_MASTER_KEY_B}
  6005. SSL2_ST_SEND_CLIENT_MASTER_KEY_B = $31 or SSL_ST_CONNECT;
  6006. {$EXTERNALSYM SSL2_ST_SEND_REQUEST_CERTIFICATE_A}
  6007. SSL2_ST_SEND_REQUEST_CERTIFICATE_A = $70 or SSL_ST_ACCEPT;
  6008. {$EXTERNALSYM SSL2_ST_SEND_REQUEST_CERTIFICATE_B}
  6009. SSL2_ST_SEND_REQUEST_CERTIFICATE_B = $71 or SSL_ST_ACCEPT;
  6010. {$EXTERNALSYM SSL2_ST_SEND_REQUEST_CERTIFICATE_C}
  6011. SSL2_ST_SEND_REQUEST_CERTIFICATE_C = $72 or SSL_ST_ACCEPT;
  6012. {$EXTERNALSYM SSL2_ST_SEND_REQUEST_CERTIFICATE_D}
  6013. SSL2_ST_SEND_REQUEST_CERTIFICATE_D = $73 or SSL_ST_ACCEPT;
  6014. {$EXTERNALSYM SSL2_ST_SEND_SERVER_FINISHED_A}
  6015. SSL2_ST_SEND_SERVER_FINISHED_A = $60 or SSL_ST_ACCEPT;
  6016. {$EXTERNALSYM SSL2_ST_SEND_SERVER_FINISHED_B}
  6017. SSL2_ST_SEND_SERVER_FINISHED_B = $61 or SSL_ST_ACCEPT;
  6018. {$EXTERNALSYM SSL2_ST_SEND_SERVER_HELLO_A}
  6019. SSL2_ST_SEND_SERVER_HELLO_A = $20 or SSL_ST_ACCEPT;
  6020. {$EXTERNALSYM SSL2_ST_SEND_SERVER_HELLO_B}
  6021. SSL2_ST_SEND_SERVER_HELLO_B = $21 or SSL_ST_ACCEPT;
  6022. {$EXTERNALSYM SSL2_ST_SEND_SERVER_VERIFY_A}
  6023. SSL2_ST_SEND_SERVER_VERIFY_A = $40 or SSL_ST_ACCEPT;
  6024. {$EXTERNALSYM SSL2_ST_SEND_SERVER_VERIFY_B}
  6025. SSL2_ST_SEND_SERVER_VERIFY_B = $41 or SSL_ST_ACCEPT;
  6026. {$EXTERNALSYM SSL2_ST_SEND_SERVER_VERIFY_C}
  6027. SSL2_ST_SEND_SERVER_VERIFY_C = $42 or SSL_ST_ACCEPT;
  6028. {$EXTERNALSYM SSL2_ST_SERVER_START_ENCRYPTION}
  6029. SSL2_ST_SERVER_START_ENCRYPTION = $80 or SSL_ST_ACCEPT;
  6030. {$EXTERNALSYM SSL2_ST_X509_GET_CLIENT_CERTIFICATE}
  6031. SSL2_ST_X509_GET_CLIENT_CERTIFICATE = $90 or SSL_ST_CONNECT;
  6032. {$EXTERNALSYM SSL2_ST_X509_GET_SERVER_CERTIFICATE}
  6033. SSL2_ST_X509_GET_SERVER_CERTIFICATE = $90 or SSL_ST_ACCEPT;
  6034. {$EXTERNALSYM SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5}
  6035. SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 = 'DES-CBC3-MD5'; {Do not localize}
  6036. {$EXTERNALSYM SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA}
  6037. SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA = 'DES-CBC3-SHA'; {Do not localize}
  6038. {$EXTERNALSYM SSL2_TXT_DES_64_CBC_WITH_MD5}
  6039. SSL2_TXT_DES_64_CBC_WITH_MD5 = 'DES-CBC-MD5'; {Do not localize}
  6040. {$EXTERNALSYM SSL2_TXT_DES_64_CBC_WITH_SHA}
  6041. SSL2_TXT_DES_64_CBC_WITH_SHA = 'DES-CBC-SHA'; {Do not localize}
  6042. {$EXTERNALSYM SSL2_TXT_DES_64_CFB64_WITH_MD5_1}
  6043. SSL2_TXT_DES_64_CFB64_WITH_MD5_1 = 'DES-CFB-M1'; {Do not localize}
  6044. {$EXTERNALSYM SSL2_TXT_IDEA_128_CBC_WITH_MD5}
  6045. SSL2_TXT_IDEA_128_CBC_WITH_MD5 = 'IDEA-CBC-MD5'; {Do not localize}
  6046. {$EXTERNALSYM SSL2_TXT_NULL}
  6047. SSL2_TXT_NULL = 'NULL'; {Do not localize}
  6048. {$EXTERNALSYM SSL2_TXT_NULL_WITH_MD5}
  6049. SSL2_TXT_NULL_WITH_MD5 = 'NULL-MD5'; {Do not localize}
  6050. {$EXTERNALSYM SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5}
  6051. SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 = 'EXP-RC2-CBC-MD5'; {Do not localize}
  6052. {$EXTERNALSYM SSL2_TXT_RC2_128_CBC_WITH_MD5}
  6053. SSL2_TXT_RC2_128_CBC_WITH_MD5 = 'RC2-CBC-MD5'; {Do not localize}
  6054. {$EXTERNALSYM SSL2_TXT_RC4_128_EXPORT40_WITH_MD5}
  6055. SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 = 'EXP-RC4-MD5'; {Do not localize}
  6056. {$EXTERNALSYM SSL2_TXT_RC4_128_WITH_MD5}
  6057. SSL2_TXT_RC4_128_WITH_MD5 = 'RC4-MD5'; {Do not localize}
  6058. {$EXTERNALSYM SSL2_TXT_RC4_64_WITH_MD5}
  6059. SSL2_TXT_RC4_64_WITH_MD5 = 'RC4-64-MD5'; {Do not localize}
  6060. {$EXTERNALSYM SSL2_VERSION}
  6061. SSL2_VERSION = $0002;
  6062. {$EXTERNALSYM SSL2_VERSION_MAJOR}
  6063. SSL2_VERSION_MAJOR = $00;
  6064. {$EXTERNALSYM SSL2_VERSION_MINOR}
  6065. SSL2_VERSION_MINOR = $02;
  6066. {$EXTERNALSYM SSL3_AD_BAD_CERTIFICATE}
  6067. SSL3_AD_BAD_CERTIFICATE = 42;
  6068. {$EXTERNALSYM SSL3_AD_BAD_RECORD_MAC}
  6069. SSL3_AD_BAD_RECORD_MAC = 20;
  6070. {$EXTERNALSYM SSL3_AD_CERTIFICATE_EXPIRED}
  6071. SSL3_AD_CERTIFICATE_EXPIRED = 45;
  6072. {$EXTERNALSYM SSL3_AD_CERTIFICATE_REVOKED}
  6073. SSL3_AD_CERTIFICATE_REVOKED = 44;
  6074. {$EXTERNALSYM SSL3_AD_CERTIFICATE_UNKNOWN}
  6075. SSL3_AD_CERTIFICATE_UNKNOWN = 46;
  6076. {$EXTERNALSYM SSL3_AD_CLOSE_NOTIFY}
  6077. SSL3_AD_CLOSE_NOTIFY = 0;
  6078. {$EXTERNALSYM SSL3_AD_DECOMPRESSION_FAILURE}
  6079. SSL3_AD_DECOMPRESSION_FAILURE = 30;
  6080. {$EXTERNALSYM SSL3_AD_HANDSHAKE_FAILURE}
  6081. SSL3_AD_HANDSHAKE_FAILURE = 40;
  6082. {$EXTERNALSYM SSL3_AD_ILLEGAL_PARAMETER}
  6083. SSL3_AD_ILLEGAL_PARAMETER = 47;
  6084. {$EXTERNALSYM TLS1_HB_REQUEST}
  6085. TLS1_HB_REQUEST = 1;
  6086. {$EXTERNALSYM TLS1_HB_RESPONSE}
  6087. TLS1_HB_RESPONSE = 2;
  6088. {$EXTERNALSYM SSL3_AD_NO_CERTIFICATE}
  6089. SSL3_AD_NO_CERTIFICATE = 41;
  6090. {$EXTERNALSYM SSL3_AD_UNEXPECTED_MESSAGE}
  6091. SSL3_AD_UNEXPECTED_MESSAGE = 10;
  6092. {$EXTERNALSYM SSL3_AD_UNSUPPORTED_CERTIFICATE}
  6093. SSL3_AD_UNSUPPORTED_CERTIFICATE = 43;
  6094. {$EXTERNALSYM SSL3_AL_FATAL}
  6095. SSL3_AL_FATAL = 2;
  6096. {$EXTERNALSYM SSL3_AL_WARNING}
  6097. SSL3_AL_WARNING = 1;
  6098. {$EXTERNALSYM SSL3_CC_CLIENT}
  6099. SSL3_CC_CLIENT = $10;
  6100. {$EXTERNALSYM SSL3_CC_READ}
  6101. SSL3_CC_READ = $01;
  6102. {$EXTERNALSYM SSL3_CC_SERVER}
  6103. SSL3_CC_SERVER = $20;
  6104. {$EXTERNALSYM SSL3_CC_WRITE}
  6105. SSL3_CC_WRITE = $02;
  6106. {$EXTERNALSYM SSL3_CHANGE_CIPHER_CLIENT_READ}
  6107. SSL3_CHANGE_CIPHER_CLIENT_READ = SSL3_CC_CLIENT or SSL3_CC_READ;
  6108. {$EXTERNALSYM SSL3_CHANGE_CIPHER_CLIENT_WRITE}
  6109. SSL3_CHANGE_CIPHER_CLIENT_WRITE = SSL3_CC_CLIENT or SSL3_CC_WRITE;
  6110. {$EXTERNALSYM SSL3_CHANGE_CIPHER_SERVER_READ}
  6111. SSL3_CHANGE_CIPHER_SERVER_READ = SSL3_CC_SERVER or SSL3_CC_READ;
  6112. {$EXTERNALSYM SSL3_CHANGE_CIPHER_SERVER_WRITE}
  6113. SSL3_CHANGE_CIPHER_SERVER_WRITE = SSL3_CC_SERVER or SSL3_CC_WRITE;
  6114. {$EXTERNALSYM SSL3_CK_ADH_DES_192_CBC_SHA}
  6115. SSL3_CK_ADH_DES_192_CBC_SHA = $0300001B;
  6116. {$EXTERNALSYM SSL3_CK_ADH_DES_40_CBC_SHA}
  6117. SSL3_CK_ADH_DES_40_CBC_SHA = $03000019;
  6118. {$EXTERNALSYM SSL3_CK_ADH_DES_64_CBC_SHA}
  6119. SSL3_CK_ADH_DES_64_CBC_SHA = $0300001A;
  6120. {$EXTERNALSYM SSL3_CK_ADH_RC4_128_MD5}
  6121. SSL3_CK_ADH_RC4_128_MD5 = $03000018;
  6122. {$EXTERNALSYM SSL3_CK_ADH_RC4_40_MD5}
  6123. SSL3_CK_ADH_RC4_40_MD5 = $03000017;
  6124. {$EXTERNALSYM SSL3_CK_DH_DSS_DES_192_CBC3_SHA}
  6125. SSL3_CK_DH_DSS_DES_192_CBC3_SHA = $0300000D;
  6126. {$EXTERNALSYM SSL3_CK_DH_DSS_DES_40_CBC_SHA}
  6127. SSL3_CK_DH_DSS_DES_40_CBC_SHA = $0300000B;
  6128. {$EXTERNALSYM SSL3_CK_DH_DSS_DES_64_CBC_SHA}
  6129. SSL3_CK_DH_DSS_DES_64_CBC_SHA = $0300000C;
  6130. {$EXTERNALSYM SSL3_CK_DH_RSA_DES_192_CBC3_SHA}
  6131. SSL3_CK_DH_RSA_DES_192_CBC3_SHA = $03000010;
  6132. {$EXTERNALSYM SSL3_CK_DH_RSA_DES_40_CBC_SHA}
  6133. SSL3_CK_DH_RSA_DES_40_CBC_SHA = $0300000E;
  6134. {$EXTERNALSYM SSL3_CK_DH_RSA_DES_64_CBC_SHA}
  6135. SSL3_CK_DH_RSA_DES_64_CBC_SHA = $0300000F;
  6136. {$EXTERNALSYM SSL3_CK_EDH_DSS_DES_192_CBC3_SHA}
  6137. SSL3_CK_EDH_DSS_DES_192_CBC3_SHA = $03000013;
  6138. {$EXTERNALSYM SSL3_CK_EDH_DSS_DES_40_CBC_SHA}
  6139. SSL3_CK_EDH_DSS_DES_40_CBC_SHA = $03000011;
  6140. {$EXTERNALSYM SSL3_CK_EDH_DSS_DES_64_CBC_SHA}
  6141. SSL3_CK_EDH_DSS_DES_64_CBC_SHA = $03000012;
  6142. {$EXTERNALSYM SSL3_CK_EDH_RSA_DES_192_CBC3_SHA}
  6143. SSL3_CK_EDH_RSA_DES_192_CBC3_SHA = $03000016;
  6144. {$EXTERNALSYM SSL3_CK_EDH_RSA_DES_40_CBC_SHA}
  6145. SSL3_CK_EDH_RSA_DES_40_CBC_SHA = $03000014;
  6146. {$EXTERNALSYM SSL3_CK_EDH_RSA_DES_64_CBC_SHA}
  6147. SSL3_CK_EDH_RSA_DES_64_CBC_SHA = $03000015;
  6148. {$EXTERNALSYM SSL3_CK_FZA_DMS_FZA_SHA}
  6149. SSL3_CK_FZA_DMS_FZA_SHA = $0300001D;
  6150. {$EXTERNALSYM SSL3_CK_FZA_DMS_NULL_SHA}
  6151. SSL3_CK_FZA_DMS_NULL_SHA = $0300001C;
  6152. {$EXTERNALSYM SSL3_CK_FZA_DMS_RC4_SHA}
  6153. SSL3_CK_FZA_DMS_RC4_SHA = $0300001E;
  6154. {$EXTERNALSYM SSL3_CK_RSA_DES_192_CBC3_SHA}
  6155. SSL3_CK_RSA_DES_192_CBC3_SHA = $0300000A;
  6156. {$EXTERNALSYM SSL3_CK_RSA_DES_40_CBC_SHA}
  6157. SSL3_CK_RSA_DES_40_CBC_SHA = $03000008;
  6158. {$EXTERNALSYM SSL3_CK_RSA_DES_64_CBC_SHA}
  6159. SSL3_CK_RSA_DES_64_CBC_SHA = $03000009;
  6160. {$EXTERNALSYM SSL3_CK_RSA_IDEA_128_SHA}
  6161. SSL3_CK_RSA_IDEA_128_SHA = $03000007;
  6162. //* Signalling cipher suite value: from draft-ietf-tls-renegotiation-03.txt */
  6163. {$EXTERNALSYM SSL3_CK_SCSV}
  6164. SSL3_CK_SCSV = $030000FF;
  6165. {$EXTERNALSYM SSL3_CK_RSA_NULL_MD5}
  6166. SSL3_CK_RSA_NULL_MD5 = $03000001;
  6167. {$EXTERNALSYM SSL3_CK_RSA_NULL_SHA}
  6168. SSL3_CK_RSA_NULL_SHA = $03000002;
  6169. {$EXTERNALSYM SSL3_CK_RSA_RC2_40_MD5}
  6170. SSL3_CK_RSA_RC2_40_MD5 = $03000006;
  6171. {$EXTERNALSYM SSL3_CK_RSA_RC4_128_MD5}
  6172. SSL3_CK_RSA_RC4_128_MD5 = $03000004;
  6173. {$EXTERNALSYM SSL3_CK_RSA_RC4_128_SHA}
  6174. SSL3_CK_RSA_RC4_128_SHA = $03000005;
  6175. {$EXTERNALSYM SSL3_CK_RSA_RC4_40_MD5}
  6176. SSL3_CK_RSA_RC4_40_MD5 = $03000003;
  6177. {$EXTERNALSYM SSL3_CT_RSA_SIGN}
  6178. SSL3_CT_RSA_SIGN = 1;
  6179. {$EXTERNALSYM SSL3_CT_DSS_SIGN}
  6180. SSL3_CT_DSS_SIGN = 2;
  6181. {$EXTERNALSYM SSL3_CT_RSA_FIXED_DH}
  6182. SSL3_CT_RSA_FIXED_DH = 3;
  6183. {$EXTERNALSYM SSL3_CT_DSS_FIXED_DH}
  6184. SSL3_CT_DSS_FIXED_DH = 4;
  6185. {$EXTERNALSYM SSL3_CT_RSA_EPHEMERAL_DH}
  6186. SSL3_CT_RSA_EPHEMERAL_DH = 5;
  6187. {$EXTERNALSYM SSL3_CT_DSS_EPHEMERAL_DH}
  6188. SSL3_CT_DSS_EPHEMERAL_DH = 6;
  6189. {$EXTERNALSYM SSL3_CT_FORTEZZA_DMS}
  6190. SSL3_CT_FORTEZZA_DMS = 20;
  6191. {$EXTERNALSYM SSL3_CT_NUMBER}
  6192. SSL3_CT_NUMBER = 9; //was 7;
  6193. {$EXTERNALSYM SSL3_FLAGS_DELAY_CLIENT_FINISHED}
  6194. SSL3_FLAGS_DELAY_CLIENT_FINISHED = $0002;
  6195. {$EXTERNALSYM SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS}
  6196. SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS = $0001;
  6197. {$EXTERNALSYM SSL3_FLAGS_POP_BUFFER}
  6198. SSL3_FLAGS_POP_BUFFER = $0004;
  6199. {$EXTERNALSYM TLS1_FLAGS_TLS_PADDING_BUG}
  6200. TLS1_FLAGS_TLS_PADDING_BUG = $0008;
  6201. {$EXTERNALSYM TLS1_FLAGS_SKIP_CERT_VERIFY}
  6202. TLS1_FLAGS_SKIP_CERT_VERIFY = $0010;
  6203. {$EXTERNALSYM TLS1_FLAGS_KEEP_HANDSHAKE}
  6204. TLS1_FLAGS_KEEP_HANDSHAKE = $0020;
  6205. {* SSL3_FLAGS_SGC_RESTART_DONE is set when we
  6206. * restart a handshake because of MS SGC and so prevents us
  6207. * from restarting the handshake in a loop. It's reset on a
  6208. * renegotiation, so effectively limits the client to one restart
  6209. * per negotiation. This limits the possibility of a DDoS
  6210. * attack where the client handshakes in a loop using SGC to
  6211. * restart. Servers which permit renegotiation can still be
  6212. * effected, but we can't prevent that.
  6213. *}
  6214. {$EXTERNALSYM SSL3_FLAGS_SGC_RESTART_DONE}
  6215. SSL3_FLAGS_SGC_RESTART_DONE = $0040;
  6216. {$EXTERNALSYM SSL3_MASTER_SECRET_SIZE}
  6217. SSL3_MASTER_SECRET_SIZE = 48;
  6218. {$EXTERNALSYM SSL3_MAX_SSL_SESSION_ID_LENGTH}
  6219. SSL3_MAX_SSL_SESSION_ID_LENGTH = 32;
  6220. {$EXTERNALSYM SSL3_MT_HELLO_REQUEST}
  6221. SSL3_MT_HELLO_REQUEST = 0;
  6222. {$EXTERNALSYM SSL3_MT_CLIENT_REQUEST}
  6223. SSL3_MT_CLIENT_REQUEST = 0;
  6224. {$EXTERNALSYM SSL3_MT_CLIENT_HELLO}
  6225. SSL3_MT_CLIENT_HELLO = 1;
  6226. {$EXTERNALSYM SSL3_MT_SERVER_HELLO}
  6227. SSL3_MT_SERVER_HELLO = 2;
  6228. {$EXTERNALSYM SSL3_MT_NEWSESSION_TICKET}
  6229. SSL3_MT_NEWSESSION_TICKET = 4;
  6230. {$EXTERNALSYM SSL3_MT_CERTIFICATE}
  6231. SSL3_MT_CERTIFICATE = 11;
  6232. {$EXTERNALSYM SSL3_MT_SERVER_KEY_EXCHANGE}
  6233. SSL3_MT_SERVER_KEY_EXCHANGE = 12;
  6234. {$EXTERNALSYM SSL3_MT_CERTIFICATE_REQUEST}
  6235. SSL3_MT_CERTIFICATE_REQUEST = 13;
  6236. {$EXTERNALSYM SSL3_MT_SERVER_DONE}
  6237. SSL3_MT_SERVER_DONE = 14;
  6238. {$EXTERNALSYM SSL3_MT_CERTIFICATE_VERIFY}
  6239. SSL3_MT_CERTIFICATE_VERIFY = 15;
  6240. {$EXTERNALSYM SSL3_MT_CLIENT_KEY_EXCHANGE}
  6241. SSL3_MT_CLIENT_KEY_EXCHANGE = 16;
  6242. {$EXTERNALSYM SSL3_MT_FINISHED}
  6243. SSL3_MT_FINISHED = 20;
  6244. {$EXTERNALSYM SSL3_MT_CERTIFICATE_STATUS}
  6245. SSL3_MT_CERTIFICATE_STATUS = 22;
  6246. {$EXTERNALSYM SSL3_MT_NEXT_PROTO}
  6247. SSL3_MT_NEXT_PROTO = 67;
  6248. {$EXTERNALSYM DTLS1_MT_HELLO_VERIFY_REQUEST}
  6249. DTLS1_MT_HELLO_VERIFY_REQUEST = 3;
  6250. {$EXTERNALSYM SSL3_MT_CCS}
  6251. SSL3_MT_CCS = 1;
  6252. {$EXTERNALSYM SSL3_RANDOM_SIZE}
  6253. SSL3_RANDOM_SIZE = 32;
  6254. {$EXTERNALSYM SSL3_RS_BLANK}
  6255. SSL3_RS_BLANK = 1;
  6256. {$EXTERNALSYM SSL3_RS_ENCODED}
  6257. SSL3_RS_ENCODED = 2;
  6258. {$EXTERNALSYM SSL3_RS_PART_READ}
  6259. SSL3_RS_PART_READ = 4;
  6260. {$EXTERNALSYM SSL3_RS_PART_WRITE}
  6261. SSL3_RS_PART_WRITE = 5;
  6262. {$EXTERNALSYM SSL3_RS_PLAIN}
  6263. SSL3_RS_PLAIN = 3;
  6264. {$EXTERNALSYM SSL3_RS_READ_MORE}
  6265. SSL3_RS_READ_MORE = 3;
  6266. {$EXTERNALSYM SSL3_RT_ALERT}
  6267. SSL3_RT_ALERT = 21;
  6268. {$EXTERNALSYM SSL3_RT_APPLICATION_DATA}
  6269. SSL3_RT_APPLICATION_DATA = 23;
  6270. {$EXTERNALSYM TLS1_RT_HEARTBEAT}
  6271. TLS1_RT_HEARTBEAT = 24;
  6272. {$EXTERNALSYM SSL3_RT_CHANGE_CIPHER_SPEC}
  6273. SSL3_RT_CHANGE_CIPHER_SPEC = 20;
  6274. {$EXTERNALSYM SSL3_RT_HANDSHAKE}
  6275. SSL3_RT_HANDSHAKE = 22;
  6276. {$EXTERNALSYM SSL3_RT_HEADER_LENGTH}
  6277. SSL3_RT_HEADER_LENGTH = 5;
  6278. {$EXTERNALSYM SSL3_RT_MAX_MD_SIZE}
  6279. SSL3_RT_MAX_MD_SIZE = 64;
  6280. {$EXTERNALSYM SSL_RT_MAX_CIPHER_BLOCK_SIZE}
  6281. SSL_RT_MAX_CIPHER_BLOCK_SIZE = 16;
  6282. {$EXTERNALSYM SSL3_RT_MAX_EXTRA}
  6283. SSL3_RT_MAX_EXTRA = (16384);
  6284. {$EXTERNALSYM SSL3_RT_MAX_PLAIN_LENGTH}
  6285. SSL3_RT_MAX_PLAIN_LENGTH = 16384;
  6286. {$EXTERNALSYM SSL3_RT_MAX_COMPRESSED_OVERHEAD}
  6287. SSL3_RT_MAX_COMPRESSED_OVERHEAD = 1024;
  6288. {$EXTERNALSYM SSL3_RT_MAX_ENCRYPTED_OVERHEAD}
  6289. SSL3_RT_MAX_ENCRYPTED_OVERHEAD = (256 + SSL3_RT_MAX_MD_SIZE);
  6290. {$EXTERNALSYM SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD}
  6291. SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD = (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE);
  6292. {$EXTERNALSYM SSL3_RT_MAX_COMPRESSED_LENGTH}
  6293. {$ifdef OPENSSL_NO_COMP}
  6294. SSL3_RT_MAX_COMPRESSED_LENGTH = SSL3_RT_MAX_PLAIN_LENGTH;
  6295. {$else}
  6296. SSL3_RT_MAX_COMPRESSED_LENGTH =
  6297. (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD);
  6298. {$endif}
  6299. {$EXTERNALSYM SSL3_RT_MAX_ENCRYPTED_LENGTH}
  6300. SSL3_RT_MAX_ENCRYPTED_LENGTH =
  6301. (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH);
  6302. {$EXTERNALSYM SSL3_RT_MAX_PACKET_SIZE}
  6303. SSL3_RT_MAX_PACKET_SIZE =
  6304. (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH);
  6305. {$EXTERNALSYM SSL3_RT_MAX_DATA_SIZE}
  6306. SSL3_RT_MAX_DATA_SIZE = 1024*1024;
  6307. {$EXTERNALSYM SSL3_SESSION_ID_SIZE}
  6308. SSL3_SESSION_ID_SIZE = 32;
  6309. {$EXTERNALSYM SSL3_SSL_SESSION_ID_LENGTH}
  6310. SSL3_SSL_SESSION_ID_LENGTH = 32;
  6311. {$EXTERNALSYM SSL3_ST_CR_CERT_A}
  6312. SSL3_ST_CR_CERT_A = $130 or SSL_ST_CONNECT;
  6313. {$EXTERNALSYM SSL3_ST_CR_CERT_B}
  6314. SSL3_ST_CR_CERT_B = $131 or SSL_ST_CONNECT;
  6315. {$EXTERNALSYM SSL3_ST_CR_CERT_REQ_A}
  6316. SSL3_ST_CR_CERT_REQ_A = $150 or SSL_ST_CONNECT;
  6317. {$EXTERNALSYM SSL3_ST_CR_CERT_REQ_B}
  6318. SSL3_ST_CR_CERT_REQ_B = $151 or SSL_ST_CONNECT;
  6319. {$EXTERNALSYM SSL3_ST_CR_CHANGE_A}
  6320. SSL3_ST_CR_CHANGE_A = $1C0 or SSL_ST_CONNECT;
  6321. {$EXTERNALSYM SSL3_ST_CR_CHANGE_B}
  6322. SSL3_ST_CR_CHANGE_B = $1C1 or SSL_ST_CONNECT;
  6323. {$EXTERNALSYM SSL3_ST_CR_FINISHED_A}
  6324. SSL3_ST_CR_FINISHED_A = $1D0 or SSL_ST_CONNECT;
  6325. {$EXTERNALSYM SSL3_ST_CR_FINISHED_B}
  6326. SSL3_ST_CR_FINISHED_B = $1D1 or SSL_ST_CONNECT;
  6327. {$EXTERNALSYM SSL3_ST_CR_SESSION_TICKET_A}
  6328. SSL3_ST_CR_SESSION_TICKET_A = ($1E0 or SSL_ST_CONNECT);
  6329. {$EXTERNALSYM SSL3_ST_CR_SESSION_TICKET_B}
  6330. SSL3_ST_CR_SESSION_TICKET_B = ($1E1 or SSL_ST_CONNECT);
  6331. {$EXTERNALSYM SSL3_ST_CR_CERT_STATUS_A}
  6332. SSL3_ST_CR_CERT_STATUS_A = ($1F0 or SSL_ST_CONNECT);
  6333. {$EXTERNALSYM SSL3_ST_CR_CERT_STATUS_B}
  6334. SSL3_ST_CR_CERT_STATUS_B = ($1F1 or SSL_ST_CONNECT);
  6335. {$EXTERNALSYM SSL3_ST_CR_KEY_EXCH_A}
  6336. SSL3_ST_CR_KEY_EXCH_A = $140 or SSL_ST_CONNECT;
  6337. {$EXTERNALSYM SSL3_ST_CR_KEY_EXCH_B}
  6338. SSL3_ST_CR_KEY_EXCH_B = $141 or SSL_ST_CONNECT;
  6339. {$EXTERNALSYM SSL3_ST_CR_SRVR_DONE_A}
  6340. SSL3_ST_CR_SRVR_DONE_A = $160 or SSL_ST_CONNECT;
  6341. {$EXTERNALSYM SSL3_ST_CR_SRVR_DONE_B}
  6342. SSL3_ST_CR_SRVR_DONE_B = $161 or SSL_ST_CONNECT;
  6343. {$EXTERNALSYM SSL3_ST_CR_SRVR_HELLO_A}
  6344. SSL3_ST_CR_SRVR_HELLO_A = $120 or SSL_ST_CONNECT;
  6345. {$EXTERNALSYM SSL3_ST_CR_SRVR_HELLO_B}
  6346. SSL3_ST_CR_SRVR_HELLO_B = $121 or SSL_ST_CONNECT;
  6347. {$EXTERNALSYM SSL3_ST_CW_CERT_A}
  6348. SSL3_ST_CW_CERT_A = $170 or SSL_ST_CONNECT;
  6349. {$EXTERNALSYM SSL3_ST_CW_CERT_B}
  6350. SSL3_ST_CW_CERT_B = $171 or SSL_ST_CONNECT;
  6351. {$EXTERNALSYM SSL3_ST_CW_CERT_C}
  6352. SSL3_ST_CW_CERT_C = $172 or SSL_ST_CONNECT;
  6353. {$EXTERNALSYM SSL3_ST_CW_CERT_D}
  6354. SSL3_ST_CW_CERT_D = $173 or SSL_ST_CONNECT;
  6355. {$EXTERNALSYM SSL3_ST_CW_CERT_VRFY_A}
  6356. SSL3_ST_CW_CERT_VRFY_A = $190 or SSL_ST_CONNECT;
  6357. {$EXTERNALSYM SSL3_ST_CW_CERT_VRFY_B}
  6358. SSL3_ST_CW_CERT_VRFY_B = $191 or SSL_ST_CONNECT;
  6359. {$EXTERNALSYM SSL3_ST_CW_CHANGE_A}
  6360. SSL3_ST_CW_CHANGE_A = $1A0 or SSL_ST_CONNECT;
  6361. {$EXTERNALSYM SSL3_ST_CW_CHANGE_B}
  6362. SSL3_ST_CW_CHANGE_B = $1A1 or SSL_ST_CONNECT;
  6363. {$EXTERNALSYM SSL3_ST_CW_NEXT_PROTO_A}
  6364. SSL3_ST_CW_NEXT_PROTO_A = ($200 or SSL_ST_CONNECT);
  6365. {$EXTERNALSYM SSL3_ST_CW_NEXT_PROTO_B}
  6366. SSL3_ST_CW_NEXT_PROTO_B = ($201 or SSL_ST_CONNECT);
  6367. {$ifndef OPENSSL_NO_SCTP}
  6368. {$EXTERNALSYM DTLS1_SCTP_ST_CW_WRITE_SOCK}
  6369. DTLS1_SCTP_ST_CW_WRITE_SOCK = $310 or SSL_ST_CONNECT;
  6370. {$EXTERNALSYM DTLS1_SCTP_ST_CR_READ_SOCK}
  6371. DTLS1_SCTP_ST_CR_READ_SOCK = $320 or SSL_ST_CONNECT;
  6372. {$endif}
  6373. {$EXTERNALSYM SSL3_ST_CW_CLNT_HELLO_A}
  6374. SSL3_ST_CW_CLNT_HELLO_A = $110 or SSL_ST_CONNECT;
  6375. {$EXTERNALSYM SSL3_ST_CW_CLNT_HELLO_B}
  6376. SSL3_ST_CW_CLNT_HELLO_B = $111 or SSL_ST_CONNECT;
  6377. {$EXTERNALSYM SSL3_ST_CW_FINISHED_A}
  6378. SSL3_ST_CW_FINISHED_A = $1B0 or SSL_ST_CONNECT;
  6379. {$EXTERNALSYM SSL3_ST_CW_FINISHED_B}
  6380. SSL3_ST_CW_FINISHED_B = $1B1 or SSL_ST_CONNECT;
  6381. {$EXTERNALSYM SSL3_ST_CW_FLUSH}
  6382. SSL3_ST_CW_FLUSH = $100 or SSL_ST_CONNECT;
  6383. {$EXTERNALSYM SSL3_ST_CW_KEY_EXCH_A}
  6384. SSL3_ST_CW_KEY_EXCH_A = $180 or SSL_ST_CONNECT;
  6385. {$EXTERNALSYM SSL3_ST_CW_KEY_EXCH_B}
  6386. SSL3_ST_CW_KEY_EXCH_B = $181 or SSL_ST_CONNECT;
  6387. {$EXTERNALSYM SSL3_ST_SR_CERT_A}
  6388. SSL3_ST_SR_CERT_A = $180 or SSL_ST_ACCEPT;
  6389. {$EXTERNALSYM SSL3_ST_SR_CERT_B}
  6390. SSL3_ST_SR_CERT_B = $181 or SSL_ST_ACCEPT;
  6391. {$EXTERNALSYM SSL3_ST_SR_CERT_VRFY_A}
  6392. SSL3_ST_SR_CERT_VRFY_A = $1A0 or SSL_ST_ACCEPT;
  6393. {$EXTERNALSYM SSL3_ST_SR_CERT_VRFY_B}
  6394. SSL3_ST_SR_CERT_VRFY_B = $1A1 or SSL_ST_ACCEPT;
  6395. {$EXTERNALSYM SSL3_ST_SR_CHANGE_A}
  6396. SSL3_ST_SR_CHANGE_A = $1B0 or SSL_ST_ACCEPT;
  6397. {$EXTERNALSYM SSL3_ST_SR_CHANGE_B}
  6398. SSL3_ST_SR_CHANGE_B = $1B1 or SSL_ST_ACCEPT;
  6399. {$EXTERNALSYM SSL3_ST_SR_NEXT_PROTO_A}
  6400. SSL3_ST_SR_NEXT_PROTO_A = ($210 or SSL_ST_ACCEPT);
  6401. {$EXTERNALSYM SSL3_ST_SR_NEXT_PROTO_B}
  6402. SSL3_ST_SR_NEXT_PROTO_B = ($211 or SSL_ST_ACCEPT);
  6403. {$EXTERNALSYM SSL3_ST_SR_CLNT_HELLO_A}
  6404. SSL3_ST_SR_CLNT_HELLO_A = $110 or SSL_ST_ACCEPT;
  6405. {$EXTERNALSYM SSL3_ST_SR_CLNT_HELLO_B}
  6406. SSL3_ST_SR_CLNT_HELLO_B = $111 or SSL_ST_ACCEPT;
  6407. {$EXTERNALSYM SSL3_ST_SR_CLNT_HELLO_C}
  6408. SSL3_ST_SR_CLNT_HELLO_C = $112 or SSL_ST_ACCEPT;
  6409. {$EXTERNALSYM SSL3_ST_SR_FINISHED_A}
  6410. SSL3_ST_SR_FINISHED_A = $1C0 or SSL_ST_ACCEPT;
  6411. {$EXTERNALSYM SSL3_ST_SR_FINISHED_B}
  6412. SSL3_ST_SR_FINISHED_B = $1C1 or SSL_ST_ACCEPT;
  6413. {$EXTERNALSYM SSL3_ST_SR_KEY_EXCH_A}
  6414. SSL3_ST_SR_KEY_EXCH_A = $190 or SSL_ST_ACCEPT;
  6415. {$EXTERNALSYM SSL3_ST_SR_KEY_EXCH_B}
  6416. SSL3_ST_SR_KEY_EXCH_B = $191 or SSL_ST_ACCEPT;
  6417. {$EXTERNALSYM SSL3_ST_SW_CERT_A}
  6418. SSL3_ST_SW_CERT_A = $140 or SSL_ST_ACCEPT;
  6419. {$EXTERNALSYM SSL3_ST_SW_CERT_B}
  6420. SSL3_ST_SW_CERT_B = $141 or SSL_ST_ACCEPT;
  6421. {$EXTERNALSYM SSL3_ST_SW_CERT_REQ_A}
  6422. SSL3_ST_SW_CERT_REQ_A = $160 or SSL_ST_ACCEPT;
  6423. {$EXTERNALSYM SSL3_ST_SW_CERT_REQ_B}
  6424. SSL3_ST_SW_CERT_REQ_B = $161 or SSL_ST_ACCEPT;
  6425. {$EXTERNALSYM SSL3_ST_SW_CHANGE_A}
  6426. SSL3_ST_SW_CHANGE_A = $1D0 or SSL_ST_ACCEPT;
  6427. {$EXTERNALSYM SSL3_ST_SW_CHANGE_B}
  6428. SSL3_ST_SW_CHANGE_B = $1D1 or SSL_ST_ACCEPT;
  6429. {$EXTERNALSYM SSL3_ST_SW_FINISHED_A}
  6430. SSL3_ST_SW_FINISHED_A = $1E0 or SSL_ST_ACCEPT;
  6431. {$EXTERNALSYM SSL3_ST_SW_FINISHED_B}
  6432. SSL3_ST_SW_FINISHED_B = $1E1 or SSL_ST_ACCEPT;
  6433. {$EXTERNALSYM SSL3_ST_SW_SESSION_TICKET_A}
  6434. SSL3_ST_SW_SESSION_TICKET_A = ($1F0 or SSL_ST_ACCEPT);
  6435. {$EXTERNALSYM SSL3_ST_SW_SESSION_TICKET_B}
  6436. SSL3_ST_SW_SESSION_TICKET_B = ($1F1 or SSL_ST_ACCEPT);
  6437. {$EXTERNALSYM SSL3_ST_SW_CERT_STATUS_A}
  6438. SSL3_ST_SW_CERT_STATUS_A = ($200 or SSL_ST_ACCEPT);
  6439. {$EXTERNALSYM SSL3_ST_SW_CERT_STATUS_B}
  6440. SSL3_ST_SW_CERT_STATUS_B = ($201 or SSL_ST_ACCEPT);
  6441. {$EXTERNALSYM SSL3_ST_SW_FLUSH}
  6442. SSL3_ST_SW_FLUSH = $100 or SSL_ST_ACCEPT;
  6443. {$ifndef OPENSSL_NO_SCTP}
  6444. {$EXTERNALSYM DTLS1_SCTP_ST_SW_WRITE_SOCK}
  6445. DTLS1_SCTP_ST_SW_WRITE_SOCK = ($310 or SSL_ST_ACCEPT);
  6446. {$EXTERNALSYM DTLS1_SCTP_ST_SR_READ_SOCK}
  6447. DTLS1_SCTP_ST_SR_READ_SOCK = ($320 or SSL_ST_ACCEPT);
  6448. {$endif}
  6449. {$EXTERNALSYM SSL3_ST_SW_HELLO_REQ_A}
  6450. SSL3_ST_SW_HELLO_REQ_A = $120 or SSL_ST_ACCEPT;
  6451. {$EXTERNALSYM SSL3_ST_SW_HELLO_REQ_B}
  6452. SSL3_ST_SW_HELLO_REQ_B = $121 or SSL_ST_ACCEPT;
  6453. {$EXTERNALSYM SSL3_ST_SW_HELLO_REQ_C}
  6454. SSL3_ST_SW_HELLO_REQ_C = $122 or SSL_ST_ACCEPT;
  6455. {$EXTERNALSYM SSL3_ST_SW_KEY_EXCH_A}
  6456. SSL3_ST_SW_KEY_EXCH_A = $150 or SSL_ST_ACCEPT;
  6457. {$EXTERNALSYM SSL3_ST_SW_KEY_EXCH_B}
  6458. SSL3_ST_SW_KEY_EXCH_B = $151 or SSL_ST_ACCEPT;
  6459. {$EXTERNALSYM SSL3_ST_SW_SRVR_DONE_A}
  6460. SSL3_ST_SW_SRVR_DONE_A = $170 or SSL_ST_ACCEPT;
  6461. {$EXTERNALSYM SSL3_ST_SW_SRVR_DONE_B}
  6462. SSL3_ST_SW_SRVR_DONE_B = $171 or SSL_ST_ACCEPT;
  6463. {$EXTERNALSYM SSL3_ST_SW_SRVR_HELLO_A}
  6464. SSL3_ST_SW_SRVR_HELLO_A = $130 or SSL_ST_ACCEPT;
  6465. {$EXTERNALSYM SSL3_ST_SW_SRVR_HELLO_B}
  6466. SSL3_ST_SW_SRVR_HELLO_B = $131 or SSL_ST_ACCEPT;
  6467. {$EXTERNALSYM SSL3_TXT_ADH_DES_192_CBC_SHA}
  6468. SSL3_TXT_ADH_DES_192_CBC_SHA = 'ADH-DES-CBC3-SHA'; {Do not localize}
  6469. {$EXTERNALSYM SSL3_TXT_ADH_DES_40_CBC_SHA}
  6470. SSL3_TXT_ADH_DES_40_CBC_SHA = 'EXP-ADH-DES-CBC-SHA'; {Do not localize}
  6471. {$EXTERNALSYM SSL3_TXT_ADH_DES_64_CBC_SHA}
  6472. SSL3_TXT_ADH_DES_64_CBC_SHA = 'ADH-DES-CBC-SHA'; {Do not localize}
  6473. {$EXTERNALSYM SSL3_TXT_ADH_RC4_128_MD5}
  6474. SSL3_TXT_ADH_RC4_128_MD5 = 'ADH-RC4-MD5'; {Do not localize}
  6475. {$EXTERNALSYM SSL3_TXT_ADH_RC4_40_MD5}
  6476. SSL3_TXT_ADH_RC4_40_MD5 = 'EXP-ADH-RC4-MD5'; {Do not localize}
  6477. {$EXTERNALSYM SSL3_TXT_DH_DSS_DES_192_CBC3_SHA}
  6478. SSL3_TXT_DH_DSS_DES_192_CBC3_SHA = 'DH-DSS-DES-CBC3-SHA'; {Do not localize}
  6479. {$EXTERNALSYM SSL3_TXT_DH_DSS_DES_40_CBC_SHA}
  6480. SSL3_TXT_DH_DSS_DES_40_CBC_SHA = 'EXP-DH-DSS-DES-CBC-SHA'; {Do not localize}
  6481. {$EXTERNALSYM SSL3_TXT_DH_DSS_DES_64_CBC_SHA}
  6482. SSL3_TXT_DH_DSS_DES_64_CBC_SHA = 'DH-DSS-DES-CBC-SHA'; {Do not localize}
  6483. {$EXTERNALSYM SSL3_TXT_DH_RSA_DES_192_CBC3_SHA}
  6484. SSL3_TXT_DH_RSA_DES_192_CBC3_SHA = 'DH-RSA-DES-CBC3-SHA'; {Do not localize}
  6485. {$EXTERNALSYM SSL3_TXT_DH_RSA_DES_40_CBC_SHA}
  6486. SSL3_TXT_DH_RSA_DES_40_CBC_SHA = 'EXP-DH-RSA-DES-CBC-SHA'; {Do not localize}
  6487. {$EXTERNALSYM SSL3_TXT_DH_RSA_DES_64_CBC_SHA}
  6488. SSL3_TXT_DH_RSA_DES_64_CBC_SHA = 'DH-RSA-DES-CBC-SHA'; {Do not localize}
  6489. {$EXTERNALSYM SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA}
  6490. SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA = 'EDH-DSS-DES-CBC3-SHA'; {Do not localize}
  6491. {$EXTERNALSYM SSL3_TXT_EDH_DSS_DES_40_CBC_SHA}
  6492. SSL3_TXT_EDH_DSS_DES_40_CBC_SHA = 'EXP-EDH-DSS-DES-CBC-SHA'; {Do not localize}
  6493. {$EXTERNALSYM SSL3_TXT_EDH_DSS_DES_64_CBC_SHA}
  6494. SSL3_TXT_EDH_DSS_DES_64_CBC_SHA = 'EDH-DSS-DES-CBC-SHA'; {Do not localize}
  6495. {$EXTERNALSYM SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA}
  6496. SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA = 'EDH-RSA-DES-CBC3-SHA'; {Do not localize}
  6497. {$EXTERNALSYM SSL3_TXT_EDH_RSA_DES_40_CBC_SHA}
  6498. SSL3_TXT_EDH_RSA_DES_40_CBC_SHA = 'EXP-EDH-RSA-DES-CBC-SHA'; {Do not localize}
  6499. {$EXTERNALSYM SSL3_TXT_EDH_RSA_DES_64_CBC_SHA}
  6500. SSL3_TXT_EDH_RSA_DES_64_CBC_SHA = 'EDH-RSA-DES-CBC-SHA'; {Do not localize}
  6501. {$EXTERNALSYM SSL3_TXT_FZA_DMS_FZA_SHA}
  6502. SSL3_TXT_FZA_DMS_FZA_SHA = 'FZA-FZA-CBC-SHA'; {Do not localize}
  6503. {$EXTERNALSYM SSL3_TXT_FZA_DMS_NULL_SHA}
  6504. SSL3_TXT_FZA_DMS_NULL_SHA = 'FZA-NULL-SHA'; {Do not localize}
  6505. {$EXTERNALSYM SSL3_TXT_FZA_DMS_RC4_SHA}
  6506. SSL3_TXT_FZA_DMS_RC4_SHA = 'FZA-RC4-SHA'; {Do not localize}
  6507. {$EXTERNALSYM SSL3_TXT_RSA_DES_192_CBC3_SHA}
  6508. SSL3_TXT_RSA_DES_192_CBC3_SHA = 'DES-CBC3-SHA'; {Do not localize}
  6509. {$EXTERNALSYM SSL3_TXT_RSA_DES_40_CBC_SHA}
  6510. SSL3_TXT_RSA_DES_40_CBC_SHA = 'EXP-DES-CBC-SHA'; {Do not localize}
  6511. {$EXTERNALSYM SSL3_TXT_RSA_DES_64_CBC_SHA}
  6512. SSL3_TXT_RSA_DES_64_CBC_SHA = 'DES-CBC-SHA'; {Do not localize}
  6513. {$EXTERNALSYM SSL3_TXT_RSA_IDEA_128_SHA}
  6514. SSL3_TXT_RSA_IDEA_128_SHA = 'IDEA-CBC-SHA'; {Do not localize}
  6515. {$EXTERNALSYM SSL3_TXT_RSA_NULL_MD5}
  6516. SSL3_TXT_RSA_NULL_MD5 = 'NULL-MD5'; {Do not localize}
  6517. {$EXTERNALSYM SSL3_TXT_RSA_NULL_SHA}
  6518. SSL3_TXT_RSA_NULL_SHA = 'NULL-SHA'; {Do not localize}
  6519. {$EXTERNALSYM SSL3_TXT_RSA_RC2_40_MD5}
  6520. SSL3_TXT_RSA_RC2_40_MD5 = 'EXP-RC2-CBC-MD5'; {Do not localize}
  6521. {$EXTERNALSYM SSL3_TXT_RSA_RC4_128_MD5}
  6522. SSL3_TXT_RSA_RC4_128_MD5 = 'RC4-MD5'; {Do not localize}
  6523. {$EXTERNALSYM SSL3_TXT_RSA_RC4_128_SHA}
  6524. SSL3_TXT_RSA_RC4_128_SHA = 'RC4-SHA'; {Do not localize}
  6525. {$EXTERNALSYM SSL3_TXT_RSA_RC4_40_MD5}
  6526. SSL3_TXT_RSA_RC4_40_MD5 = 'EXP-RC4-MD5'; {Do not localize}
  6527. {$EXTERNALSYM SSL3_VERSION}
  6528. SSL3_VERSION = $0300;
  6529. {$EXTERNALSYM SSL3_VERSION_MAJOR}
  6530. SSL3_VERSION_MAJOR = $03;
  6531. {$EXTERNALSYM SSL3_VERSION_MINOR}
  6532. SSL3_VERSION_MINOR = $00;
  6533. {$EXTERNALSYM SSLEAY_VERSION}
  6534. SSLEAY_VERSION = 0;
  6535. //* #define SSLEAY_OPTIONS 1 no longer supported */
  6536. {$EXTERNALSYM SSLEAY_CFLAGS}
  6537. SSLEAY_CFLAGS = 2;
  6538. {$EXTERNALSYM SSLEAY_BUILT_ON}
  6539. SSLEAY_BUILT_ON = 3;
  6540. {$EXTERNALSYM SSLEAY_PLATFORM}
  6541. SSLEAY_PLATFORM = 4;
  6542. {$EXTERNALSYM SSLEAY_DIR}
  6543. SSLEAY_DIR = 5;
  6544. //tls1.h
  6545. {$EXTERNALSYM TLS1_AD_DECRYPTION_FAILED}
  6546. TLS1_AD_DECRYPTION_FAILED = 21;
  6547. {$EXTERNALSYM TLS1_AD_RECORD_OVERFLOW}
  6548. TLS1_AD_RECORD_OVERFLOW = 22;
  6549. {$EXTERNALSYM TLS1_AD_UNKNOWN_CA}
  6550. TLS1_AD_UNKNOWN_CA = 48;
  6551. {$EXTERNALSYM TLS1_AD_ACCESS_DENIED}
  6552. TLS1_AD_ACCESS_DENIED = 49;
  6553. {$EXTERNALSYM TLS1_AD_DECODE_ERROR}
  6554. TLS1_AD_DECODE_ERROR = 50;
  6555. {$EXTERNALSYM TLS1_AD_DECRYPT_ERROR}
  6556. TLS1_AD_DECRYPT_ERROR = 51;
  6557. {$EXTERNALSYM TLS1_AD_EXPORT_RESTRICTION}
  6558. TLS1_AD_EXPORT_RESTRICTION = 60;
  6559. {$EXTERNALSYM TLS1_AD_PROTOCOL_VERSION}
  6560. TLS1_AD_PROTOCOL_VERSION = 70;
  6561. {$EXTERNALSYM TLS1_AD_INSUFFICIENT_SECURITY}
  6562. TLS1_AD_INSUFFICIENT_SECURITY = 71;
  6563. {$EXTERNALSYM TLS1_AD_INTERNAL_ERROR}
  6564. TLS1_AD_INTERNAL_ERROR = 80;
  6565. {$EXTERNALSYM TLS1_AD_USER_CANCELLED}
  6566. TLS1_AD_USER_CANCELLED = 90;
  6567. {$EXTERNALSYM TLS1_AD_NO_RENEGOTIATION}
  6568. TLS1_AD_NO_RENEGOTIATION = 100;
  6569. //* codes 110-114 are from RFC3546 */
  6570. {$EXTERNALSYM TLS1_AD_UNSUPPORTED_EXTENSION}
  6571. TLS1_AD_UNSUPPORTED_EXTENSION = 110;
  6572. {$EXTERNALSYM TLS1_AD_CERTIFICATE_UNOBTAINABLE}
  6573. TLS1_AD_CERTIFICATE_UNOBTAINABLE = 111;
  6574. {$EXTERNALSYM TLS1_AD_UNRECOGNIZED_NAME}
  6575. TLS1_AD_UNRECOGNIZED_NAME = 112;
  6576. {$EXTERNALSYM TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE}
  6577. TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE = 113;
  6578. {$EXTERNALSYM TLS1_AD_BAD_CERTIFICATE_HASH_VALUE}
  6579. TLS1_AD_BAD_CERTIFICATE_HASH_VALUE = 114;
  6580. {$EXTERNALSYM TLS1_AD_UNKNOWN_PSK_IDENTITY}
  6581. TLS1_AD_UNKNOWN_PSK_IDENTITY = 115;//* fatal */
  6582. //* ExtensionType values from RFC 3546 */
  6583. {$EXTERNALSYM TLSEXT_TYPE_server_name}
  6584. TLSEXT_TYPE_server_name = 0;
  6585. {$EXTERNALSYM TLSEXT_TYPE_max_fragment_length}
  6586. TLSEXT_TYPE_max_fragment_length = 1;
  6587. {$EXTERNALSYM TLSEXT_TYPE_client_certificate_url}
  6588. TLSEXT_TYPE_client_certificate_url = 2;
  6589. {$EXTERNALSYM TLSEXT_TYPE_trusted_ca_keys}
  6590. TLSEXT_TYPE_trusted_ca_keys = 3;
  6591. {$EXTERNALSYM TLSEXT_TYPE_truncated_hmac}
  6592. TLSEXT_TYPE_truncated_hmac = 4;
  6593. {$EXTERNALSYM TLSEXT_TYPE_status_request}
  6594. TLSEXT_TYPE_status_request =5;
  6595. {$EXTERNALSYM TLSEXT_TYPE_user_mapping}
  6596. TLSEXT_TYPE_user_mapping = 6;
  6597. {$EXTERNALSYM TLSEXT_TYPE_client_authz}
  6598. TLSEXT_TYPE_client_authz = 7;
  6599. {$EXTERNALSYM TLSEXT_TYPE_server_authz}
  6600. TLSEXT_TYPE_server_authz = 8;
  6601. {$EXTERNALSYM TLSEXT_TYPE_cert_type}
  6602. TLSEXT_TYPE_cert_type = 9;
  6603. {$EXTERNALSYM TLSEXT_TYPE_elliptic_curves}
  6604. TLSEXT_TYPE_elliptic_curves = 10;
  6605. {$EXTERNALSYM TLSEXT_TYPE_ec_point_formats}
  6606. TLSEXT_TYPE_ec_point_formats = 11;
  6607. {$EXTERNALSYM TLSEXT_TYPE_srp}
  6608. TLSEXT_TYPE_srp = 12;
  6609. {$EXTERNALSYM TLSEXT_TYPE_signature_algorithms}
  6610. TLSEXT_TYPE_signature_algorithms = 13;
  6611. {$EXTERNALSYM TLSEXT_TYPE_use_srtp}
  6612. TLSEXT_TYPE_use_srtp = 14;
  6613. {$EXTERNALSYM TLSEXT_TYPE_heartbeat}
  6614. TLSEXT_TYPE_heartbeat = 15;
  6615. {$EXTERNALSYM TLSEXT_TYPE_session_ticket}
  6616. TLSEXT_TYPE_session_ticket = 35;
  6617. {$IFNDEF OPENSSL_NO_NEXTPROTONEG}
  6618. //* This is not an IANA defined extension number */
  6619. {$EXTERNALSYM TLSEXT_TYPE_next_proto_neg}
  6620. TLSEXT_TYPE_next_proto_neg = 13172;
  6621. {$ENDIF}
  6622. //* Temporary extension type */
  6623. {$EXTERNALSYM TLSEXT_TYPE_renegotiate}
  6624. TLSEXT_TYPE_renegotiate = $ff01;
  6625. //* NameType value from RFC 3546 */
  6626. {$EXTERNALSYM TLSEXT_NAMETYPE_host_name}
  6627. TLSEXT_NAMETYPE_host_name = 0;
  6628. //* status request value from RFC 3546 */
  6629. {$EXTERNALSYM TLSEXT_STATUSTYPE_ocsp}
  6630. TLSEXT_STATUSTYPE_ocsp = 1;
  6631. {$EXTERNALSYM TLSEXT_ECPOINTFORMAT_first}
  6632. TLSEXT_ECPOINTFORMAT_first = 0;
  6633. {$EXTERNALSYM TLSEXT_ECPOINTFORMAT_uncompressed}
  6634. TLSEXT_ECPOINTFORMAT_uncompressed = 0;
  6635. {$EXTERNALSYM TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime}
  6636. TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime = 1;
  6637. {$EXTERNALSYM TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2}
  6638. TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 = 2;
  6639. {$EXTERNALSYM TLSEXT_ECPOINTFORMAT_last}
  6640. TLSEXT_ECPOINTFORMAT_last = 2;
  6641. {$EXTERNALSYM TLSEXT_signature_anonymous}
  6642. TLSEXT_signature_anonymous = 0;
  6643. {$EXTERNALSYM TLSEXT_signature_rsa}
  6644. TLSEXT_signature_rsa = 1;
  6645. {$EXTERNALSYM TLSEXT_signature_dsa}
  6646. TLSEXT_signature_dsa = 2;
  6647. {$EXTERNALSYM TLSEXT_signature_ecdsa}
  6648. TLSEXT_signature_ecdsa = 3;
  6649. {$EXTERNALSYM TLSEXT_hash_none}
  6650. TLSEXT_hash_none = 0;
  6651. {$EXTERNALSYM TLSEXT_hash_md5}
  6652. TLSEXT_hash_md5 = 1;
  6653. {$EXTERNALSYM TLSEXT_hash_sha1}
  6654. TLSEXT_hash_sha1 = 2;
  6655. {$EXTERNALSYM TLSEXT_hash_sha224}
  6656. TLSEXT_hash_sha224 = 3;
  6657. {$EXTERNALSYM TLSEXT_hash_sha256}
  6658. TLSEXT_hash_sha256 = 4;
  6659. {$EXTERNALSYM TLSEXT_hash_sha384}
  6660. TLSEXT_hash_sha384 = 5;
  6661. {$EXTERNALSYM TLSEXT_hash_sha512}
  6662. TLSEXT_hash_sha512 = 6;
  6663. {$IFNDEF OPENSSL_NO_TLSEXT}
  6664. {$EXTERNALSYM TLSEXT_MAXLEN_host_name}
  6665. TLSEXT_MAXLEN_host_name = 255;
  6666. {$EXTERNALSYM SSL_TLSEXT_ERR_OK}
  6667. SSL_TLSEXT_ERR_OK = 0;
  6668. {$EXTERNALSYM SSL_TLSEXT_ERR_ALERT_WARNING}
  6669. SSL_TLSEXT_ERR_ALERT_WARNING = 1;
  6670. {$EXTERNALSYM SSL_TLSEXT_ERR_ALERT_FATAL}
  6671. SSL_TLSEXT_ERR_ALERT_FATAL = 2;
  6672. {$EXTERNALSYM SSL_TLSEXT_ERR_NOACK}
  6673. SSL_TLSEXT_ERR_NOACK = 3;
  6674. {$IFDEF OPENSSL_NO_HEARTBEATS}
  6675. {$EXTERNALSYM SSL_TLSEXT_HB_DONT_SEND_REQUESTS}
  6676. SSL_TLSEXT_HB_ENABLED = $01;
  6677. {$EXTERNALSYM SSL_TLSEXT_HB_DONT_SEND_REQUESTS}
  6678. SSL_TLSEXT_HB_DONT_SEND_REQUESTS = $02;
  6679. {$EXTERNALSYM SSL_TLSEXT_HB_DONT_RECV_REQUESTS}
  6680. SSL_TLSEXT_HB_DONT_RECV_REQUESTS = $04;
  6681. {$ENDIF}
  6682. {$ENDIF}
  6683. //
  6684. {$EXTERNALSYM SSLEAY_VERSION_NUMBER}
  6685. SSLEAY_VERSION_NUMBER = OPENSSL_VERSION_NUMBER;
  6686. {$EXTERNALSYM SSL_AD_REASON_OFFSET}
  6687. SSL_AD_REASON_OFFSET = 1000;
  6688. {$EXTERNALSYM SSL_AD_CLOSE_NOTIFY}
  6689. SSL_AD_CLOSE_NOTIFY = SSL3_AD_CLOSE_NOTIFY;
  6690. {$EXTERNALSYM SSL_AD_UNEXPECTED_MESSAGE}
  6691. SSL_AD_UNEXPECTED_MESSAGE = SSL3_AD_UNEXPECTED_MESSAGE;
  6692. {$EXTERNALSYM SSL_AD_BAD_RECORD_MAC}
  6693. SSL_AD_BAD_RECORD_MAC = SSL3_AD_BAD_RECORD_MAC;
  6694. {$EXTERNALSYM SSL_AD_DECRYPTION_FAILED}
  6695. SSL_AD_DECRYPTION_FAILED = TLS1_AD_DECRYPTION_FAILED;
  6696. {$EXTERNALSYM SSL_AD_RECORD_OVERFLOW}
  6697. SSL_AD_RECORD_OVERFLOW = TLS1_AD_RECORD_OVERFLOW;
  6698. {$EXTERNALSYM SSL_AD_DECOMPRESSION_FAILURE}
  6699. SSL_AD_DECOMPRESSION_FAILURE = SSL3_AD_DECOMPRESSION_FAILURE;
  6700. {$EXTERNALSYM SSL_AD_HANDSHAKE_FAILURE}
  6701. SSL_AD_HANDSHAKE_FAILURE = SSL3_AD_HANDSHAKE_FAILURE;
  6702. {$EXTERNALSYM SSL_AD_NO_CERTIFICATE}
  6703. SSL_AD_NO_CERTIFICATE = SSL3_AD_NO_CERTIFICATE;
  6704. {$EXTERNALSYM SSL_AD_BAD_CERTIFICATE}
  6705. SSL_AD_BAD_CERTIFICATE = SSL3_AD_BAD_CERTIFICATE;
  6706. {$EXTERNALSYM SSL_AD_UNSUPPORTED_CERTIFICATE}
  6707. SSL_AD_UNSUPPORTED_CERTIFICATE = SSL3_AD_UNSUPPORTED_CERTIFICATE;
  6708. {$EXTERNALSYM SSL_AD_CERTIFICATE_REVOKED}
  6709. SSL_AD_CERTIFICATE_REVOKED = SSL3_AD_CERTIFICATE_REVOKED;
  6710. {$EXTERNALSYM SSL_AD_CERTIFICATE_EXPIRED}
  6711. SSL_AD_CERTIFICATE_EXPIRED = SSL3_AD_CERTIFICATE_EXPIRED;
  6712. {$EXTERNALSYM SSL_AD_CERTIFICATE_UNKNOWN}
  6713. SSL_AD_CERTIFICATE_UNKNOWN = SSL3_AD_CERTIFICATE_UNKNOWN;
  6714. {$EXTERNALSYM SSL_AD_ILLEGAL_PARAMETER}
  6715. SSL_AD_ILLEGAL_PARAMETER = SSL3_AD_ILLEGAL_PARAMETER;
  6716. {$EXTERNALSYM SSL_AD_UNKNOWN_CA}
  6717. SSL_AD_UNKNOWN_CA = TLS1_AD_UNKNOWN_CA;
  6718. {$EXTERNALSYM SSL_AD_ACCESS_DENIED}
  6719. SSL_AD_ACCESS_DENIED = TLS1_AD_ACCESS_DENIED;
  6720. {$EXTERNALSYM SSL_AD_DECODE_ERROR}
  6721. SSL_AD_DECODE_ERROR = TLS1_AD_DECODE_ERROR;
  6722. {$EXTERNALSYM SSL_AD_DECRYPT_ERROR}
  6723. SSL_AD_DECRYPT_ERROR = TLS1_AD_DECRYPT_ERROR;
  6724. {$EXTERNALSYM SSL_AD_EXPORT_RESTRICTION}
  6725. SSL_AD_EXPORT_RESTRICTION = TLS1_AD_EXPORT_RESTRICTION;
  6726. {$EXTERNALSYM SSL_AD_PROTOCOL_VERSION}
  6727. SSL_AD_PROTOCOL_VERSION = TLS1_AD_PROTOCOL_VERSION;
  6728. {$EXTERNALSYM SSL_AD_INSUFFICIENT_SECURITY}
  6729. SSL_AD_INSUFFICIENT_SECURITY = TLS1_AD_INSUFFICIENT_SECURITY;
  6730. {$EXTERNALSYM SSL_AD_INTERNAL_ERROR}
  6731. SSL_AD_INTERNAL_ERROR = TLS1_AD_INTERNAL_ERROR;
  6732. {$EXTERNALSYM SSL_AD_USER_CANCELLED}
  6733. SSL_AD_USER_CANCELLED = TLS1_AD_USER_CANCELLED;
  6734. {$EXTERNALSYM SSL_AD_NO_RENEGOTIATION}
  6735. SSL_AD_NO_RENEGOTIATION = TLS1_AD_NO_RENEGOTIATION;
  6736. {$EXTERNALSYM SSL_AD_UNSUPPORTED_EXTENSION}
  6737. SSL_AD_UNSUPPORTED_EXTENSION = TLS1_AD_UNSUPPORTED_EXTENSION;
  6738. {$EXTERNALSYM SSL_AD_CERTIFICATE_UNOBTAINABLE}
  6739. SSL_AD_CERTIFICATE_UNOBTAINABLE = TLS1_AD_CERTIFICATE_UNOBTAINABLE;
  6740. {$EXTERNALSYM SSL_AD_UNRECOGNIZED_NAME}
  6741. SSL_AD_UNRECOGNIZED_NAME = TLS1_AD_UNRECOGNIZED_NAME;
  6742. {$EXTERNALSYM SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE}
  6743. SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE = TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE;
  6744. {$EXTERNALSYM SSL_AD_BAD_CERTIFICATE_HASH_VALUE}
  6745. SSL_AD_BAD_CERTIFICATE_HASH_VALUE = TLS1_AD_BAD_CERTIFICATE_HASH_VALUE;
  6746. {$EXTERNALSYM SSL_AD_UNKNOWN_PSK_IDENTITY}
  6747. SSL_AD_UNKNOWN_PSK_IDENTITY = TLS1_AD_UNKNOWN_PSK_IDENTITY; //* fatal */
  6748. {$EXTERNALSYM SSL_CTRL_NEED_TMP_RSA}
  6749. SSL_CTRL_NEED_TMP_RSA = 1;
  6750. {$EXTERNALSYM SSL_CTRL_SET_TMP_RSA}
  6751. SSL_CTRL_SET_TMP_RSA = 2;
  6752. {$EXTERNALSYM SSL_CTRL_SET_TMP_DH}
  6753. SSL_CTRL_SET_TMP_DH = 3;
  6754. {$EXTERNALSYM SSL_CTRL_SET_TMP_ECDH}
  6755. SSL_CTRL_SET_TMP_ECDH = 4;
  6756. {$EXTERNALSYM SSL_CTRL_SET_TMP_RSA_CB}
  6757. SSL_CTRL_SET_TMP_RSA_CB = 5;
  6758. {$EXTERNALSYM SSL_CTRL_SET_TMP_DH_CB}
  6759. SSL_CTRL_SET_TMP_DH_CB = 6;
  6760. {$EXTERNALSYM SSL_CTRL_SET_TMP_ECDH_CB}
  6761. SSL_CTRL_SET_TMP_ECDH_CB = 7;
  6762. {$IFNDEF NO_TLSEXT}
  6763. //* see tls1.h for macros based on these */
  6764. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_SERVERNAME_CB}
  6765. SSL_CTRL_SET_TLSEXT_SERVERNAME_CB = 53;
  6766. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG}
  6767. SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG = 54;
  6768. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_HOSTNAME}
  6769. SSL_CTRL_SET_TLSEXT_HOSTNAME = 55;
  6770. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_DEBUG_CB}
  6771. SSL_CTRL_SET_TLSEXT_DEBUG_CB = 56;
  6772. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_DEBUG_ARG}
  6773. SSL_CTRL_SET_TLSEXT_DEBUG_ARG = 57;
  6774. {$EXTERNALSYM SSL_CTRL_GET_TLSEXT_TICKET_KEYS}
  6775. SSL_CTRL_GET_TLSEXT_TICKET_KEYS = 58;
  6776. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_TICKET_KEYS}
  6777. SSL_CTRL_SET_TLSEXT_TICKET_KEYS = 59;
  6778. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT}
  6779. SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT = 60;
  6780. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB}
  6781. SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB = 61;
  6782. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG}
  6783. SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG = 62;
  6784. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB}
  6785. SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB = 63;
  6786. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG}
  6787. SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG = 64;
  6788. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE}
  6789. SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE = 65;
  6790. {$EXTERNALSYM SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS}
  6791. SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS = 66;
  6792. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS}
  6793. SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS = 67;
  6794. {$EXTERNALSYM SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS}
  6795. SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS = 68;
  6796. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS}
  6797. SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS = 69;
  6798. {$EXTERNALSYM SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP}
  6799. SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP = 70;
  6800. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP}
  6801. SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP = 71;
  6802. {$EXTERNALSYM SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB}
  6803. SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB = 72;
  6804. {$EXTERNALSYM SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB}
  6805. SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB = 75;
  6806. {$EXTERNALSYM SSL_CTRL_SET_SRP_VERIFY_PARAM_CB}
  6807. SSL_CTRL_SET_SRP_VERIFY_PARAM_CB = 76;
  6808. {$EXTERNALSYM SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB}
  6809. SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB = 77;
  6810. {$EXTERNALSYM SSL_CTRL_SET_SRP_ARG}
  6811. SSL_CTRL_SET_SRP_ARG = 78;
  6812. {$EXTERNALSYM SSL_CTRL_SET_TLS_EXT_SRP_USERNAME}
  6813. SSL_CTRL_SET_TLS_EXT_SRP_USERNAME = 79;
  6814. {$EXTERNALSYM SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH}
  6815. SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH = 80;
  6816. {$EXTERNALSYM SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD}
  6817. SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD = 81;
  6818. {$ifndef OPENSSL_NO_HEARTBEATS}
  6819. {$EXTERNALSYM SSL_CTRL_TLS_EXT_SEND_HEARTBEAT}
  6820. SSL_CTRL_TLS_EXT_SEND_HEARTBEAT = 85;
  6821. {$EXTERNALSYM SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING}
  6822. SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING = 86;
  6823. {$EXTERNALSYM SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS}
  6824. SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS = 87;
  6825. {$endif}
  6826. {$ENDIF}
  6827. {$EXTERNALSYM SSL_CTRL_SET_ECDH_AUTO}
  6828. SSL_CTRL_SET_ECDH_AUTO = 94;
  6829. {$EXTERNALSYM DTLS_CTRL_GET_TIMEOUT}
  6830. DTLS_CTRL_GET_TIMEOUT = 73;
  6831. {$EXTERNALSYM DTLS_CTRL_HANDLE_TIMEOUT}
  6832. DTLS_CTRL_HANDLE_TIMEOUT = 74;
  6833. {$EXTERNALSYM DTLS_CTRL_LISTEN}
  6834. DTLS_CTRL_LISTEN = 75;
  6835. {$EXTERNALSYM SSL_CTRL_GET_RI_SUPPORT}
  6836. SSL_CTRL_GET_RI_SUPPORT = 76;
  6837. {$EXTERNALSYM SSL_CTRL_CLEAR_OPTIONS}
  6838. SSL_CTRL_CLEAR_OPTIONS = 77;
  6839. {$EXTERNALSYM SSL_CTRL_CLEAR_MODE}
  6840. SSL_CTRL_CLEAR_MODE = 78;
  6841. {$EXTERNALSYM SSL_CTRL_GET_EXTRA_CHAIN_CERTS}
  6842. SSL_CTRL_GET_EXTRA_CHAIN_CERTS = 82;
  6843. {$EXTERNALSYM SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS}
  6844. SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS = 83;
  6845. {$EXTERNALSYM SSL_CTRL_CHAIN} //OpenSSL 1.0.2
  6846. SSL_CTRL_CHAIN = 88;
  6847. {$EXTERNALSYM SSL_CTRL_CHAIN_CERT} //OpenSSL 1.0.2
  6848. SSL_CTRL_CHAIN_CERT = 89;
  6849. {$EXTERNALSYM SSL_CTRL_GET_CHAIN_CERTS} //OpenSSL 1.0.2
  6850. SSL_CTRL_GET_CHAIN_CERTS = 115;
  6851. {$EXTERNALSYM SSL_CTRL_GET_SESSION_REUSED}
  6852. SSL_CTRL_GET_SESSION_REUSED = 8;
  6853. {$EXTERNALSYM SSL_CTRL_GET_CLIENT_CERT_REQUEST}
  6854. SSL_CTRL_GET_CLIENT_CERT_REQUEST = 9;
  6855. {$EXTERNALSYM SSL_CTRL_GET_NUM_RENEGOTIATIONS}
  6856. SSL_CTRL_GET_NUM_RENEGOTIATIONS = 10;
  6857. {$EXTERNALSYM SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS}
  6858. SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS = 11;
  6859. {$EXTERNALSYM SSL_CTRL_GET_TOTAL_RENEGOTIATIONS}
  6860. SSL_CTRL_GET_TOTAL_RENEGOTIATIONS = 12;
  6861. {$EXTERNALSYM SSL_CTRL_GET_FLAGS}
  6862. SSL_CTRL_GET_FLAGS = 13;
  6863. {$EXTERNALSYM SSL_CTRL_EXTRA_CHAIN_CERT}
  6864. SSL_CTRL_EXTRA_CHAIN_CERT = 14;
  6865. {$EXTERNALSYM SSL_CTRL_SET_MSG_CALLBACK}
  6866. SSL_CTRL_SET_MSG_CALLBACK = 15;
  6867. {$EXTERNALSYM SSL_CTRL_SET_MSG_CALLBACK_ARG}
  6868. SSL_CTRL_SET_MSG_CALLBACK_ARG = 16;
  6869. //* only applies to datagram connections */
  6870. {$EXTERNALSYM SSL_CTRL_SET_MTU}
  6871. SSL_CTRL_SET_MTU = 17;
  6872. //* Stats */
  6873. {$EXTERNALSYM SSL_CTRL_SESS_NUMBER}
  6874. SSL_CTRL_SESS_NUMBER = 20;
  6875. {$EXTERNALSYM SSL_CTRL_SESS_CONNECT}
  6876. SSL_CTRL_SESS_CONNECT = 21;
  6877. {$EXTERNALSYM SSL_CTRL_SESS_CONNECT_GOOD}
  6878. SSL_CTRL_SESS_CONNECT_GOOD = 22;
  6879. {$EXTERNALSYM SSL_CTRL_SESS_CONNECT_RENEGOTIATE}
  6880. SSL_CTRL_SESS_CONNECT_RENEGOTIATE = 23;
  6881. {$EXTERNALSYM SSL_CTRL_SESS_ACCEPT}
  6882. SSL_CTRL_SESS_ACCEPT = 24;
  6883. {$EXTERNALSYM SSL_CTRL_SESS_ACCEPT_GOOD}
  6884. SSL_CTRL_SESS_ACCEPT_GOOD = 25;
  6885. {$EXTERNALSYM SSL_CTRL_SESS_ACCEPT_RENEGOTIATE}
  6886. SSL_CTRL_SESS_ACCEPT_RENEGOTIATE = 26;
  6887. {$EXTERNALSYM SSL_CTRL_SESS_HIT}
  6888. SSL_CTRL_SESS_HIT = 27;
  6889. {$EXTERNALSYM SSL_CTRL_SESS_CB_HIT}
  6890. SSL_CTRL_SESS_CB_HIT = 28;
  6891. {$EXTERNALSYM SSL_CTRL_SESS_MISSES}
  6892. SSL_CTRL_SESS_MISSES = 29;
  6893. {$EXTERNALSYM SSL_CTRL_SESS_TIMEOUTS}
  6894. SSL_CTRL_SESS_TIMEOUTS = 30;
  6895. {$EXTERNALSYM SSL_CTRL_SESS_CACHE_FULL}
  6896. SSL_CTRL_SESS_CACHE_FULL = 31;
  6897. {$EXTERNALSYM SSL_CTRL_OPTIONS}
  6898. SSL_CTRL_OPTIONS = 32;
  6899. {$EXTERNALSYM SSL_CTRL_MODE}
  6900. SSL_CTRL_MODE = 33;
  6901. {$EXTERNALSYM SSL_CTRL_GET_READ_AHEAD}
  6902. SSL_CTRL_GET_READ_AHEAD = 40;
  6903. {$EXTERNALSYM SSL_CTRL_SET_READ_AHEAD}
  6904. SSL_CTRL_SET_READ_AHEAD = 41;
  6905. {$EXTERNALSYM SSL_CTRL_SET_SESS_CACHE_SIZE}
  6906. SSL_CTRL_SET_SESS_CACHE_SIZE = 42;
  6907. {$EXTERNALSYM SSL_CTRL_GET_SESS_CACHE_SIZE}
  6908. SSL_CTRL_GET_SESS_CACHE_SIZE = 43;
  6909. {$EXTERNALSYM SSL_CTRL_SET_SESS_CACHE_MODE}
  6910. SSL_CTRL_SET_SESS_CACHE_MODE = 44;
  6911. {$EXTERNALSYM SSL_CTRL_GET_SESS_CACHE_MODE}
  6912. SSL_CTRL_GET_SESS_CACHE_MODE = 45;
  6913. {$EXTERNALSYM SSL_CTRL_GET_MAX_CERT_LIST}
  6914. SSL_CTRL_GET_MAX_CERT_LIST = 50;
  6915. {$EXTERNALSYM SSL_CTRL_SET_MAX_CERT_LIST}
  6916. SSL_CTRL_SET_MAX_CERT_LIST = 51;
  6917. {$EXTERNALSYM SSL_CTRL_SET_MAX_SEND_FRAGMENT}
  6918. SSL_CTRL_SET_MAX_SEND_FRAGMENT = 52;
  6919. {$EXTERNALSYM SSL_DEFAULT_CIPHER_LIST}
  6920. SSL_DEFAULT_CIPHER_LIST = 'AES:ALL:!aNULL:!eNULL:+RC4:@STRENGTH'; //* low priority for RC4 */
  6921. {$EXTERNALSYM SSL_ERROR_NONE}
  6922. SSL_ERROR_NONE = 0;
  6923. {$EXTERNALSYM SSL_ERROR_SSL}
  6924. SSL_ERROR_SSL = 1;
  6925. {$EXTERNALSYM SSL_ERROR_WANT_READ}
  6926. SSL_ERROR_WANT_READ = 2;
  6927. {$EXTERNALSYM SSL_ERROR_WANT_WRITE}
  6928. SSL_ERROR_WANT_WRITE = 3;
  6929. {$EXTERNALSYM SSL_ERROR_WANT_X509_LOOKUP}
  6930. SSL_ERROR_WANT_X509_LOOKUP = 4;
  6931. {$EXTERNALSYM SSL_ERROR_SYSCALL}
  6932. SSL_ERROR_SYSCALL = 5;
  6933. {$EXTERNALSYM SSL_ERROR_ZERO_RETURN}
  6934. SSL_ERROR_ZERO_RETURN = 6;
  6935. {$EXTERNALSYM SSL_ERROR_WANT_CONNECT}
  6936. SSL_ERROR_WANT_CONNECT = 7;
  6937. {$EXTERNALSYM SSL_ERROR_WANT_ACCEPT}
  6938. SSL_ERROR_WANT_ACCEPT = 8;
  6939. {$EXTERNALSYM X509_FILETYPE_ASN1}
  6940. X509_FILETYPE_ASN1 = 2;
  6941. {$EXTERNALSYM SSL_FILETYPE_ASN1}
  6942. SSL_FILETYPE_ASN1 = X509_FILETYPE_ASN1;
  6943. {$EXTERNALSYM X509_FILETYPE_PEM}
  6944. X509_FILETYPE_PEM = 1;
  6945. {$EXTERNALSYM SSL_FILETYPE_PEM}
  6946. SSL_FILETYPE_PEM = X509_FILETYPE_PEM;
  6947. {$EXTERNALSYM SSL_F_CLIENT_CERTIFICATE}
  6948. SSL_F_CLIENT_CERTIFICATE = 100;
  6949. {$EXTERNALSYM SSL_F_CLIENT_HELLO}
  6950. SSL_F_CLIENT_HELLO = 101;
  6951. {$EXTERNALSYM SSL_F_CLIENT_MASTER_KEY}
  6952. SSL_F_CLIENT_MASTER_KEY = 102;
  6953. {$EXTERNALSYM SSL_F_D2I_SSL_SESSION}
  6954. SSL_F_D2I_SSL_SESSION = 103;
  6955. {$EXTERNALSYM SSL_F_DO_SSL3_WRITE}
  6956. SSL_F_DO_SSL3_WRITE = 104;
  6957. {$EXTERNALSYM SSL_F_DTLS1_ACCEPT}
  6958. SSL_F_DTLS1_ACCEPT = 246;
  6959. {$EXTERNALSYM SSL_F_DTLS1_ADD_CERT_TO_BUF}
  6960. SSL_F_DTLS1_ADD_CERT_TO_BUF = 295; //was 280;
  6961. {$EXTERNALSYM SSL_F_DTLS1_BUFFER_RECORD}
  6962. SSL_F_DTLS1_BUFFER_RECORD = 247;
  6963. {$EXTERNALSYM SSL_F_DTLS1_CHECK_TIMEOUT_NUM}
  6964. SSL_F_DTLS1_CHECK_TIMEOUT_NUM = 316;
  6965. {$EXTERNALSYM SSL_F_DTLS1_CLIENT_HELLO}
  6966. SSL_F_DTLS1_CLIENT_HELLO = 248;
  6967. {$EXTERNALSYM SSL_F_DTLS1_CONNECT}
  6968. SSL_F_DTLS1_CONNECT = 249;
  6969. {$EXTERNALSYM SSL_F_DTLS1_ENC}
  6970. SSL_F_DTLS1_ENC = 250;
  6971. {$EXTERNALSYM SSL_F_DTLS1_GET_HELLO_VERIFY}
  6972. SSL_F_DTLS1_GET_HELLO_VERIFY = 251;
  6973. {$EXTERNALSYM SSL_F_DTLS1_GET_MESSAGE}
  6974. SSL_F_DTLS1_GET_MESSAGE = 252;
  6975. {$EXTERNALSYM SSL_F_DTLS1_GET_MESSAGE_FRAGMENT}
  6976. SSL_F_DTLS1_GET_MESSAGE_FRAGMENT = 253;
  6977. {$EXTERNALSYM SSL_F_DTLS1_GET_RECORD}
  6978. SSL_F_DTLS1_GET_RECORD = 254;
  6979. {$EXTERNALSYM SSL_F_DTLS1_HANDLE_TIMEOUT}
  6980. SSL_F_DTLS1_HANDLE_TIMEOUT = 297; //was 282
  6981. {$EXTERNALSYM SSL_F_DTLS1_HEARTBEAT}
  6982. SSL_F_DTLS1_HEARTBEAT = 305;
  6983. {$EXTERNALSYM SSL_F_DTLS1_OUTPUT_CERT_CHAIN}
  6984. SSL_F_DTLS1_OUTPUT_CERT_CHAIN = 255;
  6985. {$EXTERNALSYM SSL_F_DTLS1_PREPROCESS_FRAGMENT}
  6986. SSL_F_DTLS1_PREPROCESS_FRAGMENT = 288; //was 277;
  6987. {$EXTERNALSYM SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE}
  6988. SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE = 256;
  6989. {$EXTERNALSYM SSL_F_DTLS1_PROCESS_RECORD}
  6990. SSL_F_DTLS1_PROCESS_RECORD = 257;
  6991. {$EXTERNALSYM SSL_F_DTLS1_READ_BYTES}
  6992. SSL_F_DTLS1_READ_BYTES = 258;
  6993. {$EXTERNALSYM SSL_F_DTLS1_READ_FAILED}
  6994. SSL_F_DTLS1_READ_FAILED = 259;
  6995. {$EXTERNALSYM SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST}
  6996. SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST = 260;
  6997. {$EXTERNALSYM SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE}
  6998. SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE = 261;
  6999. {$EXTERNALSYM SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE}
  7000. SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE = 262;
  7001. {$EXTERNALSYM SSL_F_DTLS1_SEND_CLIENT_VERIFY}
  7002. SSL_F_DTLS1_SEND_CLIENT_VERIFY = 263;
  7003. {$EXTERNALSYM SSL_F_DTLS1_SEND_HELLO_VERIFY_REQUEST}
  7004. SSL_F_DTLS1_SEND_HELLO_VERIFY_REQUEST = 264;
  7005. {$EXTERNALSYM SSL_F_DTLS1_SEND_SERVER_CERTIFICATE}
  7006. SSL_F_DTLS1_SEND_SERVER_CERTIFICATE = 265;
  7007. {$EXTERNALSYM SSL_F_DTLS1_SEND_SERVER_HELLO}
  7008. SSL_F_DTLS1_SEND_SERVER_HELLO = 266;
  7009. {$EXTERNALSYM SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE}
  7010. SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE = 267;
  7011. {$EXTERNALSYM SSL_F_DTLS1_WRITE_APP_DATA_BYTES}
  7012. SSL_F_DTLS1_WRITE_APP_DATA_BYTES = 268;
  7013. {$EXTERNALSYM SSL_F_GET_CLIENT_FINISHED}
  7014. SSL_F_GET_CLIENT_FINISHED = 105;
  7015. {$EXTERNALSYM SSL_F_GET_CLIENT_HELLO}
  7016. SSL_F_GET_CLIENT_HELLO = 106;
  7017. {$EXTERNALSYM SSL_F_GET_CLIENT_MASTER_KEY}
  7018. SSL_F_GET_CLIENT_MASTER_KEY = 107;
  7019. {$EXTERNALSYM SSL_F_GET_SERVER_FINISHED}
  7020. SSL_F_GET_SERVER_FINISHED = 108;
  7021. {$EXTERNALSYM SSL_F_GET_SERVER_HELLO}
  7022. SSL_F_GET_SERVER_HELLO = 109;
  7023. {$EXTERNALSYM SSL_F_GET_SERVER_VERIFY}
  7024. SSL_F_GET_SERVER_VERIFY = 110;
  7025. {$EXTERNALSYM SSL_F_I2D_SSL_SESSION}
  7026. SSL_F_I2D_SSL_SESSION = 111;
  7027. {$EXTERNALSYM SSL_F_READ_N}
  7028. SSL_F_READ_N = 112;
  7029. {$EXTERNALSYM SSL_F_REQUEST_CERTIFICATE}
  7030. SSL_F_REQUEST_CERTIFICATE = 113;
  7031. {$EXTERNALSYM SSL_F_SERVER_HELLO}
  7032. SSL_F_SERVER_HELLO = 114;
  7033. {$EXTERNALSYM SSL_F_SSL23_ACCEPT}
  7034. SSL_F_SSL23_ACCEPT = 115;
  7035. {$EXTERNALSYM SSL_F_SSL3_ADD_CERT_TO_BUF}
  7036. SSL_F_SSL3_ADD_CERT_TO_BUF = 296; //was 281;
  7037. {$EXTERNALSYM SSL_F_SSL23_CLIENT_HELLO}
  7038. SSL_F_SSL23_CLIENT_HELLO = 116;
  7039. {$EXTERNALSYM SSL_F_SSL23_CONNECT}
  7040. SSL_F_SSL23_CONNECT = 117;
  7041. {$EXTERNALSYM SSL_F_SSL23_GET_CLIENT_HELLO}
  7042. SSL_F_SSL23_GET_CLIENT_HELLO = 118;
  7043. {$EXTERNALSYM SSL_F_SSL23_GET_SERVER_HELLO}
  7044. SSL_F_SSL23_GET_SERVER_HELLO = 119;
  7045. {$EXTERNALSYM SSL_F_SSL23_READ}
  7046. SSL_F_SSL23_READ = 120;
  7047. {$EXTERNALSYM SSL_F_SSL23_WRITE}
  7048. SSL_F_SSL23_WRITE = 121;
  7049. {$EXTERNALSYM SSL_F_SSL2_ACCEPT}
  7050. SSL_F_SSL2_ACCEPT = 122;
  7051. {$EXTERNALSYM SSL_F_SSL2_CONNECT}
  7052. SSL_F_SSL2_CONNECT = 123;
  7053. {$EXTERNALSYM SSL_F_SSL2_ENC_INIT}
  7054. SSL_F_SSL2_ENC_INIT = 124;
  7055. {$EXTERNALSYM SSL_F_SSL2_READ}
  7056. SSL_F_SSL2_READ = 125;
  7057. {$EXTERNALSYM SSL_F_SSL2_SET_CERTIFICATE}
  7058. SSL_F_SSL2_SET_CERTIFICATE = 126;
  7059. {$EXTERNALSYM SSL_F_SSL2_WRITE}
  7060. SSL_F_SSL2_WRITE = 127;
  7061. {$EXTERNALSYM SSL_F_SSL3_ACCEPT}
  7062. SSL_F_SSL3_ACCEPT = 128;
  7063. {$EXTERNALSYM SSL_F_SSL3_CHANGE_CIPHER_STATE}
  7064. SSL_F_SSL3_CHANGE_CIPHER_STATE = 129;
  7065. {$EXTERNALSYM SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM}
  7066. SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM = 130;
  7067. {$EXTERNALSYM SSL_F_SSL3_CHECK_CLIENT_HELLO}
  7068. SSL_F_SSL3_CHECK_CLIENT_HELLO = 304;
  7069. {$EXTERNALSYM SSL_F_SSL3_CLIENT_HELLO}
  7070. SSL_F_SSL3_CLIENT_HELLO = 131;
  7071. {$EXTERNALSYM SSL_F_SSL3_CONNECT}
  7072. SSL_F_SSL3_CONNECT = 132;
  7073. {$EXTERNALSYM SSL_F_SSL3_CTRL}
  7074. SSL_F_SSL3_CTRL = 213;
  7075. {$EXTERNALSYM SSL_F_SSL3_CTX_CTRL}
  7076. SSL_F_SSL3_CTX_CTRL = 133;
  7077. {$EXTERNALSYM SSL_F_SSL3_DIGEST_CACHED_RECORDS}
  7078. SSL_F_SSL3_DIGEST_CACHED_RECORDS = 293;
  7079. {$EXTERNALSYM SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC}
  7080. SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC = 292;//was 279;
  7081. {$EXTERNALSYM SSL_F_SSL3_ENC}
  7082. SSL_F_SSL3_ENC = 134;
  7083. {$EXTERNALSYM SSL_F_SSL3_GET_CERTIFICATE_REQUEST}
  7084. SSL_F_SSL3_GET_CERTIFICATE_REQUEST = 135;
  7085. {$EXTERNALSYM SSL_F_SSL3_GET_CERT_STATUS}
  7086. SSL_F_SSL3_GET_CERT_STATUS = 289;//was 288;
  7087. {$EXTERNALSYM SSL_F_SSL3_GET_CERT_VERIFY}
  7088. SSL_F_SSL3_GET_CERT_VERIFY = 136;
  7089. {$EXTERNALSYM SSL_F_SSL3_GET_CLIENT_CERTIFICATE}
  7090. SSL_F_SSL3_GET_CLIENT_CERTIFICATE = 137;
  7091. {$EXTERNALSYM SSL_F_SSL3_GET_CLIENT_HELLO}
  7092. SSL_F_SSL3_GET_CLIENT_HELLO = 138;
  7093. {$EXTERNALSYM SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE}
  7094. SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE = 139;
  7095. {$EXTERNALSYM SSL_F_SSL3_GET_FINISHED}
  7096. SSL_F_SSL3_GET_FINISHED = 140;
  7097. {$EXTERNALSYM SSL_F_SSL3_GET_KEY_EXCHANGE}
  7098. SSL_F_SSL3_GET_KEY_EXCHANGE = 141;
  7099. {$EXTERNALSYM SSL_F_SSL3_GET_MESSAGE}
  7100. SSL_F_SSL3_GET_MESSAGE = 142;
  7101. {$EXTERNALSYM SSL_F_SSL3_GET_NEW_SESSION_TICKET}
  7102. SSL_F_SSL3_GET_NEW_SESSION_TICKET = 283;
  7103. {$EXTERNALSYM SSL_F_SSL3_GET_NEXT_PROTO}
  7104. SSL_F_SSL3_GET_NEXT_PROTO = 306;
  7105. {$EXTERNALSYM SSL_F_SSL3_GET_RECORD}
  7106. SSL_F_SSL3_GET_RECORD = 143;
  7107. {$EXTERNALSYM SSL_F_SSL3_GET_SERVER_CERTIFICATE}
  7108. SSL_F_SSL3_GET_SERVER_CERTIFICATE = 144;
  7109. {$EXTERNALSYM SSL_F_SSL3_GET_SERVER_DONE}
  7110. SSL_F_SSL3_GET_SERVER_DONE = 145;
  7111. {$EXTERNALSYM SSL_F_SSL3_GET_SERVER_HELLO}
  7112. SSL_F_SSL3_GET_SERVER_HELLO = 146;
  7113. {$EXTERNALSYM SSL_F_SSL3_HANDSHAKE_MAC}
  7114. SSL_F_SSL3_HANDSHAKE_MAC = 285;
  7115. {$EXTERNALSYM SSL_F_SSL3_NEW_SESSION_TICKET}
  7116. SSL_F_SSL3_NEW_SESSION_TICKET = 287; //was 284;
  7117. {$EXTERNALSYM SSL_F_SSL3_OUTPUT_CERT_CHAIN}
  7118. SSL_F_SSL3_OUTPUT_CERT_CHAIN = 147;
  7119. {$EXTERNALSYM SSL_F_SSL3_READ_BYTES}
  7120. SSL_F_SSL3_READ_BYTES = 148;
  7121. {$EXTERNALSYM SSL_F_SSL3_READ_N}
  7122. SSL_F_SSL3_READ_N = 149;
  7123. {$EXTERNALSYM SSL_F_SSL3_SEND_CERTIFICATE_REQUEST}
  7124. SSL_F_SSL3_SEND_CERTIFICATE_REQUEST = 150;
  7125. {$EXTERNALSYM SSL_F_SSL3_SEND_CLIENT_CERTIFICATE}
  7126. SSL_F_SSL3_SEND_CLIENT_CERTIFICATE = 151;
  7127. {$EXTERNALSYM SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE}
  7128. SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE = 152;
  7129. {$EXTERNALSYM SSL_F_SSL3_SEND_CLIENT_VERIFY}
  7130. SSL_F_SSL3_SEND_CLIENT_VERIFY = 153;
  7131. {$EXTERNALSYM SSL_F_SSL3_SEND_SERVER_CERTIFICATE}
  7132. SSL_F_SSL3_SEND_SERVER_CERTIFICATE = 154;
  7133. {$EXTERNALSYM SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE}
  7134. SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE = 155;
  7135. {$EXTERNALSYM SSL_F_SSL3_SETUP_KEY_BLOCK}
  7136. SSL_F_SSL3_SETUP_KEY_BLOCK = 157;
  7137. {$EXTERNALSYM SSL_F_SSL3_SETUP_READ_BUFFER}
  7138. SSL_F_SSL3_SETUP_READ_BUFFER = 156;
  7139. {$EXTERNALSYM SSL_F_SSL3_SETUP_WRITE_BUFFER}
  7140. SSL_F_SSL3_SETUP_WRITE_BUFFER = 291;
  7141. {$EXTERNALSYM SSL_F_SSL3_WRITE_BYTES}
  7142. SSL_F_SSL3_WRITE_BYTES = 158;
  7143. {$EXTERNALSYM SSL_F_SSL3_WRITE_PENDING}
  7144. SSL_F_SSL3_WRITE_PENDING = 159;
  7145. {$EXTERNALSYM SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT}
  7146. SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT = 298;//was 285;
  7147. {$EXTERNALSYM SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT}
  7148. SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT = 277; //was 272;
  7149. {$EXTERNALSYM SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT}
  7150. SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT = 307;
  7151. {$EXTERNALSYM SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK}
  7152. SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK = 215;
  7153. {$EXTERNALSYM SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK}
  7154. SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK = 216;
  7155. {$EXTERNALSYM SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT}
  7156. SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT = 299;//was 286;
  7157. {$EXTERNALSYM SSL_F_SSL_ADD_SERVERHELLO_TLSEXT}
  7158. SSL_F_SSL_ADD_SERVERHELLO_TLSEXT = 278; //was 273;
  7159. {$EXTERNALSYM SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT}
  7160. SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT = 308;
  7161. {$EXTERNALSYM SSL_F_SSL_BAD_METHOD}
  7162. SSL_F_SSL_BAD_METHOD = 160;
  7163. {$EXTERNALSYM SSL_F_SSL_BYTES_TO_CIPHER_LIST}
  7164. SSL_F_SSL_BYTES_TO_CIPHER_LIST = 161;
  7165. {$EXTERNALSYM SSL_F_SSL_CERT_DUP}
  7166. SSL_F_SSL_CERT_DUP = 221;
  7167. {$EXTERNALSYM SSL_F_SSL_CERT_INST}
  7168. SSL_F_SSL_CERT_INST = 222;
  7169. {$EXTERNALSYM SSL_F_SSL_CERT_INSTANTIATE}
  7170. SSL_F_SSL_CERT_INSTANTIATE = 214;
  7171. {$EXTERNALSYM SSL_F_SSL_CERT_NEW}
  7172. SSL_F_SSL_CERT_NEW = 162;
  7173. {$EXTERNALSYM SSL_F_SSL_CHECK_PRIVATE_KEY}
  7174. SSL_F_SSL_CHECK_PRIVATE_KEY = 163;
  7175. {$EXTERNALSYM SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT}
  7176. SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT = 280;//was 274;
  7177. {$EXTERNALSYM SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG}
  7178. SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG = 279;
  7179. {$EXTERNALSYM SSL_F_SSL_CIPHER_PROCESS_RULESTR}
  7180. SSL_F_SSL_CIPHER_PROCESS_RULESTR = 230;
  7181. {$EXTERNALSYM SSL_F_SSL_CIPHER_STRENGTH_SORT}
  7182. SSL_F_SSL_CIPHER_STRENGTH_SORT = 231;
  7183. {$EXTERNALSYM SSL_F_SSL_CLEAR}
  7184. SSL_F_SSL_CLEAR = 164;
  7185. {$EXTERNALSYM SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD}
  7186. SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD = 165;
  7187. {$EXTERNALSYM SSL_F_SSL_CREATE_CIPHER_LIST}
  7188. SSL_F_SSL_CREATE_CIPHER_LIST = 166;
  7189. {$EXTERNALSYM SSL_F_SSL_CTRL}
  7190. SSL_F_SSL_CTRL = 232;
  7191. {$EXTERNALSYM SSL_F_SSL_CTX_CHECK_PRIVATE_KEY}
  7192. SSL_F_SSL_CTX_CHECK_PRIVATE_KEY = 168;
  7193. {$EXTERNALSYM SSL_F_SSL_CTX_MAKE_PROFILES}
  7194. SSL_F_SSL_CTX_MAKE_PROFILES = 309;
  7195. {$EXTERNALSYM SSL_F_SSL_CTX_NEW}
  7196. SSL_F_SSL_CTX_NEW = 169;
  7197. {$EXTERNALSYM SSL_F_SSL_CTX_SET_CIPHER_LIST}
  7198. SSL_F_SSL_CTX_SET_CIPHER_LIST = 269;
  7199. {$EXTERNALSYM SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE}
  7200. SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE = 290; //was 278;
  7201. {$EXTERNALSYM SSL_F_SSL_CTX_SET_PURPOSE}
  7202. SSL_F_SSL_CTX_SET_PURPOSE = 226;
  7203. {$EXTERNALSYM SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT}
  7204. SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT = 219;
  7205. {$EXTERNALSYM SSL_F_SSL_CTX_SET_SSL_VERSION}
  7206. SSL_F_SSL_CTX_SET_SSL_VERSION = 170;
  7207. {$EXTERNALSYM SSL_F_SSL_CTX_SET_TRUST}
  7208. SSL_F_SSL_CTX_SET_TRUST = 229;
  7209. {$EXTERNALSYM SSL_F_SSL_CTX_USE_CERTIFICATE}
  7210. SSL_F_SSL_CTX_USE_CERTIFICATE = 171;
  7211. {$EXTERNALSYM SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1}
  7212. SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 = 172;
  7213. {$EXTERNALSYM SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE}
  7214. SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE = 220;
  7215. {$EXTERNALSYM SSL_F_SSL_CTX_USE_CERTIFICATE_FILE}
  7216. SSL_F_SSL_CTX_USE_CERTIFICATE_FILE = 173;
  7217. {$EXTERNALSYM SSL_F_SSL_CTX_USE_PRIVATEKEY}
  7218. SSL_F_SSL_CTX_USE_PRIVATEKEY = 174;
  7219. {$EXTERNALSYM SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1}
  7220. SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 = 175;
  7221. {$EXTERNALSYM SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE}
  7222. SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE = 176;
  7223. {$EXTERNALSYM SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT}
  7224. SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT = 272;
  7225. {$EXTERNALSYM SSL_F_SSL_CTX_USE_RSAPRIVATEKEY}
  7226. SSL_F_SSL_CTX_USE_RSAPRIVATEKEY = 177;
  7227. {$EXTERNALSYM SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1}
  7228. SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 = 178;
  7229. {$EXTERNALSYM SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE}
  7230. SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE = 179;
  7231. {$EXTERNALSYM SSL_F_SSL_DO_HANDSHAKE}
  7232. SSL_F_SSL_DO_HANDSHAKE = 180;
  7233. {$EXTERNALSYM SSL_F_SSL_GET_NEW_SESSION}
  7234. SSL_F_SSL_GET_NEW_SESSION = 181;
  7235. {$EXTERNALSYM SSL_F_SSL_GET_PREV_SESSION}
  7236. SSL_F_SSL_GET_PREV_SESSION = 217;
  7237. {$EXTERNALSYM SSL_F_SSL_GET_SERVER_SEND_CERT}
  7238. SSL_F_SSL_GET_SERVER_SEND_CERT = 182;
  7239. {$EXTERNALSYM SSL_F_SSL_GET_SERVER_SEND_PKEY}
  7240. SSL_F_SSL_GET_SERVER_SEND_PKEY = 317;
  7241. {$EXTERNALSYM SSL_F_SSL_GET_SIGN_PKEY}
  7242. SSL_F_SSL_GET_SIGN_PKEY = 183;
  7243. {$EXTERNALSYM SSL_F_SSL_INIT_WBIO_BUFFER}
  7244. SSL_F_SSL_INIT_WBIO_BUFFER = 184;
  7245. {$EXTERNALSYM SSL_F_SSL_LOAD_CLIENT_CA_FILE}
  7246. SSL_F_SSL_LOAD_CLIENT_CA_FILE = 185;
  7247. {$EXTERNALSYM SSL_F_SSL_NEW}
  7248. SSL_F_SSL_NEW = 186;
  7249. {$EXTERNALSYM SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT}
  7250. SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT = 300; //was 287;
  7251. {$EXTERNALSYM SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT}
  7252. SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT = 302; //was 290;
  7253. {$EXTERNALSYM SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT}
  7254. SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT = 310;
  7255. {$EXTERNALSYM SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT}
  7256. SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT = 301;//was 289;
  7257. {$EXTERNALSYM SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT}
  7258. SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT = 303; //was 291;
  7259. {$EXTERNALSYM SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT}
  7260. SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT = 311;
  7261. {$EXTERNALSYM SSL_F_SSL_PEEK}
  7262. SSL_F_SSL_PEEK = 270;
  7263. {$EXTERNALSYM SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT}
  7264. SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT = 281; //was 275;
  7265. {$EXTERNALSYM SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT}
  7266. SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT = 282;//was 276;
  7267. {$EXTERNALSYM SSL_F_SSL_READ}
  7268. SSL_F_SSL_READ = 223;
  7269. {$EXTERNALSYM SSL_F_SSL_RSA_PRIVATE_DECRYPT}
  7270. SSL_F_SSL_RSA_PRIVATE_DECRYPT = 187;
  7271. {$EXTERNALSYM SSL_F_SSL_RSA_PUBLIC_ENCRYPT}
  7272. SSL_F_SSL_RSA_PUBLIC_ENCRYPT = 188;
  7273. {$EXTERNALSYM SSL_F_SSL_SESSION_NEW}
  7274. SSL_F_SSL_SESSION_NEW = 189;
  7275. {$EXTERNALSYM SSL_F_SSL_SESSION_PRINT_FP}
  7276. SSL_F_SSL_SESSION_PRINT_FP = 190;
  7277. {$EXTERNALSYM SSL_F_SSL_SESSION_SET1_ID_CONTEXT}
  7278. SSL_F_SSL_SESSION_SET1_ID_CONTEXT = 312;
  7279. {$EXTERNALSYM SSL_F_SSL_SESS_CERT_NEW}
  7280. SSL_F_SSL_SESS_CERT_NEW = 225;
  7281. {$EXTERNALSYM SSL_F_SSL_SET_CERT}
  7282. SSL_F_SSL_SET_CERT = 191;
  7283. {$EXTERNALSYM SSL_F_SSL_SET_FD}
  7284. SSL_F_SSL_SET_FD = 192;
  7285. {$EXTERNALSYM SSL_F_SSL_SET_PKEY}
  7286. SSL_F_SSL_SET_PKEY = 193;
  7287. {$EXTERNALSYM SSL_F_SSL_SET_RFD}
  7288. SSL_F_SSL_SET_RFD = 194;
  7289. {$EXTERNALSYM SSL_F_SSL_SET_SESSION}
  7290. SSL_F_SSL_SET_SESSION = 195;
  7291. {$EXTERNALSYM SSL_F_SSL_SET_SESSION_ID_CONTEXT}
  7292. SSL_F_SSL_SET_SESSION_ID_CONTEXT = 218;
  7293. {$EXTERNALSYM SSL_F_SSL_SET_SESSION_TICKET_EXT}
  7294. SSL_F_SSL_SET_SESSION_TICKET_EXT = 294;
  7295. {$EXTERNALSYM SSL_F_SSL_SET_WFD}
  7296. SSL_F_SSL_SET_WFD = 196;
  7297. {$EXTERNALSYM SSL_F_SSL_SHUTDOWN}
  7298. SSL_F_SSL_SHUTDOWN = 224;
  7299. {$EXTERNALSYM SSL_F_SSL_SRP_CTX_INIT}
  7300. SSL_F_SSL_SRP_CTX_INIT = 313;
  7301. {$EXTERNALSYM SSL_F_SSL_UNDEFINED_FUNCTION}
  7302. SSL_F_SSL_UNDEFINED_FUNCTION = 197;
  7303. {$EXTERNALSYM SSL_F_SSL_USE_CERTIFICATE}
  7304. SSL_F_SSL_USE_CERTIFICATE = 198;
  7305. {$EXTERNALSYM SSL_F_SSL_USE_CERTIFICATE_ASN1}
  7306. SSL_F_SSL_USE_CERTIFICATE_ASN1 = 199;
  7307. {$EXTERNALSYM SSL_F_SSL_USE_CERTIFICATE_FILE}
  7308. SSL_F_SSL_USE_CERTIFICATE_FILE = 200;
  7309. {$EXTERNALSYM SSL_F_SSL_USE_PRIVATEKEY}
  7310. SSL_F_SSL_USE_PRIVATEKEY = 201;
  7311. {$EXTERNALSYM SSL_F_SSL_USE_PRIVATEKEY_ASN1}
  7312. SSL_F_SSL_USE_PRIVATEKEY_ASN1 = 202;
  7313. {$EXTERNALSYM SSL_F_SSL_USE_PRIVATEKEY_FILE}
  7314. SSL_F_SSL_USE_PRIVATEKEY_FILE = 203;
  7315. {$EXTERNALSYM SSL_F_SSL_USE_PSK_IDENTITY_HINT}
  7316. SSL_F_SSL_USE_PSK_IDENTITY_HINT = 273;
  7317. {$EXTERNALSYM SSL_F_SSL_USE_RSAPRIVATEKEY}
  7318. SSL_F_SSL_USE_RSAPRIVATEKEY = 204;
  7319. {$EXTERNALSYM SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1}
  7320. SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 = 205;
  7321. {$EXTERNALSYM SSL_F_SSL_USE_RSAPRIVATEKEY_FILE}
  7322. SSL_F_SSL_USE_RSAPRIVATEKEY_FILE = 206;
  7323. {$EXTERNALSYM SSL_F_SSL_VERIFY_CERT_CHAIN}
  7324. SSL_F_SSL_VERIFY_CERT_CHAIN = 207;
  7325. {$EXTERNALSYM SSL_F_SSL_WRITE}
  7326. SSL_F_SSL_WRITE = 208;
  7327. {$EXTERNALSYM SSL_F_TLS1_CERT_VERIFY_MAC}
  7328. SSL_F_TLS1_CERT_VERIFY_MAC = 286;
  7329. {$EXTERNALSYM SSL_F_TLS1_CHANGE_CIPHER_STATE}
  7330. SSL_F_TLS1_CHANGE_CIPHER_STATE = 209;
  7331. {$EXTERNALSYM SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT}
  7332. SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT = 274;
  7333. {$EXTERNALSYM SSL_F_TLS1_ENC}
  7334. SSL_F_TLS1_ENC = 210;
  7335. {$EXTERNALSYM SSL_F_TLS1_EXPORT_KEYING_MATERIAL}
  7336. SSL_F_TLS1_EXPORT_KEYING_MATERIAL = 314;
  7337. {$EXTERNALSYM SSL_F_TLS1_HEARTBEAT}
  7338. SSL_F_TLS1_HEARTBEAT = 315;
  7339. {$EXTERNALSYM SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT}
  7340. SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT = 275;
  7341. {$EXTERNALSYM SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT}
  7342. SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT = 276;
  7343. {$EXTERNALSYM SSL_F_TLS1_PRF}
  7344. SSL_F_TLS1_PRF = 284;
  7345. {$EXTERNALSYM SSL_F_TLS1_SETUP_KEY_BLOCK}
  7346. SSL_F_TLS1_SETUP_KEY_BLOCK = 211;
  7347. {$EXTERNALSYM SSL_F_WRITE_PENDING}
  7348. SSL_F_WRITE_PENDING = 212;
  7349. {$EXTERNALSYM SSL_MAX_KEY_ARG_LENGTH}
  7350. SSL_MAX_KEY_ARG_LENGTH = 8;
  7351. {$EXTERNALSYM SSL_MAX_MASTER_KEY_LENGTH}
  7352. SSL_MAX_MASTER_KEY_LENGTH = 48;
  7353. {$EXTERNALSYM SSL_MAX_SID_CTX_LENGTH}
  7354. SSL_MAX_SID_CTX_LENGTH = 32;
  7355. {$EXTERNALSYM SSL_MAX_KRB5_PRINCIPAL_LENGTH}
  7356. SSL_MAX_KRB5_PRINCIPAL_LENGTH = 256;
  7357. {$EXTERNALSYM SSL_MAX_SSL_SESSION_ID_LENGTH}
  7358. SSL_MAX_SSL_SESSION_ID_LENGTH = 32;
  7359. {$EXTERNALSYM SSL_MODE_ENABLE_PARTIAL_WRITE}
  7360. SSL_MODE_ENABLE_PARTIAL_WRITE = $00000001;
  7361. {$EXTERNALSYM SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER}
  7362. SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER = $00000002;
  7363. {$EXTERNALSYM SSL_MODE_AUTO_RETRY}
  7364. SSL_MODE_AUTO_RETRY = $00000004;
  7365. {$EXTERNALSYM SSL_MODE_NO_AUTO_CHAIN}
  7366. SSL_MODE_NO_AUTO_CHAIN = $00000008;
  7367. ///* Save RAM by releasing read and write buffers when they're empty. (SSL3 and
  7368. // * TLS only.) "Released" buffers are put onto a free-list in the context
  7369. // * or just freed (depending on the context's setting for freelist_max_len). */
  7370. {$EXTERNALSYM SSL_MODE_RELEASE_BUFFERS}
  7371. SSL_MODE_RELEASE_BUFFERS = $00000010;
  7372. {$IFDEF OPENSSL_NO_BUF_FREELISTS}
  7373. {$EXTERNALSYM SSL_MAX_BUF_FREELIST_LEN_DEFAULT}
  7374. SSL_MAX_BUF_FREELIST_LEN_DEFAULT = 32;
  7375. {$ENDIF}
  7376. {$EXTERNALSYM SSL_NOTHING}
  7377. SSL_NOTHING = 1;
  7378. {$EXTERNALSYM SSL_WRITING}
  7379. SSL_WRITING = 2;
  7380. {$EXTERNALSYM SSL_READING}
  7381. SSL_READING = 3;
  7382. {$EXTERNALSYM SSL_X509_LOOKUP}
  7383. SSL_X509_LOOKUP = 4;
  7384. {$EXTERNALSYM SSL_OP_MICROSOFT_SESS_ID_BUG}
  7385. SSL_OP_MICROSOFT_SESS_ID_BUG = $00000001;
  7386. {$EXTERNALSYM SSL_OP_NETSCAPE_CHALLENGE_BUG}
  7387. SSL_OP_NETSCAPE_CHALLENGE_BUG = $00000002;
  7388. //* Allow initial connection to servers that don't support RI */
  7389. {$EXTERNALSYM SSL_OP_LEGACY_SERVER_CONNECT}
  7390. SSL_OP_LEGACY_SERVER_CONNECT = $00000004;
  7391. {$EXTERNALSYM SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG}
  7392. SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG = $00000008;
  7393. {$EXTERNALSYM SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG}
  7394. SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG = $00000010;
  7395. {$EXTERNALSYM SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER}
  7396. SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER = $00000020;
  7397. {$EXTERNALSYM SSL_OP_MSIE_SSLV2_RSA_PADDING}
  7398. SSL_OP_MSIE_SSLV2_RSA_PADDING = $00000040;
  7399. {$EXTERNALSYM SSL_OP_SSLEAY_080_CLIENT_DH_BUG}
  7400. SSL_OP_SSLEAY_080_CLIENT_DH_BUG = $00000080;
  7401. {$EXTERNALSYM SSL_OP_TLS_D5_BUG}
  7402. SSL_OP_TLS_D5_BUG = $00000100;
  7403. {$EXTERNALSYM SSL_OP_TLS_BLOCK_PADDING_BUG}
  7404. SSL_OP_TLS_BLOCK_PADDING_BUG = $00000200;
  7405. {$EXTERNALSYM SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS}
  7406. SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS = $00000800;
  7407. {$EXTERNALSYM SSL_OP_ALL}
  7408. SSL_OP_ALL = $00000FFF; //this was $000FFFFF; before 0.9.7
  7409. {$EXTERNALSYM SSL_OP_NO_QUERY_MTU}
  7410. SSL_OP_NO_QUERY_MTU = $00001000;
  7411. {$EXTERNALSYM SSL_OP_COOKIE_EXCHANGE}
  7412. SSL_OP_COOKIE_EXCHANGE = $00002000;
  7413. {$EXTERNALSYM SSL_OP_NO_TICKET}
  7414. SSL_OP_NO_TICKET = $00004000;
  7415. //* Use Cisco's "speshul" version of DTLS_BAD_VER (as client) */
  7416. {$EXTERNALSYM SSL_OP_CISCO_ANYCONNECT}
  7417. SSL_OP_CISCO_ANYCONNECT = $00008000;
  7418. {$EXTERNALSYM SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION}
  7419. SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION = $00010000;
  7420. //* Don't use compression even if supported */
  7421. {$EXTERNALSYM SSL_OP_NO_COMPRESSION}
  7422. SSL_OP_NO_COMPRESSION = $00020000;
  7423. //* Permit unsafe legacy renegotiation */
  7424. {$EXTERNALSYM SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION}
  7425. SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION = $00040000;
  7426. {$EXTERNALSYM SSL_OP_SINGLE_ECDH_USE}
  7427. SSL_OP_SINGLE_ECDH_USE = $00080000;
  7428. {$EXTERNALSYM SSL_OP_SINGLE_DH_USE}
  7429. SSL_OP_SINGLE_DH_USE = $00100000;
  7430. {$EXTERNALSYM SSL_OP_EPHEMERAL_RSA}
  7431. SSL_OP_EPHEMERAL_RSA = $00200000;
  7432. {$EXTERNALSYM SSL_OP_CIPHER_SERVER_PREFERENCE}
  7433. SSL_OP_CIPHER_SERVER_PREFERENCE = $00400000;
  7434. {$EXTERNALSYM SSL_OP_TLS_ROLLBACK_BUG}
  7435. SSL_OP_TLS_ROLLBACK_BUG = $00800000; //was $00000400;
  7436. {$EXTERNALSYM SSL_OP_NO_SSLv2}
  7437. SSL_OP_NO_SSLv2 = $01000000;
  7438. {$EXTERNALSYM SSL_OP_NO_SSLv3}
  7439. SSL_OP_NO_SSLv3 = $02000000;
  7440. {$EXTERNALSYM SSL_OP_NO_TLSv1}
  7441. SSL_OP_NO_TLSv1 = $04000000;
  7442. {$EXTERNALSYM SSL_OP_NO_TLSv1_2}
  7443. SSL_OP_NO_TLSv1_2 = $08000000;
  7444. {$EXTERNALSYM SSL_OP_NO_TLSv1_1}
  7445. SSL_OP_NO_TLSv1_1 = $10000000;
  7446. {$EXTERNALSYM SSL_OP_PKCS1_CHECK_1}
  7447. SSL_OP_PKCS1_CHECK_1 = $00; //was $08000000;
  7448. {$EXTERNALSYM SSL_OP_PKCS1_CHECK_2}
  7449. SSL_OP_PKCS1_CHECK_2 = $00; //was $10000000;
  7450. {$EXTERNALSYM SSL_OP_NETSCAPE_CA_DN_BUG}
  7451. SSL_OP_NETSCAPE_CA_DN_BUG = $20000000;
  7452. //OPENSSL_SSL_OP_NON_EXPORT_FIRST was removed for OpenSSL 0.9.7 (that was $40000000;)
  7453. {$EXTERNALSYM SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG}
  7454. SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG = $40000000;// was $80000000;
  7455. //* Make server add server-hello extension from early version of
  7456. // * cryptopro draft, when GOST ciphersuite is negotiated.
  7457. // * Required for interoperability with CryptoPro CSP 3.x
  7458. // */
  7459. {$EXTERNALSYM SSL_OP_CRYPTOPRO_TLSEXT_BUG}
  7460. SSL_OP_CRYPTOPRO_TLSEXT_BUG = $80000000;
  7461. {$EXTERNALSYM SSL_RECEIVED_SHUTDOWN}
  7462. SSL_RECEIVED_SHUTDOWN = 2;
  7463. {$EXTERNALSYM SSL_R_APP_DATA_IN_HANDSHAKE}
  7464. SSL_R_APP_DATA_IN_HANDSHAKE = 100;
  7465. {$EXTERNALSYM SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}
  7466. SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT = 272;
  7467. {$EXTERNALSYM SSL_R_BAD_ALERT_RECORD}
  7468. SSL_R_BAD_ALERT_RECORD = 101;
  7469. {$EXTERNALSYM SSL_R_BAD_AUTHENTICATION_TYPE}
  7470. SSL_R_BAD_AUTHENTICATION_TYPE = 102;
  7471. {$EXTERNALSYM SSL_R_BAD_CHANGE_CIPHER_SPEC}
  7472. SSL_R_BAD_CHANGE_CIPHER_SPEC = 103;
  7473. {$EXTERNALSYM SSL_R_BAD_CHECKSUM}
  7474. SSL_R_BAD_CHECKSUM = 104;
  7475. {$EXTERNALSYM SSL_R_BAD_CLIENT_REQUEST}
  7476. SSL_R_BAD_CLIENT_REQUEST = 105;
  7477. {$EXTERNALSYM SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}
  7478. SSL_R_BAD_DATA_RETURNED_BY_CALLBACK = 106;
  7479. {$EXTERNALSYM SSL_R_BAD_DECOMPRESSION}
  7480. SSL_R_BAD_DECOMPRESSION = 107;
  7481. {$EXTERNALSYM SSL_R_BAD_DH_G_LENGTH}
  7482. SSL_R_BAD_DH_G_LENGTH = 108;
  7483. {$EXTERNALSYM SSL_R_BAD_DH_PUB_KEY_LENGTH}
  7484. SSL_R_BAD_DH_PUB_KEY_LENGTH = 109;
  7485. {$EXTERNALSYM SSL_R_BAD_DH_P_LENGTH}
  7486. SSL_R_BAD_DH_P_LENGTH = 110;
  7487. {$EXTERNALSYM SSL_R_BAD_DIGEST_LENGTH}
  7488. SSL_R_BAD_DIGEST_LENGTH = 111;
  7489. {$EXTERNALSYM SSL_R_BAD_DSA_SIGNATURE}
  7490. SSL_R_BAD_DSA_SIGNATURE = 112;
  7491. {$EXTERNALSYM SSL_R_BAD_ECC_CERT}
  7492. SSL_R_BAD_ECC_CERT = 304;
  7493. {$EXTERNALSYM SSL_R_BAD_ECDSA_SIGNATURE}
  7494. SSL_R_BAD_ECDSA_SIGNATURE = 305;
  7495. {$EXTERNALSYM SSL_R_BAD_ECPOINT}
  7496. SSL_R_BAD_ECPOINT = 306;
  7497. {$EXTERNALSYM SSL_R_BAD_HANDSHAKE_LENGTH}
  7498. SSL_R_BAD_HANDSHAKE_LENGTH = 332;
  7499. {$EXTERNALSYM SSL_R_BAD_HELLO_REQUEST}
  7500. SSL_R_BAD_HELLO_REQUEST = 105;
  7501. {$EXTERNALSYM SSL_R_BAD_LENGTH}
  7502. SSL_R_BAD_LENGTH = 271;
  7503. {$EXTERNALSYM SSL_R_BAD_MAC_DECODE}
  7504. SSL_R_BAD_MAC_DECODE = 113;
  7505. {$EXTERNALSYM SSL_R_BAD_MAC_LENGTH}
  7506. SSL_R_BAD_MAC_LENGTH = 333;
  7507. {$EXTERNALSYM SSL_R_BAD_MESSAGE_TYPE}
  7508. SSL_R_BAD_MESSAGE_TYPE = 114;
  7509. {$EXTERNALSYM SSL_R_BAD_PACKET_LENGTH}
  7510. SSL_R_BAD_PACKET_LENGTH = 115;
  7511. {$EXTERNALSYM SSL_R_BAD_PROTOCOL_VERSION_NUMBER}
  7512. SSL_R_BAD_PROTOCOL_VERSION_NUMBER = 116;
  7513. {$EXTERNALSYM SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH}
  7514. SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH = 316;
  7515. {$EXTERNALSYM SSL_R_BAD_RESPONSE_ARGUMENT}
  7516. SSL_R_BAD_RESPONSE_ARGUMENT = 117;
  7517. {$EXTERNALSYM SSL_R_BAD_RSA_DECRYPT}
  7518. SSL_R_BAD_RSA_DECRYPT = 118;
  7519. {$EXTERNALSYM SSL_R_BAD_RSA_ENCRYPT}
  7520. SSL_R_BAD_RSA_ENCRYPT = 119;
  7521. {$EXTERNALSYM SSL_R_BAD_RSA_E_LENGTH}
  7522. SSL_R_BAD_RSA_E_LENGTH = 120;
  7523. {$EXTERNALSYM SSL_R_BAD_RSA_MODULUS_LENGTH}
  7524. SSL_R_BAD_RSA_MODULUS_LENGTH = 121;
  7525. {$EXTERNALSYM SSL_R_BAD_RSA_SIGNATURE}
  7526. SSL_R_BAD_RSA_SIGNATURE = 122;
  7527. {$EXTERNALSYM SSL_R_BAD_SIGNATURE}
  7528. SSL_R_BAD_SIGNATURE = 123;
  7529. {$EXTERNALSYM SSL_R_BAD_SRP_A_LENGTH}
  7530. SSL_R_BAD_SRP_A_LENGTH = 347;
  7531. {$EXTERNALSYM SSL_R_BAD_SRP_B_LENGTH}
  7532. SSL_R_BAD_SRP_B_LENGTH = 348;
  7533. {$EXTERNALSYM SSL_R_BAD_SRP_G_LENGTH}
  7534. SSL_R_BAD_SRP_G_LENGTH = 349;
  7535. {$EXTERNALSYM SSL_R_BAD_SRP_N_LENGTH}
  7536. SSL_R_BAD_SRP_N_LENGTH = 350;
  7537. {$EXTERNALSYM SSL_R_BAD_SRP_S_LENGTH}
  7538. SSL_R_BAD_SRP_S_LENGTH = 351;
  7539. {$EXTERNALSYM SSL_R_BAD_SRTP_MKI_VALUE}
  7540. SSL_R_BAD_SRTP_MKI_VALUE = 352;
  7541. {$EXTERNALSYM SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}
  7542. SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST = 353;
  7543. {$EXTERNALSYM SSL_R_BAD_SSL_FILETYPE}
  7544. SSL_R_BAD_SSL_FILETYPE = 124;
  7545. {$EXTERNALSYM SSL_R_BAD_SSL_SESSION_ID_LENGTH}
  7546. SSL_R_BAD_SSL_SESSION_ID_LENGTH = 125;
  7547. {$EXTERNALSYM SSL_R_BAD_STATE}
  7548. SSL_R_BAD_STATE = 126;
  7549. {$EXTERNALSYM SSL_R_BAD_WRITE_RETRY}
  7550. SSL_R_BAD_WRITE_RETRY = 127;
  7551. {$EXTERNALSYM SSL_R_BIO_NOT_SET}
  7552. SSL_R_BIO_NOT_SET = 128;
  7553. {$EXTERNALSYM SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}
  7554. SSL_R_BLOCK_CIPHER_PAD_IS_WRONG = 129;
  7555. {$EXTERNALSYM SSL_R_BN_LIB}
  7556. SSL_R_BN_LIB = 130;
  7557. {$EXTERNALSYM SSL_R_CA_DN_LENGTH_MISMATCH}
  7558. SSL_R_CA_DN_LENGTH_MISMATCH = 131;
  7559. {$EXTERNALSYM SSL_R_CA_DN_TOO_LONG}
  7560. SSL_R_CA_DN_TOO_LONG = 132;
  7561. {$EXTERNALSYM SSL_R_CCS_RECEIVED_EARLY}
  7562. SSL_R_CCS_RECEIVED_EARLY = 133;
  7563. {$EXTERNALSYM SSL_R_CERTIFICATE_VERIFY_FAILED}
  7564. SSL_R_CERTIFICATE_VERIFY_FAILED = 134;
  7565. {$EXTERNALSYM SSL_R_CERT_LENGTH_MISMATCH}
  7566. SSL_R_CERT_LENGTH_MISMATCH = 135;
  7567. {$EXTERNALSYM SSL_R_CHALLENGE_IS_DIFFERENT}
  7568. SSL_R_CHALLENGE_IS_DIFFERENT = 136;
  7569. {$EXTERNALSYM SSL_R_CIPHER_CODE_WRONG_LENGTH}
  7570. SSL_R_CIPHER_CODE_WRONG_LENGTH = 137;
  7571. {$EXTERNALSYM SSL_R_CIPHER_OR_HASH_UNAVAILABLE}
  7572. SSL_R_CIPHER_OR_HASH_UNAVAILABLE = 138;
  7573. {$EXTERNALSYM SSL_R_CIPHER_TABLE_SRC_ERROR}
  7574. SSL_R_CIPHER_TABLE_SRC_ERROR = 139;
  7575. {$EXTERNALSYM SSL_R_CLIENTHELLO_TLSEXT}
  7576. SSL_R_CLIENTHELLO_TLSEXT = 226; //was 157;
  7577. {$EXTERNALSYM SSL_R_COMPRESSED_LENGTH_TOO_LONG}
  7578. SSL_R_COMPRESSED_LENGTH_TOO_LONG = 140;
  7579. {$EXTERNALSYM SSL_R_COMPRESSION_DISABLED}
  7580. SSL_R_COMPRESSION_DISABLED = 343;
  7581. {$EXTERNALSYM SSL_R_COMPRESSION_FAILURE}
  7582. SSL_R_COMPRESSION_FAILURE = 141;
  7583. {$EXTERNALSYM SSL_R_COMPRESSION_LIBRARY_ERROR}
  7584. SSL_R_COMPRESSION_LIBRARY_ERROR = 142;
  7585. {$EXTERNALSYM SSL_R_CONNECTION_ID_IS_DIFFERENT}
  7586. SSL_R_CONNECTION_ID_IS_DIFFERENT = 143;
  7587. {$EXTERNALSYM SSL_R_CONNECTION_TYPE_NOT_SET}
  7588. SSL_R_CONNECTION_TYPE_NOT_SET = 144;
  7589. {$EXTERNALSYM SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}
  7590. SSL_R_DATA_BETWEEN_CCS_AND_FINISHED = 145;
  7591. {$EXTERNALSYM SSL_R_DATA_LENGTH_TOO_LONG}
  7592. SSL_R_DATA_LENGTH_TOO_LONG = 146;
  7593. {$EXTERNALSYM SSL_R_DECRYPTION_FAILED}
  7594. SSL_R_DECRYPTION_FAILED = 147;
  7595. {$EXTERNALSYM SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}
  7596. SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG = 148;
  7597. {$EXTERNALSYM SSL_R_DIGEST_CHECK_FAILED}
  7598. SSL_R_DIGEST_CHECK_FAILED = 149;
  7599. {$EXTERNALSYM SSL_R_DTLS_MESSAGE_TOO_BIG}
  7600. SSL_R_DTLS_MESSAGE_TOO_BIG = 334; //was 318;
  7601. {$EXTERNALSYM SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT}
  7602. SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT = 317;
  7603. {$EXTERNALSYM SSL_R_ECC_CERT_NOT_FOR_SIGNING}
  7604. SSL_R_ECC_CERT_NOT_FOR_SIGNING = 318;
  7605. {$EXTERNALSYM SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE}
  7606. SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE = 322;
  7607. {$EXTERNALSYM SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE}
  7608. SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE = 323;
  7609. {$EXTERNALSYM SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER}
  7610. SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER = 310;
  7611. {$EXTERNALSYM SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}
  7612. SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST = 354;
  7613. {$EXTERNALSYM SSL_R_ENCRYPTED_LENGTH_TOO_LONG}
  7614. SSL_R_ENCRYPTED_LENGTH_TOO_LONG = 150;
  7615. {$EXTERNALSYM SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}
  7616. SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST = 151;
  7617. {$EXTERNALSYM SSL_R_EXCESSIVE_MESSAGE_SIZE}
  7618. SSL_R_EXCESSIVE_MESSAGE_SIZE = 152;
  7619. {$EXTERNALSYM SSL_R_EXTRA_DATA_IN_MESSAGE}
  7620. SSL_R_EXTRA_DATA_IN_MESSAGE = 153;
  7621. {$EXTERNALSYM SSL_R_GOT_A_FIN_BEFORE_A_CCS}
  7622. SSL_R_GOT_A_FIN_BEFORE_A_CCS = 154;
  7623. {$EXTERNALSYM SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS}
  7624. SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS = 355;
  7625. {$EXTERNALSYM SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION}
  7626. SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION = 356;
  7627. {$EXTERNALSYM SSL_R_HTTPS_PROXY_REQUEST}
  7628. SSL_R_HTTPS_PROXY_REQUEST = 155;
  7629. {$EXTERNALSYM SSL_R_HTTP_REQUEST}
  7630. SSL_R_HTTP_REQUEST = 156;
  7631. {$EXTERNALSYM SSL_R_ILLEGAL_PADDING}
  7632. SSL_R_ILLEGAL_PADDING = 283;
  7633. {$EXTERNALSYM SSL_R_INCONSISTENT_COMPRESSION}
  7634. SSL_R_INCONSISTENT_COMPRESSION = 340;
  7635. {$EXTERNALSYM SSL_R_INTERNAL_ERROR}
  7636. SSL_R_INTERNAL_ERROR = 157;
  7637. {$EXTERNALSYM SSL_R_INVALID_CHALLENGE_LENGTH}
  7638. SSL_R_INVALID_CHALLENGE_LENGTH = 158;
  7639. {$EXTERNALSYM SSL_R_INVALID_COMMAND}
  7640. SSL_R_INVALID_COMMAND = 280;
  7641. {$EXTERNALSYM SSL_R_INVALID_PURPOSE}
  7642. SSL_R_INVALID_PURPOSE = 278;
  7643. {$EXTERNALSYM SSL_R_INVALID_STATUS_RESPONSE}
  7644. SSL_R_INVALID_STATUS_RESPONSE = 316;
  7645. {$EXTERNALSYM SSL_R_INVALID_TICKET_KEYS_LENGTH}
  7646. SSL_R_INVALID_TICKET_KEYS_LENGTH = 275;
  7647. {$EXTERNALSYM SSL_R_INVALID_TRUST}
  7648. SSL_R_INVALID_TRUST = 279;
  7649. {$EXTERNALSYM SSL_R_LENGTH_MISMATCH}
  7650. SSL_R_LENGTH_MISMATCH = 159;
  7651. {$EXTERNALSYM SSL_R_LENGTH_TOO_SHORT}
  7652. SSL_R_LENGTH_TOO_SHORT = 160;
  7653. {$EXTERNALSYM SSL_R_LIBRARY_BUG}
  7654. SSL_R_LIBRARY_BUG = 274;
  7655. {$EXTERNALSYM SSL_R_LIBRARY_HAS_NO_CIPHERS}
  7656. SSL_R_LIBRARY_HAS_NO_CIPHERS = 161;
  7657. {$EXTERNALSYM SSL_R_MISSING_DH_DSA_CERT}
  7658. SSL_R_MISSING_DH_DSA_CERT = 162;
  7659. {$EXTERNALSYM SSL_R_MISSING_DH_KEY}
  7660. SSL_R_MISSING_DH_KEY = 163;
  7661. {$EXTERNALSYM SSL_R_MISSING_DH_RSA_CERT}
  7662. SSL_R_MISSING_DH_RSA_CERT = 164;
  7663. {$EXTERNALSYM SSL_R_MISSING_DSA_SIGNING_CERT}
  7664. SSL_R_MISSING_DSA_SIGNING_CERT = 165;
  7665. {$EXTERNALSYM SSL_R_MISSING_EXPORT_TMP_DH_KEY}
  7666. SSL_R_MISSING_EXPORT_TMP_DH_KEY = 166;
  7667. {$EXTERNALSYM SSL_R_MISSING_EXPORT_TMP_RSA_KEY}
  7668. SSL_R_MISSING_EXPORT_TMP_RSA_KEY = 167;
  7669. {$EXTERNALSYM SSL_R_MISSING_RSA_CERTIFICATE}
  7670. SSL_R_MISSING_RSA_CERTIFICATE = 168;
  7671. {$EXTERNALSYM SSL_R_MISSING_RSA_ENCRYPTING_CERT}
  7672. SSL_R_MISSING_RSA_ENCRYPTING_CERT = 169;
  7673. {$EXTERNALSYM SSL_R_MISSING_RSA_SIGNING_CERT}
  7674. SSL_R_MISSING_RSA_SIGNING_CERT = 170;
  7675. {$EXTERNALSYM SSL_R_MISSING_TMP_DH_KEY}
  7676. SSL_R_MISSING_TMP_DH_KEY = 171;
  7677. {$EXTERNALSYM SSL_R_MISSING_TMP_RSA_KEY}
  7678. SSL_R_MISSING_TMP_RSA_KEY = 172;
  7679. {$EXTERNALSYM SSL_R_MISSING_TMP_RSA_PKEY}
  7680. SSL_R_MISSING_TMP_RSA_PKEY = 173;
  7681. {$EXTERNALSYM SSL_R_MISSING_VERIFY_MESSAGE}
  7682. SSL_R_MISSING_VERIFY_MESSAGE = 174;
  7683. {$EXTERNALSYM SSL_R_MULTIPLE_SGC_RESTARTS}
  7684. SSL_R_MULTIPLE_SGC_RESTARTS = 346;
  7685. {$EXTERNALSYM SSL_R_NON_SSLV2_INITIAL_PACKET}
  7686. SSL_R_NON_SSLV2_INITIAL_PACKET = 175;
  7687. {$EXTERNALSYM SSL_R_NO_CERTIFICATES_RETURNED}
  7688. SSL_R_NO_CERTIFICATES_RETURNED = 176;
  7689. {$EXTERNALSYM SSL_R_NO_CERTIFICATE_ASSIGNED}
  7690. SSL_R_NO_CERTIFICATE_ASSIGNED = 177;
  7691. {$EXTERNALSYM SSL_R_NO_CERTIFICATE_RETURNED}
  7692. SSL_R_NO_CERTIFICATE_RETURNED = 178;
  7693. {$EXTERNALSYM SSL_R_NO_CERTIFICATE_SET}
  7694. SSL_R_NO_CERTIFICATE_SET = 179;
  7695. {$EXTERNALSYM SSL_R_NO_CERTIFICATE_SPECIFIED}
  7696. SSL_R_NO_CERTIFICATE_SPECIFIED = 180;
  7697. {$EXTERNALSYM SSL_R_NO_CIPHERS_AVAILABLE}
  7698. SSL_R_NO_CIPHERS_AVAILABLE = 181;
  7699. {$EXTERNALSYM SSL_R_NO_CIPHERS_PASSED}
  7700. SSL_R_NO_CIPHERS_PASSED = 182;
  7701. {$EXTERNALSYM SSL_R_NO_CIPHERS_SPECIFIED}
  7702. SSL_R_NO_CIPHERS_SPECIFIED = 183;
  7703. {$EXTERNALSYM SSL_R_NO_CIPHER_LIST}
  7704. SSL_R_NO_CIPHER_LIST = 184;
  7705. {$EXTERNALSYM SSL_R_NO_CIPHER_MATCH}
  7706. SSL_R_NO_CIPHER_MATCH = 185;
  7707. {$EXTERNALSYM SSL_R_NO_CLIENT_CERT_METHOD}
  7708. SSL_R_NO_CLIENT_CERT_METHOD = 317;
  7709. {$EXTERNALSYM SSL_R_NO_CLIENT_CERT_RECEIVED}
  7710. SSL_R_NO_CLIENT_CERT_RECEIVED = 186;
  7711. {$EXTERNALSYM SSL_R_NO_COMPRESSION_SPECIFIED}
  7712. SSL_R_NO_COMPRESSION_SPECIFIED = 187;
  7713. {$EXTERNALSYM SSL_R_NO_METHOD_SPECIFIED}
  7714. SSL_R_NO_METHOD_SPECIFIED = 188;
  7715. {$EXTERNALSYM SSL_R_NO_PRIVATEKEY}
  7716. SSL_R_NO_PRIVATEKEY = 189;
  7717. {$EXTERNALSYM SSL_R_NO_PRIVATE_KEY_ASSIGNED}
  7718. SSL_R_NO_PRIVATE_KEY_ASSIGNED = 190;
  7719. {$EXTERNALSYM SSL_R_NO_PROTOCOLS_AVAILABLE}
  7720. SSL_R_NO_PROTOCOLS_AVAILABLE = 191;
  7721. {$EXTERNALSYM SSL_R_NO_PUBLICKEY}
  7722. SSL_R_NO_PUBLICKEY = 192;
  7723. //was 318
  7724. {$EXTERNALSYM SSL_R_NO_RENEGOTIATION}
  7725. SSL_R_NO_RENEGOTIATION = 319;
  7726. {$EXTERNALSYM SSL_R_NO_SHARED_CIPHER}
  7727. SSL_R_NO_SHARED_CIPHER = 193;
  7728. {$EXTERNALSYM SSL_R_NO_VERIFY_CALLBACK}
  7729. SSL_R_NO_VERIFY_CALLBACK = 194;
  7730. {$EXTERNALSYM SSL_R_NULL_SSL_CTX}
  7731. SSL_R_NULL_SSL_CTX = 195;
  7732. {$EXTERNALSYM SSL_R_NULL_SSL_METHOD_PASSED}
  7733. SSL_R_NULL_SSL_METHOD_PASSED = 196;
  7734. {$EXTERNALSYM SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}
  7735. SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED = 197;
  7736. {$EXTERNALSYM SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE}
  7737. SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE = 297;
  7738. {$EXTERNALSYM SSL_R_PACKET_LENGTH_TOO_LONG}
  7739. SSL_R_PACKET_LENGTH_TOO_LONG = 198;
  7740. {$EXTERNALSYM SSL_R_PARSE_TLSEXT}
  7741. SSL_R_PARSE_TLSEXT = 223;
  7742. {$EXTERNALSYM SSL_R_PATH_TOO_LONG}
  7743. SSL_R_PATH_TOO_LONG = 270;
  7744. {$EXTERNALSYM SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}
  7745. SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE = 199;
  7746. {$EXTERNALSYM SSL_R_PEER_ERROR}
  7747. SSL_R_PEER_ERROR = 200;
  7748. {$EXTERNALSYM SSL_R_PEER_ERROR_CERTIFICATE}
  7749. SSL_R_PEER_ERROR_CERTIFICATE = 201;
  7750. {$EXTERNALSYM SSL_R_PEER_ERROR_NO_CERTIFICATE}
  7751. SSL_R_PEER_ERROR_NO_CERTIFICATE = 202;
  7752. {$EXTERNALSYM SSL_R_PEER_ERROR_NO_CIPHER}
  7753. SSL_R_PEER_ERROR_NO_CIPHER = 203;
  7754. {$EXTERNALSYM SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE}
  7755. SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE = 204;
  7756. {$EXTERNALSYM SSL_R_PRE_MAC_LENGTH_TOO_LONG}
  7757. SSL_R_PRE_MAC_LENGTH_TOO_LONG = 205;
  7758. {$EXTERNALSYM SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS}
  7759. SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS = 206;
  7760. {$EXTERNALSYM SSL_R_PROTOCOL_IS_SHUTDOWN}
  7761. SSL_R_PROTOCOL_IS_SHUTDOWN = 207;
  7762. {$EXTERNALSYM SSL_R_PUBLIC_KEY_ENCRYPT_ERROR}
  7763. SSL_R_PUBLIC_KEY_ENCRYPT_ERROR = 208;
  7764. {$EXTERNALSYM SSL_R_PUBLIC_KEY_IS_NOT_RSA}
  7765. SSL_R_PUBLIC_KEY_IS_NOT_RSA = 209;
  7766. {$EXTERNALSYM SSL_R_PUBLIC_KEY_NOT_RSA}
  7767. SSL_R_PUBLIC_KEY_NOT_RSA = 210;
  7768. {$EXTERNALSYM SSL_R_READ_BIO_NOT_SET}
  7769. SSL_R_READ_BIO_NOT_SET = 211;
  7770. {$EXTERNALSYM SSL_R_READ_WRONG_PACKET_TYPE}
  7771. SSL_R_READ_WRONG_PACKET_TYPE = 212;
  7772. {$EXTERNALSYM SSL_R_RECORD_LENGTH_MISMATCH}
  7773. SSL_R_RECORD_LENGTH_MISMATCH = 213;
  7774. {$EXTERNALSYM SSL_R_RECORD_TOO_LARGE}
  7775. SSL_R_RECORD_TOO_LARGE = 214;
  7776. {$EXTERNALSYM SSL_R_RECORD_TOO_SMALL}
  7777. SSL_R_RECORD_TOO_SMALL = 298;
  7778. {$EXTERNALSYM SSL_R_RENEGOTIATE_EXT_TOO_LONG}
  7779. SSL_R_RENEGOTIATE_EXT_TOO_LONG = 320;
  7780. {$EXTERNALSYM SSL_R_RENEGOTIATION_ENCODING_ERR}
  7781. SSL_R_RENEGOTIATION_ENCODING_ERR = 321;
  7782. {$EXTERNALSYM SSL_R_RENEGOTIATION_MISMATCH}
  7783. SSL_R_RENEGOTIATION_MISMATCH = 322;
  7784. {$EXTERNALSYM SSL_R_REQUIRED_CIPHER_MISSING}
  7785. SSL_R_REQUIRED_CIPHER_MISSING = 215;
  7786. {$EXTERNALSYM SSL_R_REUSE_CERT_LENGTH_NOT_ZERO}
  7787. SSL_R_REUSE_CERT_LENGTH_NOT_ZERO = 216;
  7788. {$EXTERNALSYM SSL_R_REUSE_CERT_TYPE_NOT_ZERO}
  7789. SSL_R_REUSE_CERT_TYPE_NOT_ZERO = 217;
  7790. {$EXTERNALSYM SSL_R_REUSE_CIPHER_LIST_NOT_ZERO}
  7791. SSL_R_REUSE_CIPHER_LIST_NOT_ZERO = 218;
  7792. {$EXTERNALSYM SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}
  7793. SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING = 324;
  7794. {$EXTERNALSYM SSL_R_SERVERHELLO_TLSEXT}
  7795. SSL_R_SERVERHELLO_TLSEXT = 224;
  7796. {$EXTERNALSYM SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}
  7797. SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED = 277;
  7798. {$EXTERNALSYM SSL_R_SHORT_READ}
  7799. SSL_R_SHORT_READ = 219;
  7800. {$EXTERNALSYM SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}
  7801. SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE = 220;
  7802. {$EXTERNALSYM SSL_R_SSL23_DOING_SESSION_ID_REUSE}
  7803. SSL_R_SSL23_DOING_SESSION_ID_REUSE = 221;
  7804. {$EXTERNALSYM SSL_R_SSL2_CONNECTION_ID_TOO_LONG}
  7805. SSL_R_SSL2_CONNECTION_ID_TOO_LONG = 299;
  7806. {$EXTERNALSYM SSL_R_SSL3_EXT_INVALID_SERVERNAME}
  7807. SSL_R_SSL3_EXT_INVALID_SERVERNAME = 225;
  7808. {$EXTERNALSYM SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE}
  7809. SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE = 226;
  7810. {$EXTERNALSYM SSL_R_SSL3_SESSION_ID_TOO_LONG}
  7811. SSL_R_SSL3_SESSION_ID_TOO_LONG = 300;
  7812. {$EXTERNALSYM SSL_R_SSL3_SESSION_ID_TOO_SHORT}
  7813. SSL_R_SSL3_SESSION_ID_TOO_SHORT = 222;
  7814. {$EXTERNALSYM SSL_R_SSLV3_ALERT_BAD_CERTIFICATE}
  7815. SSL_R_SSLV3_ALERT_BAD_CERTIFICATE = 1042;
  7816. {$EXTERNALSYM SSL_R_SSLV3_ALERT_BAD_RECORD_MAC}
  7817. SSL_R_SSLV3_ALERT_BAD_RECORD_MAC = 1020;
  7818. {$EXTERNALSYM SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED}
  7819. SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED = 1045;
  7820. {$EXTERNALSYM SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED}
  7821. SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED = 1044;
  7822. {$EXTERNALSYM SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN}
  7823. SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN = 1046;
  7824. {$EXTERNALSYM SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE}
  7825. SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE = 1030;
  7826. {$EXTERNALSYM SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE}
  7827. SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE = 1040;
  7828. {$EXTERNALSYM SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER}
  7829. SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER = 1047;
  7830. {$EXTERNALSYM SSL_R_SSLV3_ALERT_NO_CERTIFICATE}
  7831. SSL_R_SSLV3_ALERT_NO_CERTIFICATE = 1041;
  7832. {$EXTERNALSYM SSL_R_SSLV3_ALERT_PEER_ERROR_CERTIFICATE}
  7833. SSL_R_SSLV3_ALERT_PEER_ERROR_CERTIFICATE = 223;
  7834. {$EXTERNALSYM SSL_R_SSLV3_ALERT_PEER_ERROR_NO_CERTIFICATE}
  7835. SSL_R_SSLV3_ALERT_PEER_ERROR_NO_CERTIFICATE = 224;
  7836. {$EXTERNALSYM SSL_R_SSLV3_ALERT_PEER_ERROR_NO_CIPHER}
  7837. SSL_R_SSLV3_ALERT_PEER_ERROR_NO_CIPHER = 225;
  7838. {$EXTERNALSYM SSL_R_SSLV3_ALERT_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE}
  7839. SSL_R_SSLV3_ALERT_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE = 226;
  7840. {$EXTERNALSYM SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE}
  7841. SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE = 1010;
  7842. {$EXTERNALSYM SSL_R_SSLV3_ALERT_UNKNOWN_REMOTE_ERROR_TYPE}
  7843. SSL_R_SSLV3_ALERT_UNKNOWN_REMOTE_ERROR_TYPE = 227;
  7844. {$EXTERNALSYM SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE}
  7845. SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE = 1043;
  7846. {$EXTERNALSYM SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}
  7847. SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION = 228;
  7848. {$EXTERNALSYM SSL_R_SSL_HANDSHAKE_FAILURE}
  7849. SSL_R_SSL_HANDSHAKE_FAILURE = 229;
  7850. {$EXTERNALSYM SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}
  7851. SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS = 230;
  7852. {$EXTERNALSYM SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}
  7853. SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG = 273;
  7854. {$EXTERNALSYM SSL_R_SSL_SESSION_ID_IS_DIFFERENT}
  7855. SSL_R_SSL_SESSION_ID_IS_DIFFERENT = 231;
  7856. {$EXTERNALSYM SSL_R_TLSV1_ALERT_ACCESS_DENIED}
  7857. SSL_R_TLSV1_ALERT_ACCESS_DENIED = 1049;
  7858. {$EXTERNALSYM SSL_R_TLSV1_ALERT_DECODE_ERROR}
  7859. SSL_R_TLSV1_ALERT_DECODE_ERROR = 1050;
  7860. {$EXTERNALSYM SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}
  7861. SSL_R_TLSV1_ALERT_DECRYPTION_FAILED = 1021;
  7862. {$EXTERNALSYM SSL_R_TLSV1_ALERT_DECRYPT_ERROR}
  7863. SSL_R_TLSV1_ALERT_DECRYPT_ERROR = 1051;
  7864. {$EXTERNALSYM SSL_R_TLSV1_ALERT_EXPORT_RESTRICION}
  7865. SSL_R_TLSV1_ALERT_EXPORT_RESTRICION = 1060;
  7866. {$EXTERNALSYM SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}
  7867. SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY = 1071;
  7868. {$EXTERNALSYM SSL_R_TLSV1_ALERT_INTERNAL_ERROR}
  7869. SSL_R_TLSV1_ALERT_INTERNAL_ERROR = 1080;
  7870. {$EXTERNALSYM SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}
  7871. SSL_R_TLSV1_ALERT_NO_RENEGOTIATION = 1100;
  7872. {$EXTERNALSYM SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}
  7873. SSL_R_TLSV1_ALERT_PROTOCOL_VERSION = 1070;
  7874. {$EXTERNALSYM SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}
  7875. SSL_R_TLSV1_ALERT_RECORD_OVERFLOW = 1022;
  7876. {$EXTERNALSYM SSL_R_TLSV1_ALERT_UNKNOWN_CA}
  7877. SSL_R_TLSV1_ALERT_UNKNOWN_CA = 1048;
  7878. {$EXTERNALSYM SSL_R_TLSV1_ALERT_USER_CANCLED}
  7879. SSL_R_TLSV1_ALERT_USER_CANCLED = 1090;
  7880. {$EXTERNALSYM SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER}
  7881. SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER = 232;
  7882. {$EXTERNALSYM SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}
  7883. SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST = 227;
  7884. {$EXTERNALSYM SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST}
  7885. SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST = 233;
  7886. {$EXTERNALSYM SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG}
  7887. SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG = 234;
  7888. {$EXTERNALSYM SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER}
  7889. SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER = 235;
  7890. {$EXTERNALSYM SSL_R_UNABLE_TO_DECODE_DH_CERTS}
  7891. SSL_R_UNABLE_TO_DECODE_DH_CERTS = 236;
  7892. {$EXTERNALSYM SSL_R_UNABLE_TO_EXTRACT_PUBLIC_KEY}
  7893. SSL_R_UNABLE_TO_EXTRACT_PUBLIC_KEY = 237;
  7894. {$EXTERNALSYM SSL_R_UNABLE_TO_FIND_DH_PARAMETERS}
  7895. SSL_R_UNABLE_TO_FIND_DH_PARAMETERS = 238;
  7896. {$EXTERNALSYM SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}
  7897. SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS = 239;
  7898. {$EXTERNALSYM SSL_R_UNABLE_TO_FIND_SSL_METHOD}
  7899. SSL_R_UNABLE_TO_FIND_SSL_METHOD = 240;
  7900. {$EXTERNALSYM SSL_R_UNABLE_TO_LOAD_SSL2_MD5_ROUTINES}
  7901. SSL_R_UNABLE_TO_LOAD_SSL2_MD5_ROUTINES = 241;
  7902. {$EXTERNALSYM SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES}
  7903. SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES = 242;
  7904. {$EXTERNALSYM SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES}
  7905. SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES = 243;
  7906. {$EXTERNALSYM SSL_R_UNEXPECTED_MESSAGE}
  7907. SSL_R_UNEXPECTED_MESSAGE = 244;
  7908. {$EXTERNALSYM SSL_R_UNEXPECTED_RECORD}
  7909. SSL_R_UNEXPECTED_RECORD = 245;
  7910. {$EXTERNALSYM SSL_R_UNINITIALIZED}
  7911. SSL_R_UNINITIALIZED = 276;
  7912. {$EXTERNALSYM SSL_R_UNKNOWN_ALERT_TYPE}
  7913. SSL_R_UNKNOWN_ALERT_TYPE = 246;
  7914. {$EXTERNALSYM SSL_R_UNKNOWN_CERTIFICATE_TYPE}
  7915. SSL_R_UNKNOWN_CERTIFICATE_TYPE = 247;
  7916. {$EXTERNALSYM SSL_R_UNKNOWN_CIPHER_RETURNED}
  7917. SSL_R_UNKNOWN_CIPHER_RETURNED = 248;
  7918. {$EXTERNALSYM SSL_R_UNKNOWN_CIPHER_TYPE}
  7919. SSL_R_UNKNOWN_CIPHER_TYPE = 249;
  7920. {$EXTERNALSYM SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}
  7921. SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE = 250;
  7922. {$EXTERNALSYM SSL_R_UNKNOWN_PKEY_TYPE}
  7923. SSL_R_UNKNOWN_PKEY_TYPE = 251;
  7924. {$EXTERNALSYM SSL_R_UNKNOWN_PROTOCOL}
  7925. SSL_R_UNKNOWN_PROTOCOL = 252;
  7926. {$EXTERNALSYM SSL_R_UNKNOWN_REMOTE_ERROR_TYPE}
  7927. SSL_R_UNKNOWN_REMOTE_ERROR_TYPE = 253;
  7928. {$EXTERNALSYM SSL_R_UNKNOWN_SSL_VERSION}
  7929. SSL_R_UNKNOWN_SSL_VERSION = 254;
  7930. {$EXTERNALSYM SSL_R_UNSUPPORTED_STATUS_TYPE}
  7931. SSL_R_UNSUPPORTED_STATUS_TYPE = 329;
  7932. {$EXTERNALSYM SSL_R_UNKNOWN_STATE}
  7933. SSL_R_UNKNOWN_STATE = 255;
  7934. {$EXTERNALSYM SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}
  7935. SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED = 323;
  7936. {$EXTERNALSYM SSL_R_UNSUPPORTED_CIPHER}
  7937. SSL_R_UNSUPPORTED_CIPHER = 256;
  7938. {$EXTERNALSYM SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}
  7939. SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM = 257;
  7940. {$EXTERNALSYM SSL_R_UNSUPPORTED_DIGEST_TYPE}
  7941. SSL_R_UNSUPPORTED_DIGEST_TYPE = 326;
  7942. {$EXTERNALSYM SSL_R_UNSUPPORTED_PROTOCOL}
  7943. SSL_R_UNSUPPORTED_PROTOCOL = 258;
  7944. {$EXTERNALSYM SSL_R_UNSUPPORTED_SSL_VERSION}
  7945. SSL_R_UNSUPPORTED_SSL_VERSION = 259;
  7946. {$EXTERNALSYM SSL_R_USE_SRTP_NOT_NEGOTIATED}
  7947. SSL_R_USE_SRTP_NOT_NEGOTIATED = 369;
  7948. {$EXTERNALSYM SSL_R_WRITE_BIO_NOT_SET}
  7949. SSL_R_WRITE_BIO_NOT_SET = 260;
  7950. {$EXTERNALSYM SSL_R_WRONG_CIPHER_RETURNED}
  7951. SSL_R_WRONG_CIPHER_RETURNED = 261;
  7952. {$EXTERNALSYM SSL_R_WRONG_MESSAGE_TYPE}
  7953. SSL_R_WRONG_MESSAGE_TYPE = 262;
  7954. {$EXTERNALSYM SSL_R_WRONG_NUMBER_OF_KEY_BITS}
  7955. SSL_R_WRONG_NUMBER_OF_KEY_BITS = 263;
  7956. {$EXTERNALSYM SSL_R_WRONG_SIGNATURE_LENGTH}
  7957. SSL_R_WRONG_SIGNATURE_LENGTH = 264;
  7958. {$EXTERNALSYM SSL_R_WRONG_SIGNATURE_SIZE}
  7959. SSL_R_WRONG_SIGNATURE_SIZE = 265;
  7960. {$EXTERNALSYM SSL_R_WRONG_SIGNATURE_TYPE}
  7961. SSL_R_WRONG_SIGNATURE_TYPE = 370;
  7962. {$EXTERNALSYM SSL_R_WRONG_SSL_VERSION}
  7963. SSL_R_WRONG_SSL_VERSION = 266;
  7964. {$EXTERNALSYM SSL_R_WRONG_VERSION_NUMBER}
  7965. SSL_R_WRONG_VERSION_NUMBER = 267;
  7966. {$EXTERNALSYM SSL_R_X509_LIB}
  7967. SSL_R_X509_LIB = 268;
  7968. {$EXTERNALSYM SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}
  7969. SSL_R_X509_VERIFICATION_SETUP_PROBLEMS = 269;
  7970. {$EXTERNALSYM SSL_SENT_SHUTDOWN}
  7971. SSL_SENT_SHUTDOWN = 1;
  7972. {$EXTERNALSYM SSL_SESSION_ASN1_VERSION}
  7973. SSL_SESSION_ASN1_VERSION = $0001;
  7974. {$EXTERNALSYM SSL_SESSION_CACHE_MAX_SIZE_DEFAULT}
  7975. SSL_SESSION_CACHE_MAX_SIZE_DEFAULT = 1024*20;
  7976. {$EXTERNALSYM SSL_SESS_CACHE_CLIENT}
  7977. SSL_SESS_CACHE_CLIENT = $0001;
  7978. {$EXTERNALSYM SSL_SESS_CACHE_SERVER}
  7979. SSL_SESS_CACHE_SERVER = $0002;
  7980. {$EXTERNALSYM SSL_SESS_CACHE_BOTH}
  7981. SSL_SESS_CACHE_BOTH = SSL_SESS_CACHE_CLIENT or SSL_SESS_CACHE_SERVER;
  7982. {$EXTERNALSYM SSL_SESS_CACHE_NO_AUTO_CLEAR}
  7983. SSL_SESS_CACHE_NO_AUTO_CLEAR = $0080;
  7984. {$EXTERNALSYM SSL_SESS_CACHE_NO_INTERNAL_LOOKUP}
  7985. SSL_SESS_CACHE_NO_INTERNAL_LOOKUP = $0100;
  7986. {$EXTERNALSYM SSL_SESS_CACHE_OFF}
  7987. SSL_SESS_CACHE_OFF = $0000;
  7988. {$ifndef OPENSSL_NO_NEXTPROTONEG}
  7989. {$EXTERNALSYM OPENSSL_NPN_UNSUPPORTED}
  7990. OPENSSL_NPN_UNSUPPORTED = 0;
  7991. {$EXTERNALSYM OPENSSL_NPN_NEGOTIATED}
  7992. OPENSSL_NPN_NEGOTIATED = 1;
  7993. {$EXTERNALSYM OPENSSL_NPN_NO_OVERLAP}
  7994. OPENSSL_NPN_NO_OVERLAP = 2;
  7995. {$endif}
  7996. {$ifndef OPENSSL_NO_PSK}
  7997. //* the maximum length of the buffer given to callbacks containing the
  7998. // * resulting identity/psk */
  7999. {$EXTERNALSYM PSK_MAX_IDENTITY_LEN}
  8000. PSK_MAX_IDENTITY_LEN = 128;
  8001. {$EXTERNALSYM PSK_MAX_PSK_LEN}
  8002. PSK_MAX_PSK_LEN = 256;
  8003. {$endif}
  8004. {$EXTERNALSYM SSL_TXT_LOW}
  8005. SSL_TXT_LOW = 'LOW'; {Do not localize}
  8006. {$EXTERNALSYM SSL_TXT_MEDIUM}
  8007. SSL_TXT_MEDIUM = 'MEDIUM'; {Do not localize}
  8008. {$EXTERNALSYM SSL_TXT_HIGH}
  8009. SSL_TXT_HIGH = 'HIGH'; {Do not localize}
  8010. {$EXTERNALSYM SSL_TXT_FIPS}
  8011. SSL_TXT_FIPS = 'FIPS'; {Do not localize}
  8012. {$EXTERNALSYM SSL_TXT_kFZA}
  8013. SSL_TXT_kFZA = 'kFZA'; {Do not localize}
  8014. {$EXTERNALSYM SSL_TXT_aFZA}
  8015. SSL_TXT_aFZA = 'aFZA'; {Do not localize}
  8016. {$EXTERNALSYM SSL_TXT_eFZA}
  8017. SSL_TXT_eFZA = 'eFZA'; {Do not localize}
  8018. {$EXTERNALSYM SSL_TXT_FZA}
  8019. SSL_TXT_FZA = 'FZA'; {Do not localize}
  8020. {$EXTERNALSYM SSL_TXT_aNULL}
  8021. SSL_TXT_aNULL = 'aNULL'; {Do not localize}
  8022. {$EXTERNALSYM SSL_TXT_eNULL}
  8023. SSL_TXT_eNULL = 'eNULL'; {Do not localize}
  8024. {$EXTERNALSYM SSL_TXT_NULL}
  8025. SSL_TXT_NULL = 'NULL'; {Do not localize}
  8026. {$EXTERNALSYM SSL_TXT_kKRB5}
  8027. SSL_TXT_kKRB5 = 'kKRB5';{Do not localize}
  8028. {$EXTERNALSYM SSL_TXT_aKRB5}
  8029. SSL_TXT_aKRB5 ='aKRB5';{Do not localize}
  8030. {$EXTERNALSYM SSL_TXT_KRB5}
  8031. SSL_TXT_KRB5 = 'KRB5';{Do not localize}
  8032. {$EXTERNALSYM SSL_TXT_kRSA}
  8033. SSL_TXT_kRSA = 'kRSA'; {Do not localize}
  8034. {$EXTERNALSYM SSL_TXT_kDHr}
  8035. SSL_TXT_kDHr = 'kDHr'; {Do not localize}
  8036. {$EXTERNALSYM SSL_TXT_kDHd}
  8037. SSL_TXT_kDHd = 'kDHd'; {Do not localize}
  8038. {$EXTERNALSYM SSL_TXT_kEDH}
  8039. SSL_TXT_kEDH = 'kEDH'; {Do not localize}
  8040. {$EXTERNALSYM SSL_TXT_aRSA}
  8041. SSL_TXT_aRSA = 'aRSA'; {Do not localize}
  8042. {$EXTERNALSYM SSL_TXT_aDSS}
  8043. SSL_TXT_aDSS = 'aDSS'; {Do not localize}
  8044. {$EXTERNALSYM SSL_TXT_aDH}
  8045. SSL_TXT_aDH = 'aDH'; {Do not localize}
  8046. {$EXTERNALSYM SSL_TXT_RSA}
  8047. SSL_TXT_RSA = 'RSA'; {Do not localize}
  8048. {$EXTERNALSYM SSL_TXT_DH}
  8049. SSL_TXT_DH = 'DH'; {Do not localize}
  8050. {$EXTERNALSYM SSL_TXT_EDH}
  8051. SSL_TXT_EDH = 'EDH'; {Do not localize}
  8052. {$EXTERNALSYM SSL_TXT_ADH_C}
  8053. SSL_TXT_ADH_C = 'ADH'; {Do not localize}
  8054. {$EXTERNALSYM SSL_TXT_aDH_S}
  8055. SSL_TXT_aDH_S = 'aDH'; {Do not localize}
  8056. {$EXTERNALSYM SSL_TXT_DSS}
  8057. SSL_TXT_DSS = 'DSS'; {Do not localize}
  8058. {$EXTERNALSYM SSL_TXT_DES}
  8059. SSL_TXT_DES = 'DES'; {Do not localize}
  8060. {$EXTERNALSYM SSL_TXT_3DES}
  8061. SSL_TXT_3DES = '3DES'; {Do not localize}
  8062. {$EXTERNALSYM SSL_TXT_RC4}
  8063. SSL_TXT_RC4 = 'RC4'; {Do not localize}
  8064. {$EXTERNALSYM SSL_TXT_RC2}
  8065. SSL_TXT_RC2 = 'RC2'; {Do not localize}
  8066. {$EXTERNALSYM SSL_TXT_IDEA}
  8067. SSL_TXT_IDEA = 'IDEA'; {Do not localize}
  8068. {$EXTERNALSYM SSL_TXT_SEED}
  8069. SSL_TXT_SEED = 'SEED'; {Do not localize}
  8070. {$EXTERNALSYM SSL_TXT_AES}
  8071. SSL_TXT_AES = 'AES'; {Do not localize}
  8072. {$EXTERNALSYM SSL_TXT_CAMELLIA}
  8073. SSL_TXT_CAMELLIA = 'CAMELLIA'; {Do not localize}
  8074. {$EXTERNALSYM SSL_TXT_MD5}
  8075. SSL_TXT_MD5 = 'MD5'; {Do not localize}
  8076. {$EXTERNALSYM SSL_TXT_SHA1}
  8077. SSL_TXT_SHA1 = 'SHA1'; {Do not localize}
  8078. {$EXTERNALSYM SSL_TXT_SHA}
  8079. SSL_TXT_SHA = 'SHA'; {Do not localize}
  8080. {$EXTERNALSYM SSL_TXT_EXP}
  8081. SSL_TXT_EXP = 'EXP'; {Do not localize}
  8082. {$EXTERNALSYM SSL_TXT_EXPORT}
  8083. SSL_TXT_EXPORT = 'EXPORT'; {Do not localize}
  8084. {$EXTERNALSYM SSL_TXT_EXP40}
  8085. SSL_TXT_EXP40 = 'EXPORT40'; {Do not localize}
  8086. {$EXTERNALSYM SSL_TXT_EXP56}
  8087. SSL_TXT_EXP56 = 'EXPORT56'; {Do not localize}
  8088. {$EXTERNALSYM SSL_TXT_SSLV2}
  8089. SSL_TXT_SSLV2 = 'SSLv2'; {Do not localize}
  8090. {$EXTERNALSYM SSL_TXT_SSLV3}
  8091. SSL_TXT_SSLV3 = 'SSLv3'; {Do not localize}
  8092. {$EXTERNALSYM SSL_TXT_TLSV1}
  8093. SSL_TXT_TLSV1 = 'TLSv1'; {Do not localize}
  8094. {$EXTERNALSYM SSL_TXT_ALL}
  8095. SSL_TXT_ALL = 'ALL'; {Do not localize}
  8096. {$EXTERNALSYM SSL_TXT_ECC}
  8097. SSL_TXT_ECC = 'ECCdraft'; //* ECC ciphersuites are not yet official */
  8098. {$EXTERNALSYM SSL_TXT_DES_192_EDE3_CBC_WITH_MD5}
  8099. SSL_TXT_DES_192_EDE3_CBC_WITH_MD5 = SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5;
  8100. {$EXTERNALSYM SSL_TXT_DES_192_EDE3_CBC_WITH_SHA}
  8101. SSL_TXT_DES_192_EDE3_CBC_WITH_SHA = SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA;
  8102. {$EXTERNALSYM SSL_TXT_DES_64_CBC_WITH_MD5}
  8103. SSL_TXT_DES_64_CBC_WITH_MD5 = SSL2_TXT_DES_64_CBC_WITH_MD5;
  8104. {$EXTERNALSYM SSL_TXT_DES_64_CBC_WITH_SHA}
  8105. SSL_TXT_DES_64_CBC_WITH_SHA = SSL2_TXT_DES_64_CBC_WITH_SHA;
  8106. {$EXTERNALSYM SSL_TXT_IDEA_128_CBC_WITH_MD5}
  8107. SSL_TXT_IDEA_128_CBC_WITH_MD5 = SSL2_TXT_IDEA_128_CBC_WITH_MD5;
  8108. {$EXTERNALSYM SSL_TXT_NULL_WITH_MD5}
  8109. SSL_TXT_NULL_WITH_MD5 = SSL2_TXT_NULL_WITH_MD5;
  8110. {$EXTERNALSYM SSL_TXT_RC2_128_CBC_EXPORT40_WITH_MD5}
  8111. SSL_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 = SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5;
  8112. {$EXTERNALSYM SSL_TXT_RC2_128_CBC_WITH_MD5}
  8113. SSL_TXT_RC2_128_CBC_WITH_MD5 = SSL2_TXT_RC2_128_CBC_WITH_MD5;
  8114. {$EXTERNALSYM SSL_TXT_RC4_128_EXPORT40_WITH_MD5}
  8115. SSL_TXT_RC4_128_EXPORT40_WITH_MD5 = SSL2_TXT_RC4_128_EXPORT40_WITH_MD5;
  8116. {$EXTERNALSYM SSL_TXT_RC4_128_WITH_MD5}
  8117. SSL_TXT_RC4_128_WITH_MD5 = SSL2_TXT_RC4_128_WITH_MD5;
  8118. {$EXTERNALSYM SSL_VERIFY_CLIENT_ONCE}
  8119. SSL_VERIFY_CLIENT_ONCE = $04;
  8120. {$EXTERNALSYM SSL_VERIFY_FAIL_IF_NO_PEER_CERT}
  8121. SSL_VERIFY_FAIL_IF_NO_PEER_CERT = $02;
  8122. {$EXTERNALSYM SSL_VERIFY_NONE}
  8123. SSL_VERIFY_NONE = $00;
  8124. {$EXTERNALSYM SSL_VERIFY_PEER}
  8125. SSL_VERIFY_PEER = $01;
  8126. {$EXTERNALSYM SSL_MAC_FLAG_READ_MAC_STREAM}
  8127. SSL_MAC_FLAG_READ_MAC_STREAM = 1;
  8128. {$EXTERNALSYM SSL_MAC_FLAG_WRITE_MAC_STREAM}
  8129. SSL_MAC_FLAG_WRITE_MAC_STREAM = 2;
  8130. {$EXTERNALSYM TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES}
  8131. TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES = 0;
  8132. {$EXTERNALSYM TLS1_2_VERSION}
  8133. TLS1_2_VERSION = $0303;
  8134. {$EXTERNALSYM TLS1_2_VERSION_MAJOR}
  8135. TLS1_2_VERSION_MAJOR = $03;
  8136. {$EXTERNALSYM TLS1_2_VERSION_MINOR}
  8137. TLS1_2_VERSION_MINOR = $03;
  8138. {$EXTERNALSYM TLS1_1_VERSION}
  8139. TLS1_1_VERSION = $0302;
  8140. {$EXTERNALSYM TLS1_1_VERSION_MAJOR}
  8141. TLS1_1_VERSION_MAJOR = $03;
  8142. {$EXTERNALSYM TLS1_1_VERSION_MINOR}
  8143. TLS1_1_VERSION_MINOR = $02;
  8144. {$EXTERNALSYM TLS1_VERSION}
  8145. TLS1_VERSION = $0301;
  8146. {$EXTERNALSYM TLS1_VERSION_MAJOR}
  8147. TLS1_VERSION_MAJOR = $03;
  8148. {$EXTERNALSYM TLS1_VERSION_MINOR}
  8149. TLS1_VERSION_MINOR = $01;
  8150. {$IFNDEF OPENSSL_NO_HEARTBEATS}
  8151. {$EXTERNALSYM SSL_TLSEXT_HB_ENABLED}
  8152. SSL_TLSEXT_HB_ENABLED = $01;
  8153. {$EXTERNALSYM SSL_TLSEXT_HB_DONT_SEND_REQUESTS}
  8154. SSL_TLSEXT_HB_DONT_SEND_REQUESTS = $02;
  8155. {$EXTERNALSYM SSL_TLSEXT_HB_DONT_RECV_REQUESTS}
  8156. SSL_TLSEXT_HB_DONT_RECV_REQUESTS = $04;
  8157. {$ENDIF}
  8158. //* PSK ciphersuites from 4279 */
  8159. {$EXTERNALSYM TLS1_CK_PSK_WITH_RC4_128_SHA}
  8160. TLS1_CK_PSK_WITH_RC4_128_SHA = $0300008A;
  8161. {$EXTERNALSYM TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA}
  8162. TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA = $0300008B;
  8163. {$EXTERNALSYM TLS1_CK_PSK_WITH_AES_128_CBC_SHA}
  8164. TLS1_CK_PSK_WITH_AES_128_CBC_SHA = $0300008C;
  8165. {$EXTERNALSYM TLS1_CK_PSK_WITH_AES_256_CBC_SHA}
  8166. TLS1_CK_PSK_WITH_AES_256_CBC_SHA = $0300008D;
  8167. {$EXTERNALSYM TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5}
  8168. TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5 = $03000060;
  8169. {$EXTERNALSYM TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5}
  8170. TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 = $03000061;
  8171. {$EXTERNALSYM TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA}
  8172. TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA = $03000062;
  8173. {$EXTERNALSYM TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA}
  8174. TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA = $03000063;
  8175. {$EXTERNALSYM TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA}
  8176. TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA = $03000064;
  8177. {$EXTERNALSYM TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA}
  8178. TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA = $03000065;
  8179. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_RC4_128_SHA}
  8180. TLS1_CK_DHE_DSS_WITH_RC4_128_SHA = $03000066;
  8181. //* AES ciphersuites from RFC3268 */
  8182. {$EXTERNALSYM TLS1_CK_RSA_WITH_AES_128_SHA}
  8183. TLS1_CK_RSA_WITH_AES_128_SHA = $0300002F;
  8184. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_AES_128_SHA}
  8185. TLS1_CK_DH_DSS_WITH_AES_128_SHA = $03000030;
  8186. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_AES_128_SHA}
  8187. TLS1_CK_DH_RSA_WITH_AES_128_SHA = $03000031;
  8188. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_AES_128_SHA}
  8189. TLS1_CK_DHE_DSS_WITH_AES_128_SHA = $03000032;
  8190. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_AES_128_SHA}
  8191. TLS1_CK_DHE_RSA_WITH_AES_128_SHA = $03000033;
  8192. {$EXTERNALSYM TLS1_CK_ADH_WITH_AES_128_SHA}
  8193. TLS1_CK_ADH_WITH_AES_128_SHA = $03000034;
  8194. {$EXTERNALSYM TLS1_CK_RSA_WITH_AES_256_SHA}
  8195. TLS1_CK_RSA_WITH_AES_256_SHA = $03000035;
  8196. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_AES_256_SHA}
  8197. TLS1_CK_DH_DSS_WITH_AES_256_SHA = $03000036;
  8198. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_AES_256_SHA}
  8199. TLS1_CK_DH_RSA_WITH_AES_256_SHA = $03000037;
  8200. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_AES_256_SHA}
  8201. TLS1_CK_DHE_DSS_WITH_AES_256_SHA = $03000038;
  8202. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_AES_256_SHA}
  8203. TLS1_CK_DHE_RSA_WITH_AES_256_SHA = $03000039;
  8204. {$EXTERNALSYM TLS1_CK_ADH_WITH_AES_256_SHA}
  8205. TLS1_CK_ADH_WITH_AES_256_SHA = $0300003A;
  8206. //* TLS v1.2 ciphersuites */
  8207. {$EXTERNALSYM TLS1_CK_RSA_WITH_NULL_SHA256}
  8208. TLS1_CK_RSA_WITH_NULL_SHA256 = $0300003B;
  8209. {$EXTERNALSYM TLS1_CK_RSA_WITH_AES_128_SHA256}
  8210. TLS1_CK_RSA_WITH_AES_128_SHA256 = $0300003C;
  8211. {$EXTERNALSYM TLS1_CK_RSA_WITH_AES_256_SHA256}
  8212. TLS1_CK_RSA_WITH_AES_256_SHA256 = $0300003D;
  8213. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_AES_128_SHA256}
  8214. TLS1_CK_DH_DSS_WITH_AES_128_SHA256 = $0300003E;
  8215. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_AES_128_SHA256}
  8216. TLS1_CK_DH_RSA_WITH_AES_128_SHA256 = $0300003F;
  8217. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_AES_128_SHA256}
  8218. TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 = $03000040;
  8219. //* Camellia ciphersuites from RFC4132 */
  8220. {$EXTERNALSYM TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA}
  8221. TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA = $03000041;
  8222. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA}
  8223. TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA = $03000042;
  8224. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA}
  8225. TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA = $03000043;
  8226. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA}
  8227. TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA = $03000044;
  8228. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA}
  8229. TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA = $03000045;
  8230. {$EXTERNALSYM TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA}
  8231. TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA = $03000046;
  8232. {$EXTERNALSYM TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA}
  8233. TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA = $03000084;
  8234. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA}
  8235. TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA = $03000085;
  8236. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA}
  8237. TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA = $03000086;
  8238. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA}
  8239. TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA = $03000087;
  8240. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA}
  8241. TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA = $03000088;
  8242. {$EXTERNALSYM TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA}
  8243. TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA = $03000089;
  8244. //* TLS v1.2 ciphersuites */
  8245. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_AES_128_SHA256}
  8246. TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 = $03000067;
  8247. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_AES_256_SHA256}
  8248. TLS1_CK_DH_DSS_WITH_AES_256_SHA256 = $03000068;
  8249. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_AES_256_SHA256}
  8250. TLS1_CK_DH_RSA_WITH_AES_256_SHA256 = $03000069;
  8251. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_AES_256_SHA256}
  8252. TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 = $0300006A;
  8253. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_AES_256_SHA256}
  8254. TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 = $0300006B;
  8255. {$EXTERNALSYM TLS1_CK_ADH_WITH_AES_128_SHA256}
  8256. TLS1_CK_ADH_WITH_AES_128_SHA256 = $0300006C;
  8257. {$EXTERNALSYM TLS1_CK_ADH_WITH_AES_256_SHA256}
  8258. TLS1_CK_ADH_WITH_AES_256_SHA256 = $0300006D;
  8259. //* SEED ciphersuites from RFC4162 */
  8260. {$EXTERNALSYM TLS1_CK_RSA_WITH_SEED_SHA}
  8261. TLS1_CK_RSA_WITH_SEED_SHA = $03000096;
  8262. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_SEED_SHA}
  8263. TLS1_CK_DH_DSS_WITH_SEED_SHA = $03000097;
  8264. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_SEED_SHA}
  8265. TLS1_CK_DH_RSA_WITH_SEED_SHA = $03000098;
  8266. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_SEED_SHA}
  8267. TLS1_CK_DHE_DSS_WITH_SEED_SHA = $03000099;
  8268. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_SEED_SHA}
  8269. TLS1_CK_DHE_RSA_WITH_SEED_SHA = $0300009A;
  8270. {$EXTERNALSYM TLS1_CK_ADH_WITH_SEED_SHA}
  8271. TLS1_CK_ADH_WITH_SEED_SHA = $0300009B;
  8272. //* TLS v1.2 GCM ciphersuites from RFC5288 */
  8273. {$EXTERNALSYM TLS1_CK_RSA_WITH_AES_128_GCM_SHA256}
  8274. TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 = $0300009C;
  8275. {$EXTERNALSYM TLS1_CK_RSA_WITH_AES_256_GCM_SHA384}
  8276. TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 = $0300009D;
  8277. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256}
  8278. TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 = $0300009E;
  8279. {$EXTERNALSYM TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384}
  8280. TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 = $0300009F;
  8281. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256}
  8282. TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 = $030000A0;
  8283. {$EXTERNALSYM TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384}
  8284. TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 = $030000A1;
  8285. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256}
  8286. TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 = $030000A2;
  8287. {$EXTERNALSYM TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384}
  8288. TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 = $030000A3;
  8289. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256}
  8290. TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 = $030000A4;
  8291. {$EXTERNALSYM TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384}
  8292. TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 = $030000A5;
  8293. {$EXTERNALSYM TLS1_CK_ADH_WITH_AES_128_GCM_SHA256}
  8294. TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 = $030000A6;
  8295. {$EXTERNALSYM TLS1_CK_ADH_WITH_AES_256_GCM_SHA384}
  8296. TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 = $030000A7;
  8297. //* ECC ciphersuites from draft-ietf-tls-ecc-12.txt with changes soon to be in draft 13 */
  8298. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA}
  8299. TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA = $0300C001;
  8300. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA}
  8301. TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA = $0300C002;
  8302. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA}
  8303. TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA = $0300C003;
  8304. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA}
  8305. TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA = $0300C004;
  8306. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA}
  8307. TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA = $0300C005;
  8308. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA}
  8309. TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA = $0300C006;
  8310. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA}
  8311. TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA = $0300C007;
  8312. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA}
  8313. TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA = $0300C008;
  8314. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA}
  8315. TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = $0300C009;
  8316. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA}
  8317. TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = $0300C00A;
  8318. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_NULL_SHA}
  8319. TLS1_CK_ECDH_RSA_WITH_NULL_SHA = $0300C00B;
  8320. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA}
  8321. TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA = $0300C00C;
  8322. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA}
  8323. TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA = $0300C00D;
  8324. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA}
  8325. TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA = $0300C00E;
  8326. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA}
  8327. TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA = $0300C00F;
  8328. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_NULL_SHA}
  8329. TLS1_CK_ECDHE_RSA_WITH_NULL_SHA = $0300C010;
  8330. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA}
  8331. TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA = $0300C011;
  8332. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA}
  8333. TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA = $0300C012;
  8334. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA}
  8335. TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA = $0300C013;
  8336. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA}
  8337. TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA = $0300C014;
  8338. {$EXTERNALSYM TLS1_CK_ECDH_anon_WITH_NULL_SHA}
  8339. TLS1_CK_ECDH_anon_WITH_NULL_SHA = $0300C015;
  8340. {$EXTERNALSYM TLS1_CK_ECDH_anon_WITH_RC4_128_SHA}
  8341. TLS1_CK_ECDH_anon_WITH_RC4_128_SHA = $0300C016;
  8342. {$EXTERNALSYM TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA}
  8343. TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA = $0300C017;
  8344. {$EXTERNALSYM TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA}
  8345. TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA = $0300C018;
  8346. {$EXTERNALSYM TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA}
  8347. TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA = $0300C019;
  8348. //* SRP ciphersuites from RFC 5054 */
  8349. {$EXTERNALSYM TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA}
  8350. TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA = $0300C01A;
  8351. {$EXTERNALSYM TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA}
  8352. TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = $0300C01B;
  8353. {$EXTERNALSYM TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA}
  8354. TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = $0300C01C;
  8355. {$EXTERNALSYM TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA}
  8356. TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA = $0300C01D;
  8357. {$EXTERNALSYM TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA}
  8358. TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = $0300C01E;
  8359. {$EXTERNALSYM TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA}
  8360. TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = $0300C01F;
  8361. {$EXTERNALSYM TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA}
  8362. TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA = $0300C020;
  8363. {$EXTERNALSYM TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA}
  8364. TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = $0300C021;
  8365. {$EXTERNALSYM TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA}
  8366. TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = $0300C022;
  8367. //* ECDH HMAC based ciphersuites from RFC5289 */
  8368. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256}
  8369. TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 = $0300C023;
  8370. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384}
  8371. TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 = $0300C024;
  8372. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256}
  8373. TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 = $0300C025;
  8374. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384}
  8375. TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 = $0300C026;
  8376. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256}
  8377. TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 = $0300C027;
  8378. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384}
  8379. TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 = $0300C028;
  8380. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256}
  8381. TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 = $0300C029;
  8382. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384}
  8383. TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 = $0300C02A;
  8384. //* ECDH GCM based ciphersuites from RFC5289 */
  8385. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256}
  8386. TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = $0300C02B;
  8387. {$EXTERNALSYM TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384}
  8388. TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = $0300C02C;
  8389. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256}
  8390. TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = $0300C02D;
  8391. {$EXTERNALSYM TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384}
  8392. TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = $0300C02E;
  8393. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256}
  8394. TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = $0300C02F;
  8395. {$EXTERNALSYM TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384}
  8396. TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = $0300C030;
  8397. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256}
  8398. TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 = $0300C031;
  8399. {$EXTERNALSYM TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384}
  8400. TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 = $0300C032;
  8401. {$EXTERNALSYM TLS1_FINISH_MAC_LENGTH}
  8402. TLS1_FINISH_MAC_LENGTH = 12;
  8403. {$EXTERNALSYM TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5}
  8404. TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 = 'EXP1024-RC4-MD5';
  8405. {$EXTERNALSYM TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5}
  8406. TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 = 'EXP1024-RC2-CBC-MD5';
  8407. {$EXTERNALSYM TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA}
  8408. TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA = 'EXP1024-DES-CBC-SHA';
  8409. {$EXTERNALSYM TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA}
  8410. TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA = 'EXP1024-DHE-DSS-DES-CBC-SHA';
  8411. {$EXTERNALSYM TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA}
  8412. TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA = 'EXP1024-RC4-SHA';
  8413. {$EXTERNALSYM TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA}
  8414. TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA = 'EXP1024-DHE-DSS-RC4-SHA';
  8415. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA}
  8416. TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA = 'DHE-DSS-RC4-SHA';
  8417. //* AES ciphersuites from RFC3268 */
  8418. {$EXTERNALSYM TLS1_TXT_RSA_WITH_AES_128_SHA}
  8419. TLS1_TXT_RSA_WITH_AES_128_SHA = 'AES128-SHA';
  8420. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_AES_128_SHA}
  8421. TLS1_TXT_DH_DSS_WITH_AES_128_SHA ='DH-DSS-AES128-SHA';
  8422. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_AES_128_SHA}
  8423. TLS1_TXT_DH_RSA_WITH_AES_128_SHA = 'DH-RSA-AES128-SHA';
  8424. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_AES_128_SHA}
  8425. TLS1_TXT_DHE_DSS_WITH_AES_128_SHA = 'DHE-DSS-AES128-SHA';
  8426. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_AES_128_SHA}
  8427. TLS1_TXT_DHE_RSA_WITH_AES_128_SHA = 'DHE-RSA-AES128-SHA';
  8428. {$EXTERNALSYM TLS1_TXT_ADH_WITH_AES_128_SHA}
  8429. TLS1_TXT_ADH_WITH_AES_128_SHA = 'ADH-AES128-SHA';
  8430. {$EXTERNALSYM TLS1_TXT_RSA_WITH_AES_256_SHA}
  8431. TLS1_TXT_RSA_WITH_AES_256_SHA = 'AES256-SHA';
  8432. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_AES_256_SHA}
  8433. TLS1_TXT_DH_DSS_WITH_AES_256_SHA ='DH-DSS-AES256-SHA';
  8434. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_AES_256_SHA}
  8435. TLS1_TXT_DH_RSA_WITH_AES_256_SHA = 'DH-RSA-AES256-SHA';
  8436. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_AES_256_SHA}
  8437. TLS1_TXT_DHE_DSS_WITH_AES_256_SHA = 'DHE-DSS-AES256-SHA';
  8438. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_AES_256_SHA}
  8439. TLS1_TXT_DHE_RSA_WITH_AES_256_SHA ='DHE-RSA-AES256-SHA';
  8440. {$EXTERNALSYM TLS1_TXT_ADH_WITH_AES_256_SHA}
  8441. TLS1_TXT_ADH_WITH_AES_256_SHA = 'ADH-AES256-SHA';
  8442. //* ECC ciphersuites from draft-ietf-tls-ecc-01.txt (Mar 15, 2001) */
  8443. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA}
  8444. TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA = 'ECDH-ECDSA-NULL-SHA';
  8445. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA}
  8446. TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA = 'ECDH-ECDSA-RC4-SHA';
  8447. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA}
  8448. TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA = 'ECDH-ECDSA-DES-CBC3-SHA';
  8449. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA}
  8450. TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA = 'ECDH-ECDSA-AES128-SHA';
  8451. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA}
  8452. TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA = 'ECDH-ECDSA-AES256-SHA';
  8453. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA}
  8454. TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA = 'ECDHE-ECDSA-NULL-SHA';
  8455. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA}
  8456. TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA = 'ECDHE-ECDSA-RC4-SHA';
  8457. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA}
  8458. TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA = 'ECDHE-ECDSA-DES-CBC3-SHA';
  8459. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA}
  8460. TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 'ECDHE-ECDSA-AES128-SHA';
  8461. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA}
  8462. TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 'ECDHE-ECDSA-AES256-SHA';
  8463. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_NULL_SHA}
  8464. TLS1_TXT_ECDH_RSA_WITH_NULL_SHA = 'ECDH-RSA-NULL-SHA';
  8465. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA}
  8466. TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA = 'ECDH-RSA-RC4-SHA';
  8467. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA}
  8468. TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA = 'ECDH-RSA-DES-CBC3-SHA';
  8469. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA}
  8470. TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA = 'ECDH-RSA-AES128-SHA';
  8471. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA}
  8472. TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA = 'ECDH-RSA-AES256-SHA';
  8473. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA}
  8474. TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA = 'ECDHE-RSA-NULL-SHA';
  8475. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA}
  8476. TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA = 'ECDHE-RSA-RC4-SHA';
  8477. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA}
  8478. TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA = 'ECDHE-RSA-DES-CBC3-SHA';
  8479. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA}
  8480. TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA = 'ECDHE-RSA-AES128-SHA';
  8481. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA}
  8482. TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA = 'ECDHE-RSA-AES256-SHA';
  8483. {$EXTERNALSYM TLS1_TXT_ECDH_anon_WITH_NULL_SHA}
  8484. TLS1_TXT_ECDH_anon_WITH_NULL_SHA = 'AECDH-NULL-SHA';
  8485. {$EXTERNALSYM TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA}
  8486. TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA = 'AECDH-RC4-SHA';
  8487. {$EXTERNALSYM TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA}
  8488. TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA = 'AECDH-DES-CBC3-SHA';
  8489. {$EXTERNALSYM TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA}
  8490. TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA = 'AECDH-AES128-SHA';
  8491. {$EXTERNALSYM TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA}
  8492. TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA = 'AECDH-AES256-SHA';
  8493. //* Camellia ciphersuites from RFC4132 */
  8494. {$EXTERNALSYM TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA}
  8495. TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA = 'CAMELLIA128-SHA';
  8496. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA}
  8497. TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA = 'DH-DSS-CAMELLIA128-SHA';
  8498. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA}
  8499. TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA = 'DH-RSA-CAMELLIA128-SHA';
  8500. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA}
  8501. TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA = 'DHE-DSS-CAMELLIA128-SHA';
  8502. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA}
  8503. TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA = 'DHE-RSA-CAMELLIA128-SHA';
  8504. {$EXTERNALSYM TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA}
  8505. TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA = 'ADH-CAMELLIA128-SHA';
  8506. {$EXTERNALSYM TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA}
  8507. TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA = 'CAMELLIA256-SHA';
  8508. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA}
  8509. TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA = 'DH-DSS-CAMELLIA256-SHA';
  8510. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA}
  8511. TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA = 'DH-RSA-CAMELLIA256-SHA';
  8512. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA}
  8513. TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA = 'DHE-DSS-CAMELLIA256-SHA';
  8514. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA}
  8515. TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA = 'DHE-RSA-CAMELLIA256-SHA';
  8516. {$EXTERNALSYM TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA}
  8517. TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA = 'ADH-CAMELLIA256-SHA';
  8518. //* SEED ciphersuites from RFC4162 */
  8519. {$EXTERNALSYM TLS1_TXT_RSA_WITH_SEED_SHA}
  8520. TLS1_TXT_RSA_WITH_SEED_SHA = 'SEED-SHA';
  8521. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_SEED_SHA}
  8522. TLS1_TXT_DH_DSS_WITH_SEED_SHA = 'DH-DSS-SEED-SHA';
  8523. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_SEED_SHA}
  8524. TLS1_TXT_DH_RSA_WITH_SEED_SHA = 'DH-RSA-SEED-SHA';
  8525. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_SEED_SHA}
  8526. TLS1_TXT_DHE_DSS_WITH_SEED_SHA = 'DHE-DSS-SEED-SHA';
  8527. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_SEED_SHA}
  8528. TLS1_TXT_DHE_RSA_WITH_SEED_SHA = 'DHE-RSA-SEED-SHA';
  8529. {$EXTERNALSYM TLS1_TXT_ADH_WITH_SEED_SHA}
  8530. TLS1_TXT_ADH_WITH_SEED_SHA = 'ADH-SEED-SHA';
  8531. //* TLS v1.2 ciphersuites */
  8532. {$EXTERNALSYM TLS1_TXT_RSA_WITH_NULL_SHA256}
  8533. TLS1_TXT_RSA_WITH_NULL_SHA256 = 'NULL-SHA256';
  8534. {$EXTERNALSYM TLS1_TXT_RSA_WITH_AES_128_SHA256}
  8535. TLS1_TXT_RSA_WITH_AES_128_SHA256 = 'AES128-SHA256';
  8536. {$EXTERNALSYM TLS1_TXT_RSA_WITH_AES_256_SHA256}
  8537. TLS1_TXT_RSA_WITH_AES_256_SHA256 = 'AES256-SHA256';
  8538. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_AES_128_SHA256}
  8539. TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 = 'DH-DSS-AES128-SHA256';
  8540. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_AES_128_SHA256}
  8541. TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 = 'DH-RSA-AES128-SHA256';
  8542. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256}
  8543. TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 = 'DHE-DSS-AES128-SHA256';
  8544. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256}
  8545. TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 = 'DHE-RSA-AES128-SHA256';
  8546. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_AES_256_SHA256}
  8547. TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 = 'DH-DSS-AES256-SHA256';
  8548. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_AES_256_SHA256}
  8549. TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 = 'DH-RSA-AES256-SHA256';
  8550. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256}
  8551. TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 = 'DHE-DSS-AES256-SHA256';
  8552. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256}
  8553. TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 = 'DHE-RSA-AES256-SHA256';
  8554. {$EXTERNALSYM TLS1_TXT_ADH_WITH_AES_128_SHA256}
  8555. TLS1_TXT_ADH_WITH_AES_128_SHA256 = 'ADH-AES128-SHA256';
  8556. {$EXTERNALSYM TLS1_TXT_ADH_WITH_AES_256_SHA256}
  8557. TLS1_TXT_ADH_WITH_AES_256_SHA256 = 'ADH-AES256-SHA256';
  8558. //* TLS v1.2 GCM ciphersuites from RFC5288 */
  8559. {$EXTERNALSYM TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256}
  8560. TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 = 'AES128-GCM-SHA256';
  8561. {$EXTERNALSYM TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384}
  8562. TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 = 'AES256-GCM-SHA384';
  8563. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256}
  8564. TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 = 'DHE-RSA-AES128-GCM-SHA256';
  8565. {$EXTERNALSYM TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384}
  8566. TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 = 'DHE-RSA-AES256-GCM-SHA384';
  8567. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256}
  8568. TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 = 'DH-RSA-AES128-GCM-SHA256';
  8569. {$EXTERNALSYM TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384}
  8570. TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 = 'DH-RSA-AES256-GCM-SHA384';
  8571. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256}
  8572. TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 = 'DHE-DSS-AES128-GCM-SHA256';
  8573. {$EXTERNALSYM TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384}
  8574. TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 = 'DHE-DSS-AES256-GCM-SHA384';
  8575. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256}
  8576. TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 = 'DH-DSS-AES128-GCM-SHA256';
  8577. {$EXTERNALSYM TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384}
  8578. TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 = 'DH-DSS-AES256-GCM-SHA384';
  8579. {$EXTERNALSYM TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256}
  8580. TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 = 'ADH-AES128-GCM-SHA256';
  8581. {$EXTERNALSYM TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384}
  8582. TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 = 'ADH-AES256-GCM-SHA384';
  8583. //* ECDH HMAC based ciphersuites from RFC5289 */
  8584. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256}
  8585. TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 = 'ECDHE-ECDSA-AES128-SHA256';
  8586. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384}
  8587. TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 = 'ECDHE-ECDSA-AES256-SHA384';
  8588. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256}
  8589. TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 = 'ECDH-ECDSA-AES128-SHA256';
  8590. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384}
  8591. TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 = 'ECDH-ECDSA-AES256-SHA384';
  8592. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256}
  8593. TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 = 'ECDHE-RSA-AES128-SHA256';
  8594. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384}
  8595. TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 = 'ECDHE-RSA-AES256-SHA384';
  8596. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256}
  8597. TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 = 'ECDH-RSA-AES128-SHA256';
  8598. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384}
  8599. TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 = 'ECDH-RSA-AES256-SHA384';
  8600. //* ECDH GCM based ciphersuites from RFC5289 */
  8601. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256}
  8602. TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 'ECDHE-ECDSA-AES128-GCM-SHA256';
  8603. {$EXTERNALSYM TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384}
  8604. TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 'ECDHE-ECDSA-AES256-GCM-SHA384';
  8605. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256}
  8606. TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = 'ECDH-ECDSA-AES128-GCM-SHA256';
  8607. {$EXTERNALSYM TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384}
  8608. TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = 'ECDH-ECDSA-AES256-GCM-SHA384';
  8609. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256}
  8610. TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 'ECDHE-RSA-AES128-GCM-SHA256';
  8611. {$EXTERNALSYM TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384}
  8612. TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 'ECDHE-RSA-AES256-GCM-SHA384';
  8613. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256}
  8614. TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 = 'ECDH-RSA-AES128-GCM-SHA256';
  8615. {$EXTERNALSYM TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384}
  8616. TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 = 'ECDH-RSA-AES256-GCM-SHA384';
  8617. {$EXTERNALSYM TLS_CT_RSA_SIGN}
  8618. TLS_CT_RSA_SIGN = 1;
  8619. {$EXTERNALSYM TLS_CT_DSS_SIGN}
  8620. TLS_CT_DSS_SIGN = 2;
  8621. {$EXTERNALSYM TLS_CT_RSA_FIXED_DH}
  8622. TLS_CT_RSA_FIXED_DH = 3;
  8623. {$EXTERNALSYM TLS_CT_DSS_FIXED_DH}
  8624. TLS_CT_DSS_FIXED_DH = 4;
  8625. {$EXTERNALSYM TLS_CT_ECDSA_SIGN}
  8626. TLS_CT_ECDSA_SIGN = 64;
  8627. {$EXTERNALSYM TLS_CT_RSA_FIXED_ECDH}
  8628. TLS_CT_RSA_FIXED_ECDH = 65;
  8629. {$EXTERNALSYM TLS_CT_ECDSA_FIXED_ECDH}
  8630. TLS_CT_ECDSA_FIXED_ECDH = 66;
  8631. {$EXTERNALSYM TLS_CT_GOST94_SIGN}
  8632. TLS_CT_GOST94_SIGN = 21;
  8633. {$EXTERNALSYM TLS_CT_GOST01_SIGN}
  8634. TLS_CT_GOST01_SIGN = 22;
  8635. ///* when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see
  8636. // * comment there) */
  8637. {$EXTERNALSYM TLS_CT_NUMBER}
  8638. TLS_CT_NUMBER = 9; //was 4;
  8639. {$EXTERNALSYM TLS_MD_CLIENT_FINISH_CONST}
  8640. TLS_MD_CLIENT_FINISH_CONST = 'client finished'; {Do not localize}
  8641. {$EXTERNALSYM TLS_MD_CLIENT_FINISH_CONST_SIZE}
  8642. TLS_MD_CLIENT_FINISH_CONST_SIZE = 15;
  8643. {$EXTERNALSYM TLS_MD_SERVER_FINISH_CONST}
  8644. TLS_MD_SERVER_FINISH_CONST = 'server finished'; {Do not localize}
  8645. {$EXTERNALSYM TLS_MD_SERVER_FINISH_CONST_SIZE}
  8646. TLS_MD_SERVER_FINISH_CONST_SIZE = 15;
  8647. {$EXTERNALSYM TLS_MD_KEY_EXPANSION_CONST}
  8648. TLS_MD_KEY_EXPANSION_CONST = 'key expansion'; {Do not localize}
  8649. {$EXTERNALSYM TLS_MD_KEY_EXPANSION_CONST_SIZE}
  8650. TLS_MD_KEY_EXPANSION_CONST_SIZE = 13;
  8651. {$EXTERNALSYM TLS_MD_CLIENT_WRITE_KEY_CONST}
  8652. TLS_MD_CLIENT_WRITE_KEY_CONST = 'client write key'; {Do not localize}
  8653. {$EXTERNALSYM TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE}
  8654. TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE = 16;
  8655. {$EXTERNALSYM TLS_MD_SERVER_WRITE_KEY_CONST}
  8656. TLS_MD_SERVER_WRITE_KEY_CONST = 'server write key'; {Do not localize}
  8657. {$EXTERNALSYM TLS_MD_SERVER_WRITE_KEY_CONST_SIZE}
  8658. TLS_MD_SERVER_WRITE_KEY_CONST_SIZE = 16;
  8659. {$EXTERNALSYM TLS_MD_IV_BLOCK_CONST}
  8660. TLS_MD_IV_BLOCK_CONST = 'IV block'; {Do not localize}
  8661. {$EXTERNALSYM TLS_MD_IV_BLOCK_CONST_SIZE}
  8662. TLS_MD_IV_BLOCK_CONST_SIZE = 8;
  8663. {$EXTERNALSYM TLS_MD_MASTER_SECRET_CONST}
  8664. TLS_MD_MASTER_SECRET_CONST = 'master secret'; {Do not localize}
  8665. {$EXTERNALSYM TLS_MD_MASTER_SECRET_CONST_SIZE}
  8666. TLS_MD_MASTER_SECRET_CONST_SIZE = 13;
  8667. {$EXTERNALSYM TLS_MD_MAX_CONST_SIZE}
  8668. TLS_MD_MAX_CONST_SIZE = 20;
  8669. {$EXTERNALSYM TMP_MAX}
  8670. TMP_MAX = 26;
  8671. {$EXTERNALSYM V_ASN1_APPLICATION}
  8672. V_ASN1_APPLICATION = $40;
  8673. {$EXTERNALSYM V_ASN1_APP_CHOOSE}
  8674. V_ASN1_APP_CHOOSE = -2;
  8675. {$EXTERNALSYM V_ASN1_BIT_STRING}
  8676. V_ASN1_BIT_STRING = 3;
  8677. {$EXTERNALSYM V_ASN1_BMPSTRING}
  8678. V_ASN1_BMPSTRING = 30;
  8679. {$EXTERNALSYM V_ASN1_BOOLEAN}
  8680. V_ASN1_BOOLEAN = 1;
  8681. {$EXTERNALSYM V_ASN1_CONSTRUCTED}
  8682. V_ASN1_CONSTRUCTED = $20;
  8683. {$EXTERNALSYM V_ASN1_CONTEXT_SPECIFIC}
  8684. V_ASN1_CONTEXT_SPECIFIC = $80;
  8685. {$EXTERNALSYM V_ASN1_ENUMERATED}
  8686. V_ASN1_ENUMERATED = 10;
  8687. {$EXTERNALSYM V_ASN1_EOC}
  8688. V_ASN1_EOC = 0;
  8689. {$EXTERNALSYM V_ASN1_EXTERNAL}
  8690. V_ASN1_EXTERNAL = 8;
  8691. {$EXTERNALSYM V_ASN1_GENERALIZEDTIME}
  8692. V_ASN1_GENERALIZEDTIME = 24;
  8693. {$EXTERNALSYM V_ASN1_GENERALSTRING}
  8694. V_ASN1_GENERALSTRING = 27;
  8695. {$EXTERNALSYM V_ASN1_GRAPHICSTRING}
  8696. V_ASN1_GRAPHICSTRING = 25;
  8697. {$EXTERNALSYM V_ASN1_IA5STRING}
  8698. V_ASN1_IA5STRING = 22;
  8699. {$EXTERNALSYM V_ASN1_INTEGER}
  8700. V_ASN1_INTEGER = 2;
  8701. {$EXTERNALSYM V_ASN1_ISO64STRING}
  8702. V_ASN1_ISO64STRING = 26;
  8703. {$EXTERNALSYM V_ASN1_NEG_ENUMERATED}
  8704. V_ASN1_NEG_ENUMERATED = 10+$100;
  8705. {$EXTERNALSYM V_ASN1_NEG_INTEGER}
  8706. V_ASN1_NEG_INTEGER = 2+$100;
  8707. {$EXTERNALSYM V_ASN1_NULL}
  8708. V_ASN1_NULL = 5;
  8709. {$EXTERNALSYM V_ASN1_NUMERICSTRING}
  8710. V_ASN1_NUMERICSTRING = 18;
  8711. {$EXTERNALSYM V_ASN1_OBJECT}
  8712. V_ASN1_OBJECT = 6;
  8713. {$EXTERNALSYM V_ASN1_OBJECT_DESCRIPTOR}
  8714. V_ASN1_OBJECT_DESCRIPTOR = 7;
  8715. {$EXTERNALSYM V_ASN1_OCTET_STRING}
  8716. V_ASN1_OCTET_STRING = 4;
  8717. {$EXTERNALSYM V_ASN1_PRIMATIVE_TAG}
  8718. V_ASN1_PRIMATIVE_TAG = $1f;
  8719. {$EXTERNALSYM V_ASN1_PRIMITIVE_TAG}
  8720. V_ASN1_PRIMITIVE_TAG = $1f;
  8721. {$EXTERNALSYM V_ASN1_PRINTABLESTRING}
  8722. V_ASN1_PRINTABLESTRING = 19;
  8723. {$EXTERNALSYM V_ASN1_PRIVATE}
  8724. V_ASN1_PRIVATE = $c0;
  8725. {$EXTERNALSYM V_ASN1_REAL}
  8726. V_ASN1_REAL = 9;
  8727. {$EXTERNALSYM V_ASN1_SEQUENCE}
  8728. V_ASN1_SEQUENCE = 16;
  8729. {$EXTERNALSYM V_ASN1_SET}
  8730. V_ASN1_SET = 17;
  8731. {$EXTERNALSYM V_ASN1_T61STRING}
  8732. V_ASN1_T61STRING = 20;
  8733. {$EXTERNALSYM V_ASN1_TELETEXSTRING}
  8734. V_ASN1_TELETEXSTRING = 20;
  8735. {$EXTERNALSYM V_ASN1_UNDEF}
  8736. V_ASN1_UNDEF = -1;
  8737. {$EXTERNALSYM V_ASN1_UNIVERSAL}
  8738. V_ASN1_UNIVERSAL = $00;
  8739. {$EXTERNALSYM V_ASN1_UNIVERSALSTRING}
  8740. V_ASN1_UNIVERSALSTRING = 28;
  8741. {$EXTERNALSYM V_ASN1_UTCTIME}
  8742. V_ASN1_UTCTIME = 23;
  8743. {$EXTERNALSYM V_ASN1_UTF8STRING}
  8744. V_ASN1_UTF8STRING = 12;
  8745. {$EXTERNALSYM V_ASN1_VIDEOTEXSTRING}
  8746. V_ASN1_VIDEOTEXSTRING = 21;
  8747. {$EXTERNALSYM V_ASN1_VISIBLESTRING}
  8748. V_ASN1_VISIBLESTRING = 26;
  8749. {$EXTERNALSYM WINNT}
  8750. WINNT = 1;
  8751. {$EXTERNALSYM X509_TRUST_DEFAULT}
  8752. X509_TRUST_DEFAULT = -1; //* Only valid in purpose settings */
  8753. {$EXTERNALSYM X509_TRUST_COMPAT}
  8754. X509_TRUST_COMPAT = 1;
  8755. {$EXTERNALSYM X509_TRUST_SSL_CLIENT}
  8756. X509_TRUST_SSL_CLIENT = 2;
  8757. {$EXTERNALSYM X509_TRUST_SSL_SERVER}
  8758. X509_TRUST_SSL_SERVER = 3;
  8759. {$EXTERNALSYM X509_TRUST_EMAIL}
  8760. X509_TRUST_EMAIL = 4;
  8761. {$EXTERNALSYM X509_TRUST_OBJECT_SIGN}
  8762. X509_TRUST_OBJECT_SIGN = 5;
  8763. {$EXTERNALSYM X509_TRUST_OCSP_SIGN}
  8764. X509_TRUST_OCSP_SIGN = 6;
  8765. {$EXTERNALSYM X509_TRUST_OCSP_REQUEST}
  8766. X509_TRUST_OCSP_REQUEST = 7;
  8767. {$EXTERNALSYM X509_TRUST_TSA}
  8768. X509_TRUST_TSA = 8;
  8769. {$EXTERNALSYM X509_TRUST_MIN}
  8770. X509_TRUST_MIN = 1;
  8771. {$EXTERNALSYM X509_TRUST_MAX}
  8772. X509_TRUST_MAX = 8;
  8773. {$EXTERNALSYM X509_EXT_PACK_STRING}
  8774. X509_EXT_PACK_STRING = 2;
  8775. {$EXTERNALSYM X509_EXT_PACK_UNKNOWN}
  8776. X509_EXT_PACK_UNKNOWN = 1;
  8777. {$EXTERNALSYM X509_EX_V_INIT}
  8778. X509_EX_V_INIT = $0001;
  8779. {$EXTERNALSYM X509_EX_V_NETSCAPE_HACK}
  8780. X509_EX_V_NETSCAPE_HACK = $8000;
  8781. {$EXTERNALSYM X509_FILETYPE_DEFAULT}
  8782. X509_FILETYPE_DEFAULT = 3;
  8783. {$EXTERNALSYM X509_F_ADD_CERT_DIR}
  8784. X509_F_ADD_CERT_DIR = 100;
  8785. {$EXTERNALSYM X509_F_BY_FILE_CTRL}
  8786. X509_F_BY_FILE_CTRL = 101;
  8787. {$EXTERNALSYM X509_F_DIR_CTRL}
  8788. X509_F_DIR_CTRL = 102;
  8789. {$EXTERNALSYM X509_F_GET_CERT_BY_SUBJECT}
  8790. X509_F_GET_CERT_BY_SUBJECT = 103;
  8791. {$EXTERNALSYM X509_F_X509V3_ADD_EXT}
  8792. X509_F_X509V3_ADD_EXT = 104;
  8793. {$EXTERNALSYM X509_F_X509_EXTENSION_CREATE_BY_NID}
  8794. X509_F_X509_EXTENSION_CREATE_BY_NID = 108;
  8795. {$EXTERNALSYM X509_F_X509_EXTENSION_CREATE_BY_OBJ}
  8796. X509_F_X509_EXTENSION_CREATE_BY_OBJ = 109;
  8797. {$EXTERNALSYM X509_F_X509_GET_PUBKEY_PARAMETERS}
  8798. X509_F_X509_GET_PUBKEY_PARAMETERS = 110;
  8799. {$EXTERNALSYM X509_F_X509_LOAD_CERT_FILE}
  8800. X509_F_X509_LOAD_CERT_FILE = 111;
  8801. {$EXTERNALSYM X509_F_X509_LOAD_CRL_FILE}
  8802. X509_F_X509_LOAD_CRL_FILE = 112;
  8803. {$EXTERNALSYM X509_F_X509_NAME_ADD_ENTRY}
  8804. X509_F_X509_NAME_ADD_ENTRY = 113;
  8805. {$EXTERNALSYM X509_F_X509_NAME_ENTRY_CREATE_BY_NID}
  8806. X509_F_X509_NAME_ENTRY_CREATE_BY_NID = 114;
  8807. {$EXTERNALSYM X509_F_X509_NAME_ENTRY_SET_OBJECT}
  8808. X509_F_X509_NAME_ENTRY_SET_OBJECT = 115;
  8809. {$EXTERNALSYM X509_F_X509_NAME_ONELINE}
  8810. X509_F_X509_NAME_ONELINE = 116;
  8811. {$EXTERNALSYM X509_F_X509_NAME_PRINT}
  8812. X509_F_X509_NAME_PRINT = 117;
  8813. {$EXTERNALSYM X509_F_X509_PRINT_FP}
  8814. X509_F_X509_PRINT_FP = 118;
  8815. {$EXTERNALSYM X509_F_X509_PUBKEY_GET}
  8816. X509_F_X509_PUBKEY_GET = 119;
  8817. {$EXTERNALSYM X509_F_X509_PUBKEY_SET}
  8818. X509_F_X509_PUBKEY_SET = 120;
  8819. {$EXTERNALSYM X509_F_X509_REQ_PRINT}
  8820. X509_F_X509_REQ_PRINT = 121;
  8821. {$EXTERNALSYM X509_F_X509_REQ_PRINT_FP}
  8822. X509_F_X509_REQ_PRINT_FP = 122;
  8823. {$EXTERNALSYM X509_F_X509_REQ_TO_X509}
  8824. X509_F_X509_REQ_TO_X509 = 123;
  8825. {$EXTERNALSYM X509_F_X509_STORE_ADD_CERT}
  8826. X509_F_X509_STORE_ADD_CERT = 124;
  8827. {$EXTERNALSYM X509_F_X509_STORE_ADD_CRL}
  8828. X509_F_X509_STORE_ADD_CRL = 125;
  8829. {$EXTERNALSYM X509_F_X509_TO_X509_REQ}
  8830. X509_F_X509_TO_X509_REQ = 126;
  8831. {$EXTERNALSYM X509_F_X509_VERIFY_CERT}
  8832. X509_F_X509_VERIFY_CERT = 127;
  8833. {$EXTERNALSYM X509_F_X509_CHECK_PRIVATE_KEY}
  8834. X509_F_X509_CHECK_PRIVATE_KEY = 128;
  8835. {$EXTERNALSYM X509_F_NETSCAPE_SPKI_B64_DECODE}
  8836. X509_F_NETSCAPE_SPKI_B64_DECODE = 129;
  8837. {$EXTERNALSYM X509_F_NETSCAPE_SPKI_B64_ENCODE}
  8838. X509_F_NETSCAPE_SPKI_B64_ENCODE = 130;
  8839. {$EXTERNALSYM X509_F_X509_NAME_ENTRY_CREATE_BY_TXT}
  8840. X509_F_X509_NAME_ENTRY_CREATE_BY_TXT = 131;
  8841. {$EXTERNALSYM X509_F_X509_LOAD_CERT_CRL_FILE}
  8842. X509_F_X509_LOAD_CERT_CRL_FILE = 132;
  8843. {$EXTERNALSYM X509_F_X509_TRUST_ADD}
  8844. X509_F_X509_TRUST_ADD = 133;
  8845. {$EXTERNALSYM X509_F_X509_STORE_CTX_PURPOSE_INHERIT}
  8846. X509_F_X509_STORE_CTX_PURPOSE_INHERIT = 134;
  8847. {$EXTERNALSYM X509_F_X509AT_ADD1_ATTR}
  8848. X509_F_X509AT_ADD1_ATTR = 135;
  8849. {$EXTERNALSYM X509_F_X509_ATTRIBUTE_CREATE_BY_NID}
  8850. X509_F_X509_ATTRIBUTE_CREATE_BY_NID = 136;
  8851. {$EXTERNALSYM X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ}
  8852. X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ = 137;
  8853. {$EXTERNALSYM X509_F_X509_ATTRIBUTE_SET1_DATA}
  8854. X509_F_X509_ATTRIBUTE_SET1_DATA = 138;
  8855. {$EXTERNALSYM X509_F_X509_ATTRIBUTE_GET0_DATA}
  8856. X509_F_X509_ATTRIBUTE_GET0_DATA = 139;
  8857. {$EXTERNALSYM X509_F_X509_ATTRIBUTE_CREATE_BY_TXT}
  8858. X509_F_X509_ATTRIBUTE_CREATE_BY_TXT = 140;
  8859. {$EXTERNALSYM X509_F_X509_TRUST_SET}
  8860. X509_F_X509_TRUST_SET = 141;
  8861. {$EXTERNALSYM X509_F_X509_STORE_CTX_NEW}
  8862. X509_F_X509_STORE_CTX_NEW = 142;
  8863. {$EXTERNALSYM X509_F_X509_STORE_CTX_INIT}
  8864. X509_F_X509_STORE_CTX_INIT = 143;
  8865. {$EXTERNALSYM X509_F_X509_REQ_CHECK_PRIVATE_KEY}
  8866. X509_F_X509_REQ_CHECK_PRIVATE_KEY = 144;
  8867. {$EXTERNALSYM X509_F_CHECK_POLICY}
  8868. X509_F_CHECK_POLICY = 145;
  8869. {$EXTERNALSYM X509_F_X509_STORE_CTX_GET1_ISSUER}
  8870. X509_F_X509_STORE_CTX_GET1_ISSUER = 146;
  8871. {$EXTERNALSYM X509_F_X509_CRL_PRINT_FP}
  8872. X509_F_X509_CRL_PRINT_FP = 147;
  8873. {$EXTERNALSYM X509_LU_CRL}
  8874. X509_LU_CRL = 2;
  8875. {$EXTERNALSYM X509_LU_FAIL}
  8876. X509_LU_FAIL = 0;
  8877. {$EXTERNALSYM X509_LU_PKEY}
  8878. X509_LU_PKEY = 3;
  8879. {$EXTERNALSYM X509_LU_RETRY}
  8880. X509_LU_RETRY = -1;
  8881. {$EXTERNALSYM X509_LU_X509}
  8882. X509_LU_X509 = 1;
  8883. {$EXTERNALSYM X509_L_ADD_DIR}
  8884. X509_L_ADD_DIR = 2;
  8885. {$EXTERNALSYM X509_L_FILE_LOAD}
  8886. X509_L_FILE_LOAD = 1;
  8887. {$EXTERNALSYM X509_R_BAD_X509_FILETYPE}
  8888. X509_R_BAD_X509_FILETYPE = 100;
  8889. {$EXTERNALSYM X509_R_BASE64_DECODE_ERROR}
  8890. X509_R_BASE64_DECODE_ERROR = 118;
  8891. {$EXTERNALSYM X509_R_CANT_CHECK_DH_KEY}
  8892. X509_R_CANT_CHECK_DH_KEY = 114;
  8893. {$EXTERNALSYM X509_R_CERT_ALREADY_IN_HASH_TABLE}
  8894. X509_R_CERT_ALREADY_IN_HASH_TABLE = 101;
  8895. {$EXTERNALSYM X509_R_ERR_ASN1_LIB}
  8896. X509_R_ERR_ASN1_LIB = 102;
  8897. {$EXTERNALSYM X509_R_INVALID_DIRECTORY}
  8898. X509_R_INVALID_DIRECTORY = 113;
  8899. {$EXTERNALSYM X509_R_INVALID_FIELD_NAME}
  8900. X509_R_INVALID_FIELD_NAME = 119;
  8901. {$EXTERNALSYM X509_R_INVALID_TRUST}
  8902. X509_R_INVALID_TRUST = 123;
  8903. {$EXTERNALSYM X509_R_KEY_TYPE_MISMATCH}
  8904. X509_R_KEY_TYPE_MISMATCH = 115;
  8905. {$EXTERNALSYM X509_R_KEY_VALUES_MISMATCH}
  8906. X509_R_KEY_VALUES_MISMATCH = 116;
  8907. {$EXTERNALSYM X509_R_LOADING_CERT_DIR}
  8908. X509_R_LOADING_CERT_DIR = 103;
  8909. {$EXTERNALSYM X509_R_LOADING_DEFAULTS}
  8910. X509_R_LOADING_DEFAULTS = 104;
  8911. {$EXTERNALSYM X509_R_METHOD_NOT_SUPPORTED}
  8912. X509_R_METHOD_NOT_SUPPORTED = 124;
  8913. {$EXTERNALSYM X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}
  8914. X509_R_NO_CERT_SET_FOR_US_TO_VERIFY = 105;
  8915. {$EXTERNALSYM X509_R_PUBLIC_KEY_DECODE_ERROR}
  8916. X509_R_PUBLIC_KEY_DECODE_ERROR = 125;
  8917. {$EXTERNALSYM X509_R_PUBLIC_KEY_ENCODE_ERROR}
  8918. X509_R_PUBLIC_KEY_ENCODE_ERROR = 126;
  8919. {$EXTERNALSYM X509_R_SHOULD_RETRY}
  8920. X509_R_SHOULD_RETRY = 106;
  8921. {$EXTERNALSYM X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}
  8922. X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN = 107;
  8923. {$EXTERNALSYM X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}
  8924. X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY = 108;
  8925. {$EXTERNALSYM X509_R_UNKNOWN_KEY_TYPE}
  8926. X509_R_UNKNOWN_KEY_TYPE = 117;
  8927. {$EXTERNALSYM X509_R_UNKNOWN_NID}
  8928. X509_R_UNKNOWN_NID = 109;
  8929. {$EXTERNALSYM X509_R_UNKNOWN_PURPOSE_ID}
  8930. X509_R_UNKNOWN_PURPOSE_ID = 121;
  8931. {$EXTERNALSYM X509_R_UNSUPPORTED_ALGORITHM}
  8932. X509_R_UNSUPPORTED_ALGORITHM = 111;
  8933. {$EXTERNALSYM X509_R_WRONG_LOOKUP_TYPE}
  8934. X509_R_WRONG_LOOKUP_TYPE = 112;
  8935. {$EXTERNALSYM X509_R_WRONG_TYPE}
  8936. X509_R_WRONG_TYPE = 122;
  8937. {$EXTERNALSYM X509_V_ERR_UNSPECIFIED}
  8938. X509_V_ERR_UNSPECIFIED = 1;
  8939. {$EXTERNALSYM X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT}
  8940. X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = 2;
  8941. {$EXTERNALSYM X509_V_ERR_UNABLE_TO_GET_CRL}
  8942. X509_V_ERR_UNABLE_TO_GET_CRL = 3;
  8943. {$EXTERNALSYM X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE}
  8944. X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE = 4;
  8945. {$EXTERNALSYM X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE}
  8946. X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE = 5;
  8947. {$EXTERNALSYM X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY}
  8948. X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY = 6;
  8949. {$EXTERNALSYM X509_V_ERR_CERT_SIGNATURE_FAILURE}
  8950. X509_V_ERR_CERT_SIGNATURE_FAILURE = 7;
  8951. {$EXTERNALSYM X509_V_ERR_CRL_SIGNATURE_FAILURE}
  8952. X509_V_ERR_CRL_SIGNATURE_FAILURE = 8;
  8953. {$EXTERNALSYM X509_V_ERR_CERT_NOT_YET_VALID}
  8954. X509_V_ERR_CERT_NOT_YET_VALID = 9;
  8955. {$EXTERNALSYM X509_V_ERR_CERT_HAS_EXPIRED}
  8956. X509_V_ERR_CERT_HAS_EXPIRED = 10;
  8957. {$EXTERNALSYM X509_V_ERR_CRL_NOT_YET_VALID}
  8958. X509_V_ERR_CRL_NOT_YET_VALID = 11;
  8959. {$EXTERNALSYM X509_V_ERR_CRL_HAS_EXPIRED}
  8960. X509_V_ERR_CRL_HAS_EXPIRED = 12;
  8961. {$EXTERNALSYM X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD}
  8962. X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 13;
  8963. {$EXTERNALSYM X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD}
  8964. X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 14;
  8965. {$EXTERNALSYM X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD}
  8966. X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD = 15;
  8967. {$EXTERNALSYM X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD}
  8968. X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 16;
  8969. {$EXTERNALSYM X509_V_ERR_OUT_OF_MEM}
  8970. X509_V_ERR_OUT_OF_MEM = 17;
  8971. {$EXTERNALSYM X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT}
  8972. X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = 18;
  8973. {$EXTERNALSYM X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN}
  8974. X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN = 19;
  8975. {$EXTERNALSYM X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY}
  8976. X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY = 20;
  8977. {$EXTERNALSYM X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE}
  8978. X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE = 21;
  8979. {$EXTERNALSYM X509_V_ERR_CERT_CHAIN_TOO_LONG}
  8980. X509_V_ERR_CERT_CHAIN_TOO_LONG = 22;
  8981. {$EXTERNALSYM X509_V_ERR_CERT_REVOKED}
  8982. X509_V_ERR_CERT_REVOKED = 23;
  8983. {$EXTERNALSYM X509_V_ERR_INVALID_CA}
  8984. X509_V_ERR_INVALID_CA = 24;
  8985. {$EXTERNALSYM X509_V_ERR_PATH_LENGTH_EXCEEDED}
  8986. X509_V_ERR_PATH_LENGTH_EXCEEDED = 25;
  8987. {$EXTERNALSYM X509_V_ERR_INVALID_PURPOSE}
  8988. X509_V_ERR_INVALID_PURPOSE = 26;
  8989. {$EXTERNALSYM X509_V_ERR_CERT_UNTRUSTED}
  8990. X509_V_ERR_CERT_UNTRUSTED = 27;
  8991. {$EXTERNALSYM X509_V_ERR_CERT_REJECTED}
  8992. X509_V_ERR_CERT_REJECTED = 28;
  8993. //* These are 'informational' when looking for issuer cert */
  8994. {$EXTERNALSYM X509_V_ERR_SUBJECT_ISSUER_MISMATCH}
  8995. X509_V_ERR_SUBJECT_ISSUER_MISMATCH = 29;
  8996. {$EXTERNALSYM X509_V_ERR_AKID_SKID_MISMATCH}
  8997. X509_V_ERR_AKID_SKID_MISMATCH = 30;
  8998. {$EXTERNALSYM X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH}
  8999. X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH = 31;
  9000. {$EXTERNALSYM X509_V_ERR_KEYUSAGE_NO_CERTSIGN}
  9001. X509_V_ERR_KEYUSAGE_NO_CERTSIGN = 32;
  9002. {$EXTERNALSYM X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER}
  9003. X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER = 33;
  9004. {$EXTERNALSYM X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION}
  9005. X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION = 34;
  9006. {$EXTERNALSYM X509_V_ERR_KEYUSAGE_NO_CRL_SIGN}
  9007. X509_V_ERR_KEYUSAGE_NO_CRL_SIGN = 35;
  9008. {$EXTERNALSYM X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION}
  9009. X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION = 36;
  9010. {$EXTERNALSYM X509_V_ERR_INVALID_NON_CA}
  9011. X509_V_ERR_INVALID_NON_CA = 37;
  9012. {$EXTERNALSYM X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED}
  9013. X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED = 38;
  9014. {$EXTERNALSYM X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE}
  9015. X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE = 39;
  9016. {$EXTERNALSYM X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED}
  9017. X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED = 40;
  9018. {$EXTERNALSYM X509_V_ERR_INVALID_EXTENSION}
  9019. X509_V_ERR_INVALID_EXTENSION = 41;
  9020. {$EXTERNALSYM X509_V_ERR_INVALID_POLICY_EXTENSION}
  9021. X509_V_ERR_INVALID_POLICY_EXTENSION = 42;
  9022. {$EXTERNALSYM X509_V_ERR_NO_EXPLICIT_POLICY}
  9023. X509_V_ERR_NO_EXPLICIT_POLICY = 43;
  9024. {$EXTERNALSYM X509_V_ERR_DIFFERENT_CRL_SCOPE}
  9025. X509_V_ERR_DIFFERENT_CRL_SCOPE = 44;
  9026. {$EXTERNALSYM X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE}
  9027. X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE = 45;
  9028. {$EXTERNALSYM X509_V_ERR_UNNESTED_RESOURCE}
  9029. X509_V_ERR_UNNESTED_RESOURCE = 46; //was 44;
  9030. {$EXTERNALSYM X509_V_ERR_PERMITTED_VIOLATION}
  9031. X509_V_ERR_PERMITTED_VIOLATION = 47;
  9032. {$EXTERNALSYM X509_V_ERR_EXCLUDED_VIOLATION}
  9033. X509_V_ERR_EXCLUDED_VIOLATION = 48;
  9034. {$EXTERNALSYM X509_V_ERR_SUBTREE_MINMAX}
  9035. X509_V_ERR_SUBTREE_MINMAX = 49;
  9036. {$EXTERNALSYM X509_V_ERR_APPLICATION_VERIFICATION}
  9037. X509_V_ERR_APPLICATION_VERIFICATION = 50;
  9038. {$EXTERNALSYM X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE}
  9039. X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE = 51;
  9040. {$EXTERNALSYM X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX}
  9041. X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX = 52;
  9042. {$EXTERNALSYM X509_V_ERR_UNSUPPORTED_NAME_SYNTAX}
  9043. X509_V_ERR_UNSUPPORTED_NAME_SYNTAX = 53;
  9044. {$EXTERNALSYM X509_V_ERR_CRL_PATH_VALIDATION_ERROR}
  9045. X509_V_ERR_CRL_PATH_VALIDATION_ERROR = 54;
  9046. {$EXTERNALSYM X509_V_ERR_PATH_LOOP}
  9047. X509_V_ERR_PATH_LOOP = 55;
  9048. {$EXTERNALSYM X509_V_ERR_SUITE_B_INVALID_VERSION}
  9049. X509_V_ERR_SUITE_B_INVALID_VERSION = 56;
  9050. {$EXTERNALSYM X509_V_ERR_SUITE_B_INVALID_ALGORITHM}
  9051. X509_V_ERR_SUITE_B_INVALID_ALGORITHM = 57;
  9052. {$EXTERNALSYM X509_V_ERR_SUITE_B_INVALID_CURVE}
  9053. X509_V_ERR_SUITE_B_INVALID_CURVE = 58;
  9054. {$EXTERNALSYM X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM}
  9055. X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM = 59;
  9056. {$EXTERNALSYM X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED}
  9057. X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED = 60;
  9058. {$EXTERNALSYM X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256}
  9059. X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 = 61;
  9060. {$EXTERNALSYM X509_V_ERR_HOSTNAME_MISMATCH}
  9061. X509_V_ERR_HOSTNAME_MISMATCH = 62;
  9062. {$EXTERNALSYM X509_V_ERR_EMAIL_MISMATCH}
  9063. X509_V_ERR_EMAIL_MISMATCH = 63;
  9064. {$EXTERNALSYM X509_V_ERR_IP_ADDRESS_MISMATCH}
  9065. X509_V_ERR_IP_ADDRESS_MISMATCH = 64;
  9066. {$EXTERNALSYM X509_V_ERR_DANE_NO_MATCH}
  9067. X509_V_ERR_DANE_NO_MATCH = 65;
  9068. {$EXTERNALSYM X509_V_ERR_EE_KEY_TOO_SMALL}
  9069. X509_V_ERR_EE_KEY_TOO_SMALL = 66;
  9070. {$EXTERNALSYM X509_V_ERR_CA_KEY_TOO_SMALL}
  9071. X509_V_ERR_CA_KEY_TOO_SMALL = 67;
  9072. {$EXTERNALSYM X509_V_ERR_CA_MD_TOO_WEAK}
  9073. X509_V_ERR_CA_MD_TOO_WEAK = 68;
  9074. {$EXTERNALSYM X509_V_ERR_INVALID_CALL}
  9075. X509_V_ERR_INVALID_CALL = 69;
  9076. {$EXTERNALSYM X509_V_ERR_STORE_LOOKUP}
  9077. X509_V_ERR_STORE_LOOKUP = 70;
  9078. {$EXTERNALSYM X509_V_ERR_NO_VALID_SCTS}
  9079. X509_V_ERR_NO_VALID_SCTS = 71;
  9080. {$EXTERNALSYM X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION}
  9081. X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION = 72;
  9082. {$EXTERNALSYM X509_V_ERR_OCSP_VERIFY_NEEDED}
  9083. X509_V_ERR_OCSP_VERIFY_NEEDED = 73;
  9084. {$EXTERNALSYM X509_V_ERR_OCSP_VERIFY_FAILED}
  9085. X509_V_ERR_OCSP_VERIFY_FAILED = 74;
  9086. {$EXTERNALSYM X509_V_ERR_OCSP_CERT_UNKNOWN}
  9087. X509_V_ERR_OCSP_CERT_UNKNOWN = 75;
  9088. //* Certificate verify flags */
  9089. //* Send issuer+subject checks to verify_cb */
  9090. {$EXTERNALSYM X509_V_FLAG_CB_ISSUER_CHECK}
  9091. X509_V_FLAG_CB_ISSUER_CHECK = $1;
  9092. //* Use check time instead of current time */
  9093. {$EXTERNALSYM X509_V_FLAG_USE_CHECK_TIME}
  9094. X509_V_FLAG_USE_CHECK_TIME = $2;
  9095. //* Lookup CRLs */
  9096. {$EXTERNALSYM X509_V_FLAG_CRL_CHECK}
  9097. X509_V_FLAG_CRL_CHECK = $4;
  9098. //* Lookup CRLs for whole chain */
  9099. {$EXTERNALSYM X509_V_FLAG_CRL_CHECK_ALL}
  9100. X509_V_FLAG_CRL_CHECK_ALL = $8;
  9101. //* Ignore unhandled critical extensions */
  9102. {$EXTERNALSYM X509_V_FLAG_IGNORE_CRITICAL}
  9103. X509_V_FLAG_IGNORE_CRITICAL = $10;
  9104. //* Disable workarounds for broken certificates */
  9105. {$EXTERNALSYM X509_V_FLAG_X509_STRICT}
  9106. X509_V_FLAG_X509_STRICT = $20;
  9107. //* Enable proxy certificate validation */
  9108. {$EXTERNALSYM X509_V_FLAG_ALLOW_PROXY_CERTS}
  9109. X509_V_FLAG_ALLOW_PROXY_CERTS = $40;
  9110. //* Enable policy checking */
  9111. {$EXTERNALSYM X509_V_FLAG_POLICY_CHECK}
  9112. X509_V_FLAG_POLICY_CHECK = $80;
  9113. //* Policy variable require-explicit-policy */
  9114. {$EXTERNALSYM X509_V_FLAG_EXPLICIT_POLICY}
  9115. X509_V_FLAG_EXPLICIT_POLICY = $100;
  9116. //* Policy variable inhibit-any-policy */
  9117. {$EXTERNALSYM X509_V_FLAG_INHIBIT_ANY}
  9118. X509_V_FLAG_INHIBIT_ANY = $200;
  9119. //* Policy variable inhibit-policy-mapping */
  9120. {$EXTERNALSYM X509_V_FLAG_INHIBIT_MAP}
  9121. X509_V_FLAG_INHIBIT_MAP = $400;
  9122. //* Notify callback that policy is OK */
  9123. {$EXTERNALSYM X509_V_FLAG_NOTIFY_POLICY}
  9124. X509_V_FLAG_NOTIFY_POLICY = $800;
  9125. //* Extended CRL features such as indirect CRLs, alternate CRL signing keys */
  9126. {$EXTERNALSYM X509_V_FLAG_EXTENDED_CRL_SUPPORT}
  9127. X509_V_FLAG_EXTENDED_CRL_SUPPORT = $1000;
  9128. //* Delta CRL support */
  9129. {$EXTERNALSYM X509_V_FLAG_USE_DELTAS}
  9130. X509_V_FLAG_USE_DELTAS = $2000;
  9131. //* Check selfsigned CA signature */
  9132. {$EXTERNALSYM X509_V_FLAG_CHECK_SS_SIGNATURE}
  9133. X509_V_FLAG_CHECK_SS_SIGNATURE = $4000;
  9134. {$EXTERNALSYM X509_VP_FLAG_DEFAULT}
  9135. X509_VP_FLAG_DEFAULT = $1;
  9136. {$EXTERNALSYM X509_VP_FLAG_OVERWRITE}
  9137. X509_VP_FLAG_OVERWRITE = $2;
  9138. {$EXTERNALSYM X509_VP_FLAG_RESET_FLAGS}
  9139. X509_VP_FLAG_RESET_FLAGS = $4;
  9140. {$EXTERNALSYM X509_VP_FLAG_LOCKED}
  9141. X509_VP_FLAG_LOCKED = $8;
  9142. {$EXTERNALSYM X509_VP_FLAG_ONCE}
  9143. X509_VP_FLAG_ONCE = $10;
  9144. {$EXTERNALSYM X509_V_FLAG_POLICY_MASK}
  9145. X509_V_FLAG_POLICY_MASK = (X509_V_FLAG_POLICY_CHECK or
  9146. X509_V_FLAG_EXPLICIT_POLICY or
  9147. X509_V_FLAG_INHIBIT_ANY or
  9148. X509_V_FLAG_INHIBIT_MAP);
  9149. {$EXTERNALSYM X509_V_OK}
  9150. X509_V_OK = 0;
  9151. {$EXTERNALSYM X509v3_KU_CRL_SIGN}
  9152. X509v3_KU_CRL_SIGN = $0002;
  9153. {$EXTERNALSYM X509v3_KU_DATA_ENCIPHERMENT}
  9154. X509v3_KU_DATA_ENCIPHERMENT = $0010;
  9155. {$EXTERNALSYM X509v3_KU_DECIPHER_ONLY}
  9156. X509v3_KU_DECIPHER_ONLY = $8000;
  9157. {$EXTERNALSYM X509v3_KU_DIGITAL_SIGNATURE}
  9158. X509v3_KU_DIGITAL_SIGNATURE = $0080;
  9159. {$EXTERNALSYM X509v3_KU_ENCIPHER_ONLY}
  9160. X509v3_KU_ENCIPHER_ONLY = $0001;
  9161. {$EXTERNALSYM X509v3_KU_KEY_AGREEMENT}
  9162. X509v3_KU_KEY_AGREEMENT = $0008;
  9163. {$EXTERNALSYM X509v3_KU_KEY_CERT_SIGN}
  9164. X509v3_KU_KEY_CERT_SIGN = $0004;
  9165. {$EXTERNALSYM X509v3_KU_KEY_ENCIPHERMENT}
  9166. X509v3_KU_KEY_ENCIPHERMENT = $0020;
  9167. {$EXTERNALSYM X509v3_KU_NON_REPUDIATION}
  9168. X509v3_KU_NON_REPUDIATION = $0040;
  9169. {$EXTERNALSYM X509v3_KU_UNDEF}
  9170. X509v3_KU_UNDEF = $ffff;
  9171. {$EXTERNALSYM X509V3_EXT_DYNAMIC}
  9172. X509V3_EXT_DYNAMIC = $1;
  9173. {$EXTERNALSYM X509V3_EXT_CTX_DEP}
  9174. X509V3_EXT_CTX_DEP = $2;
  9175. {$EXTERNALSYM X509V3_EXT_MULTILINE}
  9176. X509V3_EXT_MULTILINE = $4;
  9177. {$EXTERNALSYM GEN_OTHERNAME}
  9178. GEN_OTHERNAME = 0;
  9179. {$EXTERNALSYM GEN_EMAIL}
  9180. GEN_EMAIL = 1;
  9181. {$EXTERNALSYM GEN_DNS}
  9182. GEN_DNS = 2;
  9183. {$EXTERNALSYM GEN_X400}
  9184. GEN_X400 = 3;
  9185. {$EXTERNALSYM GEN_DIRNAME}
  9186. GEN_DIRNAME = 4;
  9187. {$EXTERNALSYM GEN_EDIPARTY}
  9188. GEN_EDIPARTY = 5;
  9189. {$EXTERNALSYM GEN_URI}
  9190. GEN_URI = 6;
  9191. {$EXTERNALSYM GEN_IPADD}
  9192. GEN_IPADD = 7;
  9193. {$EXTERNALSYM GEN_RID}
  9194. GEN_RID = 8;
  9195. {$EXTERNALSYM CRLDP_ALL_REASONS}
  9196. CRLDP_ALL_REASONS = $807f;
  9197. {$EXTERNALSYM CRL_REASON_NONE}
  9198. CRL_REASON_NONE = -1;
  9199. {$EXTERNALSYM CRL_REASON_UNSPECIFIED}
  9200. CRL_REASON_UNSPECIFIED = 0;
  9201. {$EXTERNALSYM CRL_REASON_KEY_COMPROMISE}
  9202. CRL_REASON_KEY_COMPROMISE = 1;
  9203. {$EXTERNALSYM CRL_REASON_CA_COMPROMISE}
  9204. CRL_REASON_CA_COMPROMISE = 2;
  9205. {$EXTERNALSYM CRL_REASON_AFFILIATION_CHANGED}
  9206. CRL_REASON_AFFILIATION_CHANGED = 3;
  9207. {$EXTERNALSYM CRL_REASON_SUPERSEDED}
  9208. CRL_REASON_SUPERSEDED = 4;
  9209. {$EXTERNALSYM CRL_REASON_CESSATION_OF_OPERATION}
  9210. CRL_REASON_CESSATION_OF_OPERATION = 5;
  9211. {$EXTERNALSYM CRL_REASON_CERTIFICATE_HOLD}
  9212. CRL_REASON_CERTIFICATE_HOLD = 6;
  9213. {$EXTERNALSYM CRL_REASON_REMOVE_FROM_CRL}
  9214. CRL_REASON_REMOVE_FROM_CRL = 8;
  9215. {$EXTERNALSYM CRL_REASON_PRIVILEGE_WITHDRAWN}
  9216. CRL_REASON_PRIVILEGE_WITHDRAWN = 9;
  9217. {$EXTERNALSYM CRL_REASON_AA_COMPROMISE}
  9218. CRL_REASON_AA_COMPROMISE = 10;
  9219. //* Values in idp_flags field */
  9220. //* IDP present */
  9221. {$EXTERNALSYM IDP_PRESENT}
  9222. IDP_PRESENT = $1;
  9223. //* IDP values inconsistent */
  9224. {$EXTERNALSYM IDP_INVALID}
  9225. IDP_INVALID = $2;
  9226. //* onlyuser true */
  9227. {$EXTERNALSYM IDP_ONLYUSER}
  9228. IDP_ONLYUSER = $4;
  9229. //* onlyCA true */
  9230. {$EXTERNALSYM IDP_ONLYCA}
  9231. IDP_ONLYCA = $8;
  9232. //* onlyattr true */
  9233. {$EXTERNALSYM IDP_ONLYATTR}
  9234. IDP_ONLYATTR = $10;
  9235. //* indirectCRL true */
  9236. {$EXTERNALSYM IDP_INDIRECT}
  9237. IDP_INDIRECT = $20;
  9238. //* onlysomereasons present */
  9239. {$EXTERNALSYM IDP_REASONS}
  9240. IDP_REASONS = $40;
  9241. //* X509_PURPOSE stuff */
  9242. {$EXTERNALSYM EXFLAG_BCONS}
  9243. EXFLAG_BCONS = $1;
  9244. {$EXTERNALSYM EXFLAG_KUSAGE}
  9245. EXFLAG_KUSAGE = $2;
  9246. {$EXTERNALSYM EXFLAG_XKUSAGE}
  9247. EXFLAG_XKUSAGE = $4;
  9248. {$EXTERNALSYM EXFLAG_NSCERT}
  9249. EXFLAG_NSCERT = $8;
  9250. {$EXTERNALSYM EXFLAG_CA}
  9251. EXFLAG_CA = $10;
  9252. //* Really self issued not necessarily self signed */
  9253. {$EXTERNALSYM EXFLAG_SI}
  9254. EXFLAG_SI = $20;
  9255. {$EXTERNALSYM EXFLAG_SS}
  9256. EXFLAG_SS = $20;
  9257. {$EXTERNALSYM EXFLAG_V1}
  9258. EXFLAG_V1 = $40;
  9259. {$EXTERNALSYM EXFLAG_INVALID}
  9260. EXFLAG_INVALID = $80;
  9261. {$EXTERNALSYM EXFLAG_SET}
  9262. EXFLAG_SET = $100;
  9263. {$EXTERNALSYM EXFLAG_CRITICAL}
  9264. EXFLAG_CRITICAL = $200;
  9265. {$EXTERNALSYM EXFLAG_PROXY}
  9266. EXFLAG_PROXY = $400;
  9267. {$EXTERNALSYM EXFLAG_INVALID_POLICY}
  9268. EXFLAG_INVALID_POLICY = $800;
  9269. {$EXTERNALSYM KU_DIGITAL_SIGNATURE}
  9270. KU_DIGITAL_SIGNATURE = $0080;
  9271. {$EXTERNALSYM KU_NON_REPUDIATION}
  9272. KU_NON_REPUDIATION = $0040;
  9273. {$EXTERNALSYM KU_KEY_ENCIPHERMENT}
  9274. KU_KEY_ENCIPHERMENT = $0020;
  9275. {$EXTERNALSYM KU_DATA_ENCIPHERMENT}
  9276. KU_DATA_ENCIPHERMENT = $0010;
  9277. {$EXTERNALSYM KU_KEY_AGREEMENT}
  9278. KU_KEY_AGREEMENT = $0008;
  9279. {$EXTERNALSYM KU_KEY_CERT_SIGN}
  9280. KU_KEY_CERT_SIGN = $0004;
  9281. {$EXTERNALSYM KU_CRL_SIGN}
  9282. KU_CRL_SIGN = $0002;
  9283. {$EXTERNALSYM KU_ENCIPHER_ONLY}
  9284. KU_ENCIPHER_ONLY = $0001;
  9285. {$EXTERNALSYM KU_DECIPHER_ONLY}
  9286. KU_DECIPHER_ONLY = $8000;
  9287. {$EXTERNALSYM NS_SSL_CLIENT}
  9288. NS_SSL_CLIENT = $80;
  9289. {$EXTERNALSYM NS_SSL_SERVER}
  9290. NS_SSL_SERVER = $40;
  9291. {$EXTERNALSYM NS_SMIME}
  9292. NS_SMIME = $20;
  9293. {$EXTERNALSYM NS_OBJSIGN}
  9294. NS_OBJSIGN = $10;
  9295. {$EXTERNALSYM NS_SSL_CA}
  9296. NS_SSL_CA = $04;
  9297. {$EXTERNALSYM NS_SMIME_CA}
  9298. NS_SMIME_CA = $02;
  9299. {$EXTERNALSYM NS_OBJSIGN_CA}
  9300. NS_OBJSIGN_CA = $01;
  9301. {$EXTERNALSYM NS_ANY_CA}
  9302. NS_ANY_CA = (NS_SSL_CA or NS_SMIME_CA or
  9303. {$EXTERNALSYM XKU_SSL_SERVER}
  9304. NS_OBJSIGN_CA);
  9305. {$EXTERNALSYM XKU_SSL_SERVER}
  9306. XKU_SSL_SERVER = $1;
  9307. {$EXTERNALSYM XKU_SSL_CLIENT}
  9308. XKU_SSL_CLIENT = $2;
  9309. {$EXTERNALSYM XKU_SMIME}
  9310. XKU_SMIME = $4;
  9311. {$EXTERNALSYM XKU_CODE_SIGN}
  9312. XKU_CODE_SIGN = $8;
  9313. {$EXTERNALSYM XKU_SGC}
  9314. XKU_SGC = $10;
  9315. {$EXTERNALSYM XKU_OCSP_SIGN}
  9316. XKU_OCSP_SIGN = $20;
  9317. {$EXTERNALSYM XKU_TIMESTAMP}
  9318. XKU_TIMESTAMP = $40;
  9319. {$EXTERNALSYM XKU_DVCS}
  9320. XKU_DVCS = $80;
  9321. {$EXTERNALSYM X509_PURPOSE_DYNAMIC}
  9322. X509_PURPOSE_DYNAMIC = $1;
  9323. {$EXTERNALSYM X509_PURPOSE_DYNAMIC_NAME}
  9324. X509_PURPOSE_DYNAMIC_NAME = $2;
  9325. {$EXTERNALSYM X509_PURPOSE_SSL_CLIENT}
  9326. X509_PURPOSE_SSL_CLIENT = 1;
  9327. {$EXTERNALSYM X509_PURPOSE_SSL_SERVER}
  9328. X509_PURPOSE_SSL_SERVER = 2;
  9329. {$EXTERNALSYM X509_PURPOSE_NS_SSL_SERVER}
  9330. X509_PURPOSE_NS_SSL_SERVER = 3;
  9331. {$EXTERNALSYM X509_PURPOSE_SMIME_SIGN}
  9332. X509_PURPOSE_SMIME_SIGN = 4;
  9333. {$EXTERNALSYM X509_PURPOSE_SMIME_ENCRYPT}
  9334. X509_PURPOSE_SMIME_ENCRYPT = 5;
  9335. {$EXTERNALSYM X509_PURPOSE_CRL_SIGN}
  9336. X509_PURPOSE_CRL_SIGN = 6;
  9337. {$EXTERNALSYM X509_PURPOSE_ANY}
  9338. X509_PURPOSE_ANY = 7;
  9339. {$EXTERNALSYM X509_PURPOSE_OCSP_HELPER}
  9340. X509_PURPOSE_OCSP_HELPER = 8;
  9341. {$EXTERNALSYM X509_PURPOSE_TIMESTAMP_SIGN}
  9342. X509_PURPOSE_TIMESTAMP_SIGN = 9;
  9343. {$EXTERNALSYM X509_PURPOSE_MIN}
  9344. X509_PURPOSE_MIN = 1;
  9345. {$EXTERNALSYM X509_PURPOSE_MAX}
  9346. X509_PURPOSE_MAX = 9;
  9347. //* Flags for X509V3_EXT_print() */
  9348. {$EXTERNALSYM X509V3_EXT_UNKNOWN_MASK}
  9349. X509V3_EXT_UNKNOWN_MASK = TIdC_LONG($f shl 16);
  9350. //* Return error for unknown extensions */
  9351. {$EXTERNALSYM X509V3_EXT_DEFAULT}
  9352. X509V3_EXT_DEFAULT = 0;
  9353. //* Print error for unknown extensions */
  9354. {$EXTERNALSYM X509V3_EXT_ERROR_UNKNOWN}
  9355. X509V3_EXT_ERROR_UNKNOWN = (TIdC_LONG(1) shl 16);
  9356. //* ASN1 parse unknown extensions */
  9357. {$EXTERNALSYM X509V3_EXT_PARSE_UNKNOWN}
  9358. X509V3_EXT_PARSE_UNKNOWN = (TIdC_LONG(2) shl 16);
  9359. //* BIO_dump unknown extensions */
  9360. {$EXTERNALSYM X509V3_EXT_DUMP_UNKNOWN}
  9361. X509V3_EXT_DUMP_UNKNOWN = (TIdC_LONG(3) shl 16);
  9362. //* Flags for X509V3_add1_i2d */
  9363. {$EXTERNALSYM X509V3_ADD_OP_MASK}
  9364. X509V3_ADD_OP_MASK = TIdC_LONG($f);
  9365. {$EXTERNALSYM X509V3_ADD_DEFAULT}
  9366. X509V3_ADD_DEFAULT = TIdC_LONG(0);
  9367. {$EXTERNALSYM X509V3_ADD_APPEND}
  9368. X509V3_ADD_APPEND = TIdC_LONG(1);
  9369. {$EXTERNALSYM X509V3_ADD_REPLACE}
  9370. X509V3_ADD_REPLACE = TIdC_LONG(2);
  9371. {$EXTERNALSYM X509V3_ADD_REPLACE_EXISTING}
  9372. X509V3_ADD_REPLACE_EXISTING = TIdC_LONG(3);
  9373. {$EXTERNALSYM X509V3_ADD_KEEP_EXISTING}
  9374. X509V3_ADD_KEEP_EXISTING = TIdC_LONG(4);
  9375. {$EXTERNALSYM X509V3_ADD_DELETE}
  9376. X509V3_ADD_DELETE = TIdC_LONG(5);
  9377. {$EXTERNALSYM X509V3_ADD_SILENT}
  9378. X509V3_ADD_SILENT = TIdC_LONG($10);
  9379. {$IFNDEF OPENSSL_NO_RFC3779}
  9380. {$EXTERNALSYM ASIdOrRange_id}
  9381. ASIdOrRange_id = 0;
  9382. {$EXTERNALSYM ASIdOrRange_range}
  9383. ASIdOrRange_range = 1;
  9384. {$EXTERNALSYM ASIdentifierChoice_inherit}
  9385. ASIdentifierChoice_inherit = 0;
  9386. {$EXTERNALSYM ASIdentifierChoice_asIdsOrRanges}
  9387. ASIdentifierChoice_asIdsOrRanges = 1;
  9388. {$EXTERNALSYM IPAddressOrRange_addressPrefix}
  9389. IPAddressOrRange_addressPrefix = 0;
  9390. {$EXTERNALSYM IPAddressOrRange_addressRange}
  9391. IPAddressOrRange_addressRange = 1;
  9392. {$EXTERNALSYM IPAddressChoice_inherit}
  9393. IPAddressChoice_inherit = 0;
  9394. {$EXTERNALSYM IPAddressChoice_addressesOrRanges}
  9395. IPAddressChoice_addressesOrRanges = 1;
  9396. // /*
  9397. // * API tag for elements of the ASIdentifer SEQUENCE.
  9398. // */
  9399. {$EXTERNALSYM V3_ASID_ASNUM}
  9400. V3_ASID_ASNUM = 0;
  9401. {$EXTERNALSYM V3_ASID_RDI}
  9402. V3_ASID_RDI = 1;
  9403. //*
  9404. // * AFI values, assigned by IANA. It'd be nice to make the AFI
  9405. // * handling code totally generic, but there are too many little things
  9406. // * that would need to be defined for other address families for it to
  9407. // * be worth the trouble.
  9408. // */
  9409. {$EXTERNALSYM IANA_AFI_IPV4}
  9410. IANA_AFI_IPV4 = 1;
  9411. {$EXTERNALSYM IANA_AFI_IPV6}
  9412. IANA_AFI_IPV6 = 2;
  9413. {$ENDIF}
  9414. //* Function codes. */
  9415. {$EXTERNALSYM X509V3_F_A2I_GENERAL_NAME}
  9416. X509V3_F_A2I_GENERAL_NAME = 164;
  9417. {$EXTERNALSYM X509V3_F_ASIDENTIFIERCHOICE_CANONIZE}
  9418. X509V3_F_ASIDENTIFIERCHOICE_CANONIZE = 161;
  9419. {$EXTERNALSYM X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL}
  9420. X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL = 162;
  9421. {$EXTERNALSYM X509V3_F_COPY_EMAIL}
  9422. X509V3_F_COPY_EMAIL = 122;
  9423. {$EXTERNALSYM X509V3_F_COPY_ISSUER}
  9424. X509V3_F_COPY_ISSUER = 123;
  9425. {$EXTERNALSYM X509V3_F_DO_DIRNAME}
  9426. X509V3_F_DO_DIRNAME = 144;
  9427. {$EXTERNALSYM X509V3_F_DO_EXT_CONF}
  9428. X509V3_F_DO_EXT_CONF = 124;
  9429. {$EXTERNALSYM X509V3_F_DO_EXT_I2D}
  9430. X509V3_F_DO_EXT_I2D = 135;
  9431. {$EXTERNALSYM X509V3_F_DO_EXT_NCONF}
  9432. X509V3_F_DO_EXT_NCONF = 151;
  9433. {$EXTERNALSYM X509V3_F_DO_I2V_NAME_CONSTRAINTS}
  9434. X509V3_F_DO_I2V_NAME_CONSTRAINTS = 148;
  9435. {$EXTERNALSYM X509V3_F_GNAMES_FROM_SECTNAME}
  9436. X509V3_F_GNAMES_FROM_SECTNAME = 156;
  9437. {$EXTERNALSYM X509V3_F_HEX_TO_STRING}
  9438. X509V3_F_HEX_TO_STRING = 111;
  9439. {$EXTERNALSYM X509V3_F_I2S_ASN1_ENUMERATED}
  9440. X509V3_F_I2S_ASN1_ENUMERATED = 121;
  9441. {$EXTERNALSYM X509V3_F_I2S_ASN1_IA5STRING}
  9442. X509V3_F_I2S_ASN1_IA5STRING = 149;
  9443. {$EXTERNALSYM X509V3_F_I2S_ASN1_INTEGER}
  9444. X509V3_F_I2S_ASN1_INTEGER = 120;
  9445. {$EXTERNALSYM X509V3_F_I2V_AUTHORITY_INFO_ACCESS}
  9446. X509V3_F_I2V_AUTHORITY_INFO_ACCESS = 138;
  9447. {$EXTERNALSYM X509V3_F_NOTICE_SECTION}
  9448. X509V3_F_NOTICE_SECTION =132;
  9449. {$EXTERNALSYM X509V3_F_NREF_NOS}
  9450. X509V3_F_NREF_NOS =133;
  9451. {$EXTERNALSYM X509V3_F_POLICY_SECTION}
  9452. X509V3_F_POLICY_SECTION =131;
  9453. {$EXTERNALSYM X509V3_F_PROCESS_PCI_VALUE}
  9454. X509V3_F_PROCESS_PCI_VALUE =150;
  9455. {$EXTERNALSYM X509V3_F_R2I_CERTPOL}
  9456. X509V3_F_R2I_CERTPOL =130;
  9457. {$EXTERNALSYM X509V3_F_R2I_PCI}
  9458. X509V3_F_R2I_PCI = 155;
  9459. {$EXTERNALSYM X509V3_F_S2I_ASN1_IA5STRING}
  9460. X509V3_F_S2I_ASN1_IA5STRING = 100;
  9461. {$EXTERNALSYM X509V3_F_S2I_ASN1_INTEGER}
  9462. X509V3_F_S2I_ASN1_INTEGER = 108;
  9463. {$EXTERNALSYM X509V3_F_S2I_ASN1_OCTET_STRING}
  9464. X509V3_F_S2I_ASN1_OCTET_STRING = 112;
  9465. {$EXTERNALSYM X509V3_F_S2I_ASN1_SKEY_ID}
  9466. X509V3_F_S2I_ASN1_SKEY_ID = 114;
  9467. {$EXTERNALSYM X509V3_F_S2I_SKEY_ID}
  9468. X509V3_F_S2I_SKEY_ID = 115;
  9469. {$EXTERNALSYM X509V3_F_SET_DIST_POINT_NAME}
  9470. X509V3_F_SET_DIST_POINT_NAME = 158;
  9471. {$EXTERNALSYM X509V3_F_STRING_TO_HEX}
  9472. X509V3_F_STRING_TO_HEX = 113;
  9473. {$EXTERNALSYM X509V3_F_SXNET_ADD_ID_ASC}
  9474. X509V3_F_SXNET_ADD_ID_ASC = 125;
  9475. {$EXTERNALSYM X509V3_F_SXNET_ADD_ID_INTEGER}
  9476. X509V3_F_SXNET_ADD_ID_INTEGER = 126;
  9477. {$EXTERNALSYM X509V3_F_SXNET_ADD_ID_ULONG}
  9478. X509V3_F_SXNET_ADD_ID_ULONG = 127;
  9479. {$EXTERNALSYM X509V3_F_SXNET_GET_ID_ASC}
  9480. X509V3_F_SXNET_GET_ID_ASC = 128;
  9481. {$EXTERNALSYM X509V3_F_SXNET_GET_ID_ULONG}
  9482. X509V3_F_SXNET_GET_ID_ULONG = 129;
  9483. {$EXTERNALSYM X509V3_F_V2I_ASIDENTIFIERS}
  9484. X509V3_F_V2I_ASIDENTIFIERS = 163;
  9485. {$EXTERNALSYM X509V3_F_V2I_ASN1_BIT_STRING}
  9486. X509V3_F_V2I_ASN1_BIT_STRING = 101;
  9487. {$EXTERNALSYM X509V3_F_V2I_AUTHORITY_INFO_ACCESS}
  9488. X509V3_F_V2I_AUTHORITY_INFO_ACCESS = 139;
  9489. {$EXTERNALSYM X509V3_F_V2I_AUTHORITY_KEYID}
  9490. X509V3_F_V2I_AUTHORITY_KEYID = 119;
  9491. {$EXTERNALSYM X509V3_F_V2I_BASIC_CONSTRAINTS}
  9492. X509V3_F_V2I_BASIC_CONSTRAINTS = 102;
  9493. {$EXTERNALSYM X509V3_F_V2I_CRLD}
  9494. X509V3_F_V2I_CRLD = 134;
  9495. {$EXTERNALSYM X509V3_F_V2I_EXTENDED_KEY_USAGE}
  9496. X509V3_F_V2I_EXTENDED_KEY_USAGE = 103;
  9497. {$EXTERNALSYM X509V3_F_V2I_GENERAL_NAMES}
  9498. X509V3_F_V2I_GENERAL_NAMES = 118;
  9499. {$EXTERNALSYM X509V3_F_V2I_GENERAL_NAME_EX}
  9500. X509V3_F_V2I_GENERAL_NAME_EX = 117;
  9501. {$EXTERNALSYM X509V3_F_V2I_IDP}
  9502. X509V3_F_V2I_IDP = 157;
  9503. {$EXTERNALSYM X509V3_F_V2I_IPADDRBLOCKS}
  9504. X509V3_F_V2I_IPADDRBLOCKS = 159;
  9505. {$EXTERNALSYM X509V3_F_V2I_ISSUER_ALT}
  9506. X509V3_F_V2I_ISSUER_ALT = 153;
  9507. {$EXTERNALSYM X509V3_F_V2I_NAME_CONSTRAINTS}
  9508. X509V3_F_V2I_NAME_CONSTRAINTS = 147;
  9509. {$EXTERNALSYM X509V3_F_V2I_POLICY_CONSTRAINTS}
  9510. X509V3_F_V2I_POLICY_CONSTRAINTS = 146;
  9511. {$EXTERNALSYM X509V3_F_V2I_POLICY_MAPPINGS}
  9512. X509V3_F_V2I_POLICY_MAPPINGS = 145;
  9513. {$EXTERNALSYM X509V3_F_V2I_SUBJECT_ALT}
  9514. X509V3_F_V2I_SUBJECT_ALT = 154;
  9515. {$EXTERNALSYM X509V3_F_V3_ADDR_VALIDATE_PATH_INTERNAL}
  9516. X509V3_F_V3_ADDR_VALIDATE_PATH_INTERNAL = 160;
  9517. {$EXTERNALSYM X509V3_F_V3_GENERIC_EXTENSION}
  9518. X509V3_F_V3_GENERIC_EXTENSION = 116;
  9519. {$EXTERNALSYM X509V3_F_X509V3_ADD1_I2D}
  9520. X509V3_F_X509V3_ADD1_I2D = 140;
  9521. {$EXTERNALSYM X509V3_F_X509V3_ADD_VALUE}
  9522. X509V3_F_X509V3_ADD_VALUE = 105;
  9523. {$EXTERNALSYM X509V3_F_X509V3_EXT_ADD}
  9524. X509V3_F_X509V3_EXT_ADD = 104;
  9525. {$EXTERNALSYM X509V3_F_X509V3_EXT_ADD_ALIAS}
  9526. X509V3_F_X509V3_EXT_ADD_ALIAS = 106;
  9527. {$EXTERNALSYM X509V3_F_X509V3_EXT_CONF}
  9528. X509V3_F_X509V3_EXT_CONF = 107;
  9529. {$EXTERNALSYM X509V3_F_X509V3_EXT_I2D}
  9530. X509V3_F_X509V3_EXT_I2D = 136;
  9531. {$EXTERNALSYM X509V3_F_X509V3_EXT_NCONF}
  9532. X509V3_F_X509V3_EXT_NCONF = 152;
  9533. {$EXTERNALSYM X509V3_F_X509V3_GET_SECTION}
  9534. X509V3_F_X509V3_GET_SECTION = 142;
  9535. {$EXTERNALSYM X509V3_F_X509V3_GET_STRING}
  9536. X509V3_F_X509V3_GET_STRING = 143;
  9537. {$EXTERNALSYM X509V3_F_X509V3_GET_VALUE_BOOL}
  9538. X509V3_F_X509V3_GET_VALUE_BOOL = 110;
  9539. {$EXTERNALSYM X509V3_F_X509V3_PARSE_LIST}
  9540. X509V3_F_X509V3_PARSE_LIST = 109;
  9541. {$EXTERNALSYM X509V3_F_X509_PURPOSE_ADD}
  9542. X509V3_F_X509_PURPOSE_ADD = 137;
  9543. {$EXTERNALSYM X509V3_F_X509_PURPOSE_SET}
  9544. X509V3_F_X509_PURPOSE_SET = 141;
  9545. //* Reason codes. */
  9546. {$EXTERNALSYM X509V3_R_BAD_IP_ADDRESS}
  9547. X509V3_R_BAD_IP_ADDRESS = 118;
  9548. {$EXTERNALSYM X509V3_R_BAD_OBJECT}
  9549. X509V3_R_BAD_OBJECT = 119;
  9550. {$EXTERNALSYM X509V3_R_BN_DEC2BN_ERROR}
  9551. X509V3_R_BN_DEC2BN_ERROR = 100;
  9552. {$EXTERNALSYM X509V3_R_BN_TO_ASN1_INTEGER_ERROR}
  9553. X509V3_R_BN_TO_ASN1_INTEGER_ERROR = 101;
  9554. {$EXTERNALSYM X509V3_R_DIRNAME_ERROR}
  9555. X509V3_R_DIRNAME_ERROR = 149;
  9556. {$EXTERNALSYM X509V3_R_DISTPOINT_ALREADY_SET}
  9557. X509V3_R_DISTPOINT_ALREADY_SET = 160;
  9558. {$EXTERNALSYM X509V3_R_DUPLICATE_ZONE_ID}
  9559. X509V3_R_DUPLICATE_ZONE_ID = 133;
  9560. {$EXTERNALSYM X509V3_R_ERROR_CONVERTING_ZONE}
  9561. X509V3_R_ERROR_CONVERTING_ZONE = 131;
  9562. {$EXTERNALSYM X509V3_R_ERROR_CREATING_EXTENSION}
  9563. X509V3_R_ERROR_CREATING_EXTENSION = 144;
  9564. {$EXTERNALSYM X509V3_R_ERROR_IN_EXTENSION}
  9565. X509V3_R_ERROR_IN_EXTENSION = 128;
  9566. {$EXTERNALSYM X509V3_R_EXPECTED_A_SECTION_NAME}
  9567. X509V3_R_EXPECTED_A_SECTION_NAME = 137;
  9568. {$EXTERNALSYM X509V3_R_EXTENSION_EXISTS}
  9569. X509V3_R_EXTENSION_EXISTS = 145;
  9570. {$EXTERNALSYM X509V3_R_EXTENSION_NAME_ERROR}
  9571. X509V3_R_EXTENSION_NAME_ERROR = 115;
  9572. {$EXTERNALSYM X509V3_R_EXTENSION_NOT_FOUND}
  9573. X509V3_R_EXTENSION_NOT_FOUND = 102;
  9574. {$EXTERNALSYM X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}
  9575. X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED = 103;
  9576. {$EXTERNALSYM X509V3_R_EXTENSION_VALUE_ERROR}
  9577. X509V3_R_EXTENSION_VALUE_ERROR = 116;
  9578. {$EXTERNALSYM X509V3_R_ILLEGAL_EMPTY_EXTENSION}
  9579. X509V3_R_ILLEGAL_EMPTY_EXTENSION = 151;
  9580. {$EXTERNALSYM X509V3_R_ILLEGAL_HEX_DIGIT}
  9581. X509V3_R_ILLEGAL_HEX_DIGIT = 113;
  9582. {$EXTERNALSYM X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}
  9583. X509V3_R_INCORRECT_POLICY_SYNTAX_TAG = 152;
  9584. {$EXTERNALSYM X509V3_R_INVALID_MULTIPLE_RDNS}
  9585. X509V3_R_INVALID_MULTIPLE_RDNS = 161;
  9586. {$EXTERNALSYM X509V3_R_INVALID_ASNUMBER}
  9587. X509V3_R_INVALID_ASNUMBER = 162;
  9588. {$EXTERNALSYM X509V3_R_INVALID_ASRANGE}
  9589. X509V3_R_INVALID_ASRANGE = 163;
  9590. {$EXTERNALSYM X509V3_R_INVALID_BOOLEAN_STRING}
  9591. X509V3_R_INVALID_BOOLEAN_STRING = 104;
  9592. {$EXTERNALSYM X509V3_R_INVALID_EXTENSION_STRING}
  9593. X509V3_R_INVALID_EXTENSION_STRING = 105;
  9594. {$EXTERNALSYM X509V3_R_INVALID_INHERITANCE}
  9595. X509V3_R_INVALID_INHERITANCE = 165;
  9596. {$EXTERNALSYM X509V3_R_INVALID_IPADDRESS}
  9597. X509V3_R_INVALID_IPADDRESS = 166;
  9598. {$EXTERNALSYM X509V3_R_INVALID_NAME}
  9599. X509V3_R_INVALID_NAME = 106;
  9600. {$EXTERNALSYM X509V3_R_INVALID_NULL_ARGUMENT}
  9601. X509V3_R_INVALID_NULL_ARGUMENT = 107;
  9602. {$EXTERNALSYM X509V3_R_INVALID_NULL_NAME}
  9603. X509V3_R_INVALID_NULL_NAME = 108;
  9604. {$EXTERNALSYM X509V3_R_INVALID_NULL_VALUE}
  9605. X509V3_R_INVALID_NULL_VALUE = 109;
  9606. {$EXTERNALSYM X509V3_R_INVALID_NUMBER}
  9607. X509V3_R_INVALID_NUMBER = 140;
  9608. {$EXTERNALSYM X509V3_R_INVALID_NUMBERS}
  9609. X509V3_R_INVALID_NUMBERS = 141;
  9610. {$EXTERNALSYM X509V3_R_INVALID_OBJECT_IDENTIFIER}
  9611. X509V3_R_INVALID_OBJECT_IDENTIFIER = 110;
  9612. {$EXTERNALSYM X509V3_R_INVALID_OPTION}
  9613. X509V3_R_INVALID_OPTION = 138;
  9614. {$EXTERNALSYM X509V3_R_INVALID_POLICY_IDENTIFIER}
  9615. X509V3_R_INVALID_POLICY_IDENTIFIER = 134;
  9616. {$EXTERNALSYM X509V3_R_INVALID_PROXY_POLICY_SETTING}
  9617. X509V3_R_INVALID_PROXY_POLICY_SETTING = 153;
  9618. {$EXTERNALSYM X509V3_R_INVALID_PURPOSE}
  9619. X509V3_R_INVALID_PURPOSE = 146;
  9620. {$EXTERNALSYM X509V3_R_INVALID_SAFI}
  9621. X509V3_R_INVALID_SAFI = 164;
  9622. {$EXTERNALSYM X509V3_R_INVALID_SECTION}
  9623. X509V3_R_INVALID_SECTION = 135;
  9624. {$EXTERNALSYM X509V3_R_INVALID_SYNTAX}
  9625. X509V3_R_INVALID_SYNTAX = 143;
  9626. {$EXTERNALSYM X509V3_R_ISSUER_DECODE_ERROR}
  9627. X509V3_R_ISSUER_DECODE_ERROR = 126;
  9628. {$EXTERNALSYM X509V3_R_MISSING_VALUE}
  9629. X509V3_R_MISSING_VALUE = 124;
  9630. {$EXTERNALSYM X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}
  9631. X509V3_R_NEED_ORGANIZATION_AND_NUMBERS = 142;
  9632. {$EXTERNALSYM X509V3_R_NO_CONFIG_DATABASE}
  9633. X509V3_R_NO_CONFIG_DATABASE = 136;
  9634. {$EXTERNALSYM X509V3_R_NO_ISSUER_CERTIFICATE}
  9635. X509V3_R_NO_ISSUER_CERTIFICATE = 121;
  9636. {$EXTERNALSYM X509V3_R_NO_ISSUER_DETAILS}
  9637. X509V3_R_NO_ISSUER_DETAILS = 127;
  9638. {$EXTERNALSYM X509V3_R_NO_POLICY_IDENTIFIER}
  9639. X509V3_R_NO_POLICY_IDENTIFIER = 139;
  9640. {$EXTERNALSYM X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}
  9641. X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED = 154;
  9642. {$EXTERNALSYM X509V3_R_NO_PUBLIC_KEY}
  9643. X509V3_R_NO_PUBLIC_KEY = 114;
  9644. {$EXTERNALSYM X509V3_R_NO_SUBJECT_DETAILS}
  9645. X509V3_R_NO_SUBJECT_DETAILS = 125;
  9646. {$EXTERNALSYM X509V3_R_ODD_NUMBER_OF_DIGITS}
  9647. X509V3_R_ODD_NUMBER_OF_DIGITS = 112;
  9648. {$EXTERNALSYM X509V3_R_OPERATION_NOT_DEFINED}
  9649. X509V3_R_OPERATION_NOT_DEFINED = 148;
  9650. {$EXTERNALSYM X509V3_R_OTHERNAME_ERROR}
  9651. X509V3_R_OTHERNAME_ERROR = 147;
  9652. {$EXTERNALSYM X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}
  9653. X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED = 155;
  9654. {$EXTERNALSYM X509V3_R_POLICY_PATH_LENGTH}
  9655. X509V3_R_POLICY_PATH_LENGTH = 156;
  9656. {$EXTERNALSYM X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}
  9657. X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED = 157;
  9658. {$EXTERNALSYM X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED}
  9659. X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED = 158;
  9660. {$EXTERNALSYM X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}
  9661. X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY = 159;
  9662. {$EXTERNALSYM X509V3_R_SECTION_NOT_FOUND}
  9663. X509V3_R_SECTION_NOT_FOUND = 150;
  9664. {$EXTERNALSYM X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}
  9665. X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS = 122;
  9666. {$EXTERNALSYM X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}
  9667. X509V3_R_UNABLE_TO_GET_ISSUER_KEYID = 123;
  9668. {$EXTERNALSYM X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}
  9669. X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT = 111;
  9670. {$EXTERNALSYM X509V3_R_UNKNOWN_EXTENSION}
  9671. X509V3_R_UNKNOWN_EXTENSION = 129;
  9672. {$EXTERNALSYM X509V3_R_UNKNOWN_EXTENSION_NAME}
  9673. X509V3_R_UNKNOWN_EXTENSION_NAME = 130;
  9674. {$EXTERNALSYM X509V3_R_UNKNOWN_OPTION}
  9675. X509V3_R_UNKNOWN_OPTION = 120;
  9676. {$EXTERNALSYM X509V3_R_UNSUPPORTED_OPTION}
  9677. X509V3_R_UNSUPPORTED_OPTION = 117;
  9678. {$EXTERNALSYM X509V3_R_UNSUPPORTED_TYPE}
  9679. X509V3_R_UNSUPPORTED_TYPE = 167;
  9680. {$EXTERNALSYM X509V3_R_USER_TOO_LONG}
  9681. X509V3_R_USER_TOO_LONG = 132;
  9682. //* Possible values for status. See ts_resp_print.c && ts_resp_verify.c. */
  9683. {$EXTERNALSYM TS_STATUS_GRANTED}
  9684. TS_STATUS_GRANTED = 0;
  9685. {$EXTERNALSYM TS_STATUS_GRANTED_WITH_MODS}
  9686. TS_STATUS_GRANTED_WITH_MODS = 1;
  9687. {$EXTERNALSYM TS_STATUS_REJECTION}
  9688. TS_STATUS_REJECTION = 2;
  9689. {$EXTERNALSYM TS_STATUS_WAITING}
  9690. TS_STATUS_WAITING = 3;
  9691. {$EXTERNALSYM TS_STATUS_REVOCATION_WARNING}
  9692. TS_STATUS_REVOCATION_WARNING = 4;
  9693. {$EXTERNALSYM TS_STATUS_REVOCATION_NOTIFICATION}
  9694. TS_STATUS_REVOCATION_NOTIFICATION = 5;
  9695. //* Possible values for failure_info. See ts_resp_print.c && ts_resp_verify.c */
  9696. {$EXTERNALSYM TS_INFO_BAD_ALG}
  9697. TS_INFO_BAD_ALG = 0;
  9698. {$EXTERNALSYM TS_INFO_BAD_REQUEST}
  9699. TS_INFO_BAD_REQUEST = 2;
  9700. {$EXTERNALSYM TS_INFO_BAD_DATA_FORMAT}
  9701. TS_INFO_BAD_DATA_FORMAT = 5;
  9702. {$EXTERNALSYM TS_INFO_TIME_NOT_AVAILABLE}
  9703. TS_INFO_TIME_NOT_AVAILABLE = 14;
  9704. {$EXTERNALSYM TS_INFO_UNACCEPTED_POLICY}
  9705. TS_INFO_UNACCEPTED_POLICY = 15;
  9706. {$EXTERNALSYM TS_INFO_UNACCEPTED_EXTENSION}
  9707. TS_INFO_UNACCEPTED_EXTENSION = 16;
  9708. {$EXTERNALSYM TS_INFO_ADD_INFO_NOT_AVAILABLE}
  9709. TS_INFO_ADD_INFO_NOT_AVAILABLE = 17;
  9710. {$EXTERNALSYM TS_INFO_SYSTEM_FAILURE}
  9711. TS_INFO_SYSTEM_FAILURE = 25;
  9712. //* Declarations related to response generation, defined in ts/ts_resp_sign.c. */
  9713. //* Optional flags for response generation. */
  9714. //* Don't include the TSA name in response. */
  9715. {$EXTERNALSYM TS_TSA_NAME}
  9716. TS_TSA_NAME = $01;
  9717. //* Set ordering to true in response. */
  9718. {$EXTERNALSYM TS_ORDERING}
  9719. TS_ORDERING = $02;
  9720. ///*
  9721. // * Include the signer certificate and the other specified certificates in
  9722. // * the ESS signing certificate attribute beside the PKCS7 signed data.
  9723. // * Only the signer certificates is included by default.
  9724. // */
  9725. {$EXTERNALSYM TS_ESS_CERT_ID_CHAIN}
  9726. TS_ESS_CERT_ID_CHAIN = $04;
  9727. //* At most we accept usec precision. */
  9728. {$EXTERNALSYM TS_MAX_CLOCK_PRECISION_DIGITS}
  9729. TS_MAX_CLOCK_PRECISION_DIGITS = 6;
  9730. //* Context structure for the generic verify method. */
  9731. //* Verify the signer's certificate and the signature of the response. */
  9732. {$EXTERNALSYM TS_VFY_SIGNATURE}
  9733. TS_VFY_SIGNATURE = TIdC_ULONG(1 shl 0);
  9734. //* Verify the version number of the response. */
  9735. {$EXTERNALSYM TS_VFY_VERSION}
  9736. TS_VFY_VERSION = TIdC_ULONG(1 shl 1);
  9737. ///* Verify if the policy supplied by the user matches the policy of the TSA. */
  9738. {$EXTERNALSYM TS_VFY_POLICY}
  9739. TS_VFY_POLICY = TIdC_ULONG(1 shl 2);
  9740. ///* Verify the message imprint provided by the user. This flag should not be
  9741. // specified with TS_VFY_DATA. */
  9742. {$EXTERNALSYM TS_VFY_IMPRINT}
  9743. TS_VFY_IMPRINT = TIdC_ULONG(1 shl 3);
  9744. ///* Verify the message imprint computed by the verify method from the user
  9745. // provided data and the MD algorithm of the response. This flag should not be
  9746. // specified with TS_VFY_IMPRINT. */
  9747. {$EXTERNALSYM TS_VFY_DATA}
  9748. TS_VFY_DATA = TIdC_ULONG(1 shl 4);
  9749. //* Verify the nonce value. */
  9750. {$EXTERNALSYM TS_VFY_NONCE}
  9751. TS_VFY_NONCE = TIdC_ULONG(1 shl 5);
  9752. //* Verify if the TSA name field matches the signer certificate. */
  9753. {$EXTERNALSYM TS_VFY_SIGNER}
  9754. TS_VFY_SIGNER = TIdC_ULONG(1 shl 6);
  9755. //* Verify if the TSA name field equals to the user provided name. */
  9756. {$EXTERNALSYM TS_VFY_TSA_NAME}
  9757. TS_VFY_TSA_NAME = TIdC_ULONG(1 shl 7);
  9758. //* You can use the following convenience constants. */
  9759. {$EXTERNALSYM TS_VFY_ALL_IMPRINT}
  9760. TS_VFY_ALL_IMPRINT = (TS_VFY_SIGNATURE
  9761. or TS_VFY_VERSION
  9762. or TS_VFY_POLICY
  9763. or TS_VFY_IMPRINT
  9764. or TS_VFY_NONCE
  9765. or TS_VFY_SIGNER
  9766. or TS_VFY_TSA_NAME);
  9767. {$EXTERNALSYM TS_VFY_ALL_DATA}
  9768. TS_VFY_ALL_DATA = (TS_VFY_SIGNATURE
  9769. or TS_VFY_VERSION
  9770. or TS_VFY_POLICY
  9771. or TS_VFY_DATA
  9772. or TS_VFY_NONCE
  9773. or TS_VFY_SIGNER
  9774. or TS_VFY_TSA_NAME);
  9775. //* Error codes for the TS functions. */
  9776. //* Function codes. */
  9777. {$EXTERNALSYM TS_F_D2I_TS_RESP}
  9778. TS_F_D2I_TS_RESP = 147;
  9779. {$EXTERNALSYM TS_F_DEF_SERIAL_CB}
  9780. TS_F_DEF_SERIAL_CB = 110;
  9781. {$EXTERNALSYM TS_F_DEF_TIME_CB}
  9782. TS_F_DEF_TIME_CB = 111;
  9783. {$EXTERNALSYM TS_F_ESS_ADD_SIGNING_CERT}
  9784. TS_F_ESS_ADD_SIGNING_CERT = 112;
  9785. {$EXTERNALSYM TS_F_ESS_CERT_ID_NEW_INIT}
  9786. TS_F_ESS_CERT_ID_NEW_INIT = 113;
  9787. {$EXTERNALSYM TS_F_ESS_SIGNING_CERT_NEW_INIT}
  9788. TS_F_ESS_SIGNING_CERT_NEW_INIT = 114;
  9789. {$EXTERNALSYM TS_F_INT_TS_RESP_VERIFY_TOKEN}
  9790. TS_F_INT_TS_RESP_VERIFY_TOKEN = 149;
  9791. {$EXTERNALSYM TS_F_PKCS7_TO_TS_TST_INFO}
  9792. TS_F_PKCS7_TO_TS_TST_INFO = 148;
  9793. {$EXTERNALSYM TS_F_TS_ACCURACY_SET_MICROS}
  9794. TS_F_TS_ACCURACY_SET_MICROS = 115;
  9795. {$EXTERNALSYM TS_F_TS_ACCURACY_SET_MILLIS}
  9796. TS_F_TS_ACCURACY_SET_MILLIS = 116;
  9797. {$EXTERNALSYM TS_F_TS_ACCURACY_SET_SECONDS}
  9798. TS_F_TS_ACCURACY_SET_SECONDS = 117;
  9799. {$EXTERNALSYM TS_F_TS_CHECK_IMPRINTS}
  9800. TS_F_TS_CHECK_IMPRINTS = 100;
  9801. {$EXTERNALSYM TS_F_TS_CHECK_NONCES}
  9802. TS_F_TS_CHECK_NONCES = 101;
  9803. {$EXTERNALSYM TS_F_TS_CHECK_POLICY}
  9804. TS_F_TS_CHECK_POLICY = 102;
  9805. {$EXTERNALSYM TS_F_TS_CHECK_SIGNING_CERTS}
  9806. TS_F_TS_CHECK_SIGNING_CERTS = 103;
  9807. {$EXTERNALSYM TS_F_TS_CHECK_STATUS_INFO}
  9808. TS_F_TS_CHECK_STATUS_INFO = 104;
  9809. {$EXTERNALSYM TS_F_TS_COMPUTE_IMPRINT}
  9810. TS_F_TS_COMPUTE_IMPRINT = 145;
  9811. {$EXTERNALSYM TS_F_TS_CONF_SET_DEFAULT_ENGINE}
  9812. TS_F_TS_CONF_SET_DEFAULT_ENGINE = 146;
  9813. {$EXTERNALSYM TS_F_TS_GET_STATUS_TEXT}
  9814. TS_F_TS_GET_STATUS_TEXT = 105;
  9815. {$EXTERNALSYM TS_F_TS_MSG_IMPRINT_SET_ALGO}
  9816. TS_F_TS_MSG_IMPRINT_SET_ALGO = 118;
  9817. {$EXTERNALSYM TS_F_TS_REQ_SET_MSG_IMPRINT}
  9818. TS_F_TS_REQ_SET_MSG_IMPRINT = 119;
  9819. {$EXTERNALSYM TS_F_TS_REQ_SET_NONCE}
  9820. TS_F_TS_REQ_SET_NONCE = 120;
  9821. {$EXTERNALSYM TS_F_TS_REQ_SET_POLICY_ID}
  9822. TS_F_TS_REQ_SET_POLICY_ID = 121;
  9823. {$EXTERNALSYM TS_F_TS_RESP_CREATE_RESPONSE}
  9824. TS_F_TS_RESP_CREATE_RESPONSE = 122;
  9825. {$EXTERNALSYM TS_F_TS_RESP_CREATE_TST_INFO}
  9826. TS_F_TS_RESP_CREATE_TST_INFO = 123;
  9827. {$EXTERNALSYM TS_F_TS_RESP_CTX_ADD_FAILURE_INFO}
  9828. TS_F_TS_RESP_CTX_ADD_FAILURE_INFO = 124;
  9829. {$EXTERNALSYM TS_F_TS_RESP_CTX_ADD_MD}
  9830. TS_F_TS_RESP_CTX_ADD_MD = 125;
  9831. {$EXTERNALSYM TS_F_TS_RESP_CTX_ADD_POLICY}
  9832. TS_F_TS_RESP_CTX_ADD_POLICY = 126;
  9833. {$EXTERNALSYM TS_F_TS_RESP_CTX_NEW}
  9834. TS_F_TS_RESP_CTX_NEW = 127;
  9835. {$EXTERNALSYM TS_F_TS_RESP_CTX_SET_ACCURACY}
  9836. TS_F_TS_RESP_CTX_SET_ACCURACY = 128;
  9837. {$EXTERNALSYM TS_F_TS_RESP_CTX_SET_CERTS}
  9838. TS_F_TS_RESP_CTX_SET_CERTS = 129;
  9839. {$EXTERNALSYM TS_F_TS_RESP_CTX_SET_DEF_POLICY}
  9840. TS_F_TS_RESP_CTX_SET_DEF_POLICY = 130;
  9841. {$EXTERNALSYM TS_F_TS_RESP_CTX_SET_SIGNER_CERT}
  9842. TS_F_TS_RESP_CTX_SET_SIGNER_CERT = 131;
  9843. {$EXTERNALSYM TS_F_TS_RESP_CTX_SET_STATUS_INFO}
  9844. TS_F_TS_RESP_CTX_SET_STATUS_INFO = 132;
  9845. {$EXTERNALSYM TS_F_TS_RESP_GET_POLICY}
  9846. TS_F_TS_RESP_GET_POLICY = 133;
  9847. {$EXTERNALSYM TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION}
  9848. TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION = 134;
  9849. {$EXTERNALSYM TS_F_TS_RESP_SET_STATUS_INFO}
  9850. TS_F_TS_RESP_SET_STATUS_INFO = 135;
  9851. {$EXTERNALSYM TS_F_TS_RESP_SET_TST_INFO}
  9852. TS_F_TS_RESP_SET_TST_INFO = 150;
  9853. {$EXTERNALSYM TS_F_TS_RESP_SIGN}
  9854. TS_F_TS_RESP_SIGN = 136;
  9855. {$EXTERNALSYM TS_F_TS_RESP_VERIFY_SIGNATURE}
  9856. TS_F_TS_RESP_VERIFY_SIGNATURE = 106;
  9857. {$EXTERNALSYM TS_F_TS_RESP_VERIFY_TOKEN}
  9858. TS_F_TS_RESP_VERIFY_TOKEN = 107;
  9859. {$EXTERNALSYM TS_F_TS_TST_INFO_SET_ACCURACY}
  9860. TS_F_TS_TST_INFO_SET_ACCURACY = 137;
  9861. {$EXTERNALSYM TS_F_TS_TST_INFO_SET_MSG_IMPRINT}
  9862. TS_F_TS_TST_INFO_SET_MSG_IMPRINT = 138;
  9863. {$EXTERNALSYM TS_F_TS_TST_INFO_SET_NONCE}
  9864. TS_F_TS_TST_INFO_SET_NONCE = 139;
  9865. {$EXTERNALSYM TS_F_TS_TST_INFO_SET_POLICY_ID}
  9866. TS_F_TS_TST_INFO_SET_POLICY_ID = 140;
  9867. {$EXTERNALSYM TS_F_TS_TST_INFO_SET_SERIAL}
  9868. TS_F_TS_TST_INFO_SET_SERIAL = 141;
  9869. {$EXTERNALSYM TS_F_TS_TST_INFO_SET_TIME}
  9870. TS_F_TS_TST_INFO_SET_TIME = 142;
  9871. {$EXTERNALSYM TS_F_TS_TST_INFO_SET_TSA}
  9872. TS_F_TS_TST_INFO_SET_TSA = 143;
  9873. {$EXTERNALSYM TS_F_TS_VERIFY}
  9874. TS_F_TS_VERIFY = 108;
  9875. {$EXTERNALSYM TS_F_TS_VERIFY_CERT}
  9876. TS_F_TS_VERIFY_CERT = 109;
  9877. {$EXTERNALSYM TS_F_TS_VERIFY_CTX_NEW}
  9878. TS_F_TS_VERIFY_CTX_NEW = 144;
  9879. //* Reason codes. */
  9880. {$EXTERNALSYM TS_R_BAD_PKCS7_TYPE}
  9881. TS_R_BAD_PKCS7_TYPE = 132;
  9882. {$EXTERNALSYM TS_R_BAD_TYPE}
  9883. TS_R_BAD_TYPE = 133;
  9884. {$EXTERNALSYM TS_R_CERTIFICATE_VERIFY_ERROR}
  9885. TS_R_CERTIFICATE_VERIFY_ERROR = 100;
  9886. {$EXTERNALSYM TS_R_COULD_NOT_SET_ENGINE}
  9887. TS_R_COULD_NOT_SET_ENGINE = 127;
  9888. {$EXTERNALSYM TS_R_COULD_NOT_SET_TIME}
  9889. TS_R_COULD_NOT_SET_TIME = 115;
  9890. {$EXTERNALSYM TS_R_D2I_TS_RESP_INT_FAILED}
  9891. TS_R_D2I_TS_RESP_INT_FAILED = 128;
  9892. {$EXTERNALSYM TS_R_DETACHED_CONTENT}
  9893. TS_R_DETACHED_CONTENT = 134;
  9894. {$EXTERNALSYM TS_R_ESS_ADD_SIGNING_CERT_ERROR}
  9895. TS_R_ESS_ADD_SIGNING_CERT_ERROR = 116;
  9896. {$EXTERNALSYM TS_R_ESS_SIGNING_CERTIFICATE_ERROR}
  9897. TS_R_ESS_SIGNING_CERTIFICATE_ERROR = 101;
  9898. {$EXTERNALSYM TS_R_INVALID_NULL_POINTER}
  9899. TS_R_INVALID_NULL_POINTER = 102;
  9900. {$EXTERNALSYM TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}
  9901. TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE = 117;
  9902. {$EXTERNALSYM TS_R_MESSAGE_IMPRINT_MISMATCH}
  9903. TS_R_MESSAGE_IMPRINT_MISMATCH = 103;
  9904. {$EXTERNALSYM TS_R_NONCE_MISMATCH}
  9905. TS_R_NONCE_MISMATCH = 104;
  9906. {$EXTERNALSYM TS_R_NONCE_NOT_RETURNED}
  9907. TS_R_NONCE_NOT_RETURNED = 105;
  9908. {$EXTERNALSYM TS_R_NO_CONTENT}
  9909. TS_R_NO_CONTENT = 106;
  9910. {$EXTERNALSYM TS_R_NO_TIME_STAMP_TOKEN}
  9911. TS_R_NO_TIME_STAMP_TOKEN = 107;
  9912. {$EXTERNALSYM TS_R_PKCS7_ADD_SIGNATURE_ERROR}
  9913. TS_R_PKCS7_ADD_SIGNATURE_ERROR = 118;
  9914. {$EXTERNALSYM TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}
  9915. TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR = 119;
  9916. {$EXTERNALSYM TS_R_PKCS7_TO_TS_TST_INFO_FAILED}
  9917. TS_R_PKCS7_TO_TS_TST_INFO_FAILED = 129;
  9918. {$EXTERNALSYM TS_R_POLICY_MISMATCH}
  9919. TS_R_POLICY_MISMATCH = 108;
  9920. {$EXTERNALSYM TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}
  9921. TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE = 120;
  9922. {$EXTERNALSYM TS_R_RESPONSE_SETUP_ERROR}
  9923. TS_R_RESPONSE_SETUP_ERROR = 121;
  9924. {$EXTERNALSYM TS_R_SIGNATURE_FAILURE}
  9925. TS_R_SIGNATURE_FAILURE = 109;
  9926. {$EXTERNALSYM TS_R_THERE_MUST_BE_ONE_SIGNER}
  9927. TS_R_THERE_MUST_BE_ONE_SIGNER = 110;
  9928. {$EXTERNALSYM TS_R_TIME_SYSCALL_ERROR}
  9929. TS_R_TIME_SYSCALL_ERROR = 122;
  9930. {$EXTERNALSYM TS_R_TOKEN_NOT_PRESENT}
  9931. TS_R_TOKEN_NOT_PRESENT = 130;
  9932. {$EXTERNALSYM TS_R_TOKEN_PRESENT}
  9933. TS_R_TOKEN_PRESENT = 131;
  9934. {$EXTERNALSYM TS_R_TSA_NAME_MISMATCH}
  9935. TS_R_TSA_NAME_MISMATCH = 111;
  9936. {$EXTERNALSYM TS_R_TSA_UNTRUSTED}
  9937. TS_R_TSA_UNTRUSTED = 112;
  9938. {$EXTERNALSYM TS_R_TST_INFO_SETUP_ERROR}
  9939. TS_R_TST_INFO_SETUP_ERROR = 123;
  9940. {$EXTERNALSYM TS_R_TS_DATASIGN}
  9941. TS_R_TS_DATASIGN = 124;
  9942. {$EXTERNALSYM TS_R_UNACCEPTABLE_POLICY}
  9943. TS_R_UNACCEPTABLE_POLICY = 125;
  9944. {$EXTERNALSYM TS_R_UNSUPPORTED_MD_ALGORITHM}
  9945. TS_R_UNSUPPORTED_MD_ALGORITHM = 126;
  9946. {$EXTERNALSYM TS_R_UNSUPPORTED_VERSION}
  9947. TS_R_UNSUPPORTED_VERSION = 113;
  9948. {$EXTERNALSYM TS_R_WRONG_CONTENT_TYPE}
  9949. TS_R_WRONG_CONTENT_TYPE = 114;
  9950. {$UNDEF OPENSSL_NO_CMS}
  9951. {$IFNDEF OPENSSL_NO_CMS}
  9952. {$EXTERNALSYM CMS_SIGNERINFO_ISSUER_SERIAL}
  9953. CMS_SIGNERINFO_ISSUER_SERIAL = 0;
  9954. {$EXTERNALSYM CMS_SIGNERINFO_KEYIDENTIFIER}
  9955. CMS_SIGNERINFO_KEYIDENTIFIER = 1;
  9956. {$EXTERNALSYM CMS_RECIPINFO_TRANS}
  9957. CMS_RECIPINFO_TRANS = 0;
  9958. {$EXTERNALSYM CMS_RECIPINFO_AGREE}
  9959. CMS_RECIPINFO_AGREE = 1;
  9960. {$EXTERNALSYM CMS_RECIPINFO_KEK}
  9961. CMS_RECIPINFO_KEK = 2;
  9962. {$EXTERNALSYM CMS_RECIPINFO_PASS}
  9963. CMS_RECIPINFO_PASS = 3;
  9964. {$EXTERNALSYM CMS_RECIPINFO_OTHER}
  9965. CMS_RECIPINFO_OTHER = 4;
  9966. //* S/MIME related flags */
  9967. {$EXTERNALSYM CMS_TEXT}
  9968. CMS_TEXT = $1;
  9969. {$EXTERNALSYM CMS_NOCERTS}
  9970. CMS_NOCERTS = $2;
  9971. {$EXTERNALSYM CMS_NO_CONTENT_VERIFY}
  9972. CMS_NO_CONTENT_VERIFY = $4;
  9973. {$EXTERNALSYM CMS_NO_ATTR_VERIFY}
  9974. CMS_NO_ATTR_VERIFY = $8;
  9975. {$EXTERNALSYM CMS_NOSIGS}
  9976. CMS_NOSIGS = (CMS_NO_CONTENT_VERIFY or CMS_NO_ATTR_VERIFY);
  9977. {$EXTERNALSYM CMS_NOINTERN}
  9978. CMS_NOINTERN = $10;
  9979. {$EXTERNALSYM CMS_NO_SIGNER_CERT_VERIFY}
  9980. CMS_NO_SIGNER_CERT_VERIFY = $20;
  9981. {$EXTERNALSYM CMS_NOVERIFY}
  9982. CMS_NOVERIFY = $20;
  9983. {$EXTERNALSYM CMS_DETACHED}
  9984. CMS_DETACHED = $40;
  9985. {$EXTERNALSYM CMS_BINARY}
  9986. CMS_BINARY = $80;
  9987. {$EXTERNALSYM CMS_NOATTR}
  9988. CMS_NOATTR = $100;
  9989. {$EXTERNALSYM CMS_NOSMIMECAP}
  9990. CMS_NOSMIMECAP = $200;
  9991. {$EXTERNALSYM CMS_NOOLDMIMETYPE}
  9992. CMS_NOOLDMIMETYPE = $400;
  9993. {$EXTERNALSYM CMS_CRLFEOL}
  9994. CMS_CRLFEOL = $800;
  9995. {$EXTERNALSYM CMS_STREAM}
  9996. CMS_STREAM = $1000;
  9997. {$EXTERNALSYM CMS_NOCRL}
  9998. CMS_NOCRL = $2000;
  9999. {$EXTERNALSYM CMS_PARTIAL}
  10000. CMS_PARTIAL = $4000;
  10001. {$EXTERNALSYM CMS_REUSE_DIGEST}
  10002. CMS_REUSE_DIGEST = $8000;
  10003. {$EXTERNALSYM CMS_USE_KEYID}
  10004. CMS_USE_KEYID = $10000;
  10005. //* Error codes for the CMS functions. */
  10006. //* Function codes. */
  10007. {$EXTERNALSYM CMS_F_CHECK_CONTENT}
  10008. CMS_F_CHECK_CONTENT = 99;
  10009. {$EXTERNALSYM CMS_F_CMS_ADD0_CERT}
  10010. CMS_F_CMS_ADD0_CERT = 164;
  10011. {$EXTERNALSYM CMS_F_CMS_ADD0_RECIPIENT_KEY}
  10012. CMS_F_CMS_ADD0_RECIPIENT_KEY = 100;
  10013. {$EXTERNALSYM CMS_F_CMS_ADD1_RECEIPTREQUEST}
  10014. CMS_F_CMS_ADD1_RECEIPTREQUEST = 158;
  10015. {$EXTERNALSYM CMS_F_CMS_ADD1_RECIPIENT_CERT}
  10016. CMS_F_CMS_ADD1_RECIPIENT_CERT = 101;
  10017. {$EXTERNALSYM CMS_F_CMS_ADD1_SIGNER}
  10018. CMS_F_CMS_ADD1_SIGNER = 102;
  10019. {$EXTERNALSYM CMS_F_CMS_ADD1_SIGNINGTIME}
  10020. CMS_F_CMS_ADD1_SIGNINGTIME = 103;
  10021. {$EXTERNALSYM CMS_F_CMS_COMPRESS}
  10022. CMS_F_CMS_COMPRESS = 104;
  10023. {$EXTERNALSYM CMS_F_CMS_COMPRESSEDDATA_CREATE}
  10024. CMS_F_CMS_COMPRESSEDDATA_CREATE = 105;
  10025. {$EXTERNALSYM CMS_F_CMS_COMPRESSEDDATA_INIT_BIO}
  10026. CMS_F_CMS_COMPRESSEDDATA_INIT_BIO = 106;
  10027. {$EXTERNALSYM CMS_F_CMS_COPY_CONTENT}
  10028. CMS_F_CMS_COPY_CONTENT = 107;
  10029. {$EXTERNALSYM CMS_F_CMS_COPY_MESSAGEDIGEST}
  10030. CMS_F_CMS_COPY_MESSAGEDIGEST = 108;
  10031. {$EXTERNALSYM CMS_F_CMS_DATA}
  10032. CMS_F_CMS_DATA = 109;
  10033. {$EXTERNALSYM CMS_F_CMS_DATAFINAL}
  10034. CMS_F_CMS_DATAFINAL = 110;
  10035. {$EXTERNALSYM CMS_F_CMS_DATAINIT}
  10036. CMS_F_CMS_DATAINIT = 111;
  10037. {$EXTERNALSYM CMS_F_CMS_DECRYPT}
  10038. CMS_F_CMS_DECRYPT = 112;
  10039. {$EXTERNALSYM CMS_F_CMS_DECRYPT_SET1_KEY}
  10040. CMS_F_CMS_DECRYPT_SET1_KEY = 113;
  10041. {$EXTERNALSYM CMS_F_CMS_DECRYPT_SET1_PKEY}
  10042. CMS_F_CMS_DECRYPT_SET1_PKEY = 114;
  10043. {$EXTERNALSYM CMS_F_CMS_DIGESTALGORITHM_FIND_CTX}
  10044. CMS_F_CMS_DIGESTALGORITHM_FIND_CTX = 115;
  10045. {$EXTERNALSYM CMS_F_CMS_DIGESTALGORITHM_INIT_BIO}
  10046. CMS_F_CMS_DIGESTALGORITHM_INIT_BIO = 116;
  10047. {$EXTERNALSYM CMS_F_CMS_DIGESTEDDATA_DO_FINAL}
  10048. CMS_F_CMS_DIGESTEDDATA_DO_FINAL = 117;
  10049. {$EXTERNALSYM CMS_F_CMS_DIGEST_VERIFY}
  10050. CMS_F_CMS_DIGEST_VERIFY = 118;
  10051. {$EXTERNALSYM CMS_F_CMS_ENCODE_RECEIPT}
  10052. CMS_F_CMS_ENCODE_RECEIPT = 161;
  10053. {$EXTERNALSYM CMS_F_CMS_ENCRYPT}
  10054. CMS_F_CMS_ENCRYPT = 119;
  10055. {$EXTERNALSYM CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO}
  10056. CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO = 120;
  10057. {$EXTERNALSYM CMS_F_CMS_ENCRYPTEDDATA_DECRYPT}
  10058. CMS_F_CMS_ENCRYPTEDDATA_DECRYPT = 121;
  10059. {$EXTERNALSYM CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT}
  10060. CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT = 122;
  10061. {$EXTERNALSYM CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY}
  10062. CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY = 123;
  10063. {$EXTERNALSYM CMS_F_CMS_ENVELOPEDDATA_CREATE}
  10064. CMS_F_CMS_ENVELOPEDDATA_CREATE = 124;
  10065. {$EXTERNALSYM CMS_F_CMS_ENVELOPEDDATA_INIT_BIO}
  10066. CMS_F_CMS_ENVELOPEDDATA_INIT_BIO = 125;
  10067. {$EXTERNALSYM CMS_F_CMS_ENVELOPED_DATA_INIT}
  10068. CMS_F_CMS_ENVELOPED_DATA_INIT = 126;
  10069. {$EXTERNALSYM CMS_F_CMS_FINAL}
  10070. CMS_F_CMS_FINAL = 127;
  10071. {$EXTERNALSYM CMS_F_CMS_GET0_CERTIFICATE_CHOICES}
  10072. CMS_F_CMS_GET0_CERTIFICATE_CHOICES = 128;
  10073. {$EXTERNALSYM CMS_F_CMS_GET0_CONTENT}
  10074. CMS_F_CMS_GET0_CONTENT = 129;
  10075. {$EXTERNALSYM CMS_F_CMS_GET0_ECONTENT_TYPE}
  10076. CMS_F_CMS_GET0_ECONTENT_TYPE = 130;
  10077. {$EXTERNALSYM CMS_F_CMS_GET0_ENVELOPED}
  10078. CMS_F_CMS_GET0_ENVELOPED = 131;
  10079. {$EXTERNALSYM CMS_F_CMS_GET0_REVOCATION_CHOICES}
  10080. CMS_F_CMS_GET0_REVOCATION_CHOICES = 132;
  10081. {$EXTERNALSYM CMS_F_CMS_GET0_SIGNED}
  10082. CMS_F_CMS_GET0_SIGNED = 133;
  10083. {$EXTERNALSYM CMS_F_CMS_MSGSIGDIGEST_ADD1}
  10084. CMS_F_CMS_MSGSIGDIGEST_ADD1 = 162;
  10085. {$EXTERNALSYM CMS_F_CMS_RECEIPTREQUEST_CREATE0}
  10086. CMS_F_CMS_RECEIPTREQUEST_CREATE0 = 159;
  10087. {$EXTERNALSYM CMS_F_CMS_RECEIPT_VERIFY}
  10088. CMS_F_CMS_RECEIPT_VERIFY = 160;
  10089. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_DECRYPT}
  10090. CMS_F_CMS_RECIPIENTINFO_DECRYPT = 134;
  10091. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT}
  10092. CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT = 135;
  10093. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT}
  10094. CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT = 136;
  10095. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID}
  10096. CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID = 137;
  10097. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP}
  10098. CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP = 138;
  10099. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP}
  10100. CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP = 139;
  10101. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT}
  10102. CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT = 140;
  10103. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT}
  10104. CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT = 141;
  10105. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS}
  10106. CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS = 142;
  10107. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID}
  10108. CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID = 143;
  10109. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_SET0_KEY}
  10110. CMS_F_CMS_RECIPIENTINFO_SET0_KEY = 144;
  10111. {$EXTERNALSYM CMS_F_CMS_RECIPIENTINFO_SET0_PKEY}
  10112. CMS_F_CMS_RECIPIENTINFO_SET0_PKEY = 145;
  10113. {$EXTERNALSYM CMS_F_CMS_SET1_SIGNERIDENTIFIER}
  10114. CMS_F_CMS_SET1_SIGNERIDENTIFIER = 146;
  10115. {$EXTERNALSYM CMS_F_CMS_SET_DETACHED}
  10116. CMS_F_CMS_SET_DETACHED = 147;
  10117. {$EXTERNALSYM CMS_F_CMS_SIGN}
  10118. CMS_F_CMS_SIGN = 148;
  10119. {$EXTERNALSYM CMS_F_CMS_SIGNED_DATA_INIT}
  10120. CMS_F_CMS_SIGNED_DATA_INIT = 149;
  10121. {$EXTERNALSYM CMS_F_CMS_SIGNERINFO_CONTENT_SIGN}
  10122. CMS_F_CMS_SIGNERINFO_CONTENT_SIGN = 150;
  10123. {$EXTERNALSYM CMS_F_CMS_SIGNERINFO_SIGN}
  10124. CMS_F_CMS_SIGNERINFO_SIGN = 151;
  10125. {$EXTERNALSYM CMS_F_CMS_SIGNERINFO_VERIFY}
  10126. CMS_F_CMS_SIGNERINFO_VERIFY = 152;
  10127. {$EXTERNALSYM CMS_F_CMS_SIGNERINFO_VERIFY_CERT}
  10128. CMS_F_CMS_SIGNERINFO_VERIFY_CERT = 153;
  10129. {$EXTERNALSYM CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT}
  10130. CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT = 154;
  10131. {$EXTERNALSYM CMS_F_CMS_SIGN_RECEIPT}
  10132. CMS_F_CMS_SIGN_RECEIPT = 163;
  10133. {$EXTERNALSYM CMS_F_CMS_STREAM}
  10134. CMS_F_CMS_STREAM = 155;
  10135. {$EXTERNALSYM CMS_F_CMS_UNCOMPRESS}
  10136. CMS_F_CMS_UNCOMPRESS = 156;
  10137. {$EXTERNALSYM CMS_F_CMS_VERIFY}
  10138. CMS_F_CMS_VERIFY = 157;
  10139. //* Reason codes. */
  10140. {$EXTERNALSYM CMS_R_ADD_SIGNER_ERROR}
  10141. CMS_R_ADD_SIGNER_ERROR = 99;
  10142. {$EXTERNALSYM CMS_R_CERTIFICATE_ALREADY_PRESENT}
  10143. CMS_R_CERTIFICATE_ALREADY_PRESENT = 175;
  10144. {$EXTERNALSYM CMS_R_CERTIFICATE_HAS_NO_KEYID}
  10145. CMS_R_CERTIFICATE_HAS_NO_KEYID = 160;
  10146. {$EXTERNALSYM CMS_R_CERTIFICATE_VERIFY_ERROR}
  10147. CMS_R_CERTIFICATE_VERIFY_ERROR = 100;
  10148. {$EXTERNALSYM CMS_R_CIPHER_INITIALISATION_ERROR}
  10149. CMS_R_CIPHER_INITIALISATION_ERROR = 101;
  10150. {$EXTERNALSYM CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}
  10151. CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR = 102;
  10152. {$EXTERNALSYM CMS_R_CMS_DATAFINAL_ERROR}
  10153. CMS_R_CMS_DATAFINAL_ERROR = 103;
  10154. {$EXTERNALSYM CMS_R_CMS_LIB}
  10155. CMS_R_CMS_LIB = 104;
  10156. {$EXTERNALSYM CMS_R_CONTENTIDENTIFIER_MISMATCH}
  10157. CMS_R_CONTENTIDENTIFIER_MISMATCH = 170;
  10158. {$EXTERNALSYM CMS_R_CONTENT_NOT_FOUND}
  10159. CMS_R_CONTENT_NOT_FOUND = 105;
  10160. {$EXTERNALSYM CMS_R_CONTENT_TYPE_MISMATCH}
  10161. CMS_R_CONTENT_TYPE_MISMATCH = 171;
  10162. {$EXTERNALSYM CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}
  10163. CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA = 106;
  10164. {$EXTERNALSYM CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}
  10165. CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA = 107;
  10166. {$EXTERNALSYM CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}
  10167. CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA = 108;
  10168. {$EXTERNALSYM CMS_R_CONTENT_VERIFY_ERROR}
  10169. CMS_R_CONTENT_VERIFY_ERROR = 109;
  10170. {$EXTERNALSYM CMS_R_CTRL_ERROR}
  10171. CMS_R_CTRL_ERROR = 110;
  10172. {$EXTERNALSYM CMS_R_CTRL_FAILURE}
  10173. CMS_R_CTRL_FAILURE = 111;
  10174. {$EXTERNALSYM CMS_R_DECRYPT_ERROR}
  10175. CMS_R_DECRYPT_ERROR = 112;
  10176. {$EXTERNALSYM CMS_R_DIGEST_ERROR}
  10177. CMS_R_DIGEST_ERROR = 161;
  10178. {$EXTERNALSYM CMS_R_ERROR_GETTING_PUBLIC_KEY}
  10179. CMS_R_ERROR_GETTING_PUBLIC_KEY = 113;
  10180. {$EXTERNALSYM CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}
  10181. CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE = 114;
  10182. {$EXTERNALSYM CMS_R_ERROR_SETTING_KEY}
  10183. CMS_R_ERROR_SETTING_KEY = 115;
  10184. {$EXTERNALSYM CMS_R_ERROR_SETTING_RECIPIENTINFO}
  10185. CMS_R_ERROR_SETTING_RECIPIENTINFO = 116;
  10186. {$EXTERNALSYM CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}
  10187. CMS_R_INVALID_ENCRYPTED_KEY_LENGTH = 117;
  10188. {$EXTERNALSYM CMS_R_INVALID_KEY_LENGTH}
  10189. CMS_R_INVALID_KEY_LENGTH = 118;
  10190. {$EXTERNALSYM CMS_R_MD_BIO_INIT_ERROR}
  10191. CMS_R_MD_BIO_INIT_ERROR = 119;
  10192. {$EXTERNALSYM CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}
  10193. CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH = 120;
  10194. {$EXTERNALSYM CMS_R_MESSAGEDIGEST_WRONG_LENGTH}
  10195. CMS_R_MESSAGEDIGEST_WRONG_LENGTH = 121;
  10196. {$EXTERNALSYM CMS_R_MSGSIGDIGEST_ERROR}
  10197. CMS_R_MSGSIGDIGEST_ERROR = 172;
  10198. {$EXTERNALSYM CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}
  10199. CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE = 162;
  10200. {$EXTERNALSYM CMS_R_MSGSIGDIGEST_WRONG_LENGTH}
  10201. CMS_R_MSGSIGDIGEST_WRONG_LENGTH = 163;
  10202. {$EXTERNALSYM CMS_R_NEED_ONE_SIGNER}
  10203. CMS_R_NEED_ONE_SIGNER = 164;
  10204. {$EXTERNALSYM CMS_R_NOT_A_SIGNED_RECEIPT}
  10205. CMS_R_NOT_A_SIGNED_RECEIPT = 165;
  10206. {$EXTERNALSYM CMS_R_NOT_ENCRYPTED_DATA}
  10207. CMS_R_NOT_ENCRYPTED_DATA = 122;
  10208. {$EXTERNALSYM CMS_R_NOT_KEK}
  10209. CMS_R_NOT_KEK = 123;
  10210. {$EXTERNALSYM CMS_R_NOT_KEY_TRANSPORT}
  10211. CMS_R_NOT_KEY_TRANSPORT = 124;
  10212. {$EXTERNALSYM CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}
  10213. CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE = 125;
  10214. {$EXTERNALSYM CMS_R_NO_CIPHER}
  10215. CMS_R_NO_CIPHER = 126;
  10216. {$EXTERNALSYM CMS_R_NO_CONTENT}
  10217. CMS_R_NO_CONTENT = 127;
  10218. {$EXTERNALSYM CMS_R_NO_CONTENT_TYPE}
  10219. CMS_R_NO_CONTENT_TYPE = 173;
  10220. {$EXTERNALSYM CMS_R_NO_DEFAULT_DIGEST}
  10221. CMS_R_NO_DEFAULT_DIGEST = 128;
  10222. {$EXTERNALSYM CMS_R_NO_DIGEST_SET}
  10223. CMS_R_NO_DIGEST_SET = 129;
  10224. {$EXTERNALSYM CMS_R_NO_KEY}
  10225. CMS_R_NO_KEY = 130;
  10226. {$EXTERNALSYM CMS_R_NO_KEY_OR_CERT}
  10227. CMS_R_NO_KEY_OR_CERT = 174;
  10228. {$EXTERNALSYM CMS_R_NO_MATCHING_DIGEST}
  10229. CMS_R_NO_MATCHING_DIGEST = 131;
  10230. {$EXTERNALSYM CMS_R_NO_MATCHING_RECIPIENT}
  10231. CMS_R_NO_MATCHING_RECIPIENT = 132;
  10232. {$EXTERNALSYM CMS_R_NO_MATCHING_SIGNATURE}
  10233. CMS_R_NO_MATCHING_SIGNATURE = 166;
  10234. {$EXTERNALSYM CMS_R_NO_MSGSIGDIGEST}
  10235. CMS_R_NO_MSGSIGDIGEST = 167;
  10236. {$EXTERNALSYM CMS_R_NO_PRIVATE_KEY}
  10237. CMS_R_NO_PRIVATE_KEY = 133;
  10238. {$EXTERNALSYM CMS_R_NO_PUBLIC_KEY}
  10239. CMS_R_NO_PUBLIC_KEY = 134;
  10240. {$EXTERNALSYM CMS_R_NO_RECEIPT_REQUEST}
  10241. CMS_R_NO_RECEIPT_REQUEST = 168;
  10242. {$EXTERNALSYM CMS_R_NO_SIGNERS}
  10243. CMS_R_NO_SIGNERS = 135;
  10244. {$EXTERNALSYM CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}
  10245. CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE = 136;
  10246. {$EXTERNALSYM CMS_R_RECEIPT_DECODE_ERROR}
  10247. CMS_R_RECEIPT_DECODE_ERROR = 169;
  10248. {$EXTERNALSYM CMS_R_RECIPIENT_ERROR}
  10249. CMS_R_RECIPIENT_ERROR = 137;
  10250. {$EXTERNALSYM CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}
  10251. CMS_R_SIGNER_CERTIFICATE_NOT_FOUND = 138;
  10252. {$EXTERNALSYM CMS_R_SIGNFINAL_ERROR}
  10253. CMS_R_SIGNFINAL_ERROR = 139;
  10254. {$EXTERNALSYM CMS_R_SMIME_TEXT_ERROR}
  10255. CMS_R_SMIME_TEXT_ERROR = 140;
  10256. {$EXTERNALSYM CMS_R_STORE_INIT_ERROR}
  10257. CMS_R_STORE_INIT_ERROR = 141;
  10258. {$EXTERNALSYM CMS_R_TYPE_NOT_COMPRESSED_DATA}
  10259. CMS_R_TYPE_NOT_COMPRESSED_DATA = 142;
  10260. {$EXTERNALSYM CMS_R_TYPE_NOT_DATA}
  10261. CMS_R_TYPE_NOT_DATA = 143;
  10262. {$EXTERNALSYM CMS_R_TYPE_NOT_DIGESTED_DATA}
  10263. CMS_R_TYPE_NOT_DIGESTED_DATA = 144;
  10264. {$EXTERNALSYM CMS_R_TYPE_NOT_ENCRYPTED_DATA}
  10265. CMS_R_TYPE_NOT_ENCRYPTED_DATA = 145;
  10266. {$EXTERNALSYM CMS_R_TYPE_NOT_ENVELOPED_DATA}
  10267. CMS_R_TYPE_NOT_ENVELOPED_DATA = 146;
  10268. {$EXTERNALSYM CMS_R_UNABLE_TO_FINALIZE_CONTEXT}
  10269. CMS_R_UNABLE_TO_FINALIZE_CONTEXT = 147;
  10270. {$EXTERNALSYM CMS_R_UNKNOWN_CIPHER}
  10271. CMS_R_UNKNOWN_CIPHER = 148;
  10272. {$EXTERNALSYM CMS_R_UNKNOWN_DIGEST_ALGORIHM}
  10273. CMS_R_UNKNOWN_DIGEST_ALGORIHM = 149;
  10274. {$EXTERNALSYM CMS_R_UNKNOWN_ID}
  10275. CMS_R_UNKNOWN_ID = 150;
  10276. {$EXTERNALSYM CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}
  10277. CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM = 151;
  10278. {$EXTERNALSYM CMS_R_UNSUPPORTED_CONTENT_TYPE}
  10279. CMS_R_UNSUPPORTED_CONTENT_TYPE = 152;
  10280. {$EXTERNALSYM CMS_R_UNSUPPORTED_KEK_ALGORITHM}
  10281. CMS_R_UNSUPPORTED_KEK_ALGORITHM = 153;
  10282. {$EXTERNALSYM CMS_R_UNSUPPORTED_RECIPIENT_TYPE}
  10283. CMS_R_UNSUPPORTED_RECIPIENT_TYPE = 154;
  10284. {$EXTERNALSYM CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE}
  10285. CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE = 155;
  10286. {$EXTERNALSYM CMS_R_UNSUPPORTED_TYPE}
  10287. CMS_R_UNSUPPORTED_TYPE = 156;
  10288. {$EXTERNALSYM CMS_R_UNWRAP_ERROR}
  10289. CMS_R_UNWRAP_ERROR = 157;
  10290. {$EXTERNALSYM CMS_R_VERIFICATION_FAILURE}
  10291. CMS_R_VERIFICATION_FAILURE = 158;
  10292. {$EXTERNALSYM CMS_R_WRAP_ERROR}
  10293. CMS_R_WRAP_ERROR = 159;
  10294. {$ENDIF}
  10295. {$EXTERNALSYM DSO_F_BEOS_BIND_FUNC}
  10296. DSO_F_BEOS_BIND_FUNC = 144;
  10297. {$EXTERNALSYM DSO_F_BEOS_BIND_VAR}
  10298. DSO_F_BEOS_BIND_VAR = 145;
  10299. {$EXTERNALSYM DSO_F_BEOS_LOAD}
  10300. DSO_F_BEOS_LOAD = 146;
  10301. {$EXTERNALSYM DSO_F_BEOS_NAME_CONVERTER}
  10302. DSO_F_BEOS_NAME_CONVERTER = 147;
  10303. {$EXTERNALSYM DSO_F_BEOS_UNLOAD}
  10304. DSO_F_BEOS_UNLOAD = 148;
  10305. {$EXTERNALSYM DSO_F_DLFCN_BIND_FUNC}
  10306. DSO_F_DLFCN_BIND_FUNC = 100;
  10307. {$EXTERNALSYM DSO_F_DLFCN_BIND_VAR}
  10308. DSO_F_DLFCN_BIND_VAR = 101;
  10309. {$EXTERNALSYM DSO_F_DLFCN_LOAD}
  10310. DSO_F_DLFCN_LOAD = 102;
  10311. {$EXTERNALSYM DSO_F_DLFCN_MERGER}
  10312. DSO_F_DLFCN_MERGER = 130;
  10313. {$EXTERNALSYM DSO_F_DLFCN_NAME_CONVERTER}
  10314. DSO_F_DLFCN_NAME_CONVERTER = 123;
  10315. {$EXTERNALSYM DSO_F_DLFCN_UNLOAD}
  10316. DSO_F_DLFCN_UNLOAD = 103;
  10317. {$EXTERNALSYM DSO_F_DL_BIND_FUNC}
  10318. DSO_F_DL_BIND_FUNC = 104;
  10319. {$EXTERNALSYM DSO_F_DL_BIND_VAR}
  10320. DSO_F_DL_BIND_VAR = 105;
  10321. {$EXTERNALSYM DSO_F_DL_LOAD}
  10322. DSO_F_DL_LOAD = 106;
  10323. {$EXTERNALSYM DSO_F_DL_MERGER}
  10324. DSO_F_DL_MERGER = 131;
  10325. {$EXTERNALSYM DSO_F_DL_NAME_CONVERTER}
  10326. DSO_F_DL_NAME_CONVERTER = 124;
  10327. {$EXTERNALSYM DSO_F_DL_UNLOAD}
  10328. DSO_F_DL_UNLOAD = 107;
  10329. {$EXTERNALSYM DSO_F_DSO_BIND_FUNC}
  10330. DSO_F_DSO_BIND_FUNC = 108;
  10331. {$EXTERNALSYM DSO_F_DSO_BIND_VAR}
  10332. DSO_F_DSO_BIND_VAR = 109;
  10333. {$EXTERNALSYM DSO_F_DSO_CONVERT_FILENAME}
  10334. DSO_F_DSO_CONVERT_FILENAME = 126;
  10335. {$EXTERNALSYM DSO_F_DSO_CTRL}
  10336. DSO_F_DSO_CTRL = 110;
  10337. {$EXTERNALSYM DSO_F_DSO_FREE}
  10338. DSO_F_DSO_FREE = 111;
  10339. {$EXTERNALSYM DSO_F_DSO_GET_FILENAME}
  10340. DSO_F_DSO_GET_FILENAME = 127;
  10341. {$EXTERNALSYM DSO_F_DSO_GET_LOADED_FILENAME}
  10342. DSO_F_DSO_GET_LOADED_FILENAME = 128;
  10343. {$EXTERNALSYM DSO_F_DSO_GLOBAL_LOOKUP}
  10344. DSO_F_DSO_GLOBAL_LOOKUP = 139;
  10345. {$EXTERNALSYM DSO_F_DSO_LOAD}
  10346. DSO_F_DSO_LOAD = 112;
  10347. {$EXTERNALSYM DSO_F_DSO_MERGE}
  10348. DSO_F_DSO_MERGE = 132;
  10349. {$EXTERNALSYM DSO_F_DSO_NEW_METHOD}
  10350. DSO_F_DSO_NEW_METHOD = 113;
  10351. {$EXTERNALSYM DSO_F_DSO_PATHBYADDR}
  10352. DSO_F_DSO_PATHBYADDR = 140;
  10353. {$EXTERNALSYM DSO_F_DSO_SET_FILENAME}
  10354. DSO_F_DSO_SET_FILENAME = 129;
  10355. {$EXTERNALSYM DSO_F_DSO_SET_NAME_CONVERTER}
  10356. DSO_F_DSO_SET_NAME_CONVERTER = 122;
  10357. {$EXTERNALSYM DSO_F_DSO_UP_REF}
  10358. DSO_F_DSO_UP_REF = 114;
  10359. {$EXTERNALSYM DSO_F_GLOBAL_LOOKUP_FUNC}
  10360. DSO_F_GLOBAL_LOOKUP_FUNC = 138;
  10361. {$EXTERNALSYM DSO_F_PATHBYADDR}
  10362. DSO_F_PATHBYADDR = 137;
  10363. {$EXTERNALSYM DSO_F_VMS_BIND_SYM}
  10364. DSO_F_VMS_BIND_SYM = 115;
  10365. {$EXTERNALSYM DSO_F_VMS_LOAD}
  10366. DSO_F_VMS_LOAD = 116;
  10367. {$EXTERNALSYM DSO_F_VMS_MERGER}
  10368. DSO_F_VMS_MERGER = 133;
  10369. {$EXTERNALSYM DSO_F_VMS_UNLOAD}
  10370. DSO_F_VMS_UNLOAD = 117;
  10371. {$EXTERNALSYM DSO_F_WIN32_BIND_FUNC}
  10372. DSO_F_WIN32_BIND_FUNC = 118;
  10373. {$EXTERNALSYM DSO_F_WIN32_BIND_VAR}
  10374. DSO_F_WIN32_BIND_VAR = 119;
  10375. {$EXTERNALSYM DSO_F_WIN32_GLOBALLOOKUP}
  10376. DSO_F_WIN32_GLOBALLOOKUP = 142;
  10377. {$EXTERNALSYM DSO_F_WIN32_GLOBALLOOKUP_FUNC}
  10378. DSO_F_WIN32_GLOBALLOOKUP_FUNC = 143;
  10379. {$EXTERNALSYM DSO_F_WIN32_JOINER}
  10380. DSO_F_WIN32_JOINER = 135;
  10381. {$EXTERNALSYM DSO_F_WIN32_LOAD}
  10382. DSO_F_WIN32_LOAD = 120;
  10383. {$EXTERNALSYM DSO_F_WIN32_MERGER}
  10384. DSO_F_WIN32_MERGER = 134;
  10385. {$EXTERNALSYM DSO_F_WIN32_NAME_CONVERTER}
  10386. DSO_F_WIN32_NAME_CONVERTER = 125;
  10387. {$EXTERNALSYM DSO_F_WIN32_PATHBYADDR}
  10388. DSO_F_WIN32_PATHBYADDR = 141;
  10389. {$EXTERNALSYM DSO_F_WIN32_SPLITTER}
  10390. DSO_F_WIN32_SPLITTER = 136;
  10391. {$EXTERNALSYM DSO_F_WIN32_UNLOAD}
  10392. DSO_F_WIN32_UNLOAD = 121;
  10393. //* Reason codes. */
  10394. {$EXTERNALSYM DSO_R_CTRL_FAILED}
  10395. DSO_R_CTRL_FAILED = 100;
  10396. {$EXTERNALSYM DSO_R_DSO_ALREADY_LOADED}
  10397. DSO_R_DSO_ALREADY_LOADED = 110;
  10398. {$EXTERNALSYM DSO_R_EMPTY_FILE_STRUCTURE}
  10399. DSO_R_EMPTY_FILE_STRUCTURE = 113;
  10400. {$EXTERNALSYM DSO_R_FAILURE}
  10401. DSO_R_FAILURE = 114;
  10402. {$EXTERNALSYM DSO_R_FILENAME_TOO_BIG}
  10403. DSO_R_FILENAME_TOO_BIG = 101;
  10404. {$EXTERNALSYM DSO_R_FINISH_FAILED}
  10405. DSO_R_FINISH_FAILED = 102;
  10406. {$EXTERNALSYM DSO_R_INCORRECT_FILE_SYNTAX}
  10407. DSO_R_INCORRECT_FILE_SYNTAX = 115;
  10408. {$EXTERNALSYM DSO_R_LOAD_FAILED}
  10409. DSO_R_LOAD_FAILED = 103;
  10410. {$EXTERNALSYM DSO_R_NAME_TRANSLATION_FAILED}
  10411. DSO_R_NAME_TRANSLATION_FAILED = 109;
  10412. {$EXTERNALSYM DSO_R_NO_FILENAME}
  10413. DSO_R_NO_FILENAME = 111;
  10414. {$EXTERNALSYM DSO_R_NO_FILE_SPECIFICATION}
  10415. DSO_R_NO_FILE_SPECIFICATION = 116;
  10416. {$EXTERNALSYM DSO_R_NULL_HANDLE}
  10417. DSO_R_NULL_HANDLE = 104;
  10418. {$EXTERNALSYM DSO_R_SET_FILENAME_FAILED}
  10419. DSO_R_SET_FILENAME_FAILED = 112;
  10420. {$EXTERNALSYM DSO_R_STACK_ERROR}
  10421. DSO_R_STACK_ERROR = 105;
  10422. {$EXTERNALSYM DSO_R_SYM_FAILURE}
  10423. DSO_R_SYM_FAILURE = 106;
  10424. {$EXTERNALSYM DSO_R_UNLOAD_FAILED}
  10425. DSO_R_UNLOAD_FAILED = 107;
  10426. {$EXTERNALSYM DSO_R_UNSUPPORTED}
  10427. DSO_R_UNSUPPORTED = 108;
  10428. {$ifndef OPENSSL_NO_SRP}
  10429. {$EXTERNALSYM SRP_NO_ERROR}
  10430. SRP_NO_ERROR = 0;
  10431. {$EXTERNALSYM SRP_ERR_VBASE_INCOMPLETE_FILE}
  10432. SRP_ERR_VBASE_INCOMPLETE_FILE = 1;
  10433. {$EXTERNALSYM SRP_ERR_VBASE_BN_LIB}
  10434. SRP_ERR_VBASE_BN_LIB = 2;
  10435. {$EXTERNALSYM SRP_ERR_OPEN_FILE}
  10436. SRP_ERR_OPEN_FILE = 3;
  10437. {$EXTERNALSYM SRP_ERR_MEMORY}
  10438. SRP_ERR_MEMORY = 4;
  10439. {$EXTERNALSYM DB_srptype}
  10440. DB_srptype = 0;
  10441. {$EXTERNALSYM DB_srpverifier}
  10442. DB_srpverifier = 1;
  10443. {$EXTERNALSYM DB_srpsalt}
  10444. DB_srpsalt = 2;
  10445. {$EXTERNALSYM DB_srpid}
  10446. DB_srpid = 3;
  10447. {$EXTERNALSYM DB_srpgN}
  10448. DB_srpgN = 4;
  10449. {$EXTERNALSYM DB_srpinfo}
  10450. DB_srpinfo = 5;
  10451. {$NODEFINE DB_NUMBER}
  10452. DB_NUMBER = 6;
  10453. {$EXTERNALSYM DB_SRP_INDEX}
  10454. DB_SRP_INDEX = 'I';
  10455. {$EXTERNALSYM DB_SRP_VALID}
  10456. DB_SRP_VALID = 'V';
  10457. {$EXTERNALSYM DB_SRP_REVOKED}
  10458. DB_SRP_REVOKED = 'R';
  10459. {$EXTERNALSYM DB_SRP_MODIF}
  10460. DB_SRP_MODIF = 'v';
  10461. {$ENDIF}
  10462. {$EXTERNALSYM SRTP_AES128_CM_SHA1_80}
  10463. SRTP_AES128_CM_SHA1_80 = $0001;
  10464. {$EXTERNALSYM SRTP_AES128_CM_SHA1_32}
  10465. SRTP_AES128_CM_SHA1_32 = $0002;
  10466. {$EXTERNALSYM SRTP_AES128_F8_SHA1_80}
  10467. SRTP_AES128_F8_SHA1_80 = $0003;
  10468. {$EXTERNALSYM SRTP_AES128_F8_SHA1_32}
  10469. SRTP_AES128_F8_SHA1_32 = $0004;
  10470. {$EXTERNALSYM SRTP_NULL_SHA1_80}
  10471. SRTP_NULL_SHA1_80 = $0005;
  10472. {$EXTERNALSYM SRTP_NULL_SHA1_32}
  10473. SRTP_NULL_SHA1_32 = $0006;
  10474. _ATEXIT_SIZE = 32;
  10475. {$EXTERNALSYM _ATEXIT_SIZE}
  10476. _IOFBF = 0;
  10477. {$EXTERNALSYM _IOFBF}
  10478. _IOLBF = 1;
  10479. {$EXTERNALSYM _IOLBF}
  10480. _IONBF = 2;
  10481. {$EXTERNALSYM _IONBF}
  10482. _N_LISTS = 30;
  10483. {$EXTERNALSYM _N_LISTS}
  10484. _MSS_WIN32 = 1;
  10485. {$EXTERNALSYM _MSS_WIN32}
  10486. _MSS_X86_ = 1;
  10487. {$EXTERNALSYM _MSS_X86_}
  10488. __CYGWIN32__ = 1;
  10489. {$EXTERNALSYM __CYGWIN32__}
  10490. __CYGWIN__ = 1;
  10491. {$EXTERNALSYM __CYGWIN__}
  10492. __GNUC_MINOR__ = 91;
  10493. {$EXTERNALSYM __GNUC_MINOR__}
  10494. __GNUC__ = 2;
  10495. {$EXTERNALSYM __GNUC__}
  10496. __SAPP = $0100;
  10497. {$EXTERNALSYM __SAPP }
  10498. __SEOF = $0020;
  10499. {$EXTERNALSYM __SEOF }
  10500. __SERR = $0040;
  10501. {$EXTERNALSYM __SERR }
  10502. __SLBF = $0001;
  10503. {$EXTERNALSYM __SLBF }
  10504. __SMBF = $0080;
  10505. {$EXTERNALSYM __SMBF }
  10506. __SMOD = $2000;
  10507. {$EXTERNALSYM __SMOD }
  10508. __SNBF = $0002;
  10509. {$EXTERNALSYM __SNBF }
  10510. __SNPT = $0800;
  10511. {$EXTERNALSYM __SNPT }
  10512. __SOFF = $1000;
  10513. {$EXTERNALSYM __SOFF }
  10514. __SOPT = $0400;
  10515. {$EXTERNALSYM __SOPT }
  10516. __SRD = $0004;
  10517. {$EXTERNALSYM __SRD }
  10518. __SRW = $0010;
  10519. {$EXTERNALSYM __SRW }
  10520. __SSTR = $0200;
  10521. {$EXTERNALSYM __SSTR }
  10522. __STDC__ = 1;
  10523. {$EXTERNALSYM __STDC__}
  10524. __SWR = $0008;
  10525. {$EXTERNALSYM __SWR }
  10526. __WINNT = 1;
  10527. {$EXTERNALSYM __WINNT}
  10528. __WINNT__ = 1;
  10529. {$EXTERNALSYM __WINNT__}
  10530. __i386 = 1;
  10531. {$EXTERNALSYM __i386}
  10532. __i386__ = 1;
  10533. {$EXTERNALSYM __i386__}
  10534. __i586 = 1;
  10535. {$EXTERNALSYM __i586}
  10536. __i586__ = 1;
  10537. {$EXTERNALSYM __i586__}
  10538. __pentium = 1;
  10539. {$EXTERNALSYM __pentium}
  10540. __pentium__ = 1;
  10541. {$EXTERNALSYM __pentium__}
  10542. i386 = 1;
  10543. {$EXTERNALSYM i386}
  10544. i586 = 1;
  10545. {$EXTERNALSYM i586}
  10546. pentium = 1;
  10547. {$EXTERNALSYM pentium}
  10548. //kssl.h
  10549. {$IFNDEF OPENSSL_NO_KRB5}
  10550. {These are consts for Kerberos support. These will not be complete because
  10551. FreePascal, Borland Delphi, and Indy don't support Kerberos. These are here
  10552. as place holders so we get an exact OpenSSL API if Kerberos support was compiled
  10553. in.
  10554. }
  10555. {$EXTERNALSYM KSSL_ERR_MAX}
  10556. KSSL_ERR_MAX = 255;
  10557. {$EXTERNALSYM KSSL_CLIENT}
  10558. KSSL_CLIENT = 1;
  10559. {$EXTERNALSYM KSSL_SERVER}
  10560. KSSL_SERVER = 2;
  10561. {$EXTERNALSYM KSSL_SERVICE}
  10562. KSSL_SERVICE = 3;
  10563. {$EXTERNALSYM KSSL_KEYTAB}
  10564. KSSL_KEYTAB = 4;
  10565. {$EXTERNALSYM KSSL_CTX_OK}
  10566. KSSL_CTX_OK = 0;
  10567. {$EXTERNALSYM KSSL_CTX_ERR}
  10568. KSSL_CTX_ERR = 1;
  10569. {$EXTERNALSYM KSSL_NOMEM}
  10570. KSSL_NOMEM = 2;
  10571. {$ENDIF}
  10572. {Error - err.h }
  10573. const
  10574. {$EXTERNALSYM ERR_TXT_MALLOCED}
  10575. ERR_TXT_MALLOCED = $01;
  10576. {$EXTERNALSYM ERR_TXT_STRING}
  10577. ERR_TXT_STRING = $02;
  10578. {$EXTERNALSYM ERR_NUM_ERRORS}
  10579. ERR_NUM_ERRORS = 16;
  10580. const
  10581. // library
  10582. {$EXTERNALSYM ERR_LIB_NONE}
  10583. ERR_LIB_NONE = 1;
  10584. {$EXTERNALSYM ERR_LIB_SYS}
  10585. ERR_LIB_SYS = 2;
  10586. {$EXTERNALSYM ERR_LIB_BN}
  10587. ERR_LIB_BN = 3;
  10588. {$EXTERNALSYM ERR_LIB_RSA}
  10589. ERR_LIB_RSA = 4;
  10590. {$EXTERNALSYM ERR_LIB_DH}
  10591. ERR_LIB_DH = 5;
  10592. {$EXTERNALSYM ERR_LIB_EVP}
  10593. ERR_LIB_EVP = 6;
  10594. {$EXTERNALSYM ERR_LIB_BUF}
  10595. ERR_LIB_BUF = 7;
  10596. {$EXTERNALSYM ERR_LIB_OBJ}
  10597. ERR_LIB_OBJ = 8;
  10598. {$EXTERNALSYM ERR_LIB_PEM}
  10599. ERR_LIB_PEM = 9;
  10600. {$EXTERNALSYM ERR_LIB_DSA}
  10601. ERR_LIB_DSA = 10;
  10602. {$EXTERNALSYM ERR_LIB_X509}
  10603. ERR_LIB_X509 = 11;
  10604. // ERR_LIB_METH = 12;
  10605. {$EXTERNALSYM ERR_LIB_ASN1}
  10606. ERR_LIB_ASN1 = 13;
  10607. {$EXTERNALSYM ERR_LIB_CONF}
  10608. ERR_LIB_CONF = 14;
  10609. {$EXTERNALSYM ERR_LIB_CRYPTO}
  10610. ERR_LIB_CRYPTO = 15;
  10611. {$EXTERNALSYM ERR_LIB_EC}
  10612. ERR_LIB_EC = 16;
  10613. {$EXTERNALSYM ERR_LIB_SSL}
  10614. ERR_LIB_SSL = 20;
  10615. // ERR_LIB_SSL23 = 21;
  10616. // ERR_LIB_SSL2 = 22;
  10617. // ERR_LIB_SSL3 = 23;
  10618. // ERR_LIB_RSAREF = 30;
  10619. // ERR_LIB_PROXY = 31;
  10620. {$EXTERNALSYM ERR_LIB_BIO}
  10621. ERR_LIB_BIO = 32;
  10622. {$EXTERNALSYM ERR_LIB_PKCS7}
  10623. ERR_LIB_PKCS7 = 33;
  10624. {$EXTERNALSYM ERR_LIB_X509V3}
  10625. ERR_LIB_X509V3 = 34;
  10626. {$EXTERNALSYM ERR_LIB_PKCS12}
  10627. ERR_LIB_PKCS12 = 35;
  10628. {$EXTERNALSYM ERR_LIB_RAND}
  10629. ERR_LIB_RAND = 36;
  10630. {$EXTERNALSYM ERR_LIB_DSO}
  10631. ERR_LIB_DSO = 37;
  10632. {$EXTERNALSYM ERR_LIB_ENGINE}
  10633. ERR_LIB_ENGINE = 38;
  10634. {$EXTERNALSYM ERR_LIB_OCSP}
  10635. ERR_LIB_OCSP = 39;
  10636. {$EXTERNALSYM ERR_LIB_UI}
  10637. ERR_LIB_UI = 40;
  10638. {$EXTERNALSYM ERR_LIB_COMP}
  10639. ERR_LIB_COMP = 41;
  10640. {$EXTERNALSYM ERR_LIB_ECDSA}
  10641. ERR_LIB_ECDSA = 42;
  10642. {$EXTERNALSYM ERR_LIB_ECDH}
  10643. ERR_LIB_ECDH = 43;
  10644. {$EXTERNALSYM ERR_LIB_STORE}
  10645. ERR_LIB_STORE = 44;
  10646. {$EXTERNALSYM ERR_LIB_FIPS}
  10647. ERR_LIB_FIPS = 45;
  10648. {$EXTERNALSYM ERR_LIB_CMS}
  10649. ERR_LIB_CMS = 46;
  10650. {$EXTERNALSYM ERR_LIB_TS}
  10651. ERR_LIB_TS = 47;
  10652. {$EXTERNALSYM ERR_LIB_HMAC}
  10653. ERR_LIB_HMAC = 48;
  10654. {$EXTERNALSYM ERR_LIB_JPAKE}
  10655. //OpenSSL 0.9.8n was 47
  10656. ERR_LIB_JPAKE = 49;
  10657. //* fatal error */
  10658. {$EXTERNALSYM ERR_R_FATAL}
  10659. ERR_R_FATAL = 64;
  10660. //was ERR_R_FATAL = 32;
  10661. {$EXTERNALSYM ERR_R_MALLOC_FAILURE}
  10662. ERR_R_MALLOC_FAILURE = (1 or ERR_R_FATAL);
  10663. {$EXTERNALSYM ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED}
  10664. ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED = (2 or ERR_R_FATAL);
  10665. {$EXTERNALSYM ERR_R_PASSED_NULL_PARAMETER}
  10666. ERR_R_PASSED_NULL_PARAMETER = (3 or ERR_R_FATAL);
  10667. {$EXTERNALSYM ERR_R_INTERNAL_ERROR}
  10668. ERR_R_INTERNAL_ERROR = (4 or ERR_R_FATAL);
  10669. {$EXTERNALSYM ERR_R_DISABLED}
  10670. ERR_R_DISABLED = (5 or ERR_R_FATAL);
  10671. {$EXTERNALSYM ERR_LIB_USER}
  10672. ERR_LIB_USER = 128;
  10673. // OS functions
  10674. {$EXTERNALSYM SYS_F_FOPEN}
  10675. SYS_F_FOPEN = 1;
  10676. {$EXTERNALSYM SYS_F_CONNECT}
  10677. SYS_F_CONNECT = 2;
  10678. {$EXTERNALSYM SYS_F_GETSERVBYNAME}
  10679. SYS_F_GETSERVBYNAME = 3;
  10680. {$EXTERNALSYM SYS_F_SOCKET}
  10681. SYS_F_SOCKET = 4;
  10682. {$EXTERNALSYM SYS_F_IOCTLSOCKET}
  10683. SYS_F_IOCTLSOCKET = 5;
  10684. {$EXTERNALSYM SYS_F_BIND}
  10685. SYS_F_BIND = 6;
  10686. {$EXTERNALSYM SYS_F_LISTEN}
  10687. SYS_F_LISTEN = 7;
  10688. {$EXTERNALSYM SYS_F_ACCEPT}
  10689. SYS_F_ACCEPT = 8;
  10690. {$EXTERNALSYM SYS_F_WSASTARTUP}
  10691. SYS_F_WSASTARTUP = 9; { Winsock stuff }
  10692. {$EXTERNALSYM SYS_F_OPENDIR}
  10693. SYS_F_OPENDIR = 10;
  10694. {$EXTERNALSYM SYS_F_FREAD}
  10695. SYS_F_FREAD = 11;
  10696. //* These are the possible flags. They can be or'ed together. */
  10697. //* Use to have echoing of input */
  10698. {$EXTERNALSYM UI_INPUT_FLAG_ECHO}
  10699. UI_INPUT_FLAG_ECHO = $01;
  10700. ///* Use a default password. Where that password is found is completely
  10701. // up to the application, it might for example be in the user data set
  10702. // with UI_add_user_data(). It is not recommended to have more than
  10703. // one input in each UI being marked with this flag, or the application
  10704. // might get confused. */
  10705. {$EXTERNALSYM UI_INPUT_FLAG_DEFAULT_PWD}
  10706. UI_INPUT_FLAG_DEFAULT_PWD = $02;
  10707. //* The user of these routines may want to define flags of their own. The core
  10708. // UI won't look at those, but will pass them on to the method routines. They
  10709. // must use higher bits so they don't get confused with the UI bits above.
  10710. // UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good
  10711. // example of use is this:
  10712. // #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE)
  10713. //*/
  10714. {$EXTERNALSYM UI_INPUT_FLAG_USER_BASE}
  10715. UI_INPUT_FLAG_USER_BASE = 16;
  10716. //IO_ctrl commands
  10717. //* The commands */
  10718. //* Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the
  10719. // OpenSSL error stack before printing any info or added error messages and
  10720. // before any prompting. */
  10721. {$EXTERNALSYM UI_CTRL_PRINT_ERRORS}
  10722. UI_CTRL_PRINT_ERRORS = 1;
  10723. //* Check if a UI_process() is possible to do again with the same instance of
  10724. // a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0
  10725. // if not. */
  10726. {$EXTERNALSYM UI_CTRL_IS_REDOABLE}
  10727. UI_CTRL_IS_REDOABLE = 2;
  10728. //* Function codes. */
  10729. {$EXTERNALSYM UI_F_GENERAL_ALLOCATE_BOOLEAN}
  10730. UI_F_GENERAL_ALLOCATE_BOOLEAN = 108;
  10731. {$EXTERNALSYM UI_F_GENERAL_ALLOCATE_PROMPT}
  10732. UI_F_GENERAL_ALLOCATE_PROMPT = 109;
  10733. {$EXTERNALSYM UI_F_GENERAL_ALLOCATE_STRING}
  10734. UI_F_GENERAL_ALLOCATE_STRING = 100;
  10735. {$EXTERNALSYM UI_F_UI_CTRL}
  10736. UI_F_UI_CTRL = 111;
  10737. {$EXTERNALSYM UI_F_UI_DUP_ERROR_STRING}
  10738. UI_F_UI_DUP_ERROR_STRING = 101;
  10739. {$EXTERNALSYM UI_F_UI_DUP_INFO_STRING}
  10740. UI_F_UI_DUP_INFO_STRING = 102;
  10741. {$EXTERNALSYM UI_F_UI_DUP_INPUT_BOOLEAN}
  10742. UI_F_UI_DUP_INPUT_BOOLEAN = 110;
  10743. {$EXTERNALSYM UI_F_UI_DUP_INPUT_STRING}
  10744. UI_F_UI_DUP_INPUT_STRING = 103;
  10745. {$EXTERNALSYM UI_F_UI_DUP_VERIFY_STRING}
  10746. UI_F_UI_DUP_VERIFY_STRING = 106;
  10747. {$EXTERNALSYM UI_F_UI_GET0_RESULT}
  10748. UI_F_UI_GET0_RESULT = 107;
  10749. {$EXTERNALSYM UI_F_UI_NEW_METHOD}
  10750. UI_F_UI_NEW_METHOD = 104;
  10751. {$EXTERNALSYM UI_F_UI_SET_RESULT}
  10752. UI_F_UI_SET_RESULT = 105;
  10753. //* Reason codes. */
  10754. {$EXTERNALSYM UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}
  10755. UI_R_COMMON_OK_AND_CANCEL_CHARACTERS = 104;
  10756. {$EXTERNALSYM UI_R_INDEX_TOO_LARGE}
  10757. UI_R_INDEX_TOO_LARGE = 102;
  10758. {$EXTERNALSYM UI_R_INDEX_TOO_SMALL}
  10759. UI_R_INDEX_TOO_SMALL = 103;
  10760. {$EXTERNALSYM UI_R_NO_RESULT_BUFFER}
  10761. UI_R_NO_RESULT_BUFFER = 105;
  10762. {$EXTERNALSYM UI_R_RESULT_TOO_LARGE}
  10763. UI_R_RESULT_TOO_LARGE = 100;
  10764. {$EXTERNALSYM UI_R_RESULT_TOO_SMALL}
  10765. UI_R_RESULT_TOO_SMALL = 101;
  10766. {$EXTERNALSYM UI_R_UNKNOWN_CONTROL_COMMAND}
  10767. UI_R_UNKNOWN_CONTROL_COMMAND = 106;
  10768. const
  10769. // reasons
  10770. {$EXTERNALSYM ERR_R_SYS_LIB}
  10771. ERR_R_SYS_LIB = ERR_LIB_SYS;
  10772. {$EXTERNALSYM ERR_R_BN_LIB}
  10773. ERR_R_BN_LIB = ERR_LIB_BN;
  10774. {$EXTERNALSYM ERR_R_RSA_LIB}
  10775. ERR_R_RSA_LIB = ERR_LIB_RSA;
  10776. {$EXTERNALSYM ERR_R_DH_LIB}
  10777. ERR_R_DH_LIB = ERR_LIB_DH;
  10778. {$EXTERNALSYM ERR_R_EVP_LIB}
  10779. ERR_R_EVP_LIB = ERR_LIB_EVP;
  10780. {$EXTERNALSYM ERR_R_BUF_LIB}
  10781. ERR_R_BUF_LIB = ERR_LIB_BUF;
  10782. {$EXTERNALSYM ERR_R_OBJ_LIB}
  10783. ERR_R_OBJ_LIB = ERR_LIB_OBJ;
  10784. {$EXTERNALSYM ERR_R_PEM_LIB}
  10785. ERR_R_PEM_LIB = ERR_LIB_PEM;
  10786. {$EXTERNALSYM ERR_R_DSA_LIB}
  10787. ERR_R_DSA_LIB = ERR_LIB_DSA;
  10788. {$EXTERNALSYM ERR_R_X509_LIB}
  10789. ERR_R_X509_LIB = ERR_LIB_X509;
  10790. {$EXTERNALSYM ERR_R_ASN1_LIB}
  10791. ERR_R_ASN1_LIB = ERR_LIB_ASN1;
  10792. {$EXTERNALSYM ERR_R_CONF_LIB}
  10793. ERR_R_CONF_LIB = ERR_LIB_CONF;
  10794. {$EXTERNALSYM ERR_R_CRYPTO_LIB}
  10795. ERR_R_CRYPTO_LIB = ERR_LIB_CRYPTO;
  10796. {$EXTERNALSYM ERR_R_EC_LIB}
  10797. ERR_R_EC_LIB = ERR_LIB_EC;
  10798. {$EXTERNALSYM ERR_R_SSL_LIB}
  10799. ERR_R_SSL_LIB = ERR_LIB_SSL;
  10800. {$EXTERNALSYM ERR_R_BIO_LIB}
  10801. ERR_R_BIO_LIB = ERR_LIB_BIO;
  10802. {$EXTERNALSYM ERR_R_PKCS7_LIB}
  10803. ERR_R_PKCS7_LIB = ERR_LIB_PKCS7;
  10804. {$EXTERNALSYM ERR_R_X509V3_LIB}
  10805. ERR_R_X509V3_LIB = ERR_LIB_X509V3;
  10806. {$EXTERNALSYM ERR_R_PKCS12_LIB}
  10807. ERR_R_PKCS12_LIB = ERR_LIB_PKCS12;
  10808. {$EXTERNALSYM ERR_R_RAND_LIB}
  10809. ERR_R_RAND_LIB = ERR_LIB_RAND;
  10810. {$EXTERNALSYM ERR_R_DSO_LIB}
  10811. ERR_R_DSO_LIB = ERR_LIB_DSO;
  10812. {$EXTERNALSYM ERR_R_ENGINE_LIB}
  10813. ERR_R_ENGINE_LIB = ERR_LIB_ENGINE;
  10814. {$EXTERNALSYM ERR_R_OCSP_LIB}
  10815. ERR_R_OCSP_LIB = ERR_LIB_OCSP;
  10816. {$EXTERNALSYM ERR_R_UI_LIB}
  10817. ERR_R_UI_LIB = ERR_LIB_UI;
  10818. {$EXTERNALSYM ERR_R_COMP_LIB}
  10819. ERR_R_COMP_LIB = ERR_LIB_COMP;
  10820. {$EXTERNALSYM ERR_R_ECDSA_LIB}
  10821. ERR_R_ECDSA_LIB = ERR_LIB_ECDSA;
  10822. {$EXTERNALSYM ERR_R_ECDH_LIB}
  10823. ERR_R_ECDH_LIB = ERR_LIB_ECDH;
  10824. {$EXTERNALSYM ERR_R_STORE_LIB}
  10825. ERR_R_STORE_LIB = ERR_LIB_STORE;
  10826. {$EXTERNALSYM ERR_R_TS_LIB}
  10827. ERR_R_TS_LIB = ERR_LIB_TS; //* 45 */
  10828. {$EXTERNALSYM ERR_R_NESTED_ASN1_ERROR}
  10829. ERR_R_NESTED_ASN1_ERROR = 58;
  10830. {$EXTERNALSYM ERR_R_BAD_ASN1_OBJECT_HEADER}
  10831. ERR_R_BAD_ASN1_OBJECT_HEADER = 59;
  10832. {$EXTERNALSYM ERR_R_BAD_GET_ASN1_OBJECT_CALL}
  10833. ERR_R_BAD_GET_ASN1_OBJECT_CALL = 60;
  10834. {$EXTERNALSYM ERR_R_EXPECTING_AN_ASN1_SEQUENCE}
  10835. ERR_R_EXPECTING_AN_ASN1_SEQUENCE = 61;
  10836. {$EXTERNALSYM ERR_R_ASN1_LENGTH_MISMATCH}
  10837. ERR_R_ASN1_LENGTH_MISMATCH = 62;
  10838. {$EXTERNALSYM ERR_R_MISSING_ASN1_EOS}
  10839. ERR_R_MISSING_ASN1_EOS = 63;
  10840. {$EXTERNALSYM DTLS1_VERSION}
  10841. DTLS1_VERSION = $FEFF;
  10842. {$EXTERNALSYM DTLS1_BAD_VER}
  10843. DTLS1_BAD_VER = $0100;
  10844. {$IFNDEF USE_THIS}
  10845. //* this alert description is not specified anywhere... */
  10846. {$EXTERNALSYM DTLS1_AD_MISSING_HANDSHAKE_MESSAGE}
  10847. DTLS1_AD_MISSING_HANDSHAKE_MESSAGE = 110;
  10848. {$endif}
  10849. //was 32
  10850. {$EXTERNALSYM DTLS1_COOKIE_LENGTH}
  10851. DTLS1_COOKIE_LENGTH = 256;
  10852. {$EXTERNALSYM DTLS1_RT_HEADER_LENGTH}
  10853. DTLS1_RT_HEADER_LENGTH = 13;
  10854. {$EXTERNALSYM DTLS1_HM_HEADER_LENGTH}
  10855. DTLS1_HM_HEADER_LENGTH = 12;
  10856. {$EXTERNALSYM DTLS1_HM_BAD_FRAGMENT}
  10857. DTLS1_HM_BAD_FRAGMENT = -2;
  10858. {$EXTERNALSYM DTLS1_HM_FRAGMENT_RETRY}
  10859. DTLS1_HM_FRAGMENT_RETRY = -3;
  10860. {$EXTERNALSYM DTLS1_CCS_HEADER_LENGTH}
  10861. //OpenSSL 0.9.8e defines this as OPENSSL_DTLS1_CCS_HEADER_LENGTH = 3;
  10862. DTLS1_CCS_HEADER_LENGTH = 1;
  10863. {$EXTERNALSYM DTLS1_AL_HEADER_LENGTH}
  10864. {$ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE}
  10865. DTLS1_AL_HEADER_LENGTH = 7;
  10866. {$else}
  10867. DTLS1_AL_HEADER_LENGTH = 2;
  10868. {$endif}
  10869. type
  10870. {$EXTERNALSYM PPByte}
  10871. PPByte = ^PByte;
  10872. {$IFNDEF HAS_PPointer}
  10873. {$EXTERNALSYM PPointer}
  10874. PPointer = ^Pointer;
  10875. {$ENDIF}
  10876. //This is just a synthasis since Pascal probably has what we need.
  10877. //In C, the OpenSSL developers were using the PQ_64BIT moniker
  10878. //to ensure that they had a value that is always 64bit.
  10879. //In Pascal, this is not a problem since Delphi and FreePascal have this in some form.
  10880. {$EXTERNALSYM PQ_64BIT}
  10881. PQ_64BIT = TIdC_UINT64;
  10882. // RLebeau - the following value was conflicting with iphlpapi.h under C++Builder
  10883. // (and possibly other headers) so using the HPPEMIT further above as a workaround
  10884. {$EXTERNALSYM time_t}
  10885. time_t = TIdC_LONG;
  10886. {$EXTERNALSYM STACK}
  10887. STACK = record
  10888. num : TIdC_INT; //int num;
  10889. data : PIdAnsiChar; //char **data;
  10890. sorted : TIdC_INT;//int sorted;
  10891. num_alloc : TIdC_INT; //int num_alloc;
  10892. comp : function (_para1: PPIdAnsiChar; _para2: PPIdAnsiChar): TIdC_INT; cdecl;
  10893. //int (*comp)(const char * const *, const char * const *);
  10894. end;
  10895. {$EXTERNALSYM PSTACK}
  10896. PSTACK = ^STACK;
  10897. {$EXTERNALSYM PPSTACK}
  10898. PPSTACK = ^PSTACK;
  10899. {$EXTERNALSYM PSTACK_OF_POINTER}
  10900. PSTACK_OF_POINTER = Pointer;
  10901. {$NODEFINE PSSL}
  10902. PSSL = ^SSL;
  10903. //opensslconf.h
  10904. {$IFNDEF OPENSSL_NO_MD2}
  10905. {$EXTERNALSYM MD2_INT}
  10906. {$IFDEF MD2_CHAR}
  10907. MD2_INT = Char;
  10908. {$ELSE}
  10909. {$IFDEF MD2_LONG}
  10910. MD2_INT = TIdC_ULONG;
  10911. {$ELSE}
  10912. MD2_INT = TIdC_UINT;
  10913. {$ENDIF}
  10914. {$ENDIF}
  10915. {$ENDIF}
  10916. {$IFNDEF OPENSSL_NO_RC1}
  10917. {$EXTERNALSYM RC2_INT}
  10918. {$IFDEF RC2_SHORT}
  10919. RC2_INT = TIdC_USHORT;
  10920. {$ELSE}
  10921. {$IFDEF RC2_LONG}
  10922. RC2_INT = TIdC_ULONG;
  10923. {$ELSE}
  10924. RC2_INT = TIdC_UINT;
  10925. {$ENDIF}
  10926. {$ENDIF}
  10927. {$ENDIF}
  10928. {$IFNDEF OPENSSL_NO_RC4}
  10929. {$EXTERNALSYM RC4_INT}
  10930. {$IFDEF RC4_CHAR}
  10931. RC4_INT = TIdC_USHORT;
  10932. {$ELSE}
  10933. {$IFDEF RC4_LONG}
  10934. RC4_INT = TIdC_ULONG;
  10935. {$ELSE}
  10936. RC4_INT = TIdC_UINT;
  10937. {$ENDIF}
  10938. {$ENDIF}
  10939. {$IFDEF RC4_CHUNK}
  10940. {$EXTERNALSYM RC4_CHUNK}
  10941. RC4_CHUNK = TIdC_ULONG;
  10942. {$ELSE}
  10943. {$IFDEF RC4_CHUNK_LL}
  10944. {$EXTERNALSYM RC4_CHUNK}
  10945. RC4_CHUNK = TIdC_ULONGLONG;
  10946. {$ELSE}
  10947. {$UNDEF RC4_CHUNK}
  10948. {$ENDIF}
  10949. {$ENDIF}
  10950. {$ENDIF}
  10951. {$IFNDEF OPENSSL_NO_IDEA}
  10952. {$EXTERNALSYM IDEA_INT}
  10953. {$IFDEF IDEA_SHORT}
  10954. IDEA_INT = TIdC_USHORT;
  10955. {$ELSE}
  10956. {$IFDEF IDEA_LONG}
  10957. IDEA_INT = TIdC_ULONG;
  10958. {$ELSE}
  10959. IDEA_INT = TIdC_UINT;
  10960. {$ENDIF}
  10961. {$ENDIF}
  10962. {$ENDIF}
  10963. //crypto.h
  10964. // OpenSSL 1.0.0 structure
  10965. ///* Don't use this structure directly. */
  10966. {$EXTERNALSYM CRYPTO_THREADID}
  10967. CRYPTO_THREADID = record
  10968. ptr : Pointer;
  10969. val : TIdC_ULONG;
  10970. end;
  10971. {$EXTERNALSYM PCRYPTO_THREADID}
  10972. PCRYPTO_THREADID = ^CRYPTO_THREADID;
  10973. // end OpenSSL 1.0.0 structures
  10974. {$EXTERNALSYM OPENSSL_ITEM}
  10975. OPENSSL_ITEM = record
  10976. code : TIdC_INT;
  10977. value : Pointer; //* Not used for flag attributes */
  10978. value_size : size_t; //* Max size of value for output, length for input */
  10979. value_length : Psize_t; //* Returned length of value for output */
  10980. end;
  10981. {$EXTERNALSYM CRYPTO_EX_DATA}
  10982. CRYPTO_EX_DATA = record
  10983. sk : PSTACK;
  10984. dummy : TIdC_INT; // gcc is screwing up this data structure :-(
  10985. end;
  10986. {$EXTERNALSYM PCRYPTO_EX_DATA}
  10987. PCRYPTO_EX_DATA = ^CRYPTO_EX_DATA;
  10988. {
  10989. /* Some applications as well as some parts of OpenSSL need to allocate
  10990. and deallocate locks in a dynamic fashion. The following typedef
  10991. makes this possible in a type-safe manner. */
  10992. /* struct CRYPTO_dynlock_value has to be defined by the application. */
  10993. }
  10994. {$EXTERNALSYM PCRYPTO_dynlock_value}
  10995. PCRYPTO_dynlock_value = Pointer;
  10996. {$EXTERNALSYM CRYPTO_dynlock}
  10997. CRYPTO_dynlock = record
  10998. references : TIdC_INT;
  10999. data : PCRYPTO_dynlock_value;
  11000. end;
  11001. {$EXTERNALSYM PCRYPTO_dynlock}
  11002. PCRYPTO_dynlock = ^CRYPTO_dynlock;
  11003. //* Callback types for crypto.h */
  11004. //typedef int CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
  11005. // int idx, long argl, void *argp);
  11006. {$EXTERNALSYM CRYPTO_EX_new}
  11007. CRYPTO_EX_new = function(parent : Pointer; ptr : Pointer; ad : CRYPTO_EX_DATA;
  11008. idx : TIdC_INT; arg1 : TIdC_LONG; argp : Pointer) : TIdC_INT; cdecl;
  11009. //typedef void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
  11010. // int idx, long argl, void *argp);
  11011. {$EXTERNALSYM CRYPTO_EX_free}
  11012. CRYPTO_EX_free = procedure (parent : Pointer; ptr : Pointer; ad : CRYPTO_EX_DATA;
  11013. idx : TIdC_INT; arg1 : TIdC_LONG; argp : Pointer); cdecl;
  11014. //typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d,
  11015. // int idx, long argl, void *argp);
  11016. {$EXTERNALSYM CRYPTO_EX_dup}
  11017. CRYPTO_EX_dup = function (_to : PCRYPTO_EX_DATA; from : PCRYPTO_EX_DATA;
  11018. from_d : Pointer; idx : TIdC_INT; arg1 : TIdC_LONG; argp : Pointer) : TIdC_INT; cdecl;
  11019. {$EXTERNALSYM CRYPTO_EX_DATA_FUNCS}
  11020. CRYPTO_EX_DATA_FUNCS = record
  11021. argl : TIdC_LONG; //* Arbitary long */
  11022. argp : Pointer; //* Arbitary void * */
  11023. new_func : CRYPTO_EX_new;
  11024. free_func : CRYPTO_EX_free;
  11025. dup_func : CRYPTO_EX_dup;
  11026. end;
  11027. {$IFDEF DEBUG_SAFESTACK}
  11028. {$EXTERNALSYM STACK_OF_CRYPTO_EX_DATA_FUNCS}
  11029. STACK_OF_CRYPTO_EX_DATA_FUNCS = record
  11030. stack: stack;
  11031. end;
  11032. {$EXTERNALSYM PSTACK_OF_CRYPTO_EX_DATA_FUNCS}
  11033. PSTACK_OF_CRYPTO_EX_DATA_FUNCS = ^STACK_OF_CRYPTO_EX_DATA_FUNCS;
  11034. {$ELSE}
  11035. //I think the DECLARE_STACK_OF macro is empty
  11036. {$EXTERNALSYM PSTACK_OF_CRYPTO_EX_DATA_FUNCS}
  11037. PSTACK_OF_CRYPTO_EX_DATA_FUNCS = PSTACK;
  11038. {$ENDIF}
  11039. ///* An opaque type representing an implementation of "ex_data" support */
  11040. {$EXTERNALSYM PCRYPTO_EX_DATA_IMPL}
  11041. PCRYPTO_EX_DATA_IMPL = Pointer;
  11042. {$EXTERNALSYM ERR_string_data}
  11043. ERR_string_data = record
  11044. error : TIdC_ULONG;
  11045. _string : PIdAnsiChar;
  11046. end;
  11047. {$EXTERNALSYM PERR_string_data}
  11048. PERR_string_data = ^ERR_string_data;
  11049. {$EXTERNALSYM ERR_STATE}
  11050. ERR_STATE = record
  11051. tid : CRYPTO_THREADID;
  11052. // PID: TIdC_UINT;
  11053. err_flags : array [0..ERR_NUM_ERRORS - 1] of TIdC_INT;
  11054. err_buffer: array[0..ERR_NUM_ERRORS-1] of TIdC_UINT;
  11055. err_data : array [0..ERR_NUM_ERRORS -1] of PIdAnsiChar;
  11056. err_data_flags : array [0..ERR_NUM_ERRORS -1] of TIdC_INT;
  11057. err_file: array[0..ERR_NUM_ERRORS-1] of PIdAnsiChar;
  11058. err_line: array[0..ERR_NUM_ERRORS-1] of TIdC_INT;
  11059. top: TIdC_INT;
  11060. bottom: TIdC_INT;
  11061. end; // record
  11062. {$EXTERNALSYM TERR_STATE}
  11063. TERR_STATE = ERR_STATE;
  11064. {$EXTERNALSYM PERR_FNS}
  11065. PERR_FNS = Pointer;
  11066. //rand.h
  11067. {$IFDEF OPENSSL_FIPS}
  11068. {$EXTERNALSYM FIPS_RAND_SIZE_T}
  11069. FIPS_RAND_SIZE_T = TIdC_int;
  11070. {$ENDIF}
  11071. {$EXTERNALSYM RAND_METHOD}
  11072. RAND_METHOD = record
  11073. seed : procedure (const buf : Pointer; num : TIdC_INT) cdecl;
  11074. bytes : function(const buf : PIdAnsiChar; num : TIdC_INT) : TIdC_INT cdecl;
  11075. cleanup : procedure cdecl;
  11076. add : procedure (const buf : Pointer; num : TIdC_INT; entropy : TIdC_DOUBLE) cdecl;
  11077. pseudorand : function(buf : PIdAnsiChar; num : TIdC_INT) : TIdC_INT cdecl;
  11078. status : function : TIdC_INT cdecl;
  11079. end;
  11080. //bn.h
  11081. {$IFDEF SIXTY_FOUR_BIT_LONG}
  11082. {$EXTERNALSYM BN_ULLONG}
  11083. BN_ULLONG = TIdC_LONGLONG;
  11084. {$EXTERNALSYM BN_ULONG}
  11085. BN_ULONG = TIdC_ULONG;
  11086. {$EXTERNALSYM BN_LONG}
  11087. BN_LONG = TIdC_LONG;
  11088. {$ENDIF}
  11089. {$IFDEF SIXTY_FOUR_BIT}
  11090. {$EXTERNALSYM BN_ULLONG}
  11091. BN_ULLONG = TIdC_ULONGLONG;
  11092. {$EXTERNALSYM BN_LONG}
  11093. BN_LONG = TIdC_LONGLONG;
  11094. {$EXTERNALSYM BN_ULONG}
  11095. BN_ULONG = TIdC_ULONGLONG;
  11096. {$ENDIF}
  11097. {$IFDEF THIRTY_TWO_BIT}
  11098. {$EXTERNALSYM BN_ULLONG}
  11099. {$IFDEF BN_LLONG}
  11100. BN_ULLONG = TIdC_INT64;
  11101. {$ELSE}
  11102. BN_ULLONG = TIdC_ULONGLONG;
  11103. {$ENDIF}
  11104. {$EXTERNALSYM BN_LONG}
  11105. BN_LONG = TIdC_LONG;
  11106. {$EXTERNALSYM BN_ULONG}
  11107. BN_ULONG = TIdC_ULONG;
  11108. {$ENDIF}
  11109. {$EXTERNALSYM PBN_LONG}
  11110. PBN_LONG = ^BN_LONG;
  11111. {$EXTERNALSYM PBN_ULONG}
  11112. PBN_ULONG = ^BN_ULONG;
  11113. {$EXTERNALSYM BIGNUM}
  11114. BIGNUM = record
  11115. d : PBN_ULONG; // Pointer to an array of 'BN_BITS2' bit chunks.
  11116. top : TIdC_INT; // Index of last used d +1.
  11117. // The next are internal book keeping for bn_expand.
  11118. dmax : TIdC_INT; // Size of the d array.
  11119. neg : TIdC_INT; // one if the number is negative
  11120. flags : TIdC_INT;
  11121. end;
  11122. {$EXTERNALSYM PBIGNUM}
  11123. PBIGNUM = ^BIGNUM;
  11124. // BN_CTX = record
  11125. //This is defined internally. I don't want to do anything with an internal structure.
  11126. // end;
  11127. {$EXTERNALSYM PBN_CTX}
  11128. PBN_CTX = Pointer;//^BN_CTX;
  11129. {$EXTERNALSYM PPBN_CTX}
  11130. PPBN_CTX = ^PBN_CTX;
  11131. // Used for montgomery multiplication
  11132. {$EXTERNALSYM BN_MONT_CTX}
  11133. BN_MONT_CTX = record
  11134. ri : TIdC_INT; // number of bits in R
  11135. RR : BIGNUM; // used to convert to montgomery form
  11136. N : BIGNUM; // The modulus
  11137. Ni : BIGNUM; // R*(1/R mod N) - N*Ni = 1
  11138. // (Ni is only stored for bignum algorithm)
  11139. {#if 0
  11140. /* OpenSSL 0.9.9 preview: */
  11141. BN_ULONG n0[2];/* least significant word(s) of Ni */
  11142. #else
  11143. BN_ULONG n0; /* least significant word of Ni */
  11144. #endif}
  11145. {$IFNDEF USE_THIS}
  11146. //* OpenSSL 0.9.9 preview: */
  11147. n0 : array [0..1] of BN_ULONG;
  11148. {$ELSE}
  11149. n0 : BN_ULONG; // least significant word of Ni
  11150. {$ENDIF}
  11151. flags : TIdC_INT;
  11152. end;
  11153. {$EXTERNALSYM PBN_MONT_CTX}
  11154. PBN_MONT_CTX = ^BN_MONT_CTX;
  11155. // BN_BLINDING = record
  11156. //I can't locate any information about the record fields in this.
  11157. // end;
  11158. {$EXTERNALSYM PBN_BLINDING}
  11159. PBN_BLINDING = pointer;//^BN_BLINDING;
  11160. {$EXTERNALSYM BN_RECP_CTX}
  11161. BN_RECP_CTX = record
  11162. N : BIGNUM; // the divisor
  11163. Nr : BIGNUM; // the reciprocal
  11164. num_bits : TIdC_INT;
  11165. shift : TIdC_INT;
  11166. flags : TIdC_INT;
  11167. end;
  11168. {$EXTERNALSYM PBN_RECP_CTX}
  11169. PBN_RECP_CTX = ^BN_RECP_CTX;
  11170. {$EXTERNALSYM PBN_GENCB}
  11171. PBN_GENCB = ^BN_GENCB;
  11172. {$EXTERNALSYM PPBN_GENCB}
  11173. PPBN_GENCB = ^PBN_GENCB;
  11174. {$EXTERNALSYM BN_cb_1}
  11175. BN_cb_1 = procedure (p1, p2 : TIdC_INT; p3 : Pointer); cdecl;
  11176. {$EXTERNALSYM BN_cb_2}
  11177. BN_cb_2 = function (p1, p2 : TIdC_INT; p3 : PBN_GENCB): TIdC_INT; cdecl;
  11178. {$EXTERNALSYM BN_GENCB_union}
  11179. BN_GENCB_union = record
  11180. case Integer of
  11181. // if(ver==1) - handles old style callbacks
  11182. 0 : (cb_1 : BN_cb_1);
  11183. // if(ver==2) - new callback style
  11184. 1 : (cb_2 : BN_cb_2);
  11185. end;
  11186. {$EXTERNALSYM BN_GENCB}
  11187. BN_GENCB = record
  11188. ver : TIdC_UINT; // To handle binary (in)compatibility
  11189. arg : Pointer; // callback-specific data
  11190. cb : BN_GENCB_union;
  11191. end;
  11192. //aes.h
  11193. //seed.h
  11194. //chamellia.h
  11195. {$IFNDEF OPENSSL_NO_CAMELLIA}
  11196. {$EXTERNALSYM KEY_TABLE_TYPE}
  11197. KEY_TABLE_TYPE = array [0..(CAMELLIA_TABLE_WORD_LEN - 1)] of TIdC_UINT; //* to match with WORD */
  11198. {$EXTERNALSYM CAMELLIA_KEY_union}
  11199. CAMELLIA_KEY_union = record
  11200. case byte of
  11201. 0 : (d : TIdC_DOUBLE); //* ensures 64-bit align */
  11202. 1 : (rd_key : KEY_TABLE_TYPE);
  11203. end;
  11204. {$EXTERNALSYM CAMELLIA_KEY}
  11205. CAMELLIA_KEY = record
  11206. u : CAMELLIA_KEY_union;
  11207. grand_rounds : TIdC_INT;
  11208. end;
  11209. {$EXTERNALSYM PCAMELLIA_KEY}
  11210. PCAMELLIA_KEY = ^CAMELLIA_KEY;
  11211. {$ENDIF}
  11212. //whrlpool.h
  11213. {$EXTERNALSYM WHIRLPOOL_CTX_union}
  11214. WHIRLPOOL_CTX_union = record
  11215. case byte of
  11216. 0 : (c : array [0..WHIRLPOOL_DIGEST_LENGTH - 1] of byte );
  11217. 1 : (q : array [0..(WHIRLPOOL_DIGEST_LENGTH div SizeOf(TIdC_DOUBLE))-1 ] of TIdC_DOUBLE);
  11218. end;
  11219. {$EXTERNALSYM WHIRLPOOL_CTX}
  11220. WHIRLPOOL_CTX = record
  11221. H : WHIRLPOOL_CTX_union;
  11222. data : array [0..(WHIRLPOOL_BBLOCK div 8)-1] of byte;
  11223. bitoff : TIdC_INT;
  11224. bitlen : array[0..(WHIRLPOOL_COUNTER div sizeof(size_t))-1] of size_t;
  11225. end;
  11226. {$EXTERNALSYM PWHIRLPOOL_CTX}
  11227. PWHIRLPOOL_CTX = ^WHIRLPOOL_CTX;
  11228. //md2.h
  11229. {$IFNDEF OPENSSL_NO_MD2}
  11230. {$EXTERNALSYM MD2_CTX}
  11231. MD2_CTX = record
  11232. num : TIdC_UINT;
  11233. data : array [0..MD2_BLOCK - 1] of TIdAnsiChar;
  11234. cksm : array [0..MD2_BLOCK - 1] of MD2_INT;
  11235. state : array[0..MD2_BLOCK -1] of MD2_INT;
  11236. end;
  11237. {$EXTERNALSYM PMD2_CTX}
  11238. PMD2_CTX = ^MD2_CTX;
  11239. {$ENDIF}
  11240. //md4.h
  11241. {$IFNDEF OPENSSL_NO_MD4}
  11242. {$EXTERNALSYM MD4_LONG}
  11243. MD4_LONG = TIdC_ULONG;
  11244. {$EXTERNALSYM MD4_CTX}
  11245. MD4_CTX = record
  11246. A,B,C,D : MD4_LONG;
  11247. Nl,Nh : MD4_LONG;
  11248. data : array [0..(MD4_LBLOCK-1)] of MD4_LONG;
  11249. num : TIdC_UINT;
  11250. end;
  11251. {$EXTERNALSYM PMD4_CTX}
  11252. PMD4_CTX = ^MD4_CTX;
  11253. {$ENDIF}
  11254. //md5.h
  11255. {$EXTERNALSYM MD5_LONG}
  11256. MD5_LONG = TIdC_UINT;
  11257. {$EXTERNALSYM MD5_CTX}
  11258. MD5_CTX = record
  11259. A,B,C,D : MD5_LONG;
  11260. Nl,Nh : MD5_LONG;
  11261. data : array [0..(MD5_LBLOCK - 1)] of MD5_LONG;
  11262. num : TIdC_UINT;
  11263. end;
  11264. {$EXTERNALSYM PMD5_CTX}
  11265. PMD5_CTX = ^MD5_CTX;
  11266. //sha.h
  11267. //#if defined(OPENSSL_NO_SHA) || (defined(OPENSSL_NO_SHA0) && defined(OPENSSL_NO_SHA1))
  11268. //#error SHA is disabled.
  11269. //#endif
  11270. {$IFDEF OPENSSL_NO_SHA}
  11271. {$DEFINE DONTUSESHA}
  11272. {$ENDIF}
  11273. {$IFDEF PENSSL_NO_SHA0}
  11274. {$IFDEF OPENSSL_NO_SHA1}
  11275. {$DEFINE DONTUSESHA}
  11276. {$ENDIF}
  11277. {$ENDIF}
  11278. {$IFNDEF DONTUSESHA}
  11279. {$IFDEF OPENSSL_FIPS}
  11280. {$EXTERNALSYM FIPS_SHA_SIZE_T}
  11281. FIPS_SHA_SIZE_T = size_t;
  11282. {$ENDIF}
  11283. {$ENDIF}
  11284. {$EXTERNALSYM SHA_LONG}
  11285. SHA_LONG = TIdC_UINT;
  11286. {$EXTERNALSYM SHA_CTX}
  11287. SHA_CTX = record
  11288. h0,h1,h2,h3,h4 : SHA_LONG;
  11289. Nl,Nh : SHA_LONG;
  11290. data : array [0..SHA_LBLOCK] of SHA_LONG;
  11291. num : TIdC_INT;
  11292. end;
  11293. {$IFNDEF OPENSSL_NO_SHA256}
  11294. {$EXTERNALSYM SHA256_CTX}
  11295. SHA256_CTX = record
  11296. h : array [0..(8 - 1)] of SHA_LONG;
  11297. Nl,Nh : SHA_LONG;
  11298. data : array [0..(SHA_LBLOCK -1)] of SHA_LONG;
  11299. num,md_len : TIdC_UINT;
  11300. end;
  11301. {$ENDIF}
  11302. {$IFNDEF OPENSSL_NO_SHA512}
  11303. {$EXTERNALSYM SHA_LONG64}
  11304. //not defined like this in sha.h but a comment
  11305. //says that it must be 64 bit.
  11306. SHA_LONG64 = TIdC_UINT64;
  11307. {$EXTERNALSYM TSHA512_CTX_Union}
  11308. TSHA512_CTX_Union = record
  11309. case integer of
  11310. 0 : (d : array [0..(SHA_LBLOCK -1)] of SHA_LONG64);
  11311. 1 : (p : array [0..(SHA512_CBLOCK -1)] of byte);
  11312. end;
  11313. {$EXTERNALSYM SHA512_CTX}
  11314. SHA512_CTX = record
  11315. h : array[0..(8-1)]of SHA_LONG64;
  11316. Nl,Nh : SHA_LONG64;
  11317. u : TSHA512_CTX_Union;
  11318. num,md_len : TIdC_UINT;
  11319. end;
  11320. {$EXTERNALSYM PSHA512_CTX}
  11321. PSHA512_CTX = ^SHA512_CTX;
  11322. {$ENDIF}
  11323. //ui.h
  11324. {$EXTERNALSYM PUI_METHOD}
  11325. PUI_METHOD = Pointer; //^UI_METHOD
  11326. {$EXTERNALSYM PUI_STRING}
  11327. PUI_STRING = Pointer; //^UI_STRING;
  11328. {$IFDEF DEBUG_SAFESTACK}
  11329. {$EXTERNALSYM STACK_OF_UI_STRING}
  11330. STACK_OF_UI_STRING = record
  11331. stack: stack;
  11332. end;
  11333. {$EXTERNALSYM PSTACK_OF_UI_STRING}
  11334. PSTACK_OF_UI_STRING = ^STACK_OF_UI_STRING;
  11335. {$ELSE}
  11336. //I think the DECLARE_STACK_OF macro is empty
  11337. {$EXTERNALSYM PSTACK_OF_UI_STRING}
  11338. PSTACK_OF_UI_STRING = PSTACK;
  11339. {$ENDIF}
  11340. {$EXTERNALSYM UI_string_types}
  11341. {$EXTERNALSYM UIT_NONE}
  11342. {$EXTERNALSYM UIT_PROMPT}
  11343. {$EXTERNALSYM UIT_VERIFY}
  11344. {$EXTERNALSYM UIT_BOOLEAN}
  11345. {$EXTERNALSYM UIT_INFO}
  11346. {$EXTERNALSYM UIT_ERROR}
  11347. UI_string_types = (
  11348. UIT_NONE, //=0,
  11349. UIT_PROMPT, //* Prompt for a string */
  11350. UIT_VERIFY, //* Prompt for a string and verify */
  11351. UIT_BOOLEAN, //* Prompt for a yes/no response */
  11352. UIT_INFO, //* Send info to the user */
  11353. UIT_ERROR); //* Send an error message to the user */
  11354. //bio.h
  11355. //http://www.openssl.org/docs/crypto/bio.html
  11356. {$EXTERNALSYM PBIO}
  11357. PBIO = ^BIO;
  11358. {$EXTERNALSYM PBIO_METHOD}
  11359. PBIO_METHOD = ^BIO_METHOD;
  11360. {$EXTERNALSYM Pbio_info_cb}
  11361. Pbio_info_cb = procedure (_para1 : PBIO; _para2 : TIdC_INT; _para3 : PIdAnsiChar;
  11362. _para4 : TIdC_INT; _para5, _para6 : TIdC_LONG); cdecl;
  11363. {$EXTERNALSYM BIO_METHOD}
  11364. BIO_METHOD = record
  11365. _type : TIdC_INT;
  11366. name : PIdAnsiChar;
  11367. bwrite : function(_para1 : PBIO; _para2 : PIdAnsiChar; _para3 : TIdC_INT) : TIdC_INT; cdecl;
  11368. bread : function(_para1: PBIO; _para2: PIdAnsiChar; _para3: TIdC_INT) : TIdC_INT; cdecl;
  11369. bputs : function (_para1 : PBIO; _para2 : PIdAnsiChar) : TIdC_INT; cdecl;
  11370. bgets : function (_para1 : PBIO; _para2 : PIdAnsiChar; _para3 : TIdC_INT) : TIdC_INT; cdecl;
  11371. ctrl : function (_para1 : PBIO; _para2 : TIdC_INT; _para3 : TIdC_LONG; _para4 : Pointer) : TIdC_LONG; cdecl;
  11372. create : function(_para1 : PBIO) : TIdC_INT; cdecl;
  11373. destroy : function (_para1 : PBIO) : TIdC_INT; cdecl;
  11374. callback_ctrl : function (_para1 : PBIO; _para2 : TIdC_INT; _para3 : pbio_info_cb): TIdC_LONG; cdecl;
  11375. end;
  11376. BIO = record
  11377. method : PBIO_METHOD;
  11378. // bio, mode, argp, argi, argl, ret
  11379. callback : function (_para1 : PBIO; _para2 : TIdC_INT; _para3 : PIdAnsiChar;
  11380. _para4 : TIdC_INT; _para5, _para6 : TIdC_LONG) : TIdC_LONG cdecl;
  11381. cb_arg : PIdAnsiChar; // first argument for the callback
  11382. init : TIdC_INT;
  11383. shutdown : TIdC_INT;
  11384. flags : TIdC_INT; // extra storage
  11385. retry_reason : TIdC_INT;
  11386. num : TIdC_INT;
  11387. ptr : Pointer;
  11388. next_bio : PBIO; // used by filter BIOs
  11389. prev_bio : PBIO; // used by filter BIOs
  11390. references : TIdC_INT;
  11391. num_read : TIdC_ULONG;
  11392. num_write : TIdC_ULONG;
  11393. ex_data : CRYPTO_EX_DATA;
  11394. end;
  11395. {$EXTERNALSYM BIO}
  11396. {$EXTERNALSYM BIO_F_BUFFER_CTX}
  11397. BIO_F_BUFFER_CTX = record
  11398. {
  11399. /* Buffers are setup like this:
  11400. *
  11401. * <---------------------- size ----------------------->
  11402. * +---------------------------------------------------+
  11403. * | consumed | remaining | free space |
  11404. * +---------------------------------------------------+
  11405. * <-- off --><------- len ------->
  11406. *}
  11407. //* BIO *bio; */ /* this is now in the BIO struct */
  11408. ibuf_size : TIdC_INT; //* how big is the input buffer */
  11409. obuf_size : TIdC_INT; //* how big is the output buffer */
  11410. ibuf : PIdAnsiChar; //* the char array */
  11411. ibuf_len : TIdC_INT; //* how many bytes are in it */
  11412. ibuf_off : TIdC_INT; //* write/read offset */
  11413. obuf : PIdAnsiChar; //* the char array */
  11414. obuf_len : TIdC_INT; //* how many bytes are in it */
  11415. obuf_off : TIdC_INT; //* write/read offset */
  11416. end;
  11417. {$EXTERNALSYM PBIO_F_BUFFER_CTX}
  11418. PBIO_F_BUFFER_CTX = ^BIO_F_BUFFER_CTX;
  11419. //* Prefix and suffix callback in ASN1 BIO *//
  11420. {$EXTERNALSYM asn1_ps_function}
  11421. asn1_ps_function = function (b : PBIO; pbuf : PPIdAnsiChar; plen : PIdC_INT; parg : Pointer) : TIdC_INT cdecl;
  11422. //struct from engine.h
  11423. // ENGINE = record
  11424. //I don't have any info about record fields.
  11425. // end;
  11426. {$EXTERNALSYM PENGINE}
  11427. PENGINE = Pointer;//^ENGINE;
  11428. {$EXTERNALSYM PPENGINE}
  11429. PPENGINE = ^PENGINE;
  11430. //asn1.h
  11431. {$EXTERNALSYM I2D_OF_void}
  11432. //#define I2D_OF(type) int (*)(type *,unsigned char **)
  11433. I2D_OF_void = function(_para1 : Pointer; _para2 : PPByte) : TIdC_INT cdecl;
  11434. //D2I_OF(type) type *(*)(type **,const unsigned char **,long)
  11435. {$EXTERNALSYM D2I_OF_void}
  11436. D2I_OF_void = function (_para1 : PPointer; _para2 : PPByte; _para3 : TIdC_LONG) : Pointer cdecl;
  11437. // This is just an opaque pointer
  11438. // ASN1_VALUE = record
  11439. // end;
  11440. {$EXTERNALSYM PASN1_VALUE}
  11441. PASN1_VALUE = Pointer;//^ASN1_VALUE;
  11442. {$EXTERNALSYM PPASN1_VALUE}
  11443. PPASN1_VALUE = ^PASN1_VALUE;
  11444. {$IFDEF DEBUG_SAFESTACK}
  11445. {$EXTERNALSYM STACK_OF_ASN1_VALUE}
  11446. STACK_OF_ASN1_VALUE = record
  11447. stack: stack;
  11448. end;
  11449. {$EXTERNALSYM PSTACK_OF_ASN1_VALUE}
  11450. PSTACK_OF_ASN1_VALUE = ^STACK_OF_ASN1_VALUE;
  11451. {$ELSE}
  11452. //I think the DECLARE_STACK_OF macro is empty
  11453. {$EXTERNALSYM PSTACK_OF_ASN1_VALUE}
  11454. PSTACK_OF_ASN1_VALUE = PSTACK;
  11455. {$ENDIF}
  11456. {$EXTERNALSYM ASN1_OBJECT}
  11457. ASN1_OBJECT = record
  11458. sn, ln : PIdAnsiChar;
  11459. nid : TIdC_INT;
  11460. length : TIdC_INT;
  11461. data : PIdAnsiChar;
  11462. flags : TIdC_INT; // Should we free this one
  11463. end;
  11464. {$EXTERNALSYM PASN1_OBJECT}
  11465. PASN1_OBJECT = ^ASN1_OBJECT;
  11466. {$EXTERNALSYM PPASN1_OBJECT}
  11467. PPASN1_OBJECT = ^PASN1_OBJECT;
  11468. {$IFDEF DEBUG_SAFESTACK}
  11469. {$EXTERNALSYM STACK_OF_ASN1_OBJECT}
  11470. STACK_OF_ASN1_OBJECT = record
  11471. stack: stack;
  11472. end;
  11473. {$EXTERNALSYM PSTACK_OF_ASN1_OBJECT}
  11474. PSTACK_OF_ASN1_OBJECT = ^STACK_OF_ASN1_OBJECT;
  11475. {$ELSE}
  11476. //I think the DECLARE_STACK_OF macro is empty
  11477. {$EXTERNALSYM PSTACK_OF_ASN1_OBJECT}
  11478. PSTACK_OF_ASN1_OBJECT = PSTACK;
  11479. {$ENDIF}
  11480. {$EXTERNALSYM PPSTACK_OF_ASN1_OBJECT}
  11481. PPSTACK_OF_ASN1_OBJECT = ^PSTACK_OF_ASN1_OBJECT;
  11482. {$EXTERNALSYM asn1_string_st}
  11483. asn1_string_st = record
  11484. length : TIdC_INT;
  11485. _type : TIdC_INT;
  11486. data : PIdAnsiChar;
  11487. { The value of the following field depends on the type being
  11488. held. It is mostly being used for BIT_STRING so if the
  11489. input data has a non-zero 'unused bits' value, it will be
  11490. handled correctly }
  11491. flags : TIdC_LONG;
  11492. end;
  11493. //moved from asn1.h section here for a type definition
  11494. {$IFNDEF OPENSSL_EXPORT_VAR_AS_FUNCTION}
  11495. {$EXTERNALSYM PASN1_ITEM}
  11496. // ASN1_ITEM pointer exported type
  11497. // typedef const ASN1_ITEM ASN1_ITEM_EXP;
  11498. PASN1_ITEM = ^ASN1_ITEM;
  11499. {$ELSE}
  11500. // Platforms that can't easily handle shared global variables are declared
  11501. // as functions returning ASN1_ITEM pointers.
  11502. // ASN1_ITEM pointer exported type
  11503. //typedef const ASN1_ITEM * ASN1_ITEM_EXP(void);
  11504. {$EXTERNALSYM PASN1_ITEM_EXP}
  11505. PASN1_ITEM_EXP = ^ASN1_ITEM_EXP;
  11506. {$ENDIF}
  11507. // typedef int asn1_output_data_fn(BIO *out, BIO *data, ASN1_VALUE *val, int flags,
  11508. // const ASN1_ITEM *it);
  11509. {$EXTERNALSYM asn1_output_data_fn}
  11510. asn1_output_data_fn = function(AOut : PBIO; data : PBIO; val : PASN1_VALUE;
  11511. flags : TIdC_INT; it : PASN1_ITEM): TIdC_INT; stdcall;
  11512. {$EXTERNALSYM ASN1_STRING}
  11513. ASN1_STRING = asn1_string_st;
  11514. {$EXTERNALSYM PASN1_STRING}
  11515. PASN1_STRING = ^ASN1_STRING;
  11516. {$EXTERNALSYM PPASN1_STRING}
  11517. PPASN1_STRING = ^PASN1_STRING;
  11518. {$EXTERNALSYM ASN1_INTEGER}
  11519. ASN1_INTEGER = ASN1_STRING;
  11520. {$EXTERNALSYM PASN1_INTEGER}
  11521. PASN1_INTEGER = ^ASN1_INTEGER;
  11522. {$EXTERNALSYM PPASN1_INTEGER}
  11523. PPASN1_INTEGER = ^PASN1_INTEGER;
  11524. {$IFDEF DEBUG_SAFESTACK}
  11525. {$EXTERNALSYM STACK_OF_ASN1_INTEGER}
  11526. STACK_OF_ASN1_INTEGER = record
  11527. stack: stack;
  11528. end;
  11529. {$EXTERNALSYM PSTACK_OF_ASN1_INTEGER}
  11530. PSTACK_OF_ASN1_INTEGER = ^STACK_OF_ASN1_INTEGER;
  11531. {$ELSE}
  11532. //I think the DECLARE_STACK_OF macro is empty
  11533. {$EXTERNALSYM PSTACK_OF_ASN1_INTEGER}
  11534. PSTACK_OF_ASN1_INTEGER = PSTACK;
  11535. {$ENDIF}
  11536. {$EXTERNALSYM ASN1_ENUMERATED}
  11537. ASN1_ENUMERATED = ASN1_STRING;
  11538. {$EXTERNALSYM PASN1_ENUMERATED}
  11539. PASN1_ENUMERATED = ^ASN1_ENUMERATED;
  11540. {$EXTERNALSYM PPASN1_ENUMERATED}
  11541. PPASN1_ENUMERATED = ^PASN1_ENUMERATED;
  11542. {$EXTERNALSYM ASN1_BIT_STRING}
  11543. ASN1_BIT_STRING = ASN1_STRING;
  11544. {$EXTERNALSYM PASN1_BIT_STRING}
  11545. PASN1_BIT_STRING = ^ASN1_BIT_STRING;
  11546. {$EXTERNALSYM PPASN1_BIT_STRING}
  11547. PPASN1_BIT_STRING = ^PASN1_BIT_STRING;
  11548. {$EXTERNALSYM ASN1_OCTET_STRING}
  11549. ASN1_OCTET_STRING = ASN1_STRING;
  11550. {$EXTERNALSYM PASN1_OCTET_STRING}
  11551. PASN1_OCTET_STRING = ^ASN1_OCTET_STRING;
  11552. {$EXTERNALSYM PPASN1_OCTET_STRING}
  11553. PPASN1_OCTET_STRING = ^PASN1_OCTET_STRING;
  11554. {$EXTERNALSYM ASN1_PRINTABLESTRING}
  11555. ASN1_PRINTABLESTRING = ASN1_STRING;
  11556. {$EXTERNALSYM PASN1_PRINTABLESTRING}
  11557. PASN1_PRINTABLESTRING = ^ASN1_PRINTABLESTRING;
  11558. {$EXTERNALSYM PPASN1_PRINTABLESTRING}
  11559. PPASN1_PRINTABLESTRING = ^PASN1_PRINTABLESTRING;
  11560. {$EXTERNALSYM ASN1_T61STRING}
  11561. ASN1_T61STRING = ASN1_STRING;
  11562. {$EXTERNALSYM PASN1_T61STRING}
  11563. PASN1_T61STRING = ^ASN1_T61STRING;
  11564. {$EXTERNALSYM PPASN1_T61STRING}
  11565. PPASN1_T61STRING = ^PASN1_T61STRING;
  11566. {$EXTERNALSYM ASN1_IA5STRING}
  11567. ASN1_IA5STRING = ASN1_STRING;
  11568. {$EXTERNALSYM PASN1_IA5STRING}
  11569. PASN1_IA5STRING = ^ASN1_IA5STRING;
  11570. {$EXTERNALSYM PPASN1_IA5STRING}
  11571. PPASN1_IA5STRING = ^PASN1_IA5STRING;
  11572. {$EXTERNALSYM ASN1_UTCTIME}
  11573. ASN1_UTCTIME = ASN1_STRING;
  11574. {$EXTERNALSYM PASN1_UTCTIME}
  11575. PASN1_UTCTIME = ^ASN1_UTCTIME;
  11576. {$EXTERNALSYM PPASN1_UTCTIME}
  11577. PPASN1_UTCTIME = ^PASN1_UTCTIME;
  11578. {$EXTERNALSYM ASN1_GENERALIZEDTIME}
  11579. ASN1_GENERALIZEDTIME = ASN1_STRING;
  11580. {$EXTERNALSYM PASN1_GENERALIZEDTIME}
  11581. PASN1_GENERALIZEDTIME = ^ASN1_GENERALIZEDTIME;
  11582. {$EXTERNALSYM PPASN1_GENERALIZEDTIME}
  11583. PPASN1_GENERALIZEDTIME = ^PASN1_GENERALIZEDTIME;
  11584. {$EXTERNALSYM ASN1_TIME}
  11585. ASN1_TIME = ASN1_STRING;
  11586. {$EXTERNALSYM PASN1_TIME}
  11587. PASN1_TIME = ^ASN1_TIME;
  11588. {$EXTERNALSYM PPASN1_TIME}
  11589. PPASN1_TIME = ^PASN1_TIME;
  11590. {$EXTERNALSYM ASN1_GENERALSTRING}
  11591. ASN1_GENERALSTRING = ASN1_STRING;
  11592. {$EXTERNALSYM PASN1_GENERALSTRING}
  11593. PASN1_GENERALSTRING = ^ASN1_GENERALSTRING;
  11594. {$EXTERNALSYM PPASN1_GENERALSTRING}
  11595. PPASN1_GENERALSTRING = ^PASN1_GENERALSTRING;
  11596. {$IFDEF DEBUG_SAFESTACK}
  11597. {$EXTERNALSYM STACK_OF_ASN1_GENERALSTRING}
  11598. STACK_OF_ASN1_GENERALSTRING = record
  11599. _stack: STACK;
  11600. end;
  11601. {$EXTERNALSYM PSTACK_OF_ASN1_GENERALSTRING}
  11602. PSTACK_OF_ASN1_GENERALSTRING =^STACK_OF_ASN1_GENERALSTRING;
  11603. {$ELSE}
  11604. //I think the DECLARE_STACK_OF macro is empty
  11605. {$EXTERNALSYM PSTACK_OF_ASN1_GENERALSTRING}
  11606. PSTACK_OF_ASN1_GENERALSTRING = PSTACK;
  11607. {$ENDIF}
  11608. {$EXTERNALSYM ASN1_UNIVERSALSTRING}
  11609. ASN1_UNIVERSALSTRING = ASN1_STRING;
  11610. {$EXTERNALSYM PASN1_UNIVERSALSTRING}
  11611. PASN1_UNIVERSALSTRING = ^ASN1_UNIVERSALSTRING;
  11612. {$EXTERNALSYM PPASN1_UNIVERSALSTRING}
  11613. PPASN1_UNIVERSALSTRING = ^PASN1_UNIVERSALSTRING;
  11614. {$EXTERNALSYM ASN1_BMPSTRING}
  11615. ASN1_BMPSTRING = ASN1_STRING;
  11616. {$EXTERNALSYM PASN1_BMPSTRING}
  11617. PASN1_BMPSTRING = ^ASN1_BMPSTRING;
  11618. {$EXTERNALSYM PPASN1_BMPSTRING}
  11619. PPASN1_BMPSTRING = ^PASN1_BMPSTRING;
  11620. {$EXTERNALSYM ASN1_VISIBLESTRING}
  11621. ASN1_VISIBLESTRING = ASN1_STRING;
  11622. {$EXTERNALSYM PASN1_VISIBLESTRING}
  11623. PASN1_VISIBLESTRING = ^ASN1_VISIBLESTRING;
  11624. {$EXTERNALSYM PPASN1_VISIBLESTRING}
  11625. PPASN1_VISIBLESTRING = ^PASN1_VISIBLESTRING;
  11626. {$EXTERNALSYM ASN1_UTF8STRING}
  11627. ASN1_UTF8STRING = ASN1_STRING;
  11628. {$EXTERNALSYM PASN1_UTF8STRING}
  11629. PASN1_UTF8STRING = ^ASN1_UTF8STRING;
  11630. {$EXTERNALSYM PPASN1_UTF8STRING}
  11631. PPASN1_UTF8STRING = ^PASN1_UTF8STRING;
  11632. {$EXTERNALSYM ASN1_BOOLEAN}
  11633. ASN1_BOOLEAN = TIdC_INT;
  11634. {$EXTERNALSYM PASN1_BOOLEAN}
  11635. PASN1_BOOLEAN = ^ASN1_BOOLEAN;
  11636. {$EXTERNALSYM PPASN1_BOOLEAN}
  11637. PPASN1_BOOLEAN = ^PASN1_BOOLEAN;
  11638. {$EXTERNALSYM ASN1_NULL}
  11639. ASN1_NULL = TIdC_INT;
  11640. {$EXTERNALSYM PASN1_NULL}
  11641. PASN1_NULL = ^ASN1_NULL;
  11642. {$EXTERNALSYM PPASN1_NULL}
  11643. PPASN1_NULL = ^PASN1_NULL;
  11644. {$EXTERNALSYM ASN1_TYPE}
  11645. ASN1_TYPE = record
  11646. case Integer of
  11647. 0: (ptr: PIdAnsiChar);
  11648. 1: (boolean: ASN1_BOOLEAN);
  11649. 2: (asn1_string: PASN1_STRING);
  11650. 3: (_object: PASN1_OBJECT);
  11651. 4: (integer: PASN1_INTEGER);
  11652. 5: (enumerated: PASN1_ENUMERATED);
  11653. 6: (bit_string: PASN1_BIT_STRING);
  11654. 7: (octet_string: PASN1_OCTET_STRING);
  11655. 8: (printablestring: PASN1_PRINTABLESTRING);
  11656. 9: (t61string: PASN1_T61STRING);
  11657. 10: (ia5string: PASN1_IA5STRING);
  11658. 11: (generalstring: PASN1_GENERALSTRING);
  11659. 12: (bmpstring: PASN1_BMPSTRING);
  11660. 13: (universalstring: PASN1_UNIVERSALSTRING);
  11661. 14: (utctime: PASN1_UTCTIME);
  11662. 15: (generalizedtime: PASN1_GENERALIZEDTIME);
  11663. 16: (visiblestring: PASN1_VISIBLESTRING);
  11664. 17: (utf8string: PASN1_UTF8STRING);
  11665. { set and sequence are left complete and still
  11666. contain the set or sequence bytes }
  11667. 18: (_set: PASN1_STRING);
  11668. 19: (sequence: PASN1_STRING);
  11669. end;
  11670. {$EXTERNALSYM PASN1_TYPE}
  11671. PASN1_TYPE = ^ASN1_TYPE;
  11672. {$EXTERNALSYM PPASN1_TYPE}
  11673. PPASN1_TYPE = ^PASN1_TYPE;
  11674. {$IFDEF DEBUG_SAFESTACK}
  11675. {$EXTERNALSYM STACK_OF_ASN1_TYPE}
  11676. STACK_OF_ASN1_TYPE = record
  11677. _stack: stack;
  11678. end;
  11679. {$EXTERNALSYM PSTACK_OF_ASN1_TYPE}
  11680. PSTACK_OF_ASN1_TYPE = ^STACK_OF_ASN1_TYPE;
  11681. {$ELSE}
  11682. //I think the DECLARE_STACK_OF macro is empty
  11683. {$EXTERNALSYM PSTACK_OF_ASN1_TYPE}
  11684. PSTACK_OF_ASN1_TYPE = ^PSTACK;
  11685. {$ENDIF}
  11686. {$EXTERNALSYM ASN1_CTX}
  11687. ASN1_CTX = record
  11688. p : PIdAnsiChar; // work char pointer
  11689. eos : TIdC_INT; // end of sequence read for indefinite encoding
  11690. error : TIdC_INT; // error code to use when returning an error
  11691. inf : TIdC_INT; // constructed if 0x20, indefinite is 0x21
  11692. tag : TIdC_INT; // tag from last 'get object'
  11693. xclass : TIdC_INT; // class from last 'get object'
  11694. slen : TIdC_LONG; // length of last 'get object'
  11695. max : PIdAnsiChar; // largest value of p allowed
  11696. q : PIdAnsiChar; // temporary variable
  11697. pp : PPIdAnsiChar; // variable
  11698. line : TIdC_INT; // used in error processing
  11699. end;
  11700. {$EXTERNALSYM PASN1_CTX}
  11701. PASN1_CTX = ^ASN1_CTX;
  11702. {$EXTERNALSYM PPASN1_CTX}
  11703. PPASN1_CTX = ^PASN1_CTX;
  11704. {$EXTERNALSYM ASN1_METHOD}
  11705. ASN1_METHOD = record
  11706. i2d : i2d_of_void;
  11707. d2i : i2d_of_void;
  11708. create : function: Pointer; cdecl;
  11709. destroy : procedure(ptr: Pointer); cdecl;
  11710. end;
  11711. {$EXTERNALSYM PASN1_METHOD}
  11712. PASN1_METHOD = ^ASN1_METHOD;
  11713. {$EXTERNALSYM PPASN1_METHOD}
  11714. PPASN1_METHOD = ^PASN1_METHOD;
  11715. // This is used when parsing some Netscape objects
  11716. {$EXTERNALSYM ASN1_HEADER}
  11717. ASN1_HEADER = record
  11718. header : PASN1_OCTET_STRING;
  11719. data : Pointer;
  11720. meth : PASN1_METHOD;
  11721. end;
  11722. {$EXTERNALSYM PASN1_HEADER}
  11723. PASN1_HEADER = ^ASN1_HEADER;
  11724. {$EXTERNALSYM PPASN1_HEADER}
  11725. PPASN1_HEADER = ^PASN1_HEADER;
  11726. {$EXTERNALSYM ASN1_ENCODING}
  11727. ASN1_ENCODING = record
  11728. enc: PIdAnsiChar;
  11729. len: TIdC_LONG;
  11730. modified: TIdC_INT;
  11731. end;
  11732. {$EXTERNALSYM PASN1_ENCODING}
  11733. PASN1_ENCODING = ^ASN1_ENCODING;
  11734. {$EXTERNALSYM PPASN1_ENCODING}
  11735. PPASN1_ENCODING = ^PASN1_ENCODING;
  11736. {$EXTERNALSYM ASN1_STRING_TABLE}
  11737. ASN1_STRING_TABLE = record
  11738. nid : TIdC_INT;
  11739. minsize : TIdC_LONG;
  11740. maxsize : TIdC_LONG;
  11741. mask : TIdC_ULONG;
  11742. flags : TIdC_ULONG;
  11743. end;
  11744. {$EXTERNALSYM PASN1_STRING_TABLE}
  11745. PASN1_STRING_TABLE = ^ASN1_STRING_TABLE;
  11746. {$EXTERNALSYM PPASN1_STRING_TABLE}
  11747. PPASN1_STRING_TABLE = ^ASN1_STRING_TABLE;
  11748. {$IFDEF DEBUG_SAFESTACK}
  11749. {$EXTERNALSYM STACK_OF_ASN1_STRING_TABLE}
  11750. STACK_OF_ASN1_STRING_TABLE = record
  11751. _stack: stack;
  11752. end;
  11753. {$EXTERNALSYM PSTACK_OF_ASN1_STRING_TABLE}
  11754. PSTACK_OF_ASN1_STRING_TABLE = ^STACK_OF_ASN1_STRING_TABLE;
  11755. {$ELSE}
  11756. //I think the DECLARE_STACK_OF macro is empty
  11757. {$EXTERNALSYM PSTACK_OF_ASN1_STRING_TABLE}
  11758. PSTACK_OF_ASN1_STRING_TABLE = PSTACK;
  11759. {$ENDIF}
  11760. {$IFNDEF OPENSSL_EXPORT_VAR_AS_FUNCTION}
  11761. // ASN1_ITEM pointer exported type
  11762. // typedef const ASN1_ITEM ASN1_ITEM_EXP;
  11763. // ASN1_ITEM_EXP = ASN1_ITEM;
  11764. // PASN1_ITEM_EXP = ^ASN1_ITEM_EXP;
  11765. // PASN1_ITEM = ^ASN1_ITEM;
  11766. {$EXTERNALSYM PASN1_ITEM_EXP}
  11767. PASN1_ITEM_EXP = PASN1_ITEM;
  11768. {$ELSE}
  11769. // Platforms that can't easily handle shared global variables are declared
  11770. // as functions returning ASN1_ITEM pointers.
  11771. // ASN1_ITEM pointer exported type
  11772. //typedef const ASN1_ITEM * ASN1_ITEM_EXP(void);
  11773. {$EXTERNALSYM ASN1_ITEM_EXP}
  11774. ASN1_ITEM_EXP = function : PASN1_ITEM cdecl;
  11775. // PASN1_ITEM_EXP = ^ASN1_ITEM_EXP;
  11776. {$ENDIF}
  11777. //rsa.h - struct rsa_st
  11778. {$IFNDEF OPENSSL_NO_RSA}
  11779. {$IFDEF OPENSSL_FIPS}
  11780. {$EXTERNALSYM FIPS_RSA_SIZE_T}
  11781. FIPS_RSA_SIZE_T = TIdC_int;
  11782. {$ENDIF}
  11783. {$EXTERNALSYM PRSA}
  11784. PRSA = ^RSA;
  11785. {$EXTERNALSYM PPRSA}
  11786. PPRSA =^PRSA;
  11787. {$EXTERNALSYM RSA_METHOD}
  11788. RSA_METHOD = record
  11789. name : PIdAnsiChar;
  11790. rsa_pub_enc : function (flen : TIdC_INT; const from : PIdAnsiChar;
  11791. _to : PIdAnsiChar; rsa : PRSA; padding : TIdC_INT) : TIdC_INT; cdecl;
  11792. rsa_pub_dec : function (flen : TIdC_INT; const from : PIdAnsiChar;
  11793. _to : PIdAnsiChar; rsa : PRSA; padding : TIdC_INT) : TIdC_INT; cdecl;
  11794. rsa_priv_enc : function (flen : TIdC_INT; const from : PIdAnsiChar;
  11795. _to : PIdAnsiChar; rsa : PRSA; padding : TIdC_INT) : TIdC_INT; cdecl;
  11796. rsa_priv_dec : function (flen : TIdC_INT; const from : PIdAnsiChar;
  11797. _to : PIdAnsiChar; rsa : PRSA; padding : TIdC_INT) : TIdC_INT; cdecl;
  11798. rsa_mod_exp : function (r0 : PBIGNUM; const I : PBIGNUM;
  11799. rsa : PRSA; ctx : PBN_CTX) : TIdC_INT cdecl; // Can be null /
  11800. bn_mod_exp : function (r : PBIGNUM; const a : PBIGNUM;
  11801. const p : PBIGNUM; const m: PBIGNUM; ctx : PBN_CTX;
  11802. m_ctx : PBN_MONT_CTX ) : TIdC_INT; cdecl; // Can be null
  11803. init : function (rsa : PRSA) : TIdC_INT; cdecl; // called at new
  11804. finish : function (rsa : PRSA) : TIdC_INT; cdecl; // called at free
  11805. flags : TIdC_INT; // RSA_METHOD_FLAG_* things
  11806. app_data : PIdAnsiChar; // may be needed!
  11807. // New sign and verify functions: some libraries don't allow arbitrary data
  11808. // to be signed/verified: this allows them to be used. Note: for this to work
  11809. // the RSA_public_decrypt() and RSA_private_encrypt() should *NOT* be used
  11810. // RSA_sign(), RSA_verify() should be used instead. Note: for backwards
  11811. // compatibility this functionality is only enabled if the RSA_FLAG_SIGN_VER
  11812. // option is set in 'flags'.
  11813. //
  11814. rsa_sign : function (_type : TIdC_INT; const m : PIdAnsiChar; m_length : TIdC_UINT;
  11815. sigret : PIdAnsiChar; siglen : PIdC_UINT; const rsa : PRSA) : TIdC_INT; cdecl;
  11816. rsa_verify : function(dtype : TIdC_INT; const m : PIdAnsiChar; m_length : PIdC_UINT;
  11817. sigbuf : PIdAnsiChar; siglen : PIdC_UINT; const rsa :PRSA) : TIdC_INT; cdecl;
  11818. // If this callback is NULL, the builtin software RSA key-gen will be used.
  11819. // This is for behavioural compatibility whilst the code gets rewired, but
  11820. // one day it would be nice to assume there are no such things as "builtin
  11821. // software" implementations.
  11822. rsa_keygen : function (rsa : PRSA; bits : TIdC_INT; e : PBIGNUM; cb : PBN_GENCB) : TIdC_INT; cdecl;
  11823. end;
  11824. {$EXTERNALSYM PRSA_METHOD}
  11825. PRSA_METHOD = ^RSA_METHOD;
  11826. {$EXTERNALSYM rsa_st}
  11827. rsa_st = record
  11828. // The first parameter is used to pickup errors where
  11829. // this is passed instead of aEVP_PKEY, it is set to 0
  11830. pad : TIdC_INT;
  11831. version : TIdC_LONG;
  11832. meth : PRSA_METHOD; // const RSA_METHOD *meth;
  11833. // functional reference if 'meth' is ENGINE-provided
  11834. engine : PENGINE;
  11835. n : PBIGNUM;
  11836. e : PBIGNUM;
  11837. d : PBIGNUM;
  11838. p : PBIGNUM;
  11839. q : PBIGNUM;
  11840. dmp1 : PBIGNUM;
  11841. dmq1 : PBIGNUM;
  11842. iqmp : PBIGNUM;
  11843. // be careful using this if the RSA structure is shared
  11844. ex_data : CRYPTO_EX_DATA;
  11845. references : TIdC_INT;
  11846. flags : TIdC_INT;
  11847. // Used to cache montgomery values
  11848. _method_mod_n : PBN_MONT_CTX;
  11849. _method_mod_p : PBN_MONT_CTX;
  11850. _method_mod_q : PBN_MONT_CTX;
  11851. // all BIGNUM values are actually in the following data, if it is not NULL
  11852. bignum_data : PIdAnsiChar;
  11853. blinding : PBN_BLINDING;
  11854. mt_blinding : PBN_BLINDING;
  11855. end;
  11856. {$EXTERNALSYM RSA}
  11857. RSA = rsa_st;
  11858. {$EXTERNALSYM Prsa_st}
  11859. Prsa_st = PRSA;
  11860. {$ENDIF}
  11861. //dso.h
  11862. {$EXTERNALSYM PDSO}
  11863. PDSO = ^DSO;
  11864. ///* The function prototype used for method functions (or caller-provided
  11865. // * callbacks) that transform filenames. They are passed a DSO structure pointer
  11866. // * (or NULL if they are to be used independantly of a DSO object) and a
  11867. // * filename to transform. They should either return NULL (if there is an error
  11868. // * condition) or a newly allocated string containing the transformed form that
  11869. // * the caller will need to free with OPENSSL_free() when done. */
  11870. {$EXTERNALSYM DSO_NAME_CONVERTER_FUNC}
  11871. DSO_NAME_CONVERTER_FUNC = function (dso : PDSO; para1 : PIdAnsiChar) : PIdAnsiChar cdecl;
  11872. {$EXTERNALSYM PDSO_METHOD}
  11873. PDSO_METHOD = ^DSO_METHOD;
  11874. {$EXTERNALSYM DSO_FUNC_TYPE}
  11875. DSO_FUNC_TYPE = procedure cdecl;
  11876. ///* The function prototype used for method functions (or caller-provided
  11877. // * callbacks) that merge two file specifications. They are passed a
  11878. // * DSO structure pointer (or NULL if they are to be used independantly of
  11879. // * a DSO object) and two file specifications to merge. They should
  11880. // * either return NULL (if there is an error condition) or a newly allocated
  11881. // * string containing the result of merging that the caller will need
  11882. // * to free with OPENSSL_free() when done.
  11883. // * Here, merging means that bits and pieces are taken from each of the
  11884. // * file specifications and added together in whatever fashion that is
  11885. // * sensible for the DSO method in question. The only rule that really
  11886. // * applies is that if the two specification contain pieces of the same
  11887. // * type, the copy from the first string takes priority. One could see
  11888. // * it as the first specification is the one given by the user and the
  11889. // * second being a bunch of defaults to add on if they're missing in the
  11890. // * first. */
  11891. {$EXTERNALSYM DSO_MERGER_FUNC}
  11892. DSO_MERGER_FUNC = function (DSO : PDSO; para1, para2 : PIdAnsiChar) : PIdAnsiChar stdcall;
  11893. {$EXTERNALSYM DSO_METHOD}
  11894. DSO_METHOD = record
  11895. name : PIdAnsiChar;
  11896. ///* Loads a shared library, NB: new DSO_METHODs must ensure that a
  11897. // * successful load populates the loaded_filename field, and likewise a
  11898. // * successful unload OPENSSL_frees and NULLs it out. */
  11899. dso_load : function (dso : PDSO) : TIdC_INT cdecl;
  11900. //* Unloads a shared library */
  11901. dso_unload : function (dso : PDSO) : TIdC_INT cdecl;
  11902. //* Binds a variable */
  11903. dso_bind_var : function (dso : PDSO; symname : PIdAnsiChar) : Pointer cdecl;
  11904. ///* Binds a function - assumes a return type of DSO_FUNC_TYPE.
  11905. // * This should be cast to the real function prototype by the
  11906. // * caller. Platforms that don't have compatible representations
  11907. // * for different prototypes (this is possible within ANSI C)
  11908. // * are highly unlikely to have shared libraries at all, let
  11909. // * alone a DSO_METHOD implemented for them. */
  11910. dso_bind_func : function (dso : PDSO; symname : PIdAnsiChar) : DSO_FUNC_TYPE stdcall;
  11911. ///* The generic (yuck) "ctrl()" function. NB: Negative return
  11912. // * values (rather than zero) indicate errors. */
  11913. dso_ctrl : function (dso : PDSO; cmd : TIdC_INT; larg : TIdC_LONG; parg : Pointer) : TIdC_LONG stdcall;
  11914. ///* The default DSO_METHOD-specific function for converting filenames to
  11915. // * a canonical native form. */
  11916. dso_name_converter : DSO_NAME_CONVERTER_FUNC;
  11917. ///* The default DSO_METHOD-specific function for converting filenames to
  11918. // * a canonical native form. */
  11919. dso_merger : DSO_MERGER_FUNC;
  11920. //* [De]Initialisation handlers. */
  11921. init : function (dso : PDSO) : TIdC_INT stdcall;
  11922. finish : function (dso : PDSO) : TIdC_INT stdcall;
  11923. //* Return pathname of the module containing location */
  11924. pathbyaddr : function (addr : Pointer; path : PIdAnsiChar; sz : TIdC_INT) : TIdC_INT stdcall;
  11925. //* Perform global symbol lookup, i.e. among *all* modules */
  11926. globallookup : function (symname : PIdAnsiChar) : Pointer stdcall;
  11927. end;
  11928. {$EXTERNALSYM DSO}
  11929. DSO = record
  11930. meth : PDSO_METHOD;
  11931. ///* Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS
  11932. // * doesn't use anything but will need to cache the filename
  11933. // * for use in the dso_bind handler. All in all, let each
  11934. // * method control its own destiny. "Handles" and such go in
  11935. // * a STACK. */
  11936. meth_data : PSTACK_OF_POINTER;
  11937. references : TIdC_INT;
  11938. flags : TIdC_INT;
  11939. ///* For use by applications etc ... use this for your bits'n'pieces,
  11940. // * don't touch meth_data! */
  11941. ex_data : CRYPTO_EX_DATA;
  11942. ///* If this callback function pointer is set to non-NULL, then it will
  11943. // * be used in DSO_load() in place of meth->dso_name_converter. NB: This
  11944. // * should normally set using DSO_set_name_converter(). */
  11945. name_converter : DSO_NAME_CONVERTER_FUNC;
  11946. ///* If this callback function pointer is set to non-NULL, then it will
  11947. // * be used in DSO_load() in place of meth->dso_merger. NB: This
  11948. // * should normally set using DSO_set_merger(). */
  11949. merger : DSO_MERGER_FUNC;
  11950. ///* This is populated with (a copy of) the platform-independant
  11951. // * filename used for this DSO. */
  11952. filename : PIdAnsiChar;
  11953. ///* This is populated with (a copy of) the translated filename by which
  11954. // * the DSO was actually loaded. It is NULL iff the DSO is not currently
  11955. // * loaded. NB: This is here because the filename translation process
  11956. // * may involve a callback being invoked more than once not only to
  11957. // * convert to a platform-specific form, but also to try different
  11958. // * filenames in the process of trying to perform a load. As such, this
  11959. // * variable can be used to indicate (a) whether this DSO structure
  11960. // * corresponds to a loaded library or not, and (b) the filename with
  11961. // * which it was actually loaded. */
  11962. loaded_filename : PIdAnsiChar;
  11963. end;
  11964. //dh.h
  11965. {$IFNDEF OPENSSL_NO_DH}
  11966. {$EXTERNALSYM PDH}
  11967. PDH = ^DH;
  11968. {$EXTERNALSYM DH_METHOD}
  11969. DH_METHOD = record
  11970. name : PIdAnsiChar;
  11971. // Methods here
  11972. generate_key : function (dh : PDH) : TIdC_INT; cdecl;
  11973. compute_key : function (key : PIdAnsiChar; const pub_key : PBIGNUM; dh : PDH) : TIdC_INT; cdecl;
  11974. bn_mod_exp : function (const dh : PDH; r : PBIGNUM; const e : PBIGNUM;
  11975. const p : PBIGNUM; const m : PBIGNUM; ctx : PBN_CTX;
  11976. m_ctx : PBN_MONT_CTX) : TIdC_INT; cdecl; // Can be null
  11977. init : function (dh : PDH) : TIdC_INT; cdecl;
  11978. finish : function (dh : PDH) : TIdC_INT; cdecl;
  11979. flags : TIdC_INT;
  11980. app_data : PIdAnsiChar;
  11981. // If this is non-NULL, it will be used to generate parameters
  11982. generate_params : function(dh : PDH; prime_len, generator : TIdC_INT; cb : PBN_GENCB) : TIdC_INT; cdecl;
  11983. end;
  11984. {$EXTERNALSYM dh_st}
  11985. dh_st = record
  11986. // The first parameter is used to pickup errors where
  11987. // this is passed instead of aEVP_PKEY, it is set to 0
  11988. pad : TIdC_INT;
  11989. version : TIdC_LONG;
  11990. meth : PRSA_METHOD;
  11991. // functional reference if 'meth' is ENGINE-provided
  11992. engine: PENGINE;
  11993. n : PBIGNUM;
  11994. e : PBIGNUM;
  11995. d : PBIGNUM;
  11996. p : PBIGNUM;
  11997. q : PBIGNUM;
  11998. dmp1 : PBIGNUM;
  11999. dmq1 : PBIGNUM;
  12000. iqmp : PBIGNUM;
  12001. // be careful using this if the RSA structure is shared
  12002. ex_data : CRYPTO_EX_DATA;
  12003. references : TIdC_INT;
  12004. flags : TIdC_INT;
  12005. // Used to cache montgomery values
  12006. _method_mod_n : BN_MONT_CTX;
  12007. _method_mod_p : BN_MONT_CTX;
  12008. _method_mod_q : BN_MONT_CTX;
  12009. // all BIGNUM values are actually in the following data, if it is not NULL
  12010. bignum_data : PIdAnsiChar;
  12011. blinding : PBN_BLINDING;
  12012. mt_blinding : PBN_BLINDING;
  12013. end;
  12014. {$EXTERNALSYM DH}
  12015. DH = dh_st;
  12016. {$EXTERNALSYM Pdh_st}
  12017. Pdh_st = PDH;
  12018. {$EXTERNALSYM PPDH}
  12019. PPDH =^PDH;
  12020. {$ENDIF}
  12021. // dsa.h
  12022. {$IFNDEF OPENSSL_NO_DSA}
  12023. {$IFDEF OPENSSL_FIPS}
  12024. {$EXTERNALSYM FIPS_DSA_SIZE_T}
  12025. FIPS_DSA_SIZE_T = TIdC_int;
  12026. {$ENDIF}
  12027. {$EXTERNALSYM DSA_SIG}
  12028. DSA_SIG = record
  12029. r : PBIGNUM;
  12030. s : PBIGNUM;
  12031. end;
  12032. {$EXTERNALSYM PDSA_SIG}
  12033. PDSA_SIG = ^DSA_SIG;
  12034. {$EXTERNALSYM PDSA}
  12035. PDSA = ^DSA;
  12036. {$EXTERNALSYM DSA_METHOD}
  12037. DSA_METHOD = record
  12038. name : PIdAnsiChar;
  12039. dsa_do_sign : function (const dgst : PIdAnsiChar; dlen : TIdC_INT; dsa : PDSA) : PDSA_SIG; cdecl;
  12040. dsa_sign_setup : function (dsa : PDSA; ctx_in : PBN_CTX; kinvp, rp : PPBN_CTX) : TIdC_INT; cdecl;
  12041. dsa_do_verify : function(dgst : PIdAnsiChar; dgst_len : TIdC_INT;
  12042. sig : PDSA_SIG; dsa : PDSA) : TIdC_INT; cdecl;
  12043. dsa_mod_exp : function(dsa : PDSA; rr, a1, p1,
  12044. a2, p2, m : PBIGNUM; ctx : PBN_CTX;
  12045. in_mont : PBN_MONT_CTX) : TIdC_INT; cdecl;
  12046. bn_mod_exp : function (dsa : PDSA; r, a : PBIGNUM; const p, m : PBIGNUM;
  12047. ctx : PBN_CTX; m_ctx : PBN_CTX): TIdC_INT; cdecl; // Can be null
  12048. init : function (dsa : PDSA) : TIdC_INT; cdecl;
  12049. finish : function (dsa : PDSA) : TIdC_INT; cdecl;
  12050. flags : TIdC_INT;
  12051. app_data : PIdAnsiChar;
  12052. // If this is non-NULL, it is used to generate DSA parameters
  12053. dsa_paramgen : function (dsa : PDSA; bits : TIdC_INT; seed : PIdAnsiChar;
  12054. seed_len : TIdC_INT; counter_ret : PIdC_INT; h_ret : PIdC_ULONG;
  12055. cb : PBN_GENCB ) : TIdC_INT; cdecl;
  12056. // If this is non-NULL, it is used to generate DSA keys
  12057. dsa_keygen : function(dsa : PDSA) : TIdC_INT; cdecl;
  12058. end;
  12059. {$EXTERNALSYM PDSA_METHOD}
  12060. PDSA_METHOD = ^DSA_METHOD;
  12061. {$EXTERNALSYM dsa_st}
  12062. dsa_st = record
  12063. // This first variable is used to pick up errors where
  12064. // a DSA is passed instead of of a EVP_PKEY
  12065. pad : TIdC_INT;
  12066. version : TIdC_LONG;
  12067. write_params : TIdC_INT;
  12068. p : PBIGNUM;
  12069. q : PBIGNUM; // == 20
  12070. g : PBIGNUM;
  12071. pub_key : PBIGNUM; // y public key
  12072. priv_key : PBIGNUM; // x private key
  12073. kinv : BIGNUM; // Signing pre-calc
  12074. r : PBIGNUM; // Signing pre-calc
  12075. flags : TIdC_INT;
  12076. // Normally used to cache montgomery values
  12077. method_mont_p : PBN_MONT_CTX;
  12078. references : TIdC_INT;
  12079. ex_data : CRYPTO_EX_DATA;
  12080. meth : PDSA_METHOD;
  12081. // functional reference if 'meth' is ENGINE-provided
  12082. engine : PENGINE;
  12083. end;
  12084. {$EXTERNALSYM DSA}
  12085. DSA = dsa_st;
  12086. {$EXTERNALSYM Pdsa_st}
  12087. Pdsa_st = PDSA;
  12088. {$EXTERNALSYM PPDSA}
  12089. PPDSA = ^PDSA;
  12090. {$ENDIF}
  12091. // ec.h
  12092. {$IFNDEF OPENSSL_NO_EC}
  12093. // EC_METHOD = record
  12094. //The fields are internal to OpenSSL, they are not listed in the header.
  12095. // end;
  12096. {$EXTERNALSYM PEC_METHOD}
  12097. PEC_METHOD = Pointer;//^EC_METHOD;
  12098. {$EXTERNALSYM PPEC_METHOD}
  12099. PPEC_METHOD = ^PEC_METHOD;
  12100. // EC_GROUP = record
  12101. //The fields are internal to OpenSSL, they are not listed in the header.
  12102. // end;
  12103. {$EXTERNALSYM PEC_GROUP}
  12104. PEC_GROUP = Pointer;//^EC_GROUP;
  12105. {$EXTERNALSYM PPEC_GROUP}
  12106. PPEC_GROUP = ^PEC_GROUP;
  12107. // EC_POINT = record
  12108. //The fields are internal to OpenSSL, they are not listed in the header.
  12109. // end;
  12110. {$EXTERNALSYM PEC_POINT}
  12111. PEC_POINT = Pointer;//^EC_POINT;
  12112. {$EXTERNALSYM PPEC_POINT}
  12113. PPEC_POINT = ^PEC_POINT;
  12114. {$EXTERNALSYM EC_builtin_curve}
  12115. EC_builtin_curve = record
  12116. nid : TIdC_INT;
  12117. comment : PIdAnsiChar;
  12118. end;
  12119. {$EXTERNALSYM Pec_key_st}
  12120. Pec_key_st = Pointer;
  12121. {$EXTERNALSYM PEC_KEY}
  12122. PEC_KEY = Pec_key_st;//^EC_KEY;
  12123. // EC_KEY = record
  12124. //The fields are internal to OpenSSL, they are not listed in the header.
  12125. // end;
  12126. {$EXTERNALSYM PPEC_KEY}
  12127. PPEC_KEY = ^PEC_KEY;
  12128. {$ENDIF}
  12129. //evp.h
  12130. // EVP_PBE_KEYGEN = record
  12131. // end;
  12132. {$EXTERNALSYM PEVP_PKEY_METHOD}
  12133. PEVP_PKEY_METHOD = pointer; //This is not defined publically in OpenSSL 1.0.0
  12134. {$EXTERNALSYM PEVP_PKEY_CTX}
  12135. PEVP_PKEY_CTX = pointer; //This is not defined publically in OpenSSL 1.0.0
  12136. {$EXTERNALSYM PPEVP_PKEY_CTX}
  12137. PPEVP_PKEY_CTX = ^PEVP_PKEY_CTX;
  12138. {$EXTERNALSYM PEVP_PKEY_ASN1_METHOD}
  12139. PEVP_PKEY_ASN1_METHOD = pointer;
  12140. {$EXTERNALSYM PEVP_PBE_KEYGEN}
  12141. PEVP_PBE_KEYGEN = Pointer;//^EVP_PBE_KEYGEN;
  12142. //evp.h
  12143. //struct evp_pkey_st
  12144. {$EXTERNALSYM PPEVP_PKEY}
  12145. PPEVP_PKEY = ^PEVP_PKEY;
  12146. {$EXTERNALSYM PEVP_PKEY}
  12147. PEVP_PKEY = ^EVP_PKEY;
  12148. {$EXTERNALSYM EVP_PKEY_union}
  12149. EVP_PKEY_union = record
  12150. case byte of
  12151. 0: (ptr : PIdAnsiChar);
  12152. {$IFNDEF OPENSSL_NO_RSA}
  12153. 1: (rsa : PRSA); // RSA
  12154. {$ENDIF}
  12155. {$IFNDEF OPENSSL_NO_DSA}
  12156. 2: (dsa : PDSA); // DSA
  12157. {$ENDIF}
  12158. {$IFNDEF OPENSSL_NO_DH}
  12159. 3: (dh :PDH); // DH
  12160. {$ENDIF}
  12161. {$IFNDEF OPENSSL_NO_EC}
  12162. 4: (ec : PEC_KEY); // ECC
  12163. {$ENDIF}
  12164. end;
  12165. {$EXTERNALSYM Pevp_pkey_st}
  12166. Pevp_pkey_st = PEVP_PKEY;
  12167. //this was moved from x509 section so that something here can compile.
  12168. {$IFDEF DEBUG_SAFESTACK}
  12169. {$EXTERNALSYM STACK_OF_X509_ATTRIBUTE}
  12170. STACK_OF_X509_ATTRIBUTE = record
  12171. _stack: STACK;
  12172. end;
  12173. {$EXTERNALSYM PSTACK_OF_X509_ATTRIBUTE}
  12174. PSTACK_OF_X509_ATTRIBUTE = ^STACK_OF_X509_ATTRIBUTE;
  12175. {$ELSE}
  12176. //I think the DECLARE_STACK_OF macro is empty
  12177. {$EXTERNALSYM PSTACK_OF_X509_ATTRIBUTE}
  12178. PSTACK_OF_X509_ATTRIBUTE = PSTACK;
  12179. {$ENDIF}
  12180. {$EXTERNALSYM PPSTACK_OF_X509_ATTRIBUTE}
  12181. PPSTACK_OF_X509_ATTRIBUTE = ^PSTACK_OF_X509_ATTRIBUTE;
  12182. {$EXTERNALSYM EVP_PKEY}
  12183. EVP_PKEY = record
  12184. _type : TIdC_INT;
  12185. save_type : TIdC_INT;
  12186. references : TIdC_INT;
  12187. ameth : PEVP_PKEY_ASN1_METHOD;
  12188. pkey : EVP_PKEY_union;
  12189. attributes : PSTACK_OF_X509_ATTRIBUTE; // [ 0 ]
  12190. end;
  12191. {$EXTERNALSYM PEVP_MD}
  12192. PEVP_MD = ^EVP_MD;
  12193. {$EXTERNALSYM PEVP_MD_CTX}
  12194. PEVP_MD_CTX = ^EVP_MD_CTX;
  12195. {$EXTERNALSYM PPEVP_MD_CTX}
  12196. PPEVP_MD_CTX = ^PEVP_MD_CTX;
  12197. {$EXTERNALSYM EVP_MD_CTX}
  12198. EVP_MD_CTX = record
  12199. digest : PEVP_MD;
  12200. engine : PENGINE; // functional reference if 'digest' is ENGINE-provided
  12201. flags : TIdC_ULONG;
  12202. md_data : Pointer;
  12203. //* Public key context for sign/verify */
  12204. pctx : PEVP_PKEY_CTX;
  12205. //* Update function: usually copied from EVP_MD */
  12206. // int (*update)(EVP_MD_CTX *ctx,const void *data,size_t count);
  12207. update : function (ctx : PEVP_MD_CTX; const data : Pointer; count : size_t) : TIdC_INT cdecl;
  12208. end;
  12209. {$EXTERNALSYM EVP_MD_SVCTX}
  12210. EVP_MD_SVCTX = record
  12211. mctx : PEVP_MD_CTX;
  12212. key : Pointer;
  12213. end;
  12214. {$EXTERNALSYM PEVP_MD_SVCTX}
  12215. PEVP_MD_SVCTX = ^EVP_MD_SVCTX;
  12216. {$EXTERNALSYM EVP_MD}
  12217. EVP_MD = record
  12218. _type : TIdC_INT;
  12219. pkey_type : TIdC_INT;
  12220. md_size : TIdC_INT;
  12221. flags : TIdC_ULONG;
  12222. init : function (ctx : PEVP_MD_CTX) : TIdC_INT; cdecl;
  12223. update : function (ctx : PEVP_MD_CTX; data : Pointer; count : size_t):TIdC_INT; cdecl;
  12224. _final : function (ctx : PEVP_MD_CTX; md : PIdAnsiChar) : TIdC_INT; cdecl;
  12225. copy : function (_to : PEVP_MD_CTX; from : PEVP_MD_CTX ) : TIdC_INT; cdecl;
  12226. cleanup : function(ctx : PEVP_MD_CTX) : TIdC_INT; cdecl;
  12227. // FIXME: prototype these some day
  12228. sign : function(_type : TIdC_INT; m : PIdAnsiChar; m_length : TIdC_UINT;
  12229. sigret : PIdAnsiChar; siglen : TIdC_UINT; key : Pointer) : TIdC_INT; cdecl;
  12230. verify : function(_type : TIdC_INT; m : PIdAnsiChar; m_length : PIdAnsiChar;
  12231. sigbuf : PIdAnsiChar; siglen : TIdC_UINT; key : Pointer) : TIdC_INT; cdecl;
  12232. required_pkey_type : array [0..4] of TIdC_INT; // EVP_PKEY_xxx
  12233. block_size : TIdC_INT;
  12234. ctx_size : TIdC_INT; // how big does the ctx->md_data need to be
  12235. end;
  12236. {$EXTERNALSYM PPEVP_CIPHER_CTX}
  12237. PPEVP_CIPHER_CTX = ^PEVP_CIPHER_CTX;
  12238. {$EXTERNALSYM PEVP_CIPHER_CTX}
  12239. PEVP_CIPHER_CTX = ^EVP_CIPHER_CTX;
  12240. {$EXTERNALSYM PEVP_CIPHER}
  12241. PEVP_CIPHER = ^EVP_CIPHER;
  12242. {$EXTERNALSYM EVP_CIPHER}
  12243. EVP_CIPHER = record
  12244. nid : TIdC_INT;
  12245. block_size : TIdC_INT;
  12246. key_len : TIdC_INT; // Default value for variable length ciphers
  12247. iv_len : TIdC_INT;
  12248. flags : TIdC_UINT; // Various flags
  12249. init : function (ctx : PEVP_CIPHER_CTX; key : PIdAnsiChar; iv : PIdAnsiChar; enc : TIdC_INT): TIdC_INT; cdecl;
  12250. do_cipher : function (ctx : PEVP_CIPHER_CTX; _out : PIdAnsiChar; _in : PIdAnsiChar; inl : size_t) : TIdC_INT; cdecl;
  12251. cleanup : function (_para1 : PEVP_CIPHER_CTX): TIdC_INT; cdecl; // cleanup ctx
  12252. ctx_size : TIdC_INT; // how big ctx->cipher_data needs to be
  12253. set_asn1_parameters : function (_para1 : PEVP_CIPHER_CTX;
  12254. _para2 : PASN1_TYPE) : TIdC_INT; cdecl; // Populate a ASN1_TYPE with parameters
  12255. get_asn1_parameters :function (_para1 : PEVP_CIPHER_CTX;
  12256. _para2 : PASN1_TYPE) : TIdC_INT; cdecl; // Get parameters from a ASN1_TYPE
  12257. ctrl : function (_para1 : PEVP_CIPHER_CTX; _type : TIdC_INT; arg : TIdC_INT;
  12258. ptr : Pointer): TIdC_INT; cdecl; // Miscellaneous operations
  12259. app_data : Pointer; // Application data
  12260. end;
  12261. {$EXTERNALSYM EVP_CIPHER_CTX}
  12262. EVP_CIPHER_CTX = record
  12263. cipher : PEVP_CIPHER;
  12264. engine : PENGINE; // functional reference if 'cipher' is ENGINE-provided
  12265. encrypt: TIdC_INT; // encrypt or decrypt
  12266. buf_len : TIdC_INT; // number we have left
  12267. oiv : array [0..EVP_MAX_IV_LENGTH-1] of TIdAnsiChar; // original iv
  12268. iv : array [0..EVP_MAX_IV_LENGTH -1] of TIdAnsiChar; // working iv
  12269. buf : array [0..EVP_MAX_BLOCK_LENGTH -1] of TIdAnsiChar; // saved partial block
  12270. num : TIdC_INT; // used by cfb/ofb mode
  12271. app_data : Pointer; // application stuff
  12272. key_len : TIdC_INT; // May change for variable length cipher
  12273. flags : TIdC_ULONG; // Various flags
  12274. cipher_data : Pointer; // per EVP data
  12275. final_used : TIdC_INT;
  12276. block_mask : TIdC_INT;
  12277. _final : array [0..EVP_MAX_BLOCK_LENGTH-1] of TIdAnsiChar; // possible final block
  12278. end;
  12279. {$EXTERNALSYM EVP_CIPHER_INFO}
  12280. EVP_CIPHER_INFO = record
  12281. cipher : PEVP_CIPHER;
  12282. iv : array [0..EVP_MAX_IV_LENGTH -1] of TIdAnsiChar;
  12283. end;
  12284. {$EXTERNALSYM PEVP_CIPHER_INFO}
  12285. PEVP_CIPHER_INFO = ^EVP_CIPHER_INFO;
  12286. {$EXTERNALSYM EVP_ENCODE_CTX}
  12287. EVP_ENCODE_CTX = record
  12288. num : TIdC_INT; // number saved in a partial encode/decode
  12289. length: TIdC_INT; // The length is either the output line length
  12290. // (in input bytes) or the shortest input line
  12291. // length that is ok. Once decoding begins,
  12292. // the length is adjusted up each time a longer
  12293. // line is decoded
  12294. enc_data:array [0..79] of TIdAnsiChar;
  12295. line_num: TIdC_INT; // number read on current line
  12296. expect_nl: TIdC_INT;
  12297. end;
  12298. {$EXTERNALSYM PEVP_ENCODE_CTX}
  12299. PEVP_ENCODE_CTX = ^EVP_ENCODE_CTX;
  12300. //forward declarations from x509.h to make sure this compiles.
  12301. {$NODEFINE PX509}
  12302. PX509 = ^X509;
  12303. {$EXTERNALSYM PPX509}
  12304. PPX509 = ^PX509;
  12305. {$EXTERNALSYM PX509_CRL}
  12306. PX509_CRL = ^X509_CRL;
  12307. {$NODEFINE PX509_NAME}
  12308. PX509_NAME = ^X509_NAME;
  12309. {$EXTERNALSYM PX509_NAME_ENTRY}
  12310. PX509_NAME_ENTRY = ^X509_NAME_ENTRY;
  12311. {$EXTERNALSYM PX509_REQ}
  12312. PX509_REQ = ^X509_REQ;
  12313. {$EXTERNALSYM PX509_REQ_INFO}
  12314. PX509_REQ_INFO = ^X509_REQ_INFO;
  12315. {$EXTERNALSYM PPX509_REQ_INFO}
  12316. PPX509_REQ_INFO = ^PX509_REQ_INFO;
  12317. {$IFDEF DEBUG_SAFESTACK}
  12318. {$EXTERNALSYM STACK_OF_X509_NAME_ENTRY}
  12319. STACK_OF_X509_NAME_ENTRY = record
  12320. _stack: stack;
  12321. end;
  12322. {$EXTERNALSYM PSTACK_OF_X509_NAME_ENTRY}
  12323. PSTACK_OF_X509_NAME_ENTRY = ^STACK_OF_X509_NAME_ENTRY;
  12324. {$EXTERNALSYM STACK_OF_X509_REVOKED}
  12325. STACK_OF_X509_REVOKED = record
  12326. _stack: stack;
  12327. end;
  12328. {$EXTERNALSYM PSTACK_OF_X509_REVOKED}
  12329. PSTACK_OF_X509_REVOKED = ^STACK_OF_X509_REVOKED;
  12330. {$EXTERNALSYM STACK_OF_X509_NAME}
  12331. STACK_OF_X509_NAME = record
  12332. _stack: STACK;
  12333. end;
  12334. {$EXTERNALSYM PSTACK_OF_X509_NAME}
  12335. PSTACK_OF_X509_NAME = ^STACK_OF_X509_NAME;
  12336. {$ELSE}
  12337. {$EXTERNALSYM PSTACK_OF_X509_NAME_ENTRY}
  12338. PSTACK_OF_X509_NAME_ENTRY = PSTACK;
  12339. {$EXTERNALSYM PSTACK_OF_X509_REVOKED}
  12340. PSTACK_OF_X509_REVOKED = PSTACK;
  12341. {$EXTERNALSYM PSTACK_OF_X509_NAME}
  12342. PSTACK_OF_X509_NAME = PSTACK;
  12343. {$ENDIF}
  12344. {$EXTERNALSYM PPSTACK_OF_X509_REVOKED}
  12345. PPSTACK_OF_X509_REVOKED = ^PSTACK_OF_X509_REVOKED;
  12346. {$EXTERNALSYM PPX509_NAME}
  12347. PPX509_NAME =^PX509_NAME;
  12348. {$EXTERNALSYM PPSTACK_OF_X509_NAME}
  12349. PPSTACK_OF_X509_NAME = ^PSTACK_OF_X509_NAME;
  12350. //pcy_int.h
  12351. //Note that anything other than PSTACK should be undefined since the record
  12352. //members aren't exposed in the headers.
  12353. {$IFDEF DEBUG_SAFESTACK}
  12354. {$EXTERNALSYM STACK_OF_X509_POLICY_DATA}
  12355. STACK_OF_X509_POLICY_DATA = record
  12356. _stack: stack;
  12357. end;
  12358. {$EXTERNALSYM PSTACK_OF_X509_POLICY_DATA}
  12359. PSTACK_OF_X509_POLICY_DATA = ^STACK_OF_X509_POLICY_DATA;
  12360. {$EXTERNALSYM STACK_OF_X509_POLICY_REF}
  12361. STACK_OF_X509_POLICY_REF = record
  12362. _stack: stack;
  12363. end;
  12364. {$EXTERNALSYM PSTACK_OF_X509_POLICY_REF}
  12365. PSTACK_OF_X509_POLICY_REF = ^STACK_OF_X509_POLICY_DATA;
  12366. {$EXTERNALSYM STACK_OF_X509_POLICY_NODE}
  12367. STACK_OF_X509_POLICY_NODE = record
  12368. _stack: stack;
  12369. end;
  12370. {$EXTERNALSYM PSTACK_OF_X509_POLICY_NODE}
  12371. PSTACK_OF_X509_POLICY_NODE = ^STACK_OF_X509_POLICY_NODE;
  12372. {$EXTERNALSYM STACK_OF_POLICYQUALINFO}
  12373. STACK_OF_POLICYQUALINFO = record
  12374. _stack: stack;
  12375. end;
  12376. {$EXTERNALSYM PSTACK_OF_POLICYQUALINFO}
  12377. PSTACK_OF_POLICYQUALINFO = ^STACK_OF_POLICYQUALINFO;
  12378. {$ELSE}
  12379. //I think the DECLARE_STACK_OF macro is empty
  12380. {$EXTERNALSYM PSTACK_OF_X509_POLICY_DATA}
  12381. PSTACK_OF_X509_POLICY_DATA = PSTACK;
  12382. {$EXTERNALSYM PSTACK_OF_X509_POLICY_REF}
  12383. PSTACK_OF_X509_POLICY_REF = PSTACK;
  12384. {$EXTERNALSYM PSTACK_OF_X509_POLICY_NODE}
  12385. PSTACK_OF_X509_POLICY_NODE = PSTACK;
  12386. {$EXTERNALSYM PSTACK_OF_POLICYQUALINFO}
  12387. PSTACK_OF_POLICYQUALINFO = PSTACK;
  12388. {$ENDIF}
  12389. {$IFDEF DEBUG_SAFESTACK}
  12390. {$EXTERNALSYM STACK_OF_X509V3_EXT_METHOD}
  12391. STACK_OF_X509V3_EXT_METHOD = record
  12392. _stack: stack;
  12393. end;
  12394. {$EXTERNALSYM PSTACK_OF_X509V3_EXT_METHOD}
  12395. PSTACK_OF_X509V3_EXT_METHOD = ^STACK_OF_X509V3_EXT_METHOD;
  12396. {$ELSE}
  12397. //I think the DECLARE_STACK_OF macro is empty
  12398. {$EXTERNALSYM PSTACK_OF_X509V3_EXT_METHOD}
  12399. PSTACK_OF_X509V3_EXT_METHOD = PSTACK;
  12400. {$ENDIF}
  12401. {$EXTERNALSYM PPSTACK_OF_X509V3_EXT_METHOD}
  12402. PPSTACK_OF_X509V3_EXT_METHOD = ^PSTACK_OF_X509V3_EXT_METHOD;
  12403. {$IFDEF DEBUF_SAFESTACK}
  12404. {$EXTERNALSYM STACK_OF_X509}
  12405. STACK_OF_X509 = record
  12406. _stack: STACK;
  12407. end;
  12408. {$EXTERNALSYM PSTACK_OF_X509}
  12409. PSTACK_OF_X509 = ^STACK_OF_X509;
  12410. {$ELSE}
  12411. //I think the DECLARE_STACK_OF macro is empty
  12412. {$EXTERNALSYM PSTACK_OF_X509}
  12413. PSTACK_OF_X509 = PSTACK;
  12414. {$ENDIF}
  12415. {$EXTERNALSYM PPSTACK_OF_X509}
  12416. PPSTACK_OF_X509 = ^PSTACK_OF_X509;
  12417. //fips.h
  12418. //engiene.h
  12419. {$IFNDEF OPENSSL_NO_ENGINE}
  12420. //* Generic function pointer */
  12421. //typedef int (*ENGINE_GEN_FUNC_PTR)(void);
  12422. {$EXTERNALSYM ENGINE_GEN_FUNC_PTR}
  12423. ENGINE_GEN_FUNC_PTR = function : TIdC_INT; cdecl;
  12424. // typedef int (*ENGINE_GEN_INT_FUNC_PTR)(ENGINE *);
  12425. {$EXTERNALSYM ENGINE_GEN_INT_FUNC_PTR}
  12426. ENGINE_GEN_INT_FUNC_PTR = function(Para1 : PENGINE) : TIdC_INT; cdecl;
  12427. //typedef int (*ENGINE_CTRL_FUNC_PTR)(ENGINE *, int, long, void *, void (*f)(void));
  12428. {$EXTERNALSYM ENGINE_CTRL_FUNC_PTR_F}
  12429. ENGINE_CTRL_FUNC_PTR_F = procedure; cdecl;
  12430. {$EXTERNALSYM ENGINE_CTRL_FUNC_PTR}
  12431. ENGINE_CTRL_FUNC_PTR = function(Para1 : PENGINE; Para2 : TIdC_INT;
  12432. Para3 : TIdC_LONG; Para4 : Pointer; f : ENGINE_CTRL_FUNC_PTR_F) : TIdC_Int; cdecl;
  12433. //typedef EVP_PKEY * (*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *,
  12434. // UI_METHOD *ui_method, void *callback_data);
  12435. {$EXTERNALSYM ENGINE_LOAD_KEY_PTR}
  12436. ENGINE_LOAD_KEY_PTR = function(Para1 : PENGINE; Para2 : PIdAnsiChar;
  12437. ui_method : PUI_METHOD; callback_data : Pointer) : PEVP_PKEY; cdecl;
  12438. //typedef int (*ENGINE_SSL_CLIENT_CERT_PTR)(ENGINE *, SSL *ssl,
  12439. // STACK_OF(X509_NAME) *ca_dn, X509 **pcert, EVP_PKEY **pkey,
  12440. // STACK_OF(X509) **pother, UI_METHOD *ui_method, void *callback_data);
  12441. {$EXTERNALSYM ENGINE_SSL_CLIENT_CERT_PTR}
  12442. ENGINE_SSL_CLIENT_CERT_PTR = function(Para1 : PENGINE; ssl : PSSL;
  12443. ca_dn : PSTACK_OF_X509_NAME; var pcert : PX509; var pkey : PEVP_PKEY;
  12444. var pother : PSTACK_OF_X509; ui_method : PUI_METHOD; callback_data : Pointer) : TIdC_Int; cdecl;
  12445. //typedef int (*ENGINE_CIPHERS_PTR)(ENGINE *, const EVP_CIPHER **, const int **, int);
  12446. {$EXTERNALSYM ENGINE_CIPHERS_PTR}
  12447. ENGINE_CIPHERS_PTR = function(para1 : PENGINE; var para2 : PEVP_CIPHER; var para3 : PIdC_Int; para4 : TIdC_Int) : TIdC_Int; cdecl;
  12448. //typedef int (*ENGINE_DIGESTS_PTR)(ENGINE *, const EVP_MD **, const int **, int);
  12449. {$EXTERNALSYM ENGINE_DIGESTS_PTR}
  12450. ENGINE_DIGESTS_PTR = function(para1 : PENGINE; var Para2 : PEVP_MD; var Para3 : PIdC_INT; para4 : TIdC_INT) : TIdC_INT cdecl;
  12451. //typedef int (*ENGINE_PKEY_METHS_PTR)(ENGINE *, EVP_PKEY_METHOD **, const int **, int);
  12452. {$EXTERNALSYM ENGINE_PKEY_METHS_PTR}
  12453. ENGINE_PKEY_METHS_PTR = function(para1 : PENGINE; var Para2 : PEVP_PKEY_METHOD; var Para3 : PIdC_INT; para4 : TIdC_INT) : TIdC_INT cdecl;
  12454. //typedef int (*ENGINE_PKEY_ASN1_METHS_PTR)(ENGINE *, EVP_PKEY_ASN1_METHOD **, const int **, int);
  12455. {$EXTERNALSYM ENGINE_PKEY_ASN1_METHS_PTR}
  12456. ENGINE_PKEY_ASN1_METHS_PTR = function(para1 : PENGINE; var Para2 : PEVP_PKEY_ASN1_METHOD; var Para3 : PIdC_INT; para4 : TIdC_INT) : TIdC_INT cdecl;
  12457. {
  12458. /* When compiling an ENGINE entirely as an external shared library, loadable by
  12459. * the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' structure
  12460. * type provides the calling application's (or library's) error functionality
  12461. * and memory management function pointers to the loaded library. These should
  12462. * be used/set in the loaded library code so that the loading application's
  12463. * 'state' will be used/changed in all operations. The 'static_state' pointer
  12464. * allows the loaded library to know if it shares the same static data as the
  12465. * calling application (or library), and thus whether these callbacks need to be
  12466. * set or not. */
  12467. }
  12468. //typedef void *(*dyn_MEM_malloc_cb)(size_t);
  12469. {$EXTERNALSYM dyn_MEM_malloc_cb}
  12470. dyn_MEM_malloc_cb = function(para1 : size_t) : Pointer; cdecl;
  12471. //typedef void *(*dyn_MEM_realloc_cb)(void *, size_t);
  12472. {$EXTERNALSYM dyn_MEM_realloc_cb}
  12473. dyn_MEM_realloc_cb = function (para1 : Pointer; para2 : size_t): Pointer; cdecl;
  12474. //typedef void (*dyn_MEM_free_cb)(void *);
  12475. {$EXTERNALSYM dyn_MEM_free_cb}
  12476. dyn_MEM_free_cb = procedure (para1 : Pointer); cdecl;
  12477. {$EXTERNALSYM dynamic_MEM_fns}
  12478. dynamic_MEM_fns = record
  12479. malloc_cb : dyn_MEM_malloc_cb;
  12480. realloc_cb : dyn_MEM_realloc_cb;
  12481. free_cb : dyn_MEM_free_cb;
  12482. end;
  12483. ///* FIXME: Perhaps the memory and locking code (crypto.h) should declare and use
  12484. // * these types so we (and any other dependant code) can simplify a bit?? */
  12485. //typedef void (*dyn_lock_locking_cb)(int,int,const char *,int);
  12486. {$EXTERNALSYM dyn_lock_locking_cb}
  12487. dyn_lock_locking_cb = procedure (para1, para2 : TIdC_INT; para3 : PIdAnsiChar; para4 : TIdC_INT); cdecl;
  12488. //typedef int (*dyn_lock_add_lock_cb)(int*,int,int,const char *,int);
  12489. {$EXTERNALSYM dyn_lock_add_lock_cb}
  12490. dyn_lock_add_lock_cb = function (var para1 : TIdC_INT; para2, para3 : TIdC_INT; para4 : PIdAnsiChar; para5 : TIdC_INT) : TIdC_INT; cdecl;
  12491. //typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb)(
  12492. // const char *,int);
  12493. {$EXTERNALSYM dyn_dynlock_create_cb}
  12494. dyn_dynlock_create_cb = function (para1 : PIdAnsiChar; para2 : TIdC_INT) : PCRYPTO_dynlock_value; cdecl;
  12495. //typedef void (*dyn_dynlock_lock_cb)(int,struct CRYPTO_dynlock_value *,
  12496. // const char *,int);
  12497. {$EXTERNALSYM dyn_dynlock_lock_cb}
  12498. dyn_dynlock_lock_cb = procedure (para1 : TIdC_INT; para2 : PCRYPTO_dynlock_value); cdecl;
  12499. //typedef void (*dyn_dynlock_destroy_cb)(struct CRYPTO_dynlock_value *,
  12500. // const char *,int);
  12501. {$EXTERNALSYM dyn_dynlock_destroy_cb}
  12502. dyn_dynlock_destroy_cb = procedure(para1 : PCRYPTO_dynlock_value; para2 : PIdAnsiChar; para3 : TIdC_INT); cdecl;
  12503. //typedef struct st_dynamic_LOCK_fns {
  12504. // dyn_lock_locking_cb lock_locking_cb;
  12505. // dyn_lock_add_lock_cb lock_add_lock_cb;
  12506. // dyn_dynlock_create_cb dynlock_create_cb;
  12507. // dyn_dynlock_lock_cb dynlock_lock_cb;
  12508. // dyn_dynlock_destroy_cb dynlock_destroy_cb;
  12509. // } dynamic_LOCK_fns;
  12510. {$EXTERNALSYM dynamic_LOCK_fns}
  12511. dynamic_LOCK_fns = record
  12512. lock_locking_cb : dyn_lock_locking_cb;
  12513. lock_add_lock_cb : dyn_lock_add_lock_cb;
  12514. dynlock_create_cb : dyn_dynlock_create_cb;
  12515. dynlock_lock_cb : dyn_dynlock_lock_cb;
  12516. dynlock_destroy_cb : dyn_dynlock_destroy_cb;
  12517. end;
  12518. //* The top-level structure */
  12519. {$EXTERNALSYM dynamic_fns}
  12520. dynamic_fns = record
  12521. static_state : Pointer;
  12522. err_fns : PERR_FNS;
  12523. ex_data_fns : PCRYPTO_EX_DATA_IMPL;
  12524. mem_fns : dynamic_MEM_fns;
  12525. lock_fns : dynamic_LOCK_fns;
  12526. end;
  12527. // typedef unsigned long (*dynamic_v_check_fn)(unsigned long ossl_version);
  12528. {$EXTERNALSYM dynamic_v_check_fn}
  12529. dynamic_v_check_fn = function(ossl_version : TIdC_ULONG) : TIdC_ULONG; cdecl;
  12530. //typedef int (*dynamic_bind_engine)(ENGINE *e, const char *id,
  12531. // const dynamic_fns *fns);
  12532. {$EXTERNALSYM dynamic_bind_engine}
  12533. dynamic_bind_engine = function(e : PENGINE; id : PIdAnsiChar; fns : dynamic_fns) : TIdC_INT; cdecl;
  12534. {$ENDIF}
  12535. //ecdsa.h
  12536. {$IFNDEF OPENSSL_NO_ECDSA}
  12537. {$EXTERNALSYM ECDSA_SIG}
  12538. ECDSA_SIG = record
  12539. r : PBIGNUM;
  12540. s : PBIGNUM;
  12541. end;
  12542. {$EXTERNALSYM PECDSA_SIG}
  12543. PECDSA_SIG = ^ECDSA_SIG;
  12544. {$EXTERNALSYM PPECDSA_SIG}
  12545. PPECDSA_SIG = ^PECDSA_SIG;
  12546. // ECDH_METHOD = record
  12547. //defined interally, not through the header so use function to access members
  12548. // end;
  12549. {$EXTERNALSYM PECDH_METHOD}
  12550. PECDH_METHOD = Pointer;//^ECDH_METHOD;
  12551. {$EXTERNALSYM PPECDH_METHOD}
  12552. PPECDH_METHOD = ^PECDH_METHOD;
  12553. {$ENDIF}
  12554. //ecdh.h
  12555. //aes.h
  12556. {$IFNDEF OPENSSL_NO_AES}
  12557. {$IFDEF OPENSSL_FIPS}
  12558. {$EXTERNALSYM FIPS_AES_SIZE_T}
  12559. FIPS_AES_SIZE_T = TIdC_INT;
  12560. {$ENDIF}
  12561. //OpenSSL Developer's note
  12562. // This should be a hidden type, but EVP requires that the size be known
  12563. {$EXTERNALSYM AES_KEY}
  12564. AES_KEY = record
  12565. rd_key: array[0..(4 *(AES_MAXNR + 1)-1)] of TIdC_UINT;
  12566. rounds : TIdC_INT;
  12567. end;
  12568. {$EXTERNALSYM PAES_KEY}
  12569. PAES_KEY = ^AES_KEY;
  12570. {$EXTERNALSYM PPAES_KEY}
  12571. PPAES_KEY = ^PAES_KEY;
  12572. {$ENDIF}
  12573. //seed.h
  12574. {$IFNDEF OPENSSL_NO_SEED}
  12575. {$EXTERNALSYM SEED_KEY_SCHEDULE}
  12576. SEED_KEY_SCHEDULE = record
  12577. {$IFDEF SEED_LONG}
  12578. data : array [0..(32 -1)] of TIdC_ULONG ;
  12579. {$ELSE}
  12580. data : array[0..(32-1)] of TIdC_UINT;
  12581. {$ENDIF}
  12582. end;
  12583. {$EXTERNALSYM PSEED_KEY_SCHEDULE}
  12584. PSEED_KEY_SCHEDULE = ^SEED_KEY_SCHEDULE;
  12585. {$ENDIF}
  12586. //lhash.h
  12587. {$EXTERNALSYM PLHASH_NODE}
  12588. PLHASH_NODE = ^LHASH_NODE;
  12589. {$EXTERNALSYM PPLHASH_NODE}
  12590. PPLHASH_NODE = ^PLHASH_NODE;
  12591. {$EXTERNALSYM LHASH_NODE}
  12592. LHASH_NODE = record
  12593. data : Pointer;
  12594. next : PLHASH_NODE;
  12595. {$IFNDEF OPENSSL_NO_HASH_COMP}
  12596. hash : TIdC_ULONG;
  12597. {$ENDIF}
  12598. end;
  12599. {$EXTERNALSYM LHASH_COMP_FN_TYPE}
  12600. LHASH_COMP_FN_TYPE = function (const p1,p2 : Pointer) : TIdC_INT; cdecl;
  12601. {$EXTERNALSYM PLHASH_COMP_FN_TYPE}
  12602. PLHASH_COMP_FN_TYPE = ^LHASH_COMP_FN_TYPE;
  12603. {$EXTERNALSYM LHASH_HASH_FN_TYPE}
  12604. LHASH_HASH_FN_TYPE = function(const p1 : Pointer) : TIdC_ULONG; cdecl;
  12605. {$EXTERNALSYM LHASH_DOALL_FN_TYPE}
  12606. LHASH_DOALL_FN_TYPE = procedure(p1 : Pointer); cdecl;
  12607. {$EXTERNALSYM LHASH_DOALL_ARG_FN_TYPE}
  12608. LHASH_DOALL_ARG_FN_TYPE = procedure(p1, p2 : Pointer); cdecl;
  12609. {$EXTERNALSYM LHASH}
  12610. LHASH = record
  12611. b : PPLHASH_NODE;
  12612. comp : LHASH_COMP_FN_TYPE;
  12613. hash : LHASH_HASH_FN_TYPE;
  12614. num_nodes : TIdC_UINT;
  12615. num_alloc_nodes : TIdC_UINT;
  12616. p : TIdC_UINT;
  12617. pmax : TIdC_UINT;
  12618. up_load : TIdC_ULONG; // load times 256
  12619. down_load : TIdC_ULONG; // load times 256
  12620. num_items : TIdC_ULONG;
  12621. num_expands : TIdC_ULONG;
  12622. num_expand_reallocs : TIdC_ULONG;
  12623. num_contracts : TIdC_ULONG;
  12624. num_contract_reallocs : TIdC_ULONG;
  12625. num_hash_calls : TIdC_ULONG;
  12626. num_comp_calls : TIdC_ULONG;
  12627. num_insert : TIdC_ULONG;
  12628. num_replace : TIdC_ULONG;
  12629. num_delete : TIdC_ULONG;
  12630. num_no_delete : TIdC_ULONG;
  12631. num_retrieve : TIdC_ULONG;
  12632. num_retrieve_miss : TIdC_ULONG;
  12633. num_hash_comps : TIdC_ULONG;
  12634. error : TIdC_INT;
  12635. end;
  12636. {$EXTERNALSYM PLHASH}
  12637. PLHASH = ^LHASH;
  12638. //conf.h
  12639. {$EXTERNALSYM CONF_VALUE}
  12640. CONF_VALUE = record
  12641. section : PIdAnsiChar;
  12642. name : PIdAnsiChar;
  12643. value : PIdAnsiChar;
  12644. end;
  12645. {$EXTERNALSYM PCONF_VALUE}
  12646. PCONF_VALUE = ^CONF_VALUE;
  12647. {$IFDEF DEBUG_SAFESTACK}
  12648. {$EXTERNALSYM STACK_OF_CONF_VALUE}
  12649. STACK_OF_CONF_VALUE = record
  12650. stack: stack;
  12651. end;
  12652. {$EXTERNALSYM PSTACK_OF_CONF_VALUE}
  12653. PSTACK_OF_CONF_VALUE = ^STACK_OF_CONF_VALUE;
  12654. {$ELSE}
  12655. //I think the DECLARE_STACK_OF macro is empty
  12656. {$EXTERNALSYM PSTACK_OF_CONF_VALUE}
  12657. PSTACK_OF_CONF_VALUE = PSTACK;
  12658. {$ENDIF}
  12659. {$EXTERNALSYM BIT_STRING_BITNAME}
  12660. //* This is used to contain a list of bit names */
  12661. BIT_STRING_BITNAME = record
  12662. bitnum : TIdC_INT;
  12663. lname : PIdAnsiChar;
  12664. sname : PIdAnsiChar;
  12665. end;
  12666. {$EXTERNALSYM PBIT_STRING_BITNAME}
  12667. PBIT_STRING_BITNAME = ^BIT_STRING_BITNAME;
  12668. {$EXTERNALSYM PPBIT_STRING_BITNAME}
  12669. PPBIT_STRING_BITNAME = ^PBIT_STRING_BITNAME;
  12670. {$EXTERNALSYM buf_mem_st}
  12671. buf_mem_st = record
  12672. length : TIdC_INT; // current number of bytes
  12673. data : PIdAnsiChar;
  12674. max: TIdC_INT; // size of buffer
  12675. end;
  12676. {$EXTERNALSYM BUF_MEM}
  12677. BUF_MEM = buf_mem_st;
  12678. {$EXTERNALSYM PBUF_MEM}
  12679. PBUF_MEM = ^BUF_MEM;
  12680. {$EXTERNALSYM PPBUF_MEM}
  12681. PPBUF_MEM = ^PBUF_MEM;
  12682. {$EXTERNALSYM PFILE}
  12683. PFILE = Pointer;
  12684. //asn1t.h
  12685. {$EXTERNALSYM ASN1_TEMPLATE}
  12686. ASN1_TEMPLATE = record
  12687. flags : TIdC_ULONG; // Various flags
  12688. tag : TIdC_LONG; // tag, not used if no tagging
  12689. offset : TIdC_ULONG; // Offset of this field in structure
  12690. {$IFNDEF NO_ASN1_FIELD_NAMES}
  12691. field_name : PIdAnsiChar; // Field name
  12692. {$ENDIF}
  12693. item : PASN1_ITEM_EXP; // Relevant ASN1_ITEM or ASN1_ADB
  12694. end;
  12695. {$EXTERNALSYM PASN1_TEMPLATE}
  12696. PASN1_TEMPLATE = ^ASN1_TEMPLATE;
  12697. {$EXTERNALSYM ASN1_ITEM}
  12698. ASN1_ITEM = record
  12699. itype : Char; // The item type, primitive, SEQUENCE, CHOICE or extern
  12700. utype : TIdC_LONG; // underlying type
  12701. templates : PASN1_TEMPLATE; // If SEQUENCE or CHOICE this contains the contents
  12702. tcount : TIdC_LONG; // Number of templates if SEQUENCE or CHOICE
  12703. funcs : Pointer; // functions that handle this type
  12704. size : TIdC_LONG; // Structure size (usually)
  12705. {$IFNDEF NO_ASN1_FIELD_NAMES}
  12706. sname : PIdAnsiChar; // Structure name
  12707. {$ENDIF}
  12708. end;
  12709. {$EXTERNALSYM PASN1_PCTX}
  12710. PASN1_PCTX = Pointer;
  12711. {$IFDEF DEBUG_SAFESTACK}
  12712. {$EXTERNALSYM STACK_OF_ASN1_ADB_TABLE}
  12713. STACK_OF_ASN1_ADB_TABLE = record
  12714. stack: stack;
  12715. end;
  12716. {$EXTERNALSYM PSTACK_OF_ASN1_ADB_TABLE}
  12717. PSTACK_OF_ASN1_ADB_TABLE = ^STACK_OF_ASN1_ADB_TABLE;
  12718. {$ELSE}
  12719. //I think the DECLARE_STACK_OF macro is empty
  12720. {$EXTERNALSYM PSTACK_OF_ASN1_ADB_TABLE}
  12721. PSTACK_OF_ASN1_ADB_TABLE = PSTACK;
  12722. {$ENDIF}
  12723. {$EXTERNALSYM PPSTACK_OF_ASN1_ADB_TABLE}
  12724. PPSTACK_OF_ASN1_ADB_TABLE = ^PSTACK_OF_ASN1_ADB_TABLE;
  12725. {$EXTERNALSYM PASN1_ADB_TABLE}
  12726. PASN1_ADB_TABLE = ^ASN1_ADB_TABLE;
  12727. {$EXTERNALSYM PASN1_ADB}
  12728. PASN1_ADB = ^ASN1_ADB;
  12729. {$EXTERNALSYM ASN1_ADB}
  12730. ASN1_ADB = record
  12731. flags : TIdC_ULONG; // Various flags
  12732. offset : TIdC_ULONG; // Offset of selector field
  12733. app_items : PPSTACK_OF_ASN1_ADB_TABLE; // Application defined items
  12734. tbl : PASN1_ADB_TABLE; // Table of possible types
  12735. tblcount : TIdC_LONG; // Number of entries in tbl
  12736. default_tt : PASN1_TEMPLATE; // Type to use if no match
  12737. null_tt : PASN1_TEMPLATE; // Type to use if selector is NULL
  12738. end;
  12739. {$EXTERNALSYM ASN1_ADB_TABLE}
  12740. ASN1_ADB_TABLE = record
  12741. flags : TIdC_LONG; // Various flags
  12742. offset : TIdC_LONG; // Offset of selector field
  12743. app_items : PPSTACK_OF_ASN1_ADB_TABLE; // Application defined items
  12744. tbl : PASN1_ADB_TABLE; // Table of possible types
  12745. tblcount : TIdC_LONG; // Number of entries in tbl
  12746. default_tt : PASN1_TEMPLATE; // Type to use if no match
  12747. null_tt : PASN1_TEMPLATE; // Type to use if selector is NULL
  12748. end;
  12749. {$EXTERNALSYM PASN1_TLC}
  12750. PASN1_TLC = ^ASN1_TLC;
  12751. {$EXTERNALSYM ASN1_TLC}
  12752. ASN1_TLC = record
  12753. valid : Byte; //* Values below are valid */
  12754. ret : TIdC_INT; //* return value */
  12755. plen : TIdC_LONG; //* length */
  12756. ptag : TIdC_INT; //* class value */
  12757. pclass : TIdC_INT; //* class value */
  12758. hdrlen : TIdC_INT; //* header length */
  12759. end;
  12760. ///* Typedefs for ASN1 function pointers */
  12761. {$EXTERNALSYM ASN1_new_func}
  12762. ASN1_new_func = function : PASN1_VALUE; cdecl;
  12763. {$EXTERNALSYM ASN1_free_func}
  12764. ASN1_free_func = procedure (a : PASN1_VALUE); cdecl;
  12765. // typedef ASN1_VALUE * ASN1_d2i_func(ASN1_VALUE **a, const unsigned char ** in, long length);
  12766. {$EXTERNALSYM ASN1_d2i_func}
  12767. ASN1_d2i_func = function (a : PASN1_VALUE; _in : PPByte; length : TIdC_LONG ) : PASN1_VALUE; cdecl;
  12768. // typedef int ASN1_i2d_func(ASN1_VALUE * a, unsigned char **in);
  12769. {$EXTERNALSYM ASN1_i2d_func}
  12770. ASN1_i2d_func = function (a : PASN1_VALUE; _in : PPByte) : TIdC_INT; cdecl;
  12771. // typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, const ASN1_ITEM *it,
  12772. // int tag, int aclass, char opt, ASN1_TLC *ctx);
  12773. {$EXTERNALSYM ASN1_ex_d2i}
  12774. ASN1_ex_d2i = function(pval : PPASN1_VALUE; _in : PPByte; len : TIdC_LONG;
  12775. it : PASN1_ITEM; tag, aclass : TIdC_INT; opt : Byte;
  12776. ctx : PASN1_TLC) : TIdC_INT; cdecl;
  12777. //typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, const ASN1_ITEM *it, int tag, int aclass);
  12778. {$EXTERNALSYM ASN1_ex_i2d}
  12779. ASN1_ex_i2d = function(pval : PPASN1_VALUE; _out : PPByte; it : PASN1_ITEM; tag, aclass : TIdC_INT) : TIdC_INT; cdecl;
  12780. //typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it);
  12781. {$EXTERNALSYM ASN1_ex_new_func}
  12782. ASN1_ex_new_func = function(pval : PPASN1_VALUE; it : PASN1_ITEM) : TIdC_INT; cdecl;
  12783. //typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it);
  12784. {$EXTERNALSYM ASN1_ex_free_func}
  12785. ASN1_ex_free_func = procedure( pval : PPASN1_VALUE; it : PASN1_ITEM); cdecl;
  12786. //typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, const ASN1_ITEM *it);
  12787. {$EXTERNALSYM ASN1_primitive_i2c}
  12788. ASN1_primitive_i2c = function (pval : PPASN1_VALUE; cont : PByte; putype : PIdC_INT; it : PASN1_ITEM ) : TIdC_INT; cdecl;
  12789. //typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, int utype, char *free_cont, const ASN1_ITEM *it);
  12790. {$EXTERNALSYM ASN1_primitive_c2i}
  12791. ASN1_primitive_c2i = function (pval : PPASN1_VALUE; cont : PByte; len, utype : TIdC_INT; free_cont : PByte; it: PASN1_ITEM) : TIdC_INT; cdecl;
  12792. ///* end typedefs
  12793. {$EXTERNALSYM ASN1_COMPAT_FUNCS}
  12794. ASN1_COMPAT_FUNCS = record
  12795. asn1_new : ASN1_new_func;
  12796. asn1_free : ASN1_free_func;
  12797. asn1_d2i : ASN1_d2i_func;
  12798. asn1_i2d : ASN1_i2d_func;
  12799. end;
  12800. {$EXTERNALSYM PASN1_COMPAT_FUNCS}
  12801. PASN1_COMPAT_FUNCS = ^ASN1_COMPAT_FUNCS;
  12802. {$EXTERNALSYM ASN1_EXTERN_FUNCS}
  12803. ASN1_EXTERN_FUNCS = record
  12804. app_data : Pointer;
  12805. asn1_ex_new : ASN1_ex_new_func; // ASN1_ex_new_func *asn1_ex_new;
  12806. asn1_ex_free : ASN1_ex_free_func; // ASN1_ex_free_func *asn1_ex_free;
  12807. asn1_ex_clear: ASN1_ex_free_func;// ASN1_ex_free_func *asn1_ex_clear;
  12808. asn1_ex_d2i : ASN1_ex_d2i;// ASN1_ex_d2i *asn1_ex_d2i;
  12809. asn1_ex_i2d : ASN1_ex_i2d; // ASN1_ex_i2d *asn1_ex_i2d;
  12810. end;
  12811. {$EXTERNALSYM PASN1_EXTERN_FUNCS}
  12812. PASN1_EXTERN_FUNCS = ^ASN1_EXTERN_FUNCS;
  12813. {$EXTERNALSYM ASN1_PRIMITIVE_FUNCS}
  12814. ASN1_PRIMITIVE_FUNCS = record
  12815. app_data : Pointer;
  12816. flags : TIdC_ULONG;
  12817. // ASN1_ex_new_func *prim_new;
  12818. prim_new : ASN1_ex_new_func;
  12819. // ASN1_ex_free_func *prim_free;
  12820. prim_free : ASN1_ex_free_func;
  12821. // ASN1_ex_free_func *prim_clear;
  12822. prim_clear : ASN1_ex_free_func;
  12823. // ASN1_primitive_c2i *prim_c2i;
  12824. prim_c2i : ASN1_primitive_c2i;
  12825. // ASN1_primitive_i2c *prim_i2c;
  12826. prim_i2c : ASN1_primitive_i2c;
  12827. end;
  12828. {$EXTERNALSYM PASN1_PRIMITIVE_FUNCS}
  12829. PASN1_PRIMITIVE_FUNCS = ^ASN1_PRIMITIVE_FUNCS;
  12830. //typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it);
  12831. {$EXTERNALSYM ASN1_aux_cb}
  12832. ASN1_aux_cb = function (operation : TIdC_INT; _in : PPASN1_VALUE; it : PASN1_ITEM) : TIdC_INT; cdecl;
  12833. {$EXTERNALSYM ASN1_AUX}
  12834. ASN1_AUX = record
  12835. app_data : Pointer;
  12836. flags : TIdC_INT;
  12837. ref_offset : TIdC_INT; //* Offset of reference value */
  12838. ref_lock : TIdC_INT; //* Lock type to use */
  12839. asn1_cb : ASN1_aux_cb; //ASN1_aux_cb *asn1_cb;
  12840. enc_offset : TIdC_INT; //* Offset of ASN1_ENCODING structure */
  12841. end;
  12842. {$EXTERNALSYM PASN1_AUX}
  12843. PASN1_AUX = ^ASN1_AUX;
  12844. //hmac.h
  12845. //This has to come after the EVP definitions
  12846. {$IFNDEF OPENSSL_NO_HMAC}
  12847. {$EXTERNALSYM HMAC_CTX}
  12848. HMAC_CTX = record
  12849. md : PEVP_MD;
  12850. md_ctx : EVP_MD_CTX;
  12851. i_ctx : EVP_MD_CTX;
  12852. o_ctx : EVP_MD_CTX;
  12853. key_length : TIdC_UINT;
  12854. key : array[0..(HMAC_MAX_MD_CBLOCK - 1)] of byte;
  12855. end;
  12856. {$EXTERNALSYM PHMAC_CTX}
  12857. PHMAC_CTX = ^HMAC_CTX;
  12858. {$EXTERNALSYM PPHMAC_CTX}
  12859. PPHMAC_CTX = ^PHMAC_CTX;
  12860. {$ENDIF}
  12861. // X509_POLICY_DATA = record
  12862. // end;
  12863. {$EXTERNALSYM PX509_POLICY_DATA}
  12864. PX509_POLICY_DATA = Pointer;//^X509_POLICY_DATA;
  12865. // X509_POLICY_REF = record
  12866. // end;
  12867. {$EXTERNALSYM PX509_POLICY_REF}
  12868. PX509_POLICY_REF = Pointer;//^X509_POLICY_REF;
  12869. // X509_POLICY_CACHE = record
  12870. // end;
  12871. {$EXTERNALSYM PX509_POLICY_CACHE}
  12872. PX509_POLICY_CACHE = Pointer; //^X509_POLICY_CACHE;
  12873. //x509v3.h
  12874. {$EXTERNALSYM PPX509_NAME_ENTRY}
  12875. PPX509_NAME_ENTRY = ^PX509_NAME_ENTRY;
  12876. //forward declarations
  12877. {$EXTERNALSYM PV3_EXT_METHOD}
  12878. PV3_EXT_METHOD = ^V3_EXT_METHOD;
  12879. {$EXTERNALSYM PV3_EXT_CTX}
  12880. PV3_EXT_CTX = ^V3_EXT_CTX;
  12881. //
  12882. {$EXTERNALSYM X509V3_EXT_NEW}
  12883. X509V3_EXT_NEW = function: Pointer; cdecl;
  12884. {$EXTERNALSYM X509V3_EXT_FREE}
  12885. X509V3_EXT_FREE = procedure(_para1 : Pointer); cdecl;
  12886. {$EXTERNALSYM X509V3_EXT_D2I}
  12887. X509V3_EXT_D2I = function(_para1 : Pointer; const _para2 : PPIdAnsiChar; para3 : TIdC_LONG): Pointer; cdecl;
  12888. {$EXTERNALSYM X509V3_EXT_I2D}
  12889. X509V3_EXT_I2D = function (_para1 : Pointer; _para2 : PPIdAnsiChar) : TIdC_INT; cdecl;
  12890. {$EXTERNALSYM X509V3_EXT_I2V}
  12891. X509V3_EXT_I2V = function (method : PV3_EXT_METHOD; ext : Pointer; extlist : PSTACK_OF_CONF_VALUE) : PSTACK_OF_CONF_VALUE; cdecl;
  12892. {$EXTERNALSYM X509V3_EXT_V2I}
  12893. X509V3_EXT_V2I = function (method : Pv3_ext_method; ctx : PV3_EXT_CTX; values : PSTACK_OF_CONF_VALUE): Pointer; cdecl;
  12894. {$EXTERNALSYM X509V3_EXT_I2S}
  12895. X509V3_EXT_I2S = function (method : Pv3_ext_method; ext : Pointer) : PIdAnsiChar; cdecl;
  12896. {$EXTERNALSYM X509V3_EXT_S2I}
  12897. X509V3_EXT_S2I = function (method : Pv3_ext_method; ctx : Pv3_ext_ctx; const str : PIdAnsiChar): Pointer; cdecl;
  12898. {$EXTERNALSYM X509V3_EXT_I2R}
  12899. X509V3_EXT_I2R = function (method : Pv3_ext_method; ext : Pointer; _out : PBIO; indent : TIdC_INT) : TIdC_INT; cdecl;
  12900. {$EXTERNALSYM X509V3_EXT_R2I}
  12901. X509V3_EXT_R2I = function (method : Pv3_ext_method; ctx : Pv3_ext_ctx; const str : PIdAnsiChar): Pointer; cdecl;
  12902. {$EXTERNALSYM V3_EXT_METHOD}
  12903. V3_EXT_METHOD = record
  12904. ext_nid : TIdC_INT;
  12905. ext_flags : TIdC_INT;
  12906. // If this is set the following four fields are ignored
  12907. // I'm not sure what the ASN1_ITEM_EXP really is. The headers don't make it clear, JPM.
  12908. it : PASN1_ITEM_EXP;
  12909. // Old style ASN1 calls
  12910. ext_new : X509V3_EXT_NEW;
  12911. ext_free : X509V3_EXT_FREE;
  12912. d2i : X509V3_EXT_D2I;
  12913. i2d : X509V3_EXT_I2D;
  12914. // The following pair is used for string extensions
  12915. i2s : X509V3_EXT_I2S;
  12916. s2i : X509V3_EXT_S2I;
  12917. // The following pair is used for multi-valued extensions
  12918. i2v : X509V3_EXT_I2V;
  12919. v2i : X509V3_EXT_V2I;
  12920. // The following are used for raw extensions
  12921. i2r : X509V3_EXT_I2R;
  12922. r2i : X509V3_EXT_R2I;
  12923. usr_data : Pointer; // Any extension specific data
  12924. end;
  12925. {$EXTERNALSYM X509V3_EXT_METHOD}
  12926. X509V3_EXT_METHOD = V3_EXT_METHOD;
  12927. {$EXTERNALSYM X509V3_CONF_METHOD}
  12928. X509V3_CONF_METHOD = record
  12929. get_string : function(db : Pointer; section, value : PIdAnsiChar) : PIdAnsiChar; cdecl;
  12930. get_section : function(db : Pointer; section : PIdAnsiChar) : PSTACK_OF_CONF_VALUE; cdecl;
  12931. free_string : procedure(db : Pointer; _string : PIdAnsiChar); cdecl;
  12932. free_section : procedure (db : Pointer; section : PSTACK_OF_CONF_VALUE);
  12933. end;
  12934. {$EXTERNALSYM V3_EXT_CTX}
  12935. V3_EXT_CTX = record
  12936. flags : TIdC_INT;
  12937. issuer_cert : PX509;
  12938. subject_cert : PX509;
  12939. subject_req : PX509_REQ;
  12940. crl : PX509_CRL;
  12941. db_meth : X509V3_CONF_METHOD;
  12942. db : Pointer;
  12943. // OpenSSL developer's message from header
  12944. // Maybe more here
  12945. end;
  12946. {$EXTERNALSYM ENUMERATED_NAMES}
  12947. ENUMERATED_NAMES = BIT_STRING_BITNAME;
  12948. {$EXTERNALSYM BASIC_CONSTRAINTS}
  12949. BASIC_CONSTRAINTS = record
  12950. ca : TIdC_INT;
  12951. pathlen: PASN1_INTEGER;
  12952. end;
  12953. {$EXTERNALSYM PBASIC_CONSTRAINTS}
  12954. PBASIC_CONSTRAINTS = ^BASIC_CONSTRAINTS;
  12955. {$EXTERNALSYM PKEY_USAGE_PERIOD}
  12956. PKEY_USAGE_PERIOD = record
  12957. notBefore : ASN1_GENERALIZEDTIME;
  12958. notAfter : PASN1_GENERALIZEDTIME;
  12959. end;
  12960. {$EXTERNALSYM PPKEY_USAGE_PERIOD}
  12961. PPKEY_USAGE_PERIOD = ^PKEY_USAGE_PERIOD;
  12962. {$EXTERNALSYM OTHERNAME}
  12963. OTHERNAME = record
  12964. type_id : PASN1_OBJECT;
  12965. value : PASN1_TYPE;
  12966. end;
  12967. {$EXTERNALSYM POTHERNAME}
  12968. POTHERNAME = ^OTHERNAME;
  12969. {$EXTERNALSYM EDIPARTYNAME}
  12970. EDIPARTYNAME = record
  12971. nameAssigner : PASN1_STRING;
  12972. partyName : PASN1_STRING;
  12973. end;
  12974. {$EXTERNALSYM PEDIPARTYNAME}
  12975. PEDIPARTYNAME = ^EDIPARTYNAME;
  12976. {$EXTERNALSYM GENERAL_NAME_union}
  12977. GENERAL_NAME_union = record
  12978. case byte of
  12979. 0 : (ptr : PIdAnsiChar);
  12980. 1 : (otherName : POTHERNAME); // otherName
  12981. 2 : (rfc822Name : PASN1_IA5STRING);
  12982. 3 : (dNSName : PASN1_IA5STRING);
  12983. 4 : (x400Address : PASN1_TYPE);
  12984. 5 : (directoryName : PX509_NAME);
  12985. 6 : (ediPartyName : PEDIPARTYNAME);
  12986. 7 : (uniformResourceIdentifier : PASN1_IA5STRING);
  12987. 8 : (iPAddress : PASN1_OCTET_STRING);
  12988. 9 : (registeredID : PASN1_OBJECT);
  12989. // Old names
  12990. 10 : (ip : PASN1_OCTET_STRING); // iPAddress
  12991. 11 : (dirn : PX509_NAME); // dirn
  12992. 12 : (ia5 : PASN1_IA5STRING); // rfc822Name, dNSName, uniformResourceIdentifier
  12993. 13 : (rid : ASN1_OBJECT); // registeredID
  12994. 14 : (other : PASN1_TYPE); // x400Address
  12995. end;
  12996. {$EXTERNALSYM GENERAL_NAME}
  12997. GENERAL_NAME = record
  12998. _type : TIdC_INT;
  12999. d : GENERAL_NAME_union;
  13000. end;
  13001. {$EXTERNALSYM PGENERAL_NAME}
  13002. PGENERAL_NAME = ^GENERAL_NAME;
  13003. {$IFDEF DEBUG_SAFESTACK}
  13004. {$EXTERNALSYM STACK_OF_GENERAL_NAME}
  13005. STACK_OF_GENERAL_NAME = record
  13006. _stack: stack;
  13007. end;
  13008. {$EXTERNALSYM PSTACK_OF_GENERAL_NAME}
  13009. PSTACK_OF_GENERAL_NAME = ^STACK_OF_GENERAL_NAME;
  13010. {$ELSE}
  13011. //I think the DECLARE_STACK_OF macro is empty
  13012. {$EXTERNALSYM PSTACK_OF_GENERAL_NAME}
  13013. PSTACK_OF_GENERAL_NAME = PSTACK;
  13014. {$ENDIF}
  13015. {$EXTERNALSYM PGENERAL_NAMES}
  13016. PGENERAL_NAMES = PSTACK_OF_GENERAL_NAME;
  13017. {$EXTERNALSYM ACCESS_DESCRIPTION}
  13018. ACCESS_DESCRIPTION = record
  13019. method : PASN1_OBJECT;
  13020. location : PGENERAL_NAME;
  13021. end;
  13022. {$EXTERNALSYM PACCESS_DESCRIPTION}
  13023. PACCESS_DESCRIPTION = ^ACCESS_DESCRIPTION;
  13024. {$IFDEF DEBUG_SAFESTACK}
  13025. {$EXTERNALSYM STACK_OF_ACCESS_DESCRIPTION}
  13026. STACK_OF_ACCESS_DESCRIPTION = record
  13027. _stack: stack;
  13028. end;
  13029. {$EXTERNALSYM PSTACK_OF_ACCESS_DESCRIPTION}
  13030. PSTACK_OF_ACCESS_DESCRIPTION = ^STACK_OF_ACCESS_DESCRIPTION;
  13031. {$ELSE}
  13032. //I think the DECLARE_STACK_OF macro is empty
  13033. {$EXTERNALSYM PSTACK_OF_ACCESS_DESCRIPTION}
  13034. PSTACK_OF_ACCESS_DESCRIPTION = PSTACK;
  13035. {$ENDIF}
  13036. {$EXTERNALSYM PAUTHORITY_INFO_ACCESS}
  13037. PAUTHORITY_INFO_ACCESS = PSTACK_OF_ACCESS_DESCRIPTION;
  13038. {$EXTERNALSYM PEXTENDED_KEY_USAGE}
  13039. PEXTENDED_KEY_USAGE = PSTACK_OF_ASN1_OBJECT;
  13040. {$EXTERNALSYM DIST_POINT_NAME_union}
  13041. DIST_POINT_NAME_union = record
  13042. case byte of
  13043. 0 : (fullname : PGENERAL_NAMES);
  13044. 1 : (relativename : PSTACK_OF_X509_NAME_ENTRY);
  13045. end;
  13046. {$EXTERNALSYM DIST_POINT_NAME}
  13047. DIST_POINT_NAME = record
  13048. _type : TIdC_INT;
  13049. name : DIST_POINT_NAME_union;
  13050. end;
  13051. {$EXTERNALSYM PDIST_POINT_NAME}
  13052. PDIST_POINT_NAME = ^DIST_POINT_NAME;
  13053. {$EXTERNALSYM DIST_POINT}
  13054. DIST_POINT = record
  13055. distpoint : PDIST_POINT_NAME;
  13056. reasons : PASN1_BIT_STRING;
  13057. CRLissuer : PGENERAL_NAMES;
  13058. dp_reasons : TIdC_INT;
  13059. end;
  13060. {$IFDEF DEBUG_SAFESTACK}
  13061. {$EXTERNALSYM STACK_OF_DIST_POINT}
  13062. STACK_OF_DIST_POINT = record
  13063. _stack: stack;
  13064. end;
  13065. {$EXTERNALSYM PSTACK_OF_DIST_POINT}
  13066. PSTACK_OF_DIST_POINT = ^STACK_OF_DIST_POINT;
  13067. {$ELSE}
  13068. //I think the DECLARE_STACK_OF macro is empty
  13069. {$EXTERNALSYM PSTACK_OF_DIST_POINT}
  13070. PSTACK_OF_DIST_POINT = PSTACK;
  13071. {$ENDIF}
  13072. {$EXTERNALSYM AUTHORITY_KEYID}
  13073. AUTHORITY_KEYID = record
  13074. keyid : PASN1_OCTET_STRING;
  13075. issuer : PGENERAL_NAMES;
  13076. serial : PASN1_INTEGER;
  13077. end;
  13078. {$EXTERNALSYM PAUTHORITY_KEYID}
  13079. PAUTHORITY_KEYID = ^AUTHORITY_KEYID;
  13080. // Strong extranet structures
  13081. {$EXTERNALSYM SXNETID}
  13082. SXNETID = record
  13083. zone : PASN1_INTEGER;
  13084. user : PASN1_OCTET_STRING;
  13085. end;
  13086. {$EXTERNALSYM PSXNETID}
  13087. PSXNETID = ^SXNETID;
  13088. {$IFDEF DEBUG_SAFESTACK}
  13089. {$EXTERNALSYM STACK_OF_SXNETID}
  13090. STACK_OF_SXNETID = record
  13091. _stack: stack;
  13092. end;
  13093. {$EXTERNALSYM PSTACK_OF_SXNETID}
  13094. PSTACK_OF_SXNETID = ^STACK_OF_SXNETID;
  13095. {$ELSE}
  13096. //I think the DECLARE_STACK_OF macro is empty
  13097. {$EXTERNALSYM PSTACK_OF_SXNETID}
  13098. PSTACK_OF_SXNETID = PSTACK;
  13099. {$ENDIF}
  13100. {$EXTERNALSYM SXNET}
  13101. SXNET = record
  13102. version : PASN1_INTEGER;
  13103. ids : PSTACK_OF_SXNETID;
  13104. end;
  13105. {$EXTERNALSYM PSXNET}
  13106. PSXNET = ^SXNET;
  13107. {$EXTERNALSYM NOTICEREF}
  13108. NOTICEREF = record
  13109. organization : PASN1_STRING;
  13110. noticenos : PSTACK_OF_ASN1_INTEGER;
  13111. end;
  13112. {$EXTERNALSYM PNOTICEREF}
  13113. PNOTICEREF = ^NOTICEREF;
  13114. {$EXTERNALSYM USERNOTICE}
  13115. USERNOTICE = record
  13116. noticeref : PNOTICEREF;
  13117. exptext : PASN1_STRING;
  13118. end;
  13119. {$EXTERNALSYM PUSERNOTICE}
  13120. PUSERNOTICE = ^USERNOTICE;
  13121. {$EXTERNALSYM POLICYQUALINFO_union}
  13122. POLICYQUALINFO_union = record
  13123. case byte of
  13124. 0 : (cpsuri : PASN1_IA5STRING);
  13125. 1 : (usernotice : PUSERNOTICE);
  13126. 2 : (other : PASN1_TYPE);
  13127. end;
  13128. {$EXTERNALSYM POLICYQUALINFO}
  13129. POLICYQUALINFO = record
  13130. pqualid : PASN1_OBJECT;
  13131. d : POLICYQUALINFO_union;
  13132. end;
  13133. {$EXTERNALSYM PPOLICYQUALINFO}
  13134. PPOLICYQUALINFO = ^POLICYQUALINFO;
  13135. {$IFDEF DEBUG_SAFESTACK}
  13136. {$EXTERNALSYM STACK_OF_POLICYINFO}
  13137. STACK_OF_POLICYINFO = record
  13138. _stack: stack;
  13139. end;
  13140. {$EXTERNALSYM PSTACK_OF_POLICYINFO}
  13141. PSTACK_OF_POLICYINFO = ^STACK_OF_POLICYINFO;
  13142. {$ELSE}
  13143. {$EXTERNALSYM PSTACK_OF_POLICYINFO}
  13144. PSTACK_OF_POLICYINFO = PSTACK;
  13145. {$ENDIF}
  13146. {$EXTERNALSYM POLICYINFO}
  13147. POLICYINFO = record
  13148. policyid : PASN1_OBJECT;
  13149. qualifiers : PSTACK_OF_POLICYQUALINFO;
  13150. end;
  13151. {$EXTERNALSYM CERTIFICATEPOLICIES}
  13152. CERTIFICATEPOLICIES = PSTACK_OF_POLICYINFO;
  13153. //typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES;
  13154. {$EXTERNALSYM POLICY_MAPPING}
  13155. POLICY_MAPPING = record
  13156. issuerDomainPolicy : PASN1_OBJECT;
  13157. subjectDomainPolicy : PASN1_OBJECT;
  13158. end;
  13159. {$EXTERNALSYM PPOLICY_MAPPING}
  13160. PPOLICY_MAPPING = ^POLICY_MAPPING;
  13161. {$IFDEF DEBUG_SAFESTACK}
  13162. {$EXTERNALSYM STACK_OF_POLICY_MAPPING}
  13163. STACK_OF_POLICY_MAPPING = record
  13164. _stack: stack;
  13165. end;
  13166. {$EXTERNALSYM PSTACK_OF_POLICY_MAPPING}
  13167. PSTACK_OF_POLICY_MAPPING = ^STACK_OF_POLICY_MAPPING;
  13168. {$ELSE}
  13169. //I think the DECLARE_STACK_OF macro is empty
  13170. {$EXTERNALSYM PSTACK_OF_POLICY_MAPPING}
  13171. PSTACK_OF_POLICY_MAPPING = PSTACK;
  13172. {$ENDIF}
  13173. {$EXTERNALSYM PPSTACK_OF_POLICY_MAPPING}
  13174. PPSTACK_OF_POLICY_MAPPING = ^PSTACK_OF_POLICY_MAPPING;
  13175. {$EXTERNALSYM GENERAL_SUBTREE}
  13176. GENERAL_SUBTREE = record
  13177. base : PGENERAL_NAME;
  13178. minimum : PASN1_INTEGER;
  13179. maximum : PASN1_INTEGER;
  13180. end;
  13181. {$EXTERNALSYM PGENERAL_SUBTREE}
  13182. PGENERAL_SUBTREE = ^GENERAL_SUBTREE;
  13183. {$IFDEF DEBUG_SAFESTACK}
  13184. {$EXTERNALSYM STACK_OF_GENERAL_SUBTREE}
  13185. STACK_OF_GENERAL_SUBTREE = record
  13186. _stack: stack;
  13187. end;
  13188. {$EXTERNALSYM PSTACK_OF_GENERAL_SUBTREE}
  13189. PSTACK_OF_GENERAL_SUBTREE = ^STACK_OF_GENERAL_SUBTREE;
  13190. {$ELSE}
  13191. //I think the DECLARE_STACK_OF macro is empty
  13192. {$EXTERNALSYM PSTACK_OF_GENERAL_SUBTREE}
  13193. PSTACK_OF_GENERAL_SUBTREE = PSTACK;
  13194. {$ENDIF}
  13195. {$EXTERNALSYM NAME_CONSTRAINTS}
  13196. NAME_CONSTRAINTS = record
  13197. permittedSubtrees : PSTACK_OF_GENERAL_SUBTREE;
  13198. excludedSubtrees : PSTACK_OF_GENERAL_SUBTREE;
  13199. end;
  13200. {$EXTERNALSYM PNAME_CONSTRAINTS}
  13201. PNAME_CONSTRAINTS = ^NAME_CONSTRAINTS;
  13202. {$EXTERNALSYM POLICY_CONSTRAINTS}
  13203. POLICY_CONSTRAINTS = record
  13204. requireExplicitPolicy : PASN1_INTEGER;
  13205. inhibitPolicyMapping : ASN1_INTEGER;
  13206. end;
  13207. {$EXTERNALSYM PPOLICY_CONSTRAINTS}
  13208. PPOLICY_CONSTRAINTS = ^POLICY_CONSTRAINTS;
  13209. // Proxy certificate structures, see RFC 3820
  13210. {$EXTERNALSYM PROXY_POLICY}
  13211. PROXY_POLICY = record
  13212. policyLanguage : PASN1_OBJECT;
  13213. policy : ASN1_OCTET_STRING;
  13214. end;
  13215. {$EXTERNALSYM PPROXY_POLICY}
  13216. PPROXY_POLICY = ^PROXY_POLICY;
  13217. {$EXTERNALSYM PROXY_CERT_INFO_EXTENSION}
  13218. PROXY_CERT_INFO_EXTENSION = record
  13219. pcPathLengthConstraint : PASN1_INTEGER;
  13220. proxyPolicy : PPROXY_POLICY;
  13221. end;
  13222. {$EXTERNALSYM ISSUING_DIST_POINT}
  13223. ISSUING_DIST_POINT = record
  13224. distpoint : PDIST_POINT_NAME;
  13225. onlyuser : TIdC_INT;
  13226. onlyCA : TIdC_INT;
  13227. onlysomereasons : PASN1_BIT_STRING;
  13228. indirectCRL : TIdC_INT;
  13229. onlyattr : TIdC_INT;
  13230. end;
  13231. {$IFDEF DEBUG_SAFESTACK}
  13232. //These are cut and paste but the duplication is for type checking.
  13233. {$EXTERNALSYM STACK_OF_CMS_SignerInfo}
  13234. STACK_OF_CMS_SignerInfo = record
  13235. _stack: stack;
  13236. end;
  13237. {$EXTERNALSYM STACK_OF_GENERAL_NAMES}
  13238. STACK_OF_GENERAL_NAMES = record
  13239. _stack: stack;
  13240. end;
  13241. {$EXTERNALSYM PSTACK_OF_CMS_SignerInfo}
  13242. PSTACK_OF_CMS_SignerInfo = ^STACK_OF_CMS_SignerInfo;
  13243. {$EXTERNALSYM PSTACK_OF_GENERAL_NAMES}
  13244. PSTACK_OF_GENERAL_NAMES = ^STACK_OF_GENERAL_NAMES;
  13245. {$ELSE}
  13246. //I think the DECLARE_STACK_OF macro is empty
  13247. {$EXTERNALSYM PSTACK_OF_CMS_SignerInfo}
  13248. PSTACK_OF_CMS_SignerInfo = PSTACK;
  13249. {$EXTERNALSYM PSTACK_OF_GENERAL_NAMES}
  13250. PSTACK_OF_GENERAL_NAMES = PSTACK;
  13251. {$ENDIF}
  13252. {.$ENDIF}
  13253. {$EXTERNALSYM PISSUING_DIST_POINT}
  13254. PISSUING_DIST_POINT = ^ISSUING_DIST_POINT;
  13255. {$EXTERNALSYM PPROXY_CERT_INFO_EXTENSION}
  13256. PPROXY_CERT_INFO_EXTENSION = ^PROXY_CERT_INFO_EXTENSION;
  13257. {$EXTERNALSYM PX509_PURPOSE}
  13258. PX509_PURPOSE = ^X509_PURPOSE;
  13259. {$EXTERNALSYM X509_PURPOSE_check_purpose}
  13260. X509_PURPOSE_check_purpose = function(const _para1 : Px509_purpose; const _para2 : PX509;
  13261. para3 : TIdC_INT) : TIdC_INT; cdecl;
  13262. {$EXTERNALSYM X509_PURPOSE}
  13263. X509_PURPOSE = record
  13264. purpose : TIdC_INT;
  13265. trust : TIdC_INT; // Default trust ID
  13266. flags : TIdC_INT;
  13267. check_purpose : X509_PURPOSE_check_purpose;
  13268. name : PIdAnsiChar;
  13269. sname : PIdAnsiChar;
  13270. usr_data : Pointer;
  13271. end;
  13272. {$IFDEF DEBUG_SAFESTACK}
  13273. {$EXTERNALSYM STACK_OF_X509_PURPOSE}
  13274. STACK_OF_X509_PURPOSE = record
  13275. _stack: stack;
  13276. end;
  13277. {$EXTERNALSYM PSTACK_OF_X509_PURPOSE}
  13278. PSTACK_OF_X509_PURPOSE = ^STACK_OF_X509_PURPOSE;
  13279. {$ELSE}
  13280. //I think the DECLARE_STACK_OF macro is empty
  13281. {$EXTERNALSYM PSTACK_OF_X509_PURPOSE}
  13282. PSTACK_OF_X509_PURPOSE = PSTACK;
  13283. {$ENDIF}
  13284. {$IFNDEF OPENSSL_NO_RFC3779}
  13285. {$EXTERNALSYM ASRange}
  13286. ASRange = record
  13287. min, max : PASN1_INTEGER;
  13288. end;
  13289. {$EXTERNALSYM PASRange}
  13290. PASRange = ^ASRange;
  13291. {$EXTERNALSYM ASIdOrRange_union}
  13292. ASIdOrRange_union = record
  13293. case byte of
  13294. ASIdOrRange_id : (id : PASN1_INTEGER);
  13295. ASIdOrRange_range : (range : PASRange);
  13296. end;
  13297. {$EXTERNALSYM ASIdOrRange}
  13298. ASIdOrRange = record
  13299. _type : TIdC_INT;
  13300. u : ASIdOrRange_union;
  13301. end;
  13302. {$EXTERNALSYM PASIdOrRange}
  13303. PASIdOrRange = ^ASIdOrRange;
  13304. {$IFDEF DEBUG_SAFESTACK}
  13305. {$EXTERNALSYM STACK_OF_ASIdOrRange}
  13306. STACK_OF_ASIdOrRange = record
  13307. _stack: stack;
  13308. end;
  13309. {$EXTERNALSYM PSTACK_OF_ASIdOrRange}
  13310. PSTACK_OF_ASIdOrRange = ^STACK_OF_ASIdOrRange;
  13311. {$ELSE}
  13312. //I think the DECLARE_STACK_OF macro is empty
  13313. {$EXTERNALSYM PSTACK_OF_ASIdOrRange}
  13314. PSTACK_OF_ASIdOrRange = PSTACK;
  13315. {$ENDIF}
  13316. {$EXTERNALSYM PASIdOrRanges}
  13317. PASIdOrRanges = PSTACK_OF_ASIdOrRange;
  13318. {$EXTERNALSYM ASIdentifierChoice_union}
  13319. ASIdentifierChoice_union = record
  13320. case byte of
  13321. ASIdentifierChoice_inherit : (inherit : PASN1_NULL);
  13322. ASIdentifierChoice_asIdsOrRanges : (asIdsOrRanges : PASIdOrRanges);
  13323. end;
  13324. {$EXTERNALSYM ASIdentifierChoice}
  13325. ASIdentifierChoice = record
  13326. _type : TIdC_INT;
  13327. u : ASIdentifierChoice_union;
  13328. end;
  13329. {$EXTERNALSYM PASIdentifierChoice}
  13330. PASIdentifierChoice = ^ASIdentifierChoice;
  13331. {$EXTERNALSYM ASIdentifiers}
  13332. ASIdentifiers = record
  13333. asnum : PASIdentifierChoice;
  13334. rdi : PASIdentifierChoice;
  13335. end;
  13336. {$EXTERNALSYM PASIdentifiers}
  13337. PASIdentifiers = ^ASIdentifiers;
  13338. {$EXTERNALSYM IPAddressRange}
  13339. IPAddressRange = record
  13340. min, max : PASN1_BIT_STRING;
  13341. end;
  13342. {$EXTERNALSYM PIPAddressRange}
  13343. PIPAddressRange = ^IPAddressRange;
  13344. {$EXTERNALSYM IPAddressOrRange_union}
  13345. IPAddressOrRange_union = record
  13346. case byte of
  13347. IPAddressOrRange_addressPrefix : (addressPrefix : PASN1_BIT_STRING);
  13348. IPAddressOrRange_addressRange : (addressRange : PIPAddressRange);
  13349. end;
  13350. {$EXTERNALSYM IPAddressOrRange}
  13351. IPAddressOrRange = record
  13352. _type : TIdC_INT;
  13353. u : IPAddressOrRange_union;
  13354. end;
  13355. {$EXTERNALSYM PIPAddressOrRange}
  13356. PIPAddressOrRange = ^IPAddressOrRange;
  13357. {$IFDEF DEBUG_SAFESTACK}
  13358. {$EXTERNALSYM STACK_OF_IPAddressOrRange}
  13359. STACK_OF_IPAddressOrRange = record
  13360. _stack: stack;
  13361. end;
  13362. {$EXTERNALSYM PSTACK_OF_IPAddressOrRange}
  13363. PSTACK_OF_IPAddressOrRange = ^STACK_OF_IPAddressOrRange;
  13364. {$ELSE}
  13365. //I think the DECLARE_STACK_OF macro is empty
  13366. {$EXTERNALSYM PSTACK_OF_IPAddressOrRange}
  13367. PSTACK_OF_IPAddressOrRange = PSTACK;
  13368. {$ENDIF}
  13369. {$EXTERNALSYM PIPAddressOrRanges}
  13370. PIPAddressOrRanges = PSTACK_OF_IPAddressOrRange;
  13371. {$EXTERNALSYM IPAddressChoice_union}
  13372. IPAddressChoice_union = record
  13373. case byte of
  13374. IPAddressChoice_inherit : (inherit : PASN1_NULL);
  13375. IPAddressChoice_addressesOrRanges : (addressesOrRanges : PIPAddressOrRanges);
  13376. end;
  13377. {$EXTERNALSYM IPAddressChoice}
  13378. IPAddressChoice = record
  13379. _type : TIdC_INT;
  13380. u : IPAddressChoice_union;
  13381. end;
  13382. {$EXTERNALSYM PIPAddressChoice}
  13383. PIPAddressChoice = ^IPAddressChoice;
  13384. {$EXTERNALSYM IPAddressFamily}
  13385. IPAddressFamily = record
  13386. addressFamily : PASN1_OCTET_STRING;
  13387. ipAddressChoice : PIPAddressChoice;
  13388. end;
  13389. {$EXTERNALSYM PIPAddressFamily}
  13390. PIPAddressFamily = ^IPAddressFamily;
  13391. {$IFDEF DEBUG_SAFESTACK}
  13392. {$EXTERNALSYM STACK_OF_IPAddressFamily}
  13393. STACK_OF_IPAddressFamily = record
  13394. _stack: stack;
  13395. end;
  13396. {$EXTERNALSYM PSTACK_OF_IPAddressFamily}
  13397. PSTACK_OF_IPAddressFamily = ^STACK_OF_IPAddressFamily;
  13398. {$ELSE}
  13399. //I think the DECLARE_STACK_OF macro is empty
  13400. {$EXTERNALSYM PSTACK_OF_IPAddressFamily}
  13401. PSTACK_OF_IPAddressFamily = PSTACK;
  13402. {$ENDIF}
  13403. {$EXTERNALSYM PIPAddrBlocks}
  13404. PIPAddrBlocks = PSTACK_OF_IPAddressFamily;
  13405. {$ENDIF}
  13406. //x509.h
  13407. {$EXTERNALSYM X509_HASH_DIR_CTX}
  13408. X509_HASH_DIR_CTX = record
  13409. num_dirs : TIDC_INT;
  13410. dirs : PPIdAnsiChar;
  13411. dirs_type : PIdC_INT;
  13412. num_dirs_alloced : TIdC_INT;
  13413. end;
  13414. {$EXTERNALSYM PX509_HASH_DIR_CTX}
  13415. PX509_HASH_DIR_CTX = ^X509_HASH_DIR_CTX;
  13416. {$EXTERNALSYM X509_CERT_FILE_CTX}
  13417. X509_CERT_FILE_CTX = record
  13418. num_paths : TIdC_INT; // number of paths to files or directories
  13419. num_alloced : TIdC_INT;
  13420. paths : PPIdAnsiChar; // the list of paths or directories
  13421. path_type : TIdC_INT;
  13422. end;
  13423. {$EXTERNALSYM PX509_CERT_FILE_CTX}
  13424. PX509_CERT_FILE_CTX = ^X509_CERT_FILE_CTX;
  13425. {$EXTERNALSYM x509_object_union}
  13426. x509_object_union = record
  13427. case byte of
  13428. 0: (ptr : PIdAnsiChar);
  13429. 1: (_x509 : Px509);
  13430. 2: (crl : PX509_CRL);
  13431. 3: (pkey : PEVP_PKEY);
  13432. end;
  13433. {$EXTERNALSYM X509_OBJECT}
  13434. X509_OBJECT = record
  13435. _type : TIdC_INT;
  13436. data : x509_object_union;
  13437. end;
  13438. {$EXTERNALSYM PX509_OBJECT}
  13439. PX509_OBJECT = ^X509_OBJECT;
  13440. {$EXTERNALSYM PPX509_OBJECT}
  13441. PPX509_OBJECT = ^PX509_OBJECT;
  13442. {$IFDEF DEBUG_SAFESTACK}
  13443. {$EXTERNALSYM STACK_OF_X509_OBJECT}
  13444. STACK_OF_X509_OBJECT = record
  13445. _stack: STACK;
  13446. end;
  13447. {$EXTERNALSYM PSTACK_OF_X509_OBJECT}
  13448. PSTACK_OF_X509_OBJECT = ^STACK_OF_X509_OBJECT;
  13449. {$ELSE}
  13450. //I think the DECLARE_STACK_OF macro is empty
  13451. {$EXTERNALSYM PSTACK_OF_X509_OBJECT}
  13452. PSTACK_OF_X509_OBJECT = PSTACK;
  13453. {$ENDIF}
  13454. {$EXTERNALSYM X509_ALGOR}
  13455. X509_ALGOR = record
  13456. algorithm : PASN1_OBJECT;
  13457. parameter : PASN1_TYPE;
  13458. end;
  13459. {$EXTERNALSYM PX509_ALGOR}
  13460. PX509_ALGOR = ^X509_ALGOR;
  13461. {$EXTERNALSYM PPX509_ALGOR}
  13462. PPX509_ALGOR =^PX509_ALGOR;
  13463. {$IFDEF DEBUG_SAFESTACK}
  13464. {$EXTERNALSYM STACK_OF_X509_ALGOR}
  13465. STACK_OF_X509_ALGOR = record
  13466. _stack: stack;
  13467. end;
  13468. {$EXTERNALSYM PSTACK_OF_X509_ALGOR}
  13469. PSTACK_OF_X509_ALGOR = ^STACK_OF_X509_ALGOR;
  13470. {$ELSE}
  13471. //I think the DECLARE_STACK_OF macro is empty
  13472. {$EXTERNALSYM PSTACK_OF_X509_ALGOR}
  13473. PSTACK_OF_X509_ALGOR = PSTACK;
  13474. {$ENDIF}
  13475. {$EXTERNALSYM PPSTACK_OF_X509_ALGOR}
  13476. PPSTACK_OF_X509_ALGOR = ^PSTACK_OF_X509_ALGOR;
  13477. {$EXTERNALSYM X509_VAL}
  13478. X509_VAL = record
  13479. notBefore : PASN1_TIME;
  13480. notAfter : PASN1_TIME;
  13481. end;
  13482. {$EXTERNALSYM PX509_VAL}
  13483. PX509_VAL = ^X509_VAL;
  13484. {$EXTERNALSYM PPX509_VAL}
  13485. PPX509_VAL =^PX509_VAL;
  13486. {$EXTERNALSYM X509_PUBKEY}
  13487. X509_PUBKEY = record
  13488. algor : PX509_ALGOR;
  13489. public_key : PASN1_BIT_STRING;
  13490. pkey : PEVP_PKEY;
  13491. end;
  13492. {$EXTERNALSYM PX509_PUBKEY}
  13493. PX509_PUBKEY = ^X509_PUBKEY;
  13494. {$EXTERNALSYM PPX509_PUBKEY}
  13495. PPX509_PUBKEY =^PX509_PUBKEY;
  13496. {$EXTERNALSYM X509_SIG}
  13497. X509_SIG = record
  13498. algor : PX509_ALGOR;
  13499. digest : PASN1_OCTET_STRING;
  13500. end;
  13501. {$EXTERNALSYM PX509_SIG}
  13502. PX509_SIG = X509_SIG;
  13503. {$EXTERNALSYM PPX509_SIG}
  13504. PPX509_SIG =^PX509_SIG;
  13505. {$EXTERNALSYM X509_NAME_ENTRY}
  13506. X509_NAME_ENTRY = record
  13507. _object : PASN1_OBJECT;
  13508. value : PASN1_STRING;
  13509. _set : TIdC_INT;
  13510. size : TIdC_INT; // temp variable
  13511. end;
  13512. {$NODEFINE X509_NAME}
  13513. X509_NAME = record
  13514. entries : PSTACK_OF_X509_NAME_ENTRY;
  13515. modified : TIdC_INT; // true if 'bytes' needs to be built
  13516. {$IFNDEF OPENSSL_NO_BUFFER}
  13517. bytes : PBUF_MEM;
  13518. {$else}
  13519. bytes : PIdAnsiChar;
  13520. {$ENDIF}
  13521. //* unsigned long hash; Keep the hash around for lookups */
  13522. canon_enc : PIdAnsiChar;
  13523. canon_enclen : TIdC_INT;
  13524. end;
  13525. {$EXTERNALSYM X509_EXTENSION}
  13526. X509_EXTENSION = record
  13527. _object : PASN1_OBJECT;
  13528. critical : ASN1_BOOLEAN;
  13529. value : PASN1_OCTET_STRING;
  13530. end;
  13531. {$EXTERNALSYM PX509_EXTENSION}
  13532. PX509_EXTENSION = ^X509_EXTENSION;
  13533. {$EXTERNALSYM PPX509_EXTENSION}
  13534. PPX509_EXTENSION =^PX509_EXTENSION;
  13535. {$IFDEF DEBUG_SAFESTACK}
  13536. {$EXTERNALSYM STACK_OF_X509_EXTENSION}
  13537. STACK_OF_X509_EXTENSION = record
  13538. _stack: stack;
  13539. end;
  13540. {$EXTERNALSYM X509_EXTENSIONS}
  13541. X509_EXTENSIONS = STACK_OF_X509_EXTENSION;
  13542. {$EXTERNALSYM PSTACK_OF_X509_EXTENSION}
  13543. PSTACK_OF_X509_EXTENSION = ^STACK_OF_X509_EXTENSION;
  13544. {$ELSE}
  13545. //I think the DECLARE_STACK_OF macro is empty
  13546. {$EXTERNALSYM PSTACK_OF_X509_EXTENSION}
  13547. PSTACK_OF_X509_EXTENSION = PSTACK;
  13548. {$ENDIF}
  13549. {$EXTERNALSYM PPSTACK_OF_X509_EXTENSION}
  13550. PPSTACK_OF_X509_EXTENSION = ^PSTACK_OF_X509_EXTENSION;
  13551. {$EXTERNALSYM PX509_EXTENSIONS}
  13552. PX509_EXTENSIONS = PPSTACK_OF_X509_EXTENSION;
  13553. {$EXTERNALSYM x509_attributes_union}
  13554. x509_attributes_union = record
  13555. case Byte of
  13556. $FF :(Ptr : PIdAnsiChar);
  13557. 0 : (_set: PSTACK_OF_ASN1_TYPE); // 0
  13558. 1 : (_single: PASN1_TYPE);
  13559. end;
  13560. {$EXTERNALSYM X509_ATTRIBUTE}
  13561. X509_ATTRIBUTE = record
  13562. _object : PASN1_OBJECT;
  13563. single : TIdC_INT; // 0 for a set, 1 for a single item (which is wrong)
  13564. value : x509_attributes_union;
  13565. end;
  13566. {$EXTERNALSYM PX509_ATTRIBUTE}
  13567. PX509_ATTRIBUTE = ^X509_ATTRIBUTE;
  13568. {$EXTERNALSYM PPX509_ATTRIBUTE}
  13569. PPX509_ATTRIBUTE =^PX509_ATTRIBUTE;
  13570. {$EXTERNALSYM X509_REQ_INFO}
  13571. X509_REQ_INFO = record
  13572. enc: ASN1_ENCODING;
  13573. version: PASN1_INTEGER;
  13574. subject: PX509_NAME;
  13575. pubkey: PX509_PUBKEY;
  13576. attributes: PSTACK_OF_X509_ATTRIBUTE; // [ 0 ]
  13577. end;
  13578. {$EXTERNALSYM X509_REQ}
  13579. X509_REQ = record
  13580. req_info: PX509_REQ_INFO;
  13581. sig_alg: PX509_ALGOR;
  13582. signature: PASN1_BIT_STRING;
  13583. references: TIdC_INT;
  13584. end;
  13585. {$EXTERNALSYM PPX509_REQ}
  13586. PPX509_REQ = ^PX509_REQ;
  13587. {$EXTERNALSYM PX509_CINF}
  13588. PX509_CINF = ^X509_CINF;
  13589. {$EXTERNALSYM X509_CINF}
  13590. X509_CINF = record
  13591. version: PASN1_INTEGER;
  13592. serialNumber: PASN1_INTEGER;
  13593. signature: PX509_ALGOR;
  13594. issuer: PX509_NAME;
  13595. validity: PX509_VAL;
  13596. subject: PX509_NAME;
  13597. key: PX509_PUBKEY;
  13598. issuerUID: PASN1_BIT_STRING; // [ 1 ] optional in v2
  13599. subjectUID: PASN1_BIT_STRING; // [ 2 ] optional in v2
  13600. extensions: PSTACK_OF_X509_EXTENSION;
  13601. enc : ASN1_ENCODING;
  13602. end;
  13603. {$EXTERNALSYM X509_CERT_AUX}
  13604. X509_CERT_AUX = record
  13605. trust : PSTACK_OF_ASN1_OBJECT; // trusted uses
  13606. reject : PSTACK_OF_ASN1_OBJECT; // rejected uses
  13607. alias : PASN1_UTF8STRING; // "friendly name"
  13608. keyid : PASN1_OCTET_STRING; // key id of private key
  13609. other : PSTACK_OF_X509_ALGOR; // other unspecified info
  13610. end;
  13611. {$EXTERNALSYM PX509_CERT_AUX}
  13612. PX509_CERT_AUX = ^X509_CERT_AUX;
  13613. {$NODEFINE X509}
  13614. X509 = record
  13615. cert_info: PX509_CINF;
  13616. sig_alg : PX509_ALGOR;
  13617. signature : PASN1_BIT_STRING;
  13618. valid : TIdC_INT;
  13619. references : TIdC_INT;
  13620. name : PIdAnsiChar;
  13621. ex_data : CRYPTO_EX_DATA;
  13622. // These contain copies of various extension values
  13623. ex_pathlen : TIdC_LONG;
  13624. ex_pcpathlen : TIdC_LONG;
  13625. ex_flags : TIdC_ULONG;
  13626. ex_kusage : TIdC_ULONG;
  13627. ex_xkusage : TIdC_ULONG;
  13628. ex_nscert : TIdC_ULONG;
  13629. skid : PASN1_OCTET_STRING;
  13630. akid : PAUTHORITY_KEYID;
  13631. policy_cache : PX509_POLICY_CACHE;
  13632. crldp : PSTACK_OF_DIST_POINT;
  13633. altname : PSTACK_OF_GENERAL_NAME;
  13634. nc : PNAME_CONSTRAINTS;
  13635. {$IFNDEF OPENSSL_NO_RFC3779}
  13636. rfc3779_addr : PSTACK_OF_IPAddressFamily;
  13637. rfc3779_asid : PASIdentifiers;
  13638. {$ENDIF}
  13639. {$IFNDEF OPENSSL_NO_SHA}
  13640. sha1_hash : array [0..SHA_DIGEST_LENGTH-1] of TIdAnsiChar;
  13641. {$ENDIF}
  13642. aux : PX509_CERT_AUX;
  13643. end;
  13644. {$EXTERNALSYM X509_CRL_INFO}
  13645. X509_CRL_INFO = record
  13646. version : PASN1_INTEGER;
  13647. sig_alg : PX509_ALGOR;
  13648. issuer : PX509_NAME;
  13649. lastUpdate : PASN1_TIME;
  13650. nextUpdate : PASN1_TIME;
  13651. revoked : PSTACK_OF_X509_REVOKED;
  13652. extensions : PSTACK_OF_X509_EXTENSION; // [0]
  13653. enc : ASN1_ENCODING;
  13654. end;
  13655. {$EXTERNALSYM PX509_CRL_INFO}
  13656. PX509_CRL_INFO = ^X509_CRL_INFO;
  13657. {$EXTERNALSYM PPX509_CRL_INFO}
  13658. PPX509_CRL_INFO =^PX509_CRL_INFO;
  13659. {$IFDEF DEBUG_SAFESTACK}
  13660. {$EXTERNALSYM STACK_OF_X509_CRL_INFO}
  13661. STACK_OF_X509_CRL_INFO = record
  13662. _stack: stack;
  13663. end;
  13664. {$EXTERNALSYM PSTACK_OF_X509_CRL_INFO}
  13665. PSTACK_OF_X509_CRL_INFO = ^STACK_OF_X509_CRL_INFO;
  13666. {$ELSE}
  13667. //I think the DECLARE_STACK_OF macro is empty
  13668. {$EXTERNALSYM PSTACK_OF_X509_CRL_INFO}
  13669. PSTACK_OF_X509_CRL_INFO = PSTACK;
  13670. {$ENDIF}
  13671. {$EXTERNALSYM PX509_LOOKUP}
  13672. PX509_LOOKUP = ^X509_LOOKUP;
  13673. //This has to be declared ehre for a reference in the next type.
  13674. {$IFDEF DEBUG_SAFESTACK}
  13675. {$EXTERNALSYM STACK_OF_X509_LOOKUP}
  13676. STACK_OF_X509_LOOKUP = record
  13677. _stack: STACK;
  13678. end;
  13679. {$EXTERNALSYM PSTACK_OF_X509_LOOKUP}
  13680. PSTACK_OF_X509_LOOKUP = ^STACK_OF_X509_LOOKUP;
  13681. {$ELSE}
  13682. //I think the DECLARE_STACK_OF macro is empty
  13683. {$EXTERNALSYM PSTACK_OF_X509_LOOKUP}
  13684. PSTACK_OF_X509_LOOKUP = PSTACK;
  13685. {$ENDIF}
  13686. {$IFDEF DEBUG_SAFESTACK}
  13687. {$EXTERNALSYM STACK_OF_X509_CRL}
  13688. STACK_OF_X509_CRL = record
  13689. _stack: STACK;
  13690. end;
  13691. {$EXTERNALSYM PSTACK_OF_X509_CRL}
  13692. PSTACK_OF_X509_CRL = ^STACK_OF_X509_CRL;
  13693. {$ELSE}
  13694. //I think the DECLARE_STACK_OF macro is empty
  13695. {$EXTERNALSYM PSTACK_OF_X509_CRL}
  13696. PSTACK_OF_X509_CRL = PSTACK;
  13697. {$ENDIF}
  13698. {$EXTERNALSYM PX509_VERIFY_PARAM}
  13699. PX509_VERIFY_PARAM = ^X509_VERIFY_PARAM;
  13700. {$EXTERNALSYM PX509_STORE_CTX}
  13701. PX509_STORE_CTX = ^X509_STORE_CTX;
  13702. {$EXTERNALSYM PPX509_CRL}
  13703. PPX509_CRL = ^PX509_CRL;
  13704. {$EXTERNALSYM X509_STORE}
  13705. X509_STORE = record
  13706. // The following is a cache of trusted certs
  13707. cache : TIdC_INT; // if true, stash any hits
  13708. objs : PSTACK_OF_X509_OBJECT; // Cache of all objects
  13709. // These are external lookup methods
  13710. get_cert_methods : PSTACK_OF_X509_LOOKUP;
  13711. param : PX509_VERIFY_PARAM;
  13712. // Callbacks for various operations
  13713. verify : function (ctx : PX509_STORE_CTX) : TIdC_INT; cdecl; // called to verify a certificate
  13714. verify_cb : function (ok : TIdC_INT; ctx : PX509_STORE_CTX) : TIdC_INT; cdecl; // error callback
  13715. get_issuer : function (issuer : PPX509; ctx : PX509_STORE_CTX; x : PX509) : TIdC_INT; cdecl; // get issuers cert from ctx
  13716. check_issued : function (ctx : PX509_STORE_CTX; x : PX509; issuer : PX509) : TIdC_INT; cdecl; // check issued
  13717. check_revocation : function (ctx : PX509_STORE_CTX) : TIdC_INT; cdecl; // Check revocation status of chain
  13718. get_crl : function (ctx : PX509_STORE_CTX; crl : PPX509_CRL; x : PX509) : TIdC_INT; cdecl;// retrieve CRL
  13719. check_crl : function(ctx : PX509_STORE_CTX; crl : PX509_CRL) : TIdC_INT; cdecl; // Check CRL validity
  13720. cert_crl : function(ctx : PX509_STORE_CTX; crl : PX509_CRL; x : PX509) : TIdC_INT; cdecl; // Check certificate against CRL
  13721. lookup_certs : function(ctx : PX509_STORE_CTX; nm : PX509_NAME) : PSTACK_OF_X509 cdecl;
  13722. lookup_crls : function(ctx : PX509_STORE_CTX; nm : PX509_NAME) : PSTACK_OF_X509_CRL cdecl;
  13723. cleanup : function(ctx : PX509_STORE_CTX) : TIdC_INT; cdecl;
  13724. ex_data : CRYPTO_EX_DATA;
  13725. references : TIdC_INT;
  13726. end;
  13727. {$EXTERNALSYM PX509_STORE}
  13728. PX509_STORE = ^X509_STORE;
  13729. {$EXTERNALSYM PX509_CRL_METHOD}
  13730. PX509_CRL_METHOD = Pointer;
  13731. {$EXTERNALSYM X509_CRL}
  13732. X509_CRL = record
  13733. crl : PX509_CRL_INFO;
  13734. sig_alg : PX509_ALGOR;
  13735. signature : PASN1_BIT_STRING;
  13736. references : TIdC_INT;
  13737. flags : TIdC_INT;
  13738. //* Copies of various extensions */
  13739. akid : PAUTHORITY_KEYID;
  13740. idp : PISSUING_DIST_POINT;
  13741. //* Convenient breakdown of IDP */
  13742. idp_flags : TIdC_INT;
  13743. idp_reasons : TIdC_INT;
  13744. //* CRL and base CRL numbers for delta processing */
  13745. crl_number : PASN1_INTEGER;
  13746. base_crl_number : PASN1_INTEGER;
  13747. {$ifndef OPENSSL_NO_SHA}
  13748. sha1_hash : array [0..(SHA_DIGEST_LENGTH - 1)] of byte;
  13749. {$endif}
  13750. issuers : PSTACK_OF_GENERAL_NAMES;
  13751. meth : PX509_CRL_METHOD;
  13752. meth_data : Pointer;
  13753. end;
  13754. {$EXTERNALSYM X509_LOOKUP_METHOD}
  13755. X509_LOOKUP_METHOD = record
  13756. name : PIdAnsiChar;
  13757. new_item : function (ctx : PX509_LOOKUP): TIdC_INT; cdecl;
  13758. free : procedure (ctx : PX509_LOOKUP); cdecl;
  13759. init : function(ctx : PX509_LOOKUP) : TIdC_INT; cdecl;
  13760. shutdown : function(ctx : PX509_LOOKUP) : TIdC_INT; cdecl;
  13761. ctrl: function(ctx : PX509_LOOKUP; cmd : TIdC_INT; const argc : PIdAnsiChar; argl : TIdC_LONG; out ret : PIdAnsiChar ) : TIdC_INT; cdecl;
  13762. get_by_subject: function(ctx : PX509_LOOKUP; _type : TIdC_INT; name : PX509_NAME; ret : PX509_OBJECT ) : TIdC_INT; cdecl;
  13763. get_by_issuer_serial : function(ctx : PX509_LOOKUP; _type : TIdC_INT; name : PX509_NAME; serial : PASN1_INTEGER; ret : PX509_OBJECT) : TIdC_INT; cdecl;
  13764. get_by_fingerprint : function (ctx : PX509_LOOKUP; _type : TIdC_INT; bytes : PIdAnsiChar; len : TIdC_INT; ret : PX509_OBJECT): TIdC_INT; cdecl;
  13765. get_by_alias : function(ctx : PX509_LOOKUP; _type : TIdC_INT; str : PIdAnsiChar; ret : PX509_OBJECT) : TIdC_INT; cdecl;
  13766. end;
  13767. {$EXTERNALSYM PX509_LOOKUP_METHOD}
  13768. PX509_LOOKUP_METHOD = ^X509_LOOKUP_METHOD;
  13769. {$EXTERNALSYM PPX509_LOOKUP_METHOD}
  13770. PPX509_LOOKUP_METHOD = ^PX509_LOOKUP_METHOD;
  13771. {$EXTERNALSYM X509_VERIFY_PARAM}
  13772. X509_VERIFY_PARAM = record
  13773. name : PIdAnsiChar;
  13774. check_time : time_t; // Time to use
  13775. inh_flags : TIdC_ULONG; // Inheritance flags
  13776. flags : TIdC_ULONG; // Various verify flags
  13777. purpose : TIdC_INT; // purpose to check untrusted certificates
  13778. trust : TIdC_INT; // trust setting to check
  13779. depth : TIdC_INT; // Verify depth
  13780. policies : PSTACK_OF_ASN1_OBJECT; // Permissible policies
  13781. end;
  13782. {$IFDEF DEBUG_SAFESTACK}
  13783. {$EXTERNALSYM STACK_OF_X509_VERIFY_PARAM}
  13784. STACK_OF_X509_VERIFY_PARAM = record
  13785. _stack: STACK;
  13786. end;
  13787. {$EXTERNALSYM PSTACK_OF_X509_VERIFY_PARAM}
  13788. PSTACK_OF_X509_VERIFY_PARAM = ^STACK_OF_X509_VERIFY_PARAM;
  13789. {$ELSE}
  13790. //I think the DECLARE_STACK_OF macro is empty
  13791. {$EXTERNALSYM PSTACK_OF_X509_VERIFY_PARAM}
  13792. PSTACK_OF_X509_VERIFY_PARAM = PSTACK;
  13793. {$ENDIF}
  13794. {$EXTERNALSYM X509_LOOKUP}
  13795. X509_LOOKUP = record
  13796. init : TIdC_INT; // have we been started
  13797. skip : TIdC_INT; // don't use us.
  13798. method : PX509_LOOKUP_METHOD; // the functions
  13799. method_data : PIdAnsiChar; // method data
  13800. store_ctx : PX509_STORE; // who owns us
  13801. end;
  13802. {$EXTERNALSYM PX509_POLICY_TREE}
  13803. PX509_POLICY_TREE = Pointer;
  13804. {$EXTERNALSYM PPSTACK_OF_X509_LOOKUP}
  13805. PPSTACK_OF_X509_LOOKUP = ^PSTACK_OF_X509_LOOKUP;
  13806. // This is used when verifying cert chains. Since the
  13807. // gathering of the cert chain can take some time (and have to be
  13808. // 'retried', this needs to be kept and passed around.
  13809. X509_STORE_CTX = record // X509_STORE_CTX
  13810. ctx : PX509_STORE;
  13811. current_method : TIdC_INT; // used when looking up certs
  13812. // The following are set by the caller
  13813. cert : PX509; // The cert to check
  13814. untrusted : PSTACK_OF_X509; // chain of X509s - untrusted - passed in
  13815. crls : PSTACK_OF_X509_CRL; // set of CRLs passed in
  13816. param : PX509_VERIFY_PARAM;
  13817. other_ctx : Pointer; // Other info for use with get_issuer()
  13818. // Callbacks for various operations
  13819. verify : function (ctx : PX509_STORE_CTX) : TIdC_INT; cdecl; // called to verify a certificate
  13820. verify_cb : function (ok : TIdC_INT; ctx : PX509_STORE_CTX) : TIdC_INT; cdecl; // error callback
  13821. get_issuer : function (var issuer : PX509; ctx : PX509_STORE_CTX; x : PX509) : TIdC_INT; cdecl; // get issuers cert from ctx
  13822. check_issued : function(ctx : PX509_STORE_CTX; x, issuer : PX509) : TIdC_INT; cdecl; // check issued
  13823. check_revocation : function (ctx : PX509_STORE_CTX): TIdC_INT; cdecl; // Check revocation status of chain
  13824. get_crl : function (ctx : PX509_STORE_CTX; var crl : X509_CRL; x : PX509): TIdC_INT; cdecl; // retrieve CRL
  13825. check_crl : function (ctx : PX509_STORE_CTX; var crl : X509_CRL) : TIdC_INT; cdecl; // Check CRL validity
  13826. cert_crl : function (ctx : PX509_STORE_CTX; crl : PX509_CRL; x : PX509) : TIdC_INT; cdecl; // Check certificate against CRL
  13827. check_policy : function (ctx : PX509_STORE_CTX) : TIdC_INT; cdecl;
  13828. cleanup : function (ctx : PX509_STORE_CTX) : TIdC_INT; cdecl;
  13829. //* The following is built up */
  13830. valid : TIdC_INT; //* if 0, rebuild chain */
  13831. last_untrusted : TIdC_INT; //* index of last untrusted cert */
  13832. chain : PSTACK_OF_X509; //* chain of X509s - built up and trusted */
  13833. tree : PX509_POLICY_TREE; //* Valid policy tree */
  13834. explicit_policy : TIdC_INT; //* Require explicit policy value */
  13835. //* When something goes wrong, this is why */
  13836. error_depth : TIdC_INT;
  13837. error : TIdC_INT;
  13838. current_cert : PX509;
  13839. current_issuer : PX509; //* cert currently being tested as valid issuer */
  13840. current_crl : PX509_CRL; //* current CRL */
  13841. current_crl_score : TIdC_INT; //* score of current CRL */
  13842. current_reasons : TIdC_UINT; //* Reason mask */
  13843. parent : PX509_STORE_CTX; //* For CRL path validation: parent context */
  13844. ex_data : CRYPTO_EX_DATA;
  13845. end;
  13846. {$EXTERNALSYM X509_STORE_CTX}
  13847. {$EXTERNALSYM PX509_EXTENSION_METHOD}
  13848. PX509_EXTENSION_METHOD = Pointer;
  13849. {$EXTERNALSYM PX509_TRUST}
  13850. PX509_TRUST = ^X509_TRUST;
  13851. {$EXTERNALSYM X509_TRUST_check_trust}
  13852. X509_TRUST_check_trust = function(_para1 : PX509_TRUST; para2 : PX509; _para3 : TIdC_INT) : TIdC_INT; cdecl;
  13853. {$EXTERNALSYM X509_TRUST}
  13854. X509_TRUST = record
  13855. trust : TIdC_INT;
  13856. flags : TIdC_INT;
  13857. check_trust : X509_TRUST_check_trust;
  13858. name : PIdAnsiChar;
  13859. arg1 : TIdC_INT;
  13860. arg2 : Pointer;
  13861. end;
  13862. {$EXTERNALSYM PPX509_TRUST}
  13863. PPX509_TRUST = ^PX509_TRUST;
  13864. {$IFDEF DEBUG_SAFESTACK}
  13865. {$EXTERNALSYM STACK_OF_509_TRUST}
  13866. STACK_OF_509_TRUST = record
  13867. _stack: stack;
  13868. end;
  13869. {$EXTERNALSYM PSTACK_OF_509_TRUST}
  13870. PSTACK_OF_509_TRUST = ^STACK_OF_509_TRUST;
  13871. {$ELSE}
  13872. //I think the DECLARE_STACK_OF macro is empty
  13873. {$EXTERNALSYM PSTACK_OF_509_TRUST}
  13874. PSTACK_OF_509_TRUST = PSTACK;
  13875. {$ENDIF}
  13876. {$EXTERNALSYM X509_REVOKED}
  13877. X509_REVOKED = record
  13878. serialNumber: PASN1_INTEGER;
  13879. revocationDate: PASN1_TIME;
  13880. extensions: PSTACK_OF_X509_EXTENSION; // optional
  13881. //* Set up if indirect CRL */
  13882. issuer : PSTACK_OF_GENERAL_NAME;
  13883. //* Revocation reason */
  13884. reason : TIdC_INT;
  13885. sequence: TIdC_INT;
  13886. end;
  13887. {$EXTERNALSYM PX509_REVOKED}
  13888. PX509_REVOKED = ^X509_REVOKED;
  13889. {$EXTERNALSYM PPX509_REVOKED}
  13890. PPX509_REVOKED =^PX509_REVOKED;
  13891. {$EXTERNALSYM PX509_PKEY}
  13892. PX509_PKEY = Pointer;
  13893. {$EXTERNALSYM PPX509_PKEY}
  13894. PPX509_PKEY =^PX509_PKEY;
  13895. {$EXTERNALSYM X509_INFO}
  13896. X509_INFO = record
  13897. x509 : PX509;
  13898. crl : PX509_CRL;
  13899. x_pkey : PX509_PKEY;
  13900. enc_cipher: EVP_CIPHER_INFO;
  13901. enc_len: TIdC_INT;
  13902. enc_data: PIdAnsiChar;
  13903. references: TIdC_INT;
  13904. end;
  13905. {$EXTERNALSYM PX509_INFO}
  13906. PX509_INFO = ^X509_INFO;
  13907. {$EXTERNALSYM PPX509_INFO}
  13908. PPX509_INFO =^PX509_INFO;
  13909. {$IFDEF DEBUG_SAFESTACK}
  13910. {$EXTERNALSYM STACK_OF_X509_INFO}
  13911. STACK_OF_X509_INFO = record
  13912. _stack: stack;
  13913. end;
  13914. {$EXTERNALSYM PSTACK_OF_X509_INFO}
  13915. PSTACK_OF_X509_INFO = ^STACK_OF_X509_INFO;
  13916. {$ELSE}
  13917. //I think the DECLARE_STACK_OF macro is empty
  13918. {$EXTERNALSYM PSTACK_OF_X509_INFO}
  13919. PSTACK_OF_X509_INFO = PSTACK;
  13920. {$ENDIF}
  13921. // OpenSSL Developer's note
  13922. // The next 2 structures and their 8 routines were sent to me by
  13923. // Pat Richard <[email protected]> and are used to manipulate
  13924. // Netscapes spki structures - useful if you are writing a CA web page
  13925. {$EXTERNALSYM NETSCAPE_SPKAC}
  13926. NETSCAPE_SPKAC = record
  13927. pubkey : PX509_PUBKEY;
  13928. challenge : PASN1_IA5STRING; // challenge sent in atlas >= PR2
  13929. end;
  13930. {$EXTERNALSYM PNETSCAPE_SPKAC}
  13931. PNETSCAPE_SPKAC = ^NETSCAPE_SPKAC;
  13932. {$EXTERNALSYM PPNETSCAPE_SPKAC}
  13933. PPNETSCAPE_SPKAC = ^PNETSCAPE_SPKAC;
  13934. {$EXTERNALSYM NETSCAPE_SPKI}
  13935. NETSCAPE_SPKI = record
  13936. spkac : PNETSCAPE_SPKAC; // signed public key and challenge
  13937. sig_algor : PX509_ALGOR;
  13938. signature : PASN1_BIT_STRING;
  13939. end;
  13940. {$EXTERNALSYM PNETSCAPE_SPKI}
  13941. PNETSCAPE_SPKI = ^NETSCAPE_SPKI;
  13942. {$EXTERNALSYM PPNETSCAPE_SPKI}
  13943. PPNETSCAPE_SPKI = ^PNETSCAPE_SPKI;
  13944. {$EXTERNALSYM NETSCAPE_CERT_SEQUENCE}
  13945. NETSCAPE_CERT_SEQUENCE = record
  13946. _type : PASN1_OBJECT;
  13947. certs : PSTACK_OF_X509;
  13948. end;
  13949. {$EXTERNALSYM PNETSCAPE_CERT_SEQUENCE}
  13950. PNETSCAPE_CERT_SEQUENCE = ^NETSCAPE_CERT_SEQUENCE;
  13951. {$EXTERNALSYM PPNETSCAPE_CERT_SEQUENCE}
  13952. PPNETSCAPE_CERT_SEQUENCE = ^PNETSCAPE_CERT_SEQUENCE;
  13953. // Password based encryption structure
  13954. {$EXTERNALSYM PBEPARAM}
  13955. PBEPARAM = record
  13956. salt : PASN1_OCTET_STRING;
  13957. iter : PASN1_INTEGER;
  13958. end;
  13959. {$EXTERNALSYM PPBEPARAM}
  13960. PPBEPARAM = ^PBEPARAM;
  13961. {$EXTERNALSYM PPPBEPARAM}
  13962. PPPBEPARAM = ^PPBEPARAM;
  13963. // Password based encryption V2 structures
  13964. {$EXTERNALSYM PBE2PARAM}
  13965. PBE2PARAM = record
  13966. keyfunc : PX509_ALGOR;
  13967. encryption : PX509_ALGOR;
  13968. end;
  13969. {$EXTERNALSYM PPBE2PARAM}
  13970. PPBE2PARAM = ^PBE2PARAM;
  13971. {$EXTERNALSYM PBKDF2PARAM}
  13972. PBKDF2PARAM = record
  13973. salt : PASN1_TYPE; // Usually OCTET STRING but could be anything
  13974. iter : PASN1_INTEGER;
  13975. keylength : PASN1_INTEGER;
  13976. prf : PX509_ALGOR;
  13977. end;
  13978. {$EXTERNALSYM PPBKDF2PARAM}
  13979. PPBKDF2PARAM = ^PBKDF2PARAM;
  13980. {$EXTERNALSYM PPPBKDF2PARAM}
  13981. PPPBKDF2PARAM = ^PPBKDF2PARAM;
  13982. {$EXTERNALSYM PKCS8_PRIV_KEY_INFO}
  13983. PKCS8_PRIV_KEY_INFO = record
  13984. broken : TIdC_INT; // Flag for various broken formats
  13985. //#define PKCS8_OK 0
  13986. //#define PKCS8_NO_OCTET 1
  13987. //#define PKCS8_EMBEDDED_PARAM 2
  13988. //#define PKCS8_NS_DB 3
  13989. version : PASN1_INTEGER;
  13990. pkeyalg : PX509_ALGOR;
  13991. pkey : PASN1_TYPE; // Should be OCTET STRING but some are broken
  13992. attributes : PSTACK_OF_X509_ATTRIBUTE;
  13993. end;
  13994. {$EXTERNALSYM PPKCS8_PRIV_KEY_INFO}
  13995. PPKCS8_PRIV_KEY_INFO = ^PKCS8_PRIV_KEY_INFO;
  13996. {$EXTERNALSYM PPPKCS8_PRIV_KEY_INFO}
  13997. PPPKCS8_PRIV_KEY_INFO = ^PPKCS8_PRIV_KEY_INFO;
  13998. {$EXTERNALSYM PPKCS7_RECIP_INFO}
  13999. PPKCS7_RECIP_INFO = ^PKCS7_RECIP_INFO;
  14000. {$EXTERNALSYM PSHA_CTX}
  14001. PSHA_CTX = ^SHA_CTX;
  14002. //cms.h
  14003. {$IFDEF OPENSSL_NO_CMS}
  14004. {$EXTERNALSYM PCMS_ContentInfo}
  14005. PCMS_ContentInfo = Pointer;
  14006. {$EXTERNALSYM PCMS_SignerInfo}
  14007. PCMS_SignerInfo = Pointer;
  14008. {$EXTERNALSYM PCMS_CertificateChoices}
  14009. PCMS_CertificateChoices = Pointer;
  14010. {$EXTERNALSYM PCMS_RevocationInfoChoice}
  14011. PCMS_RevocationInfoChoice = Pointer;
  14012. {$EXTERNALSYM PCMS_RecipientInfo}
  14013. PCMS_RecipientInfo = Pointer;
  14014. {$EXTERNALSYM PCMS_ReceiptRequest}
  14015. PCMS_ReceiptRequest = Pointer;
  14016. {$EXTERNALSYM PCMS_Receipt}
  14017. PCMS_Receipt = Pointer;
  14018. {$EXTERNALSYM PSTACK_OF_CMS_SignerInfo}
  14019. {$ENDIF}
  14020. //ripemd.h
  14021. {$IFNDEF OPENSSL_NO_RIPEMD}
  14022. {$EXTERNALSYM RIPEMD160_LONG}
  14023. RIPEMD160_LONG = TIdC_UINT;
  14024. {$EXTERNALSYM RIPEMD160_CTX}
  14025. RIPEMD160_CTX = record
  14026. A,B,C,D,E : RIPEMD160_LONG;
  14027. Nl,Nh : RIPEMD160_LONG;
  14028. data : array [0..RIPEMD160_LBLOCK -1 ] of RIPEMD160_LONG;
  14029. num : TIdC_UINT;
  14030. end;
  14031. {$EXTERNALSYM PRIPEMD160_CTX}
  14032. PRIPEMD160_CTX = ^RIPEMD160_CTX;
  14033. {$ENDIF}
  14034. {$IFNDEF OPENSSL_NO_RC4}
  14035. {$EXTERNALSYM RC4_KEY}
  14036. RC4_KEY = record
  14037. x,y : RC4_INT;
  14038. data : array [0..(256 - 1)] of RC4_INT;
  14039. end;
  14040. {$EXTERNALSYM PRC4_KEY}
  14041. PRC4_KEY = ^RC4_KEY;
  14042. {$ENDIF}
  14043. //rc2.h
  14044. {$IFNDEF OPENSSL_NO_RC2}
  14045. {$EXTERNALSYM RC2_KEY}
  14046. RC2_KEY = record
  14047. data : array [0..(64 - 1)] of RC2_INT;
  14048. end;
  14049. {$EXTERNALSYM PRC2_KEY}
  14050. PRC2_KEY = ^RC2_KEY;
  14051. {$ENDIF}
  14052. {$IFNDEF OPENSSL_NO_RC5}
  14053. {$EXTERNALSYM RC5_32_INT}
  14054. RC5_32_INT = TIdC_UINT;
  14055. {$EXTERNALSYM RC5_32_KEY}
  14056. RC5_32_KEY = record
  14057. // Number of rounds
  14058. rounds : TIdC_INT;
  14059. data : array [0..(2*(RC5_16_ROUNDS+1)-1)] of RC5_32_INT;
  14060. end;
  14061. {$EXTERNALSYM PRC5_32_KEY}
  14062. PRC5_32_KEY = ^RC5_32_KEY;
  14063. {$ENDIF}
  14064. //blowfish.h
  14065. {$IFNDEF OPENSSL_NO_BF}
  14066. {$EXTERNALSYM BF_LONG}
  14067. BF_LONG = TIdC_UINT;
  14068. {$EXTERNALSYM BF_KEY}
  14069. BF_KEY = record
  14070. P : array [0..(BF_ROUNDS+2)-1] of BF_LONG;
  14071. S : array [0..(4*256)-1] of BF_LONG;
  14072. end;
  14073. {$EXTERNALSYM PBF_KEY}
  14074. PBF_KEY = ^BF_KEY;
  14075. {$ENDIF}
  14076. {$IFNDEF OPENSSL_NO_CAST}
  14077. {$EXTERNALSYM CAST_LONG}
  14078. CAST_LONG = TIdC_ULONG;
  14079. {$EXTERNALSYM CAST_KEY}
  14080. CAST_KEY = record
  14081. data : array[0..(32 -1)] of CAST_LONG;
  14082. short_key : TIdC_INT; // Use reduced rounds for short key
  14083. end;
  14084. {$EXTERNALSYM PCAST_KEY}
  14085. PCAST_KEY = ^CAST_KEY;
  14086. {$ENDIF}
  14087. {$IFNDEF OPENSSL_NO_IDEA}
  14088. {$EXTERNALSYM IDEA_KEY_SCHEDULE}
  14089. IDEA_KEY_SCHEDULE = record
  14090. data : array [0..(9-1),0..(6-1)] of IDEA_INT;
  14091. end;
  14092. {$EXTERNALSYM PIDEA_KEY_SCHEDULE}
  14093. PIDEA_KEY_SCHEDULE = ^IDEA_KEY_SCHEDULE;
  14094. {$ENDIF}
  14095. //ocsp.h
  14096. //* CertID ::= SEQUENCE {
  14097. //* hashAlgorithm AlgorithmIdentifier,
  14098. //* issuerNameHash OCTET STRING, -- Hash of Issuer's DN
  14099. //* issuerKeyHash OCTET STRING, -- Hash of Issuers public key (excluding the tag & length fields)
  14100. //* serialNumber CertificateSerialNumber }
  14101. //*/
  14102. //typedef struct ocsp_cert_id_st
  14103. {$EXTERNALSYM OCSP_CERTID}
  14104. OCSP_CERTID = record
  14105. hashAlgorithm : PX509_ALGOR;
  14106. issuerNameHash : PASN1_OCTET_STRING;
  14107. issuerKeyHash : PASN1_OCTET_STRING;
  14108. serialNumber : PASN1_INTEGER;
  14109. end;
  14110. {$EXTERNALSYM POCSP_CERTID}
  14111. POCSP_CERTID = ^OCSP_CERTID;
  14112. {$EXTERNALSYM PPOCSP_CERTID}
  14113. PPOCSP_CERTID = ^POCSP_CERTID;
  14114. {$IFDEF DEBUG_SAFESTACK}
  14115. {$EXTERNALSYM STACK_OF_OCSP_CERTID}
  14116. STACK_OF_OCSP_CERTID = record
  14117. _stack: stack;
  14118. end;
  14119. {$EXTERNALSYM PSTACK_OF_OCSP_CERTID}
  14120. PSTACK_OF_OCSP_CERTID = ^STACK_OF_OCSP_CERTID;
  14121. {$ELSE}
  14122. //I think the DECLARE_STACK_OF macro is empty
  14123. {$EXTERNALSYM PSTACK_OF_OCSP_CERTID}
  14124. PSTACK_OF_OCSP_CERTID = PSTACK;
  14125. {$ENDIF}
  14126. // * Request ::= SEQUENCE {
  14127. // * reqCert CertID,
  14128. // * singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
  14129. // */
  14130. {$EXTERNALSYM OCSP_ONEREQ}
  14131. OCSP_ONEREQ = record
  14132. reqCert : POCSP_CERTID;
  14133. singleRequestExtensions : PSTACK_OF_X509_EXTENSION;
  14134. end;
  14135. {$EXTERNALSYM POCSP_ONEREQ}
  14136. POCSP_ONEREQ = ^OCSP_ONEREQ;
  14137. {$EXTERNALSYM PPOCSP_ONEREQ}
  14138. PPOCSP_ONEREQ = ^POCSP_ONEREQ;
  14139. {$IFDEF DEBUG_SAFESTACK}
  14140. {$EXTERNALSYM STACK_OF_OCSP_ONEREQ}
  14141. STACK_OF_OCSP_ONEREQ = record
  14142. _stack: stack;
  14143. end;
  14144. {$EXTERNALSYM PSTACK_OF_OCSP_ONEREQ}
  14145. PSTACK_OF_OCSP_ONEREQ = ^STACK_OF_OCSP_ONEREQ;
  14146. {$ELSE}
  14147. //I think the DECLARE_STACK_OF macro is empty
  14148. {$EXTERNALSYM PSTACK_OF_OCSP_ONEREQ}
  14149. PSTACK_OF_OCSP_ONEREQ = PSTACK;
  14150. {$ENDIF}
  14151. //* TBSRequest ::= SEQUENCE {
  14152. //* version [0] EXPLICIT Version DEFAULT v1,
  14153. //* requestorName [1] EXPLICIT GeneralName OPTIONAL,
  14154. //* requestList SEQUENCE OF Request,
  14155. //* requestExtensions [2] EXPLICIT Extensions OPTIONAL }
  14156. //*/
  14157. {$EXTERNALSYM OCSP_REQINFO}
  14158. OCSP_REQINFO = record
  14159. version : PASN1_INTEGER;
  14160. requestorName : PGENERAL_NAME;
  14161. requestList : PSTACK_OF_OCSP_ONEREQ;
  14162. requestExtensions : PSTACK_OF_X509_EXTENSION;
  14163. end;
  14164. {$EXTERNALSYM POCSP_REQINFO}
  14165. POCSP_REQINFO = ^OCSP_REQINFO;
  14166. {$EXTERNALSYM PPOCSP_REQINFO}
  14167. PPOCSP_REQINFO = ^POCSP_REQINFO;
  14168. ///* Signature ::= SEQUENCE {
  14169. // * signatureAlgorithm AlgorithmIdentifier,
  14170. // * signature BIT STRING,
  14171. // * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
  14172. // */
  14173. {$EXTERNALSYM OCSP_SIGNATURE}
  14174. OCSP_SIGNATURE = record
  14175. signatureAlgorithm : PX509_ALGOR;
  14176. signature : PASN1_BIT_STRING;
  14177. certs : PSTACK_OF_X509;
  14178. end;
  14179. {$EXTERNALSYM POCSP_SIGNATURE}
  14180. POCSP_SIGNATURE = ^OCSP_SIGNATURE;
  14181. {$EXTERNALSYM PPOCSP_SIGNATURE}
  14182. PPOCSP_SIGNATURE = ^POCSP_SIGNATURE;
  14183. ///* OCSPRequest ::= SEQUENCE {
  14184. // * tbsRequest TBSRequest,
  14185. // * optionalSignature [0] EXPLICIT Signature OPTIONAL }
  14186. // */
  14187. {$EXTERNALSYM OCSP_REQUEST}
  14188. OCSP_REQUEST = record
  14189. tbsRequest : POCSP_REQINFO;
  14190. optionalSignature : POCSP_SIGNATURE; //* OPTIONAL */
  14191. end;
  14192. {$EXTERNALSYM POCSP_REQUEST}
  14193. POCSP_REQUEST = ^OCSP_REQUEST;
  14194. {$EXTERNALSYM PPOCSP_REQUEST}
  14195. PPOCSP_REQUEST = ^POCSP_REQUEST;
  14196. ///* OCSPResponseStatus ::= ENUMERATED {
  14197. // * successful (0), --Response has valid confirmations
  14198. // * malformedRequest (1), --Illegal confirmation request
  14199. // * internalError (2), --Internal error in issuer
  14200. // * tryLater (3), --Try again later
  14201. // * --(4) is not used
  14202. // * sigRequired (5), --Must sign the request
  14203. // * unauthorized (6) --Request unauthorized
  14204. // * }
  14205. // */
  14206. ///* ResponseBytes ::= SEQUENCE {
  14207. // * responseType OBJECT IDENTIFIER,
  14208. // * response OCTET STRING }
  14209. // */
  14210. {$EXTERNALSYM OCSP_RESPBYTES}
  14211. OCSP_RESPBYTES = record
  14212. responseType : PASN1_OBJECT;
  14213. response : PASN1_OCTET_STRING;
  14214. end;
  14215. {$EXTERNALSYM POCSP_RESPBYTES}
  14216. POCSP_RESPBYTES = ^OCSP_RESPBYTES;
  14217. {$EXTERNALSYM PPOCSP_RESPBYTES}
  14218. PPOCSP_RESPBYTES = ^POCSP_RESPBYTES;
  14219. ///* OCSPResponse ::= SEQUENCE {
  14220. // * responseStatus OCSPResponseStatus,
  14221. // * responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
  14222. // */
  14223. {$EXTERNALSYM OCSP_RESPONSE}
  14224. OCSP_RESPONSE = record
  14225. responseStatus : PASN1_ENUMERATED;
  14226. responseBytes : POCSP_RESPBYTES;
  14227. end;
  14228. {$EXTERNALSYM POCSP_RESPONSE}
  14229. POCSP_RESPONSE = ^OCSP_RESPONSE;
  14230. {$EXTERNALSYM PPOCSP_RESPONSE}
  14231. PPOCSP_RESPONSE = ^POCSP_RESPONSE;
  14232. // /* ResponderID ::= CHOICE {
  14233. // * byName [1] Name,
  14234. // * byKey [2] KeyHash }
  14235. // */
  14236. {$EXTERNALSYM OCSP_RESPID_union}
  14237. OCSP_RESPID_union = record
  14238. case Integer of
  14239. 0 : (byName : PX509_NAME);
  14240. 1 : (byKey : PASN1_OCTET_STRING);
  14241. end;
  14242. {$EXTERNALSYM OCSP_RESPID}
  14243. OCSP_RESPID = record
  14244. _type : TIdC_INT;
  14245. value : OCSP_RESPID_union;
  14246. end;
  14247. {$EXTERNALSYM POCSP_RESPID}
  14248. POCSP_RESPID = ^OCSP_RESPID;
  14249. {$EXTERNALSYM PPOCSP_RESPID}
  14250. PPOCSP_RESPID = ^POCSP_RESPID;
  14251. //* KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key
  14252. // * --(excluding the tag and length fields)
  14253. // */
  14254. {$IFDEF DEBUG_SAFESTACK}
  14255. {$EXTERNALSYM STACK_OF_OCSP_RESPID}
  14256. STACK_OF_OCSP_RESPID = record
  14257. _stack: stack;
  14258. end;
  14259. {$EXTERNALSYM PSTACK_OF_OCSP_RESPID}
  14260. PSTACK_OF_OCSP_RESPID = ^STACK_OF_OCSP_RESPID;
  14261. {$ELSE}
  14262. //I think the DECLARE_STACK_OF macro is empty
  14263. {$EXTERNALSYM PSTACK_OF_OCSP_RESPID}
  14264. PSTACK_OF_OCSP_RESPID = PSTACK;
  14265. {$ENDIF}
  14266. ///* RevokedInfo ::= SEQUENCE {
  14267. // * revocationTime GeneralizedTime,
  14268. // * revocationReason [0] EXPLICIT CRLReason OPTIONAL }
  14269. // */
  14270. {$EXTERNALSYM OCSP_REVOKEDINFO}
  14271. OCSP_REVOKEDINFO = record
  14272. revocationTime : PASN1_GENERALIZEDTIME;
  14273. revocationReason : PASN1_ENUMERATED;
  14274. end;
  14275. {$EXTERNALSYM POCSP_REVOKEDINFO}
  14276. POCSP_REVOKEDINFO = ^OCSP_REVOKEDINFO;
  14277. {$EXTERNALSYM PPOCSP_REVOKEDINFO}
  14278. PPOCSP_REVOKEDINFO = ^POCSP_REVOKEDINFO;
  14279. ///* CertStatus ::= CHOICE {
  14280. // * good [0] IMPLICIT NULL,
  14281. // * revoked [1] IMPLICIT RevokedInfo,
  14282. // * unknown [2] IMPLICIT UnknownInfo }
  14283. // */
  14284. {$EXTERNALSYM OCSP_CERTSTATUS_union}
  14285. OCSP_CERTSTATUS_union = record
  14286. case Integer of
  14287. 0 : (good : PASN1_NULL);
  14288. 1 : (revoked : POCSP_REVOKEDINFO);
  14289. 2 : (unknown : PASN1_NULL);
  14290. end;
  14291. {$EXTERNALSYM OCSP_CERTSTATUS}
  14292. OCSP_CERTSTATUS = record
  14293. _type : TIdC_INT;
  14294. value : OCSP_CERTSTATUS_union;
  14295. end;
  14296. {$EXTERNALSYM POCSP_CERTSTATUS}
  14297. POCSP_CERTSTATUS = ^OCSP_CERTSTATUS;
  14298. {$EXTERNALSYM PPOCSP_CERTSTATUS}
  14299. PPOCSP_CERTSTATUS = ^POCSP_CERTSTATUS;
  14300. ///* SingleResponse ::= SEQUENCE {
  14301. // * certID CertID,
  14302. // * certStatus CertStatus,
  14303. // * thisUpdate GeneralizedTime,
  14304. // * nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
  14305. // * singleExtensions [1] EXPLICIT Extensions OPTIONAL }
  14306. // */
  14307. {$EXTERNALSYM OCSP_SINGLERESP}
  14308. OCSP_SINGLERESP = record
  14309. certId : POCSP_CERTID;
  14310. certStatus : POCSP_CERTSTATUS;
  14311. thisUpdate : PASN1_GENERALIZEDTIME;
  14312. nextUpdate : PASN1_GENERALIZEDTIME;
  14313. singleExtensions : PSTACK_OF_X509_EXTENSION;
  14314. end;
  14315. {$EXTERNALSYM POCSP_SINGLERESP}
  14316. POCSP_SINGLERESP = ^OCSP_SINGLERESP;
  14317. {$EXTERNALSYM PPOCSP_SINGLERESP}
  14318. PPOCSP_SINGLERESP = ^POCSP_SINGLERESP;
  14319. {$IFDEF DEBUG_SAFESTACK}
  14320. {$EXTERNALSYM STACK_OF_OCSP_SINGLERESP}
  14321. STACK_OF_OCSP_SINGLERESP = record
  14322. _stack: stack;
  14323. end;
  14324. {$EXTERNALSYM PSTACK_OF_OCSP_SINGLERESP}
  14325. PSTACK_OF_OCSP_SINGLERESP = ^STACK_OF_OCSP_SINGLERESP;
  14326. {$ELSE}
  14327. //I think the DECLARE_STACK_OF macro is empty
  14328. {$EXTERNALSYM PSTACK_OF_OCSP_SINGLERESP}
  14329. PSTACK_OF_OCSP_SINGLERESP = PSTACK;
  14330. {$ENDIF}
  14331. ///* ResponseData ::= SEQUENCE {
  14332. // * version [0] EXPLICIT Version DEFAULT v1,
  14333. // * responderID ResponderID,
  14334. // * producedAt GeneralizedTime,
  14335. // * responses SEQUENCE OF SingleResponse,
  14336. // * responseExtensions [1] EXPLICIT Extensions OPTIONAL }
  14337. // */
  14338. {$EXTERNALSYM OCSP_RESPDATA}
  14339. OCSP_RESPDATA = record
  14340. version : PASN1_INTEGER;
  14341. responderId : POCSP_RESPID;
  14342. producedAt : PASN1_GENERALIZEDTIME;
  14343. responses : PSTACK_OF_OCSP_SINGLERESP;
  14344. responseExtensions : PSTACK_OF_X509_EXTENSION;
  14345. end;
  14346. {$EXTERNALSYM POCSP_RESPDATA}
  14347. POCSP_RESPDATA = ^OCSP_RESPDATA;
  14348. {$EXTERNALSYM PPOCSP_RESPDATA}
  14349. PPOCSP_RESPDATA = ^POCSP_RESPDATA;
  14350. ///* BasicOCSPResponse ::= SEQUENCE {
  14351. // * tbsResponseData ResponseData,
  14352. // * signatureAlgorithm AlgorithmIdentifier,
  14353. // * signature BIT STRING,
  14354. // * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
  14355. // */
  14356. // /* Note 1:
  14357. // The value for "signature" is specified in the OCSP rfc2560 as follows:
  14358. // "The value for the signature SHALL be computed on the hash of the DER
  14359. // encoding ResponseData." This means that you must hash the DER-encoded
  14360. // tbsResponseData, and then run it through a crypto-signing function, which
  14361. // will (at least w/RSA) do a hash-'n'-private-encrypt operation. This seems
  14362. // a bit odd, but that's the spec. Also note that the data structures do not
  14363. // leave anywhere to independently specify the algorithm used for the initial
  14364. // hash. So, we look at the signature-specification algorithm, and try to do
  14365. // something intelligent. -- Kathy Weinhold, CertCo */
  14366. // /* Note 2:
  14367. // It seems that the mentioned passage from RFC 2560 (section 4.2.1) is open
  14368. // for interpretation. I've done tests against another responder, and found
  14369. // that it doesn't do the double hashing that the RFC seems to say one
  14370. // should. Therefore, all relevant functions take a flag saying which
  14371. // variant should be used. -- Richard Levitte, OpenSSL team and CeloCom */
  14372. {$EXTERNALSYM OCSP_BASICRESP}
  14373. OCSP_BASICRESP = record
  14374. tbsResponseData : POCSP_RESPDATA;
  14375. signatureAlgorithm : PX509_ALGOR;
  14376. signature : PASN1_BIT_STRING;
  14377. certs : PSTACK_OF_X509;
  14378. end;
  14379. {$EXTERNALSYM POCSP_BASICRESP}
  14380. POCSP_BASICRESP = ^OCSP_BASICRESP;
  14381. {$EXTERNALSYM PPOCSP_BASICRESP}
  14382. PPOCSP_BASICRESP = ^POCSP_BASICRESP;
  14383. ///* CrlID ::= SEQUENCE {
  14384. // * crlUrl [0] EXPLICIT IA5String OPTIONAL,
  14385. // * crlNum [1] EXPLICIT INTEGER OPTIONAL,
  14386. // * crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
  14387. // */
  14388. {$EXTERNALSYM OCSP_CRLID}
  14389. OCSP_CRLID = record
  14390. crlUrl : PASN1_IA5STRING;
  14391. crlNum : PASN1_INTEGER;
  14392. crlTime : PASN1_GENERALIZEDTIME;
  14393. end;
  14394. {$EXTERNALSYM POCSP_CRLID}
  14395. POCSP_CRLID = ^OCSP_CRLID;
  14396. {$EXTERNALSYM PPOCSP_CRLID}
  14397. PPOCSP_CRLID = ^POCSP_CRLID;
  14398. ///* ServiceLocator ::= SEQUENCE {
  14399. // * issuer Name,
  14400. // * locator AuthorityInfoAccessSyntax OPTIONAL }
  14401. // */
  14402. {$EXTERNALSYM OCSP_SERVICELOC}
  14403. OCSP_SERVICELOC = record
  14404. issuer : PX509_NAME;
  14405. locator : PSTACK_OF_ACCESS_DESCRIPTION;
  14406. end;
  14407. {$EXTERNALSYM POCSP_SERVICELOC}
  14408. POCSP_SERVICELOC = ^OCSP_SERVICELOC;
  14409. {$EXTERNALSYM PPOCSP_SERVICELOC}
  14410. PPOCSP_SERVICELOC = ^POCSP_SERVICELOC;
  14411. //mdc2.h
  14412. //MDC2_CTX = record
  14413. //this is not defined in headers so it's best use functions in the API to access the structure.
  14414. //end;
  14415. {$EXTERNALSYM PMDC2_CTX}
  14416. PMDC2_CTX = Pointer;//^MDC2_CTX;
  14417. //tmdiff.h
  14418. // MS_TM = record
  14419. //this is not defined in headers so it's best use functions in the API to access the structure.
  14420. // end;
  14421. {$EXTERNALSYM PMS_TM}
  14422. PMS_TM = Pointer;//^MS_TM;
  14423. {$EXTERNALSYM PPMS_TM}
  14424. PPMS_TM = ^PMS_TM;
  14425. //PEVP_PBE_KEYGEN = Pointer;
  14426. {$EXTERNALSYM ppem_password_cb}
  14427. ppem_password_cb = function (buf : PIdAnsiChar; size : TIdC_INT; rwflag : TIdC_INT; userdata : Pointer) : TIdC_INT; cdecl;
  14428. {$EXTERNALSYM PEM_ENCODE_SEAL_CTX}
  14429. PEM_ENCODE_SEAL_CTX = record
  14430. encode : EVP_ENCODE_CTX;
  14431. md : EVP_MD_CTX;
  14432. cipher : EVP_CIPHER_CTX;
  14433. end;
  14434. {$EXTERNALSYM PPEM_ENCODE_SEAL_CTX}
  14435. PPEM_ENCODE_SEAL_CTX = ^PEM_ENCODE_SEAL_CTX;
  14436. {$IFDEF DEBUG_SAFESTACK}
  14437. {$EXTERNALSYM STACK_OF_SSL_COMP}
  14438. STACK_OF_SSL_COMP = record
  14439. _stack: stack;
  14440. end;
  14441. {$EXTERNALSYM PSTACK_OF_SSL_COMP}
  14442. PSTACK_OF_SSL_COMP = ^STACK_OF_SSL_COMP;
  14443. {$ELSE}
  14444. //I think the DECLARE_STACK_OF macro is empty
  14445. {$EXTERNALSYM PSTACK_OF_SSL_COMP}
  14446. PSTACK_OF_SSL_COMP = PSTACK;
  14447. {$ENDIF}
  14448. {$EXTERNALSYM PPSTACK_OF_SSL_COMP}
  14449. PPSTACK_OF_SSL_COMP = ^PSTACK_OF_SSL_COMP;
  14450. {$EXTERNALSYM PSSL_COMP}
  14451. PSSL_COMP = ^SSL_COMP;
  14452. {$EXTERNALSYM lhash_of_SSL_SESSION}
  14453. lhash_of_SSL_SESSION = record
  14454. dummy : TIdC_INT;
  14455. end;
  14456. {$EXTERNALSYM Plhash_of_SSL_SESSION}
  14457. Plhash_of_SSL_SESSION = ^lhash_of_SSL_SESSION;
  14458. // PASN1_UTCTIME = Pointer;
  14459. //GREGOR - spremenjana deklaracija ker se tolèe
  14460. // Phostent = Pointer;
  14461. {$NODEFINE Phostent2}
  14462. Phostent2 = Pointer;
  14463. //END GREGOR
  14464. { This should cause problems, but I will solve them ONLY if they came ... }
  14465. { !!!InvalidTypes!!! }
  14466. //END REMY
  14467. //des.h
  14468. // des_cblock = Integer;
  14469. {$EXTERNALSYM DES_cblock}
  14470. DES_cblock = array[0..7] of Byte;
  14471. {$EXTERNALSYM PDES_cblock}
  14472. PDES_cblock = ^DES_cblock;
  14473. {$EXTERNALSYM const_DES_cblock}
  14474. const_DES_cblock = DES_cblock;
  14475. {$EXTERNALSYM Pconst_DES_cblock}
  14476. Pconst_DES_cblock = ^const_DES_cblock;
  14477. // des_key_schedule = Integer;
  14478. {$EXTERNALSYM DES_LONG}
  14479. {$IFDEF DES_INT}
  14480. DES_LONG = TIdC_UINT;
  14481. {$ELSE}
  14482. DES_LONG = TIdC_ULONG;
  14483. {$ENDIF}
  14484. {$EXTERNALSYM des_cblock_union}
  14485. des_cblock_union = record
  14486. case integer of
  14487. 0: (cblock: des_cblock);
  14488. 1: (deslong: array [0..1] of DES_LONG);
  14489. end;
  14490. {$EXTERNALSYM des_ks_struct}
  14491. des_ks_struct = record
  14492. ks : des_cblock_union;
  14493. //IMPORTANT!!!
  14494. //Since OpenSSL 0.9.7-dev, the OpenSSL developers
  14495. //dropped this member. See:
  14496. //http://marc.info/?l=openssl-dev&m=100342566217528&w=2
  14497. weak_key: TIdC_INT;
  14498. end;
  14499. {$EXTERNALSYM des_key_schedule}
  14500. des_key_schedule = array[0..15] of des_ks_struct;
  14501. {$EXTERNALSYM des_cblocks}
  14502. des_cblocks = array[0..7] of byte;
  14503. //des_cblocks = Integer;
  14504. //des_old.h
  14505. {$EXTERNALSYM _ossl_old_des_cblock}
  14506. _ossl_old_des_cblock = array [0..7] of byte;
  14507. {$EXTERNALSYM P_ossl_old_des_cblock}
  14508. P_ossl_old_des_cblock = ^_ossl_old_des_cblock;
  14509. {$EXTERNALSYM _ossl_old_des_ks_union}
  14510. _ossl_old_des_ks_union = record
  14511. case Integer of
  14512. 0 : (_ : _ossl_old_des_cblock);
  14513. //* make sure things are correct size on machines with
  14514. //* 8 byte longs */
  14515. 2 : (pad : array [0..1] of DES_LONG);
  14516. end;
  14517. {$EXTERNALSYM _ossl_old_des_ks_struct}
  14518. _ossl_old_des_ks_struct = record
  14519. ks : _ossl_old_des_ks_union;
  14520. end;
  14521. {$EXTERNALSYM _ossl_old_des_key_schedule}
  14522. _ossl_old_des_key_schedule = array [0..15] of _ossl_old_des_ks_struct;
  14523. {$EXTERNALSYM P_ossl_old_des_key_schedule}
  14524. P_ossl_old_des_key_schedule = ^_ossl_old_des_key_schedule;
  14525. {IMPORTANT!!!
  14526. In C, symbols are case sensitive while in Pascal, they are insensitive.
  14527. Thus, when we something like this:
  14528. #define des_cblock DES_cblock
  14529. we, should do something like this:
  14530. _des_cblock = DES_cblock
  14531. }
  14532. {$EXTERNALSYM _des_cblock}
  14533. {$EXTERNALSYM _des_key_schedule}
  14534. {$IFNDEF OPENSSL_DES_LIBDES_COMPATIBILITY}
  14535. _des_cblock = DES_cblock;
  14536. {$EXTERNALSYM _const_des_cblock}
  14537. _const_des_cblock = const_DES_cblock;
  14538. _des_key_schedule = DES_key_schedule;
  14539. {$ELSE}
  14540. ///* libdes compatibility */
  14541. //* Map all symbol names to _ossl_old_des_* form, so we avoid all
  14542. // clashes with libdes */
  14543. _des_cblock = _ossl_old_des_cblock;
  14544. _des_key_schedule = _ossl_old_des_key_schedule;
  14545. {$ENDIF}
  14546. {$EXTERNALSYM TIdSslLockingCallback}
  14547. TIdSslLockingCallback = procedure (mode, n : TIdC_INT; Afile : PIdAnsiChar; line : TIdC_INT); cdecl;
  14548. {$EXTERNALSYM TIdSslIdCallback}
  14549. TIdSslIdCallback = function: TIdC_ULONG; cdecl;
  14550. ///ssl_locl.h structs. These are probably internal records so don't expose
  14551. //their members as ssl_lock.h is not included in the headers
  14552. //JPM
  14553. {$EXTERNALSYM PSSL3_ENC_METHOD}
  14554. PSSL3_ENC_METHOD = pointer;//^SSL3_ENC_METHOD;
  14555. // SSL3_ENC_METHOD = record
  14556. // end;
  14557. {$EXTERNALSYM PCERT}
  14558. PCERT = pointer;
  14559. {$EXTERNALSYM PPCERT}
  14560. PPCERT = ^PCERT;
  14561. {$EXTERNALSYM PSESS_CERT}
  14562. PSESS_CERT = pointer;
  14563. //pkcs7.h
  14564. {$EXTERNALSYM PPKCS7}
  14565. PPKCS7 = ^PKCS7;
  14566. {$EXTERNALSYM PPPKCS7}
  14567. PPPKCS7 = ^PPKCS7;
  14568. {$EXTERNALSYM PKCS7_ISSUER_AND_SERIAL}
  14569. PKCS7_ISSUER_AND_SERIAL = record
  14570. issuer : PX509_NAME;
  14571. serial : PASN1_INTEGER;
  14572. end;
  14573. {$EXTERNALSYM PPKCS7_ISSUER_AND_SERIAL}
  14574. PPKCS7_ISSUER_AND_SERIAL = ^PKCS7_ISSUER_AND_SERIAL;
  14575. {$EXTERNALSYM PKCS7_SIGNER_INFO}
  14576. PKCS7_SIGNER_INFO = record
  14577. version : PASN1_INTEGER; // version 1
  14578. issuer_and_serial : PPKCS7_ISSUER_AND_SERIAL;
  14579. digest_alg : PX509_ALGOR;
  14580. auth_attr : PSTACK_OF_X509_ATTRIBUTE; // [ 0 ]
  14581. digest_enc_alg : PX509_ALGOR;
  14582. enc_digest : PASN1_OCTET_STRING;
  14583. unauth_attr : PSTACK_OF_X509_ATTRIBUTE; // [ 1 ]
  14584. // The private key to sign with
  14585. pkey : PEVP_PKEY;
  14586. end;
  14587. {$EXTERNALSYM PPKCS7_SIGNER_INFO}
  14588. PPKCS7_SIGNER_INFO = ^PKCS7_SIGNER_INFO;
  14589. {$IFDEF DEBUG_SAFESTACK}
  14590. {$EXTERNALSYM STACK_OF_PKCS7_SIGNER_INFO}
  14591. STACK_OF_PKCS7_SIGNER_INFO = record
  14592. _stack: stack;
  14593. end;
  14594. {$EXTERNALSYM PSTACK_OF_PKCS7_SIGNER_INFO}
  14595. PSTACK_OF_PKCS7_SIGNER_INFO = ^STACK_OF_PKCS7_SIGNER_INFO;
  14596. {$ELSE}
  14597. //I think the DECLARE_STACK_OF macro is empty
  14598. {$EXTERNALSYM PSTACK_OF_PKCS7_SIGNER_INFO}
  14599. PSTACK_OF_PKCS7_SIGNER_INFO = PSTACK;
  14600. {$ENDIF}
  14601. {$EXTERNALSYM PKCS7_RECIP_INFO}
  14602. PKCS7_RECIP_INFO = record
  14603. version : PASN1_INTEGER; // version 0
  14604. issuer_and_serial : PPKCS7_ISSUER_AND_SERIAL;
  14605. key_enc_algor : PX509_ALGOR;
  14606. enc_key : PASN1_OCTET_STRING;
  14607. cert : PX509; // get the pub-key from this
  14608. end;
  14609. {$IFDEF DEBUG_SAFESTACK}
  14610. {$EXTERNALSYM STACK_OF_PKCS7_RECIP_INFO}
  14611. STACK_OF_PKCS7_RECIP_INFO = record
  14612. _stack: stack;
  14613. end;
  14614. {$EXTERNALSYM PSTACK_OF_PKCS7_RECIP_INFO}
  14615. PSTACK_OF_PKCS7_RECIP_INFO = ^STACK_OF_PKCS7_RECIP_INFO;
  14616. {$ELSE}
  14617. //I think the DECLARE_STACK_OF macro is empty
  14618. {$EXTERNALSYM PSTACK_OF_PKCS7_RECIP_INFO}
  14619. PSTACK_OF_PKCS7_RECIP_INFO = PSTACK;
  14620. {$ENDIF}
  14621. {$EXTERNALSYM PPSTACK_OF_PKCS7_RECIP_INFO}
  14622. PPSTACK_OF_PKCS7_RECIP_INFO = ^PSTACK_OF_PKCS7_RECIP_INFO;
  14623. {$EXTERNALSYM PKCS7_SIGNED}
  14624. PKCS7_SIGNED = record
  14625. version : PASN1_INTEGER; // version 1
  14626. md_algs : PSTACK_OF_X509_ALGOR; // md used
  14627. cert : PSTACK_OF_X509; // [ 0 ]
  14628. crl : PSTACK_OF_X509_CRL; // [ 1 ]
  14629. signer_info : PSTACK_OF_PKCS7_SIGNER_INFO;
  14630. contents : PPKCS7;
  14631. end;
  14632. {$EXTERNALSYM PPKCS7_SIGNED}
  14633. PPKCS7_SIGNED = ^PKCS7_SIGNED;
  14634. {$EXTERNALSYM PPPKCS7_SIGNED}
  14635. PPPKCS7_SIGNED = ^PPKCS7_SIGNED;
  14636. {$EXTERNALSYM PKCS7_ENC_CONTENT}
  14637. PKCS7_ENC_CONTENT = record
  14638. content_type : PASN1_OBJECT;
  14639. algorithm : PX509_ALGOR;
  14640. enc_data : PASN1_OCTET_STRING; // [ 0 ]
  14641. cipher : PEVP_CIPHER;
  14642. end;
  14643. {$EXTERNALSYM PPKCS7_ENC_CONTENT}
  14644. PPKCS7_ENC_CONTENT = ^PKCS7_ENC_CONTENT;
  14645. {$EXTERNALSYM PKCS7_ENVELOPE}
  14646. PKCS7_ENVELOPE = record
  14647. version : PASN1_INTEGER; // version 0
  14648. recipientinfo : PSTACK_OF_PKCS7_RECIP_INFO;
  14649. enc_data : PPKCS7_ENC_CONTENT;
  14650. end;
  14651. {$EXTERNALSYM PPKCS7_ENVELOPE}
  14652. PPKCS7_ENVELOPE = ^PKCS7_ENVELOPE;
  14653. // OpenSSL developer notes
  14654. // The above structure is very very similar to PKCS7_SIGN_ENVELOPE.
  14655. // How about merging the two
  14656. {$EXTERNALSYM PKCS7_SIGN_ENVELOPE}
  14657. PKCS7_SIGN_ENVELOPE = record
  14658. version : PASN1_INTEGER; // version 1
  14659. md_algs : PSTACK_OF_X509_ALGOR; // md used
  14660. cert : PSTACK_OF_X509; // [ 0 ]
  14661. crl : PSTACK_OF_X509_CRL; // [ 1 ]
  14662. signer_info : PSTACK_OF_PKCS7_SIGNER_INFO;
  14663. enc_data : PPKCS7_ENC_CONTENT;
  14664. recipientinfo : PSTACK_OF_PKCS7_RECIP_INFO;
  14665. end;
  14666. {$EXTERNALSYM PPKCS7_SIGN_ENVELOPE}
  14667. PPKCS7_SIGN_ENVELOPE = ^PKCS7_SIGN_ENVELOPE;
  14668. {$EXTERNALSYM PKCS7_DIGEST}
  14669. PKCS7_DIGEST = record
  14670. version : PASN1_INTEGER; // version 0
  14671. md : PX509_ALGOR; // md used
  14672. contents : PPKCS7;
  14673. digest : PASN1_OCTET_STRING;
  14674. end;
  14675. {$EXTERNALSYM PPKCS7_DIGEST}
  14676. PPKCS7_DIGEST = ^PKCS7_DIGEST;
  14677. {$EXTERNALSYM PKCS7_ENCRYPT}
  14678. PKCS7_ENCRYPT = record
  14679. version : PASN1_INTEGER; // version 0
  14680. enc_data : PPKCS7_ENC_CONTENT;
  14681. end;
  14682. {$EXTERNALSYM PPKCS7_ENCRYPT}
  14683. PPKCS7_ENCRYPT = ^PKCS7_ENCRYPT;
  14684. {$EXTERNALSYM PKCS7_union}
  14685. PKCS7_union = record
  14686. // content as defined by the type
  14687. // all encryption/message digests are applied to the 'contents',
  14688. // leaving out the 'type' field.
  14689. case Integer of
  14690. 0 : (ptr : PIdAnsiChar);
  14691. // NID_pkcs7_data
  14692. 1 : (data : PASN1_OCTET_STRING);
  14693. // NID_pkcs7_signed
  14694. 2 : (sign : PPKCS7_SIGNED);
  14695. // NID_pkcs7_enveloped
  14696. 3 : (enveloped : PPKCS7_ENVELOPE);
  14697. // NID_pkcs7_signedAndEnveloped
  14698. 4 : (signed_and_enveloped : PPKCS7_SIGN_ENVELOPE);
  14699. // NID_pkcs7_digest
  14700. 5 : (digest : PPKCS7_DIGEST);
  14701. // NID_pkcs7_encrypted
  14702. 6 : (encrypted : PPKCS7_ENCRYPT);
  14703. end;
  14704. {$EXTERNALSYM PKCS7}
  14705. PKCS7 = record
  14706. // The following is non NULL if it contains ASN1 encoding of
  14707. // this structure
  14708. asn1 : PIdAnsiChar;
  14709. length : TIdC_LONG;
  14710. //#define PKCS7_S_HEADER 0
  14711. //#define PKCS7_S_BODY 1
  14712. //#define PKCS7_S_TAIL 2
  14713. state : TIdC_INT; // used during processing
  14714. detached : TIdC_INT;
  14715. _type : PASN1_OBJECT;
  14716. // content as defined by the type
  14717. // all encryption/message digests are applied to the 'contents',
  14718. // leaving out the 'type' field.
  14719. d : PKCS7_union;
  14720. end;
  14721. {$IFDEF DEBUG_SAFESTACK}
  14722. {$EXTERNALSYM STACK_OF_PKCS7}
  14723. STACK_OF_PKCS7 = record
  14724. _stack: stack;
  14725. end;
  14726. {$EXTERNALSYM PSTACK_OF_PKCS7}
  14727. PSTACK_OF_PKCS7 = ^STACK_OF_PKCS7;
  14728. {$ELSE}
  14729. //I think the DECLARE_STACK_OF macro is empty
  14730. {$EXTERNALSYM PSTACK_OF_PKCS7}
  14731. PSTACK_OF_PKCS7 = PSTACK;
  14732. {$ENDIF}
  14733. //pkcs12.h
  14734. {$EXTERNALSYM PKCS12_MAC_DATA}
  14735. PKCS12_MAC_DATA = record
  14736. dinfo : PX509_SIG;
  14737. salt : PASN1_OCTET_STRING;
  14738. iter : PASN1_INTEGER; // defaults to 1
  14739. end;
  14740. {$EXTERNALSYM PPKCS12_MAC_DATA}
  14741. PPKCS12_MAC_DATA = ^PKCS12_MAC_DATA;
  14742. // PSESS_CERT = ^SESS_CERT;
  14743. {$EXTERNALSYM PPKCS12}
  14744. PPKCS12 = ^PKCS12;
  14745. {$EXTERNALSYM PPPKCS12}
  14746. PPPKCS12 = ^PPKCS12;
  14747. {$EXTERNALSYM PKCS12}
  14748. PKCS12 = record
  14749. version : PASN1_INTEGER;
  14750. mac : PPKCS12_MAC_DATA;
  14751. authsafes : PPKCS7;
  14752. end;
  14753. //ts.h
  14754. {$IFDEF DEBUG_SAFESTACK}
  14755. {$EXTERNALSYM STACK_OF_EVP_MD}
  14756. STACK_OF_EVP_MD = record
  14757. _stack: stack;
  14758. end;
  14759. {$EXTERNALSYM PSTACK_OF_EVP_MD}
  14760. PSTACK_OF_EVP_MD = ^STACK_OF_EVP_MD;
  14761. {$EXTERNALSYM STACK_OF_ASN1_UTF8STRING}
  14762. STACK_OF_ASN1_UTF8STRING = record
  14763. _stack: stack;
  14764. end;
  14765. {$EXTERNALSYM PSTACK_OF_ASN1_UTF8STRING}
  14766. PSTACK_OF_ASN1_UTF8STRING = ^STACK_OF_ASN1_UTF8STRING;
  14767. {$ELSE}
  14768. //I think the DECLARE_STACK_OF macro is empty
  14769. {$EXTERNALSYM PSTACK_OF_EVP_MD}
  14770. PSTACK_OF_EVP_MD = PSTACK;
  14771. {$EXTERNALSYM PSTACK_OF_ASN1_UTF8STRING}
  14772. PSTACK_OF_ASN1_UTF8STRING = PSTACK;
  14773. {$ENDIF}
  14774. {$EXTERNALSYM TS_MSG_IMPRINT}
  14775. TS_MSG_IMPRINT = record
  14776. hash_algo : PX509_ALGOR;
  14777. hashed_msg : PASN1_OCTET_STRING;
  14778. end;
  14779. {$EXTERNALSYM PTS_MSG_IMPRINT}
  14780. PTS_MSG_IMPRINT = ^TS_MSG_IMPRINT;
  14781. {$EXTERNALSYM TS_REQ}
  14782. TS_REQ = record
  14783. version : PASN1_INTEGER;
  14784. msg_imprint : PTS_MSG_IMPRINT;
  14785. policy_id : PASN1_OBJECT; //* OPTIONAL */
  14786. nonce : PASN1_INTEGER; //* OPTIONAL */
  14787. cert_req : ASN1_BOOLEAN; //* DEFAULT FALSE */
  14788. extensions : PSTACK_OF_X509_EXTENSION; //* [0] OPTIONAL */
  14789. end;
  14790. {$EXTERNALSYM PTS_REQ}
  14791. PTS_REQ = ^TS_REQ;
  14792. {$EXTERNALSYM TS_ACCURACY}
  14793. TS_ACCURACY = record
  14794. seconds : PASN1_INTEGER;
  14795. millis : PASN1_INTEGER;
  14796. micros : PASN1_INTEGER;
  14797. end;
  14798. {$EXTERNALSYM PTS_ACCURACY}
  14799. PTS_ACCURACY = ^TS_ACCURACY;
  14800. {$EXTERNALSYM TS_TST_INFO}
  14801. TS_TST_INFO = record
  14802. version : PASN1_INTEGER;
  14803. policy_id : PASN1_OBJECT;
  14804. msg_imprint : PTS_MSG_IMPRINT;
  14805. serial : PASN1_INTEGER;
  14806. time : PASN1_GENERALIZEDTIME;
  14807. accuracy : PTS_ACCURACY;
  14808. ordering : PASN1_BOOLEAN;
  14809. nonce : PASN1_INTEGER;
  14810. tsa : PGENERAL_NAME;
  14811. extensions : PSTACK_OF_X509_EXTENSION;
  14812. end;
  14813. {$EXTERNALSYM PTS_TST_INFO}
  14814. PTS_TST_INFO = ^TS_TST_INFO;
  14815. {$EXTERNALSYM TS_STATUS_INFO}
  14816. TS_STATUS_INFO = record
  14817. status : PASN1_INTEGER;
  14818. text : PSTACK_OF_ASN1_UTF8STRING;
  14819. failure_info : PASN1_BIT_STRING;
  14820. end;
  14821. {$EXTERNALSYM PTS_STATUS_INFO}
  14822. PTS_STATUS_INFO = ^TS_STATUS_INFO;
  14823. {$EXTERNALSYM TS_RESP}
  14824. TS_RESP = record
  14825. status_info : PTS_STATUS_INFO;
  14826. token : PPKCS7;
  14827. tst_info : PTS_TST_INFO;
  14828. end;
  14829. {$EXTERNALSYM PTS_RESP}
  14830. PTS_RESP = ^TS_RESP;
  14831. {$EXTERNALSYM ESS_ISSUER_SERIAL}
  14832. ESS_ISSUER_SERIAL = record
  14833. issuer : PSTACK_OF_GENERAL_NAME;
  14834. serial : PASN1_INTEGER;
  14835. end;
  14836. {$EXTERNALSYM PESS_ISSUER_SERIAL}
  14837. PESS_ISSUER_SERIAL = ^ESS_ISSUER_SERIAL;
  14838. {$EXTERNALSYM ESS_CERT_ID}
  14839. ESS_CERT_ID = record
  14840. hash : PASN1_OCTET_STRING; //* Always SHA-1 digest. */
  14841. issuer_serial : PESS_ISSUER_SERIAL;
  14842. end;
  14843. {$EXTERNALSYM PESS_CERT_ID}
  14844. PESS_CERT_ID = ^ESS_CERT_ID;
  14845. {$IFDEF DEBUG_SAFESTACK}
  14846. {$EXTERNALSYM STACK_OF_ESS_CERT_ID}
  14847. STACK_OF_ESS_CERT_ID = record
  14848. _stack: stack;
  14849. end;
  14850. {$EXTERNALSYM PSTACK_OF_ESS_CERT_ID}
  14851. PSTACK_OF_ESS_CERT_ID = ^STACK_OF_ESS_CERT_ID;
  14852. {$ELSE}
  14853. //I think the DECLARE_STACK_OF macro is empty
  14854. {$EXTERNALSYM PSTACK_OF_ESS_CERT_ID}
  14855. PSTACK_OF_ESS_CERT_ID = PSTACK;
  14856. {$ENDIF}
  14857. {$EXTERNALSYM ESS_SIGNING_CERT}
  14858. ESS_SIGNING_CERT = record
  14859. cert_ids : PSTACK_OF_ESS_CERT_ID;
  14860. policy_info : PSTACK_OF_POLICYINFO;
  14861. end;
  14862. {$EXTERNALSYM PESS_SIGNING_CERT}
  14863. PESS_SIGNING_CERT = ^ESS_SIGNING_CERT;
  14864. {$EXTERNALSYM PTS_resp_ctx}
  14865. PTS_resp_ctx = ^TS_resp_ctx;
  14866. //* This must return a unique number less than 160 bits long. */
  14867. //typedef ASN1_INTEGER *(*TS_serial_cb)(struct TS_resp_ctx *, void *);
  14868. {$EXTERNALSYM TS_serial_cb}
  14869. TS_serial_cb = function (p1 : PTS_resp_ctx; p2 : Pointer) : PASN1_INTEGER cdecl;
  14870. //* This must return the seconds and microseconds since Jan 1, 1970 in
  14871. // the sec and usec variables allocated by the caller.
  14872. // Return non-zero for success and zero for failure. */
  14873. //typedef int (*TS_time_cb)(struct TS_resp_ctx *, void *, long *sec, long *usec);
  14874. {$EXTERNALSYM TS_time_cb}
  14875. TS_time_cb = function (p1 : PTS_resp_ctx; p2 : Pointer; sec, usec : TIdC_LONG) : TIdC_INT cdecl;
  14876. ///* This must process the given extension.
  14877. // * It can modify the TS_TST_INFO object of the context.
  14878. // * Return values: !0 (processed), 0 (error, it must set the
  14879. // * status info/failure info of the response).
  14880. // */
  14881. //typedef int (*TS_extension_cb)(struct TS_resp_ctx *, X509_EXTENSION *, void *);
  14882. {$EXTERNALSYM TS_extension_cb}
  14883. TS_extension_cb = function (p1 : PTS_resp_ctx; p2 : PX509_EXTENSION; p3 : Pointer) : TIdC_INT cdecl;
  14884. {$EXTERNALSYM TS_RESP_CTX}
  14885. TS_RESP_CTX = record
  14886. signer_cert : PX509;
  14887. signer_key : PEVP_PKEY;
  14888. certs : PSTACK_OF_X509; //* Certs to include in signed data. */
  14889. policies : PSTACK_OF_ASN1_OBJECT; //* Acceptable policies. */
  14890. default_policy : PASN1_OBJECT; //* It may appear in policies, too. */
  14891. mds : PSTACK_OF_EVP_MD; //* Acceptable message digests. */
  14892. seconds : PASN1_INTEGER; //* accuracy, 0 means not specified. */
  14893. millis : PASN1_INTEGER; //* accuracy, 0 means not specified. */
  14894. micros : PASN1_INTEGER; //* accuracy, 0 means not specified. */
  14895. clock_precision_digits : TIdC_UNSIGNED; //* fraction of seconds in
  14896. //time stamp token. */
  14897. flags : TIdC_UNSIGNED; //* Optional info, see values above. */
  14898. //* Callback functions. */
  14899. serial_cb : TS_serial_cb;
  14900. serial_cb_data : Pointer; //* User data for serial_cb. */
  14901. time_cb : TS_time_cb;
  14902. time_cb_data : Pointer; //* User data for time_cb. */
  14903. extension_cb : TS_extension_cb;
  14904. extension_cb_data : Pointer; //* User data for extension_cb. */
  14905. //* These members are used only while creating the response. */
  14906. request : PTS_REQ;
  14907. response : PTS_RESP;
  14908. tst_info : PTS_TST_INFO;
  14909. end;
  14910. {$EXTERNALSYM TS_VERIFY_CTX}
  14911. TS_VERIFY_CTX = record
  14912. //* Set this to the union of TS_VFY_... flags you want to carry out. */
  14913. flags : TIdC_UNSIGNED;
  14914. //* Must be set only with TS_VFY_SIGNATURE. certs is optional. */
  14915. store : PX509_STORE;
  14916. certs : PSTACK_OF_X509;
  14917. //* Must be set only with TS_VFY_POLICY. */
  14918. policy : PASN1_OBJECT;
  14919. // /* Must be set only with TS_VFY_IMPRINT. If md_alg is NULL,
  14920. // the algorithm from the response is used. */
  14921. md_alg : PX509_ALGOR;
  14922. imprint : PIdAnsiChar;
  14923. imprint_len : TIdC_UNSIGNED;
  14924. //* Must be set only with TS_VFY_DATA. */
  14925. data : PBIO;
  14926. //* Must be set only with TS_VFY_TSA_NAME. */
  14927. nonce : PASN1_INTEGER;
  14928. //* Must be set only with TS_VFY_TSA_NAME. */
  14929. tsa_name : PGENERAL_NAME;
  14930. end;
  14931. {$EXTERNALSYM PTS_VERIFY_CTX}
  14932. PTS_VERIFY_CTX = ^TS_VERIFY_CTX;
  14933. //comp.h
  14934. {$EXTERNALSYM PCOMP_CTX}
  14935. PCOMP_CTX = ^COMP_CTX;
  14936. {$EXTERNALSYM COMP_METHOD}
  14937. COMP_METHOD = record
  14938. _type : TIdC_INT; // NID for compression library
  14939. name : PIdAnsiChar; // A text string to identify the library
  14940. init : function (ctx : PCOMP_CTX) : TIdC_INT; cdecl;
  14941. finish : procedure (ctx : PCOMP_CTX); cdecl;
  14942. compress : function (ctx : PCOMP_CTX;
  14943. _out : PIdAnsiChar; olen : TIdC_UINT;
  14944. _in : PIdAnsiChar; ilen : TIdC_UINT) : TIdC_INT; cdecl;
  14945. expand : function (ctx : PCOMP_CTX;
  14946. _out : PIdAnsiChar; olen : TIdC_UINT;
  14947. _in : PIdAnsiChar; ilen : TIdC_UINT) : TIdC_INT; cdecl;
  14948. // The following two do NOTHING, but are kept for backward compatibility
  14949. ctrl : function : TIdC_INT; cdecl;
  14950. callback_ctrl : function : TIdC_INT; cdecl;
  14951. end;
  14952. {$EXTERNALSYM PCOMP_METHOD}
  14953. PCOMP_METHOD = ^COMP_METHOD;
  14954. {$EXTERNALSYM COMP_CTX}
  14955. COMP_CTX = record
  14956. meth : PCOMP_METHOD;
  14957. compress_in : TIdC_ULONG;
  14958. compress_out : TIdC_ULONG;
  14959. expand_in : TIdC_ULONG;
  14960. expand_out : TIdC_ULONG;
  14961. ex_data : PCRYPTO_EX_DATA;
  14962. end;
  14963. //srp.h
  14964. {$EXTERNALSYM SRP_gN_cache}
  14965. SRP_gN_cache = record
  14966. b64_bn : PIdAnsiChar;
  14967. bn : PBIGNUM;
  14968. end;
  14969. {$EXTERNALSYM PSRP_gN_cache}
  14970. PSRP_gN_cache = ^SRP_gN_cache;
  14971. {$IFDEF DEBUG_SAFESTACK}
  14972. {$EXTERNALSYM STACK_OF_SRP_gN_cache}
  14973. STACK_OF_SRP_gN_cache = record
  14974. _stack: stack;
  14975. end;
  14976. {$EXTERNALSYM PSTACK_OF_SRP_gN_cache}
  14977. PSTACK_OF_SRP_gN_cache = ^STACK_OF_SRP_gN_cache;
  14978. {$ELSE}
  14979. //I think the DECLARE_STACK_OF macro is empty
  14980. {$EXTERNALSYM PSTACK_OF_SRP_gN_cache}
  14981. PSTACK_OF_SRP_gN_cache = PSTACK;
  14982. {$ENDIF}
  14983. {$EXTERNALSYM SRP_user_pwd}
  14984. SRP_user_pwd = record
  14985. id : PIdAnsiChar;
  14986. s : PBIGNUM;
  14987. v : PBIGNUM;
  14988. g : PBIGNUM;
  14989. N : PBIGNUM;
  14990. info : PIdAnsiChar;
  14991. end;
  14992. {$EXTERNALSYM PSRP_user_pwd}
  14993. PSRP_user_pwd = ^SRP_user_pwd;
  14994. {$IFDEF DEBUG_SAFESTACK}
  14995. {$EXTERNALSYM STACK_OF_SRP_user_pwd}
  14996. STACK_OF_SRP_user_pwd = record
  14997. _stack: stack;
  14998. end;
  14999. {$EXTERNALSYM PSTACK_OF_SRP_user_pwd}
  15000. PSTACK_OF_SRP_user_pwd = ^STACK_OF_SRP_user_pwd;
  15001. {$ELSE}
  15002. //I think the DECLARE_STACK_OF macro is empty
  15003. {$EXTERNALSYM PSTACK_OF_SRP_user_pwd}
  15004. PSTACK_OF_SRP_user_pwd = PSTACK;
  15005. {$ENDIF}
  15006. {$EXTERNALSYM SRP_VBASE}
  15007. SRP_VBASE = record
  15008. users_pwd : PSTACK_OF_SRP_user_pwd;
  15009. gN_cache : PSTACK_OF_SRP_gN_cache;
  15010. //* to simulate a user */
  15011. seed_key : PIdAnsiChar;
  15012. default_g : PBIGNUM;
  15013. default_N : PBIGNUM;
  15014. end;
  15015. {$EXTERNALSYM PSRP_VBASE}
  15016. PSRP_VBASE = ^SRP_VBASE;
  15017. //*Structure interne pour retenir les couples N et g*/
  15018. {$EXTERNALSYM SRP_gN}
  15019. SRP_gN = record
  15020. id : PIdAnsiChar;
  15021. g : PBIGNUM;
  15022. N : PBIGNUM;
  15023. end;
  15024. {$EXTERNALSYM PSRP_gN}
  15025. PSRP_gN = ^SRP_gN;
  15026. {$IFDEF DEBUG_SAFESTACK}
  15027. {$EXTERNALSYM STACK_OF_SRP_gN}
  15028. STACK_OF_SRP_gN = record
  15029. _stack: stack;
  15030. end;
  15031. {$EXTERNALSYM PSTACK_OF_SRP_gN}
  15032. PSTACK_OF_SRP_gN = ^STACK_OF_SRP_gN;
  15033. {$ELSE}
  15034. //I think the DECLARE_STACK_OF macro is empty
  15035. {$EXTERNALSYM PSTACK_OF_SRP_gN}
  15036. PSTACK_OF_SRP_gN = PSTACK;
  15037. {$ENDIF}
  15038. //kssl.h
  15039. {These are structures for Kerberos support. These will not be complete because
  15040. FreePascal, Borland Delphi, and Indy don't support Kerberos. These are here
  15041. as place holders so we get an exact OpenSSL API if Kerberos support was compiled
  15042. in.
  15043. }
  15044. {$IFNDEF OPENSSL_NO_KRB5}
  15045. {$EXTERNALSYM KSSL_ERR}
  15046. KSSL_ERR = record
  15047. reason : TIdC_INT;
  15048. text : array [0..KSSL_ERR_MAX] of Char;
  15049. end;
  15050. {$EXTERNALSYM PKSSL_CTX}
  15051. {I am not going to do anything to define this because it uses things in the
  15052. Kerberos API. Since there's no support for Kerberos, I'm leaving it empty.
  15053. We only need the pointer anyway}
  15054. PKSSL_CTX = Pointer; //^KSSL_CTX;
  15055. {$ENDIF}
  15056. //ssl.h
  15057. {$ifndef OPENSSL_NO_SSL_INTERN}
  15058. {$EXTERNALSYM PSSL_CIPHER}
  15059. PSSL_CIPHER = ^SSL_CIPHER;
  15060. {$EXTERNALSYM SSL_CIPHER}
  15061. SSL_CIPHER = record
  15062. valid : TIdC_INT;
  15063. name: PIdAnsiChar; // text name
  15064. id: TIdC_ULONG; // id, 4 bytes, first is version
  15065. //* changed in 0.9.9: these four used to be portions of a single value 'algorithms' */
  15066. algorithm_mkey : TIdC_ULONG; //* key exchange algorithm */
  15067. algorithm_auth : TIdC_ULONG; //* server authentication */
  15068. algorithm_enc : TIdC_ULONG; //* symmetric encryption */
  15069. algorithm_mac : TIdC_ULONG; //* symmetric authentication */
  15070. algorithm_ssl : TIdC_ULONG; //* (major) protocol version */
  15071. algo_strength: TIdC_ULONG; // strength and export flags
  15072. algorithm2: TIdC_ULONG;// Extra flags
  15073. strength_bits: TIdC_INT; // Number of bits really used
  15074. alg_bits: TIdC_INT; // Number of bits for algorithm
  15075. end;
  15076. {$IFDEF DEBUG_SAFESTACK}
  15077. {$EXTERNALSYM STACK_OF_SSL_CIPHER}
  15078. STACK_OF_SSL_CIPHER = record
  15079. _stack: STACK;
  15080. end;
  15081. {$EXTERNALSYM PSTACK_OF_SSL_CIPHER}
  15082. PSTACK_OF_SSL_CIPHER = ^STACK_OF_SSL_CIPHER;
  15083. {$ELSE}
  15084. //I think the DECLARE_STACK_OF macro is empty
  15085. {$EXTERNALSYM PSTACK_OF_SSL_CIPHER}
  15086. PSTACK_OF_SSL_CIPHER = PSTACK;
  15087. {$ENDIF}
  15088. {$EXTERNALSYM PSSL_SESSION}
  15089. PSSL_SESSION = ^SSL_SESSION;
  15090. {$EXTERNALSYM SSL_SESSION}
  15091. SSL_SESSION = record
  15092. ssl_version : TIdC_INT; // what ssl version session info is being kept in here?
  15093. // only really used in SSLv2
  15094. key_arg_length: TIdC_UINT;
  15095. key_arg: Array[0..SSL_MAX_KEY_ARG_LENGTH-1] of Byte;
  15096. master_key_length: TIdC_INT;
  15097. master_key: Array[0..SSL_MAX_MASTER_KEY_LENGTH-1] of Byte;
  15098. // session_id - valid?
  15099. session_id_length: TIdC_UINT;
  15100. session_id: Array[0..SSL_MAX_SSL_SESSION_ID_LENGTH-1] of Byte;
  15101. // this is used to determine whether the session is being reused in
  15102. // the appropriate context. It is up to the application to set this,
  15103. // via SSL_new
  15104. sid_ctx_length: TIdC_UINT;
  15105. sid_ctx: array[0..SSL_MAX_SID_CTX_LENGTH-1] of Byte;
  15106. {$IFNDEF OPENSSL_NO_KRB5}
  15107. krb5_client_princ_len: TIdC_UINT;
  15108. krb5_client_princ: array[0..SSL_MAX_KRB5_PRINCIPAL_LENGTH-1] of Byte;
  15109. {$ENDIF}
  15110. {$ifndef OPENSSL_NO_PSK}
  15111. psk_identity_hint : PIdAnsiChar;
  15112. psk_identity : PIdAnsiChar;
  15113. {$endif}
  15114. not_resumable: TIdC_INT;
  15115. // The cert is the certificate used to establish this connection
  15116. sess_cert : PSESS_CERT;
  15117. //* This is the cert for the other end.
  15118. // * On clients, it will be the same as sess_cert->peer_key->x509
  15119. // * (the latter is not enough as sess_cert is not retained
  15120. // * in the external representation of sessions, see ssl_asn1.c). */
  15121. peer : PX509;
  15122. //* when app_verify_callback accepts a session where the peer's certificate
  15123. // * is not ok, we must remember the error for session reuse: */
  15124. verify_result : TIdC_LONG; //* only for servers */
  15125. references : TIdC_INT;
  15126. timeout : TIdC_LONG;
  15127. time : TIdC_LONG;
  15128. compress_meth : TIdC_UINT; //* Need to lookup the method */
  15129. cipher : PSSL_CIPHER;
  15130. cipher_id : TIdC_ULONG; //* when ASN.1 loaded, this
  15131. // * needs to be used to load
  15132. // * the 'cipher' structure */
  15133. ciphers : PSTACK_OF_SSL_CIPHER; //* shared ciphers? */
  15134. ex_data : CRYPTO_EX_DATA; // application specific data */
  15135. //* These are used to make removal of session-ids more
  15136. // * efficient and to implement a maximum cache size. */
  15137. prev, next : PSSL_SESSION;
  15138. {$IFNDEF OPENSSL_NO_TLSEXT}
  15139. tlsext_hostname : PIdAnsiChar;
  15140. {$IFDEF OPENSSL_NO_EC}
  15141. tlsext_ecpointformatlist_length : size_t;
  15142. tlsext_ecpointformatlist : PIdAnsiChar; //* peer's list */
  15143. tlsext_ellipticcurvelist_length : size_t;
  15144. tlsext_ellipticcurvelist : PIdAnsiChar; //* peer's list */
  15145. {$ENDIF} //* OPENSSL_NO_EC */
  15146. //* RFC4507 info */
  15147. tlsext_tick : PIdAnsiChar;//* Session ticket */
  15148. tlsext_ticklen : size_t;//* Session ticket length */
  15149. tlsext_tick_lifetime_hint : TIdC_LONG;//* Session lifetime hint in seconds */
  15150. {$ENDIF}
  15151. {$ifndef OPENSSL_NO_SRP}
  15152. srp_username : PIdAnsiChar;
  15153. {$endif}
  15154. end;
  15155. {$ENDIF}
  15156. {$ifndef OPENSSL_NO_SRP}
  15157. {$ifndef OPENSSL_NO_SSL_INTERN}
  15158. {$EXTERNALSYM SRP_CTX}
  15159. SRP_CTX = record
  15160. //* param for all the callbacks */
  15161. SRP_cb_arg : Pointer;
  15162. //* set client Hello login callback */
  15163. TLS_ext_srp_username_callback : function(para1 : PSSL; para2 : TIdC_INT; para3 : Pointer) : TIdC_INT cdecl;
  15164. //int (*TLS_ext_srp_username_callback)(SSL *, int *, void *);
  15165. //* set SRP N/g param callback for verification */
  15166. SRP_verify_param_callback : function(para1 : PSSL; para2 : Pointer) : TIdC_INT cdecl;
  15167. // int (*SRP_verify_param_callback)(SSL *, void *);
  15168. //* set SRP client passwd callback */
  15169. SRP_give_srp_client_pwd_callback : function(para1 : PSSL; para2 : Pointer) : PIdAnsiChar cdecl;
  15170. // char *(*SRP_give_srp_client_pwd_callback)(SSL *, void *);
  15171. login : PIdAnsiChar;
  15172. N, g, s, B, A : PBIGNUM;
  15173. _a, _b, v : PBIGNUM;
  15174. info : PIdAnsiChar;
  15175. strength : TIdC_INT;
  15176. srp_Mask : TIdC_ULONG;
  15177. end;
  15178. {$EXTERNALSYM PSRP_CTX}
  15179. PSRP_CTX = ^SRP_CTX;
  15180. {$endif}
  15181. {$ENDIF}
  15182. // typedef struct ssl_method_st
  15183. {$NODEFINE PSSL_CTX}
  15184. PSSL_CTX = ^SSL_CTX;
  15185. {$EXTERNALSYM SRTP_PROTECTION_PROFILE}
  15186. SRTP_PROTECTION_PROFILE = record
  15187. name : PIdAnsiChar;
  15188. id : TIdC_ULONG;
  15189. end;
  15190. {$EXTERNALSYM PTLS_SESSION_TICKET_EXT}
  15191. PTLS_SESSION_TICKET_EXT = ^TLS_SESSION_TICKET_EXT;
  15192. {$EXTERNALSYM TLS_SESSION_TICKET_EXT}
  15193. TLS_SESSION_TICKET_EXT = record
  15194. length : TIdC_USHORT;
  15195. data : Pointer;
  15196. end;
  15197. {$EXTERNALSYM PSRTP_PROTECTION_PROFILE}
  15198. PSRTP_PROTECTION_PROFILE = ^SRTP_PROTECTION_PROFILE;
  15199. {$EXTERNALSYM tls_session_ticket_ext_cb_fn}
  15200. tls_session_ticket_ext_cb_fn = function(S : PSSL; data : PIdAnsiChar; len : TIdC_INT; arg : Pointer) : TIdC_INT cdecl;
  15201. {$EXTERNALSYM tls_session_secret_cb_fn}
  15202. tls_session_secret_cb_fn = function(S : PSSL;
  15203. secret : Pointer;
  15204. var secret_len : TIdC_INT;
  15205. peer_ciphers : PSTACK_OF_SSL_CIPHER;
  15206. out cipher : PSSL_CIPHER) : TIdC_INT cdecl;
  15207. {$EXTERNALSYM SSL_METHOD_PROC}
  15208. SSL_METHOD_PROC = procedure; cdecl;
  15209. {$NODEFINE PSSL_METHOD}
  15210. PSSL_METHOD = ^SSL_METHOD;
  15211. {$NODEFINE SSL_METHOD}
  15212. SSL_METHOD = record
  15213. version: TIdC_INT;
  15214. ssl_new: function(s: PSSL): TIdC_INT; cdecl;
  15215. ssl_clear: procedure(s: PSSL); cdecl;
  15216. ssl_free: procedure(s: PSSL); cdecl;
  15217. ssl_accept: function(s: PSSL): TIdC_INT; cdecl;
  15218. ssl_connect: function(s: PSSL): TIdC_INT; cdecl;
  15219. ssl_read: function(s: PSSL; buf: Pointer; len: TIdC_INT):TIdC_INT; cdecl;
  15220. ssl_peek: function(s: PSSL; buf: Pointer; len: TIdC_INT):TIdC_INT; cdecl;
  15221. ssl_write: function(s: PSSL; const buf: Pointer; len:TIdC_INT): TIdC_INT; cdecl;
  15222. ssl_shutdown: function(s: PSSL): TIdC_INT; cdecl;
  15223. ssl_renegotiate: function(s: PSSL): TIdC_INT; cdecl;
  15224. ssl_renegotiate_check: function(s: PSSL): TIdC_INT; cdecl;
  15225. ssl_get_message: function(s: PSSL; st1, stn, mt: TIdC_INT; max: TIdC_LONG; ok: PIdC_INT): TIdC_LONG; cdecl;
  15226. ssl_read_bytes: function(s: PSSL; _type: TIdC_INT; buf:PByte; len, peek: TIdC_INT): TIdC_INT; cdecl;
  15227. ssl_write_bytes: function(s: PSSL; _type: TIdC_INT; const buf: Pointer; len: TIdC_INT): TIdC_INT; cdecl;
  15228. ssl_dispatch_alert: function(s: PSSL): TIdC_INT; cdecl;
  15229. ssl_ctrl: function(s: PSSL; cmd: TIdC_INT; larg: TIdC_LONG; parg: Pointer): TIdC_LONG; cdecl;
  15230. ssl_ctx_ctrl: function(ctx: PSSL_CTX; cmd: TIdC_INT; larg:TIdC_LONG; parg: Pointer): TIdC_LONG; cdecl;
  15231. get_cipher_by_char: function(const ptr: PByte):PSSL_CIPHER; cdecl;
  15232. put_cipher_by_char: function(const cipher: PSSL_CIPHER;ptr: PByte): TIdC_INT; cdecl;
  15233. ssl_pending: function(const s: PSSL): TIdC_INT; cdecl;
  15234. num_ciphers: function: TIdC_INT; cdecl;
  15235. get_cipher: function(ncipher: TIdC_UNSIGNED): PSSL_CIPHER;cdecl;
  15236. get_ssl_method: function(version: TIdC_INT): PSSL_METHOD; cdecl;
  15237. get_timeout: function : TIdC_LONG; cdecl;
  15238. ssl3_enc: PSSL3_ENC_METHOD;
  15239. ssl_version: function : TIdC_INT; cdecl;
  15240. ssl_callback_ctrl: function(s: PSSL; cb_id: TIdC_INT; fp: SSL_METHOD_PROC): TIdC_LONG; cdecl;
  15241. ssl_ctx_callback_ctrl: function(s: PSSL_CTX; cb_id:TIdC_INT; fp: SSL_METHOD_PROC): TIdC_LONG; cdecl;
  15242. end;
  15243. {$EXTERNALSYM PPSSL_METHOD}
  15244. PPSSL_METHOD =^PSSL_METHOD;
  15245. // This callback type is used inside SSL_CTX, SSL, and in the functions that set
  15246. // them. It is used to override the generation of SSL/TLS session IDs in a
  15247. // server. Return value should be zero on an error, non-zero to proceed. Also,
  15248. // callbacks should themselves check if the id they generate is unique otherwise
  15249. // the SSL handshake will fail with an error - callbacks can do this using the
  15250. // 'ssl' value they're passed by;
  15251. // SSL_has_matching_session_id(ssl, id, *id_len)
  15252. // The length value passed in is set at the maximum size the session ID can be.
  15253. // In SSLv2 this is 16 bytes, whereas SSLv3/TLSv1 it is 32 bytes. The callback
  15254. // can alter this length to be less if desired, but under SSLv2 session IDs are
  15255. // supposed to be fixed at 16 bytes so the id will be padded after the callback
  15256. // returns in this case. It is also an error for the callback to set the size to
  15257. // zero.
  15258. {$EXTERNALSYM PGEN_SESSION_CB}
  15259. PGEN_SESSION_CB = function (const SSL : PSSL; id : PByte; id_len : TIdC_UINT) : TIdC_INT; cdecl;
  15260. {$EXTERNALSYM SSL_COMP}
  15261. SSL_COMP = record
  15262. id : TIdC_INT;
  15263. name : PIdAnsiChar;
  15264. {$IFNDEF OPENSSL_NO_COMP}
  15265. method : PCOMP_METHOD;
  15266. {$ELSE}
  15267. method : PIdAnsiChar;
  15268. {$ENDIF}
  15269. end;
  15270. {$IFDEF DEBUG_SAFESTACK}
  15271. {$EXTERNALSYM STACK_OF_COMP}
  15272. STACK_OF_COMP = record
  15273. _stack: stack;
  15274. end;
  15275. {$EXTERNALSYM PSTACK_OF_COMP}
  15276. PSTACK_OF_COMP = ^STACK_OF_COMP;
  15277. {$ELSE}
  15278. //I think the DECLARE_STACK_OF macro is empty
  15279. {$EXTERNALSYM PSTACK_OF_COMP}
  15280. PSTACK_OF_COMP = PSTACK;
  15281. {$ENDIF}
  15282. {$EXTERNALSYM PSSL_CTEX_tlsext_servername_callback}
  15283. PSSL_CTEX_tlsext_servername_callback = function(ssl : PSSL; Para1 : TIdC_INT; Para2 : Pointer) : TIdC_INT; cdecl;
  15284. {$EXTERNALSYM PSSL_CTX_info_callback}
  15285. PSSL_CTX_info_callback = procedure (const ssl : PSSL; _type, val : TIdC_INT); cdecl; // used if SSL's info_callback is NULL
  15286. //int (*tlsext_ticket_key_cb)(SSL *ssl,
  15287. // unsigned char *name, unsigned char *iv,
  15288. // EVP_CIPHER_CTX *ectx,
  15289. // HMAC_CTX *hctx, int enc);
  15290. {$EXTERNALSYM Ptlsext_ticket_key_cb}
  15291. Ptlsext_ticket_key_cb = function (ssl : PSSL; name, iv : PIdAnsiChar;
  15292. ectx : PEVP_CIPHER_CTX;
  15293. hctx : PHMAC_CTX; enc : TIdC_INT) : TIdC_INT; cdecl;
  15294. // int (*tlsext_status_cb)(SSL *ssl, void *arg);
  15295. {$EXTERNALSYM Ptlsext_status_cb}
  15296. Ptlsext_status_cb = function (ssl : PSSL; arg : Pointer) : TIdC_INT; cdecl;
  15297. {$EXTERNALSYM SSL_CTX_stats}
  15298. SSL_CTX_stats = record
  15299. sess_connect: TIdC_INT; // SSL new conn - started
  15300. sess_connect_renegotiate: TIdC_INT; // SSL reneg - requested
  15301. sess_connect_good: TIdC_INT; // SSL new conne/reneg - finished
  15302. sess_accept: TIdC_INT; // SSL new accept - started
  15303. sess_accept_renegotiate: TIdC_INT; // SSL reneg - requested
  15304. sess_accept_good: TIdC_INT; // SSL accept/reneg - finished
  15305. sess_miss: TIdC_INT; // session lookup misses
  15306. sess_timeout: TIdC_INT; // reuse attempt on timeouted session
  15307. sess_cache_full: TIdC_INT; // session removed due to full cache
  15308. sess_hit: TIdC_INT; // session reuse actually done
  15309. sess_cb_hit: TIdC_INT; // session-id that was not
  15310. // in the cache was
  15311. // passed back via the callback. This
  15312. // indicates that the application is
  15313. // supplying session-id's from other
  15314. // processes - spooky :-)
  15315. end;
  15316. {$EXTERNALSYM lash_of_SSL_SESSION}
  15317. lash_of_SSL_SESSION = record
  15318. dummy : TIdC_INT;
  15319. end;
  15320. {$EXTERNALSYM Plash_of_SSL_SESSION}
  15321. Plash_of_SSL_SESSION = ^lash_of_SSL_SESSION;
  15322. {$ifndef OPENSSL_NO_BUF_FREELISTS}
  15323. {$EXTERNALSYM Pssl3_buf_freelist_st}
  15324. Pssl3_buf_freelist_st = Pointer;
  15325. {$endif}
  15326. {$IFDEF DEBUG_SAFESTACK}
  15327. {$EXTERNALSYM STACK_OF_SRTP_PROTECTION_PROFILE}
  15328. STACK_OF_SRTP_PROTECTION_PROFILE = record
  15329. _stack: stack;
  15330. end;
  15331. {$EXTERNALSYM PSTACK_OF_SRTP_PROTECTION_PROFILE}
  15332. PSTACK_OF_SRTP_PROTECTION_PROFILE = ^STACK_OF_SRTP_PROTECTION_PROFILE;
  15333. {$ELSE}
  15334. //I think the DECLARE_STACK_OF macro is empty
  15335. {$EXTERNALSYM PSTACK_OF_SRTP_PROTECTION_PROFILE}
  15336. PSTACK_OF_SRTP_PROTECTION_PROFILE = PSTACK;
  15337. {$ENDIF}
  15338. {$NODEFINE SSL_CTX}
  15339. SSL_CTX = record
  15340. method: PSSL_METHOD;
  15341. cipher_list: PSTACK_OF_SSL_CIPHER;
  15342. // same as above but sorted for lookup
  15343. cipher_list_by_id: PSTACK_OF_SSL_CIPHER;
  15344. cert_store: PX509_STORE;
  15345. sessions: Plash_of_SSL_SESSION;
  15346. // a set of SSL_SESSIONs
  15347. // Most session-ids that will be cached, default is
  15348. // SSL_SESSION_CACHE_MAX_SIZE_DEFAULT. 0 is unlimited.
  15349. session_cache_size: TIdC_ULONG;
  15350. session_cache_head: PSSL_SESSION;
  15351. session_cache_tail: PSSL_SESSION;
  15352. // This can have one of 2 values, ored together,
  15353. // SSL_SESS_CACHE_CLIENT,
  15354. // SSL_SESS_CACHE_SERVER,
  15355. // Default is SSL_SESSION_CACHE_SERVER, which means only
  15356. // SSL_accept which cache SSL_SESSIONS.
  15357. session_cache_mode: TIdC_INT;
  15358. session_timeout: TIdC_LONG;
  15359. // If this callback is not null, it will be called each
  15360. // time a session id is added to the cache. If this function
  15361. // returns 1, it means that the callback will do a
  15362. // SSL_SESSION_free() when it has finished using it. Otherwise,
  15363. // on 0, it means the callback has finished with it.
  15364. // If remove_session_cb is not null, it will be called when
  15365. // a session-id is removed from the cache. After the call,
  15366. // OpenSSL will SSL_SESSION_free() it.
  15367. new_session_cb: function (ssl : PSSL; sess: PSSL_SESSION): TIdC_INT; cdecl;
  15368. remove_session_cb: procedure (ctx : PSSL_CTX; sess : PSSL_SESSION); cdecl;
  15369. get_session_cb: function (ssl : PSSL; data : PByte; len: TIdC_INT; copy : PIdC_INT) : PSSL_SESSION; cdecl;
  15370. stats : SSL_CTX_stats;
  15371. references: TIdC_INT;
  15372. // if defined, these override the X509_verify_cert() calls
  15373. app_verify_callback: function (_para1 : PX509_STORE_CTX; _para2 : Pointer) : TIdC_INT; cdecl;
  15374. app_verify_arg: Pointer;
  15375. // before OpenSSL 0.9.7, 'app_verify_arg' was ignored
  15376. // ('app_verify_callback' was called with just one argument)
  15377. // Default password callback.
  15378. default_passwd_callback: ppem_password_cb;
  15379. // Default password callback user data.
  15380. default_passwd_callback_userdata: Pointer;
  15381. // get client cert callback
  15382. client_cert_cb: function (SSL : PSSL; x509 : PPX509; pkey : PPEVP_PKEY) : TIdC_INT; cdecl;
  15383. // verify cookie callback
  15384. app_gen_cookie_cb: function (ssl : PSSL; cookie : PByte; cookie_len : TIdC_UINT) : TIdC_INT; cdecl;
  15385. app_verify_cookie_cb: Pointer;
  15386. ex_data : CRYPTO_EX_DATA;
  15387. rsa_md5 : PEVP_MD; // For SSLv2 - name is 'ssl2-md5'
  15388. md5: PEVP_MD; // For SSLv3/TLSv1 'ssl3-md5'
  15389. sha1: PEVP_MD; // For SSLv3/TLSv1 'ssl3->sha1'
  15390. extra_certs: PSTACK_OF_X509;
  15391. comp_methods: PSTACK_OF_COMP; // stack of SSL_COMP, SSLv3/TLSv1
  15392. // Default values used when no per-SSL value is defined follow
  15393. info_callback: PSSL_CTX_info_callback; // used if SSL's info_callback is NULL
  15394. // what we put in client cert requests
  15395. client_CA : PSTACK_OF_X509_NAME;
  15396. // Default values to use in SSL structures follow (these are copied by SSL_new)
  15397. options : TIdC_ULONG;
  15398. mode : TIdC_ULONG;
  15399. max_cert_list : TIdC_LONG;
  15400. cert : PCERT;
  15401. read_ahead : TIdC_INT;
  15402. // callback that allows applications to peek at protocol messages
  15403. msg_callback : procedure (write_p, version, content_type : TIdC_INT; const buf : Pointer; len : size_t; ssl : PSSL; arg : Pointer); cdecl;
  15404. msg_callback_arg : Pointer;
  15405. verify_mode : TIdC_INT;
  15406. sid_ctx_length : TIdC_UINT;
  15407. sid_ctx : array[0..SSL_MAX_SID_CTX_LENGTH - 1] of TIdAnsiChar;
  15408. default_verify_callback : function(ok : TIdC_INT; ctx : PX509_STORE_CTX) : TIdC_INT; cdecl; // called 'verify_callback' in the SSL
  15409. // Default generate session ID callback.
  15410. generate_session_id : PGEN_SESSION_CB;
  15411. param : PX509_VERIFY_PARAM;
  15412. {$IFDEF OMIT_THIS}
  15413. purpose : TIdC_INT; // Purpose setting
  15414. trust : TIdC_INT; // Trust setting
  15415. {$ENDIF}
  15416. quiet_shutdown : TIdC_INT;
  15417. //* Maximum amount of data to send in one fragment.
  15418. // * actual record size can be more than this due to
  15419. // * padding and MAC overheads.
  15420. // */
  15421. max_send_fragment : TIdC_UINT;
  15422. {$IFNDEF OPENSSL_ENGINE}
  15423. ///* Engine to pass requests for client certs to
  15424. // */
  15425. client_cert_engine : PENGINE;
  15426. {$ENDIF}
  15427. {$IFNDEF OPENSSL_NO_TLSEXT}
  15428. //* TLS extensions servername callback */
  15429. tlsext_servername_callback : PSSL_CTEX_tlsext_servername_callback;
  15430. tlsext_servername_arg : Pointer;
  15431. //* RFC 4507 session ticket keys */
  15432. tlsext_tick_key_name : array [0..(16-1)] of TIdAnsiChar;
  15433. tlsext_tick_hmac_key : array [0..(16-1)] of TIdAnsiChar;
  15434. tlsext_tick_aes_key : array [0..(16-1)] of TIdAnsiChar;
  15435. //* Callback to support customisation of ticket key setting */
  15436. // int (*tlsext_ticket_key_cb)(SSL *ssl,
  15437. // unsigned char *name, unsigned char *iv,
  15438. // EVP_CIPHER_CTX *ectx,
  15439. // HMAC_CTX *hctx, int enc);
  15440. tlsext_ticket_key_cb : Ptlsext_ticket_key_cb;
  15441. //* certificate status request info */
  15442. //* Callback for status request */
  15443. //int (*tlsext_status_cb)(SSL *ssl, void *arg);
  15444. tlsext_status_cb : Ptlsext_status_cb;
  15445. tlsext_status_arg : Pointer;
  15446. {$ENDIF}
  15447. //* draft-rescorla-tls-opaque-prf-input-00.txt information */
  15448. tlsext_opaque_prf_input_callback : function(para1 : PSSL; peerinput : Pointer; len : size_t; arg : Pointer ) : TIdC_INT cdecl;
  15449. //int (*tlsext_opaque_prf_input_callback)(SSL *, void *peerinput, size_t len, void *arg);
  15450. tlsext_opaque_prf_input_callback_arg : Pointer;
  15451. {$ifndef OPENSSL_NO_PSK}
  15452. psk_identity_hint : PIdAnsiChar;
  15453. psk_client_callback : function (ssl : PSSL; hint : PIdAnsiChar;
  15454. identity : PIdAnsiChar; max_identity_len : TIdC_UINT;
  15455. psk : PIdAnsiChar; max_psk_len : TIdC_UINT ) : TIdC_UINT cdecl;
  15456. // unsigned int (*psk_client_callback)(SSL *ssl, const char *hint, char *identity,
  15457. // unsigned int max_identity_len, unsigned char *psk,
  15458. // unsigned int max_psk_len);
  15459. psk_server_callback : function (ssl : PSSL; identity, psk : PIdAnsiChar; max_psk_len : TIdC_UINT) : TIdC_UINT cdecl;
  15460. // unsigned int (*psk_server_callback)(SSL *ssl, const char *identity,
  15461. // unsigned char *psk, unsigned int max_psk_len);
  15462. {$endif}
  15463. {$ifndef OPENSSL_NO_BUF_FREELISTS}
  15464. freelist_max_len : TIdC_UINT;
  15465. wbuf_freelist : Pssl3_buf_freelist_st;
  15466. rbuf_freelist : Pssl3_buf_freelist_st;
  15467. {$endif}
  15468. {$ifndef OPENSSL_NO_SRP}
  15469. srp_ctx : SRP_CTX; //* ctx for SRP authentication */
  15470. {$endif}
  15471. {$ifndef OPENSSL_NO_TLSEXT}
  15472. //# ifndef OPENSSL_NO_NEXTPROTONEG
  15473. //* Next protocol negotiation information */
  15474. //* (for experimental NPN extension). */
  15475. //* For a server, this contains a callback function by which the set of
  15476. // * advertised protocols can be provided. */
  15477. next_protos_advertised_cb : function(s : PSSL; out but : PIdAnsiChar;
  15478. out len : TIdC_UINT; arg : Pointer) : TIdC_INT cdecl;
  15479. // int (*next_protos_advertised_cb)(SSL *s, const unsigned char **buf,
  15480. // unsigned int *len, void *arg);
  15481. next_protos_advertised_cb_arg : Pointer;
  15482. //* For a client, this contains a callback function that selects the
  15483. // * next protocol from the list provided by the server. */
  15484. next_proto_select_cb : function(s : PSSL; out _out : PIdAnsiChar;
  15485. outlen : PIdAnsiChar;
  15486. _in : PIdAnsiChar;
  15487. inlen : TIdC_UINT;
  15488. arg : Pointer) : TIdC_INT cdecl;
  15489. // int (*next_proto_select_cb)(SSL *s, unsigned char **out,
  15490. // unsigned char *outlen,
  15491. // const unsigned char *in,
  15492. // unsigned int inlen,
  15493. // void *arg);
  15494. next_proto_select_cb_arg : Pointer;
  15495. //# endif
  15496. //* SRTP profiles we are willing to do from RFC 5764 */
  15497. srtp_profiles : PSTACK_OF_SRTP_PROTECTION_PROFILE;
  15498. {$endif}
  15499. end;
  15500. {$EXTERNALSYM PSSL2_STATE}
  15501. PSSL2_STATE = ^SSL2_STATE;
  15502. {$EXTERNALSYM PSSL3_STATE}
  15503. PSSL3_STATE = ^SSL3_STATE;
  15504. {$EXTERNALSYM PDTLS1_STATE}
  15505. PDTLS1_STATE = ^DTLS1_STATE;
  15506. //* TLS extension debug callback */
  15507. {$EXTERNALSYM PSSL_tlsext_debug_cb}
  15508. PSSL_tlsext_debug_cb = procedure (s : PSSL; client_server : TIdC_INT;
  15509. _type : TIdC_INT; data : PIdAnsiChar; len : TIdC_INT; arg : Pointer); cdecl;
  15510. {$NODEFINE SSL}
  15511. SSL = record
  15512. // protocol version
  15513. // (one of SSL2_VERSION, SSL3_VERSION, TLS1_VERSION, DTLS1_VERSION)
  15514. version : TIdC_INT;
  15515. _type : TIdC_INT; //* SSL_ST_CONNECT or SSL_ST_ACCEPT */
  15516. method : PSSL_METHOD; //* SSLv3 */
  15517. // There are 2 BIO's even though they are normally both the
  15518. // same. This is so data can be read and written to different
  15519. // handlers
  15520. {$IFNDEF OPENSSL_NO_BIO}
  15521. rbio : PBIO; // used by SSL_read
  15522. wbio : PBIO; // used by SSL_write
  15523. bbio : PBIO; // used during session-id reuse to concatenate messages
  15524. {$ELSE}
  15525. rbio : PIdAnsiChar; // used by SSL_read
  15526. wbio : PIdAnsiChar; // used by SSL_write
  15527. bbio : PIdAnsiChar;
  15528. {$ENDIF}
  15529. // This holds a variable that indicates what we were doing
  15530. // when a 0 or -1 is returned. This is needed for
  15531. // non-blocking IO so we know what request needs re-doing when
  15532. // in SSL_accept or SSL_connect
  15533. rwstate : TIdC_INT;
  15534. // true when we are actually in SSL_accept() or SSL_connect()
  15535. in_handshake : TIdC_INT;
  15536. handshake_func : function (_para1 : PSSL) : TIdC_INT; cdecl;
  15537. // Imagine that here's a boolean member "init" that is
  15538. // switched as soon as SSL_set_{accept/connect}_state
  15539. // is called for the first time, so that "state" and
  15540. // handshake_func" are properly initialized. But as
  15541. // handshake_func is == 0 until then, we use this
  15542. // test instead of an "init" member.
  15543. server : TIdC_INT; // are we the server side? - mostly used by SSL_clear
  15544. new_session : TIdC_INT;//* Generate a new session or reuse an old one.
  15545. //* NB: For servers, the 'new' session may actually be a previously
  15546. //* cached session or even the previous session unless
  15547. //* SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION is set */
  15548. quiet_shutdown : TIdC_INT; // don't send shutdown packets
  15549. shutdown : TIdC_INT; // we have shut things down, 0x01 sent, 0x02
  15550. // for received
  15551. state : TIdC_INT; // where we are
  15552. rstate : TIdC_INT; // where we are when reading
  15553. init_buf : PBUF_MEM; // buffer used during init
  15554. init_msg : Pointer; // pointer to handshake message body, set by ssl3_get_message()
  15555. init_num : TIdC_INT; // amount read/written
  15556. init_off : TIdC_INT; // amount read/written
  15557. // used internally to point at a raw packet
  15558. packet : PIdAnsiChar;
  15559. packet_length : TIdC_UINT;
  15560. s2 : Pssl2_state; // SSLv2 variables
  15561. s3 : Pssl3_state; // SSLv3 variables
  15562. d1 : Pdtls1_state; // DTLSv1 variables
  15563. read_ahead : TIdC_INT; // Read as many input bytes as possible (for non-blocking reads)
  15564. // callback that allows applications to peek at protocol messages
  15565. msg_callback : procedure(write_p, version, content_type : TIdC_INT;
  15566. const buf : Pointer; len : size_t; ssl : PSSL; arg : Pointer); cdecl;
  15567. msg_callback_arg : Pointer;
  15568. hit : TIdC_INT; //* reusing a previous session */
  15569. param : PX509_VERIFY_PARAM;
  15570. {$IFDEF OMIT_THIS}
  15571. purpose : TIdC_INT; // Purpose setting
  15572. trust : TIdC_INT; // Trust setting
  15573. {$ENDIF}
  15574. // crypto
  15575. cipher_list : PSTACK_OF_SSL_CIPHER;
  15576. cipher_list_by_id : PSTACK_OF_SSL_CIPHER;
  15577. //* These are the ones being used, the ones in SSL_SESSION are
  15578. // * the ones to be 'copied' into these ones */
  15579. mac_flags : TIdC_INT;
  15580. // These are the ones being used, the ones in SSL_SESSION are
  15581. // the ones to be 'copied' into these ones
  15582. enc_read_ctx : PEVP_CIPHER_CTX; // cryptographic state
  15583. read_hash : PEVP_MD_CTX; // used for mac generation
  15584. {$IFNDEF OPENSSL_NO_COMP}
  15585. expand : PCOMP_CTX; // uncompress
  15586. {$ELSE}
  15587. expand : PIdAnsiChar;
  15588. {$ENDIF}
  15589. enc_write_ctx : PEVP_CIPHER_CTX; // cryptographic state
  15590. write_hash : PEVP_MD_CTX; // used for mac generation
  15591. {$IFNDEF OPENSSL_NO_COMP}
  15592. compress : PCOMP_CTX; // compression
  15593. {$ELSE}
  15594. compress : PIdAnsiChar;
  15595. {$ENDIF}
  15596. // session info
  15597. // client cert?
  15598. // This is used to hold the server certificate used
  15599. cert : PCERT;
  15600. // the session_id_context is used to ensure sessions are only reused
  15601. // in the appropriate context
  15602. sid_ctx_length : TIdC_UINT;
  15603. sid_ctx : array [0..SSL_MAX_SID_CTX_LENGTH -1] of TIdAnsiChar;
  15604. // This can also be in the session once a session is established
  15605. session : PSSL_SESSION;
  15606. // Default generate session ID callback.
  15607. generate_session_id : PGEN_SESSION_CB;
  15608. // Used in SSL2 and SSL3
  15609. verify_mode : TIdC_INT; // 0 don't care about verify failure.
  15610. // 1 fail if verify fails
  15611. verify_callback : function (ok : TIdC_INT; ctx : PX509_STORE_CTX) : TIdC_INT; cdecl; // fail if callback returns 0
  15612. info_callback : procedure(const ssl : PSSL; _type, val : TIdC_INT) ; cdecl;
  15613. error : TIdC_INT; // error bytes to be written
  15614. error_code : TIdC_INT; // actual code
  15615. {$IFNDEF OPENSSL_NO_KRB5}
  15616. kssl_ctx : PKSSL_CTX; // Kerberos 5 context
  15617. {$ENDIF}
  15618. {$ifndef OPENSSL_NO_PSK}
  15619. psk_client_callback : function(ssl : PSSL; hint : PIdAnsiChar;
  15620. identity : PIdAnsiChar;
  15621. max_identity_len : TIdC_UINT;
  15622. psk : PIdAnsiChar;
  15623. max_psk_len : TIdC_UINT) : TIdC_UINT cdecl;
  15624. // unsigned int (*psk_client_callback)(SSL *ssl, const char *hint, char *identity,
  15625. // unsigned int max_identity_len, unsigned char *psk,
  15626. // unsigned int max_psk_len);
  15627. psk_server_callback : function(ssl : PSSL; identity : PIdAnsiChar;
  15628. psk : PIdAnsiChar; max_psk_len : TIdC_UINT) : TIdC_UINT cdecl;
  15629. // unsigned int (*psk_server_callback)(SSL *ssl, const char *identity,
  15630. // unsigned char *psk, unsigned int max_psk_len);
  15631. {$endif}
  15632. ctx : PSSL_CTX;
  15633. // set this flag to 1 and a sleep(1) is put into all SSL_read()
  15634. // and SSL_write() calls, good for nbio debuging :-)
  15635. debug : TIdC_INT;
  15636. // extra application data
  15637. verify_result : TIdC_LONG;
  15638. ex_data : CRYPTO_EX_DATA;
  15639. // for server side, keep the list of CA_dn we can use
  15640. client_CA : PSTACK_OF_X509_NAME;
  15641. references : TIdC_INT;
  15642. options : TIdC_ULONG; // protocol behaviour
  15643. mode : TIdC_ULONG; // API behaviour
  15644. max_cert_list : TIdC_LONG;
  15645. first_packet : TIdC_INT;
  15646. client_version : TIdC_INT; // what was passed, used for
  15647. // SSLv3/TLS rollback check
  15648. max_send_fragment : TIdC_UINT;
  15649. {$IFNDEF OPENSSL_NO_TLSEXT}
  15650. //* TLS extension debug callback */
  15651. tlsext_debug_cb : PSSL_tlsext_debug_cb;
  15652. tlsext_debug_arg : Pointer;
  15653. tlsext_hostname : PIdAnsiChar;
  15654. servername_done : TIdC_INT; //* no further mod of servername
  15655. // 0 : call the servername extension callback.
  15656. // 1 : prepare 2, allow last ack just after in server callback.
  15657. // 2 : don't call servername callback, no ack in server hello
  15658. //*/
  15659. //* certificate status request info */
  15660. //* Status type or -1 if no status type */
  15661. tlsext_status_type : TIdC_INT;
  15662. //* Expect OCSP CertificateStatus message */
  15663. tlsext_status_expected : TIdC_INT;
  15664. {$ifndef OPENSSL_NO_EC}
  15665. tlsext_ecpointformatlist_length : size_t;
  15666. tlsext_ecpointformatlist : PIdAnsiChar; //* our list */
  15667. tlsext_ellipticcurvelist_length : size_t;
  15668. tlsext_ellipticcurvelist : PIdAnsiChar; //* our list */
  15669. {$endif} //* OPENSSL_NO_EC */
  15670. //* draft-rescorla-tls-opaque-prf-input-00.txt information to be used for handshakes */
  15671. tlsext_opaque_prf_input : Pointer;
  15672. tlsext_opaque_prf_input_len : size_t;
  15673. //* TLS Session Ticket extension override */
  15674. tlsext_session_ticket : PTLS_SESSION_TICKET_EXT;
  15675. //* TLS Session Ticket extension callback */
  15676. tls_session_ticket_ext_cb : tls_session_ticket_ext_cb_fn;
  15677. tls_session_ticket_ext_cb_arg : Pointer;
  15678. //* TLS pre-shared secret session resumption */
  15679. tls_session_secret_cb : tls_session_secret_cb_fn;
  15680. tls_session_secret_cb_arg : Pointer;
  15681. initial_ctx : PSSL_CTX; //* initial ctx, used to store sessions */
  15682. {$ifndef OPENSSL_NO_NEXTPROTONEG}
  15683. ///* Next protocol negotiation. For the client, this is the protocol that
  15684. // * we sent in NextProtocol and is set when handling ServerHello
  15685. // * extensions.
  15686. // *
  15687. // * For a server, this is the client's selected_protocol from
  15688. // * NextProtocol and is set when handling the NextProtocol message,
  15689. // * before the Finished message. */
  15690. next_proto_negotiated : PIdAnsiChar;
  15691. next_proto_negotiated_len : Byte;
  15692. {$endif}
  15693. //* OCSP status request only */
  15694. tlsext_ocsp_ids : PSTACK_OF_OCSP_RESPID;//STACK_OF(OCSP_RESPID) *tlsext_ocsp_ids;
  15695. tlsext_ocsp_exts : PX509_EXTENSIONS;
  15696. //* OCSP response received or to be sent */
  15697. tlsext_ocsp_resp : PIdAnsiChar;
  15698. tlsext_ocsp_resplen : TIdC_INT;
  15699. //* RFC4507 session ticket expected to be received or sent */
  15700. tlsext_ticket_expected : TIdC_INT;
  15701. _initial_ctx : PSSL_CTX; //* initial ctx, used to store sessions */
  15702. {$DEFINE session_ctx}
  15703. {$DEFINE initial_ctx}
  15704. {$ELSE}
  15705. {$DEFINE ctx}
  15706. {$DEFINE session_ctx}
  15707. {$ENDIF}
  15708. end;
  15709. //ssl2.h
  15710. {$EXTERNALSYM SSL2_STATE}
  15711. SSL2_STATE = record
  15712. three_byte_header : TIdC_INT;
  15713. clear_text : TIdC_INT; // clear text
  15714. escape : TIdC_INT; // not used in SSLv2
  15715. ssl2_rollback : TIdC_INT; // used if SSLv23 rolled back to SSLv2
  15716. // non-blocking io info, used to make sure the same
  15717. // args were passwd
  15718. wnum : TIdC_UINT; // number of bytes sent so far
  15719. wpend_tot : TIdC_INT;
  15720. wpend_buf : PByte;
  15721. wpend_off : TIdC_INT; // offset to data to write
  15722. wpend_len : TIdC_INT; // number of bytes passwd to write
  15723. wpend_ret : TIdC_INT; // number of bytes to return to caller
  15724. // buffer raw data
  15725. rbuf_left : TIdC_INT;
  15726. rbuf_offs : TIdC_INT;
  15727. rbuf : PIdAnsiChar;
  15728. wbuf : PIdAnsiChar;
  15729. write_ptr : PIdAnsiChar; // used to point to the start due to 2/3 byte header. */
  15730. padding : TIdC_UINT;
  15731. rlength : TIdC_UINT; // passed to ssl2_enc
  15732. ract_data_length : TIdC_INT; // Set when things are encrypted.
  15733. wlength : TIdC_UINT; // passed to ssl2_enc
  15734. wact_data_length : TIdC_INT; // Set when things are decrypted.
  15735. ract_data : PIdAnsiChar;
  15736. wact_data : PIdAnsiChar;
  15737. mac_data : PIdAnsiChar;
  15738. read_key : PIdAnsiChar;
  15739. write_key : PIdAnsiChar;
  15740. // Stuff specifically to do with this SSL session
  15741. challenge_length : TIdC_UINT;
  15742. challenge : array [0..SSL2_MAX_CHALLENGE_LENGTH -1] of TIdAnsiChar;
  15743. conn_id_length : TIdC_UINT;
  15744. conn_id : array [0..SSL2_MAX_CONNECTION_ID_LENGTH -1] of TIdAnsiChar;
  15745. key_material_length : TIdC_UINT;
  15746. key_material : array[0..(SSL2_MAX_KEY_MATERIAL_LENGTH*2)-1] of TIdAnsiChar;
  15747. read_sequence : TIdC_ULONG;
  15748. write_sequence : TIdC_ULONG;
  15749. tmp_conn_id_length : TIdC_UINT;
  15750. tmp_cert_type : TIdC_UINT;
  15751. tmp_cert_length : TIdC_UINT;
  15752. tmp_csl : TIdC_UINT;
  15753. tmp_clear : TIdC_UINT;
  15754. tmp_enc : TIdC_UINT;
  15755. tmp_ccl : array [0..SSL2_MAX_CERT_CHALLENGE_LENGTH -1] of TIdAnsiChar;
  15756. tmp_cipher_spec_length : TIdC_UINT;
  15757. tmp_session_id_length : TIdC_UINT;
  15758. tmp_clen : TIdC_UINT;
  15759. tmp_rlen : TIdC_UINT;
  15760. end;
  15761. //sl3.h
  15762. {$IFNDEF OPENSSL_NO_SSL_INTERN}
  15763. {$EXTERNALSYM PSSL3_RECORD}
  15764. PSSL3_RECORD = ^SSL3_RECORD;
  15765. {$EXTERNALSYM SSL3_RECORD}
  15766. SSL3_RECORD = record
  15767. {*r *} _type : TIdC_INT; // type of record
  15768. {*rw*} length : TIdC_UINT; // How many bytes available
  15769. {*r *} off : TIdC_UINT; // read/write offset into 'buf'
  15770. {*rw*} data : PIdAnsiChar; // pointer to the record data
  15771. {*rw*} input : PIdAnsiChar; // where the decode bytes are
  15772. {*r *} comp : PIdAnsiChar; // only used with decompression - malloc()ed
  15773. {*r *} epoch : TIdC_ULONG; // epoch number, needed by DTLS1
  15774. {*r *} seq_num : array [0..7] of Byte; //* sequence number, needed by DTLS1 */
  15775. end;
  15776. {$EXTERNALSYM PSSL3_BUFFER}
  15777. PSSL3_BUFFER = ^SSL3_BUFFER;
  15778. {$EXTERNALSYM SSL3_BUFFER}
  15779. SSL3_BUFFER = record
  15780. buf : PIdAnsiChar; // at least SSL3_RT_MAX_PACKET_SIZE bytes,
  15781. // see ssl3_setup_buffers()
  15782. len : size_t; // buffer size
  15783. offset : TIdC_INT; // where to 'copy from'
  15784. left : TIdC_INT; // how many bytes left
  15785. end;
  15786. {$EXTERNALSYM SSL3_STATE}
  15787. SSL3_STATE = record
  15788. flags : TIdC_LONG;
  15789. delay_buf_pop_ret : TIdC_INT;
  15790. read_sequence : array [0..7] of TIdAnsiChar;
  15791. read_mac_secret_size : TIdC_INT;
  15792. read_mac_secret : array [0..EVP_MAX_MD_SIZE -1] of TIdAnsiChar;
  15793. write_sequence : array [0..7] of TIdAnsiChar;
  15794. write_mac_secret_size : TIdC_INT;
  15795. write_mac_secret : array [0..EVP_MAX_MD_SIZE - 1] of TIdAnsiChar;
  15796. server_random : array [0..SSL3_RANDOM_SIZE - 1] of TIdAnsiChar;
  15797. client_random : array [0..SSL3_RANDOM_SIZE -1] of TIdAnsiChar;
  15798. // flags for countermeasure against known-IV weakness
  15799. need_empty_fragments : TIdC_INT;
  15800. empty_fragment_done : TIdC_INT;
  15801. //* The value of 'extra' when the buffers were initialized */
  15802. init_extra : TIdC_INT;
  15803. rbuf : PSSL3_BUFFER; //* read IO goes into here */
  15804. wbuf : PSSL3_BUFFER; //* write IO goes into here */
  15805. rrec : PSSL3_RECORD; //* each decoded record goes in here */
  15806. wrec : PSSL3_RECORD; //* goes out from here */
  15807. // storage for Alert/Handshake protocol data received but not
  15808. // yet processed by ssl3_read_bytes:
  15809. alert_fragment : array [0..1] of PIdAnsiChar;
  15810. alert_fragment_len : TIdC_UINT;
  15811. handshake_fragment : array [0..3] of PIdAnsiChar;
  15812. handshake_fragment_len : TIdC_UINT;
  15813. // partial write - check the numbers match
  15814. wnum : TIdC_UINT; // number of bytes sent so far
  15815. wpend_tot : TIdC_INT; // number bytes written
  15816. wpend_type : TIdC_INT;
  15817. wpend_ret : TIdC_INT; // number of bytes submitted
  15818. wpend_buf : PByte;
  15819. // used during startup, digest all incoming/outgoing packets */
  15820. handshake_buffer : PBIO;
  15821. //* When set of handshake digests is determined, buffer is hashed
  15822. // * and freed and MD_CTX-es for all required digests are stored in
  15823. // * this array */
  15824. handshake_dgst : PPEVP_MD_CTX;
  15825. finish_dgst2 : PEVP_MD_CTX;
  15826. // this is set whenerver we see a change_cipher_spec message
  15827. // come in when we are not looking for one
  15828. change_cipher_spec : TIdC_INT;
  15829. warn_alert : TIdC_INT;
  15830. fatal_alert : TIdC_INT;
  15831. // we allow one fatal and one warning alert to be outstanding,
  15832. // send close alert via the warning alert */
  15833. alert_dispatch : TIdC_INT;
  15834. send_alert : array [0..1] of TIdAnsiChar;
  15835. // This flag is set when we should renegotiate ASAP, basically when
  15836. // there is no more data in the read or write buffers
  15837. renegotiate : TIdC_INT;
  15838. total_renegotiations : TIdC_INT;
  15839. num_renegotiations : TIdC_INT;
  15840. in_read_app_data : TIdC_INT;
  15841. //* Opaque PRF input as used for the current handshake.
  15842. // * These fields are used only if TLSEXT_TYPE_opaque_prf_input is defined
  15843. // * (otherwise, they are merely present to improve binary compatibility) */
  15844. client_opaque_prf_input : Pointer;
  15845. client_opaque_prf_input_len : size_t;
  15846. server_opaque_prf_input : Pointer;
  15847. server_opaque_prf_input_len : size_t;
  15848. // actually only needs to be 16+20
  15849. tmp_cert_verify_md: array [0..(EVP_MAX_MD_SIZE*2)-1] of TIdAnsiChar;
  15850. // actually only need to be 16+20 for SSLv3 and 12 for TLS
  15851. tmp_finish_md : array[0..(EVP_MAX_MD_SIZE*2)-1] of TIdAnsiChar;
  15852. tmp_finish_md_len : TIdC_INT;
  15853. tmp_peer_finish_md : array[0..(EVP_MAX_MD_SIZE*2)-1] of TIdAnsiChar;
  15854. tmp_peer_finish_md_len : TIdC_INT;
  15855. tmp_message_size : TIdC_UINT;
  15856. tmp_message_type : TIdC_INT;
  15857. // used to hold the new cipher we are going to use
  15858. tmp_new_cipher : PSSL_CIPHER;
  15859. {$IFNDEF OPENSSL_NO_DH}
  15860. tmp_dh : PDH;
  15861. {$ENDIF}
  15862. {$IFNDEF OPENSSL_NO_ECDH}
  15863. tmp_ecdh : PEC_KEY; // holds short lived ECDH key
  15864. {$ENDIF}
  15865. // used when SSL_ST_FLUSH_DATA is entered
  15866. tmp_next_state : TIdC_INT;
  15867. tmp_reuse_message : TIdC_INT;
  15868. // used for certificate requests
  15869. tmp_cert_req : TIdC_INT;
  15870. tmp_ctype_num : TIdC_INT;
  15871. tmp_ctype : array [0..SSL3_CT_NUMBER -1] of TIdAnsiChar;
  15872. tmp_ca_names : PSTACK_OF_X509_NAME;
  15873. tmp_use_rsa_tmp : TIdC_INT;
  15874. tmp_key_block_length : TIdC_INT;
  15875. tmp_key_block : PIdAnsiChar;
  15876. tmp_new_sym_enc : PEVP_CIPHER;
  15877. tmp_new_hash : PEVP_MD;
  15878. new_mac_pkey_type : TIdC_INT;
  15879. new_mac_secret_size : TIdC_INT;
  15880. {$IFNDEF OPENSSL_NO_COMP}
  15881. tmp_new_compression : PSSL_COMP;
  15882. {$ELSE}
  15883. tmp_new_compression : PIdAnsiChar;
  15884. {$ENDIF}
  15885. tmp_cert_request : TIdC_INT;
  15886. //* Connection binding to prevent renegotiation attacks */
  15887. previous_client_finished : array [0..EVP_MAX_MD_SIZE - 1] of TIdAnsiChar;
  15888. previous_client_finished_len : Byte;
  15889. previous_server_finished : array [0..EVP_MAX_MD_SIZE - 1] of TIdAnsiChar;
  15890. previous_server_finished_len : Byte;
  15891. send_connection_binding : TIdC_INT; //* TODOEKR */
  15892. {$ifndef OPENSSL_NO_NEXTPROTONEG}
  15893. //* Set if we saw the Next Protocol Negotiation extension from our peer. */
  15894. next_proto_neg_seen : TIdC_INT;
  15895. {$endif}
  15896. end;
  15897. {$ENDIF}
  15898. //openssl/pq_compat.h
  15899. {$EXTERNALSYM ppitem}
  15900. ppitem = ^pitem;
  15901. {$EXTERNALSYM pitem}
  15902. pitem = record
  15903. priority : PQ_64BIT;
  15904. data : Pointer;
  15905. next : ppitem;
  15906. end;
  15907. //ssl/dtls1.h
  15908. //for some reason, this header is refering to crypto/pqueue/pqueue.c
  15909. //which is in the OpenSSL headers.
  15910. {$EXTERNALSYM pqueue}
  15911. pqueue = record
  15912. items : ppitem;
  15913. count : TIdC_INT;
  15914. end;
  15915. //
  15916. {$EXTERNALSYM dtls1_retransmit_state}
  15917. dtls1_retransmit_state = record
  15918. enc_write_ctx : PEVP_CIPHER_CTX; //* cryptographic state */
  15919. write_hash : PEVP_MD; //* used for mac generation */
  15920. {$IFNDEF OPENSSL_NO_COMP}
  15921. compress : COMP_CTX; //* compression */
  15922. {$ELSE}
  15923. compress : PIdAnsiChar;
  15924. {$ENDIF}
  15925. session : PSSL_SESSION;
  15926. epoch : TIdC_USHORT;
  15927. end;
  15928. {$EXTERNALSYM Pdtls1_retransmit_state}
  15929. Pdtls1_retransmit_state = ^dtls1_retransmit_state;
  15930. {$EXTERNALSYM DTLS1_BITMAP}
  15931. DTLS1_BITMAP = record
  15932. map : PQ_64BIT;
  15933. length : TIdC_ULONG; // sizeof the bitmap in bits
  15934. max_seq_num : PQ_64BIT; // max record number seen so far
  15935. end;
  15936. {$EXTERNALSYM PDTLS1_BITMAP}
  15937. PDTLS1_BITMAP = ^DTLS1_BITMAP;
  15938. {$EXTERNALSYM hm_header}
  15939. hm_header = record
  15940. _type : PIdAnsiChar;
  15941. msg_len : TIdC_ULONG;
  15942. seq : TIdC_USHORT;
  15943. frag_off : TIdC_ULONG;
  15944. frag_len : TIdC_ULONG;
  15945. is_ccs : TIdC_UINT;
  15946. // struct dtls1_retransmit_state saved_retransmit_state;
  15947. saved_retransmit_state : dtls1_retransmit_state;
  15948. end;
  15949. {$EXTERNALSYM ccs_header_st}
  15950. ccs_header_st = record
  15951. _type : PIdAnsiChar;
  15952. seq : TIdC_USHORT;
  15953. end;
  15954. {$EXTERNALSYM dtls1_timeout_st}
  15955. dtls1_timeout_st = record
  15956. // Number of read timeouts so far
  15957. read_timeouts : TIdC_UINT;
  15958. // Number of write timeouts so far
  15959. write_timeouts : TIdC_UINT;
  15960. // Number of alerts received so far
  15961. num_alerts : TIdC_UINT;
  15962. end;
  15963. {$EXTERNALSYM record_pqueue}
  15964. record_pqueue = record
  15965. epoch : TIdC_USHORT;
  15966. q : pqueue;
  15967. end;
  15968. {$EXTERNALSYM hm_fragment}
  15969. hm_fragment = record
  15970. msg_header : hm_header;
  15971. fragment : PIdAnsiChar;
  15972. reassembly : PIdAnsiChar;
  15973. end;
  15974. {$EXTERNALSYM DTLS1_STATE}
  15975. DTLS1_STATE = record
  15976. send_cookie : TIdC_UINT;
  15977. cookie : array [0..DTLS1_COOKIE_LENGTH - 1 ] of TIdAnsiChar;
  15978. rcvd_cookie : array [0..DTLS1_COOKIE_LENGTH -1] of TIdAnsiChar;
  15979. cookie_len : TIdC_UINT;
  15980. // The current data and handshake epoch. This is initially
  15981. // undefined, and starts at zero once the initial handshake is
  15982. // completed
  15983. r_epoch : TIdC_USHORT;
  15984. w_epoch : TIdC_USHORT;
  15985. // records being received in the current epoch
  15986. bitmap : DTLS1_BITMAP;
  15987. // renegotiation starts a new set of sequence numbers
  15988. next_bitmap : DTLS1_BITMAP;
  15989. // handshake message numbers
  15990. handshake_write_seq : TIdC_USHORT;
  15991. next_handshake_write_seq : TIdC_USHORT;
  15992. handshake_read_seq : TIdC_USHORT;
  15993. //* save last sequence number for retransmissions */
  15994. last_write_sequence : array [0..8-1] of byte;
  15995. // Received handshake records (processed and unprocessed)
  15996. unprocessed_rcds : record_pqueue;
  15997. processed_rcds : record_pqueue;
  15998. // Buffered handshake messages
  15999. buffered_messages : pqueue;
  16000. // Buffered (sent) handshake records
  16001. sent_messages : pqueue;
  16002. ///* Buffered application records.
  16003. //* Only for records between CCS and Finished
  16004. //* to prevent either protocol violation or
  16005. //* unnecessary message loss.
  16006. //*/
  16007. buffered_app_data : record_pqueue;
  16008. ///* Is set when listening for new connections with dtls1_listen() */
  16009. listen : TIdC_UINT;
  16010. mtu : TIdC_UINT; // max wire packet size
  16011. w_msg_hdr : hm_header;
  16012. r_msg_hdr : hm_header;
  16013. timeout : dtls1_timeout_st;
  16014. //* Indicates when the last handshake msg sent will timeout */
  16015. next_timeout : timeval;
  16016. //* Timeout duration */
  16017. timeout_duration : TIdC_USHORT;
  16018. // storage for Alert/Handshake protocol data received but not
  16019. // yet processed by ssl3_read_bytes:
  16020. alert_fragment : array [0..DTLS1_AL_HEADER_LENGTH-1] of TIdAnsiChar;
  16021. alert_fragment_len : TIdC_UINT;
  16022. handshake_fragment : array[0..DTLS1_HM_HEADER_LENGTH -1] of TIdAnsiChar;
  16023. handshake_fragment_len : TIdC_UINT;
  16024. retransmitting : TIdC_UINT;
  16025. change_cipher_spec_ok : TIdC_UINT;
  16026. end;
  16027. {$EXTERNALSYM X509V3_CTX}
  16028. X509V3_CTX = V3_EXT_CTX;
  16029. {$EXTERNALSYM PX509V3_CTX}
  16030. PX509V3_CTX = ^X509V3_CTX;
  16031. type
  16032. {$EXTERNALSYM Tsk_new_cmp}
  16033. Tsk_new_cmp = function (const a, b : PIdAnsiChar; const c : PIdAnsiChar) : TIdC_INT cdecl;
  16034. {$EXTERNALSYM TRSA_generate_key_callback}
  16035. TRSA_generate_key_callback = procedure (p1, p2 : TIdC_INT; p3 : Pointer); cdecl;
  16036. {$EXTERNALSYM TCRYPTO_set_mem_functions_m}
  16037. TCRYPTO_set_mem_functions_m = function (size : size_t) : Pointer; cdecl;
  16038. {$EXTERNALSYM TCRYPTO_set_mem_functions_r}
  16039. TCRYPTO_set_mem_functions_r = function (ptr : Pointer; size : size_t) : Pointer; cdecl;
  16040. {$EXTERNALSYM TCRYPTO_set_mem_functions_f}
  16041. TCRYPTO_set_mem_functions_f = procedure (ptr : Pointer); cdecl;
  16042. {$EXTERNALSYM TCRYPTO_set_mem_ex_functions_m}
  16043. TCRYPTO_set_mem_ex_functions_m = function(size : size_t; const c : PIdAnsiChar; i : TIdC_INT) : Pointer; cdecl;
  16044. {$EXTERNALSYM TCRYPTO_set_mem_ex_functions_r}
  16045. TCRYPTO_set_mem_ex_functions_r = function(ptr : Pointer; size : size_t; const c : PIdAnsiChar; i : TIdC_INT) : Pointer; cdecl;
  16046. {$EXTERNALSYM TCRYPTO_set_mem_ex_functions_f}
  16047. TCRYPTO_set_mem_ex_functions_f = procedure (ptr : Pointer); cdecl;
  16048. {$EXTERNALSYM Tset_mem_debug_functions_m}
  16049. Tset_mem_debug_functions_m = procedure (addr : Pointer; num : TIdC_INT; const _file : PIdAnsiChar; line, before_p : TIdC_INT); cdecl;
  16050. {$EXTERNALSYM Tset_mem_debug_functions_r}
  16051. Tset_mem_debug_functions_r = procedure (addr1, addr2 : Pointer; num : TIdC_INT; const _file : PIdAnsiChar; line, before_p : TIdC_INT); cdecl;
  16052. {$EXTERNALSYM Tset_mem_debug_functions_f}
  16053. Tset_mem_debug_functions_f = procedure (addr : Pointer; before_p : TIdC_INT); cdecl;
  16054. {$EXTERNALSYM Tset_mem_debug_functions_so}
  16055. Tset_mem_debug_functions_so = procedure (bits : TIdC_LONG); cdecl;
  16056. {$EXTERNALSYM Tset_mem_debug_functions_go}
  16057. Tset_mem_debug_functions_go = function : TIdC_LONG; cdecl;
  16058. {$EXTERNALSYM TSSL_CTX_set_verify_callback}
  16059. TSSL_CTX_set_verify_callback = function (ok : TIdC_INT; ctx : PX509_STORE_CTX) : TIdC_INT; cdecl;
  16060. {$EXTERNALSYM Tsk_pop_free_func}
  16061. Tsk_pop_free_func = procedure (p : Pointer); cdecl;
  16062. {$EXTERNALSYM SSL_callback_ctrl_fp}
  16063. SSL_callback_ctrl_fp = procedure (para1 : PBIO; para2 : TIdC_INT;
  16064. para3 : PIdAnsiChar; para4 : TIdC_INT; para5, para6 : TIdC_LONG); cdecl;
  16065. {$EXTERNALSYM TCRYPTO_THREADID_set_callback_threadid_func}
  16066. TCRYPTO_THREADID_set_callback_threadid_func = procedure (id : PCRYPTO_THREADID) cdecl;
  16067. {$EXTERNALSYM TSSL_CTX_set_tlsext_status_cb}
  16068. TSSL_CTX_set_tlsext_status_cb = function(SSL : PSSL; Arg : Pointer) : TIdC_INT cdecl;
  16069. {$EXTERNALSYM TSSL_CTX_set_tlsext_opaque_prf_input_callback_cb}
  16070. TSSL_CTX_set_tlsext_opaque_prf_input_callback_cb = function(ssl : PSSL; peerinput : Pointer; len : size_t; arg : Pointer) : TIdC_INT cdecl;
  16071. {$EXTERNALSYM TSSL_CTX_set_tlsext_ticket_key_cb_fp}
  16072. TSSL_CTX_set_tlsext_ticket_key_cb_fp = function(SSL : PSSL; keyname, iv : PIdAnsiChar; ctx : PEVP_CIPHER_CTX; hctx : PHMAC_CTX; enc : TIdC_INT) : TIdC_INT cdecl;
  16073. {$EXTERNALSYM EVP_CIPHER_do_all_fn}
  16074. EVP_CIPHER_do_all_fn = procedure(ciph : PEVP_CIPHER;
  16075. from : PIdAnsiChar; _to : PIdAnsiChar; x : Pointer) cdecl;
  16076. {$EXTERNALSYM EVP_MD_do_all_fn}
  16077. EVP_MD_do_all_fn = procedure(ciph : PEVP_CIPHER;
  16078. from: PIdAnsiChar; _to: PIdAnsiChar; x : Pointer) cdecl;
  16079. {$EXTERNALSYM EVP_PKEY_asn1_set_public_pub_decode}
  16080. EVP_PKEY_asn1_set_public_pub_decode = function(pk : PEVP_PKEY; pub : PX509_PUBKEY) : TIdC_INT cdecl;
  16081. {$EXTERNALSYM EVP_PKEY_asn1_set_public_pub_encode}
  16082. EVP_PKEY_asn1_set_public_pub_encode = function(pub : PX509_PUBKEY; pk : PX509_PUBKEY) : TIdC_INT cdecl;
  16083. {$EXTERNALSYM EVP_PKEY_asn1_set_public_pub_cmp}
  16084. EVP_PKEY_asn1_set_public_pub_cmp = function (a : PEVP_PKEY; b : PEVP_PKEY) : TIdC_INT cdecl;
  16085. {$EXTERNALSYM EVP_PKEY_asn1_set_public_pub_print}
  16086. EVP_PKEY_asn1_set_public_pub_print = function(_out : PBIO; pkey : PEVP_PKEY; indent : TIdC_INT;
  16087. pctx : PASN1_PCTX) : TIdC_INT cdecl;
  16088. {$EXTERNALSYM EVP_PKEY_asn1_set_public_pub_pkey_size}
  16089. EVP_PKEY_asn1_set_public_pub_pkey_size = function(pk : PEVP_PKEY) : TIdC_INT cdecl;
  16090. {$EXTERNALSYM EVP_PKEY_asn1_set_public_pkey_bits}
  16091. EVP_PKEY_asn1_set_public_pkey_bits = function(pk : PEVP_PKEY) : TIdC_INT cdecl;
  16092. {$EXTERNALSYM EVP_PKEY_asn1_set_private_priv_decode}
  16093. EVP_PKEY_asn1_set_private_priv_decode = function (pk : PEVP_PKEY; p8inf : PPKCS8_PRIV_KEY_INFO) : TIdC_INT cdecl;
  16094. {$EXTERNALSYM EVP_PKEY_asn1_set_private_priv_encode}
  16095. EVP_PKEY_asn1_set_private_priv_encode = function (p8 : PPKCS8_PRIV_KEY_INFO; pk : PEVP_PKEY): TIdC_INT cdecl;
  16096. {$EXTERNALSYM EVP_PKEY_asn1_set_private_priv_print}
  16097. EVP_PKEY_asn1_set_private_priv_print = function (_out : PBIO; pkey : PEVP_PKEY; indent : TIdC_INT;
  16098. pctx : PASN1_PCTX) : TIdC_INT cdecl;
  16099. {$EXTERNALSYM EVP_PKEY_asn1_set_param_param_decode}
  16100. EVP_PKEY_asn1_set_param_param_decode = function(pkey : PEVP_PKEY;
  16101. pder : PPIdAnsiChar; derlen : TIdC_INT): TIdC_INT cdecl;
  16102. {$EXTERNALSYM EVP_PKEY_asn1_set_param_param_encode}
  16103. EVP_PKEY_asn1_set_param_param_encode = function(pkey : PEVP_PKEY; pder : PPIdAnsiChar) : TIdC_INT cdecl;
  16104. {$EXTERNALSYM EVP_PKEY_asn1_set_param_param_missing}
  16105. EVP_PKEY_asn1_set_param_param_missing = function(pk : EVP_PKEY) : TIdC_INT cdecl;
  16106. {$EXTERNALSYM EVP_PKEY_asn1_set_param_param_copy}
  16107. EVP_PKEY_asn1_set_param_param_copy = function(_to : PEVP_PKEY; from : PEVP_PKEY) : TIdC_INT cdecl;
  16108. {$EXTERNALSYM EVP_PKEY_asn1_set_param_param_cmp}
  16109. EVP_PKEY_asn1_set_param_param_cmp = function(a : PEVP_PKEY; b : PEVP_PKEY): TIdC_INT cdecl;
  16110. {$EXTERNALSYM EVP_PKEY_asn1_set_param_param_print}
  16111. EVP_PKEY_asn1_set_param_param_print = function(_out : PBIO; pkey : PEVP_PKEY; indent : TIdC_INT;
  16112. pctx : PASN1_PCTX) : TIdC_INT cdecl;
  16113. {$EXTERNALSYM EVP_PKEY_asn1_set_free_pkey_free}
  16114. EVP_PKEY_asn1_set_free_pkey_free = procedure(pkey : PEVP_PKEY) cdecl;
  16115. {$EXTERNALSYM EVP_PKEY_asn1_set_ctr_pkey_ctrl}
  16116. EVP_PKEY_asn1_set_ctr_pkey_ctrl = function(pkey : PEVP_PKEY; op : TIdC_INT;
  16117. arg1 : TIdC_LONG; arg2 : Pointer) : TIdC_INT cdecl;
  16118. {$EXTERNALSYM EVP_PKEY_gen_cb}
  16119. EVP_PKEY_gen_cb = function( ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16120. {$EXTERNALSYM EVP_PKEY_meth_set_init_init}
  16121. EVP_PKEY_meth_set_init_init = function (ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16122. {$EXTERNALSYM EVP_PKEY_meth_set_copy_copy}
  16123. EVP_PKEY_meth_set_copy_copy = function (dst : PEVP_PKEY_CTX; src : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16124. {$EXTERNALSYM EVP_PKEY_meth_set_cleanup_cleanup}
  16125. EVP_PKEY_meth_set_cleanup_cleanup = procedure(ctx : PEVP_PKEY_CTX) cdecl;
  16126. {$EXTERNALSYM EVP_PKEY_meth_set_paramgen_paramgen_init}
  16127. EVP_PKEY_meth_set_paramgen_paramgen_init = function (ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16128. {$EXTERNALSYM EVP_PKEY_meth_set_paramgen_paramgen}
  16129. EVP_PKEY_meth_set_paramgen_paramgen = function (ctx : PEVP_PKEY_CTX; pkey : PEVP_PKEY) : TIdC_INT cdecl;
  16130. {$EXTERNALSYM EVP_PKEY_meth_set_keygen_keygen_init}
  16131. EVP_PKEY_meth_set_keygen_keygen_init = function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16132. {$EXTERNALSYM EVP_PKEY_meth_set_keygen_keygen}
  16133. EVP_PKEY_meth_set_keygen_keygen = function(ctx : PEVP_PKEY_CTX; pkey : PEVP_PKEY) : TIdC_INT cdecl;
  16134. {$EXTERNALSYM EVP_PKEY_meth_set_sign_sign_init}
  16135. EVP_PKEY_meth_set_sign_sign_init = function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16136. {$EXTERNALSYM EVP_PKEY_meth_set_sign_sign}
  16137. EVP_PKEY_meth_set_sign_sign = function(ctx : PEVP_PKEY_CTX; sig : PIdAnsiChar; siglen : Psize_t;
  16138. tbs : PIdAnsiChar; tbslen : size_t) : TIdC_INT cdecl;
  16139. {$EXTERNALSYM EVP_PKEY_meth_set_verify_verify_init}
  16140. EVP_PKEY_meth_set_verify_verify_init = function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16141. {$EXTERNALSYM EVP_PKEY_meth_set_verify_verify}
  16142. EVP_PKEY_meth_set_verify_verify = function(ctx : PEVP_PKEY_CTX; sig : PIdAnsiChar; siglen : size_t;
  16143. tbs : PIdAnsiChar; tbslen : size_t) : TIdC_INT cdecl;
  16144. {$EXTERNALSYM EVP_PKEY_meth_set_verify_recover_verify_recover_init}
  16145. EVP_PKEY_meth_set_verify_recover_verify_recover_init = function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16146. {$EXTERNALSYM EVP_PKEY_meth_set_verify_recover_verify_recover}
  16147. EVP_PKEY_meth_set_verify_recover_verify_recover = function(ctx : PEVP_PKEY_CTX;
  16148. sig : PIdAnsiChar; siglen : Psize_t;
  16149. tbs: PIdAnsiChar; tbslen : size_t) : TIdC_INT cdecl;
  16150. {$EXTERNALSYM EVP_PKEY_meth_set_signctx_signctx_init}
  16151. EVP_PKEY_meth_set_signctx_signctx_init = function(ctx : PEVP_PKEY_CTX; mctx : PEVP_MD_CTX) : TIdC_INT cdecl;
  16152. {$EXTERNALSYM EVP_PKEY_meth_set_signctx_signctx}
  16153. EVP_PKEY_meth_set_signctx_signctx = function(ctx : PEVP_PKEY_CTX; sig : PIdAnsiChar; siglen : size_t;
  16154. mctx : PEVP_MD_CTX) : TIdC_INT cdecl;
  16155. {$EXTERNALSYM EVP_PKEY_meth_set_verifyctx_verifyctx_init}
  16156. EVP_PKEY_meth_set_verifyctx_verifyctx_init = function : TIdC_INT cdecl;
  16157. {$EXTERNALSYM EVP_PKEY_meth_set_verifyctx_verifyctx}
  16158. EVP_PKEY_meth_set_verifyctx_verifyctx = function : TIdC_INT cdecl;
  16159. {$EXTERNALSYM EVP_PKEY_meth_set_encrypt_encrypt_init}
  16160. EVP_PKEY_meth_set_encrypt_encrypt_init = function( ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16161. {$EXTERNALSYM EVP_PKEY_meth_set_encrypt_encryptfn}
  16162. EVP_PKEY_meth_set_encrypt_encryptfn = function(ctx : PEVP_PKEY_CTX; _out : PIdAnsiChar; outlen : psize_t;
  16163. _in : PIdAnsiChar; inlen : size_t) : TIdC_INT cdecl;
  16164. {$EXTERNALSYM EVP_PKEY_meth_set_decrypt_decrypt_init}
  16165. EVP_PKEY_meth_set_decrypt_decrypt_init = function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16166. {$EXTERNALSYM EVP_PKEY_meth_set_decrypt_decrypt}
  16167. EVP_PKEY_meth_set_decrypt_decrypt = function(ctx : PEVP_PKEY_CTX; _out : PIdAnsiChar; outlen : psize_t;
  16168. _in : PIdAnsiChar; inlen : size_t) : TIdC_INT cdecl;
  16169. {$EXTERNALSYM EVP_PKEY_meth_set_derive_derive_init}
  16170. EVP_PKEY_meth_set_derive_derive_init = function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  16171. {$EXTERNALSYM EVP_PKEY_meth_set_derive_derive}
  16172. EVP_PKEY_meth_set_derive_derive = function (ctx : PEVP_PKEY_CTX; key : PIdAnsiChar; keylen : psize_t) : TIdC_INT cdecl;
  16173. {$EXTERNALSYM EVP_PKEY_meth_set_ctrl_ctrl}
  16174. EVP_PKEY_meth_set_ctrl_ctrl = function(ctx : PEVP_PKEY_CTX; _type : TIdC_INT; p1 : TIdC_INT; p2 : Pointer) : TIdC_INT cdecl;
  16175. {$EXTERNALSYM EVP_PKEY_meth_set_ctrlctrl_str}
  16176. EVP_PKEY_meth_set_ctrlctrl_str = function(ctx : PEVP_PKEY_CTX;
  16177. _type : PIdAnsiChar; value : PIdAnsiChar) : TIdC_INT cdecl;
  16178. var
  16179. {$EXTERNALSYM OpenSSL_add_all_algorithms}
  16180. OpenSSL_add_all_algorithms : procedure cdecl = nil;
  16181. {$EXTERNALSYM OpenSSL_add_all_ciphers}
  16182. OpenSSL_add_all_ciphers : procedure cdecl = nil;
  16183. {$EXTERNALSYM OpenSSL_add_all_digests}
  16184. OpenSSL_add_all_digests : procedure cdecl = nil;
  16185. {$EXTERNALSYM EVP_cleanup}
  16186. EVP_cleanup : procedure cdecl = nil;
  16187. //SSL Version function
  16188. {$EXTERNALSYM _SSLeay_version}
  16189. _SSLeay_version : function(_type : TIdC_INT) : PIdAnsiChar cdecl = nil;
  16190. //SSLeay
  16191. {$EXTERNALSYM SSLeay}
  16192. SSLeay : function : TIdC_ULONG cdecl = nil;
  16193. {$EXTERNALSYM _CRYPTO_lock}
  16194. _CRYPTO_lock : procedure(mode, _type : TIdC_INT; const _file : PIdAnsiChar; line : TIdC_INT) cdecl = nil;
  16195. //CRYPTO_set_mem_ex_functions
  16196. {$EXTERNALSYM CRYPTO_set_mem_functions}
  16197. CRYPTO_set_mem_functions : function(
  16198. m: TCRYPTO_set_mem_functions_m;
  16199. r: TCRYPTO_set_mem_functions_r;
  16200. f: TCRYPTO_set_mem_functions_f): TIdC_INT cdecl = nil;
  16201. {$EXTERNALSYM CRYPTO_malloc}
  16202. CRYPTO_malloc : function(num: TIdC_INT; const _file: PIdAnsiChar; line: TIdC_INT): Pointer cdecl = nil;
  16203. {$EXTERNALSYM CRYPTO_free}
  16204. CRYPTO_free : procedure(ptr : Pointer) cdecl = nil;
  16205. {$EXTERNALSYM CRYPTO_mem_leaks}
  16206. CRYPTO_mem_leaks : procedure(b:PBIO) cdecl = nil;
  16207. {$EXTERNALSYM CRYPTO_mem_ctrl}
  16208. CRYPTO_mem_ctrl : function(mode: TIdC_INT): TIdC_INT cdecl = nil;
  16209. {$EXTERNALSYM CRYPTO_set_mem_debug_functions}
  16210. CRYPTO_set_mem_debug_functions : procedure (
  16211. m: Tset_mem_debug_functions_m;
  16212. r: Tset_mem_debug_functions_r;
  16213. f : Tset_mem_debug_functions_f;
  16214. so : Tset_mem_debug_functions_so;
  16215. go : Tset_mem_debug_functions_go) cdecl = nil;
  16216. {$EXTERNALSYM CRYPTO_dbg_malloc}
  16217. CRYPTO_dbg_malloc : procedure(addr: Pointer; num: TIdC_INT; const _file: PIdAnsiChar; line, before: TIdC_INT) cdecl = nil;
  16218. {$EXTERNALSYM CRYPTO_dbg_realloc}
  16219. CRYPTO_dbg_realloc : procedure(arrd1, addr2: Pointer; num: TIdC_INT; const _file: PIdAnsiChar; line, before: TIdC_INT) cdecl = nil;
  16220. {$EXTERNALSYM CRYPTO_dbg_free}
  16221. CRYPTO_dbg_free : procedure(addr: Pointer; before: TIdC_INT) cdecl = nil;
  16222. {$EXTERNALSYM CRYPTO_dbg_set_options}
  16223. CRYPTO_dbg_set_options : procedure(bits: TIdC_LONG) cdecl = nil;
  16224. {$EXTERNALSYM CRYPTO_dbg_get_options}
  16225. CRYPTO_dbg_get_options : function: TIdC_LONG cdecl = nil;
  16226. {$EXTERNALSYM CRYPTO_THREADID_set_numeric}
  16227. CRYPTO_THREADID_set_numeric : procedure(id : PCRYPTO_THREADID; val : TIdC_ULONG) cdecl = nil;
  16228. {$EXTERNALSYM CRYPTO_THREADID_set_pointer}
  16229. CRYPTO_THREADID_set_pointer : procedure(id : PCRYPTO_THREADID; ptr : Pointer) cdecl = nil;
  16230. {$EXTERNALSYM CRYPTO_THREADID_set_callback}
  16231. CRYPTO_THREADID_set_callback : function(threadid_func : TCRYPTO_THREADID_set_callback_threadid_func) : TIdC_INT cdecl = nil;
  16232. {$EXTERNALSYM sk_num}
  16233. sk_num : function (const x : PSTACK) : TIdC_INT cdecl = nil;
  16234. {$EXTERNALSYM sk_value}
  16235. sk_value : function (x : PSTACK; i : TIdC_INT) : PIdAnsiChar cdecl = nil;
  16236. {$EXTERNALSYM sk_new}
  16237. sk_new : function ( cmp : Tsk_new_cmp) : PStack cdecl = nil;
  16238. {$EXTERNALSYM sk_new_null}
  16239. sk_new_null : function: PSTACK cdecl = nil;
  16240. {$EXTERNALSYM sk_free}
  16241. sk_free : procedure (st : PSTACK) cdecl = nil;
  16242. {$EXTERNALSYM sk_push}
  16243. sk_push : function(st: PSTACK; data: PIdAnsiChar): TIdC_INT cdecl = nil;
  16244. {$EXTERNALSYM RSA_new}
  16245. RSA_new: function: PRSA cdecl = nil;
  16246. {$EXTERNALSYM RSA_size}
  16247. RSA_size: function(key: PRSA): TIdC_INT cdecl = nil;
  16248. //This function is depreciated.
  16249. {$EXTERNALSYM RSA_generate_key}
  16250. RSA_generate_key : function(bits: TIdC_INT; e: TIdC_ULONG; callback: TRSA_generate_key_callback; cb_arg: Pointer): PRSA cdecl = nil;
  16251. {$EXTERNALSYM RSA_generate_key_ex}
  16252. RSA_generate_key_ex : function(rsa : PRSA; bits : TIdC_INT; e : PBIGNUM; cb : PBN_GENCB) : TIdC_INT cdecl = nil;
  16253. {$EXTERNALSYM RSA_free}
  16254. RSA_free : procedure(rsa: PRSA) cdecl = nil;
  16255. {$EXTERNALSYM RSA_check_key}
  16256. RSA_check_key : function(const rsa: PRSA): TIdC_INT cdecl = nil;
  16257. {$EXTERNALSYM RSA_private_decrypt}
  16258. RSA_private_decrypt: function(flen: TIdC_INT; from: PByte; _to: PByte; rsa: PRSA; padding: TIdC_INT): TIdC_INT cdecl = nil;
  16259. {$EXTERNALSYM RSA_public_encrypt}
  16260. RSA_public_encrypt: function(flen: TIdC_INT; from: PByte; _to: PByte; rsa: PRSA; padding: TIdC_INT): TIdC_INT cdecl = nil;
  16261. {$EXTERNALSYM X509_get_default_cert_file}
  16262. X509_get_default_cert_file : function : PIdAnsiChar cdecl = nil;
  16263. {$EXTERNALSYM X509_get_default_cert_file_env}
  16264. X509_get_default_cert_file_env : function : PIdAnsiChar cdecl = nil;
  16265. {$EXTERNALSYM BIO_set_flags}
  16266. BIO_set_flags : procedure(b: PBIO; flags: integer) cdecl = nil;
  16267. {$EXTERNALSYM BIO_new}
  16268. BIO_new : function(_type: PBIO_METHOD): PBIO cdecl = nil;
  16269. {$EXTERNALSYM BIO_new_mem_buf}
  16270. BIO_new_mem_buf : function (buf : Pointer; len : TIdC_INT) : PBIO cdecl = nil;
  16271. {$EXTERNALSYM BIO_push}
  16272. BIO_push : function(b: PBIO; append: PBIO): PBIO cdecl = nil;
  16273. {$EXTERNALSYM BIO_pop}
  16274. BIO_pop : function(b: PBIO): PBIO cdecl = nil;
  16275. {$EXTERNALSYM BIO_set_next}
  16276. BIO_set_next : procedure(b: PBIO; next: PBIO) cdecl = nil;
  16277. {$EXTERNALSYM BIO_free}
  16278. BIO_free : function(bio: PBIO): TIdC_INT cdecl = nil;
  16279. {$EXTERNALSYM BIO_free_all}
  16280. BIO_free_all : procedure(bio: PBIO) cdecl = nil;
  16281. {$EXTERNALSYM BIO_s_mem}
  16282. BIO_s_mem : function: PBIO_METHOD cdecl = nil;
  16283. {$EXTERNALSYM BIO_s_file}
  16284. BIO_s_file : function: PBIO_METHOD cdecl = nil;
  16285. {$EXTERNALSYM BIO_set_ex_data}
  16286. BIO_set_ex_data : function(bio : PBIO; idx : TIdC_INT; data : Pointer) : TidC_INT cdecl = nil;
  16287. {$EXTERNALSYM BIO_get_ex_data}
  16288. BIO_get_ex_data: function(bio : PBIO; idx : TIdC_INT) : Pointer cdecl = nil;
  16289. {$EXTERNALSYM BIO_ctrl}
  16290. BIO_ctrl : function(bp: PBIO; cmd: TIdC_INT; larg: TIdC_LONG; parg: Pointer): TIdC_LONG cdecl = nil;
  16291. {$EXTERNALSYM BIO_ptr_ctrl}
  16292. BIO_ptr_ctrl : function(bp : PBIO; cmd : TIdC_INT; larg : TIdC_LONG) : PIdAnsiChar cdecl = nil;
  16293. {$EXTERNALSYM BIO_int_ctrl}
  16294. BIO_int_ctrl : function(bp : PBIO; cmd : TIdC_INT; larg : TIdC_LONG; iArg : TIdC_INT) : TIdC_LONG cdecl = nil;
  16295. {$EXTERNALSYM BIO_callback_ctrl}
  16296. BIO_callback_ctrl : function(b : PBIO; cmd : TIdC_INT; fp : SSL_callback_ctrl_fp ) : TIdC_LONG cdecl = nil;
  16297. {$EXTERNALSYM BIO_new_file}
  16298. BIO_new_file : function(const filename: PIdAnsiChar; const mode: PIdAnsiChar): PBIO cdecl = nil;
  16299. {$EXTERNALSYM BIO_puts}
  16300. BIO_puts : function(b: PBIO; const txt: PIdAnsiChar): TIdC_INT cdecl = nil;
  16301. {$EXTERNALSYM BIO_read}
  16302. BIO_read : function(b: PBIO; data: Pointer; len: TIdC_INT): TIdC_INT cdecl = nil;
  16303. {$EXTERNALSYM BIO_write}
  16304. BIO_write : function(b: PBIO; const buf: Pointer; len: TIdC_INT): TIdC_INT cdecl = nil;
  16305. {$EXTERNALSYM BN_hex2bn}
  16306. BN_hex2bn: function(var n:PBIGNUM; const Str: PIdAnsiChar): TIdC_INT cdecl = nil;
  16307. {$EXTERNALSYM BN_new}
  16308. BN_new : function(): PBIGNUM cdecl = nil;
  16309. {$EXTERNALSYM BN_free}
  16310. BN_free : procedure(a: PBIGNUM) cdecl = nil;
  16311. {$EXTERNALSYM BN_bn2dec}
  16312. BN_bn2dec: function(const n:PBIGNUM): PIdAnsiChar cdecl = nil;
  16313. {$EXTERNALSYM BN_bn2hex}
  16314. BN_bn2hex: function(const n:PBIGNUM): PIdAnsiChar cdecl = nil;
  16315. {$EXTERNALSYM BN_set_word}
  16316. BN_set_word: function(a: PBIGNUM; w: TIdC_ULONG): TIdC_INT cdecl = nil;
  16317. {$EXTERNALSYM DH_free}
  16318. DH_free : procedure(dh: PDH) cdecl = nil;
  16319. {$IFNDEF SSLEAY_MACROS}
  16320. //Note that these are defined as a pointer to a pointer to a structure.
  16321. //This is done because the pointer being passed could be nil. The pointer is probably
  16322. //more of a template than anything. If it is used, it should be initialized to nil.
  16323. {$EXTERNALSYM _PEM_read_bio_X509}
  16324. _PEM_read_bio_X509 : function(bp: PBIO; x: PPX509; cb: ppem_password_cb; u: Pointer): PX509 cdecl = nil;
  16325. {$EXTERNALSYM _PEM_read_bio_X509_REQ}
  16326. _PEM_read_bio_X509_REQ : function(bp :PBIO; x : PPX509_REQ; cb :ppem_password_cb; u: PIdAnsiChar) : PX509_REQ cdecl = nil;
  16327. {$EXTERNALSYM _PEM_read_bio_X509_CRL}
  16328. _PEM_read_bio_X509_CRL : function(bp : PBIO; x : PPX509_CRL;cb : ppem_password_cb; u: Pointer) : PX509_CRL cdecl = nil;
  16329. {$EXTERNALSYM _PEM_read_bio_RSAPrivateKey}
  16330. _PEM_read_bio_RSAPrivateKey : function(bp : PBIO; x : PPRSA; cb : ppem_password_cb; u: Pointer) : PRSA cdecl = nil;
  16331. {$EXTERNALSYM _PEM_read_bio_RSAPublicKey}
  16332. _PEM_read_bio_RSAPublicKey : function(bp : PBIO; x : PPRSA; cb : ppem_password_cb; u: Pointer) : PRSA cdecl = nil;
  16333. {$EXTERNALSYM _PEM_read_bio_DSAPrivateKey}
  16334. _PEM_read_bio_DSAPrivateKey : function(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u : Pointer) : PDSA cdecl = nil;
  16335. {$EXTERNALSYM _PEM_read_bio_PrivateKey}
  16336. _PEM_read_bio_PrivateKey : function(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY cdecl = nil;
  16337. {$EXTERNALSYM _PEM_read_bio_PKCS7}
  16338. _PEM_read_bio_PKCS7 : function(bp : PBIO; x : PPPKCS7; cb : ppem_password_cb; u : Pointer) : PPKCS7 cdecl = nil;
  16339. {$EXTERNALSYM _PEM_read_bio_DHparams}
  16340. _PEM_read_bio_DHparams : function(bp : PBIO; x : PPDH; cb : ppem_password_cb; u : Pointer) : PDH cdecl = nil;
  16341. {$EXTERNALSYM _PEM_read_bio_DSAparams}
  16342. _PEM_read_bio_DSAparams : function(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u : Pointer) : PDSA cdecl = nil;
  16343. {$EXTERNALSYM _PEM_read_bio_NETSCAPE_CERT_SEQUENCE}
  16344. _PEM_read_bio_NETSCAPE_CERT_SEQUENCE : function(bp : PBIO; x : PPNETSCAPE_CERT_SEQUENCE;
  16345. cb : ppem_password_cb; u : Pointer) : PNETSCAPE_CERT_SEQUENCE cdecl = nil;
  16346. {$EXTERNALSYM _PEM_read_bio_PUBKEY}
  16347. _PEM_read_bio_PUBKEY : function(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY cdecl = nil;
  16348. {$EXTERNALSYM _PEM_write_bio_X509}
  16349. _PEM_write_bio_X509 : function(b: PBIO; x: PX509): TIdC_INT cdecl = nil;
  16350. {$EXTERNALSYM _PEM_write_bio_X509_REQ}
  16351. _PEM_write_bio_X509_REQ : function(bp: PBIO; x: PX509_REQ): TIdC_INT cdecl = nil;
  16352. {$EXTERNALSYM _PEM_write_bio_X509_CRL}
  16353. _PEM_write_bio_X509_CRL : function(bp : PBIO; x : PX509_CRL) : TIdC_INT cdecl = nil;
  16354. {$EXTERNALSYM _PEM_write_bio_RSAPublicKey}
  16355. _PEM_write_bio_RSAPublicKey : function(bp : PBIO; x : PRSA) : TIdC_INT cdecl = nil;
  16356. {$EXTERNALSYM _PEM_write_bio_RSAPrivateKey}
  16357. _PEM_write_bio_RSAPrivateKey : function(bp : PBIO; x : PRSA; const enc : PEVP_CIPHER;
  16358. kstr : PIdAnsiChar; klen : TIdC_INT; cb : ppem_password_cb; u : POinter) : TIdC_INT cdecl = nil;
  16359. {$EXTERNALSYM _PEM_write_bio_DSAPrivateKey}
  16360. _PEM_write_bio_DSAPrivateKey : function(bp : PBIO; x : PDSA; const enc : PEVP_CIPHER;
  16361. kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT cdecl = nil;
  16362. {$EXTERNALSYM _PEM_write_bio_PrivateKey}
  16363. _PEM_write_bio_PrivateKey : function(bp : PBIO; x : PEVP_PKEY; const enc : PEVP_CIPHER;
  16364. kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT cdecl = nil;
  16365. {$EXTERNALSYM _PEM_write_bio_PKCS7}
  16366. _PEM_write_bio_PKCS7 : function(bp : PBIO; x : PPKCS7) : TIdC_INT cdecl = nil;
  16367. {$EXTERNALSYM _PEM_write_bio_DHparams}
  16368. _PEM_write_bio_DHparams : function(bp : PBIO; x : PDH): TIdC_INT cdecl = nil;
  16369. {$EXTERNALSYM _PEM_write_bio_DSAparams}
  16370. _PEM_write_bio_DSAparams : function(bp : PBIO; x : PDSA) : TIdC_INT cdecl = nil;
  16371. {$EXTERNALSYM _PEM_write_bio_NETSCAPE_CERT_SEQUENCE}
  16372. _PEM_write_bio_NETSCAPE_CERT_SEQUENCE : function(bp : PBIO; x : PDSA) : TIdC_INT cdecl = nil;
  16373. {$IFNDEF OPENSSL_NO_BIO}
  16374. {$EXTERNALSYM _PEM_write_bio_PKCS8PrivateKey}
  16375. _PEM_write_bio_PKCS8PrivateKey : function(bp: PBIO; key: PEVP_PKEY; enc: PEVP_CIPHER;
  16376. kstr: PIdAnsiChar; klen: TIdC_INT; cb: ppem_password_cb; u: Pointer): TIdC_INT cdecl = nil;
  16377. {$EXTERNALSYM _PEM_write_bio_PUBKEY}
  16378. _PEM_write_bio_PUBKEY : function(bp: PBIO; x: PEVP_PKEY): TIdC_INT cdecl = nil;
  16379. {$ENDIF}
  16380. {$ELSE}
  16381. {$IFNDEF OPENSSL_NO_BIO}
  16382. {$EXTERNALSYM PEM_ASN1_write_bio}
  16383. PEM_ASN1_write_bio : function(i2d: i2d_of_void; const name: PIdAnsiChar;
  16384. bp: PBIO; x: PIdAnsiChar; const enc: PEVP_CIPHER; kstr: PIdAnsiChar; klen: TIdC_INT;
  16385. cb: ppem_password_cb; u: Pointer):TIdC_INT cdecl = nil;
  16386. {$EXTERNALSYM PEM_ASN1_read_bio}
  16387. PEM_ASN1_read_bio : function(d2i: d2i_OF_void; name: PIdAnsiChar; bp: PBIO;
  16388. x: PPointer; cb: ppem_password_cb; u:Pointer): Pointer cdecl = nil;
  16389. {$ENDIF}
  16390. {$ENDIF}
  16391. {$EXTERNALSYM PEM_X509_INFO_read_bio}
  16392. PEM_X509_INFO_read_bio : function (bp : PBIO; sk : PSTACK_OF_X509_INFO;
  16393. cb : ppem_password_cb; u : Pointer) : PSTACK_OF_X509_INFO cdecl = nil;
  16394. {$EXTERNALSYM PEM_read_bio_X509_AUX}
  16395. PEM_read_bio_X509_AUX : function (bp : PBIO; x : PPX509;
  16396. cb : ppem_password_cb; u : Pointer) : PX509 cdecl = nil;
  16397. {$EXTERNALSYM EVP_DigestInit}
  16398. EVP_DigestInit : function(ctx : PEVP_MD_CTX; _type : PEVP_MD) : TIdC_INT cdecl = nil;
  16399. {$EXTERNALSYM EVP_DigestFinal}
  16400. EVP_DigestFinal : function(ctx : PEVP_MD_CTX;md : PIdAnsiChar; s : TIdC_UINT) : TIdC_INT cdecl = nil;
  16401. {$EXTERNALSYM EVP_DigestInit_ex}
  16402. EVP_DigestInit_ex : function (ctx : PEVP_MD_CTX; const AType : PEVP_MD; impl : PENGINE) : TIdC_Int cdecl = nil;
  16403. {$EXTERNALSYM EVP_DigestUpdate}
  16404. EVP_DigestUpdate : function (ctx : PEVP_MD_CTX; d : Pointer; cnt : size_t) : TIdC_Int cdecl = nil;
  16405. {$EXTERNALSYM EVP_DigestFinal_ex}
  16406. EVP_DigestFinal_ex : function(ctx : PEVP_MD_CTX; md : PIdAnsiChar; var s : TIdC_UInt) : TIdC_Int cdecl = nil;
  16407. {$EXTERNALSYM EVP_EncryptInit}
  16408. EVP_EncryptInit : function(ctx : PEVP_CIPHER_CTX;cipher : PEVP_CIPHER;
  16409. key : PIdAnsiChar; iv : PIdAnsiChar) : TIdC_INT cdecl = nil;
  16410. {$EXTERNALSYM EVP_EncryptInit_ex}
  16411. EVP_EncryptInit_ex : function(ctx : PEVP_CIPHER_CTX; cipher : PEVP_CIPHER; impl : PENGINE;
  16412. key : PIdAnsiChar; iv : PIdAnsiChar) : TIdC_INT cdecl = nil;
  16413. {$EXTERNALSYM EVP_EncryptUpdate}
  16414. EVP_EncryptUpdate : function(ctx : PEVP_CIPHER_CTX; _out : PIdAnsiChar;
  16415. outl : PIdC_INT; _in : PIdAnsiChar; inl : TIdC_INT) : TIdC_INT cdecl = nil;
  16416. {$EXTERNALSYM EVP_EncryptFinal_ex}
  16417. EVP_EncryptFinal_ex : function(ctx : PEVP_CIPHER_CTX; _out : PIdAnsiChar; outl : PIdC_INT) : TIdC_INT cdecl = nil;
  16418. {$EXTERNALSYM EVP_EncryptFinal}
  16419. EVP_EncryptFinal : function(ctx : PEVP_CIPHER_CTX; _out : PIdAnsiChar; outl: PIdC_INT) : TIdC_INT cdecl = nil;
  16420. {$EXTERNALSYM EVP_DecryptInit}
  16421. EVP_DecryptInit : function(ctx : PEVP_CIPHER_CTX; cipher : PEVP_CIPHER;
  16422. key : PIdAnsiChar; iv : PIdAnsiChar) : TIdC_INT cdecl = nil;
  16423. {$EXTERNALSYM EVP_DecryptInit_ex}
  16424. EVP_DecryptInit_ex : function(ctx : PEVP_CIPHER_CTX; cipher : PEVP_CIPHER; impl : PENGINE;
  16425. key : PIdAnsiChar; iv : PIdAnsiChar) : TIdC_INT cdecl = nil;
  16426. {$EXTERNALSYM EVP_DecryptUpdate}
  16427. EVP_DecryptUpdate : function(ctx : PEVP_CIPHER_CTX; _out : PIdAnsiChar;
  16428. outl : PIdC_INT; _in : PIdAnsiChar; inl : TIdC_INT) : TIdC_INT cdecl = nil;
  16429. {$EXTERNALSYM EVP_DecryptFinal}
  16430. EVP_DecryptFinal : function(ctx : PEVP_CIPHER_CTX; outm : PIdAnsiChar; outl : PIdC_INT) : TIdC_INT cdecl = nil;
  16431. {$EXTERNALSYM EVP_DecryptFinal_ex}
  16432. EVP_DecryptFinal_ex : function(ctx : PEVP_CIPHER_CTX; outm: PIdAnsiChar; outl : PIdC_INT) : TIdC_INT cdecl = nil;
  16433. {$EXTERNALSYM EVP_CipherInit}
  16434. EVP_CipherInit : function(ctx : PEVP_CIPHER_CTX; cipher : PEVP_CIPHER;
  16435. key : PIdAnsiChar; iv : PIdAnsiChar;
  16436. enc : TIdC_INT) : TIdC_INT cdecl = nil;
  16437. {$EXTERNALSYM EVP_CipherInit_ex}
  16438. EVP_CipherInit_ex : function(ctx : PEVP_CIPHER_CTX; cipher: PEVP_CIPHER; impl : PENGINE;
  16439. key : PIdAnsiChar; iv : PIdAnsiChar;
  16440. enc : TIdC_INT) : TIdC_INT cdecl = nil;
  16441. {$EXTERNALSYM EVP_CipherUpdate}
  16442. EVP_CipherUpdate : function(ctx : PEVP_CIPHER_CTX; _out : PIdAnsiChar;
  16443. outl : PIdC_INT; _in : PIdAnsiChar; inl : TIdC_INT) : TIdC_INT cdecl = nil;
  16444. {$EXTERNALSYM EVP_CipherFinal}
  16445. EVP_CipherFinal : function(ctx : PEVP_CIPHER_CTX; outm : PIdAnsiChar; outl : PIdC_INT) : TIdC_INT cdecl = nil;
  16446. {$EXTERNALSYM EVP_CipherFinal_ex}
  16447. EVP_CipherFinal_ex: function(ctx : PEVP_CIPHER_CTX; outm : PIdAnsiChar; outl : PIdC_INT) : TIdC_INT cdecl = nil;
  16448. {$EXTERNALSYM EVP_SignFinal}
  16449. EVP_SignFinal : function(ctx : PEVP_MD_CTX; md : PIdAnsiChar; s : PIdC_INT;
  16450. pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  16451. {$EXTERNALSYM EVP_VerifyFinal}
  16452. EVP_VerifyFinal : function(ctx : PEVP_MD_CTX; sigbuf : PIdAnsiChar;
  16453. siglen : TIdC_UINT; pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  16454. {$EXTERNALSYM EVP_DigestSignInit}
  16455. EVP_DigestSignInit : function(ctx : PEVP_MD_CTX; pctx : PPEVP_PKEY_CTX;
  16456. _type : PEVP_MD; e : PENGINE; pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  16457. {$EXTERNALSYM EVP_DigestSignFinal}
  16458. EVP_DigestSignFinal : function(ctx : PEVP_MD_CTX;
  16459. sigret : PIdAnsiChar; siglen : Psize_t) : TIdC_INT cdecl = nil;
  16460. {$EXTERNALSYM EVP_DigestVerifyInit}
  16461. EVP_DigestVerifyInit : function(ctx : PEVP_MD_CTX; pctx : PPEVP_PKEY_CTX;
  16462. _type : PEVP_MD;e : PENGINE; pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  16463. {$EXTERNALSYM EVP_DigestVerifyFinal}
  16464. EVP_DigestVerifyFinal: function(ctx : PEVP_MD_CTX;
  16465. sig : PIdAnsiChar; siglen : size_t) : TIdC_INT cdecl = nil;
  16466. {$EXTERNALSYM EVP_OpenInit}
  16467. EVP_OpenInit : function(ctx : PEVP_CIPHER_CTX; _type : PEVP_CIPHER;
  16468. ek : PIdAnsiChar; ekl : TIdC_INT; iv : PIdAnsiChar;
  16469. priv : PEVP_PKEY) : TIdC_INT cdecl = nil;
  16470. {$EXTERNALSYM EVP_OpenFinal}
  16471. EVP_OpenFinal : function (ctx : PEVP_CIPHER_CTX; _out : PIdAnsiChar; outl : PIdC_INT) : TIdC_INT cdecl = nil;
  16472. {$EXTERNALSYM EVP_SealInit}
  16473. EVP_SealInit : function(ctx : PEVP_CIPHER_CTX; _type : PEVP_CIPHER;
  16474. ek : PPIdAnsiChar; ekl : PIdC_INT; iv : PIdAnsiChar;
  16475. pubk : PPEVP_PKEY; npubk : TIdC_INT) : TIdC_INT cdecl = nil;
  16476. {$EXTERNALSYM EVP_SealFinal}
  16477. EVP_SealFinal : function(ctx : PEVP_CIPHER_CTX; _out : PIdAnsiChar; outl : PIdC_INT) : TIdC_INT cdecl = nil;
  16478. {$EXTERNALSYM EVP_EncodeInit}
  16479. EVP_EncodeInit : procedure(ctx : PEVP_ENCODE_CTX) cdecl = nil;
  16480. {$EXTERNALSYM EVP_EncodeUpdate}
  16481. EVP_EncodeUpdate : procedure(ctx : PEVP_ENCODE_CTX; _out : PIdAnsiChar; outl : PIdC_INT;
  16482. _in : PIdAnsiChar; inl : TIdC_INT) cdecl = nil;
  16483. {$EXTERNALSYM EVP_EncodeFinal}
  16484. EVP_EncodeFinal : procedure(ctx : PEVP_ENCODE_CTX; _out: PIdAnsiChar; outl : PIdC_INT) cdecl = nil;
  16485. {$EXTERNALSYM EVP_EncodeBlock}
  16486. EVP_EncodeBlock : function(t: PIdAnsiChar; f: PIdAnsiChar; n : TIdC_INT) : TIdC_INT cdecl = nil;
  16487. {$EXTERNALSYM EVP_DecodeInit}
  16488. EVP_DecodeInit : procedure(ctx : PEVP_ENCODE_CTX) cdecl = nil;
  16489. {$EXTERNALSYM EVP_DecodeUpdate}
  16490. EVP_DecodeUpdate : function(ctx : PEVP_ENCODE_CTX; _out : PIdAnsiChar; outl : PIdC_INT;
  16491. _in : PIdAnsiChar; inl : TIdC_INT) : TIdC_INT cdecl = nil;
  16492. {$EXTERNALSYM EVP_DecodeFinal}
  16493. EVP_DecodeFinal: function(ctx : PEVP_ENCODE_CTX; _out : PIdAnsiChar; outl : PIdC_INT) : TIdC_INT cdecl = nil;
  16494. {$EXTERNALSYM EVP_DecodeBlock}
  16495. EVP_DecodeBlock : function(t: PIdAnsiChar; f: PIdAnsiChar; n : TIdC_INT) : TIdC_INT cdecl = nil;
  16496. {$EXTERNALSYM EVP_CIPHER_CTX_init}
  16497. EVP_CIPHER_CTX_init : procedure(a : PEVP_CIPHER_CTX) cdecl = nil;
  16498. {$EXTERNALSYM EVP_CIPHER_CTX_cleanup}
  16499. EVP_CIPHER_CTX_cleanup : function(a : PEVP_CIPHER_CTX) : TIdC_INT cdecl = nil;
  16500. {$EXTERNALSYM EVP_CIPHER_CTX_new}
  16501. EVP_CIPHER_CTX_new : function : PEVP_CIPHER_CTX cdecl = nil;
  16502. {$EXTERNALSYM EVP_CIPHER_CTX_free}
  16503. EVP_CIPHER_CTX_free: procedure(a : PEVP_CIPHER_CTX) cdecl = nil;
  16504. {$EXTERNALSYM EVP_CIPHER_CTX_set_key_length}
  16505. EVP_CIPHER_CTX_set_key_length : function(x : PEVP_CIPHER_CTX; keylen : TIdC_INT) : TIdC_INT cdecl = nil;
  16506. {$EXTERNALSYM EVP_CIPHER_CTX_set_padding}
  16507. EVP_CIPHER_CTX_set_padding : function(c : PEVP_CIPHER_CTX; pad : TIdC_INT) : TIdC_INT cdecl = nil;
  16508. {$EXTERNALSYM EVP_CIPHER_CTX_ctrl}
  16509. EVP_CIPHER_CTX_ctrl : function(ctx : PEVP_CIPHER_CTX; _type : TIdC_INT; arg : TIdC_INT; ptr : Pointer) : TIdC_INT cdecl = nil;
  16510. {$EXTERNALSYM EVP_CIPHER_CTX_rand_key}
  16511. EVP_CIPHER_CTX_rand_key : function(ctx : PEVP_CIPHER_CTX; key : PIdAnsiChar) : TIdC_INT cdecl = nil;
  16512. {$ifndef OPENSSL_NO_BIO}
  16513. {$EXTERNALSYM BIO_f_md}
  16514. BIO_f_md : function : PBIO_METHOD cdecl = nil;
  16515. {$EXTERNALSYM BIO_f_base64}
  16516. BIO_f_base64 : function : PBIO_METHOD cdecl = nil;
  16517. {$EXTERNALSYM BIO_f_cipher}
  16518. BIO_f_cipher : function : PBIO_METHOD cdecl = nil;
  16519. {$EXTERNALSYM BIO_f_reliable}
  16520. BIO_f_reliable : function : PBIO_METHOD cdecl = nil;
  16521. {$EXTERNALSYM BIO_set_cipher}
  16522. BIO_set_cipher : procedure (b : PBIO; c : PEVP_CIPHER; k : PIdAnsiChar;
  16523. i : PIdAnsiChar; enc : TIdC_INT) cdecl = nil;
  16524. {$endif}
  16525. {$EXTERNALSYM EVP_MD_CTX_init}
  16526. EVP_MD_CTX_init : procedure(ctx : PEVP_MD_CTX) cdecl = nil;
  16527. {$EXTERNALSYM EVP_MD_CTX_cleanup}
  16528. EVP_MD_CTX_cleanup : function(ctx : PEVP_MD_CTX) : TIdC_Int cdecl = nil;
  16529. {$EXTERNALSYM EVP_MD_CTX_create}
  16530. EVP_MD_CTX_create: function : PEVP_MD_CTX cdecl = nil;
  16531. {$EXTERNALSYM EVP_MD_CTX_destroy}
  16532. EVP_MD_CTX_destroy : procedure(ctx : PEVP_MD_CTX) cdecl = nil;
  16533. {$EXTERNALSYM EVP_MD_CTX_copy}
  16534. EVP_MD_CTX_copy : function(_out : PEVP_MD_CTX; _in: PEVP_MD_CTX): TIdC_INT cdecl = nil;
  16535. {$EXTERNALSYM EVP_MD_CTX_copy_ex}
  16536. EVP_MD_CTX_copy_ex : function (_out : PEVP_MD_CTX; const _in: PEVP_MD_CTX): TIdC_INT cdecl = nil;
  16537. {$IFNDEF OPENSSL_NO_DES}
  16538. {$EXTERNALSYM EVP_des_ede3_cbc}
  16539. EVP_des_ede3_cbc : function: PEVP_CIPHER cdecl = nil;
  16540. {$ENDIF}
  16541. {$EXTERNALSYM EVP_PKEY_new}
  16542. EVP_PKEY_new : function : PEVP_PKEY cdecl = nil;
  16543. {$EXTERNALSYM EVP_PKEY_free}
  16544. EVP_PKEY_free : procedure(pkey: PEVP_PKEY) cdecl = nil;
  16545. {$EXTERNALSYM EVP_PKEY_assign}
  16546. EVP_PKEY_assign : function(pkey: PEVP_PKEY; _type: TIdC_INT; key: Pointer): TIdC_INT cdecl = nil;
  16547. {$EXTERNALSYM EVP_get_cipherbyname}
  16548. EVP_get_cipherbyname : function(const name : PIdAnsiChar): PEVP_CIPHER cdecl = nil;
  16549. {$EXTERNALSYM EVP_get_digestbyname}
  16550. EVP_get_digestbyname : function(const name: PIdAnsiChar): PEVP_MD cdecl = nil;
  16551. {$EXTERNALSYM EVP_MD_type}
  16552. EVP_MD_type : function (md : PEVP_MD) : TIdC_INT cdecl = nil;
  16553. {$EXTERNALSYM EVP_MD_size}
  16554. EVP_MD_size : function (md : PEVP_MD) : TIdC_INT cdecl = nil;
  16555. {$EXTERNALSYM EVP_MD_block_size}
  16556. EVP_MD_block_size : function (md : PEVP_MD) : TIdC_INT cdecl = nil;
  16557. {$EXTERNALSYM EVP_MD_flags}
  16558. EVP_MD_flags : function (md : PEVP_MD) : TIdC_ULONG cdecl = nil;
  16559. {$EXTERNALSYM EVP_MD_CTX_md}
  16560. EVP_MD_CTX_md : function (ctx : PEVP_MD_CTX) : PEVP_MD cdecl = nil;
  16561. {$EXTERNALSYM EVP_CIPHER_nid}
  16562. EVP_CIPHER_nid : function (cipher : PEVP_CIPHER) : TIdC_INT cdecl = nil;
  16563. {$EXTERNALSYM EVP_CIPHER_block_size}
  16564. EVP_CIPHER_block_size : function(cipher : PEVP_CIPHER) : TIdC_INT cdecl = nil;
  16565. {$EXTERNALSYM EVP_CIPHER_key_length}
  16566. EVP_CIPHER_key_length : function(cipher : EVP_CIPHER) : TIdC_INT cdecl = nil;
  16567. {$EXTERNALSYM EVP_CIPHER_iv_length}
  16568. EVP_CIPHER_iv_length : function(cipher: PEVP_CIPHER) : TIdC_INT cdecl = nil;
  16569. {$EXTERNALSYM EVP_CIPHER_flags}
  16570. EVP_CIPHER_flags : function(cipher : PEVP_CIPHER) : TIdC_ULONG cdecl = nil;
  16571. {$EXTERNALSYM EVP_CIPHER_type}
  16572. EVP_CIPHER_type : function(ctx : PEVP_CIPHER) : TIdC_INT cdecl = nil;
  16573. {$EXTERNALSYM EVP_CIPHER_CTX_cipher}
  16574. EVP_CIPHER_CTX_cipher : function (ctx : PEVP_CIPHER_CTX) : PEVP_CIPHER cdecl = nil;
  16575. {$EXTERNALSYM EVP_CIPHER_CTX_nid}
  16576. EVP_CIPHER_CTX_nid : function (ctx : PEVP_CIPHER_CTX) : TIdC_INT cdecl = nil;
  16577. {$EXTERNALSYM EVP_CIPHER_CTX_block_size}
  16578. EVP_CIPHER_CTX_block_size : function(ctx : PEVP_CIPHER_CTX) : TIdC_INT cdecl = nil;
  16579. {$EXTERNALSYM EVP_CIPHER_CTX_key_length}
  16580. EVP_CIPHER_CTX_key_length : function(ctx : PEVP_CIPHER_CTX) : TIdC_INT cdecl = nil;
  16581. {$EXTERNALSYM EVP_CIPHER_CTX_iv_length}
  16582. EVP_CIPHER_CTX_iv_length : function(ctx : PEVP_CIPHER_CTX) : TIdC_INT cdecl = nil;
  16583. {$EXTERNALSYM EVP_CIPHER_CTX_copy}
  16584. EVP_CIPHER_CTX_copy : function(_out : PEVP_CIPHER_CTX; _in : PEVP_CIPHER_CTX) : TIdC_INT cdecl = nil;
  16585. {$EXTERNALSYM EVP_CIPHER_CTX_get_app_data}
  16586. EVP_CIPHER_CTX_get_app_data : function(ctx : PEVP_CIPHER_CTX) : Pointer cdecl = nil;
  16587. {$EXTERNALSYM EVP_CIPHER_CTX_set_app_data}
  16588. EVP_CIPHER_CTX_set_app_data : procedure(ctx : PEVP_CIPHER_CTX; data : Pointer) cdecl =nil;
  16589. {$EXTERNALSYM EVP_CIPHER_CTX_flags}
  16590. EVP_CIPHER_CTX_flags : function(ctx : PEVP_CIPHER_CTX) : TIdC_ULONG cdecl = nil;
  16591. {$EXTERNALSYM ASN1_INTEGER_set}
  16592. ASN1_INTEGER_set : function(a: PASN1_INTEGER; v: TIdC_LONG): TIdC_INT cdecl = nil;
  16593. {$EXTERNALSYM ASN1_INTEGER_get}
  16594. ASN1_INTEGER_get : function(a: PASN1_INTEGER) : TIdC_LONG cdecl = nil;
  16595. //IdSslAsn1UtcTimeNew : function: Pointer cdecl = nil;
  16596. {$EXTERNALSYM ASN1_INTEGER_to_BN}
  16597. ASN1_INTEGER_to_BN : function(a: PASN1_INTEGER; bn: PBIGNUM) : PBIGNUM cdecl = nil;
  16598. {$EXTERNALSYM ASN1_STRING_type_new}
  16599. ASN1_STRING_type_new : function(_type: TIdC_INT): PASN1_STRING cdecl = nil;
  16600. {$EXTERNALSYM ASN1_STRING_free}
  16601. ASN1_STRING_free : procedure(a: PASN1_STRING) cdecl = nil;
  16602. {$EXTERNALSYM ASN1_dup}
  16603. ASN1_dup : function (i2d : i2d_of_void; d2i : d2i_of_void; x : PIdAnsiChar) : Pointer cdecl = nil;
  16604. {$EXTERNALSYM i2d_X509}
  16605. i2d_X509 : function(x: PX509; buf: PPByte) : TIdC_INT cdecl = nil;
  16606. {$EXTERNALSYM d2i_X509}
  16607. d2i_X509 : function(pr : PX509; _in : PPByte; len : TIdC_INT): PX509 cdecl = nil;
  16608. {$EXTERNALSYM i2d_X509_NAME}
  16609. i2d_X509_NAME : function(x : PX509_NAME; buf : PPByte) : TIdC_INT cdecl = nil;
  16610. {$EXTERNALSYM d2i_X509_NAME}
  16611. d2i_X509_NAME : function(pr : PPX509_NAME; _in : PPByte; length : TIdC_LONG):PX509_NAME cdecl = nil;
  16612. {$EXTERNALSYM i2d_X509_REQ}
  16613. i2d_X509_REQ : function(x: PX509_REQ; buf: PPByte): TIdC_INT cdecl = nil;
  16614. {$EXTERNALSYM d2i_X509_REQ}
  16615. d2i_X509_REQ : function(pr : PX509_REQ; _in : PPByte; len : TIdC_INT): PX509_REQ cdecl = nil;
  16616. {$EXTERNALSYM i2d_X509_CRL}
  16617. i2d_X509_CRL : function(x: PX509_CRL; buf: PPByte): TIdC_INT cdecl = nil;
  16618. {$EXTERNALSYM d2i_X509_CRL}
  16619. d2i_X509_CRL : function(pr : PX509_CRL; _in : PPByte; len : TIdC_INT): PX509_REQ cdecl = nil;
  16620. {$EXTERNALSYM i2d_RSAPrivateKey}
  16621. i2d_RSAPrivateKey : function(x: PRSA; buf: PPByte): TIdC_INT cdecl = nil;
  16622. {$EXTERNALSYM d2i_RSAPrivateKey}
  16623. d2i_RSAPrivateKey : function(pr : PRSA; _in : PPByte; len : TIdC_INT): PRSA cdecl = nil;
  16624. {$EXTERNALSYM i2d_RSAPublicKey}
  16625. i2d_RSAPublicKey : function(x: PRSA; buf: PPByte): TIdC_INT cdecl = nil;
  16626. {$EXTERNALSYM d2i_RSAPublicKey}
  16627. d2i_RSAPublicKey : function(pr : PRSA; _in : PPByte; len : TIdC_INT): PRSA cdecl = nil;
  16628. {$EXTERNALSYM i2d_DSAPrivateKey}
  16629. i2d_DSAPrivateKey : function(x: PDSA; buf: PPByte): TIdC_INT cdecl = nil;
  16630. {$EXTERNALSYM d2i_DSAPrivateKey}
  16631. d2i_DSAPrivateKey : function(pr : PDSA; _in : PPByte; len : TIdC_INT): PDSA cdecl = nil;
  16632. {$EXTERNALSYM i2d_PrivateKey}
  16633. i2d_PrivateKey : function(x: PEVP_PKEY; buf: PPByte): TIdC_INT cdecl = nil;
  16634. {$EXTERNALSYM d2i_PrivateKey}
  16635. d2i_PrivateKey : function(pr : PEVP_PKEY; _in : PPByte; len : TIdC_INT): PEVP_PKEY cdecl = nil;
  16636. {$EXTERNALSYM i2d_PKCS7}
  16637. i2d_PKCS7 : function(x: PPKCS7; buf: PPByte): TIdC_INT cdecl = nil;
  16638. {$EXTERNALSYM d2i_PKCS7}
  16639. d2i_PKCS7 : function(pr : PPKCS7; _in : PPByte; len : TIdC_INT): PPKCS7 cdecl = nil;
  16640. {$EXTERNALSYM i2d_DHparams}
  16641. i2d_DHparams : function(x: PDH; buf: PPByte): TIdC_INT cdecl = nil;
  16642. {$EXTERNALSYM d2i_DHparams}
  16643. d2i_DHparams : function(pr : PDH; _in : PPByte; len : TIdC_INT): PDH cdecl = nil;
  16644. {$EXTERNALSYM i2d_DSAparams}
  16645. i2d_DSAparams : function(x: PDSA; buf: PPByte): TIdC_INT cdecl = nil;
  16646. {$EXTERNALSYM d2i_DSAparams}
  16647. d2i_DSAparams : function(pr : PDSA; _in : PPByte; len : TIdC_INT): PDSA cdecl = nil;
  16648. //NETSCAPE_CERT_SEQUENCE
  16649. {$EXTERNALSYM i2d_NETSCAPE_CERT_SEQUENCE}
  16650. i2d_NETSCAPE_CERT_SEQUENCE : function(x: PNETSCAPE_CERT_SEQUENCE; buf: PPByte): TIdC_INT cdecl = nil;
  16651. {$EXTERNALSYM d2i_NETSCAPE_CERT_SEQUENCE}
  16652. d2i_NETSCAPE_CERT_SEQUENCE : function(pr : PNETSCAPE_CERT_SEQUENCE; _in : PPByte; len : TIdC_INT): PNETSCAPE_CERT_SEQUENCE cdecl = nil;
  16653. {$EXTERNALSYM i2d_PUBKEY}
  16654. i2d_PUBKEY : function(x: PEVP_PKEY; buf: PPByte): TIdC_INT cdecl = nil;
  16655. {$EXTERNALSYM d2i_PUBKEY}
  16656. d2i_PUBKEY : function(pr : PEVP_PKEY; _in : PPByte; len : TIdC_INT): PEVP_PKEY cdecl = nil;
  16657. {$IFNDEF OPENSSL_NO_BIO}
  16658. {$EXTERNALSYM d2i_X509_bio}
  16659. d2i_X509_bio : function(bp: PBIO; x: PPx509): PX509 cdecl = nil;
  16660. {$EXTERNALSYM i2d_X509_REQ_bio}
  16661. i2d_X509_REQ_bio : function(bp: PBIO; x: PX509_REQ): TIdC_INT cdecl = nil;
  16662. {$EXTERNALSYM i2d_X509_bio}
  16663. i2d_X509_bio : function(bp: PBIO; x: PX509): TIdC_INT cdecl = nil;
  16664. {$EXTERNALSYM i2d_PrivateKey_bio}
  16665. i2d_PrivateKey_bio : function(b: PBIO; pkey: PEVP_PKEY): TIdC_INT cdecl = nil;
  16666. //P12 additions
  16667. {$EXTERNALSYM d2i_PKCS12_bio}
  16668. d2i_PKCS12_bio: function(bp: PBIO; x: PPPKCS12): PPKCS12 cdecl = nil;
  16669. {$EXTERNALSYM PKCS12_parse}
  16670. PKCS12_parse: function(P12: PPKCS12; Password: PIdAnsiChar; out PrivateKey: PEVP_PKEY; out Cert: PX509; CertChain: PPSTACK_OF_X509): TIdC_INT cdecl = nil;
  16671. {$ENDIF}
  16672. {$EXTERNALSYM X509_new}
  16673. X509_new : function: PX509 cdecl = nil;
  16674. {$EXTERNALSYM X509_free}
  16675. X509_free : procedure(x: PX509) cdecl = nil;
  16676. {$EXTERNALSYM X509_NAME_new}
  16677. X509_NAME_new : function :PX509_NAME cdecl = nil;
  16678. {$EXTERNALSYM X509_NAME_free}
  16679. X509_NAME_free : procedure(x:PX509_NAME) cdecl = nil;
  16680. {$EXTERNALSYM X509_REQ_new}
  16681. X509_REQ_new : function :PX509_REQ cdecl = nil;
  16682. {$EXTERNALSYM X509_REQ_free}
  16683. X509_REQ_free : procedure(x:PX509_REQ) cdecl = nil;
  16684. {$EXTERNALSYM X509_to_X509_REQ}
  16685. X509_to_X509_REQ : function(x: PX509; pkey: PEVP_PKEY; const md: PEVP_MD): PX509_REQ cdecl = nil;
  16686. {$EXTERNALSYM X509_NAME_add_entry_by_txt}
  16687. X509_NAME_add_entry_by_txt : function(name: PX509_NAME; const field: PIdAnsiChar; _type: TIdC_INT;
  16688. const bytes: PIdAnsiChar; len, loc, _set: TIdC_INT): TIdC_INT cdecl = nil;
  16689. {$EXTERNALSYM X509_INFO_free}
  16690. X509_INFO_free : procedure (a : PX509_INFO) cdecl = nil;
  16691. {$EXTERNALSYM X509_set_version}
  16692. X509_set_version : function(x: PX509; version: TIdC_LONG): TIdC_INT cdecl = nil;
  16693. {$EXTERNALSYM X509_get_serialNumber}
  16694. X509_get_serialNumber : function(x: PX509): PASN1_INTEGER cdecl = nil;
  16695. {$EXTERNALSYM X509_gmtime_adj}
  16696. X509_gmtime_adj : function(s: PASN1_TIME; adj: TIdC_LONG): PASN1_TIME cdecl = nil;
  16697. {$EXTERNALSYM X509_set_notBefore}
  16698. X509_set_notBefore : function(x: PX509; tm: PASN1_TIME): TIdC_INT cdecl = nil;
  16699. {$EXTERNALSYM X509_set_notAfter}
  16700. X509_set_notAfter : function(x: PX509; tm: PASN1_TIME): TIdC_INT cdecl = nil;
  16701. {$EXTERNALSYM X509_set_pubkey}
  16702. X509_set_pubkey : function(x: PX509; pkey: PEVP_PKEY): TIdC_INT cdecl = nil;
  16703. {$EXTERNALSYM X509_REQ_set_pubkey}
  16704. X509_REQ_set_pubkey : function(x: PX509_REQ; pkey: PEVP_PKEY): TIdC_INT cdecl = nil;
  16705. {$EXTERNALSYM X509_PUBKEY_get}
  16706. X509_PUBKEY_get : function(key: PX509_PUBKEY): PEVP_PKEY cdecl = nil;
  16707. {$EXTERNALSYM X509_verify}
  16708. X509_verify : function(x509: PX509; pkey: PEVP_PKEY): TIdC_INT cdecl = nil;
  16709. {$EXTERNALSYM X509_sign}
  16710. X509_sign : function(x: PX509; pkey: PEVP_PKEY; const md: PEVP_MD): TIdC_INT cdecl = nil;
  16711. {$EXTERNALSYM X509_REQ_sign}
  16712. X509_REQ_sign : function(x: PX509_REQ; pkey: PEVP_PKEY; const md: PEVP_MD): TIdC_INT cdecl = nil;
  16713. {$EXTERNALSYM X509_REQ_add_extensions}
  16714. X509_REQ_add_extensions : function(req: PX509_REQ; exts: PSTACK_OF_X509_EXTENSION): TIdC_INT cdecl = nil;
  16715. {$EXTERNALSYM X509V3_EXT_conf_nid}
  16716. X509V3_EXT_conf_nid : function(conf: PLHASH; ctx: PX509V3_CTX; ext_nid: TIdC_INT; value: PIdAnsiChar): PX509_EXTENSION cdecl = nil;
  16717. {$EXTERNALSYM X509_EXTENSION_create_by_NID}
  16718. X509_EXTENSION_create_by_NID : function(ex: PPX509_EXTENSION; nid: TIdC_INT;
  16719. crit: TIdC_INT; data: PASN1_OCTET_STRING): PX509_EXTENSION cdecl = nil;
  16720. {$EXTERNALSYM X509V3_set_ctx}
  16721. X509V3_set_ctx : procedure(ctx: PX509V3_CTX; issuer, subject: PX509; req: PX509_REQ; crl: PX509_CRL; flags: TIdC_INT) cdecl = nil;
  16722. {$EXTERNALSYM X509_EXTENSION_free}
  16723. X509_EXTENSION_free : procedure(ex: PX509_EXTENSION) cdecl = nil;
  16724. {$EXTERNALSYM X509_add_ext}
  16725. X509_add_ext : function(cert: PX509; ext: PX509_EXTENSION; loc: TIdC_INT): TIdC_INT cdecl = nil;
  16726. {$IFNDEF OPENSSL_NO_BIO}
  16727. {$EXTERNALSYM X509_print}
  16728. X509_print : function(bp : PBIO; x : PX509) : TIdC_INT cdecl = nil;
  16729. {$ENDIF}
  16730. {$EXTERNALSYM X509_STORE_add_lookup}
  16731. X509_STORE_add_lookup : function (v : PX509_STORE; m : PX509_LOOKUP_METHOD) : PX509_LOOKUP cdecl = nil;
  16732. {$EXTERNALSYM X509_STORE_load_locations}
  16733. X509_STORE_load_locations : function ( ctx : PX509_STORE; const _file, path : PIdAnsiChar) : TIdC_INT cdecl = nil;
  16734. {$EXTERNALSYM SSL_CTX_set_cipher_list}
  16735. SSL_CTX_set_cipher_list : function(_para1: PSSL_CTX; const str: PIdAnsiChar): TIdC_INT cdecl = nil;
  16736. {$EXTERNALSYM SSL_CTX_new}
  16737. SSL_CTX_new : function(meth: PSSL_METHOD): PSSL_CTX cdecl = nil;
  16738. {$EXTERNALSYM SSL_CTX_free}
  16739. SSL_CTX_free : procedure(_para1: PSSL_CTX) cdecl = nil;
  16740. {$EXTERNALSYM SSL_set_fd}
  16741. SSL_set_fd : function(s: PSSL; fd: TIdC_INT): TIdC_INT cdecl = nil;
  16742. {$EXTERNALSYM SSL_CTX_use_PrivateKey_file}
  16743. SSL_CTX_use_PrivateKey_file : function(ctx: PSSL_CTX; const _file: PIdAnsiChar; _type: TIdC_INT): TIdC_INT cdecl = nil;
  16744. {$EXTERNALSYM SSL_CTX_use_PrivateKey}
  16745. SSL_CTX_use_PrivateKey : function(ctx: PSSL_CTX; pkey: PEVP_PKEY): TIdC_INT cdecl = nil;
  16746. {$EXTERNALSYM SSL_CTX_use_certificate}
  16747. SSL_CTX_use_certificate : function(ctx: PSSL_CTX; x: PX509): TIdC_INT cdecl = nil;
  16748. {$EXTERNALSYM SSL_CTX_use_certificate_file}
  16749. SSL_CTX_use_certificate_file : function(ctx: PSSL_CTX; const _file: PIdAnsiChar; _type: TIdC_INT): TIdC_INT cdecl = nil;
  16750. {$EXTERNALSYM SSL_CTX_use_certificate_chain_file} //OpenSSL 1.0.2
  16751. SSL_CTX_use_certificate_chain_file : function(ctx : PSSL_CTX; _file : PIdAnsiChar) : TIdC_INT cdecl = nil;
  16752. {$EXTERNALSYM SSL_load_error_strings}
  16753. SSL_load_error_strings : procedure cdecl = nil;
  16754. {$EXTERNALSYM SSL_state_string_long}
  16755. SSL_state_string_long : function(s: PSSL): PIdAnsiChar cdecl = nil;
  16756. {$EXTERNALSYM SSL_alert_desc_string_long}
  16757. SSL_alert_desc_string_long : function(value : TIdC_INT) : PIdAnsiChar cdecl = nil;
  16758. {$EXTERNALSYM SSL_alert_type_string_long}
  16759. SSL_alert_type_string_long : function(value : TIdC_INT) : PIdAnsiChar cdecl = nil;
  16760. {$EXTERNALSYM SSL_get_peer_certificate}
  16761. SSL_get_peer_certificate : function(s: PSSL): PX509 cdecl = nil;
  16762. {$EXTERNALSYM SSL_CTX_set_verify}
  16763. SSL_CTX_set_verify : procedure(ctx: PSSL_CTX; mode: TIdC_INT; callback: TSSL_CTX_set_verify_callback) cdecl = nil;
  16764. {$EXTERNALSYM SSL_CTX_set_verify_depth}
  16765. SSL_CTX_set_verify_depth : procedure(ctx: PSSL_CTX; depth: TIdC_INT) cdecl = nil;
  16766. {$EXTERNALSYM SSL_CTX_get_verify_depth}
  16767. SSL_CTX_get_verify_depth : function (ctx: PSSL_CTX): TIdC_INT cdecl = nil;
  16768. {$EXTERNALSYM SSL_CTX_set_default_passwd_cb}
  16769. SSL_CTX_set_default_passwd_cb : procedure(ctx: PSSL_CTX; cb: ppem_password_cb) cdecl = nil;
  16770. {$EXTERNALSYM SSL_CTX_set_default_passwd_cb_userdata}
  16771. SSL_CTX_set_default_passwd_cb_userdata: procedure(ctx: PSSL_CTX; u: Pointer) cdecl = nil;
  16772. {$EXTERNALSYM SSL_CTX_check_private_key}
  16773. SSL_CTX_check_private_key : function(ctx: PSSL_CTX): TIdC_INT cdecl = nil;
  16774. {$EXTERNALSYM SSL_new}
  16775. SSL_new : function(ctx: PSSL_CTX): PSSL cdecl = nil;
  16776. {$EXTERNALSYM SSL_free}
  16777. SSL_free : procedure(ssl: PSSL) cdecl = nil;
  16778. {$EXTERNALSYM SSL_accept}
  16779. SSL_accept : function(ssl: PSSL): TIdC_INT cdecl = nil;
  16780. {$EXTERNALSYM SSL_connect}
  16781. SSL_connect : function(ssl: PSSL): TIdC_INT cdecl = nil;
  16782. {$EXTERNALSYM SSL_read}
  16783. SSL_read : function(ssl: PSSL; buf: Pointer; num: TIdC_INT): TIdC_INT cdecl = nil;
  16784. {$EXTERNALSYM SSL_peek}
  16785. SSL_peek : function(ssl: PSSL; buf: Pointer; num: TIdC_INT): TIdC_INT cdecl = nil;
  16786. {$EXTERNALSYM SSL_write}
  16787. SSL_write : function(ssl: PSSL; const buf: Pointer; num: TIdC_INT): TIdC_INT cdecl = nil;
  16788. {$EXTERNALSYM SSL_pending}
  16789. SSL_pending : function(ssl : PSSL) : TIdC_INT cdecl = nil;
  16790. {$EXTERNALSYM SSL_CTX_ctrl}
  16791. //long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, void *parg);
  16792. SSL_CTX_ctrl : function(ssl: PSSL_CTX; cmd: TIdC_INT; larg: TIdC_LONG; parg: Pointer): TIdC_LONG cdecl = nil;
  16793. {$EXTERNALSYM SSL_ctrl}
  16794. //long SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
  16795. SSL_ctrl : function(ssl : PSSL; cmd : TIdC_INT; larg : TIdC_LONG; parg : Pointer) : TIdC_LONG cdecl = nil;
  16796. {$EXTERNALSYM SSL_callback_ctrl}
  16797. //long SSL_callback_ctrl(SSL *, int, void (*)(void));
  16798. SSL_callback_ctrl : function(ssl : PSSL; cmd : TIdC_INT; fp : SSL_callback_ctrl_fp) : TIdC_LONG cdecl = nil;
  16799. {$EXTERNALSYM SSL_CTX_callback_ctrl}
  16800. //long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void));
  16801. SSL_CTX_callback_ctrl : function(ssl : PSSL_CTX; cmd : TIdC_INT; fp : SSL_callback_ctrl_fp) : TIdC_LONG cdecl = nil;
  16802. {$EXTERNALSYM SSL_get_error}
  16803. SSL_get_error : function(s: PSSL; ret_code: TIdC_INT): TIdC_INT cdecl = nil;
  16804. {$EXTERNALSYM SSLv2_method}
  16805. SSLv2_method : function: PSSL_METHOD cdecl = nil; // SSLv2
  16806. {$EXTERNALSYM SSLv2_server_method}
  16807. SSLv2_server_method : function: PSSL_METHOD cdecl = nil; // SSLv2
  16808. {$EXTERNALSYM SSLv2_client_method}
  16809. SSLv2_client_method : function: PSSL_METHOD cdecl = nil; // SSLv2
  16810. {$EXTERNALSYM SSLv3_method}
  16811. SSLv3_method : function: PSSL_METHOD cdecl = nil; // SSLv3
  16812. {$EXTERNALSYM SSLv3_server_method}
  16813. SSLv3_server_method : function: PSSL_METHOD cdecl = nil; // SSLv3
  16814. {$EXTERNALSYM SSLv3_client_method}
  16815. SSLv3_client_method : function: PSSL_METHOD cdecl = nil; // SSLv3
  16816. {$EXTERNALSYM SSLv23_method}
  16817. SSLv23_method : function: PSSL_METHOD cdecl = nil; // SSLv3 but can rollback to v2
  16818. {$EXTERNALSYM SSLv23_server_method}
  16819. SSLv23_server_method : function: PSSL_METHOD cdecl = nil; // SSLv3 but can rollback to v2
  16820. {$EXTERNALSYM SSLv23_client_method}
  16821. SSLv23_client_method : function: PSSL_METHOD cdecl = nil; // SSLv3 but can rollback to v2
  16822. {$EXTERNALSYM TLSv1_method}
  16823. TLSv1_method : function: PSSL_METHOD cdecl = nil; // TLSv1.0
  16824. {$EXTERNALSYM TLSv1_server_method}
  16825. TLSv1_server_method : function: PSSL_METHOD cdecl = nil; // TLSv1.0
  16826. {$EXTERNALSYM TLSv1_client_method}
  16827. TLSv1_client_method : function: PSSL_METHOD cdecl = nil; // TLSv1.0
  16828. {$EXTERNALSYM TLSv1_1_method}
  16829. TLSv1_1_method : function : PSSL_METHOD cdecl = nil; //TLS1.1
  16830. {$EXTERNALSYM TLSv1_1_server_method}
  16831. TLSv1_1_server_method : function : PSSL_METHOD cdecl = nil; //TLS1.1
  16832. {$EXTERNALSYM TLSv1_1_client_method}
  16833. TLSv1_1_client_method : function : PSSL_METHOD cdecl = nil; //TLS1.1
  16834. {$EXTERNALSYM TLSv1_2_method}
  16835. TLSv1_2_method : function : PSSL_METHOD cdecl = nil; //* TLSv1.2 */
  16836. {$EXTERNALSYM TLSv1_2_server_method}
  16837. TLSv1_2_server_method : function : PSSL_METHOD cdecl = nil; //* TLSv1.2 */
  16838. {$EXTERNALSYM TLSv1_2_client_method}
  16839. TLSv1_2_client_method : function : PSSL_METHOD cdecl = nil; //* TLSv1.2 */
  16840. {$EXTERNALSYM DTLSv1_method}
  16841. DTLSv1_method : function: PSSL_METHOD cdecl = nil; // DTLSv1.0
  16842. {$EXTERNALSYM DTLSv1_server_method}
  16843. DTLSv1_server_method : function: PSSL_METHOD cdecl = nil; // DTLSv1.0
  16844. {$EXTERNALSYM DTLSv1_client_method}
  16845. DTLSv1_client_method : function: PSSL_METHOD cdecl = nil; // DTLSv1.0
  16846. {$EXTERNALSYM SSL_shutdown}
  16847. SSL_shutdown : function(s: PSSL): TIdC_INT cdecl = nil;
  16848. {$EXTERNALSYM SSL_set_connect_state}
  16849. SSL_set_connect_state : procedure(s: PSSL) cdecl = nil;
  16850. {$EXTERNALSYM SSL_set_accept_state}
  16851. SSL_set_accept_state : procedure(s: PSSL) cdecl = nil;
  16852. {$EXTERNALSYM SSL_set_shutdown}
  16853. SSL_set_shutdown : procedure(ssl: PSSL; mode: TIdC_INT) cdecl = nil;
  16854. {$EXTERNALSYM SSL_CTX_load_verify_locations}
  16855. SSL_CTX_load_verify_locations : function(ctx: PSSL_CTX; const CAfile: PIdAnsiChar; const CApath: PIdAnsiChar): TIdC_INT cdecl = nil;
  16856. {$EXTERNALSYM SSL_get_session}
  16857. SSL_get_session : function(const ssl: PSSL): PSSL_SESSION cdecl = nil;
  16858. {$EXTERNALSYM SSLeay_add_ssl_algorithms}
  16859. SSLeay_add_ssl_algorithms : function: TIdC_INT cdecl = nil;
  16860. // SSL_set_app_data : function(s: PSSL; arg: Pointer): Integer cdecl = nil;
  16861. // SSL_get_app_data : function(s: PSSL): Pointer cdecl = nil;
  16862. {$EXTERNALSYM SSL_SESSION_get_id}
  16863. SSL_SESSION_get_id : function(const s: PSSL_SESSION; length: PIdC_UINT): PIdAnsiChar cdecl = nil;
  16864. {$EXTERNALSYM SSL_copy_session_id}
  16865. SSL_copy_session_id : procedure(sslTo: PSSL; const sslFrom: PSSL) cdecl = nil;
  16866. {$EXTERNALSYM X509_NAME_oneline}
  16867. X509_NAME_oneline : function(a: PX509_NAME; buf: PIdAnsiChar; size: TIdC_INT): PIdAnsiChar cdecl = nil;
  16868. {$EXTERNALSYM X509_NAME_cmp}
  16869. X509_NAME_cmp : function(const a, b: PX509_NAME): TIdC_INT cdecl = nil;
  16870. {$EXTERNALSYM X509_NAME_hash}
  16871. X509_NAME_hash : function(x: PX509_NAME): TIdC_ULONG cdecl = nil;
  16872. {$EXTERNALSYM X509_set_issuer_name}
  16873. X509_set_issuer_name : function(x: PX509; name: PX509_NAME): TIdC_INT cdecl = nil;
  16874. {$EXTERNALSYM X509_get_issuer_name}
  16875. X509_get_issuer_name : function(a: PX509): PX509_NAME cdecl = nil;
  16876. {$EXTERNALSYM X509_set_subject_name}
  16877. X509_set_subject_name : function(x: PX509; name: PX509_NAME): TIdC_INT cdecl = nil;
  16878. {$EXTERNALSYM X509_get_subject_name}
  16879. X509_get_subject_name : function(a: PX509): PX509_NAME cdecl = nil;
  16880. {$EXTERNALSYM OBJ_obj2nid}
  16881. OBJ_obj2nid : function (const o: PASN1_OBJECT): TIdC_INT cdecl = nil;
  16882. {$EXTERNALSYM OBJ_nid2obj}
  16883. OBJ_nid2obj : function (n : TIdC_INT) : PASN1_OBJECT cdecl = nil;
  16884. {$EXTERNALSYM OBJ_nid2ln}
  16885. OBJ_nid2ln : function (n : TIdC_INT) : PIdAnsiChar cdecl = nil;
  16886. {$EXTERNALSYM OBJ_nid2sn}
  16887. OBJ_nid2sn : function (n : TIdC_INT) : PIdAnsiChar cdecl = nil;
  16888. {$EXTERNALSYM X509_digest}
  16889. X509_digest : function(const data: PX509; const _type: PEVP_MD;
  16890. md: PByte; var len: TIdC_UINT): TIdC_INT cdecl = nil;
  16891. {$IFNDEF OPENSSL_NO_SHA512}
  16892. {$EXTERNALSYM EVP_sha512}
  16893. EVP_sha512 : function : PEVP_MD cdecl = nil;
  16894. {$EXTERNALSYM EVP_sha384}
  16895. EVP_sha384 : function : PEVP_MD cdecl = nil;
  16896. {$ENDIF}
  16897. {$IFNDEF OPENSSL_NO_SHA256}
  16898. {$EXTERNALSYM EVP_sha256}
  16899. EVP_sha256 : function : PEVP_MD cdecl = nil;
  16900. {$EXTERNALSYM EVP_sha224}
  16901. EVP_sha224 : function : PEVP_MD cdecl = nil;
  16902. {$ENDIF}
  16903. {$IFNDEF OPENSSL_NO_SHA}
  16904. {$EXTERNALSYM EVP_sha}
  16905. EVP_sha : function : PEVP_MD cdecl = nil;
  16906. {$EXTERNALSYM EVP_sha1}
  16907. EVP_sha1 : function: PEVP_MD cdecl = nil;
  16908. {$EXTERNALSYM EVP_dss}
  16909. EVP_dss : function : PEVP_MD cdecl = nil;
  16910. {$EXTERNALSYM EVP_dss1}
  16911. EVP_dss1 : function : PEVP_MD cdecl = nil;
  16912. {$EXTERNALSYM EVP_ecdsa}
  16913. EVP_ecdsa : function : PEVP_MD cdecl = nil;
  16914. {$ENDIF}
  16915. {$ifndef OPENSSL_NO_MDC2}
  16916. {$EXTERNALSYM EVP_mdc2}
  16917. EVP_mdc2 : function : PEVP_MD cdecl = nil;
  16918. {$endif}
  16919. {$IFNDEF OPENSSL_NO_MD5}
  16920. {$EXTERNALSYM EVP_md5}
  16921. EVP_md5 : function: PEVP_MD cdecl = nil;
  16922. {$ENDIF}
  16923. {$IFNDEF OPENSSL_NO_MD4}
  16924. {$EXTERNALSYM EVP_md4}
  16925. EVP_md4 : function: PEVP_MD cdecl = nil;
  16926. {$ENDIF}
  16927. {$IFNDEF OPENSSL_NO_MD2}
  16928. {$EXTERNALSYM EVP_md2}
  16929. EVP_md2 : function: PEVP_MD cdecl = nil;
  16930. {$ENDIF}
  16931. {$ifndef OPENSSL_NO_RIPEMD}
  16932. {$EXTERNALSYM EVP_ripemd160}
  16933. EVP_ripemd160: function: PEVP_MD cdecl = nil;
  16934. {$endif}
  16935. {$ifndef OPENSSL_NO_WHIRLPOOL}
  16936. {$EXTERNALSYM EVP_whirlpool}
  16937. EVP_whirlpool: function: PEVP_MD cdecl = nil;
  16938. {$endif}
  16939. {$EXTERNALSYM EVP_md_null}
  16940. EVP_md_null : function : PEVP_MD cdecl = nil;
  16941. {$ifndef OPENSSL_NO_DES}
  16942. {$EXTERNALSYM EVP_des_ecb}
  16943. EVP_des_ecb : function : PEVP_CIPHER cdecl = nil;
  16944. {$EXTERNALSYM EVP_des_ede}
  16945. EVP_des_ede : function : PEVP_CIPHER cdecl = nil;
  16946. {$EXTERNALSYM EVP_des_ede3}
  16947. EVP_des_ede3 : function : PEVP_CIPHER cdecl = nil;
  16948. {$EXTERNALSYM EVP_des_ede_ecb}
  16949. EVP_des_ede_ecb : function : PEVP_CIPHER cdecl = nil;
  16950. {$EXTERNALSYM EVP_des_ede3_ecb}
  16951. EVP_des_ede3_ecb : function : PEVP_CIPHER cdecl = nil;
  16952. {$EXTERNALSYM EVP_des_cfb64}
  16953. EVP_des_cfb64: function : PEVP_CIPHER cdecl = nil;
  16954. // # define EVP_des_cfb EVP_des_cfb64
  16955. {$EXTERNALSYM EVP_des_cfb1}
  16956. EVP_des_cfb1: function : PEVP_CIPHER cdecl = nil;
  16957. {$EXTERNALSYM EVP_des_cfb8}
  16958. EVP_des_cfb8 : function : PEVP_CIPHER cdecl = nil;
  16959. {$EXTERNALSYM EVP_des_ede_cfb64}
  16960. EVP_des_ede_cfb64 :function : PEVP_CIPHER cdecl = nil;
  16961. //# define EVP_des_ede_cfb EVP_des_ede_cfb64
  16962. //#if 0
  16963. {/$EXTERNALSYM EVP_des_ede_cfb1}
  16964. //EVP_des_ede_cfb1 :function : PEVP_CIPHER cdecl = nil;
  16965. {/$EXTERNALSYM EVP_des_ede_cfb8}
  16966. //EVP_des_ede_cfb8 : function : PEVP_CIPHER cdecl = nil;
  16967. //#endif
  16968. {$EXTERNALSYM EVP_des_ede3_cfb64}
  16969. EVP_des_ede3_cfb64 :function : PEVP_CIPHER cdecl = nil;
  16970. //# define EVP_des_ede3_cfb EVP_des_ede3_cfb64
  16971. {$EXTERNALSYM EVP_des_ede3_cfb1}
  16972. EVP_des_ede3_cfb1 :function : PEVP_CIPHER cdecl = nil;
  16973. {$EXTERNALSYM EVP_des_ede3_cfb8}
  16974. EVP_des_ede3_cfb8 :function : PEVP_CIPHER cdecl = nil;
  16975. {$EXTERNALSYM EVP_des_ofb}
  16976. EVP_des_ofb :function : PEVP_CIPHER cdecl = nil;
  16977. {$EXTERNALSYM EVP_des_ede_ofb}
  16978. EVP_des_ede_ofb :function : PEVP_CIPHER cdecl = nil;
  16979. {$EXTERNALSYM EVP_des_ede3_ofb}
  16980. EVP_des_ede3_ofb :function : PEVP_CIPHER cdecl = nil;
  16981. {$EXTERNALSYM EVP_des_cbc}
  16982. EVP_des_cbc :function : PEVP_CIPHER cdecl = nil;
  16983. {$EXTERNALSYM EVP_des_ede_cbc}
  16984. EVP_des_ede_cbc :function : PEVP_CIPHER cdecl = nil;
  16985. // EVP_des_ede3_cbc :function : PEVP_CIPHER cdecl = nil;
  16986. {$EXTERNALSYM EVP_desx_cbc}
  16987. EVP_desx_cbc :function : PEVP_CIPHER cdecl = nil;
  16988. //* This should now be supported through the dev_crypto ENGINE. But also, why are
  16989. // * rc4 and md5 declarations made here inside a "NO_DES" precompiler branch? */
  16990. //#if 0
  16991. {$ifdef OPENSSL_OPENBSD_DEV_CRYPTO}
  16992. {$EXTERNALSYM EVP_dev_crypto_des_ede3_cbc}
  16993. EVP_dev_crypto_des_ede3_cbc : function : PEVP_CIPHER cdecl = nil;
  16994. {$EXTERNALSYM EVP_dev_crypto_rc4}
  16995. EVP_dev_crypto_rc4 : function : PEVP_CIPHER cdecl = nil;
  16996. {$EXTERNALSYM EVP_dev_crypto_md5}
  16997. EVP_dev_crypto_md5 : function : PEVP_MD cdecl = nil;
  16998. {$endif}
  16999. //#endif
  17000. {$endif}
  17001. {$ifndef OPENSSL_NO_RC4}
  17002. {$EXTERNALSYM EVP_rc4}
  17003. EVP_rc4: function : PEVP_CIPHER cdecl = nil;
  17004. {$EXTERNALSYM EVP_rc4_40}
  17005. EVP_rc4_40: function : PEVP_CIPHER cdecl = nil;
  17006. {$ifndef OPENSSL_NO_MD5}
  17007. {$EXTERNALSYM EVP_rc4_hmac_md5}
  17008. EVP_rc4_hmac_md5: function : PEVP_CIPHER cdecl = nil;
  17009. {$endif}
  17010. {$endif}
  17011. {$ifndef OPENSSL_NO_IDEA}
  17012. {$EXTERNALSYM EVP_idea_ecb}
  17013. EVP_idea_ecb: function : PEVP_CIPHER cdecl = nil;
  17014. {$EXTERNALSYM EVP_idea_cfb64}
  17015. EVP_idea_cfb64: function : PEVP_CIPHER cdecl = nil;
  17016. {$EXTERNALSYM EVP_idea_ofb}
  17017. EVP_idea_ofb: function : PEVP_CIPHER cdecl = nil;
  17018. {$EXTERNALSYM EVP_idea_cbc}
  17019. EVP_idea_cbc: function : PEVP_CIPHER cdecl = nil;
  17020. {$endif}
  17021. {$ifndef OPENSSL_NO_RC2}
  17022. {$EXTERNALSYM EVP_rc2_ecb}
  17023. EVP_rc2_ecb: function : PEVP_CIPHER cdecl = nil;
  17024. {$EXTERNALSYM EVP_rc2_cbc}
  17025. EVP_rc2_cbc: function : PEVP_CIPHER cdecl = nil;
  17026. {$EXTERNALSYM EVP_rc2_40_cbc}
  17027. EVP_rc2_40_cbc: function : PEVP_CIPHER cdecl = nil;
  17028. {$EXTERNALSYM EVP_rc2_64_cbc}
  17029. EVP_rc2_64_cbc: function : PEVP_CIPHER cdecl = nil;
  17030. {$EXTERNALSYM EVP_rc2_cfb64}
  17031. EVP_rc2_cfb64: function : PEVP_CIPHER cdecl = nil;
  17032. //# define EVP_rc2_cfb EVP_rc2_cfb64
  17033. {$EXTERNALSYM EVP_rc2_ofb}
  17034. EVP_rc2_ofb: function : PEVP_CIPHER cdecl = nil;
  17035. {$endif}
  17036. {$ifndef OPENSSL_NO_BF}
  17037. {$EXTERNALSYM EVP_bf_ecb}
  17038. EVP_bf_ecb: function : PEVP_CIPHER cdecl = nil;
  17039. {$EXTERNALSYM EVP_bf_cbc}
  17040. EVP_bf_cbc: function : PEVP_CIPHER cdecl = nil;
  17041. {$EXTERNALSYM EVP_bf_cfb64}
  17042. EVP_bf_cfb64: function : PEVP_CIPHER cdecl = nil;
  17043. //# define EVP_bf_cfb EVP_bf_cfb64
  17044. {$EXTERNALSYM EVP_bf_ofb}
  17045. EVP_bf_ofb: function : PEVP_CIPHER cdecl = nil;
  17046. {$endif}
  17047. {$ifndef OPENSSL_NO_CAST}
  17048. {$EXTERNALSYM EVP_cast5_ecb}
  17049. EVP_cast5_ecb : function : PEVP_CIPHER cdecl = nil;
  17050. {$EXTERNALSYM EVP_cast5_cbc}
  17051. EVP_cast5_cbc : function : PEVP_CIPHER cdecl = nil;
  17052. {$EXTERNALSYM EVP_cast5_cfb64}
  17053. EVP_cast5_cfb64: function : PEVP_CIPHER cdecl = nil;
  17054. //# define EVP_cast5_cfb EVP_cast5_cfb64
  17055. {$EXTERNALSYM EVP_cast5_ofb}
  17056. EVP_cast5_ofb: function : PEVP_CIPHER cdecl = nil;
  17057. {$endif}
  17058. {$ifndef OPENSSL_NO_RC5}
  17059. {$EXTERNALSYM EVP_rc5_32_12_16_cb}
  17060. EVP_rc5_32_12_16_cbc: function : PEVP_CIPHER cdecl = nil;
  17061. {$EXTERNALSYM EVP_rc5_32_12_16_ecb}
  17062. EVP_rc5_32_12_16_ecb: function : PEVP_CIPHER cdecl = nil;
  17063. {$EXTERNALSYM EVP_rc5_32_12_16_cfb64}
  17064. EVP_rc5_32_12_16_cfb64: function : PEVP_CIPHER cdecl = nil;
  17065. {$EXTERNALSYM EVP_rc5_32_12_16_ofb\}
  17066. EVP_rc5_32_12_16_ofb: function : PEVP_CIPHER cdecl = nil;
  17067. {$endif}
  17068. {$ifndef OPENSSL_NO_AES}
  17069. {$EXTERNALSYM EVP_aes_128_ecb}
  17070. EVP_aes_128_ecb: function : PEVP_CIPHER cdecl = nil;
  17071. {$EXTERNALSYM EVP_aes_128_cbc}
  17072. EVP_aes_128_cbc: function : PEVP_CIPHER cdecl = nil;
  17073. {$EXTERNALSYM EVP_aes_128_cfb1}
  17074. EVP_aes_128_cfb1: function : PEVP_CIPHER cdecl = nil;
  17075. {$EXTERNALSYM EVP_aes_128_cfb8}
  17076. EVP_aes_128_cfb8: function : PEVP_CIPHER cdecl = nil;
  17077. {$EXTERNALSYM EVP_aes_128_cfb128}
  17078. EVP_aes_128_cfb128: function : PEVP_CIPHER cdecl = nil;
  17079. {$EXTERNALSYM EVP_aes_128_ofb}
  17080. EVP_aes_128_ofb: function : PEVP_CIPHER cdecl = nil;
  17081. {$EXTERNALSYM EVP_aes_128_ctr}
  17082. EVP_aes_128_ctr: function : PEVP_CIPHER cdecl = nil;
  17083. {$EXTERNALSYM EVP_aes_128_gcm}
  17084. EVP_aes_128_gcm: function : PEVP_CIPHER cdecl = nil;
  17085. {$EXTERNALSYM EVP_aes_128_ccm}
  17086. EVP_aes_128_ccm: function : PEVP_CIPHER cdecl = nil;
  17087. {$EXTERNALSYM EVP_aes_128_xts}
  17088. EVP_aes_128_xts: function : PEVP_CIPHER cdecl = nil;
  17089. {$EXTERNALSYM EVP_aes_192_ecb}
  17090. EVP_aes_192_ecb: function : PEVP_CIPHER cdecl = nil;
  17091. {$EXTERNALSYM EVP_aes_192_cbc}
  17092. EVP_aes_192_cbc: function : PEVP_CIPHER cdecl = nil;
  17093. {$EXTERNALSYM EVP_aes_192_cfb1}
  17094. EVP_aes_192_cfb1: function : PEVP_CIPHER cdecl = nil;
  17095. {$EXTERNALSYM EVP_aes_192_cfb8}
  17096. EVP_aes_192_cfb8: function : PEVP_CIPHER cdecl = nil;
  17097. {$EXTERNALSYM EVP_aes_192_cfb128}
  17098. EVP_aes_192_cfb128: function : PEVP_CIPHER cdecl = nil;
  17099. //# define EVP_aes_192_cfb EVP_aes_192_cfb128
  17100. {$EXTERNALSYM EVP_aes_192_ofb}
  17101. EVP_aes_192_ofb: function : PEVP_CIPHER cdecl = nil;
  17102. {$EXTERNALSYM EVP_aes_192_ctr}
  17103. EVP_aes_192_ctr: function : PEVP_CIPHER cdecl = nil;
  17104. {$EXTERNALSYM EVP_aes_192_gcm}
  17105. EVP_aes_192_gcm: function : PEVP_CIPHER cdecl = nil;
  17106. {$EXTERNALSYM EVP_aes_192_ccm}
  17107. EVP_aes_192_ccm: function : PEVP_CIPHER cdecl = nil;
  17108. {$EXTERNALSYM EVP_aes_256_ecb}
  17109. EVP_aes_256_ecb: function : PEVP_CIPHER cdecl = nil;
  17110. {$EXTERNALSYM EVP_aes_256_cbc}
  17111. EVP_aes_256_cbc: function : PEVP_CIPHER cdecl = nil;
  17112. {$EXTERNALSYM EVP_aes_256_cfb1}
  17113. EVP_aes_256_cfb1: function : PEVP_CIPHER cdecl = nil;
  17114. {$EXTERNALSYM EVP_aes_256_cfb8}
  17115. EVP_aes_256_cfb8: function : PEVP_CIPHER cdecl = nil;
  17116. {$EXTERNALSYM EVP_aes_256_cfb128}
  17117. EVP_aes_256_cfb128: function : PEVP_CIPHER cdecl = nil;
  17118. {$EXTERNALSYM EVP_aes_256_ofb}
  17119. EVP_aes_256_ofb: function : PEVP_CIPHER cdecl = nil;
  17120. {$EXTERNALSYM EVP_aes_256_ctr}
  17121. EVP_aes_256_ctr: function : PEVP_CIPHER cdecl = nil;
  17122. {$EXTERNALSYM EVP_aes_256_gcm}
  17123. EVP_aes_256_gcm: function : PEVP_CIPHER cdecl = nil;
  17124. {$EXTERNALSYM EVP_aes_256_ccm}
  17125. EVP_aes_256_ccm: function : PEVP_CIPHER cdecl = nil;
  17126. {$EXTERNALSYM EVP_aes_256_xts}
  17127. EVP_aes_256_xts: function : PEVP_CIPHER cdecl = nil;
  17128. {$ifndef OPENSSL_NO_SHA}
  17129. {$ifndef OPENSSL_NO_SHA1}
  17130. {$EXTERNALSYM EVP_aes_128_cbc_hmac_sha1}
  17131. EVP_aes_128_cbc_hmac_sha1 : function : PEVP_CIPHER cdecl = nil;
  17132. {$EXTERNALSYM EVP_aes_256_cbc_hmac_sha1}
  17133. EVP_aes_256_cbc_hmac_sha1 : function : PEVP_CIPHER cdecl = nil;
  17134. {$endif}
  17135. {$endif}
  17136. {$endif}
  17137. {$ifndef OPENSSL_NO_CAMELLIA}
  17138. {$EXTERNALSYM EVP_camellia_128_ecb}
  17139. EVP_camellia_128_ecb : function : PEVP_CIPHER cdecl = nil;
  17140. {$EXTERNALSYM EVP_camellia_128_cbc}
  17141. EVP_camellia_128_cbc : function : PEVP_CIPHER cdecl = nil;
  17142. {$EXTERNALSYM EVP_camellia_128_cfb1}
  17143. EVP_camellia_128_cfb1 : function : PEVP_CIPHER cdecl = nil;
  17144. {$EXTERNALSYM EVP_camellia_128_cfb8}
  17145. EVP_camellia_128_cfb8 : function : PEVP_CIPHER cdecl = nil;
  17146. {$EXTERNALSYM EVP_camellia_128_cfb128}
  17147. EVP_camellia_128_cfb128 : function : PEVP_CIPHER cdecl = nil;
  17148. {$EXTERNALSYM EVP_camellia_128_ofb}
  17149. EVP_camellia_128_ofb : function : PEVP_CIPHER cdecl = nil;
  17150. {$EXTERNALSYM EVP_camellia_192_ecb}
  17151. EVP_camellia_192_ecb : function : PEVP_CIPHER cdecl = nil;
  17152. {$EXTERNALSYM EVP_camellia_192_cbc}
  17153. EVP_camellia_192_cbc : function : PEVP_CIPHER cdecl = nil;
  17154. {$EXTERNALSYM EVP_camellia_192_cfb1}
  17155. EVP_camellia_192_cfb1 : function : PEVP_CIPHER cdecl = nil;
  17156. {$EXTERNALSYM EVP_camellia_192_cfb8}
  17157. EVP_camellia_192_cfb8 : function : PEVP_CIPHER cdecl = nil;
  17158. {$EXTERNALSYM EVP_camellia_192_cfb128}
  17159. EVP_camellia_192_cfb128 : function : PEVP_CIPHER cdecl = nil;
  17160. {$EXTERNALSYM EVP_camellia_192_ofb}
  17161. EVP_camellia_192_ofb : function : PEVP_CIPHER cdecl = nil;
  17162. {$EXTERNALSYM EVP_camellia_256_ecb}
  17163. EVP_camellia_256_ecb : function : PEVP_CIPHER cdecl = nil;
  17164. {$EXTERNALSYM EVP_camellia_256_cbc}
  17165. EVP_camellia_256_cbc : function : PEVP_CIPHER cdecl = nil;
  17166. {$EXTERNALSYM EVP_camellia_256_cfb1}
  17167. EVP_camellia_256_cfb1 : function : PEVP_CIPHER cdecl = nil;
  17168. {$EXTERNALSYM EVP_camellia_256_cfb8}
  17169. EVP_camellia_256_cfb8 : function : PEVP_CIPHER cdecl = nil;
  17170. {$EXTERNALSYM EVP_camellia_256_cfb128}
  17171. EVP_camellia_256_cfb128 : function : PEVP_CIPHER cdecl = nil;
  17172. {$EXTERNALSYM EVP_camellia_256_ofb}
  17173. EVP_camellia_256_ofb : function : PEVP_CIPHER cdecl = nil;
  17174. {$endif}
  17175. {$ifndef OPENSSL_NO_SEED}
  17176. {$EXTERNALSYM EVP_seed_ecb}
  17177. EVP_seed_ecb : function : PEVP_CIPHER cdecl = nil;
  17178. {$EXTERNALSYM EVP_seed_cbc}
  17179. EVP_seed_cbc : function : PEVP_CIPHER cdecl = nil;
  17180. {$EXTERNALSYM EVP_seed_cfb128}
  17181. EVP_seed_cfb128 : function : PEVP_CIPHER cdecl = nil;
  17182. {$EXTERNALSYM EVP_seed_ofb}
  17183. EVP_seed_ofb : function : PEVP_CIPHER cdecl = nil;
  17184. {$endif}
  17185. {$EXTERNALSYM EVP_add_cipher}
  17186. EVP_add_cipher : function (cipher : PEVP_CIPHER) : TIdC_INT cdecl = nil;
  17187. {$EXTERNALSYM EVP_add_digest}
  17188. EVP_add_digest : function(digest : PEVP_MD) : TIdC_INT cdecl = nil;
  17189. {$EXTERNALSYM EVP_CIPHER_do_all}
  17190. EVP_CIPHER_do_all : procedure(fn : EVP_CIPHER_do_all_fn; arg : Pointer) cdecl = nil;
  17191. {$EXTERNALSYM EVP_CIPHER_do_all_sorted}
  17192. EVP_CIPHER_do_all_sorted : procedure(fn : EVP_CIPHER_do_all_fn; arg : Pointer) cdecl = nil;
  17193. {$EXTERNALSYM EVP_MD_do_all}
  17194. EVP_MD_do_all : procedure(fn : EVP_MD_do_all_fn; arg : Pointer) cdecl = nil;
  17195. {$EXTERNALSYM EVP_MD_do_all_sorted}
  17196. EVP_MD_do_all_sorted : procedure(fn : EVP_MD_do_all_fn; arg : Pointer) cdecl = nil;
  17197. {$EXTERNALSYM EVP_PKEY_decrypt_old}
  17198. EVP_PKEY_decrypt_old : function(dec_key : PIdAnsiChar;
  17199. enc_key : PIdAnsiChar; enc_key_len : TIdC_INT;
  17200. private_key : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17201. {$EXTERNALSYM EVP_PKEY_encrypt_old}
  17202. EVP_PKEY_encrypt_old : function(enc_key : PIdAnsiChar;
  17203. key : PIdAnsiChar; key_len : TIdC_INT;
  17204. pub_key : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17205. {$EXTERNALSYM EVP_PKEY_type}
  17206. EVP_PKEY_type : function(_type : TIdC_INT) : TIdC_INT cdecl = nil;
  17207. {$EXTERNALSYM EVP_PKEY_id}
  17208. EVP_PKEY_id : function(pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17209. {$EXTERNALSYM EVP_PKEY_base_id}
  17210. EVP_PKEY_base_id : function(pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17211. {$EXTERNALSYM EVP_PKEY_bits}
  17212. EVP_PKEY_bits : function(pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17213. {$EXTERNALSYM EVP_PKEY_size}
  17214. EVP_PKEY_size : function(pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17215. {$EXTERNALSYM EVP_PKEY_set_type}
  17216. EVP_PKEY_set_type : function(pkey : PEVP_PKEY;_type : TIdC_INT) : TIdC_INT cdecl = nil;
  17217. {$EXTERNALSYM EVP_PKEY_set_type_str}
  17218. EVP_PKEY_set_type_str : function(pkey: PEVP_PKEY; str : PIdAnsiChar; len : TIdC_INT) : TIdC_INT cdecl = nil;
  17219. {$EXTERNALSYM EVP_PKEY_get0}
  17220. EVP_PKEY_get0 : function(pkey : PEVP_PKEY) : Pointer cdecl = nil;
  17221. {$ifndef OPENSSL_NO_RSA}
  17222. //struct rsa_st;
  17223. {$EXTERNALSYM EVP_PKEY_set1_RSA}
  17224. EVP_PKEY_set1_RSA: function(pkey : PEVP_PKEY;key : Prsa_st) : TIdC_INT cdecl = nil;
  17225. {$EXTERNALSYM EVP_PKEY_get1_RSA}
  17226. EVP_PKEY_get1_RSA: function(pkey: PEVP_PKEY) : Prsa_st cdecl = nil;
  17227. {$endif}
  17228. {$ifndef OPENSSL_NO_DSA}
  17229. // struct dsa_st;
  17230. {$EXTERNALSYM EVP_PKEY_set1_DSA}
  17231. EVP_PKEY_set1_DSA: function(pkey : PEVP_PKEY; key : Pdsa_st) : TIdC_INT cdecl = nil;
  17232. {$EXTERNALSYM EVP_PKEY_get1_DSA}
  17233. EVP_PKEY_get1_DSA: function(pkey : PEVP_PKEY) : Pdsa_st cdecl = nil;
  17234. {$endif}
  17235. {$ifndef OPENSSL_NO_DH}
  17236. // struct dh_st;
  17237. {$EXTERNALSYM EVP_PKEY_set1_DH}
  17238. EVP_PKEY_set1_DH: function(pkey : PEVP_PKEY; key : Pdh_st) : TIdC_INT cdecl = nil;
  17239. {$EXTERNALSYM EVP_PKEY_get1_DH}
  17240. EVP_PKEY_get1_DH: function(pkey : PEVP_PKEY) : Pdh_st cdecl = nil;
  17241. {$endif}
  17242. {$ifndef OPENSSL_NO_EC}
  17243. // struct ec_key_st;
  17244. {$EXTERNALSYM EVP_PKEY_set1_EC_KEY}
  17245. EVP_PKEY_set1_EC_KEY : function(pkey : PEVP_PKEY; key : Pec_key_st) : TIdC_INT cdecl = nil;
  17246. {$EXTERNALSYM EVP_PKEY_get1_EC_KEY}
  17247. EVP_PKEY_get1_EC_KEY : function(pkey : PEVP_PKEY) : Pec_key_st cdecl = nil;
  17248. {$endif}
  17249. {$EXTERNALSYM d2i_PublicKey}
  17250. d2i_PublicKey : function(_type : TIdC_INT; a :PPEVP_PKEY; pp : PPIdAnsiChar;
  17251. length : TIdC_LONG) : PEVP_PKEY cdecl = nil;
  17252. {$EXTERNALSYM i2d_PublicKey}
  17253. i2d_PublicKey : function(a : PEVP_PKEY; pp : PPIdAnsiChar) : TIdC_INT cdecl = nil;
  17254. {$EXTERNALSYM d2i_AutoPrivateKey}
  17255. d2i_AutoPrivateKey : function(a : PPEVP_PKEY; pp : PPIdAnsiChar;
  17256. length : TIdC_LONG) : PEVP_PKEY cdecl = nil;
  17257. {$EXTERNALSYM EVP_PKEY_copy_parameters}
  17258. EVP_PKEY_copy_parameters : function(_to : PEVP_PKEY; from : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17259. {$EXTERNALSYM EVP_PKEY_missing_parameters}
  17260. EVP_PKEY_missing_parameters : function(pkey : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17261. {$EXTERNALSYM EVP_PKEY_save_parameters}
  17262. EVP_PKEY_save_parameters : function(pkey : PEVP_PKEY;mode : TIdC_INT) : TIdC_INT cdecl = nil;
  17263. {$EXTERNALSYM EVP_PKEY_cmp_parameters}
  17264. EVP_PKEY_cmp_parameters : function(a : PEVP_PKEY; b : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17265. {$EXTERNALSYM EVP_PKEY_cmp}
  17266. EVP_PKEY_cmp : function(a : PEVP_PKEY; b : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17267. {$EXTERNALSYM EVP_PKEY_print_public}
  17268. EVP_PKEY_print_public : function(_out : PBIO; pkey : PEVP_PKEY;
  17269. indent : TIdC_INT; pctx : PASN1_PCTX) : TIdC_INT cdecl = nil;
  17270. {$EXTERNALSYM EVP_PKEY_print_private}
  17271. EVP_PKEY_print_private : function(_out : PBIO; pkey : PEVP_PKEY;
  17272. indent : TIdC_INT; pctx : PASN1_PCTX) : TIdC_INT cdecl = nil;
  17273. {$EXTERNALSYM EVP_PKEY_print_params}
  17274. EVP_PKEY_print_params : function(_out : PBIO; pkey : PEVP_PKEY;
  17275. indent : TIdC_INT; pctx : PASN1_PCTX) : TIdC_INT cdecl = nil;
  17276. {$EXTERNALSYM EVP_PKEY_get_default_digest_nid}
  17277. EVP_PKEY_get_default_digest_nid : function(pkey : PEVP_PKEY; pnid : PIdC_INT) : TIdC_INT cdecl = nil;
  17278. //* calls methods */
  17279. {$EXTERNALSYM EVP_CIPHER_param_to_asn1}
  17280. EVP_CIPHER_param_to_asn1 : function(c : PEVP_CIPHER_CTX; _type : PASN1_TYPE) : TIdC_INT cdecl = nil;
  17281. {$EXTERNALSYM EVP_CIPHER_asn1_to_param}
  17282. EVP_CIPHER_asn1_to_param : function(c : PEVP_CIPHER_CTX; _type : PASN1_TYPE) : TIdC_INT cdecl = nil;
  17283. //* These are used by EVP_CIPHER methods */
  17284. {$EXTERNALSYM EVP_CIPHER_set_asn1_iv}
  17285. EVP_CIPHER_set_asn1_iv : function(c : PEVP_CIPHER_CTX; _type : PASN1_TYPE) : TIdC_INT cdecl = nil;
  17286. {$EXTERNALSYM EVP_CIPHER_get_asn1_iv}
  17287. EVP_CIPHER_get_asn1_iv : function(c : PEVP_CIPHER_CTX; _type : PASN1_TYPE) : TIdC_INT cdecl = nil;
  17288. //* PKCS5 password based encryption */
  17289. {$EXTERNALSYM PKCS5_PBE_keyivgen}
  17290. PKCS5_PBE_keyivgen : function(ctx : PEVP_CIPHER_CTX; pass : PIdAnsiChar; passlen : TIdC_INT;
  17291. param : PASN1_TYPE; cipher : PEVP_CIPHER; md : PEVP_MD;
  17292. en_de : TIdC_INT) : TIdC_INT cdecl = nil;
  17293. {$EXTERNALSYM PKCS5_PBKDF2_HMAC_SHA1}
  17294. PKCS5_PBKDF2_HMAC_SHA1 : function(pass : PIdAnsiChar; passlen : TIdC_INT;
  17295. salt : PIdAnsiChar; saltlen : TIdC_INT; iter : TIdC_INT;
  17296. keylen : TIdC_INT; _out : PIdAnsiChar) : TIdC_INT cdecl = nil;
  17297. {$EXTERNALSYM PKCS5_PBKDF2_HMAC}
  17298. PKCS5_PBKDF2_HMAC : function(pass : PIdAnsiChar; passlen : TIdC_INT;
  17299. salt : PIdAnsiChar; saltlen : TIdC_INT; iter : TIdC_INT;
  17300. digest : PEVP_MD;
  17301. keylen : TIdC_INT; _out : PIdAnsiChar) : TIdC_INT cdecl = nil;
  17302. {$EXTERNALSYM PKCS5_v2_PBE_keyivgen}
  17303. PKCS5_v2_PBE_keyivgen : function(ctx : PEVP_CIPHER_CTX; pass : PIdAnsiChar; passlen : TIdC_INT;
  17304. param : PASN1_TYPE; cipher : PEVP_CIPHER; md : PEVP_MD;
  17305. en_de : TIdC_INT) : TIdC_INT cdecl = nil;
  17306. {$EXTERNALSYM PKCS5_PBE_add}
  17307. PKCS5_PBE_add : procedure cdecl = nil;
  17308. {$EXTERNALSYM EVP_PBE_CipherInit}
  17309. EVP_PBE_CipherInit : function (pbe_obj : PASN1_OBJECT; pass : PIdAnsiChar; passlen : TIdC_INT;
  17310. param : PASN1_TYPE; ctx : PEVP_CIPHER_CTX; en_de : TIdC_INT) : TIdC_INT cdecl = nil;
  17311. {$EXTERNALSYM EVP_PBE_alg_add_type}
  17312. EVP_PBE_alg_add_type : function(pbe_type : TIdC_INT; pbe_nid : TIdC_INT; cipher_nid : TIdC_INT; md_nid : TIdC_INT;
  17313. keygen : PEVP_PBE_KEYGEN) : TIdC_INT cdecl = nil;
  17314. {$EXTERNALSYM EVP_PBE_alg_add}
  17315. EVP_PBE_alg_add : function(nid : TIdC_INT; cipher : PEVP_CIPHER; md : PEVP_MD;
  17316. keygen :PEVP_PBE_KEYGEN) : TIdC_INT cdecl = nil;
  17317. {$EXTERNALSYM EVP_PBE_find}
  17318. EVP_PBE_find : function(_type : TIdC_INT; pbe_nid : TIdC_INT;
  17319. pcnid : PIdC_INT; pmnid : PIdC_INT; var pkeygen : PEVP_PBE_KEYGEN) : TIdC_INT cdecl = nil;
  17320. {$EXTERNALSYM EVP_PBE_cleanup}
  17321. EVP_PBE_cleanup : procedure cdecl = nil;
  17322. {$EXTERNALSYM EVP_PKEY_asn1_get_count}
  17323. EVP_PKEY_asn1_get_count : function : TIdC_INT cdecl = nil;
  17324. {$EXTERNALSYM EVP_PKEY_asn1_get0}
  17325. EVP_PKEY_asn1_get0 : function(idx : TIdC_INT) : PEVP_PKEY_ASN1_METHOD cdecl = nil;
  17326. {$EXTERNALSYM EVP_PKEY_asn1_find}
  17327. EVP_PKEY_asn1_find : function(pe :PPENGINE; _type : TIdC_INT) : PEVP_PKEY_ASN1_METHOD cdecl = nil;
  17328. {$EXTERNALSYM EVP_PKEY_asn1_find_str}
  17329. EVP_PKEY_asn1_find_str : function(pe : PPENGINE;
  17330. str : PIdAnsiChar; len : TIdC_INT) : PEVP_PKEY_ASN1_METHOD cdecl = nil;
  17331. {$EXTERNALSYM EVP_PKEY_asn1_add0}
  17332. EVP_PKEY_asn1_add0 : function(ameth : PEVP_PKEY_ASN1_METHOD) : TIdC_INT cdecl = nil;
  17333. {$EXTERNALSYM EVP_PKEY_asn1_add_alias}
  17334. EVP_PKEY_asn1_add_alias : function(_to : TIdC_INT; from : TIdC_INT) : TIdC_INT cdecl = nil;
  17335. {$EXTERNALSYM EVP_PKEY_asn1_get0_info}
  17336. EVP_PKEY_asn1_get0_info : function(ppkey_id : PIdC_int; pkey_base_id : PIdC_INT; ppkey_flags : PIdC_INT;
  17337. pinfo : PPIdAnsiChar; ppem_str : PPIdAnsiChar;
  17338. ameth : PEVP_PKEY_ASN1_METHOD) : TIdC_INT cdecl = nil;
  17339. {$EXTERNALSYM EVP_PKEY_get0_asn1}
  17340. EVP_PKEY_get0_asn1 : function(pkey : PEVP_PKEY) : PEVP_PKEY_ASN1_METHOD cdecl = nil;
  17341. {$EXTERNALSYM EVP_PKEY_asn1_new}
  17342. EVP_PKEY_asn1_new : function(id : TIdC_INT; flags : TIdC_INT;
  17343. pem_str : PIdAnsiChar; info : PIdAnsiChar) : PEVP_PKEY_ASN1_METHOD cdecl = nil;
  17344. {$EXTERNALSYM EVP_PKEY_asn1_copy}
  17345. EVP_PKEY_asn1_copy : procedure(dst : PEVP_PKEY_ASN1_METHOD;
  17346. src : PEVP_PKEY_ASN1_METHOD) cdecl = nil;
  17347. {$EXTERNALSYM EVP_PKEY_asn1_free}
  17348. EVP_PKEY_asn1_free : procedure(ameth : PEVP_PKEY_ASN1_METHOD) cdecl = nil;
  17349. {$EXTERNALSYM EVP_PKEY_asn1_set_public}
  17350. EVP_PKEY_asn1_set_public : procedure(ameth : PEVP_PKEY_ASN1_METHOD;
  17351. pub_decode : EVP_PKEY_asn1_set_public_pub_decode;
  17352. pub_encode : EVP_PKEY_asn1_set_public_pub_encode;
  17353. pub_cmp : EVP_PKEY_asn1_set_public_pub_cmp;
  17354. pub_print : EVP_PKEY_asn1_set_public_pub_print;
  17355. pkey_size : EVP_PKEY_asn1_set_public_pub_pkey_size;
  17356. pkey_bits : EVP_PKEY_asn1_set_public_pkey_bits) cdecl = nil;
  17357. {$EXTERNALSYM EVP_PKEY_asn1_set_private}
  17358. EVP_PKEY_asn1_set_private : procedure(ameth : PEVP_PKEY_ASN1_METHOD;
  17359. priv_decode : EVP_PKEY_asn1_set_private_priv_decode;
  17360. priv_encode : EVP_PKEY_asn1_set_private_priv_encode;
  17361. priv_print : EVP_PKEY_asn1_set_private_priv_print) cdecl = nil;
  17362. {$EXTERNALSYM EVP_PKEY_asn1_set_param}
  17363. EVP_PKEY_asn1_set_param : procedure(ameth : PEVP_PKEY_ASN1_METHOD;
  17364. param_decode : EVP_PKEY_asn1_set_param_param_decode;
  17365. param_encode : EVP_PKEY_asn1_set_param_param_encode;
  17366. param_missing : EVP_PKEY_asn1_set_param_param_missing;
  17367. param_copy : EVP_PKEY_asn1_set_param_param_copy;
  17368. param_cmp : EVP_PKEY_asn1_set_param_param_cmp;
  17369. param_print : EVP_PKEY_asn1_set_param_param_print) cdecl = nil;
  17370. {$EXTERNALSYM EVP_PKEY_asn1_set_free}
  17371. EVP_PKEY_asn1_set_free : procedure(ameth : PEVP_PKEY_ASN1_METHOD;
  17372. pkey_free : EVP_PKEY_asn1_set_free_pkey_free) cdecl = nil;
  17373. {$EXTERNALSYM EVP_PKEY_asn1_set_ctrl}
  17374. EVP_PKEY_asn1_set_ctrl : procedure(ameth : PEVP_PKEY_ASN1_METHOD;
  17375. pkey_ctrl : EVP_PKEY_asn1_set_ctr_pkey_ctrl) cdecl = nil;
  17376. {$EXTERNALSYM EVP_PKEY_meth_find}
  17377. EVP_PKEY_meth_find : function (_type : TIdC_INT) : PEVP_PKEY_METHOD cdecl = nil;
  17378. {$EXTERNALSYM EVP_PKEY_meth_new}
  17379. EVP_PKEY_meth_new : function(id : TIdC_INT; flags : TIdC_INT) : PEVP_PKEY_METHOD cdecl = nil;
  17380. {$EXTERNALSYM EVP_PKEY_meth_get0_info}
  17381. EVP_PKEY_meth_get0_info : procedure(ppkey_id : PIdC_INT; pflags : PIdC_INT;
  17382. meth : PEVP_PKEY_METHOD) cdecl = nil;
  17383. {$EXTERNALSYM EVP_PKEY_meth_copy}
  17384. EVP_PKEY_meth_copy : procedure(dst : PEVP_PKEY_METHOD; src : PEVP_PKEY_METHOD) cdecl = nil;
  17385. {$EXTERNALSYM EVP_PKEY_meth_free}
  17386. EVP_PKEY_meth_free : procedure(pmeth : PEVP_PKEY_METHOD) cdecl =nil;
  17387. {$EXTERNALSYM EVP_PKEY_meth_add0}
  17388. EVP_PKEY_meth_add0 : function(pmeth : PEVP_PKEY_METHOD) : TIdC_INT cdecl = nil;
  17389. {$EXTERNALSYM EVP_PKEY_CTX_new}
  17390. EVP_PKEY_CTX_new : function(pkey : PEVP_PKEY; e : PENGINE) : PEVP_PKEY_CTX cdecl = nil;
  17391. {$EXTERNALSYM EVP_PKEY_CTX_new_id}
  17392. EVP_PKEY_CTX_new_id : function(id : TIdC_INT; e : PENGINE) : PEVP_PKEY_CTX cdecl = nil;
  17393. {$EXTERNALSYM EVP_PKEY_CTX_dup}
  17394. EVP_PKEY_CTX_dup : function(ctx : PEVP_PKEY_CTX) : PEVP_PKEY_CTX cdecl = nil;
  17395. {$EXTERNALSYM EVP_PKEY_CTX_free}
  17396. EVP_PKEY_CTX_free : procedure(ctx : PEVP_PKEY_CTX) cdecl = nil;
  17397. {$EXTERNALSYM EVP_PKEY_CTX_ctrl}
  17398. EVP_PKEY_CTX_ctrl : function(ctx : PEVP_PKEY_CTX; keytype : TIdC_INT; optype : TIdC_INT;
  17399. cmd : TIdC_INT; p1 : TIdC_INT; p2 : Pointer) : TIdC_INT cdecl = nil;
  17400. {$EXTERNALSYM EVP_PKEY_CTX_ctrl_str}
  17401. EVP_PKEY_CTX_ctrl_str : function(ctx : PEVP_PKEY_CTX; _type : PIdAnsiChar;
  17402. value : PIdAnsiChar) : TIdC_INT cdecl = nil;
  17403. {$EXTERNALSYM EVP_PKEY_CTX_get_operation}
  17404. EVP_PKEY_CTX_get_operation : function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl = nil;
  17405. {$EXTERNALSYM EVP_PKEY_CTX_set0_keygen_info}
  17406. EVP_PKEY_CTX_set0_keygen_info : procedure(ctx : PEVP_PKEY_CTX; dat : PIdC_INT; datlen : TIdC_INT) cdecl = nil;
  17407. {$EXTERNALSYM EVP_PKEY_new_mac_key}
  17408. EVP_PKEY_new_mac_key : function(_type : TIdC_INT; e : PENGINE;
  17409. key : PIdAnsiChar; keylen : TIdC_INT) : PEVP_PKEY cdecl = nil;
  17410. {$EXTERNALSYM EVP_PKEY_CTX_set_data}
  17411. EVP_PKEY_CTX_set_data : procedure(ctx : PEVP_PKEY_CTX; data : Pointer) cdecl = nil;
  17412. {$EXTERNALSYM EVP_PKEY_CTX_get_data}
  17413. EVP_PKEY_CTX_get_data : function(ctx : PEVP_PKEY_CTX) : Pointer cdecl = nil;
  17414. {$EXTERNALSYM EVP_PKEY_CTX_get0_pkey}
  17415. EVP_PKEY_CTX_get0_pkey : function(ctx : PEVP_PKEY_CTX) : PEVP_PKEY cdecl = nil;
  17416. {$EXTERNALSYM EVP_PKEY_CTX_get0_peerkey}
  17417. EVP_PKEY_CTX_get0_peerkey : function(ctx : PEVP_PKEY_CTX) : PEVP_PKEY cdecl = nil;
  17418. {$EXTERNALSYM EVP_PKEY_CTX_set_app_data}
  17419. EVP_PKEY_CTX_set_app_data : procedure(ctx : PEVP_PKEY_CTX; data : Pointer) cdecl = nil;
  17420. {$EXTERNALSYM EVP_PKEY_CTX_get_app_data}
  17421. EVP_PKEY_CTX_get_app_data : function(ctx : PEVP_PKEY_CTX) : Pointer cdecl = nil;
  17422. {$EXTERNALSYM EVP_PKEY_sign_init}
  17423. EVP_PKEY_sign_init : function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl = nil;
  17424. {$EXTERNALSYM EVP_PKEY_sign}
  17425. EVP_PKEY_sign : function(ctx : PEVP_PKEY_CTX;
  17426. sig : PIdAnsiChar; siglen : Psize_t;
  17427. tbs : PIdAnsiChar; tbslen : size_t) : TIdC_INT cdecl = nil;
  17428. {$EXTERNALSYM EVP_PKEY_verify_init}
  17429. EVP_PKEY_verify_init : function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl = nil;
  17430. {$EXTERNALSYM EVP_PKEY_verify}
  17431. EVP_PKEY_verify : function(ctx : PEVP_PKEY_CTX;
  17432. sig : PIdAnsiChar; siglen : size_t;
  17433. tbs : PIdAnsiChar; tbslen : size_t) : TIdC_INT cdecl = nil;
  17434. {$EXTERNALSYM EVP_PKEY_verify_recover_init}
  17435. EVP_PKEY_verify_recover_init : function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl = nil;
  17436. {$EXTERNALSYM EVP_PKEY_verify_recover}
  17437. EVP_PKEY_verify_recover : function(ctx : PEVP_PKEY_CTX;
  17438. rout : PIdAnsiChar; routlen : Psize_t;
  17439. sig : PIdAnsiChar; siglen : size_t) : TIdC_INT cdecl = nil;
  17440. {$EXTERNALSYM EVP_PKEY_encrypt_init}
  17441. EVP_PKEY_encrypt_init : function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl = nil;
  17442. {$EXTERNALSYM EVP_PKEY_encrypt}
  17443. EVP_PKEY_encrypt : function(ctx : PEVP_PKEY_CTX;
  17444. _out : PIdAnsiChar; outlen : Psize_t;
  17445. _in : PIdAnsiChar; inlen : size_t) : TIdC_INT cdecl = nil;
  17446. {$EXTERNALSYM EVP_PKEY_decrypt_init}
  17447. EVP_PKEY_decrypt_init : function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl = nil;
  17448. {$EXTERNALSYM EVP_PKEY_decrypt}
  17449. EVP_PKEY_decrypt : function(ctx : PEVP_PKEY_CTX;
  17450. _out : PIdAnsiChar; outlen : Psize_t;
  17451. _in : PIdAnsiChar; inlen : size_t) : TIdC_INT cdecl = nil;
  17452. {$EXTERNALSYM EVP_PKEY_derive_init}
  17453. EVP_PKEY_derive_init : function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl = nil;
  17454. {$EXTERNALSYM EVP_PKEY_derive_set_peer}
  17455. EVP_PKEY_derive_set_peer : function(ctx : PEVP_PKEY_CTX; peer : PEVP_PKEY) : TIdC_INT cdecl = nil;
  17456. {$EXTERNALSYM EVP_PKEY_derive}
  17457. EVP_PKEY_derive : function(ctx : PEVP_PKEY_CTX; key : PIdAnsiChar; keylen : Psize_t) : TIdC_INT cdecl = nil;
  17458. {$EXTERNALSYM EVP_PKEY_paramgen_init}
  17459. EVP_PKEY_paramgen_init: function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl;
  17460. {$EXTERNALSYM EVP_PKEY_paramgen}
  17461. EVP_PKEY_paramgen : function(ctx : PEVP_PKEY_CTX; ppkey : PPEVP_PKEY) : TIdC_INT;
  17462. {$EXTERNALSYM EVP_PKEY_keygen_init}
  17463. EVP_PKEY_keygen_init : function(ctx : PEVP_PKEY_CTX) : TIdC_INT cdecl = nil;
  17464. {$EXTERNALSYM EVP_PKEY_keygen}
  17465. EVP_PKEY_keygen : function(ctx : PEVP_PKEY_CTX; ppkey : PPEVP_PKEY) : TIdC_INT cdecl = nil;
  17466. {$EXTERNALSYM EVP_PKEY_CTX_set_cb}
  17467. EVP_PKEY_CTX_set_cb : procedure(ctx : PEVP_PKEY_CTX; cb : EVP_PKEY_gen_cb) cdecl = nil;
  17468. {$EXTERNALSYM EVP_PKEY_CTX_get_cb}
  17469. EVP_PKEY_CTX_get_cb : function(ctx : PEVP_PKEY_CTX) : EVP_PKEY_gen_cb cdecl = nil;
  17470. {$EXTERNALSYM EVP_PKEY_CTX_get_keygen_info}
  17471. EVP_PKEY_CTX_get_keygen_info : function(ctx : PEVP_PKEY_CTX; idx : TIdC_INT) : TIdC_INT cdecl = nil;
  17472. {$EXTERNALSYM EVP_PKEY_meth_set_init}
  17473. EVP_PKEY_meth_set_init : procedure(pmeth : PEVP_PKEY_METHOD;
  17474. init : EVP_PKEY_meth_set_init_init) cdecl = nil;
  17475. {$EXTERNALSYM EVP_PKEY_meth_set_copy}
  17476. EVP_PKEY_meth_set_copy : procedure (pmeth : PEVP_PKEY_METHOD;
  17477. copy : EVP_PKEY_meth_set_copy_copy) cdecl = nil;
  17478. {$EXTERNALSYM EVP_PKEY_meth_set_cleanup}
  17479. EVP_PKEY_meth_set_cleanup : procedure(pmeth : PEVP_PKEY_METHOD;
  17480. cleanup : EVP_PKEY_meth_set_cleanup_cleanup) cdecl = nil;
  17481. {$EXTERNALSYM EVP_PKEY_meth_set_paramgen}
  17482. EVP_PKEY_meth_set_paramgen : procedure(pmeth : PEVP_PKEY_METHOD;
  17483. paramgen_init : EVP_PKEY_meth_set_paramgen_paramgen_init;
  17484. paramgen : EVP_PKEY_meth_set_paramgen_paramgen);
  17485. {$EXTERNALSYM EVP_PKEY_meth_set_keygen}
  17486. EVP_PKEY_meth_set_keygen : procedure(pmeth : PEVP_PKEY_METHOD;
  17487. keygen_init : EVP_PKEY_meth_set_keygen_keygen_init;
  17488. keygen : EVP_PKEY_meth_set_keygen_keygen) cdecl = nil;
  17489. {$EXTERNALSYM EVP_PKEY_meth_set_sign}
  17490. EVP_PKEY_meth_set_sign : procedure(pmeth : PEVP_PKEY_METHOD;
  17491. sign_init : EVP_PKEY_meth_set_sign_sign_init;
  17492. sign : EVP_PKEY_meth_set_sign_sign) cdecl = nil;
  17493. {$EXTERNALSYM EVP_PKEY_meth_set_verify}
  17494. EVP_PKEY_meth_set_verify : procedure(pmeth : PEVP_PKEY_METHOD;
  17495. verify_init : EVP_PKEY_meth_set_verify_verify_init;
  17496. verify : EVP_PKEY_meth_set_verify_verify) cdecl = nil;
  17497. {$EXTERNALSYM EVP_PKEY_meth_set_verify_recover}
  17498. EVP_PKEY_meth_set_verify_recover : procedure(pmeth : PEVP_PKEY_METHOD;
  17499. verify_recover_init : EVP_PKEY_meth_set_verify_recover_verify_recover_init;
  17500. verify_recover : EVP_PKEY_meth_set_verify_recover_verify_recover) cdecl = nil;
  17501. {$EXTERNALSYM EVP_PKEY_meth_set_signctx}
  17502. EVP_PKEY_meth_set_signctx : procedure(pmeth : PEVP_PKEY_METHOD;
  17503. signctx_init : EVP_PKEY_meth_set_signctx_signctx_init;
  17504. signctx : EVP_PKEY_meth_set_signctx_signctx) cdecl = nil;
  17505. {$EXTERNALSYM EVP_PKEY_meth_set_verifyctx}
  17506. EVP_PKEY_meth_set_verifyctx : procedure(pmeth : PEVP_PKEY_METHOD;
  17507. verifyctx_init : EVP_PKEY_meth_set_verifyctx_verifyctx_init;
  17508. verifyctx : EVP_PKEY_meth_set_verifyctx_verifyctx) cdecl = nil;
  17509. {$EXTERNALSYM EVP_PKEY_meth_set_encrypt}
  17510. EVP_PKEY_meth_set_encrypt : procedure(pmeth : PEVP_PKEY_METHOD;
  17511. encrypt_init : EVP_PKEY_meth_set_encrypt_encrypt_init;
  17512. encryptfn : EVP_PKEY_meth_set_encrypt_encryptfn) cdecl = nil;
  17513. {$EXTERNALSYM EVP_PKEY_meth_set_decrypt}
  17514. EVP_PKEY_meth_set_decrypt : procedure(pmeth : PEVP_PKEY_METHOD;
  17515. decrypt_init : EVP_PKEY_meth_set_decrypt_decrypt_init;
  17516. decrypt : EVP_PKEY_meth_set_decrypt_decrypt);
  17517. {$EXTERNALSYM EVP_PKEY_meth_set_derive}
  17518. EVP_PKEY_meth_set_derive : procedure(pmeth : PEVP_PKEY_METHOD;
  17519. derive_init : EVP_PKEY_meth_set_derive_derive_init;
  17520. derive : EVP_PKEY_meth_set_derive_derive) cdecl = nil;
  17521. {$EXTERNALSYM EVP_PKEY_meth_set_ctrl}
  17522. EVP_PKEY_meth_set_ctrl : procedure(pmeth : PEVP_PKEY_METHOD;
  17523. ctrl : EVP_PKEY_meth_set_ctrl_ctrl;
  17524. ctrl_str : EVP_PKEY_meth_set_ctrlctrl_str) cdecl = nil;
  17525. {$EXTERNALSYM d2i_PrivateKey_bio}
  17526. d2i_PrivateKey_bio : function(bp : PBIO; a : PPEVP_PKEY) : PEVP_PKEY cdecl = nil;
  17527. {$EXTERNALSYM X509_LOOKUP_ctrl}
  17528. X509_LOOKUP_ctrl : function(ctx : PX509_LOOKUP; cmd : TIdC_INT; argc : PIdAnsiChar; arg1 : TIdC_LONG; ret : PPIdAnsiChar) : TIdC_INT cdecl = nil;
  17529. {$EXTERNALSYM X509_STORE_add_cert}
  17530. X509_STORE_add_cert : function (ctx : PX509_STORE; x : PX509) : TIdC_INT cdecl = nil;
  17531. {$EXTERNALSYM X509_STORE_add_crl}
  17532. X509_STORE_add_crl : function (ctx : PX509_STORE; x : PX509_CRL) : TIdC_INT cdecl = nil;
  17533. {$EXTERNALSYM X509_STORE_CTX_get_ex_data}
  17534. X509_STORE_CTX_get_ex_data : function(ctx: PX509_STORE_CTX; idx: TIdC_INT): Pointer cdecl = nil;
  17535. {$EXTERNALSYM X509_STORE_CTX_get_error}
  17536. X509_STORE_CTX_get_error : function(ctx: PX509_STORE_CTX): TIdC_INT cdecl = nil;
  17537. {$EXTERNALSYM X509_STORE_CTX_set_error}
  17538. X509_STORE_CTX_set_error : procedure(ctx: PX509_STORE_CTX; s: TIdC_INT) cdecl = nil;
  17539. {$EXTERNALSYM X509_STORE_CTX_get_error_depth}
  17540. X509_STORE_CTX_get_error_depth : function(ctx: PX509_STORE_CTX): TIdC_INT cdecl = nil;
  17541. {$EXTERNALSYM X509_STORE_CTX_get_current_cert}
  17542. X509_STORE_CTX_get_current_cert : function(ctx: PX509_STORE_CTX): PX509 cdecl = nil;
  17543. {$EXTERNALSYM _CRYPTO_num_locks}
  17544. _CRYPTO_num_locks : function: TIdC_INT cdecl = nil; // return CRYPTO_NUM_LOCKS (shared libs!)
  17545. {$EXTERNALSYM CRYPTO_set_locking_callback}
  17546. CRYPTO_set_locking_callback : procedure(func: TIdSslLockingCallback) cdecl = nil;
  17547. {$EXTERNALSYM CRYPTO_set_id_callback}
  17548. CRYPTO_set_id_callback : procedure(func: TIdSslIdCallback) cdecl = nil;
  17549. // 3DES functions
  17550. {$EXTERNALSYM DES_set_odd_parity}
  17551. DES_set_odd_parity: procedure(key: Pdes_cblock) cdecl = nil;
  17552. {$EXTERNALSYM DES_set_key}
  17553. DES_set_key: function(key: Pconst_DES_cblock; schedule: DES_key_schedule): TIdC_INT cdecl = nil;
  17554. {$EXTERNALSYM DES_ecb_encrypt}
  17555. DES_ecb_encrypt: procedure(input, output: Pconst_DES_cblock; ks: DES_key_schedule; enc: TIdC_INT) cdecl = nil;
  17556. //old DES functions
  17557. {$EXTERNALSYM Id_ossl_old_des_set_odd_parity}
  17558. Id_ossl_old_des_set_odd_parity : procedure (key : p_ossl_old_des_cblock) cdecl = nil;
  17559. {$EXTERNALSYM Id_ossl_old_des_set_key}
  17560. Id_ossl_old_des_set_key : function (key : P_ossl_old_des_cblock; schedule : _ossl_old_des_key_schedule) : TIdC_INT cdecl = nil;
  17561. {$EXTERNALSYM Id_ossl_old_des_ecb_encrypt}
  17562. Id_ossl_old_des_ecb_encrypt : procedure ( input : p_ossl_old_des_cblock; output : p_ossl_old_des_cblock; ks : p_ossl_old_des_key_schedule; enc : TIdC_int) cdecl = nil;
  17563. //More SSL functions
  17564. {$EXTERNALSYM SSL_set_ex_data}
  17565. SSL_set_ex_data: function(ssl: PSSL; idx: TIdC_INT; data: Pointer): TIdC_INT cdecl = nil;
  17566. {$EXTERNALSYM SSL_get_ex_data}
  17567. SSL_get_ex_data: function(ssl: PSSL; idx: TIdC_INT): Pointer cdecl = nil;
  17568. {$EXTERNALSYM PKCS12_create}
  17569. PKCS12_create: function(pass, name: PIdAnsiChar; pkey: PEVP_PKEY; cert : PX509;
  17570. ca: PSTACK_OF_X509; nid_key, nid_cert, iter, mac_iter, keytype : TIdC_INT) : PPKCS12 cdecl = nil;
  17571. {$EXTERNALSYM i2d_PKCS12_bio}
  17572. i2d_PKCS12_bio: function(b: PBIO; p12: PPKCS12) : TIdC_INT cdecl = nil;
  17573. {$EXTERNALSYM PKCS12_free}
  17574. PKCS12_free: procedure(p12: PPKCS12) cdecl = nil;
  17575. {$EXTERNALSYM SSL_load_client_CA_file}
  17576. SSL_load_client_CA_file: function(const _file: PIdAnsiChar): PSTACK_OF_X509_NAME cdecl = nil;
  17577. {$EXTERNALSYM SSL_CTX_set_client_CA_list}
  17578. SSL_CTX_set_client_CA_list: procedure(ctx: PSSL_CTX; list: PSTACK_OF_X509_NAME) cdecl = nil;
  17579. {$EXTERNALSYM SSL_CTX_set_default_verify_paths}
  17580. SSL_CTX_set_default_verify_paths: function(ctx: PSSL_CTX): TIdC_INT cdecl = nil;
  17581. {$EXTERNALSYM SSL_CTX_set_session_id_context}
  17582. SSL_CTX_set_session_id_context: function(ctx: PSSL_CTX; const sid_ctx: PByte; sid_ctx_len: TIdC_UINT): TIdC_INT cdecl = nil;
  17583. {$EXTERNALSYM SSL_CIPHER_description}
  17584. SSL_CIPHER_description: function(_para1: PSSL_CIPHER; buf: PIdAnsiChar; size: TIdC_INT): PIdAnsiChar cdecl = nil;
  17585. {$EXTERNALSYM SSL_get_current_cipher}
  17586. SSL_get_current_cipher: function(const s: PSSL): PSSL_CIPHER cdecl = nil;
  17587. {$EXTERNALSYM SSL_CIPHER_get_name}
  17588. SSL_CIPHER_get_name: function(const c: PSSL_CIPHER): PIdAnsiChar cdecl = nil;
  17589. {$EXTERNALSYM SSL_CIPHER_get_version}
  17590. SSL_CIPHER_get_version: function(const c: PSSL_CIPHER): PIdAnsiChar cdecl = nil;
  17591. {$EXTERNALSYM SSL_CIPHER_get_bits}
  17592. SSL_CIPHER_get_bits: function(const c: PSSL_CIPHER; var alg_bits: TIdC_INT): TIdC_INT cdecl = nil;
  17593. //experimental
  17594. {$EXTERNALSYM ERR_error_string_n}
  17595. ERR_error_string_n: procedure(e: TIdC_ULONG; buf: PIdAnsiChar; len : size_t) cdecl = nil;
  17596. {$EXTERNALSYM ERR_put_error}
  17597. ERR_put_error : procedure (lib, func, reason : TIdC_INT; _file : PIdAnsiChar; line : TIdC_INT) cdecl = nil;
  17598. {$EXTERNALSYM ERR_get_error}
  17599. ERR_get_error : function: TIdC_ULONG cdecl = nil;
  17600. {$EXTERNALSYM ERR_peek_error}
  17601. ERR_peek_error : function: TIdC_ULONG cdecl = nil;
  17602. {$EXTERNALSYM ERR_peek_last_error}
  17603. ERR_peek_last_error : function : TIdC_ULONG cdecl = nil;
  17604. {$EXTERNALSYM ERR_clear_error}
  17605. ERR_clear_error : procedure cdecl = nil;
  17606. {$EXTERNALSYM ERR_error_string}
  17607. ERR_error_string : function (e: TIdC_ULONG; buf: PIdAnsiChar): PIdAnsiChar cdecl = nil;
  17608. {$EXTERNALSYM ERR_lib_error_string}
  17609. ERR_lib_error_string : function(e : TIdC_ULONG): PIdAnsiChar cdecl = nil;
  17610. {$EXTERNALSYM ERR_func_error_string}
  17611. ERR_func_error_string : function(e : TIdC_ULONG): PIdAnsiChar cdecl = nil;
  17612. {$EXTERNALSYM ERR_reason_error_string}
  17613. ERR_reason_error_string : function(e : TIdC_ULONG): PIdAnsiChar cdecl = nil;
  17614. {$EXTERNALSYM ERR_load_ERR_strings}
  17615. ERR_load_ERR_strings : procedure cdecl = nil;
  17616. {$EXTERNALSYM ERR_load_crypto_strings}
  17617. ERR_load_crypto_strings : procedure cdecl = nil;
  17618. {$EXTERNALSYM ERR_free_strings}
  17619. ERR_free_strings : procedure cdecl = nil;
  17620. {$EXTERNALSYM ERR_remove_thread_state}
  17621. ERR_remove_thread_state : procedure(const tId : PCRYPTO_THREADID) cdecl = nil;
  17622. {$EXTERNALSYM ERR_remove_state}
  17623. ERR_remove_state : procedure(pid: TIdC_ULONG) cdecl = nil;
  17624. {$EXTERNALSYM CRYPTO_cleanup_all_ex_data}
  17625. CRYPTO_cleanup_all_ex_data : procedure cdecl = nil;
  17626. {$EXTERNALSYM SSL_COMP_get_compression_methods}
  17627. SSL_COMP_get_compression_methods : function: PSTACK_OF_SSL_COMP cdecl = nil;
  17628. {$EXTERNALSYM SSL_COMP_free_compression_methods}
  17629. SSL_COMP_free_compression_methods : procedure; cdecl = nil;
  17630. {$EXTERNALSYM sk_pop_free}
  17631. sk_pop_free : procedure(st: PSTACK; func: Tsk_pop_free_func) cdecl = nil;
  17632. {$EXTERNALSYM sk_dup}
  17633. sk_dup : function (st : PSTACK) : PSTACK cdecl = nil;
  17634. {$EXTERNALSYM sk_find}
  17635. sk_find : function (st : PSTACK; Data : PIdAnsiChar) : TIdC_INT cdecl = nil;
  17636. {$IFDEF OPENSSL_FIPS}
  17637. {Note that I'm doing things this way so that we can have wrapper functions that hide
  17638. any IFDEF's and cases where the FIPS functions aren't in the .DLL}
  17639. {$EXTERNALSYM _FIPS_mode_set}
  17640. _FIPS_mode_set : function(onoff : TIdC_INT) : TIdC_INT cdecl = nil;
  17641. {$EXTERNALSYM _FIPS_mode}
  17642. _FIPS_mode : function () : TIdC_INT cdecl = nil;
  17643. {$ENDIF}
  17644. {$IFNDEF OPENSSL_NO_HMAC}
  17645. {
  17646. NOTE:
  17647. There is breakage between OpenSSL 0.9.x and OpenSSL 1.0x. Some HMAC functions
  17648. were changed to return a result code. MOst of this is ugly but necessary to
  17649. work around the issues involved. Basically, the result of the C functions is
  17650. changed from "void" to "int" so that they can return failure.
  17651. }
  17652. //void HMAC_CTX_init(HMAC_CTX *ctx);
  17653. {$EXTERNALSYM HMAC_CTX_init}
  17654. HMAC_CTX_init : procedure(ctx : PHMAC_CTX) cdecl = nil;
  17655. //void HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
  17656. // const EVP_MD *md, ENGINE *impl);
  17657. {$EXTERNALSYM _HMAC_Init_ex}
  17658. _HMAC_Init_ex : procedure(ctx : PHMAC_CTX; key : Pointer; len : TIdC_INT;
  17659. md : PEVP_MD; impl : PENGINE) cdecl = nil;
  17660. //OpenSSL 1.0
  17661. //int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
  17662. // const EVP_MD *md, ENGINE *impl);
  17663. {$EXTERNALSYM _1_0_HMAC_Init_ex}
  17664. _1_0_HMAC_Init_ex : function(ctx : PHMAC_CTX; key : Pointer; len : TIdC_INT;
  17665. md : PEVP_MD; impl : PENGINE) : TIdC_INT cdecl = nil;
  17666. //void HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
  17667. {$EXTERNALSYM _HMAC_Update}
  17668. _HMAC_Update : procedure(ctx : PHMAC_CTX; data : PIdAnsiChar; len : size_t) cdecl = nil;
  17669. //OpenSSL 1.0
  17670. {$EXTERNALSYM _1_0_HMAC_Update}
  17671. //int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
  17672. _1_0_HMAC_Update : function(ctx : PHMAC_CTX; data : PIdAnsiChar; len : size_t) : TIdC_INT cdecl = nil;
  17673. //void HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
  17674. {$EXTERNALSYM _HMAC_Final}
  17675. _HMAC_Final : procedure(ctx : PHMAC_CTX; md : PIdAnsiChar; len : PIdC_UINT) cdecl = nil;
  17676. //OpenSSL 1.0
  17677. {$EXTERNALSYM _1_0_HMAC_Final}
  17678. // int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
  17679. _1_0_HMAC_Final : function(ctx : PHMAC_CTX; md : PIdAnsiChar; len : PIdC_UINT) : TIdC_INT cdecl = nil;
  17680. //void HMAC_CTX_cleanup(HMAC_CTX *ctx);
  17681. {$EXTERNALSYM HMAC_CTX_cleanup}
  17682. HMAC_CTX_cleanup : procedure (ctx : PHMAC_CTX) cdecl = nil;
  17683. {$EXTERNALSYM HMAC_Init_ex}
  17684. procedure HMAC_Init_ex(ctx : PHMAC_CTX; key : Pointer; len : TIdC_INT;
  17685. md : PEVP_MD; impl : PENGINE);
  17686. {$EXTERNALSYM HMAC_Update}
  17687. procedure HMAC_Update(ctx : PHMAC_CTX; data : PIdAnsiChar; len : size_t);
  17688. {$EXTERNALSYM HMAC_Final}
  17689. procedure HMAC_Final(ctx : PHMAC_CTX; md : PIdAnsiChar; len : PIdC_UINT);
  17690. {$ENDIF}
  17691. {begin stack fancy stuff}
  17692. {
  17693. For the sk functions having a type, you have to typecase one procedural pointer
  17694. as another procedural pointer. In the headers, these are defined in
  17695. safestack.h.
  17696. }
  17697. type
  17698. {$EXTERNALSYM Tsk_X509_NAME_new}
  17699. Tsk_X509_NAME_new = function(cmp : Tsk_new_cmp) : PSTACK_OF_X509_NAME cdecl;
  17700. {$EXTERNALSYM Tsk_X509_NAME_new_null}
  17701. Tsk_X509_NAME_new_null = function : PSTACK_OF_X509_NAME cdecl;
  17702. {$EXTERNALSYM Tsk_X509_NAME_free}
  17703. Tsk_X509_NAME_free = procedure(st : PSTACK_OF_X509_NAME) cdecl;
  17704. {$EXTERNALSYM Tsk_X509_NAME_num}
  17705. Tsk_X509_NAME_num = function (const sk : PSTACK_OF_X509_NAME) : TIdC_INT cdecl;
  17706. {$EXTERNALSYM Tsk_X509_NAME_value}
  17707. Tsk_X509_NAME_value = function (const sk : PSTACK_OF_X509_NAME; i : TIdC_INT) : PX509_NAME cdecl;
  17708. {$EXTERNALSYM Tsk_X509_NAME_push}
  17709. Tsk_X509_NAME_push = function (sk : PSTACK_OF_X509_NAME; st : PX509_NAME) : TIdC_INT cdecl;
  17710. {$EXTERNALSYM Tsk_X509_NAME_dup}
  17711. Tsk_X509_NAME_dup = function (sk : PSTACK_OF_X509_NAME) : PSTACK_OF_X509_NAME cdecl;
  17712. {$EXTERNALSYM Tsk_X509_NAME_find}
  17713. Tsk_X509_NAME_find = function (sk : PSTACK_OF_X509_NAME; val : PX509_NAME) : TIdC_INT cdecl;
  17714. {$EXTERNALSYM Tsk_X509_NAME_pop_free}
  17715. Tsk_X509_NAME_pop_free = procedure (sk : PSTACK_OF_X509_NAME; func: Tsk_pop_free_func) cdecl;
  17716. {$EXTERNALSYM Tsk_X509_INFO_num}
  17717. Tsk_X509_INFO_num = function (const sk : PSTACK_OF_X509_INFO) : TIdC_INT cdecl;
  17718. {$EXTERNALSYM Tsk_X509_INFO_value}
  17719. Tsk_X509_INFO_value = function (const sk : PSTACK_OF_X509_INFO; i : TIdC_INT) : PX509_INFO cdecl;
  17720. {$EXTERNALSYM Tsk_X509_INFO_push}
  17721. Tsk_X509_INFO_push = function (sk : PSTACK_OF_X509_INFO; st : PX509_INFO) : TIdC_INT cdecl;
  17722. {$EXTERNALSYM Tsk_X509_INFO_dup}
  17723. Tsk_X509_INFO_dup = function (sk : PSTACK_OF_X509_INFO) : PSTACK_OF_X509_INFO cdecl;
  17724. {$EXTERNALSYM Tsk_X509_INFO_find}
  17725. Tsk_X509_INFO_find = function (sk : PSTACK_OF_X509_INFO; val : PX509_INFO) : TIdC_INT cdecl;
  17726. {$EXTERNALSYM Tsk_X509_INFO_pop_free}
  17727. Tsk_X509_INFO_pop_free = procedure (sk : PSTACK_OF_X509_INFO; func: Tsk_pop_free_func) cdecl;
  17728. var
  17729. {$EXTERNALSYM sk_X509_NAME_new}
  17730. sk_X509_NAME_new: Tsk_X509_NAME_new absolute sk_new;
  17731. {$EXTERNALSYM sk_X509_NAME_new_null}
  17732. sk_X509_NAME_new_null : Tsk_X509_NAME_new_null absolute sk_new_null;
  17733. {$EXTERNALSYM sk_X509_NAME_free}
  17734. sk_X509_NAME_free : Tsk_X509_NAME_free absolute sk_free;
  17735. {$EXTERNALSYM sk_X509_NAME_num}
  17736. sk_X509_NAME_num : Tsk_X509_NAME_num absolute sk_num;
  17737. {$EXTERNALSYM sk_X509_NAME_value}
  17738. sk_X509_NAME_value : Tsk_X509_NAME_value absolute sk_value;
  17739. {$EXTERNALSYM sk_X509_NAME_push}
  17740. sk_X509_NAME_push : Tsk_X509_NAME_push absolute sk_push;
  17741. {$EXTERNALSYM sk_X509_NAME_dup}
  17742. sk_X509_NAME_dup : Tsk_X509_NAME_dup absolute sk_dup;
  17743. {$EXTERNALSYM sk_X509_NAME_find}
  17744. sk_X509_NAME_find : Tsk_X509_NAME_find absolute sk_find;
  17745. {$EXTERNALSYM sk_X509_NAME_pop_free}
  17746. sk_X509_NAME_pop_free : Tsk_X509_NAME_pop_free absolute sk_pop_free;
  17747. {$EXTERNALSYM sk_X509_INFO_num}
  17748. sk_X509_INFO_num : Tsk_X509_INFO_num absolute sk_num;
  17749. {$EXTERNALSYM sk_X509_INFO_value}
  17750. sk_X509_INFO_value : Tsk_X509_INFO_value absolute sk_value;
  17751. {$EXTERNALSYM sk_X509_INFO_push}
  17752. sk_X509_INFO_push : Tsk_X509_INFO_push absolute sk_push;
  17753. {$EXTERNALSYM sk_X509_INFO_dup}
  17754. sk_X509_INFO_dup : Tsk_X509_INFO_dup absolute sk_dup;
  17755. {$EXTERNALSYM sk_X509_INFO_find}
  17756. sk_X509_INFO_find : Tsk_X509_INFO_find absolute sk_find;
  17757. {$EXTERNALSYM sk_X509_INFO_pop_free}
  17758. sk_X509_INFO_pop_free : Tsk_X509_INFO_pop_free absolute sk_pop_free;
  17759. {end}
  17760. {$EXTERNALSYM FIPS_mode_set}
  17761. function FIPS_mode_set(onoff : TIdC_INT) : TIdC_INT; {$IFDEF INLINE}inline;{$ENDIF}
  17762. {$EXTERNALSYM FIPS_mode}
  17763. function FIPS_mode() : TIdC_INT; {$IFDEF INLINE}inline;{$ENDIF}
  17764. {begin other stuff}
  17765. {$EXTERNALSYM UTC_Time_Decode}
  17766. function UTC_Time_Decode(UCTtime : PASN1_UTCTIME; var year, month, day, hour, min, sec: Word;
  17767. var tz_hour, tz_min: Integer): Integer;
  17768. {$EXTERNALSYM SSL_set_app_data}
  17769. function SSL_set_app_data(s: PSSL; arg: Pointer): TIdC_INT;
  17770. {$EXTERNALSYM SSL_get_app_data}
  17771. function SSL_get_app_data(s: PSSL): Pointer;
  17772. //
  17773. function Load: Boolean;
  17774. procedure Unload;
  17775. {$IFNDEF STATICLOAD_OPENSSL}
  17776. function WhichFailedToLoad: String;
  17777. function GetSSLLibHandle : TIdLibHandle;
  17778. function GetCryptLibHandle : TIdLibHandle;
  17779. procedure IdOpenSSLSetLibPath(const APath: String);
  17780. {$IFDEF UNIX}
  17781. procedure IdOpenSSLSetCanLoadSymLinks(ACanLoad: Boolean);
  17782. procedure IdOpenSSLSetLoadSymLinksFirst(ALoadFirst: Boolean);
  17783. {$ENDIF}
  17784. {$ENDIF}
  17785. //
  17786. procedure InitializeRandom;
  17787. procedure CleanupRandom;
  17788. {$EXTERNALSYM M_ASN1_STRING_length}
  17789. function M_ASN1_STRING_length(x : PASN1_STRING): TIdC_INT;
  17790. {$EXTERNALSYM M_ASN1_STRING_length_set}
  17791. procedure M_ASN1_STRING_length_set(x : PASN1_STRING; n : TIdC_INT);
  17792. {$EXTERNALSYM M_ASN1_STRING_type}
  17793. function M_ASN1_STRING_type(x : PASN1_STRING) : TIdC_INT;
  17794. {$EXTERNALSYM M_ASN1_STRING_data}
  17795. function M_ASN1_STRING_data(x : PASN1_STRING) : PIdAnsiChar;
  17796. {$EXTERNALSYM X509_NAME_dup}
  17797. function X509_NAME_dup(xn : PX509_NAME) : PX509_NAME;
  17798. {$EXTERNALSYM X509_STORE_CTX_get_app_data}
  17799. function X509_STORE_CTX_get_app_data(ctx: PX509_STORE_CTX):Pointer;
  17800. {$EXTERNALSYM X509_get_version}
  17801. function X509_get_version(x : PX509): TIdC_LONG;
  17802. {$EXTERNALSYM X509_get_signature_type}
  17803. function X509_get_signature_type(x : PX509) : TIdC_INT;
  17804. {$EXTERNALSYM X509_REQ_get_subject_name}
  17805. function X509_REQ_get_subject_name(x:PX509_REQ):PX509_NAME;
  17806. {$EXTERNALSYM X509_get_notBefore}
  17807. function X509_get_notBefore(x509: PX509):PASN1_TIME;
  17808. {$EXTERNALSYM X509_get_notAfter}
  17809. function X509_get_notAfter(x509: PX509):PASN1_TIME;
  17810. {$EXTERNALSYM X509_REQ_get_version}
  17811. function X509_REQ_get_version(x : PX509_REQ): TIdC_LONG;
  17812. {$EXTERNALSYM X509_CRL_get_version}
  17813. function X509_CRL_get_version(x : PX509_CRL) : TIdC_LONG;
  17814. {$EXTERNALSYM X509_CRL_get_lastUpdate}
  17815. function X509_CRL_get_lastUpdate(x : PX509_CRL) : PASN1_TIME;
  17816. {$EXTERNALSYM X509_CRL_get_nextUpdate}
  17817. function X509_CRL_get_nextUpdate(x : PX509_CRL) : PASN1_TIME;
  17818. {$EXTERNALSYM X509_CRL_get_issuer}
  17819. function X509_CRL_get_issuer(x : PX509_CRL) : PX509_NAME;
  17820. {$EXTERNALSYM X509_CRL_get_REVOKED}
  17821. function X509_CRL_get_REVOKED(x : PX509_CRL) : PSTACK_OF_X509_REVOKED;
  17822. {$EXTERNALSYM SSL_CTX_set_info_callback}
  17823. procedure SSL_CTX_set_info_callback(ctx: PSSL_CTX; cb: PSSL_CTX_info_callback);
  17824. {$EXTERNALSYM SSL_CTX_set_options}
  17825. function SSL_CTX_set_options(ctx: PSSL_CTX; op: TIdC_LONG):TIdC_LONG;
  17826. {$EXTERNALSYM SSL_CTX_clear_options}
  17827. function SSL_CTX_clear_options(ctx : PSSL_CTX; op : TIdC_LONG):TIdC_LONG;
  17828. {$EXTERNALSYM SSL_CTX_get_options}
  17829. function SSL_CTX_get_options(ctx: PSSL_CTX) : TIdC_LONG;
  17830. {$EXTERNALSYM SSL_set_options}
  17831. function SSL_set_options(ssl: PSSL; op : TIdC_LONG): TIdC_LONG;
  17832. {$EXTERNALSYM SSL_clear_mode}
  17833. function SSL_clear_mode(ssl : PSSL; op : TIdC_LONG) : TIdC_LONG;
  17834. {$EXTERNALSYM SSL_get_options}
  17835. function SSL_get_options(ssl : PSSL): TIdC_LONG;
  17836. {$EXTERNALSYM SSL_CTX_set_mode}
  17837. function SSL_CTX_set_mode(ctx : PSSL_CTX; op : TIdC_LONG) : TIdC_LONG;
  17838. {$EXTERNALSYM SSL_CTX_clear_mode}
  17839. function SSL_CTX_clear_mode(ctx : PSSL_CTX; op : TIdC_LONG) : TIdC_LONG;
  17840. {$EXTERNALSYM SSL_CTX_get_mode}
  17841. function SSL_CTX_get_mode(ctx : PSSL_CTX) : TIdC_LONG;
  17842. {$EXTERNALSYM SSL_set_mtu}
  17843. function SSL_set_mtu(ssl : PSSL; mtu : TIdC_LONG) : TIdC_LONG;
  17844. {$EXTERNALSYM SSL_get_secure_renegotiation_support}
  17845. function SSL_get_secure_renegotiation_support(ssl : PSSL) : TIdC_LONG;
  17846. {$EXTERNALSYM SSL_CTX_sess_number}
  17847. function SSL_CTX_sess_number(ctx : PSSL_CTX) : TIdC_LONG;
  17848. {$EXTERNALSYM SSL_CTX_sess_connect}
  17849. function SSL_CTX_sess_connect(ctx : PSSL_CTX) : TIdC_LONG;
  17850. {$EXTERNALSYM SSL_CTX_sess_connect_good}
  17851. function SSL_CTX_sess_connect_good(ctx : PSSL_CTX): TIdC_LONG;
  17852. {$EXTERNALSYM SSL_CTX_sess_connect_renegotiate}
  17853. function SSL_CTX_sess_connect_renegotiate(ctx : PSSL_CTX): TIdC_LONG;
  17854. {$EXTERNALSYM SSL_CTX_sess_accept}
  17855. function SSL_CTX_sess_accept(ctx : PSSL_CTX) : TIdC_LONG;
  17856. {$EXTERNALSYM SSL_CTX_sess_accept_renegotiate}
  17857. function SSL_CTX_sess_accept_renegotiate(ctx : PSSL_CTX) : TIdC_LONG;
  17858. {$EXTERNALSYM SSL_CTX_sess_accept_good}
  17859. function SSL_CTX_sess_accept_good(ctx : PSSL_CTX) : TIdC_LONG;
  17860. {$EXTERNALSYM SSL_CTX_sess_hits}
  17861. function SSL_CTX_sess_hits(ctx : PSSL_CTX) : TIdC_LONG;
  17862. {$EXTERNALSYM SSL_CTX_sess_cb_hits}
  17863. function SSL_CTX_sess_cb_hits(ctx : PSSL_CTX) : TIdC_LONG;
  17864. {$EXTERNALSYM SSL_CTX_sess_misses}
  17865. function SSL_CTX_sess_misses(ctx : PSSL_CTX) : TIdC_LONG;
  17866. {$EXTERNALSYM SSL_CTX_sess_timeouts}
  17867. function SSL_CTX_sess_timeouts(ctx : PSSL_CTX) : TIdC_LONG;
  17868. {$EXTERNALSYM SSL_CTX_sess_cache_full}
  17869. function SSL_CTX_sess_cache_full(ctx : PSSL_CTX) : TIdC_LONG;
  17870. {$EXTERNALSYM SSL_CTX_sess_set_cache_size}
  17871. function SSL_CTX_sess_set_cache_size(ctx : PSSL_CTX; t : TIdC_LONG) : TIdC_LONG;
  17872. {$EXTERNALSYM SSL_CTX_sess_get_cache_size}
  17873. function SSL_CTX_sess_get_cache_size(ctx : PSSL_CTX) : TIdC_LONG;
  17874. {$EXTERNALSYM SSL_CTX_set_session_cache_mode}
  17875. function SSL_CTX_set_session_cache_mode(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  17876. {$EXTERNALSYM SSL_CTX_get_session_cache_mode}
  17877. function SSL_CTX_get_session_cache_mode(ctx : PSSL_CTX) : TIdC_LONG;
  17878. {$EXTERNALSYM SSL_CTX_get_read_ahead}
  17879. function SSL_CTX_get_read_ahead(ctx : PSSL_CTX) : TIdC_LONG;
  17880. {$EXTERNALSYM SSL_CTX_set_read_ahead}
  17881. function SSL_CTX_set_read_ahead(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  17882. {$EXTERNALSYM SSL_CTX_get_max_cert_list}
  17883. function SSL_CTX_get_max_cert_list(ctx : PSSL_CTX) : TIdC_LONG;
  17884. {$EXTERNALSYM SSL_CTX_set_max_cert_list}
  17885. function SSL_CTX_set_max_cert_list(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  17886. {$EXTERNALSYM SSL_get_max_cert_list}
  17887. function SSL_get_max_cert_list(ssl : PSSL) : TIdC_LONG;
  17888. {$EXTERNALSYM SSL_set_max_cert_list}
  17889. function SSL_set_max_cert_list(ssl : PSSL; m : TIdC_LONG) : TIdC_LONG;
  17890. {$EXTERNALSYM DTLSv1_get_timeout}
  17891. function DTLSv1_get_timeout(ssl : PSSL; var arg : timeval) : TIdC_LONG;
  17892. {$EXTERNALSYM DTLSv1_handle_timeout}
  17893. function DTLSv1_handle_timeout(ssl : PSSL) : TIdC_LONG;
  17894. {$EXTERNALSYM DTLSv1_listen}
  17895. function DTLSv1_listen(ssl : PSSL; var peer : sockaddr) : TIdC_LONG;
  17896. {$EXTERNALSYM SSL_session_reused}
  17897. function SSL_session_reused(ssl : PSSL) : TIdC_LONG;
  17898. {$EXTERNALSYM SSL_num_renegotiations}
  17899. function SSL_num_renegotiations(ssl : PSSL) : TIdC_LONG;
  17900. {$EXTERNALSYM SSL_clear_num_renegotiations}
  17901. function SSL_clear_num_renegotiations(ssl : PSSL) : TIdC_LONG;
  17902. {$EXTERNALSYM SSL_total_renegotiations}
  17903. function SSL_total_renegotiations(ssl : PSSL) : TIdC_LONG;
  17904. {$EXTERNALSYM SSL_CTX_need_tmp_RSA}
  17905. function SSL_CTX_need_tmp_RSA(ctx : PSSL_CTX) : TIdC_LONG;
  17906. {$EXTERNALSYM SSL_CTX_set_tmp_rsa}
  17907. function SSL_CTX_set_tmp_rsa(ctx : PSSL_CTX; rsa : PRSA) : TIdC_LONG;
  17908. {$EXTERNALSYM SSL_CTX_set_tmp_dh}
  17909. function SSL_CTX_set_tmp_dh(ctx : PSSL_CTX; dh : PDH) : TIdC_LONG;
  17910. {$EXTERNALSYM SSL_CTX_set_tmp_ecdh}
  17911. function SSL_CTX_set_tmp_ecdh(ctx : PSSL_CTX; ecdh : PEC_KEY) : TIdC_LONG;
  17912. {$EXTERNALSYM SSL_CTX_set_ecdh_auto}
  17913. function SSL_CTX_set_ecdh_auto(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  17914. {$EXTERNALSYM SSL_need_tmp_RSA}
  17915. function SSL_need_tmp_RSA(ssl : PSSL) : TIdC_LONG;
  17916. {$EXTERNALSYM SSL_set_tmp_rsa}
  17917. procedure SSL_set_tmp_rsa(ssl : PSSL; rsa : PRSA);
  17918. {$EXTERNALSYM SSL_set_tmp_dh}
  17919. function SSL_set_tmp_dh(ssl : PSSL;dh : PDH) : TIdC_LONG;
  17920. {$EXTERNALSYM SSL_set_tmp_ecdh}
  17921. function SSL_set_tmp_ecdh(ssl : PSSL; ecdh : PEC_KEY) : TIdC_LONG;
  17922. {$EXTERNALSYM SSL_CTX_add0_chain_cert} //OpenSSL 1.0.2
  17923. function SSL_CTX_add0_chain_cert(ctx : PSSL_CTX; x509 : PX509) : TIdC_LONG;
  17924. {$EXTERNALSYM SSL_CTX_add1_chain_cert} //OpenSSL 1.0.2
  17925. function SSL_CTX_add1_chain_cert(ctx : PSSL_CTX; x509 : PX509) : TIdC_LONG;
  17926. {$EXTERNALSYM SSL_CTX_add_extra_chain_cert}
  17927. function SSL_CTX_add_extra_chain_cert(ctx : PSSL_CTX; x509 : PX509) : TIdC_LONG;
  17928. {$EXTERNALSYM SSL_CTX_get_extra_chain_certs}
  17929. function SSL_CTX_get_extra_chain_certs(ctx : PSSL_CTX; var px509 : px509) : TIdC_LONG;
  17930. {$EXTERNALSYM SSL_CTX_get_extra_chain_certs_only}
  17931. function SSL_CTX_get_extra_chain_certs_only(ctx: PSSL_CTX;var PX509 :PX509) : TIdC_LONG;
  17932. {$EXTERNALSYM SSL_CTX_clear_extra_chain_certs}
  17933. function SSL_CTX_clear_extra_chain_certs(ctx : PSSL_CTX) : TIdC_LONG;
  17934. {$EXTERNALSYM SSL_CTX_set0_chain} //OpenSSL 1.0.2
  17935. function SSL_CTX_set0_chain(ctx:PSSL_CTX; sk : PSTACK_OF_X509) : TIdC_LONG;
  17936. {$EXTERNALSYM SSL_CTX_set1_chain} //OpenSSL 1.0.2
  17937. function SSL_CTX_set1_chain(ctx:PSSL_CTX; sk : PSTACK_OF_X509) : TIdC_LONG;
  17938. {$EXTERNALSYM SSL_CTX_get0_chain_certs} //OpenSSL 1.0.2
  17939. function SSL_CTX_get0_chain_certs(ctx :PSSL_CTX; var px509 :PX509) : TIdC_LONG;
  17940. {$EXTERNALSYM SSL_CTX_clear_chain_certs} //OpenSSL 1.0.2
  17941. function SSL_CTX_clear_chain_certs(ctx :PSSL_CTX) : TIdC_LONG;
  17942. {$IFNDEF OPENSSL_NO_TLSEXT}
  17943. {$EXTERNALSYM SSL_set_tlsext_host_name}
  17944. function SSL_set_tlsext_host_name(s : PSSL; name : string) : TIdC_LONG;
  17945. {$EXTERNALSYM SSL_set_tlsext_debug_callback}
  17946. function SSL_set_tlsext_debug_callback(ssl : PSSL; cb : SSL_callback_ctrl_fp) : TIdC_LONG;
  17947. {$EXTERNALSYM SSL_set_tlsext_debug_arg}
  17948. function SSL_set_tlsext_debug_arg(ssl : PSSL; arg : Pointer) : TIdC_LONG;
  17949. {$EXTERNALSYM SSL_set_tlsext_status_type}
  17950. function SSL_set_tlsext_status_type(ssl : PSSL; _type : TIdC_LONG):TIdC_LONG;
  17951. {$EXTERNALSYM SSL_get_tlsext_status_exts}
  17952. function SSL_get_tlsext_status_exts(ssl : PSSL; arg : Pointer): TIdC_LONG;
  17953. {$EXTERNALSYM SSL_set_tlsext_status_exts}
  17954. function SSL_set_tlsext_status_exts(ssl : PSSL; arg : Pointer):TIdC_LONG;
  17955. {$EXTERNALSYM SSL_get_tlsext_status_ids}
  17956. function SSL_get_tlsext_status_ids(ssl : PSSL; arg : Pointer) : TIdC_LONG;
  17957. {$EXTERNALSYM SSL_set_tlsext_status_ids}
  17958. function SSL_set_tlsext_status_ids(ssl : PSSL; arg : Pointer) : TIdC_LONG;
  17959. {$EXTERNALSYM SSL_get_tlsext_status_ocsp_resp}
  17960. function SSL_get_tlsext_status_ocsp_resp(ssl : PSSL; arg : Pointer) : TIdC_LONG;
  17961. {$EXTERNALSYM SSL_set_tlsext_status_ocsp_resp}
  17962. function SSL_set_tlsext_status_ocsp_resp(ssl : PSSL; arg : Pointer; arglen : TIdC_LONG) : TIdC_LONG;
  17963. {$EXTERNALSYM SSL_CTX_set_tlsext_servername_callback}
  17964. function SSL_CTX_set_tlsext_servername_callback(ctx : PSSL_CTX; cb :SSL_callback_ctrl_fp):TIdC_LONG;
  17965. {$EXTERNALSYM SSL_CTX_get_tlsext_ticket_keys}
  17966. function SSL_CTX_get_tlsext_ticket_keys(ctx : PSSL_CTX; keys : PIdAnsiChar; keylen : TIdC_LONG ) : TIdC_LONG;
  17967. {$EXTERNALSYM SSL_CTX_set_tlsext_status_cb}
  17968. function SSL_CTX_set_tlsext_status_cb(ssl : PSSL_CTX; cb : TSSL_CTX_set_tlsext_status_cb) :TIdC_LONG;
  17969. {$EXTERNALSYM SSL_set_tlsext_opaque_prf_input}
  17970. function SSL_set_tlsext_opaque_prf_input(s : PSSL; src : PIdAnsiChar; len : TIdC_LONG ) : TIdC_LONG;
  17971. {$EXTERNALSYM SSL_CTX_set_tlsext_opaque_prf_input_callback}
  17972. function SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx : PSSL_CTX; cb : TSSL_CTX_set_tlsext_opaque_prf_input_callback_cb) : TIdC_LONG;
  17973. {$EXTERNALSYM SSL_CTX_set_tlsext_opaque_prf_input_callback_arg}
  17974. function SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx : PSSL_CTX; arg : Pointer) : TIdC_LONG;
  17975. {$EXTERNALSYM SSL_CTX_set_tlsext_ticket_key_cb}
  17976. function SSL_CTX_set_tlsext_ticket_key_cb(ssl : PSSL_CTX; cb : TSSL_CTX_set_tlsext_ticket_key_cb_fp) : TIdC_LONG;
  17977. {$ifndef OPENSSL_NO_HEARTBEATS}
  17978. {$EXTERNALSYM SSL_heartbeat}
  17979. function SSL_heartbeat(ssl : PSSL) : TIdC_LONG;
  17980. {$EXTERNALSYM SSL_get_tlsext_heartbeat_pending}
  17981. function SSL_get_tlsext_heartbeat_pending(ssl : PSSL) : TIdC_LONG;
  17982. {$EXTERNALSYM SSL_set_tlsext_heartbeat_no_requests}
  17983. function SSL_set_tlsext_heartbeat_no_requests(ssl : PSSL; arg : TIdC_LONG) : TIdC_LONG;
  17984. {$endif}
  17985. {$ENDIF}
  17986. {$EXTERNALSYM TLS1_get_version}
  17987. function TLS1_get_version(s : PSSL) : TIdC_INT;
  17988. {$EXTERNALSYM TLS1_get_client_version}
  17989. function TLS1_get_client_version(s : PSSL) : TIdC_INT;
  17990. {$EXTERNALSYM SSL_CTX_get_version}
  17991. function SSL_CTX_get_version(ctx: PSSL_CTX):TIdC_INT;
  17992. //* BIO_s_connect() and BIO_s_socks4a_connect() */
  17993. {$EXTERNALSYM BIO_set_conn_hostname}
  17994. function BIO_set_conn_hostname(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  17995. {$EXTERNALSYM BIO_set_conn_port}
  17996. function BIO_set_conn_port(b : PBIO; port : PIdAnsiChar) : TIdC_LONG;
  17997. {$EXTERNALSYM BIO_set_conn_ip}
  17998. function BIO_set_conn_ip(b : PBIO; ip : PIdAnsiChar) : TIdC_LONG;
  17999. {$EXTERNALSYM BIO_set_conn_int_port}
  18000. function BIO_set_conn_int_port(b : PBIO; port : PIdAnsiChar) : TIdC_LONG;
  18001. {$EXTERNALSYM BIO_get_conn_hostname}
  18002. function BIO_get_conn_hostname(b : PBIO) : PIdAnsiChar;
  18003. {$EXTERNALSYM BIO_get_conn_port}
  18004. function BIO_get_conn_port(b : PBIO) : PIdAnsiChar;
  18005. {$EXTERNALSYM BIO_get_conn_ip}
  18006. function BIO_get_conn_ip(b : PBIO) : PIdAnsiChar;
  18007. {$EXTERNALSYM BIO_get_conn_int_port}
  18008. function BIO_get_conn_int_port(b : PBIO) : TIdC_LONG;
  18009. {$EXTERNALSYM BIO_set_nbio}
  18010. function BIO_set_nbio(b : PBIO; n : TIdC_LONG) : TIdC_LONG;
  18011. //* BIO_s_accept_socket() */
  18012. {$EXTERNALSYM BIO_set_accept_port}
  18013. function BIO_set_accept_port(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  18014. {$EXTERNALSYM BIO_get_accept_port}
  18015. function BIO_get_accept_port(b : PBIO) : PIdAnsiChar;
  18016. {$EXTERNALSYM BIO_set_nbio_accept}
  18017. function BIO_set_nbio_accept(b : PBIO; n : TIdC_INT) : TIdC_LONG;
  18018. {$EXTERNALSYM BIO_set_accept_bios}
  18019. function BIO_set_accept_bios(b : PBIO; bio : PBIO) : TIdC_LONG;
  18020. {$EXTERNALSYM BIO_set_bind_mode}
  18021. function BIO_set_bind_mode(b : PBIO; mode : TIdC_LONG) : TIdC_LONG;
  18022. {$EXTERNALSYM BIO_get_bind_mode}
  18023. function BIO_get_bind_mode(b : PBIO; mode : TIdC_LONG) : TIdC_LONG;
  18024. {$EXTERNALSYM BIO_do_handshake}
  18025. function BIO_do_handshake(b : PBIO) : TIdC_LONG;
  18026. {$EXTERNALSYM BIO_do_connect}
  18027. function BIO_do_connect(b : PBIO) : TIdC_LONG;
  18028. {$EXTERNALSYM BIO_do_accept}
  18029. function BIO_do_accept(b : PBIO) : TIdC_LONG;
  18030. {$EXTERNALSYM BIO_set_url}
  18031. function BIO_set_url(b : PBIO; url : PIdAnsiChar) : TIdC_LONG;
  18032. {$EXTERNALSYM BIO_set_proxies}
  18033. function BIO_set_proxies(b : PBIO; p : PIdAnsiChar) : TIdC_LONG;
  18034. //* BIO_set_nbio(b,n) */
  18035. {$EXTERNALSYM BIO_set_filter_bio}
  18036. function BIO_set_filter_bio(b : PBIO; s : PIdAnsiChar) : TIdC_LONG;
  18037. {$EXTERNALSYM BIO_set_proxy_header}
  18038. function BIO_set_proxy_header(b : PBIO; sk : PIdAnsiChar) : TIdC_LONG;
  18039. {$EXTERNALSYM BIO_set_no_connect_return}
  18040. function BIO_set_no_connect_return(b : PBIO; b2 : TIdC_LONG) : TIdC_LONG;
  18041. {$EXTERNALSYM BIO_get_proxy_header}
  18042. function BIO_get_proxy_header(b : PBIO; var skp : PIdAnsiChar) : TIdC_LONG;
  18043. {$EXTERNALSYM BIO_get_proxies}
  18044. function BIO_get_proxies(b : PBIO; var pxy_p : PIdAnsiChar) : TIdC_LONG;
  18045. {$EXTERNALSYM BIO_get_url}
  18046. function BIO_get_url(b : PBIO; var url : PIdAnsiChar) : TIdC_LONG;
  18047. {$EXTERNALSYM BIO_get_no_connect_return}
  18048. function BIO_get_no_connect_return(b : PBIO) : TIdC_LONG;
  18049. {$EXTERNALSYM BIO_set_fd}
  18050. function BIO_set_fd(b : PBIO; fd,c : TIdC_INT) : TIdC_LONG;
  18051. {$EXTERNALSYM BIO_get_fd}
  18052. function BIO_get_fd(b : PBIO; c : PIdC_INT) : TIdC_LONG;
  18053. {$EXTERNALSYM BIO_seek}
  18054. function BIO_seek(b : PBIO; ofs : TIdC_LONG) : TIdC_INT;
  18055. {$EXTERNALSYM BIO_tell}
  18056. function BIO_tell(b : PBIO) : TIdC_INT;
  18057. {$IFDEF CONST_STRICT}
  18058. {$ELSE}
  18059. {$EXTERNALSYM BIO_read_filename}
  18060. function BIO_read_filename(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  18061. {$ENDIF}
  18062. {$EXTERNALSYM BIO_get_md}
  18063. function BIO_get_md(b : PBIO; var mdp : PEVP_MD) : TIdC_LONG;
  18064. {$EXTERNALSYM BIO_get_md_ctx}
  18065. function BIO_get_md_ctx(b : PBIO; var mdcp : PEVP_MD_CTX) : TIdC_LONG;
  18066. {$EXTERNALSYM BIO_set_md_ctx}
  18067. function BIO_set_md_ctx(b : PBIO; mdcp : PEVP_MD_CTX) : TIdC_LONG;
  18068. {$EXTERNALSYM BIO_get_cipher_status}
  18069. function BIO_get_cipher_status(b : PBIO) : TIdC_LONG;
  18070. {$EXTERNALSYM BIO_get_cipher_ctx}
  18071. function BIO_get_cipher_ctx(b : PBIO; var c_pp : PEVP_CIPHER_CTX): TIdC_LONG;
  18072. {$EXTERNALSYM BIO_write_filename}
  18073. function BIO_write_filename(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  18074. {$EXTERNALSYM BIO_append_filename}
  18075. function BIO_append_filename(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  18076. {$EXTERNALSYM BIO_rw_filename}
  18077. function BIO_rw_filename(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  18078. {$EXTERNALSYM BIO_set_ssl}
  18079. function BIO_set_ssl(b : PBIO; ssl : PSSL; c : TIdC_LONG) : TIdC_LONG;
  18080. {$EXTERNALSYM BIO_get_ssl}
  18081. function BIO_get_ssl(b : PBIO; var sslp : PSSL) : TIdC_LONG;
  18082. {$EXTERNALSYM BIO_set_ssl_mode}
  18083. function BIO_set_ssl_mode(b : PBIO; client : TIdC_LONG) : TIdC_LONG;
  18084. {$EXTERNALSYM BIO_set_ssl_renegotiate_bytes}
  18085. function BIO_set_ssl_renegotiate_bytes(b : PBIO; num : TIdC_LONG) : TIdC_LONG;
  18086. {$EXTERNALSYM BIO_get_num_renegotiates}
  18087. function BIO_get_num_renegotiates(b : PBIO) : TIdC_LONG;
  18088. {$EXTERNALSYM BIO_set_ssl_renegotiate_timeout}
  18089. function BIO_set_ssl_renegotiate_timeout(b : PBIO; seconds : TIdC_LONG) : TIdC_LONG;
  18090. {$EXTERNALSYM BIO_get_mem_data}
  18091. function BIO_get_mem_data(b : PBIO; var pp : PIdAnsiChar) : TIdC_INT;
  18092. {$EXTERNALSYM BIO_set_mem_buf}
  18093. function BIO_set_mem_buf(b : PBIO; bm : PBUF_MEM; c : TIdC_INT) : TIdC_INT;
  18094. {$EXTERNALSYM BIO_get_mem_ptr}
  18095. function BIO_get_mem_ptr(b: PBIO; var pp: PBUF_MEM) : TIdC_INT;
  18096. {$EXTERNALSYM BIO_set_mem_eof_return}
  18097. procedure BIO_set_mem_eof_return(b : PBIO; const v : TIdC_INT);
  18098. //* For the BIO_f_buffer() type */
  18099. {$EXTERNALSYM BIO_get_buffer_num_lines}
  18100. function BIO_get_buffer_num_lines(b : PBIO) : TIdC_INT;
  18101. {$EXTERNALSYM BIO_set_buffer_size}
  18102. procedure BIO_set_buffer_size(b : PBIO; const size : TIdC_INT);
  18103. //* Don't use the next one unless you know what you are doing :-) */
  18104. {$EXTERNALSYM BIO_dup_state}
  18105. function BIO_dup_state(b : PBIO; ret : PBIO) : TIdC_LONG;
  18106. {$EXTERNALSYM BIO_reset}
  18107. function BIO_reset(b : PBIO) : TIdC_INT;
  18108. {$EXTERNALSYM BIO_eof}
  18109. function BIO_eof(b : PBIO) : TIdC_INT;
  18110. {$EXTERNALSYM BIO_set_close}
  18111. function BIO_set_close(b: PBIO; c: TIdC_LONG): TIdC_INT;
  18112. {$EXTERNALSYM BIO_get_close}
  18113. function BIO_get_close(b : PBIO) : TIdC_INT;
  18114. {$EXTERNALSYM BIO_pending}
  18115. function BIO_pending(b : PBIO) : TIdC_INT;
  18116. {$EXTERNALSYM BIO_wpending}
  18117. function BIO_wpending(b : PBIO) : TIdC_INT;
  18118. {$EXTERNALSYM BIO_flush}
  18119. function BIO_flush(b : PBIO) : TIdC_INT;
  18120. //* For the BIO_f_buffer() type */
  18121. {$EXTERNALSYM BIO_buffer_get_num_lines}
  18122. function BIO_buffer_get_num_lines(b : PBIO) : TIdC_INT;
  18123. {$EXTERNALSYM BIO_get_info_callback}
  18124. function BIO_get_info_callback(b : PBIO; var cbp : Pbio_info_cb) : TIdC_INT;
  18125. {$EXTERNALSYM BIO_set_info_callback}
  18126. function BIO_set_info_callback(b : PBIO; cb : Pbio_info_cb) : TIdC_INT;
  18127. {$EXTERNALSYM BIO_set_read_buffer_size}
  18128. function BIO_set_read_buffer_size(b : PBIO; size : TIdC_LONG) : TIdC_LONG;
  18129. {$EXTERNALSYM BIO_set_write_buffer_size}
  18130. function BIO_set_write_buffer_size(b : PBIO; size : TIdC_LONG) : TIdC_LONG;
  18131. {$EXTERNALSYM BIO_make_bio_pair}
  18132. function BIO_make_bio_pair(b1, b2 : PBIO ): TIdC_INT;
  18133. {$EXTERNALSYM BIO_destroy_bio_pair}
  18134. function BIO_destroy_bio_pair(b : PBIO) : TIdC_INT;
  18135. {$EXTERNALSYM BIO_shutdown_wr}
  18136. function BIO_shutdown_wr(b : PBIO) : TIdC_INT;
  18137. ///* macros with inappropriate type -- but ...pending macros use int too: */
  18138. {$EXTERNALSYM BIO_get_write_guarantee}
  18139. function BIO_get_write_guarantee(b : PBIO) : TIdC_INT;
  18140. {$EXTERNALSYM BIO_get_read_request}
  18141. function BIO_get_read_request(b : PBIO) : TIdC_INT;
  18142. //* ctrl macros for dgram */
  18143. {$EXTERNALSYM _BIO_ctrl_dgram_connect}
  18144. function _BIO_ctrl_dgram_connect(b : PBIO; peer : Sockaddr) : TIdC_INT;
  18145. {$EXTERNALSYM BIO_ctrl_set_connected}
  18146. function BIO_ctrl_set_connected(b : PBIO; state : TIdC_INT; peer : Sockaddr) : TIdC_INT;
  18147. {$EXTERNALSYM BIO_dgram_recv_timedout}
  18148. function BIO_dgram_recv_timedout(b : PBIO) : TIdC_INT;
  18149. {$EXTERNALSYM BIO_dgram_send_timedout}
  18150. function BIO_dgram_send_timedout(b : PBIO) : TIdC_INT;
  18151. {$EXTERNALSYM BIO_dgram_get_peer}
  18152. function BIO_dgram_get_peer(b : PBIO; peer : PSockAddr) : TIdC_INT;
  18153. {$EXTERNALSYM BIO_dgram_set_peer}
  18154. function BIO_dgram_set_peer(b : PBIO; peer : PSockAddr) : TIdC_INT;
  18155. {$EXTERNALSYM PEM_read_bio_X509}
  18156. function PEM_read_bio_X509(bp: PBIO; x: PPX509; cb: ppem_password_cb; u: Pointer): PX509;
  18157. {$EXTERNALSYM PEM_read_bio_X509_REQ}
  18158. function PEM_read_bio_X509_REQ(bp :PBIO; x : PPX509_REQ; cb :ppem_password_cb; u: Pointer) : PX509_REQ;
  18159. {$EXTERNALSYM PEM_read_bio_X509_CRL}
  18160. function PEM_read_bio_X509_CRL(bp : PBIO; x : PPX509_CRL;cb : ppem_password_cb; u: Pointer) : PX509_CRL;
  18161. {$EXTERNALSYM PEM_read_bio_RSAPrivateKey}
  18162. function PEM_read_bio_RSAPrivateKey(bp : PBIO; x : PPRSA; cb : ppem_password_cb; u: Pointer) : PRSA;
  18163. {$EXTERNALSYM PEM_read_bio_RSAPublicKey}
  18164. function PEM_read_bio_RSAPublicKey(bp : PBIO; x : PPRSA; cb : ppem_password_cb; u: Pointer) : PRSA;
  18165. {$EXTERNALSYM PEM_read_bio_DSAPrivateKey}
  18166. function PEM_read_bio_DSAPrivateKey(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u : Pointer) : PDSA;
  18167. {$EXTERNALSYM PEM_read_bio_PrivateKey}
  18168. function PEM_read_bio_PrivateKey(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY;
  18169. {$EXTERNALSYM PEM_read_bio_PKCS7}
  18170. function PEM_read_bio_PKCS7(bp : PBIO; x : PPPKCS7; cb : ppem_password_cb; u : Pointer) : PPKCS7;
  18171. {$EXTERNALSYM PEM_read_bio_DHparams}
  18172. function PEM_read_bio_DHparams(bp : PBIO; x : PPDH; cb : ppem_password_cb; u : Pointer) : PDH;
  18173. {$EXTERNALSYM PEM_read_bio_DSAparams}
  18174. function PEM_read_bio_DSAparams(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u : Pointer) : PDSA;
  18175. {$EXTERNALSYM PEM_read_bio_NETSCAPE_CERT_SEQUENCE}
  18176. function PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PPNETSCAPE_CERT_SEQUENCE;
  18177. cb : ppem_password_cb; u : Pointer) : PNETSCAPE_CERT_SEQUENCE;
  18178. {$EXTERNALSYM PEM_read_bio_PUBKEY}
  18179. function PEM_read_bio_PUBKEY(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY;
  18180. {$EXTERNALSYM PEM_write_bio_X509}
  18181. function PEM_write_bio_X509(bp: PBIO; x: PX509): TIdC_INT;
  18182. {$EXTERNALSYM PEM_write_bio_X509_REQ}
  18183. function PEM_write_bio_X509_REQ(bp: PBIO; x: PX509_REQ): TIdC_INT;
  18184. {$EXTERNALSYM PEM_write_bio_X509_CRL}
  18185. function PEM_write_bio_X509_CRL(bp : PBIO; x : PX509_CRL) : TIdC_INT;
  18186. {$EXTERNALSYM PEM_write_bio_RSAPrivateKey}
  18187. function PEM_write_bio_RSAPrivateKey(bp : PBIO; x : PRSA; const enc : PEVP_CIPHER;
  18188. kstr : PIdAnsiChar; klen : TIdC_INT; cb : ppem_password_cb; u : POinter) : TIdC_INT;
  18189. {$EXTERNALSYM PEM_write_bio_RSAPublicKey}
  18190. function PEM_write_bio_RSAPublicKey(bp : PBIO; x : PRSA) : TIdC_INT;
  18191. {$EXTERNALSYM PEM_write_bio_DSAPrivateKey}
  18192. function PEM_write_bio_DSAPrivateKey( bp : PBIO; x : PDSA; const enc : PEVP_CIPHER;
  18193. kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT;
  18194. {$EXTERNALSYM PEM_write_bio_PrivateKey}
  18195. function PEM_write_bio_PrivateKey(bp : PBIO; x : PEVP_PKEY; const enc : PEVP_CIPHER;
  18196. kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT;
  18197. {$EXTERNALSYM PEM_write_bio_PKCS7}
  18198. function PEM_write_bio_PKCS7(bp : PBIO; x : PPKCS7) : TIdC_INT;
  18199. {$EXTERNALSYM PEM_write_bio_DHparams}
  18200. function PEM_write_bio_DHparams(bp : PBIO; x : PDH): TIdC_INT;
  18201. {$EXTERNALSYM PEM_write_bio_DSAparams}
  18202. function PEM_write_bio_DSAparams(bp : PBIO; x : PDSA) : TIdC_INT;
  18203. {$EXTERNALSYM PEM_write_bio_NETSCAPE_CERT_SEQUENCE}
  18204. function PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PDSA) : TIdC_INT;
  18205. {$EXTERNALSYM PEM_write_bio_PUBKEY}
  18206. function PEM_write_bio_PUBKEY(bp : PBIO; x : PEVP_PKEY) : TIdC_INT;
  18207. {$EXTERNALSYM OPENSSL_malloc}
  18208. function OPENSSL_malloc(aSize:TIdC_INT):Pointer;
  18209. {$EXTERNALSYM CRYPTO_SetMemCheck}
  18210. procedure CRYPTO_SetMemCheck(const aEnabled: Boolean);
  18211. {$IFNDEF OPENSSL_NO_RSA}
  18212. {$EXTERNALSYM EVP_PKEY_assign_RSA}
  18213. function EVP_PKEY_assign_RSA(pkey: PEVP_PKEY; rsa: PRSA): TIdC_INT;
  18214. {$ENDIF}
  18215. {$IFNDEF OPENSSL_NO_DSA}
  18216. {$EXTERNALSYM EVP_PKEY_assign_DSA}
  18217. function EVP_PKEY_assign_DSA(pkey : PEVP_PKEY; dsa : PDSA) : TIdC_INT;
  18218. {$ENDIF}
  18219. {$IFNDEF OPENSSL_NO_DH}
  18220. {$EXTERNALSYM EVP_PKEY_assign_DH}
  18221. function EVP_PKEY_assign_DH(pkey : PEVP_PKEY; dh : PDH) : TIdC_INT;
  18222. {$ENDIF}
  18223. {$IFNDEF OPENSSL_NO_EC}
  18224. {$EXTERNALSYM EVP_PKEY_assign_EC_KEY}
  18225. function EVP_PKEY_assign_EC_KEY(pkey : PEVP_PKEY; eckey : PEC_KEY) : TIdC_INT;
  18226. {$ENDIF}
  18227. //* Add some extra combinations */
  18228. {$EXTERNALSYM EVP_get_digestbynid}
  18229. function EVP_get_digestbynid(a : TIdC_INT) : PEVP_MD;
  18230. {$EXTERNALSYM EVP_get_digestbyobj}
  18231. function EVP_get_digestbyobj(a : PASN1_OBJECT) : PEVP_MD;
  18232. {$EXTERNALSYM EVP_get_cipherbynid}
  18233. function EVP_get_cipherbynid(a : TIdC_INT) : PEVP_CIPHER;
  18234. {$EXTERNALSYM EVP_get_cipherbyobj}
  18235. function EVP_get_cipherbyobj(a : PASN1_OBJECT) : PEVP_CIPHER;
  18236. {$EXTERNALSYM EVP_MD_nid}
  18237. function EVP_MD_nid(e : PEVP_MD) : TIdC_INT;
  18238. {$EXTERNALSYM EVP_MD_name}
  18239. function EVP_MD_name(e : PEVP_MD) : PIdAnsiChar;
  18240. {$EXTERNALSYM EVP_MD_CTX_size}
  18241. function EVP_MD_CTX_size(e : PEVP_MD_CTX) : TIdC_INT;
  18242. {$EXTERNALSYM EVP_MD_CTX_block_size}
  18243. function EVP_MD_CTX_block_size(e : PEVP_MD_CTX) : TIdC_INT;
  18244. {$EXTERNALSYM EVP_MD_CTX_type}
  18245. function EVP_MD_CTX_type(e : PEVP_MD_CTX) : TIdC_INT;
  18246. {$EXTERNALSYM EVP_CIPHER_name}
  18247. function EVP_CIPHER_name(e : PEVP_CIPHER) : PIdAnsiChar;
  18248. {$EXTERNALSYM EVP_CIPHER_mode}
  18249. function EVP_CIPHER_mode(e : PEVP_CIPHER) : TIdC_ULONG;
  18250. {$EXTERNALSYM EVP_CIPHER_CTX_type}
  18251. function EVP_CIPHER_CTX_type(c : PEVP_CIPHER_CTX) : TIdC_INT;
  18252. {$EXTERNALSYM EVP_CIPHER_CTX_mode}
  18253. function EVP_CIPHER_CTX_mode(e : PEVP_CIPHER_CTX) : TIdC_ULONG;
  18254. {$EXTERNALSYM EVP_ENCODE_LENGTH}
  18255. function EVP_ENCODE_LENGTH(l : Integer) : Integer;
  18256. {$EXTERNALSYM EVP_DECODE_LENGTH}
  18257. function EVP_DECODE_LENGTH(l : Integer) : Integer;
  18258. {$EXTERNALSYM EVP_SignInit_ex}
  18259. function EVP_SignInit_ex(a: PEVP_MD_CTX; b : PEVP_MD; c : PENGINE) : TIdC_INT;
  18260. {$EXTERNALSYM EVP_SignInit}
  18261. function EVP_SignInit(a : PEVP_MD_CTX; b : PEVP_MD) : TIdC_INT;
  18262. {$EXTERNALSYM EVP_SignUpdate}
  18263. function EVP_SignUpdate(a: PEVP_MD_CTX; b : Pointer; c : size_t) : TIdC_INT;
  18264. {$EXTERNALSYM EVP_VerifyInit_ex}
  18265. function EVP_VerifyInit_ex(a: PEVP_MD_CTX; b: PEVP_MD; c: PENGINE) : TIdC_INT;
  18266. {$EXTERNALSYM EVP_VerifyInit}
  18267. function EVP_VerifyInit(a: PEVP_MD_CTX; b: PEVP_MD) : TIdC_INT;
  18268. {$EXTERNALSYM EVP_VerifyUpdate}
  18269. function EVP_VerifyUpdate(a: PEVP_MD_CTX; b: Pointer; c : size_t) : TIdC_INT;
  18270. {$EXTERNALSYM EVP_OpenUpdate}
  18271. function EVP_OpenUpdate(a: PEVP_CIPHER_CTX; _out : PIdAnsiChar; outl : PIdC_INT;
  18272. _in : PIdAnsiChar; inl : TIdC_INT) : TIdC_INT;
  18273. {$EXTERNALSYM EVP_SealUpdate}
  18274. function EVP_SealUpdate(a : PEVP_CIPHER_CTX; b: PIdAnsiChar; c : PIdC_INT;
  18275. d: PIdAnsiChar; e : TIdC_INT) : TIdC_INT;
  18276. {$EXTERNALSYM EVP_DigestSignUpdate}
  18277. function EVP_DigestSignUpdate(a : PEVP_MD_CTX; b : Pointer; c : size_t) : TIdC_Int;
  18278. {$EXTERNALSYM EVP_DigestVerifyUpdate}
  18279. function EVP_DigestVerifyUpdate(a : PEVP_MD_CTX; b : Pointer; c : size_t) : TIdC_INT;
  18280. {$ifndef OPENSSL_NO_DES}
  18281. {$EXTERNALSYM EVP_des_cfb}
  18282. function EVP_des_cfb : PEVP_CIPHER;
  18283. {$EXTERNALSYM EVP_des_ede_cfb}
  18284. function EVP_des_ede_cfb: PEVP_CIPHER;
  18285. {$EXTERNALSYM EVP_des_ede3_cfb}
  18286. function EVP_des_ede3_cfb: PEVP_CIPHER;
  18287. {$endif}
  18288. {$ifndef OPENSSL_NO_IDEA}
  18289. {$EXTERNALSYM EVP_idea_cfb}
  18290. function EVP_idea_cfb: PEVP_CIPHER;
  18291. {$endif}
  18292. {$ifndef OPENSSL_NO_RC2}
  18293. {$EXTERNALSYM EVP_rc2_cfb}
  18294. function EVP_rc2_cfb: PEVP_CIPHER;
  18295. {$endif}
  18296. {$ifndef OPENSSL_NO_BF}
  18297. {$EXTERNALSYM EVP_bf_cfb}
  18298. function EVP_bf_cfb: PEVP_CIPHER;
  18299. {$endif}
  18300. {$ifndef OPENSSL_NO_CAST}
  18301. {$EXTERNALSYM EVP_cast5_cfb}
  18302. function EVP_cast5_cfb: PEVP_CIPHER;
  18303. {$endif}
  18304. {$ifndef OPENSSL_NO_RC5}
  18305. {$EXTERNALSYM EVP_rc5_32_12_16_cfb}
  18306. function EVP_rc5_32_12_16_cfb: PEVP_CIPHER;
  18307. {$endif}
  18308. {$ifndef OPENSSL_NO_AES}
  18309. {$EXTERNALSYM EVP_aes_128_cfb}
  18310. function EVP_aes_128_cfb: PEVP_CIPHER;
  18311. {$EXTERNALSYM EVP_aes_192_cfb}
  18312. function EVP_aes_192_cfb: PEVP_CIPHER;
  18313. {$EXTERNALSYM EVP_aes_256_cfb}
  18314. function EVP_aes_256_cfb: PEVP_CIPHER;
  18315. {$endif}
  18316. {$ifndef OPENSSL_NO_CAMELLIA}
  18317. {$EXTERNALSYM EVP_camellia_128_cfb}
  18318. function EVP_camellia_128_cfb: PEVP_CIPHER;
  18319. {$EXTERNALSYM EVP_camellia_192_cfb}
  18320. function EVP_camellia_192_cfb: PEVP_CIPHER;
  18321. {$EXTERNALSYM EVP_camellia_256_cfb}
  18322. function EVP_camellia_256_cfb: PEVP_CIPHER;
  18323. {$endif}
  18324. {$ifndef OPENSSL_NO_SEED}
  18325. {$EXTERNALSYM EVP_seed_cfb}
  18326. function EVP_seed_cfb: PEVP_CIPHER;
  18327. {$endif}
  18328. {$EXTERNALSYM EVP_PKEY_CTX_set_signature_md}
  18329. function EVP_PKEY_CTX_set_signature_md(ctx : PEVP_PKEY_CTX;md : PEVP_PKEY_CTX) : TIdC_INT;
  18330. {$EXTERNALSYM SSLeay_add_all_algorithms}
  18331. procedure SSLeay_add_all_algorithms;
  18332. {$EXTERNALSYM SSLeay_add_all_ciphers}
  18333. procedure SSLeay_add_all_ciphers;
  18334. {$EXTERNALSYM SSLeay_add_all_digests}
  18335. procedure SSLeay_add_all_digests;
  18336. {$EXTERNALSYM X509V3_set_ctx_nodb}
  18337. procedure X509V3_set_ctx_nodb(ctx: X509V3_CTX);
  18338. //
  18339. {$EXTERNALSYM ErrMsg}
  18340. function ErrMsg(AErr : TIdC_ULONG) : string;
  18341. {$EXTERNALSYM ERR_PACK}
  18342. function ERR_PACK(l, f, r : TIdC_INT) : TIdC_ULONG;
  18343. {$EXTERNALSYM ERR_GET_LIB}
  18344. function ERR_GET_LIB(const l : TIdC_INT) : TIdC_ULONG;
  18345. {$EXTERNALSYM ERR_GET_FUNC}
  18346. function ERR_GET_FUNC(const l : TIdC_INT) : TIdC_ULONG;
  18347. {$EXTERNALSYM ERR_FATAL_ERROR}
  18348. function ERR_FATAL_ERROR(const l : TIdC_INT) : Boolean;
  18349. {$EXTERNALSYM ERR_GET_REASON}
  18350. function ERR_GET_REASON(const l : TIdC_INT) : TIdC_INT;
  18351. {$EXTERNALSYM SYSerr}
  18352. procedure SYSerr(const f,r : TIdC_INT);
  18353. {$EXTERNALSYM BNerr}
  18354. procedure BNerr(const f,r : TIdC_INT);
  18355. {$EXTERNALSYM RSAerr}
  18356. procedure RSAerr(const f,r : TIdC_INT);
  18357. {$EXTERNALSYM DHerrr}
  18358. procedure DHerrr(const f,r : TIdC_INT);
  18359. {$EXTERNALSYM EVPerr}
  18360. procedure EVPerr(const f,r : TIdC_INT);
  18361. {$EXTERNALSYM BUFerr}
  18362. procedure BUFerr(const f,r : TIdC_INT);
  18363. {$EXTERNALSYM OBJerr}
  18364. procedure OBJerr(const f,r : TIdC_INT);
  18365. {$EXTERNALSYM PEMerr}
  18366. procedure PEMerr(const f,r : TIdC_INT);
  18367. {$EXTERNALSYM DSAerr}
  18368. procedure DSAerr(const f,r : TIdC_INT);
  18369. {$EXTERNALSYM X509err}
  18370. procedure X509err(const f,r : TIdC_INT);
  18371. {$EXTERNALSYM ASN1err}
  18372. procedure ASN1err(const f,r : TIdC_INT);
  18373. {$EXTERNALSYM CONFerr}
  18374. procedure CONFerr(const f,r : TIdC_INT);
  18375. {$EXTERNALSYM CRYPTOerr}
  18376. procedure CRYPTOerr(const f,r : TIdC_INT);
  18377. {$EXTERNALSYM ECerr}
  18378. procedure ECerr(const f,r : TIdC_INT);
  18379. {$EXTERNALSYM SSLerr}
  18380. procedure SSLerr(const f,r : TIdC_INT);
  18381. {$EXTERNALSYM BIOerr}
  18382. procedure BIOerr(const f,r : TIdC_INT);
  18383. {$EXTERNALSYM PKCS7err}
  18384. procedure PKCS7err(const f,r : TIdC_INT);
  18385. {$EXTERNALSYM X509V3err}
  18386. procedure X509V3err(const f,r : TIdC_INT);
  18387. {$EXTERNALSYM PKCS12err}
  18388. procedure PKCS12err(const f,r : TIdC_INT);
  18389. {$EXTERNALSYM RANDerr}
  18390. procedure RANDerr(const f,r : TIdC_INT);
  18391. {$EXTERNALSYM DSOerr}
  18392. procedure DSOerr(const f,r : TIdC_INT);
  18393. {$EXTERNALSYM ENGINEerr}
  18394. procedure ENGINEerr(const f,r : TIdC_INT);
  18395. {$EXTERNALSYM OCSPerr}
  18396. procedure OCSPerr(const f,r : TIdC_INT);
  18397. {$EXTERNALSYM UIerr}
  18398. procedure UIerr(const f,r : TIdC_INT);
  18399. {$EXTERNALSYM COMPerr}
  18400. procedure COMPerr(const f,r : TIdC_INT);
  18401. {$EXTERNALSYM ECDSAerr}
  18402. procedure ECDSAerr(const f,r : TIdC_INT);
  18403. {$EXTERNALSYM ECDHerr}
  18404. procedure ECDHerr(const f,r : TIdC_INT);
  18405. {$EXTERNALSYM STOREerr}
  18406. procedure STOREerr(const f,r : TIdC_INT);
  18407. {$EXTERNALSYM FIPSerr}
  18408. procedure FIPSerr(const f,r : TIdC_INT);
  18409. {$EXTERNALSYM CMSerr}
  18410. procedure CMSerr(const f,r : TIdC_INT);
  18411. {$EXTERNALSYM TSerr}
  18412. procedure TSerr(const f,r : TIdC_INT);
  18413. {$EXTERNALSYM HMACerr}
  18414. procedure HMACerr(const f,r : TIdC_INT);
  18415. {$EXTERNALSYM JPAKEerr}
  18416. procedure JPAKEerr(const f,r : TIdC_INT);
  18417. {$EXTERNALSYM X509_LOOKUP_load_file}
  18418. function X509_LOOKUP_load_file(x : PX509_LOOKUP; name : PIdAnsiChar; _type : TIdC_LONG) : TIdC_INT;
  18419. {$EXTERNALSYM X509_LOOKUP_add_dir}
  18420. function X509_LOOKUP_add_dir(x : PX509_LOOKUP; name : PIdAnsiChar; _type : TIdC_LONG) : TIdC_INT;
  18421. type
  18422. //moved from IdSSLOpenSSL so we can use these classes in other places
  18423. EIdOpenSSLError = class(EIdException);
  18424. TIdOpenSSLAPISSLError = class of EIdOpenSSLAPISSLError;
  18425. EIdOpenSSLAPISSLError = class(EIdOpenSSLError)
  18426. protected
  18427. FErrorCode : TIdC_INT;
  18428. FRetCode : TIdC_INT;
  18429. public
  18430. class procedure RaiseException(ASSL: Pointer; const ARetCode : TIdC_INT; const AMsg : String = '');
  18431. class procedure RaiseExceptionCode(const AErrCode, ARetCode : TIdC_INT; const AMsg : String = '');
  18432. property ErrorCode : TIdC_INT read FErrorCode;
  18433. property RetCode : TIdC_INT read FRetCode;
  18434. end;
  18435. TIdOpenSSLAPICryptoError = class of EIdOpenSSLAPICryptoError;
  18436. EIdOpenSSLAPICryptoError = class(EIdOpenSSLError)
  18437. protected
  18438. FErrorCode : TIdC_ULONG;
  18439. public
  18440. class procedure RaiseExceptionCode(const AErrCode : TIdC_ULONG; const AMsg : String = '');
  18441. class procedure RaiseException(const AMsg : String = '');
  18442. property ErrorCode : TIdC_ULONG read FErrorCode;
  18443. end;
  18444. EIdOSSLUnderlyingCryptoError = class(EIdOpenSSLAPICryptoError);
  18445. EIdDigestError = class(EIdOpenSSLAPICryptoError);
  18446. EIdDigestFinalEx = class(EIdDigestError);
  18447. EIdDigestInitEx = class(EIdDigestError);
  18448. EIdDigestUpdate = class(EIdDigestError);
  18449. function IsOpenSSL_1x : Boolean;
  18450. function IsOpenSSL_SSLv2_Available : Boolean;
  18451. function IsOpenSSL_SSLv3_Available : Boolean;
  18452. function IsOpenSSL_SSLv23_Available : Boolean;
  18453. function IsOpenSSL_TLSv1_0_Available : Boolean;
  18454. function IsOpenSSL_TLSv1_1_Available : Boolean;
  18455. function IsOpenSSL_TLSv1_2_Available : Boolean;
  18456. function IsOpenSSL_DTLSv1_Available : Boolean;
  18457. // RLebeau: should these be declared as EXTERNALSYM?
  18458. procedure RAND_cleanup;
  18459. function RAND_bytes(buf : PIdAnsiChar; num : integer) : integer;
  18460. function RAND_pseudo_bytes(buf : PIdAnsiChar; num : integer) : integer;
  18461. procedure RAND_seed(buf : PIdAnsiChar; num : integer);
  18462. procedure RAND_add(buf : PIdAnsiChar; num : integer; entropy : integer);
  18463. function RAND_status() : integer;
  18464. {$IFDEF SYS_WIN}
  18465. function RAND_event(iMsg : UINT; wp : wparam; lp : lparam) : integer;
  18466. procedure RAND_screen();
  18467. {$ENDIF}
  18468. implementation
  18469. uses
  18470. Classes,
  18471. IdFIPS,
  18472. IdGlobalProtocols,
  18473. IdHashMessageDigest,
  18474. IdResourceStringsProtocols,
  18475. IdResourceStringsOpenSSL,
  18476. IdStack
  18477. {$IFDEF FPC}
  18478. {$IFNDEF WINDOWS}
  18479. , DynLibs // needed for FreeLibrary
  18480. {$ENDIF}
  18481. {$ENDIF};
  18482. {$IFNDEF OPENSSL_NO_HMAC}
  18483. procedure HMAC_Init_ex(ctx : PHMAC_CTX; key : Pointer; len : TIdC_INT;
  18484. md : PEVP_MD; impl : PENGINE);
  18485. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18486. begin
  18487. if Assigned(_HMAC_Init_ex) then begin
  18488. _HMAC_Init_ex(ctx, key, len, md, impl );
  18489. end else begin
  18490. if Assigned(_1_0_HMAC_Init_ex) then begin
  18491. _1_0_HMAC_Init_ex(ctx, key, len, md, impl );
  18492. end;
  18493. end;
  18494. end;
  18495. procedure HMAC_Update(ctx : PHMAC_CTX; data : PIdAnsiChar; len : size_t);
  18496. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18497. begin
  18498. if Assigned(_HMAC_Update) then begin
  18499. _HMAC_Update(ctx, data, len );
  18500. end else begin
  18501. if Assigned(_1_0_HMAC_Update) then begin
  18502. _1_0_HMAC_Update(ctx, data, len );
  18503. end;
  18504. end;
  18505. end;
  18506. procedure HMAC_Final(ctx : PHMAC_CTX; md : PIdAnsiChar; len : PIdC_UINT);
  18507. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18508. begin
  18509. if Assigned(_HMAC_Final) then begin
  18510. _HMAC_Final(ctx, md, len );
  18511. end else begin
  18512. if Assigned(_1_0_HMAC_Update) then begin
  18513. _1_0_HMAC_Final(ctx, md, len );
  18514. end;
  18515. end;
  18516. end;
  18517. {$ENDIF}
  18518. function IsOpenSSL_1x : Boolean;
  18519. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18520. begin
  18521. if Assigned( SSLeay ) then begin
  18522. Result := (SSLeay and $F0000000) = $10000000;
  18523. end else begin
  18524. Result := False;
  18525. end;
  18526. end;
  18527. function IsOpenSSL_SSLv2_Available : Boolean;
  18528. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18529. begin
  18530. Result := Assigned(SSLv2_method) and
  18531. Assigned(SSLv2_server_method) and
  18532. Assigned(SSLv2_client_method);
  18533. end;
  18534. function IsOpenSSL_SSLv3_Available : Boolean;
  18535. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18536. begin
  18537. Result := Assigned(SSLv3_method) and
  18538. Assigned(SSLv3_server_method) and
  18539. Assigned(SSLv3_client_method);
  18540. end;
  18541. function IsOpenSSL_SSLv23_Available : Boolean;
  18542. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18543. begin
  18544. Result := Assigned(SSLv23_method) and
  18545. Assigned(SSLv23_server_method) and
  18546. Assigned(SSLv23_client_method);
  18547. end;
  18548. function IsOpenSSL_TLSv1_0_Available : Boolean;
  18549. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18550. begin
  18551. Result := Assigned(TLSv1_method) and
  18552. Assigned(TLSv1_server_method) and
  18553. Assigned(TLSv1_client_method);
  18554. end;
  18555. function IsOpenSSL_TLSv1_1_Available : Boolean;
  18556. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18557. begin
  18558. Result := Assigned(TLSv1_1_method) and
  18559. Assigned(TLSv1_1_server_method) and
  18560. Assigned(TLSv1_1_client_method);
  18561. end;
  18562. function IsOpenSSL_TLSv1_2_Available : Boolean;
  18563. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18564. begin
  18565. Result := Assigned(TLSv1_2_method) and
  18566. Assigned(TLSv1_2_server_method) and
  18567. Assigned(TLSv1_2_client_method);
  18568. end;
  18569. function IsOpenSSL_DTLSv1_Available : Boolean;
  18570. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18571. begin
  18572. Result := Assigned(DTLSv1_method) and
  18573. Assigned(DTLSv1_server_method) and
  18574. Assigned(DTLSv1_client_method);
  18575. end;
  18576. //**************** FIPS Support backend *******************
  18577. function OpenSSLIsHashingIntfAvail : Boolean;
  18578. begin
  18579. Result := Assigned(EVP_DigestInit_ex) and
  18580. Assigned(EVP_DigestUpdate) and
  18581. Assigned(EVP_DigestFinal_ex) ;
  18582. end;
  18583. function OpenSSLGetFIPSMode : Boolean;
  18584. begin
  18585. Result := FIPS_mode <> 0;
  18586. end;
  18587. function OpenSSLSetFIPSMode(const AMode : Boolean) : Boolean;
  18588. begin
  18589. //leave this empty as we may not be using something that supports FIPS
  18590. if AMode then begin
  18591. Result := FIPS_mode_set(1) = 1;
  18592. end else begin
  18593. Result := FIPS_mode_set(0) = 1;
  18594. end;
  18595. end;
  18596. function OpenSSLGetDigestCtx( AInst : PEVP_MD) : TIdHashIntCtx;
  18597. {$IFDEF USE_INLINE} inline; {$ENDIF}
  18598. var LRet : Integer;
  18599. begin
  18600. Result := AllocMem(SizeOf(EVP_MD_CTX));
  18601. EVP_MD_CTX_init(Result);
  18602. LRet := EVP_DigestInit_ex(Result, AInst, nil);
  18603. if LRet <> 1 then begin
  18604. EIdDigestInitEx.RaiseException('EVP_DigestInit_ex error');
  18605. end;
  18606. end;
  18607. function OpenSSLIsMD2HashIntfAvail: Boolean;
  18608. begin
  18609. {$IFDEF OPENSSL_NO_MD2}
  18610. Result := False;
  18611. {$ELSE}
  18612. Result := Assigned(EVP_md2);
  18613. {$ENDIF}
  18614. end;
  18615. function OpenSSLGetMD2HashInst : TIdHashIntCtx;
  18616. {$IFNDEF OPENSSL_NO_MD2}
  18617. var
  18618. LRet : PEVP_MD;
  18619. {$ENDIF}
  18620. begin
  18621. {$IFDEF OPENSSL_NO_MD2}
  18622. Result := nil;
  18623. {$ELSE}
  18624. LRet := EVP_md2;
  18625. Result := OpenSSLGetDigestCtx(LRet);
  18626. {$ENDIF}
  18627. end;
  18628. function OpenSSLIsMD4HashIntfAvail: Boolean;
  18629. begin
  18630. Result := Assigned(EVP_md4);
  18631. end;
  18632. function OpenSSLGetMD4HashInst : TIdHashIntCtx;
  18633. var
  18634. LRet : PEVP_MD;
  18635. begin
  18636. LRet := EVP_md4;
  18637. Result := OpenSSLGetDigestCtx(LRet);
  18638. end;
  18639. function OpenSSLIsMD5HashIntfAvail: Boolean;
  18640. begin
  18641. Result := Assigned(EVP_md5);
  18642. end;
  18643. function OpenSSLGetMD5HashInst : TIdHashIntCtx;
  18644. var
  18645. LRet : PEVP_MD;
  18646. begin
  18647. LRet := EVP_md5;
  18648. Result := OpenSSLGetDigestCtx(LRet);
  18649. end;
  18650. function OpenSSLIsSHA1HashIntfAvail: Boolean;
  18651. begin
  18652. {$IFDEF OPENSSL_NO_SHA}
  18653. Result := False;
  18654. {$ELSE}
  18655. Result := Assigned(EVP_sha1);
  18656. {$ENDIF}
  18657. end;
  18658. function OpenSSLGetSHA1HashInst : TIdHashIntCtx;
  18659. {$IFNDEF OPENSSL_NO_SHA}
  18660. var
  18661. LRet : PEVP_MD;
  18662. {$ENDIF}
  18663. begin
  18664. {$IFDEF OPENSSL_NO_SHA}
  18665. Result := nil;
  18666. {$ELSE}
  18667. LRet := EVP_sha1;
  18668. Result := OpenSSLGetDigestCtx(LRet);
  18669. {$ENDIF}
  18670. end;
  18671. function OpenSSLIsSHA224HashIntfAvail: Boolean;
  18672. begin
  18673. {$IFDEF OPENSSL_NO_SHA256}
  18674. Result := False;
  18675. {$ELSE}
  18676. Result := Assigned(EVP_sha224);
  18677. {$ENDIF}
  18678. end;
  18679. function OpenSSLGetSHA224HashInst : TIdHashIntCtx;
  18680. {$IFNDEF OPENSSL_NO_SHA256}
  18681. var
  18682. LRet : PEVP_MD;
  18683. {$ENDIF}
  18684. begin
  18685. {$IFDEF OPENSSL_NO_SHA256}
  18686. Result := nil;
  18687. {$ELSE}
  18688. LRet := EVP_sha224;
  18689. Result := OpenSSLGetDigestCtx(LRet);
  18690. {$ENDIF}
  18691. end;
  18692. function OpenSSLIsSHA256HashIntfAvail: Boolean;
  18693. begin
  18694. {$IFDEF OPENSSL_NO_SHA256}
  18695. Result := False;
  18696. {$ELSE}
  18697. Result := Assigned(EVP_sha256);
  18698. {$ENDIF}
  18699. end;
  18700. function OpenSSLGetSHA256HashInst : TIdHashIntCtx;
  18701. {$IFNDEF OPENSSL_NO_SHA256}
  18702. var
  18703. LRet : PEVP_MD;
  18704. {$ENDIF}
  18705. begin
  18706. {$IFDEF OPENSSL_NO_SHA256}
  18707. Result := nil;
  18708. {$ELSE}
  18709. LRet := EVP_sha256;
  18710. Result := OpenSSLGetDigestCtx(LRet);
  18711. {$ENDIF}
  18712. end;
  18713. function OpenSSLIsSHA384HashIntfAvail: Boolean;
  18714. begin
  18715. {$IFDEF OPENSSL_NO_SHA512}
  18716. Result := False;
  18717. {$ELSE}
  18718. Result := Assigned(EVP_sha384);
  18719. {$ENDIF}
  18720. end;
  18721. function OpenSSLGetSHA384HashInst : TIdHashIntCtx;
  18722. {$IFNDEF OPENSSL_NO_SHA512}
  18723. var
  18724. LRet : PEVP_MD;
  18725. {$ENDIF}
  18726. begin
  18727. {$IFDEF OPENSSL_NO_SHA512}
  18728. Result := nil;
  18729. {$ELSE}
  18730. LRet := EVP_sha384;
  18731. Result := OpenSSLGetDigestCtx(LRet);
  18732. {$ENDIF}
  18733. end;
  18734. function OpenSSLIsSHA512HashIntfAvail: Boolean;
  18735. begin
  18736. {$IFDEF OPENSSL_NO_SHA512}
  18737. Result := nil;
  18738. {$ELSE}
  18739. Result := Assigned(EVP_sha512);
  18740. {$ENDIF}
  18741. end;
  18742. function OpenSSLGetSHA512HashInst : TIdHashIntCtx;
  18743. {$IFNDEF OPENSSL_NO_SHA512}
  18744. var
  18745. LRet : PEVP_MD;
  18746. {$ENDIF}
  18747. begin
  18748. {$IFDEF OPENSSL_NO_SHA512}
  18749. Result := nil;
  18750. {$ELSE}
  18751. LRet := EVP_sha512;
  18752. Result := OpenSSLGetDigestCtx(LRet);
  18753. {$ENDIF}
  18754. end;
  18755. procedure OpenSSLUpdateHashInst(ACtx: TIdHashIntCtx; const AIn: TIdBytes);
  18756. var
  18757. LRet : TIdC_Int;
  18758. begin
  18759. LRet := EVP_DigestUpdate(ACtx, PByte(Ain), Length(AIn));
  18760. if LRet <> 1 then begin
  18761. EIdDigestInitEx.RaiseException('EVP_DigestUpdate error');
  18762. end;
  18763. end;
  18764. function OpenSSLFinalHashInst(ACtx: TIdHashIntCtx): TIdBytes;
  18765. var
  18766. LLen : TIdC_UInt;
  18767. LRet : TIdC_Int;
  18768. begin
  18769. SetLength(Result,EVP_MAX_MD_SIZE);
  18770. LRet := EVP_DigestFinal_ex(ACtx, PIdAnsiChar(@Result[0]), LLen);
  18771. if LRet <> 1 then begin
  18772. EIdDigestFinalEx.RaiseException('EVP_DigestFinal_ex error');
  18773. end;
  18774. SetLength(Result,LLen);
  18775. EVP_MD_CTX_cleanup(ACtx);
  18776. FreeMem(ACtx,SizeOf(EVP_MD_CTX));
  18777. end;
  18778. function OpenSSLIsHMACAvail : Boolean;
  18779. begin
  18780. {$IFDEF OPENSSL_NO_HMAC}
  18781. Result := False;
  18782. {$ELSE}
  18783. Result := Assigned(HMAC_CTX_init) and
  18784. ( Assigned(_HMAC_Init_ex) or Assigned(_1_0_HMAC_Init_ex) ) and
  18785. ( Assigned(_HMAC_Update) or Assigned(_1_0_HMAC_Update) ) and
  18786. ( Assigned(_HMAC_Final) or Assigned(_1_0_HMAC_Final) ) and
  18787. Assigned(HMAC_CTX_cleanup);
  18788. {$ENDIF}
  18789. end;
  18790. function OpenSSLIsHMACMD5Avail: Boolean;
  18791. begin
  18792. {$IFDEF OPENSSL_NO_MD5}
  18793. Result := False;
  18794. {$ELSE}
  18795. Result := Assigned(EVP_md5);
  18796. {$ENDIF}
  18797. end;
  18798. function OpenSSLGetHMACMD5Inst(const AKey : TIdBytes) : TIdHMACIntCtx;
  18799. begin
  18800. {$IFDEF OPENSSL_NO_MD5}
  18801. Result := nil;
  18802. {$ELSE}
  18803. Result := AllocMem(SizeOf(HMAC_CTX));
  18804. HMAC_CTX_init(Result);
  18805. HMAC_Init_ex(Result, PByte(AKey), Length(AKey), EVP_md5, nil);
  18806. {$ENDIF}
  18807. end;
  18808. function OpenSSLIsHMACSHA1Avail: Boolean;
  18809. begin
  18810. {$IFDEF OPENSSL_NO_SHA}
  18811. Result := False;
  18812. {$ELSE}
  18813. Result := Assigned(EVP_sha1);
  18814. {$ENDIF}
  18815. end;
  18816. function OpenSSLGetHMACSHA1Inst(const AKey : TIdBytes) : TIdHMACIntCtx;
  18817. begin
  18818. {$IFDEF OPENSSL_NO_SHA}
  18819. Result := nil;
  18820. {$ELSE}
  18821. Result := AllocMem(SizeOf(HMAC_CTX));
  18822. HMAC_CTX_init(Result);
  18823. HMAC_Init_ex(Result, PByte(AKey), Length(AKey), EVP_sha1, nil);
  18824. {$ENDIF}
  18825. end;
  18826. function OpenSSLIsHMACSHA224Avail: Boolean;
  18827. begin
  18828. {$IFDEF OPENSSL_NO_SHA256}
  18829. Result := False;
  18830. {$ELSE}
  18831. Result := Assigned(EVP_sha224);
  18832. {$ENDIF}
  18833. end;
  18834. function OpenSSLGetHMACSHA224Inst(const AKey : TIdBytes) : TIdHMACIntCtx;
  18835. begin
  18836. {$IFDEF OPENSSL_NO_SHA256}
  18837. Result := nil;
  18838. {$ELSE}
  18839. Result := AllocMem(SizeOf(HMAC_CTX));
  18840. HMAC_CTX_init(Result);
  18841. HMAC_Init_ex(Result, PByte(AKey), Length(AKey), EVP_sha224, nil);
  18842. {$ENDIF}
  18843. end;
  18844. function OpenSSLIsHMACSHA256Avail: Boolean;
  18845. begin
  18846. {$IFDEF OPENSSL_NO_SHA256}
  18847. Result := False;
  18848. {$ELSE}
  18849. Result := Assigned(EVP_sha256);
  18850. {$ENDIF}
  18851. end;
  18852. function OpenSSLGetHMACSHA256Inst(const AKey : TIdBytes) : TIdHMACIntCtx;
  18853. begin
  18854. {$IFDEF OPENSSL_NO_SHA256}
  18855. Result := nil;
  18856. {$ELSE}
  18857. Result := AllocMem(SizeOf(HMAC_CTX));
  18858. HMAC_CTX_init(Result);
  18859. HMAC_Init_ex(Result, PByte(AKey), Length(AKey), EVP_sha256, nil);
  18860. {$ENDIF}
  18861. end;
  18862. function OpenSSLIsHMACSHA384Avail: Boolean;
  18863. begin
  18864. {$IFDEF OPENSSL_NO_SHA512}
  18865. Result := False;
  18866. {$ELSE}
  18867. Result := Assigned(EVP_sha384);
  18868. {$ENDIF}
  18869. end;
  18870. function OpenSSLGetHMACSHA384Inst(const AKey : TIdBytes) : TIdHMACIntCtx;
  18871. begin
  18872. {$IFDEF OPENSSL_NO_SHA512}
  18873. Result := nil;
  18874. {$ELSE}
  18875. Result := AllocMem(SizeOf(HMAC_CTX));
  18876. HMAC_CTX_init(Result);
  18877. HMAC_Init_ex(Result, PByte(AKey), Length(AKey), EVP_sha384, nil);
  18878. {$ENDIF}
  18879. end;
  18880. function OpenSSLIsHMACSHA512Avail: Boolean;
  18881. begin
  18882. {$IFDEF OPENSSL_NO_SHA512}
  18883. Result := False;
  18884. {$ELSE}
  18885. Result := Assigned(EVP_sha512);
  18886. {$ENDIF}
  18887. end;
  18888. function OpenSSLGetHMACSHA512Inst(const AKey : TIdBytes) : TIdHMACIntCtx;
  18889. begin
  18890. {$IFDEF OPENSSL_NO_SHA512}
  18891. Result := nil;
  18892. {$ELSE}
  18893. Result := AllocMem(SizeOf(HMAC_CTX));
  18894. HMAC_CTX_init(Result);
  18895. HMAC_Init_ex(Result, PByte(AKey), Length(AKey), EVP_sha512, nil);
  18896. {$ENDIF}
  18897. end;
  18898. procedure OpenSSLUpdateHMACInst(ACtx : TIdHMACIntCtx; const AIn: TIdBytes);
  18899. begin
  18900. HMAC_Update(ACtx, PIdAnsiChar(PByte(AIn)), Length(AIn));
  18901. end;
  18902. function OpenSSLFinalHMACInst(ACtx: TIdHMACIntCtx): TIdBytes;
  18903. var
  18904. LLen : TIdC_UInt;
  18905. begin
  18906. LLen := EVP_MAX_MD_SIZE;
  18907. SetLength(Result,LLen);
  18908. HMAC_Final(ACtx, PIdAnsiChar(@Result[0]), @LLen);
  18909. SetLength(Result,LLen);
  18910. HMAC_CTX_cleanup(ACtx);
  18911. FreeMem(ACtx,SizeOf(HMAC_CTX));
  18912. end;
  18913. function LoadOpenSSL: Boolean;
  18914. begin
  18915. Result := Load;
  18916. end;
  18917. function OpenSSLIsNTLMFuncsAvail: Boolean;
  18918. begin
  18919. Result := Assigned(DES_set_odd_parity) and
  18920. Assigned(DES_set_key) and
  18921. Assigned(DES_ecb_encrypt);
  18922. end;
  18923. type
  18924. Pdes_key_schedule = ^des_key_schedule;
  18925. {/*
  18926. * turns a 56 bit key into the 64 bit, odd parity key and sets the key.
  18927. * The key schedule ks is also set.
  18928. */}
  18929. procedure ntlm_setup_des_key(key_56: des_cblock; Var ks: des_key_schedule);
  18930. Var
  18931. key: des_cblock;
  18932. begin
  18933. key[0] := key_56[0];
  18934. key[1] := ((key_56[0] SHL 7) and $FF) or (key_56[1] SHR 1);
  18935. key[2] := ((key_56[1] SHL 6) and $FF) or (key_56[2] SHR 2);
  18936. key[3] := ((key_56[2] SHL 5) and $FF) or (key_56[3] SHR 3);
  18937. key[4] := ((key_56[3] SHL 4) and $FF) or (key_56[4] SHR 4);
  18938. key[5] := ((key_56[4] SHL 3) and $FF) or (key_56[5] SHR 5);
  18939. key[6] := ((key_56[5] SHL 2) and $FF) or (key_56[6] SHR 6);
  18940. key[7] := (key_56[6] SHL 1) and $FF;
  18941. DES_set_odd_parity(@key);
  18942. DES_set_key(@key, ks);
  18943. end;
  18944. {/*
  18945. * takes a 21 byte array and treats it as 3 56-bit DES keys. The
  18946. * 8 byte plaintext is encrypted with each key and the resulting 24
  18947. * bytes are stored in the results array.
  18948. */}
  18949. procedure ntlm_calc_resp(keys: PDES_cblock; const ANonce: TIdBytes; results: Pdes_key_schedule);
  18950. Var
  18951. ks: des_key_schedule;
  18952. nonce: des_cblock;
  18953. begin
  18954. ntlm_setup_des_key(keys^, ks);
  18955. Move(ANonce[0], nonce, 8);
  18956. des_ecb_encrypt(@nonce, Pconst_DES_cblock(results), ks, DES_ENCRYPT);
  18957. ntlm_setup_des_key(PDES_cblock(PtrUInt(keys) + 7)^, ks);
  18958. des_ecb_encrypt(@nonce, Pconst_DES_cblock(PtrUInt(results) + 8), ks, DES_ENCRYPT);
  18959. ntlm_setup_des_key(PDES_cblock(PtrUInt(keys) + 14)^, ks);
  18960. des_ecb_encrypt(@nonce, Pconst_DES_cblock(PtrUInt(results) + 16), ks, DES_ENCRYPT);
  18961. end;
  18962. Const
  18963. Magic: des_cblock = ($4B, $47, $53, $21, $40, $23, $24, $25 );
  18964. //* setup LanManager password */
  18965. function OpenSSLSetupLanManagerPassword(const APassword: String; const ANonce: TIdBytes): TIdBytes;
  18966. var
  18967. lm_hpw: array[0..20] of Byte;
  18968. lm_pw: array[0..13] of Byte;
  18969. idx, len: Integer;
  18970. ks: des_key_schedule;
  18971. lm_resp: array [0..23] of Byte;
  18972. lPassword: {$IFDEF STRING_IS_UNICODE}TIdBytes{$ELSE}AnsiString{$ENDIF};
  18973. begin
  18974. {$IFDEF STRING_IS_UNICODE}
  18975. lPassword := IndyTextEncoding_OSDefault.GetBytes(UpperCase(APassword));
  18976. {$ELSE}
  18977. lPassword := UpperCase(APassword);
  18978. {$ENDIF}
  18979. len := IndyMin(Length(lPassword), 14);
  18980. if len > 0 then begin
  18981. Move(lPassword[{$IFDEF STRING_IS_UNICODE}0{$ELSE}1{$ENDIF}], lm_pw[0], len);
  18982. end;
  18983. if len < 14 then begin
  18984. for idx := len to 13 do begin
  18985. lm_pw[idx] := $0;
  18986. end;
  18987. end;
  18988. //* create LanManager hashed password */
  18989. ntlm_setup_des_key(pdes_cblock(@lm_pw[0])^, ks);
  18990. des_ecb_encrypt(@magic, Pconst_DES_cblock(@lm_hpw[0]), ks, DES_ENCRYPT);
  18991. ntlm_setup_des_key(pdes_cblock(PtrUInt(@lm_pw[0]) + 7)^, ks);
  18992. des_ecb_encrypt(@magic, Pconst_DES_cblock(PtrUInt(@lm_hpw[0]) + 8), ks, DES_ENCRYPT);
  18993. FillChar(lm_hpw[16], 5, 0);
  18994. ntlm_calc_resp(PDes_cblock(@lm_hpw[0]), ANonce, Pdes_key_schedule(@lm_resp[0]));
  18995. SetLength(Result, SizeOf(lm_resp));
  18996. Move(lm_resp[0], Result[0], SizeOf(lm_resp));
  18997. end;
  18998. //* create NT hashed password */
  18999. function OpenSSLCreateNTPassword(const APassword: String; const ANonce: TIdBytes): TIdBytes;
  19000. var
  19001. nt_hpw: array [1..21] of Byte;
  19002. nt_hpw128: TIdBytes;
  19003. nt_resp: array [1..24] of Byte;
  19004. LMD4: TIdHashMessageDigest4;
  19005. {$IFNDEF STRING_IS_UNICODE}
  19006. i: integer;
  19007. lPwUnicode: TIdBytes;
  19008. {$ENDIF}
  19009. begin
  19010. CheckMD4Permitted;
  19011. LMD4 := TIdHashMessageDigest4.Create;
  19012. try
  19013. {$IFDEF STRING_IS_UNICODE}
  19014. nt_hpw128 := LMD4.HashString(APassword, IndyTextEncoding_UTF16LE);
  19015. {$ELSE}
  19016. // RLebeau: TODO - should this use UTF-16 as well? This logic will
  19017. // not produce a valid Unicode string if non-ASCII characters are present!
  19018. SetLength(lPwUnicode, Length(APassword) * SizeOf(WideChar));
  19019. for i := 0 to Length(APassword)-1 do begin
  19020. lPwUnicode[i*2] := Byte(APassword[i+1]);
  19021. lPwUnicode[(i*2)+1] := Byte(#0);
  19022. end;
  19023. nt_hpw128 := LMD4.HashBytes(lPwUnicode);
  19024. {$ENDIF}
  19025. finally
  19026. LMD4.Free;
  19027. end;
  19028. Move(nt_hpw128[0], nt_hpw[1], 16);
  19029. FillChar(nt_hpw[17], 5, 0);
  19030. ntlm_calc_resp(pdes_cblock(@nt_hpw[1]), ANonce, Pdes_key_schedule(@nt_resp[1]));
  19031. SetLength(Result, SizeOf(nt_resp));
  19032. Move(nt_resp[1], Result[0], SizeOf(nt_resp));
  19033. end;
  19034. //****************************************************
  19035. function FIPS_mode_set(onoff : TIdC_INT) : TIdC_INT; {$IFDEF INLINE}inline;{$ENDIF}
  19036. begin
  19037. Result := 0;
  19038. {$IFDEF OPENSSL_FIPS}
  19039. if Assigned(_FIPS_mode_set) then begin
  19040. Result := _FIPS_mode_set(onoff);
  19041. end;
  19042. {$ENDIF}
  19043. end;
  19044. function FIPS_mode() : TIdC_INT; {$IFDEF INLINE}inline;{$ENDIF}
  19045. begin
  19046. Result := 0;
  19047. {$IFDEF OPENSSL_FIPS}
  19048. if Assigned(_FIPS_mode) then begin
  19049. Result := _FIPS_mode;
  19050. end;
  19051. {$ENDIF}
  19052. end;
  19053. function GetErrorMessage(const AErr : TIdC_ULONG) : String;
  19054. {$IFDEF USE_INLINE} inline; {$ENDIF}
  19055. const
  19056. sMaxErrMsg = 160;
  19057. var
  19058. LErrMsg: array [0..sMaxErrMsg] of TIdAnsiChar;
  19059. {$IFDEF USE_MARSHALLED_PTRS}
  19060. LErrMsgPtr: TPtrWrapper;
  19061. {$ENDIF}
  19062. begin
  19063. {$IFDEF USE_MARSHALLED_PTRS}
  19064. LErrMsgPtr := TPtrWrapper.Create(@LErrMsg[0]);
  19065. {$ENDIF}
  19066. ERR_error_string_n(AErr,
  19067. {$IFDEF USE_MARSHALLED_PTRS}
  19068. LErrMsgPtr.ToPointer
  19069. {$ELSE}
  19070. LErrMsg
  19071. {$ENDIF}, sMaxErrMsg);
  19072. LErrMsg[sMaxErrMsg] := TIdAnsiChar(0);
  19073. {$IFDEF USE_MARSHALLED_PTRS}
  19074. Result := TMarshal.ReadStringAsAnsi(LErrMsgPtr);
  19075. {$ELSE}
  19076. Result := String(LErrMsg);
  19077. {$ENDIF}
  19078. end;
  19079. { EIdOpenSSLAPICryptoError }
  19080. class procedure EIdOpenSSLAPICryptoError.RaiseException(const AMsg : String = '');
  19081. begin
  19082. RaiseExceptionCode(ERR_get_error(), AMsg);
  19083. end;
  19084. class procedure EIdOpenSSLAPICryptoError.RaiseExceptionCode(
  19085. const AErrCode: TIdC_ULONG; const AMsg: String);
  19086. var
  19087. LMsg: String;
  19088. LException : EIdOpenSSLAPICryptoError;
  19089. begin
  19090. if AMsg <> '' then begin
  19091. LMsg := AMsg + sLineBreak + String(GetErrorMessage(AErrCode));
  19092. end else begin
  19093. LMsg := String(GetErrorMessage(AErrCode));
  19094. end;
  19095. LException := Create(LMsg);
  19096. LException.FErrorCode := AErrCode;
  19097. raise LException;
  19098. end;
  19099. { EIdOpenSSLAPISSLError }
  19100. class procedure EIdOpenSSLAPISSLError.RaiseException(ASSL: Pointer; const ARetCode: TIdC_INT;
  19101. const AMsg: String);
  19102. begin
  19103. RaiseExceptionCode(SSL_get_error(PSSL(ASSL), ARetCode), ARetCode, AMsg);
  19104. end;
  19105. class procedure EIdOpenSSLAPISSLError.RaiseExceptionCode(const AErrCode, ARetCode: TIdC_INT;
  19106. const AMsg: String);
  19107. var
  19108. LErrQueue : TIdC_ULONG;
  19109. LException : EIdOpenSSLAPISSLError;
  19110. LErrStr : String;
  19111. begin
  19112. if AMsg <> '' then begin
  19113. LErrStr := AMsg + sLineBreak;
  19114. end else begin
  19115. LErrStr := '';
  19116. end;
  19117. case AErrCode of
  19118. SSL_ERROR_SYSCALL :
  19119. begin
  19120. LErrQueue := ERR_get_error;
  19121. if LErrQueue <> 0 then begin
  19122. EIdOSSLUnderlyingCryptoError.RaiseExceptionCode(LErrQueue, AMsg);
  19123. end;
  19124. if ARetCode = 0 then begin
  19125. LException := Create(LErrStr + RSSSLEOFViolation);
  19126. LException.FErrorCode := AErrCode;
  19127. LException.FRetCode := ARetCode;
  19128. raise LException;
  19129. end;
  19130. {Note that if LErrQueue returns 0 and ARetCode = -1, there probably
  19131. is an error in the underlying socket so you should raise a socket error}
  19132. if ARetCode = -1 then begin
  19133. // TODO: catch the socket exception and re-raise it as the InnerException
  19134. // for an EIdOpenSSLAPISSLError exception...
  19135. GStack.RaiseLastSocketError;
  19136. end;
  19137. end;
  19138. SSL_ERROR_SSL : begin
  19139. EIdOSSLUnderlyingCryptoError.RaiseException(AMsg);
  19140. end
  19141. end;
  19142. // everything else...
  19143. LException := Create(LErrStr + String(GetErrorMessage(AErrCode)));
  19144. LException.FErrorCode := AErrCode;
  19145. LException.FRetCode := ARetCode;
  19146. raise LException;
  19147. end;
  19148. type
  19149. TRAND_bytes = function(buf : PIdAnsiChar; num : integer) : integer; cdecl;
  19150. TRAND_pseudo_bytes = function(buf : PIdAnsiChar; num : integer) : integer; cdecl;
  19151. TRAND_seed = procedure(buf : PIdAnsiChar; num : integer); cdecl;
  19152. TRAND_add = procedure(buf : PIdAnsiChar; num : integer; entropy : integer); cdecl;
  19153. TRAND_status = function() : integer; cdecl;
  19154. {$IFDEF SYS_WIN}
  19155. TRAND_event = function(iMsg : UINT; wp : wparam; lp : lparam) : integer; cdecl;
  19156. {$ENDIF}
  19157. TRAND_cleanup = procedure; cdecl;
  19158. {$IFDEF STATICLOAD_OPENSSL}
  19159. const
  19160. SSL_LIB_name = 'libssl.a'; {Do not Localize}
  19161. SSLCLIB_LIB_name = 'libcrypto.a'; {Do not Localize}
  19162. {$ELSE}
  19163. {$IFDEF UNIX}
  19164. const
  19165. {This is a workaround for some Linux distributions and a few other things
  19166. where the symbolic link libbsl.so and libcrypto.so do not exist}
  19167. SSL_DLL_name = 'libssl'; {Do not localize}
  19168. SSLCLIB_DLL_name = 'libcrypto'; {Do not localize}
  19169. SSLDLLVers : array [0..10] of string = (
  19170. '.10',
  19171. '.1.0.2','.1.0.1',
  19172. // TODO: IFDEF the following for OSX only?
  19173. '.44', // MacOS LibreSSL forked from which OpenSSL version? Sometimes found ...
  19174. '.43', // MacOS LibreSSL forked from which OpenSSL version? Sometimes found ...
  19175. // TODO: Add '.41' as well?
  19176. '.35', // MacOS LibreSSL forked from OpenSSL version 1.0.1, almost always found
  19177. //
  19178. '.1.0.0','.0.9.9','.0.9.8','.0.9.7','.0.9.6'
  19179. );
  19180. SSLDLLVersChar : array [0..26] of string = ('','a','b','c','d','e','f','g','h','i',
  19181. 'j','k','l','m','n','o','p','q','r',
  19182. 's','t','u','v','w','x','y','z');
  19183. {$ENDIF}
  19184. {$IFDEF WINDOWS}
  19185. const
  19186. SSL_DLL_name = 'ssleay32.dll'; {Do not localize}
  19187. //The following is a workaround for an alternative name for
  19188. //one of the OpenSSL .DLL's. If you compile the .DLL's using
  19189. //mingw32, the SSL .dll might be named 'libssl32.dll' instead of
  19190. //ssleay32.dll like you would expect.
  19191. SSL_DLL_name_alt = 'libssl32.dll'; {Do not localize}
  19192. SSLCLIB_DLL_name = 'libeay32.dll'; {Do not localize}
  19193. {$ENDIF}
  19194. {$ENDIF}
  19195. var
  19196. {$IFDEF STATICLOAD_OPENSSL}
  19197. bIsLoaded : Boolean = False;
  19198. {$ELSE}
  19199. hIdSSL : TIdLibHandle = IdNilHandle;
  19200. hIdCrypto : TIdLibHandle = IdNilHandle;
  19201. FFailedLoadList : TStringList;
  19202. {$ENDIF}
  19203. _RAND_cleanup : TRAND_cleanup = nil;
  19204. _RAND_bytes : TRAND_bytes = nil;
  19205. _RAND_pseudo_bytes : TRAND_pseudo_bytes = nil;
  19206. _RAND_seed : TRAND_seed = nil;
  19207. _RAND_add : TRAND_add = nil;
  19208. _RAND_status : TRAND_status = nil;
  19209. {$IFDEF SYS_WIN}
  19210. // LIBEAY functions - open SSL 0.9.6a
  19211. _RAND_screen : procedure cdecl = nil;
  19212. _RAND_event : TRAND_event = nil;
  19213. {$ENDIF}
  19214. {$IFNDEF STATICLOAD_OPENSSL}
  19215. function GetSSLLibHandle : TIdLibHandle;
  19216. begin
  19217. Result := hIdSSL;
  19218. end;
  19219. function GetCryptLibHandle : TIdLibHandle;
  19220. begin
  19221. Result := hIdCrypto;
  19222. end;
  19223. { This constant's are used twice. First time in Load function and second time } {Do not localize}
  19224. { in function WhichFailedToLoad. I belive that this reduce size of final }
  19225. { compiled file. }
  19226. const
  19227. {most of these are commented out because we aren't using them now. I am keeping
  19228. them in case we use them later.}
  19229. fn_sk_num = 'sk_num'; {Do not localize}
  19230. fn_sk_value = 'sk_value'; {Do not localize}
  19231. {CH fn_sk_set = 'sk_set'; } {Do not localize}
  19232. fn_sk_new = 'sk_new'; {Do not localize}
  19233. fn_sk_new_null = 'sk_new_null'; {Do not localize}
  19234. fn_sk_free = 'sk_free'; {Do not localize}
  19235. fn_sk_pop_free = 'sk_pop_free'; {Do not localize}
  19236. {CH fn_sk_insert = 'sk_insert'; } {Do not localize}
  19237. {CH fn_sk_delete = 'sk_delete'; } {Do not localize}
  19238. {CH fn_sk_delete_ptr = 'sk_delete_ptr'; } {Do not localize}
  19239. fn_sk_find = 'sk_find'; {Do not localize}
  19240. fn_sk_push = 'sk_push'; {Do not localize}
  19241. {CH fn_sk_unshift = 'sk_unshift'; } {Do not localize}
  19242. {CH fn_sk_shift = 'sk_shift'; } {Do not localize}
  19243. {CH fn_sk_pop = 'sk_pop'; } {Do not localize}
  19244. {CH fn_sk_zero = 'sk_zero'; } {Do not localize}
  19245. fn_sk_dup = 'sk_dup'; {Do not localize}
  19246. {CH fn_sk_sort = 'sk_sort'; } {Do not localize}
  19247. fn_SSLeay_version = 'SSLeay_version'; {Do not localize}
  19248. fn_SSLeay = 'SSLeay'; {Do not localize}
  19249. {CH fn_OPENSSL_issetugid = 'OPENSSL_issetugid'; }{Do not localize}
  19250. {CH fn_CONF_set_default_method = 'CONF_set_default_method'; } {Do not localize}
  19251. {CH fn_CONF_set_nconf = 'CONF_set_nconf'; } {Do not localize}
  19252. {CH fn_CONF_load = 'CONF_load'; } {Do not localize}
  19253. {$IFNDEF OPENSSL_NO_FP_API}
  19254. {CH fn_CONF_load_fp = 'CONF_load_fp'; } {Do not localize}
  19255. {$ENDIF}
  19256. {CH fn_CONF_load_bio = 'CONF_load_bio'; } {Do not localize}
  19257. {CH fn_CONF_get_section = 'CONF_get_section'; } {Do not localize}
  19258. {CH fn_CONF_get_string = 'CONF_get_string'; } {Do not localize}
  19259. {CH fn_CONF_get_number = 'CONF_get_number'; } {Do not localize}
  19260. {CH fn_CONF_free = 'CONF_free'; }{Do not localize}
  19261. {CH fn_CONF_dump_fp = 'CONF_dump_fp'; } {Do not localize}
  19262. {CH fn_CONF_dump_bio = 'CONF_dump_bio'; } {Do not localize}
  19263. {CH fn_NCONF_new = 'NCONF_new'; } {Do not localize}
  19264. {CH fn_NCONF_default = 'NCONF_default'; } {Do not localize}
  19265. {CH fn_NCONF_WIN32 = 'NCONF_WIN32'; } {Do not localize}
  19266. {$IFDEF OMIT_THIS} //* Just to give you an idea of what I have in mind */
  19267. {CH fn_NCONF_XML = 'NCONF_XML''; } {Do not localize}
  19268. {$ENDIF}
  19269. {CH fn_NCONF_free = 'NCONF_free'; } {Do not localize}
  19270. {CH fn_NCONF_free_data = 'NCONF_free_data'; } {Do not localize}
  19271. {CH fn_NCONF_load = 'NCONF_load'; } {Do not localize}
  19272. {$IFNDEF OPENSSL_NO_FP_API}
  19273. {CH fn_NCONF_load_fp = 'NCONF_load_fp'; }{Do not localize}
  19274. {$ENDIF}
  19275. {CH fn_NCONF_load_bio = 'NCONF_load_bio'; } {Do not localize}
  19276. {CH fn_NCONF_get_section = 'NCONF_get_section'; } {Do not localize}
  19277. {CH fn_NCONF_get_string = 'NCONF_get_string'; } {Do not localize}
  19278. {CH fn_NCONF_get_number_e = 'NCONF_get_number_e'; } {Do not localize}
  19279. {CH fn_NCONF_dump_fp = 'NCONF_dump_fp'; } {Do not localize}
  19280. {CH fn_NCONF_dump_bio = 'NCONF_dump_bio'; }{Do not localize}
  19281. {CH fn_CONF_modules_load = 'CONF_modules_load'; } {Do not localize}
  19282. {CH fn_CONF_modules_load_file = 'CONF_modules_load_file'; } {Do not localize}
  19283. {CH fn_CONF_modules_unload = 'CONF_modules_unload'; } {Do not localize}
  19284. {CH fn_CONF_modules_finish = 'CONF_modules_finish'; } {Do not localize}
  19285. {CH fn_CONF_modules_free = 'CONF_modules_free'; } {Do not localize}
  19286. {CH fn_CONF_module_add = 'CONF_module_add'; } {Do not localize}
  19287. {CH fn_CONF_imodule_get_name = 'CONF_imodule_get_name'; } {Do not localize}
  19288. {CH fn_CONF_imodule_get_value = 'CONF_imodule_get_value'; } {Do not localize}
  19289. {CH fn_CONF_imodule_get_usr_data = 'CONF_imodule_get_usr_data'; } {Do not localize}
  19290. {CH fn_CONF_imodule_set_usr_data = 'CONF_imodule_set_usr_data'; } {Do not localize}
  19291. {CH fn_CONF_imodule_get_module = 'CONF_imodule_get_module'; } {Do not localize}
  19292. {CH fn_CONF_imodule_get_flags = 'CONF_imodule_get_flags'; } {Do not localize}
  19293. {CH fn_CONF_imodule_set_flags = 'CONF_imodule_set_flags'; } {Do not localize}
  19294. {CH fn_CONF_module_get_usr_data = 'CONF_module_get_usr_data'; } {Do not localize}
  19295. {CH fn_CONF_module_set_usr_data = 'CONF_module_set_usr_data'; } {Do not localize}
  19296. {CH fn_ERR_load_CONF_strings = 'ERR_load_CONF_strings'; } {Do not localize}
  19297. {CH fn_CONF_get1_default_config_file = 'CONF_get1_default_config_file'; } {Do not localize}
  19298. {CH fn_CONF_parse_list = 'CONF_parse_list' ; }
  19299. {CH fn_OPENSSL_load_builtin_modules = 'OPENSSL_load_builtin_modules'; } {Do not localize}
  19300. {CH fn_CRYPTO_get_ex_new_index = 'CRYPTO_get_ex_new_index'; } {Do not localize}
  19301. {CH fn_CRYPTO_set_ex_data = 'CRYPTO_set_ex_data'; } {Do not localize}
  19302. {CH fn_CRYPTO_get_ex_data = 'CRYPTO_get_ex_data'; } {Do not localize}
  19303. {CH fn_CRYPTO_dup_ex_data = 'CRYPTO_dup_ex_data'; } {Do not localize}
  19304. {CH fn_CRYPTO_free_ex_data = 'CRYPTO_free_ex_data'; } {Do not localize}
  19305. {CH fn_CRYPTO_new_ex_data = 'CRYPTO_new_ex_data'; } {Do not localize}
  19306. fn_CRYPTO_mem_ctrl = 'CRYPTO_mem_ctrl'; {Do not localize}
  19307. {CH fn_OPENSSL_issetugid = 'OPENSSL_issetugid'; } {Do not localize}
  19308. {CH fn_CRYPTO_get_ex_data_implementation = 'CRYPTO_get_ex_data_implementation'; } {Do not localize}
  19309. {CH fn_CRYPTO_set_ex_data_implementation = 'CRYPTO_set_ex_data_implementation'; } {Do not localize}
  19310. {CH fn_CRYPTO_ex_data_new_class = 'CRYPTO_ex_data_new_class'; } {Do not localize}
  19311. {CH fn_CRYPTO_get_locking_callback = 'CRYPTO_get_locking_callback'; } {Do not localize}
  19312. {CH fn_CRYPTO_get_add_lock_callback = 'CRYPTO_get_add_lock_callback'; } {Do not localize}
  19313. {CH fn_CRYPTO_get_new_dynlockid = 'CRYPTO_get_new_dynlockid'; } {Do not localize}
  19314. {CH fn_CRYPTO_destroy_dynlockid = 'CRYPTO_destroy_dynlockid'; } {Do not localize}
  19315. {CH fn_CRYPTO_get_dynlock_value = 'CRYPTO_get_dynlock_value'; } {Do not localize}
  19316. {CH fn_CRYPTO_set_dynlock_create_callback = 'CRYPTO_set_dynlock_create_callback'; } {Do not localize}
  19317. {CH fn_CRYPTO_set_dynlock_lock_callback = 'CRYPTO_set_dynlock_lock_callback'; } {Do not localize}
  19318. {CH fn_CRYPTO_set_dynlock_destroy_callback = 'CRYPTO_set_dynlock_destroy_callback'; } {Do not localize}
  19319. {CH fn_CRYPTO_set_locked_mem_ex_functions = 'CRYPTO_set_locked_mem_ex_functions'; } {Do not localize}
  19320. {CH fn_CRYPTO_get_mem_ex_functions = 'CRYPTO_get_mem_ex_functions'; } {Do not localize}
  19321. {CH fn_CRYPTO_get_locked_mem_ex_functions = 'CRYPTO_get_locked_mem_ex_functions'; } {Do not localize}
  19322. {CH fn_CRYPTO_get_mem_debug_functions = 'CRYPTO_get_mem_debug_functions'; }{Do not localize}
  19323. {CH fn_CRYPTO_realloc_clean = 'CRYPTO_realloc_clean'; } {Do not localize}
  19324. {CH fn_OPENSSL_cleanse = 'OPENSSL_cleanse'; } {Do not localize}
  19325. {CH fn_CRYPTO_set_mem_debug_options = 'CRYPTO_set_mem_debug_options'; } {Do not localize}
  19326. {CH fn_CRYPTO_get_mem_debug_options = 'CRYPTO_get_mem_debug_options'; } {Do not localize}
  19327. {CH fn_CRYPTO_push_info_ = 'CRYPTO_push_info_'; } {Do not localize}
  19328. {CH fn_CRYPTO_pop_info = 'CRYPTO_pop_info'; } {Do not localize}
  19329. {CH fn_CRYPTO_remove_all_info = 'CRYPTO_remove_all_info'; } {Do not localize}
  19330. {CH fn_OpenSSLDie = 'OpenSSLDie'; } {Do not localize}
  19331. {CH fn_OPENSSL_ia32cap_loc = 'OPENSSL_ia32cap_loc'; } {Do not localize}
  19332. {CH fn_CRYPTO_get_new_lockid = 'CRYPTO_get_new_lockid'; } {Do not localize}
  19333. fn_CRYPTO_num_locks = 'CRYPTO_num_locks'; {Do not localize}
  19334. fn_CRYPTO_lock = 'CRYPTO_lock'; {Do not localize}
  19335. fn_CRYPTO_set_locking_callback = 'CRYPTO_set_locking_callback'; {Do not localize}
  19336. {CH fn_CRYPTO_set_add_lock_callback = 'CRYPTO_set_add_lock_callback'; } {Do not localize}
  19337. fn_CRYPTO_set_id_callback = 'CRYPTO_set_id_callback'; {Do not localize}
  19338. {CH fn_CRYPTO_thread_id = 'CRYPTO_thread_id'; } {Do not localize}
  19339. {CH fn_CRYPTO_get_lock_name = 'CRYPTO_get_lock_name'; } {Do not localize}
  19340. {CH fn_CRYPTO_add_lock = 'CRYPTO_add_lock'; } {Do not localize}
  19341. {CH fn_int_CRYPTO_set_do_dynlock_callback = 'int_CRYPTO_set_do_dynlock_callback'; } {Do not localize}
  19342. //OpenSSL 1.0.0 - use these instead of the depreciated CRYPTO_set_id_callback
  19343. fn_CRYPTO_THREADID_set_numeric = 'CRYPTO_THREADID_set_numeric'; {Do not localize}
  19344. fn_CRYPTO_THREADID_set_pointer = 'CRYPTO_THREADID_set_pointer'; {Do not localize}
  19345. fn_CRYPTO_THREADID_set_callback = 'CRYPTO_THREADID_set_callback'; {Do not localize}
  19346. //end section
  19347. fn_CRYPTO_set_mem_functions = 'CRYPTO_set_mem_functions'; {Do not localize}
  19348. {CH fn_CRYPTO_set_mem_info_functions = 'CRYPTO_set_mem_info_functions'; } {Do not localize}
  19349. {CH fn_CRYPTO_get_mem_functions = 'CRYPTO_get_mem_functions'; } {Do not localize}
  19350. {CH fn_CRYPTO_set_locked_mem_functions = 'CRYPTO_set_locked_mem_functions'; } {Do not localize}
  19351. {CH fn_CRYPTO_get_locked_mem_functions = 'CRYPTO_get_locked_mem_functions'; } {Do not localize}
  19352. {CH fn_CRYPTO_malloc_locked = 'CRYPTO_malloc_locked'; } {Do not localize}
  19353. {CH fn_CRYPTO_free_locked = 'CRYPTO_free_locked'; } {Do not localize}
  19354. fn_CRYPTO_malloc = 'CRYPTO_malloc'; {Do not localize}
  19355. fn_CRYPTO_free = 'CRYPTO_free'; {Do not localize}
  19356. {CH fn_CRYPTO_realloc = 'CRYPTO_realloc'; } {Do not localize}
  19357. {CH fn_CRYPTO_remalloc = 'CRYPTO_remalloc'; } {Do not localize}
  19358. {CH fn_CRYPTO_dbg_malloc = 'CRYPTO_dbg_malloc'; } {Do not localize}
  19359. {CH fn_CRYPTO_dbg_realloc = 'CRYPTO_dbg_realloc'; } {Do not localize}
  19360. {CH fn_CRYPTO_dbg_free = 'CRYPTO_dbg_free'; } {Do not localize}
  19361. {CH fn_CRYPTO_dbg_remalloc = 'CRYPTO_dbg_remalloc'; } {Do not localize}
  19362. {$IFNDEF OPENSSL_NO_FP_API}
  19363. {CH fn_CRYPTO_mem_leaks_fp = 'CRYPTO_mem_leaks_fp'; } {Do not localize}
  19364. {$ENDIF}
  19365. fn_CRYPTO_mem_leaks = 'CRYPTO_mem_leaks'; {Do not localize}
  19366. {CH fn_CRYPTO_mem_leaks_cb = 'CRYPTO_mem_leaks_cb'; } {Do not localize}
  19367. fn_CRYPTO_cleanup_all_ex_data = 'CRYPTO_cleanup_all_ex_data'; {Do not localize}
  19368. fn_CRYPTO_set_mem_debug_functions = 'CRYPTO_set_mem_debug_functions'; {Do not localize}
  19369. {CH fn_CRYPTO_dbg_set_options = 'CRYPTO_dbg_set_options'; } {Do not localize}
  19370. {CH fn_CRYPTO_dbg_get_options = 'CRYPTO_dbg_get_options'; } {Do not localize}
  19371. {CH fn_CRYPTO_dbg_push_info = 'CRYPTO_dbg_push_info'; } {Do not localize}
  19372. {CH fn_CRYPTO_dbg_pop_info = 'CRYPTO_dbg_pop_info'; } {Do not localize}
  19373. {CH fn_CRYPTO_dbg_remove_all_info = 'CRYPTO_dbg_remove_all_info'; } {Do not localize}
  19374. {CH fn_CRYPTO_memcmp = 'CRYPTO_memcmp'; } {Do not localize}
  19375. fn_ERR_load_CRYPTO_strings = 'ERR_load_CRYPTO_strings'; {Do not localize}
  19376. {CH fn_OPENSSL_init = 'OPENSSL_init'; } {Do not localize}
  19377. {CH fn_lh_new = 'lh_new'; } {Do not localize}
  19378. {CH fn_lh_free = 'lh_free'; } {Do not localize}
  19379. {CH fn_lh_insert = 'lh_insert'; } {Do not localize}
  19380. {CH fn_lh_delete = 'lh_delete'; } {Do not localize}
  19381. {CH fn_lh_retrieve = 'lh_retrieve'; } {Do not localize}
  19382. {CH fn_lh_doall = 'lh_doall'; } {Do not localize}
  19383. {CH fn_lh_doall_arg = 'lh_doall_arg'; } {Do not localize}
  19384. {CH fn_lh_strhash = 'lh_strhash'; } {Do not localize}
  19385. {CH fn_lh_stats = 'lh_stats'; } {Do not localize}
  19386. {CH fn_lh_node_stats = 'lh_node_stats'; } {Do not localize}
  19387. {CH fn_lh_node_usage_stats = 'lh_node_usage_stats'; } {Do not localize}
  19388. {CH fn_BUF_MEM_new = 'BUF_MEM_new'; } {Do not localize}
  19389. {CH fn_BUF_MEM_free = 'BUF_MEM_free'; } {Do not localize}
  19390. {CH fn_BUF_MEM_grow = 'BUF_MEM_grow'; } {Do not localize}
  19391. {CH fn_BUF_strdup = 'BUF_strdup'; } {Do not localize}
  19392. {CH fn_ERR_load_BUF_strings = 'ERR_load_BUF_strings'; } {Do not localize}
  19393. {CH fn_BIO_ctrl_pending = 'BIO_ctrl_pending'; } {Do not localize}
  19394. {CH fn_BIO_ctrl_wpending = 'BIO_ctrl_wpending'; } {Do not localize}
  19395. {CH fn_BIO_ctrl_get_write_guarantee = 'BIO_ctrl_get_write_guarantee'; } {Do not localize}
  19396. {CH fn_BIO_ctrl_get_read_request = 'BIO_ctrl_get_read_request'; } {Do not localize}
  19397. fn_BIO_set_ex_data = 'BIO_set_ex_data'; {Do not localize}
  19398. fn_BIO_get_ex_data = 'BIO_get_ex_data'; {Do not localize}
  19399. {CH fn_BIO_get_ex_new_index = 'BIO_get_ex_new_index'; } {Do not localize}
  19400. fn_BIO_s_file = 'BIO_s_file'; {Do not localize}
  19401. fn_BIO_new_file = 'BIO_new_file'; {Do not localize}
  19402. {CH fn_BIO_new_fp = 'BIO_new_fp'; } {Do not localize}
  19403. fn_BIO_new = 'BIO_new'; {Do not localize}
  19404. fn_BIO_set_flags = 'BIO_set_flags'; {Do not localize}
  19405. fn_BIO_new_mem_buf = 'BIO_new_mem_buf'; {Do not localize}
  19406. {CH fn_BIO_set = 'BIO_set'; } {Do not localize}
  19407. fn_BIO_free = 'BIO_free'; {Do not localize}
  19408. fn_BIO_read = 'BIO_read'; {Do not localize}
  19409. {CH fn_BIO_gets = 'BIO_gets'; } {Do not localize}
  19410. fn_BIO_write = 'BIO_write'; {Do not localize}
  19411. fn_BIO_puts = 'BIO_puts'; {Do not localize}
  19412. fn_BIO_ctrl = 'BIO_ctrl'; {Do not localize}
  19413. fn_BIO_ptr_ctrl = 'BIO_ptr_ctrl'; {Do not localize}
  19414. fn_BIO_int_ctrl = 'BIO_int_ctrl'; {Do not localize}
  19415. fn_BIO_push = 'BIO_push'; {Do not localize}
  19416. fn_BIO_pop = 'BIO_pop'; {Do not localize}
  19417. fn_BIO_set_next = 'BIO_set_next'; {Do not localize}
  19418. fn_BIO_free_all = 'BIO_free_all'; {Do not localize}
  19419. {CH fn_BIO_find_type = 'BIO_find_type'; } {Do not localize}
  19420. {CH fn_BIO_get_retry_BIO = 'BIO_get_retry_BIO'; } {Do not localize}
  19421. {CH fn_BIO_get_retry_reason = 'BIO_get_retry_reason'; } {Do not localize}
  19422. {CH fn_BIO_dup_chain = 'BIO_dup_chain'; } {Do not localize}
  19423. {CH fn_BIO_debug_callback = 'BIO_debug_callback'; } {Do not localize}
  19424. fn_BIO_s_mem = 'BIO_s_mem'; {Do not localize}
  19425. {CH fn_BIO_s_socket = 'BIO_s_socket'; } {Do not localize}
  19426. {CH fn_BIO_s_connect = 'BIO_s_connect'; } {Do not localize}
  19427. {CH fn_BIO_s_accept = 'BIO_s_accept'; } {Do not localize}
  19428. {CH fn_BIO_s_fd = 'BIO_s_fd'; } {Do not localize}
  19429. {CH fn_BIO_s_bio = 'BIO_s_bio'; } {Do not localize}
  19430. {CH fn_BIO_s_null = 'BIO_s_null'; } {Do not localize}
  19431. {CH fn_BIO_f_null = 'BIO_f_null'; } {Do not localize}
  19432. {CH fn_BIO_f_buffer = 'BIO_f_buffer'; } {Do not localize}
  19433. {CH fn_BIO_f_nbio_test = 'BIO_f_nbio_test'; } {Do not localize}
  19434. {CH fn_BIO_sock_should_retry = 'BIO_sock_should_retry'; } {Do not localize}
  19435. {CH fn_BIO_sock_non_fatal_error = 'BIO_sock_non_fatal_error'; } {Do not localize}
  19436. {CH fn_BIO_fd_should_retry = 'BIO_fd_should_retry'; } {Do not localize}
  19437. {CH fn_BIO_fd_non_fatal_error = 'BIO_fd_non_fatal_error'; } {Do not localize}
  19438. {CH fn_BIO_dump = 'BIO_dump'; } {Do not localize}
  19439. {CH fn_BIO_gethostbyname = 'BIO_gethostbyname'; } {Do not localize}
  19440. {CH fn_BIO_sock_error = 'BIO_sock_error'; } {Do not localize}
  19441. {CH fn_BIO_socket_ioctl = 'BIO_socket_ioctl'; } {Do not localize}
  19442. {CH fn_BIO_socket_nbio = 'BIO_socket_nbio'; } {Do not localize}
  19443. {CH fn_BIO_get_port = 'BIO_get_port'; } {Do not localize}
  19444. {CH fn_BIO_get_host_ip = 'BIO_get_host_ip'; } {Do not localize}
  19445. {CH fn_BIO_get_accept_socket = 'BIO_get_accept_socket'; } {Do not localize}
  19446. {CH fn_BIO_accept = 'BIO_accept'; } {Do not localize}
  19447. {CH fn_BIO_sock_init = 'BIO_sock_init'; } {Do not localize}
  19448. {CH fn_BIO_sock_cleanup = 'BIO_sock_cleanup'; } {Do not localize}
  19449. {CH fn_BIO_set_tcp_ndelay = 'BIO_set_tcp_ndelay'; } {Do not localize}
  19450. {CH fn_ERR_load_BIO_strings = 'ERR_load_BIO_strings'; } {Do not localize}
  19451. {CH fn_BIO_new_socket = 'BIO_new_socket'; } {Do not localize}
  19452. {CH fn_BIO_new_fd = 'BIO_new_fd'; } {Do not localize}
  19453. {CH fn_BIO_new_connect = 'BIO_new_connect'; } {Do not localize}
  19454. {CH fn_BIO_new_accept = 'BIO_new_accept'; } {Do not localize}
  19455. {CH fn_BIO_new_bio_pair = 'BIO_new_bio_pair'; } {Do not localize}
  19456. {CH fn_BIO_copy_next_retry = 'BIO_copy_next_retry'; } {Do not localize}
  19457. {CH fn_BIO_ghbn_ctrl = 'BIO_ghbn_ctrl'; } {Do not localize}
  19458. {CH fn_COMP_CTX_new = 'COMP_CTX_new';} {Do not localize}
  19459. {CH fn_COMP_CTX_free = 'COMP_CTX_free'; } {Do not localize}
  19460. {CH fn_COMP_compress_block = 'COMP_compress_block'; } {Do not localize}
  19461. {CH fn_COMP_expand_block = 'COMP_expand_block'; } {Do not localize}
  19462. {CH fn_COMP_rle = 'COMP_rle'; } {Do not localize}
  19463. {CH fn_COMP_zlib = 'COMP_zlib'; } {Do not localize}
  19464. {CH fn_COMP_zlib_cleanup = 'COMP_zlib_cleanup'; } {Do not localized}
  19465. {$IFDEF HEADER_BIO_H}
  19466. {$IFDEF ZLIB}
  19467. {CH fn_BIO_f_zlib = 'BIO_f_zlib'; } {Do not localize}
  19468. {$ENDIF}
  19469. {$ENDIF}
  19470. {$IFNDEF OPENSSL_NO_MD2}
  19471. {CH fn_MD2_options = 'MD2_options'; } {Do not localize}
  19472. {$IFDEF OPENSSL_FIPS}
  19473. {CH fn_private_MD2_Init = 'private_MD2_Init'; } {Do not localize}
  19474. {$ENDIF}
  19475. {CH fn_MD2_Init = 'MD2_Init'; } {Do not localize}
  19476. {CH fn_MD2_Update = 'MD2_Update'; } {Do not localize}
  19477. {CH fn_MD2_Final = 'MD2_Final'; } {Do not localize}
  19478. {CH fn_MD2 = 'MD2'; } {Do not localize}
  19479. {$ENDIF}
  19480. {$IFNDEF OPENSSL_NO_MD4}
  19481. {$IFDEF OPENSSL_FIPS}
  19482. {CH fn_private_MD4_Init = 'private_MD4_Init'; } {Do not localize}
  19483. {$ENDIF}
  19484. {CH fn_MD4_Init = 'MD4_Init'; } {Do not localize}
  19485. {CH fn_MD4_Update = 'MD4_Update'; } {Do not localize}
  19486. {CH fn_MD4_Final = 'MD4_Final'; } {Do not localize}
  19487. {CH fn_MD4 = 'MD4'; } {Do not localize}
  19488. {CH fn_MD4_Transform = 'MD4_Transform'; } {Do not localize}
  19489. {$ENDIF}
  19490. {$IFNDEF OPENSSL_NO_MD5}
  19491. {$IFDEF OPENSSL_FIPS}
  19492. {CH fn_private_MD5_Init = 'private_MD5_Init'; } {Do not localize}
  19493. {$ENDIF}
  19494. {CH fn_MD5_Init = 'MD5_Init'; } {Do not localize}
  19495. {CH fn_MD5_Update = 'MD5_Update'; } {Do not localize}
  19496. {CH fn_MD5_Final = 'MD5_Final'; } {Do not localize}
  19497. {CH fn_MD5 = 'MD5'; } {Do not localize}
  19498. {CH fn_MD5_Transform = 'MD5_Transform'; } {Do not localize}
  19499. {$ENDIF}
  19500. {$IFNDEF OPENSSL_NO_SHA}
  19501. {$IFNDEF OPENSSL_NO_SHA0}
  19502. {$IFDEF OPENSSL_FIPS}
  19503. {CH fn_private_SHA_Init = 'private_SHA_Init'; } {Do not localize}
  19504. {$ENDIF}
  19505. {CH fn_SHA_Init = 'SHA_Init'; } {Do not localize}
  19506. {CH fn_SHA_Update = 'SHA_Update'; } {Do not localize}
  19507. {CH fn_SHA_Final = 'SHA_Final'; } {Do not localize}
  19508. {CH fn_SHA = 'SHA'; } {Do not localize}
  19509. {CH fn_SHA_Transform = 'SHA_Transform'; } {Do not localize}
  19510. {$ENDIF}
  19511. {$IFNDEF OPENSSL_NO_SHA1}
  19512. {CH fn_SHA1_Init = 'SHA1_Init'; } {Do not localize}
  19513. {CH fn_SHA1_Update = 'SHA1_Update'; } {Do not localize}
  19514. {CH fn_SHA1_Final = 'SHA1_Final'; } {Do not localize}
  19515. {CH fn_SHA1 = 'SHA1'; } {Do not localize}
  19516. {CH fn_SHA1_Transform = 'SHA1_Transform'; } {Do not localize}
  19517. {$ENDIF}
  19518. {$IFNDEF OPENSSL_NO_SHA256}
  19519. {CH fn_SHA224_Init = 'SHA224_Init'; } {Do not localize}
  19520. {CH fn_SHA224_Update = 'SHA224_Update'; } {Do not localize}
  19521. {CH fn_SHA224_Final = 'SHA224_Final'; } {Do not localize}
  19522. {CH fn_SHA224 = 'SHA224'; } {Do not localize}
  19523. {CH fn_SHA256_Init = 'SHA256_Init'; } {Do not localize}
  19524. {CH fn_SHA256_Update = 'SHA256_Update'; } {Do not localize}
  19525. {CH fn_SHA256_Final = 'SHA256_Final'; } {Do not localize}
  19526. {CH fn_SHA256 = 'SHA256'; } {Do not localize}
  19527. {CH fn_SHA256_Transform = 'SHA256_Transform'; } {Do not localize}
  19528. {$ENDIF}
  19529. {$IFNDEF OPENSSL_NO_SHA512}
  19530. {CH fn_SHA384_Init = 'SHA384_Init'; } {Do not localize}
  19531. {CH fn_SHA384_Update = 'SHA384_Update'; } {Do not localize}
  19532. {CH fn_SHA384_Final = 'SHA384_Final'; } {Do not localize}
  19533. {CH fn_SHA384 = 'SHA384'; } {Do not localize}
  19534. {CH fn_SHA512_Init = 'SHA512_Init'; } {Do not localize}
  19535. {CH fn_SHA512_Update = 'SHA512_Update'; } {Do not localize}
  19536. {CH fn_SHA512_Final = 'SHA512_Final'; } {Do not localize}
  19537. {CH fn_SHA512 = 'SHA512'; } {Do not localize}
  19538. {CH fn_SHA512_Transform = 'SHA512_Transform'; } {Do not localize}
  19539. {$ENDIF}
  19540. {$ENDIF}
  19541. {$IFNDEF OPENSSL_NO_RIPEMD}
  19542. {$IFDEF OPENSSL_FIPS}
  19543. {CH fn_private_RIPEMD160_Init = 'private_RIPEMD160_Init'; } {Do not localize}
  19544. {$ENDIF}
  19545. {CH fn_RIPEMD160_Init = 'RIPEMD160_Init'; } {Do not localize}
  19546. {CH fn_RIPEMD160_Update = 'RIPEMD160_Update'; } {Do not localize}
  19547. {CH fn_RIPEMD160_Final = 'RIPEMD160_Final'; } {Do not localize}
  19548. {CH fn_RIPEMD160 = 'RIPEMD160'; } {Do not localize}
  19549. {CH fn_RIPEMD160_Transform = 'RIPEMD160_Transform'; } {Do not localize}
  19550. {$ENDIF}
  19551. {$IFNDEF OPENSSL_NO_HMAC}
  19552. fn_HMAC_CTX_init = 'HMAC_CTX_init'; {Do not localize}
  19553. fn_HMAC_CTX_cleanup = 'HMAC_CTX_cleanup'; {Do not localize}
  19554. {CH fn_HMAC_Init = 'HMAC_Init'; } {Do not localize}
  19555. fn_HMAC_Init_ex = 'HMAC_Init_ex'; {Do not localize}
  19556. fn_HMAC_Update = 'HMAC_Update'; {Do not localize}
  19557. fn_HMAC_Final = 'HMAC_Final'; {Do not localize}
  19558. {CH fn_HMAC = 'HMAC'; } {Do not localize}
  19559. {CH fn_HMAC_CTX_set_flags = 'HMAC_CTX_set_flags'; } {Do not localize}
  19560. {$ENDIF}
  19561. {$IFNDEF HEADER_TMDIFF_H}
  19562. {CH fn_ms_time_new = 'ms_time_new'; } {Do not localize}
  19563. {CH fn_ms_time_free = 'ms_time_free'; } {Do not localize}
  19564. {CH fn_ms_time_get = 'ms_time_get'; } {Do not localize}
  19565. {CH fn_ms_time_diff = 'ms_time_diff'; } {Do not localize}
  19566. {CH fn_ms_time_cmp = 'ms_time_cmp'; } {Do not localize}
  19567. {$ENDIF}
  19568. {$IFNDEF OPENSSL_NO_AES}
  19569. {CH fn_AES_options = 'AES_options'; }{Do not localize}
  19570. {CH fn_AES_set_encrypt_key = 'AES_set_encrypt_key'; }{Do not localize}
  19571. {CH fn_AES_set_decrypt_key = 'AES_set_decrypt_key'; }{Do not localize}
  19572. {CH fn_AES_encrypt = 'AES_encrypt'; }{Do not localize}
  19573. {CH fn_AES_decrypt = 'AES_decrypt'; } {Do not localize}
  19574. {CH fn_AES_ecb_encrypt = 'AES_ecb_encrypt'; } {Do not localize}
  19575. {CH fn_AES_cbc_encrypt = 'AES_cbc_encrypt'; } {Do not localize}
  19576. {CH fn_AES_cfb128_encrypt = 'AES_cfb128_encrypt'; } {Do not localize}
  19577. {CH fn_AES_cfb1_encrypt = 'AES_cfb1_encrypt'; } {Do not localize}
  19578. {CH fn_AES_cfb8_encrypt = 'AES_cfb8_encrypt'; } {Do not localize}
  19579. {CH fn_AES_cfbr_encrypt_block = 'AES_cfbr_encrypt_block'; } {Do not localize}
  19580. {CH fn_AES_ofb128_encrypt = 'AES_ofb128_encrypt'; } {Do not localize}
  19581. {CH fn_AES_ctr128_encrypt = 'AES_ctr128_encrypt'; } {Do not localize}
  19582. {CH fn_AES_ige_encrypt = 'AES_ige_encrypt'; } {Do not localize}
  19583. {CH fn_AES_bi_ige_encrypt = 'AES_bi_ige_encrypt'; } {Do not localize}
  19584. {CH fn_AES_wrap_key = 'AES_wrap_key'; } {Do not localize}
  19585. {CH fn_AES_unwrap_key = 'AES_unwrap_key'; } {Do not localize}
  19586. {$ENDIF}
  19587. {$IFNDEF OPENSSL_NO_DES}
  19588. {CH fn_des_options = 'DES_options'; } {Do not localize}
  19589. {CH fn_des_ecb3_encrypt = 'DES_ecb3_encrypt'; } {Do not localize}
  19590. {CH fn_des_cbc_cksum = 'DES_cbc_cksum'; } {Do not localize}
  19591. {CH fn_des_cbc_encrypt = 'DES_cbc_encrypt'; } {Do not localize}
  19592. {CH fn_des_ncbc_encrypt = 'DES_ncbc_encrypt'; } {Do not localize}
  19593. {CH fn_des_xcbc_encrypt = 'DES_xcbc_encrypt'; } {Do not localize}
  19594. {CH fn_des_cfb_encrypt = 'DES_cfb_encrypt'; } {Do not localize}
  19595. fn_des_ecb_encrypt = 'DES_ecb_encrypt'; {Do not localize}
  19596. fnold_des_ecb_encrypt = 'DES_ecb_encrypt'; {Do not localize}
  19597. {CH fn_des_encrypt = 'DES_encrypt'; } {Do not localize}
  19598. {CH fn_des_encrypt2 = 'DES_encrypt2'; } {Do not localize}
  19599. {CH fn_des_encrypt3 = 'DES_encrypt3'; } {Do not localize}
  19600. {CH fn_des_decrypt3 = 'DES_decrypt3'; } {Do not localize}
  19601. {CH fn_des_ede3_cbc_encrypt = 'DES_ede3_cbc_encrypt'; } {Do not localize}
  19602. {CH fn_des_ede3_cbcm_encrypt = 'DES_ede3_cbcm_encrypt'; } {Do not localize}
  19603. {CH fn_des_ede3_cfb64_encrypt = 'DES_ede3_cfb64_encrypt'; } {Do not localize}
  19604. {CH fn_des_ede3_ofb64_encrypt = 'DES_ede3_ofb64_encrypt'; } {Do not localize}
  19605. {$IFDEF USE_THIS}
  19606. {CH fn_des_xwhite_in2out = 'DES_xwhite_in2out'; } {Do not localize}
  19607. {$ENDIF}
  19608. {CH fn_des_enc_read = 'DES_enc_read'; } {Do not localize}
  19609. {CH fn_des_enc_write = 'DES_enc_write'; } {Do not localize}
  19610. {CH fn_des_fcrypt = 'DES_fcrypt'; } {Do not localize}
  19611. {CH fn_crypt = 'crypt'; } {Do not localize}
  19612. {CH fn_des_ofb_encrypt = 'DES_ofb_encrypt'; } {Do not localize}
  19613. {CH fn_des_pcbc_encrypt = 'DES_pcbc_encrypt'; } {Do not localize}
  19614. {CH fn_des_quad_cksum = 'DES_quad_cksum'; } {Do not localize}
  19615. {CH fn_des_random_seed = 'DES_random_seed'; } {Do not localize}
  19616. {CH fn_des_random_key = 'DES_random_key'; } {Do not localize}
  19617. {CH fn_des_read_password = 'DES_read_password'; } {Do not localize}
  19618. {CH fn_des_read_2passwords = 'DES_read_2passwords'; } {Do not localize}
  19619. {CH fn_des_read_pw_string = 'DES_read_pw_string'; } {Do not localize}
  19620. fn_des_set_odd_parity = 'DES_set_odd_parity'; {Do not localize}
  19621. fnold_des_set_odd_parity = 'DES_set_odd_parity'; {Do not localize}
  19622. {CH fn_des_is_weak_key = 'DES_is_weak_key'; } {Do not localize}
  19623. fn_des_set_key = 'DES_set_key'; {Do not localize}
  19624. fnold_des_set_key = '_ossl_old_des_set_key'; {Do not localize}
  19625. {CH fn_des_key_sched = 'DES_key_sched'; } {Do not localize}
  19626. {CH fn_des_string_to_key = 'DES_string_to_key'; } {Do not localize}
  19627. {CH fn_des_string_to_2keys = 'DES_string_to_2keys'; } {Do not localize}
  19628. {CH fn_des_cfb64_encrypt = 'DES_cfb64_encrypt'; } {Do not localize}
  19629. {CH fn_des_ofb64_encrypt = 'DES_ofb64_encrypt'; } {Do not localize}
  19630. {CH fn_des_read_pw = 'DES_read_pw'; } {Do not localize}
  19631. {CH fn_des_cblock_print_file = 'DES_cblock_print_file'; } {Do not localize}
  19632. //des_old.h
  19633. {CH fn__ossl_old_des_options = '_ossl_old_des_options'; } {Do not localize}
  19634. {CH fn__ossl_old_des_ecb3_encrypt = '_ossl_old_des_ecb3_encrypt'; } {Do not localize}
  19635. {CH fn__ossl_old_des_cbc_cksum = '_ossl_old_des_cbc_cksum'; } {Do not localize}
  19636. {CH fn__ossl_old_des_cbc_encrypt = '_ossl_old_des_cbc_encrypt'; } {Do not localize}
  19637. {CH fn__ossl_old_des_ncbc_encrypt = '_ossl_old_des_ncbc_encrypt'; } {Do not localize}
  19638. {CH fn__ossl_old_des_xcbc_encrypt = '_ossl_old_des_xcbc_encrypt'; } {Do not localize}
  19639. {CH fn__ossl_old_des_cfb_encrypt = '_ossl_old_des_cfb_encrypt'; } {Do not localize}
  19640. fn__ossl_old_des_ecb_encrypt = '_ossl_old_des_ecb_encrypt'; {Do not localize}
  19641. {CH fn__ossl_old_des_encrypt = '_ossl_old_des_encrypt'; } {Do not localize}
  19642. {CH fn__ossl_old_des_encrypt2 = '_ossl_old_des_encrypt2'; } {Do not localize}
  19643. {CH fn__ossl_old_des_encrypt3 = '_ossl_old_des_encrypt3'; } {Do not localize}
  19644. {CH fn__ossl_old_des_decrypt3 = '_ossl_old_des_decrypt3'; } {Do not localize}
  19645. {CH fn__ossl_old_des_ede3_cbc_encrypt = '_ossl_old_des_ede3_cbc_encrypt'; } {Do not localize}
  19646. {CH fn__ossl_old_des_ede3_cfb64_encrypt = '_ossl_old_des_ede3_cfb64_encrypt'; } {Do not localize}
  19647. {CH fn__ossl_old_des_ede3_ofb64_encrypt = '_ossl_old_des_ede3_ofb64_encrypt'; } {Do not localize}
  19648. {$IFDEF USE_THIS}
  19649. {CH fn__ossl_old_des_xwhite_in2out = '_ossl_old_des_xwhite_in2out'; } {Do not localize}
  19650. {$ENDIF}
  19651. {CH fn__ossl_old_des_enc_read = '_ossl_old_des_enc_read'; } {Do not localize}
  19652. {CH fn__ossl_old_des_enc_write = '_ossl_old_des_enc_write'; } {Do not localize}
  19653. {CH fn__ossl_old_des_fcrypt = '_ossl_old_des_fcrypt'; } {Do not localize}
  19654. {CH fn__ossl_old_des_crypt = '_ossl_old_des_crypt'; } {Do not localize}
  19655. {$IFNDEF PERL5}
  19656. {$IFNDEF NeXT}
  19657. {CH fn__ossl_old_crypt = '_ossl_old_crypt'; } {Do not localize}
  19658. {$ENDIF}
  19659. {$ENDIF}
  19660. {CH fn__ossl_old_des_ofb_encrypt = '_ossl_old_des_ofb_encrypt'; } {Do not localize}
  19661. {CH fn__ossl_old_des_pcbc_encrypt = '_ossl_old_des_pcbc_encrypt'; } {Do not localize}
  19662. {CH fn__ossl_old_des_quad_cksum = '_ossl_old_des_quad_cksum'; } {Do not localize}
  19663. {CH fn__ossl_old_des_random_seed = '_ossl_old_des_random_seed'; } {Do not localize}
  19664. {CH fn__ossl_old_des_random_key = '_ossl_old_des_random_key'; } {Do not localize}
  19665. {CH fn__ossl_old_des_read_password = '_ossl_old_des_read_password'; } {Do not localize}
  19666. {CH fn__ossl_old_des_read_2passwords = '_ossl_old_des_read_2passwords'; } {Do not localize}
  19667. fn__ossl_old_des_set_odd_parity = '_ossl_old_des_set_odd_parity'; {Do not localize}
  19668. {CH fn__ossl_old_des_is_weak_key = '_ossl_old_des_is_weak_key'; } {Do not localize}
  19669. fn__ossl_old_des_set_key = '_ossl_old_des_set_key'; {Do not localize}
  19670. {CH fn__ossl_old_des_key_sched = '_ossl_old_des_key_sched'; } {Do not localize}
  19671. {CH fn__ossl_old_des_string_to_key = '_ossl_old_des_string_to_key'; } {Do not localize}
  19672. {CH fn__ossl_old_des_string_to_2keys = '_ossl_old_des_string_to_2keys'; } {Do not localize}
  19673. {CH fn__ossl_old_des_cfb64_encrypt = '_ossl_old_des_cfb64_encrypt'; } {Do not localize}
  19674. {CH fn__ossl_old_des_ofb64_encrypt = '_ossl_old_des_ofb64_encrypt'; } {Do not localize}
  19675. {CH fn__ossl_096_des_random_seed = '_ossl_096_des_random_seed'; } {Do not localize}
  19676. {$ENDIF}
  19677. {$IFNDEF OPENSSL_NO_RC4}
  19678. {CH fn_RC4_options = 'RC4_options'; } {Do not localize}
  19679. {$IFDEF OPENSSL_FIPS}
  19680. {CH private_RC4_set_key = 'private_RC4_set_key'; } {Do not localize}
  19681. {$ENDIF}
  19682. {CH fn_RC4_set_key = 'RC4_set_key'; } {Do not localize}
  19683. {CH fn_RC4 = 'RC4'; } {Do not localize}
  19684. {$ENDIF}
  19685. {$IFNDEF OPENSSL_NO_RC2}
  19686. {$IFDEF OPENSSL_FIPS}
  19687. {CH fn_private_RC2_set_key = 'private_RC2_set_key'; } {Do not localize}
  19688. {$ENDIF}
  19689. {CH fn_RC2_set_key = 'RC2_set_key'; } {Do not localize}
  19690. {CH fn_RC2_ecb_encrypt = 'RC2_ecb_encrypt'; } {Do not localize}
  19691. {CH fn_RC2_encrypt = 'RC2_encrypt'; } {Do not localize}
  19692. {CH fn_RC2_decrypt = 'RC2_decrypt'; } {Do not localize}
  19693. {CH fn_RC2_cbc_encrypt = 'RC2_cbc_encrypt'; } {Do not localize}
  19694. {CH fn_RC2_cfb64_encrypt = 'RC2_cfb64_encrypt'; } {Do not localize}
  19695. {CH fn_RC2_ofb64_encrypt = 'RC2_ofb64_encrypt'; } {Do not localize}
  19696. {$ENDIF}
  19697. {$IFNDEF OPENSSL_NO_RC5}
  19698. {CH fn_RC5_32_set_key = 'RC5_32_set_key'; } {Do not localize}
  19699. {CH fn_RC5_32_ecb_encrypt = 'RC5_32_ecb_encrypt'; } {Do not localize}
  19700. {CH fn_RC5_32_encrypt = 'RC5_32_encrypt'; } {Do not localize}
  19701. {CH fn_RC5_32_decrypt = 'RC5_32_decrypt'; } {Do not localize}
  19702. {CH fn_RC5_32_cbc_encrypt = 'RC5_32_cbc_encrypt'; } {Do not localize}
  19703. {CH fn_RC5_32_cfb64_encrypt = 'RC5_32_cfb64_encrypt'; } {Do not localize}
  19704. {CH fn_RC5_32_ofb64_encrypt = 'RC5_32_ofb64_encrypt'; } {Do not localize}
  19705. {$ENDIF}
  19706. {$IFNDEF OPENSSL_NO_BF}
  19707. {$IFDEF FIPS}
  19708. {CH fn_private_BF_set_key = 'private_BF_set_key'; } {Do not localize}
  19709. {$ENDIF}
  19710. {CH fn_BF_set_key = 'BF_set_key'; } {Do not localize}
  19711. {CH fn_BF_ecb_encrypt = 'BF_ecb_encrypt'; } {Do not localize}
  19712. {CH fn_BF_encrypt = 'BF_encrypt'; } {Do not localize}
  19713. {CH fn_BF_decrypt = 'BF_decrypt'; } {Do not localize}
  19714. {CH fn_BF_cbc_encrypt = 'BF_cbc_encrypt'; } {Do not localize}
  19715. {CH fn_BF_cfb64_encrypt = 'BF_cfb64_encrypt'; } {Do not localize}
  19716. {CH fn_BF_ofb64_encrypt = 'BF_ofb64_encrypt'; } {Do not localize}
  19717. {CH fn_BF_options = 'BF_options'; } {Do not localize}
  19718. {$ENDIF}
  19719. {$IFNDEF OPENSSL_NO_CAST}
  19720. {$IFDEF OPENSSL_FIPS}
  19721. {CH fn_private_CAST_set_key = 'private_CAST_set_key'; } {Do not localize}
  19722. {$ENDIF}
  19723. {CH fn_CAST_set_key = 'CAST_set_key'; } {Do not localize}
  19724. {CH fn_CAST_ecb_encrypt = 'CAST_ecb_encrypt'; } {Do not localize}
  19725. {CH fn_CAST_encrypt = 'CAST_encrypt'; } {Do not localize}
  19726. {CH fn_CAST_decrypt = 'CAST_decrypt'; } {Do not localize}
  19727. {CH fn_CAST_cbc_encrypt = 'CAST_cbc_encrypt'; } {Do not localize}
  19728. {CH fn_CAST_cfb64_encrypt = 'CAST_cfb64_encrypt'; } {Do not localize}
  19729. {CH fn_CAST_ofb64_encrypt = 'CAST_ofb64_encrypt'; } {Do not localize}
  19730. {$ENDIF}
  19731. {$IFNDEF OPENSSL_NO_IDEA}
  19732. {CH fn_idea_options = 'idea_options'; } {Do not localize}
  19733. {CH fn_idea_ecb_encrypt = 'idea_ecb_encrypt'; } {Do not localize}
  19734. {CH fn_idea_set_encrypt_key = 'idea_set_encrypt_key'; } {Do not localize}
  19735. {CH fn_idea_set_decrypt_key = 'idea_set_decrypt_key'; } {Do not localize}
  19736. {CH fn_idea_cbc_encrypt = 'idea_cbc_encrypt'; } {Do not localize}
  19737. {CH fn_idea_cfb64_encrypt = 'idea_cfb64_encrypt'; } {Do not localize}
  19738. {CH fn_idea_ofb64_encrypt = 'idea_ofb64_encrypt'; } {Do not localize}
  19739. {CH fn_idea_encrypt = 'idea_encrypt'; } {Do not localize}
  19740. {$IFDEF OPENSSL_FIPS}
  19741. {CH fn_private_idea_set_encrypt_key = 'private_idea_set_encrypt_key'; } {Do not localize}
  19742. {$ENDIF}
  19743. {$ENDIF}
  19744. {$IFNDEF OPENSSL_NO_MD2}
  19745. {CH fn_MDC2_Init = 'MDC2_Init'; } {Do not localize}
  19746. {CH fn_MDC2_Update = 'MDC2_Update'; } {Do not localize}
  19747. {CH fn_MDC2_Final = 'MDC2_Final'; } {Do not localize}
  19748. {CH fn_MDC2 = 'MDC2'; } {Do not localize}
  19749. {$ENDIF}
  19750. {$IFNDEF OPENSSL_NO_RSA}
  19751. fn_RSA_new = 'RSA_new'; {Do not localize}
  19752. {CH fn_RSA_new_method = 'RSA_new_method'; } {Do not localize}
  19753. fn_RSA_size = 'RSA_size'; {Do not localize}
  19754. fn_RSA_generate_key = 'RSA_generate_key'; {Do not localize}
  19755. fn_RSA_generate_key_ex = 'RSA_generate_key_ex'; {Do not localize}
  19756. {CH fn_RSA_X931_derive_ex = 'RSA_X931_derive_ex'; } {Do not localize}
  19757. {CH fn_RSA_X931_generate_key_ex = 'RSA_X931_generate_key_ex'; } {Do not localize}
  19758. fn_RSA_check_key = 'RSA_check_key'; {Do not localize}
  19759. fn_RSA_public_encrypt = 'RSA_public_encrypt'; {Do not localize}
  19760. {CH fn_RSA_private_encrypt = 'RSA_private_encrypt'; } {Do not localize}
  19761. {CH fn_RSA_public_decrypt = 'RSA_public_decrypt'; } {Do not localize}
  19762. fn_RSA_private_decrypt = 'RSA_private_decrypt'; {Do not localize}
  19763. fn_RSA_free = 'RSA_free'; {Do not localize}
  19764. {CH fn_RSA_flags = 'RSA_flags'; } {Do not localize}
  19765. {$IFDEF OPENSSL_FIPS}
  19766. {CH fn_FIPS_rsa_new = 'FIPS_rsa_new'; } {Do not localize}
  19767. {CH fn_FIPS_rsa_free = 'FIPS_rsa_free'; } {Do not localize}
  19768. {$ENDIF}
  19769. {CH fn_RSA_set_default_method = 'RSA_set_default_method'; } {Do not localize}
  19770. {CH fn_RSA_get_default_method = 'RSA_get_default_method'; } {Do not localize}
  19771. {CH fn_RSA_get_method = 'RSA_get_method'; } {Do not localize}
  19772. {CH fn_RSA_set_method = 'RSA_set_method'; } {Do not localize}
  19773. {CH fn_RSA_memory_lock = 'RSA_memory_lock'; } {Do not localize}
  19774. {CH fn_RSA_PKCS1_SSLeay = 'RSA_PKCS1_SSLeay'; } {Do not localize}
  19775. {CH fn_ERR_load_RSA_strings = 'ERR_load_RSA_strings'; } {Do not localize}
  19776. fn_d2i_RSAPublicKey = 'd2i_RSAPublicKey'; {Do not localize}
  19777. fn_i2d_RSAPublicKey = 'i2d_RSAPublicKey'; {Do not localize}
  19778. fn_d2i_RSAPrivateKey = 'd2i_RSAPrivateKey'; {Do not localize}
  19779. fn_i2d_RSAPrivateKey = 'i2d_RSAPrivateKey'; {Do not localize}
  19780. {$IFNDEF OPENSSL_NO_FP_API}
  19781. {CH fn_RSA_print_fp = 'RSA_print_fp'; } {Do not localize}
  19782. {$ENDIF}
  19783. {$IFNDEF OPENSSL_NO_BIO}
  19784. {CH fn_RSA_print = 'RSA_print'; } {Do not localize}
  19785. {$ENDIF}
  19786. {$IFNDEF OPENSSL_NO_RC4}
  19787. {CH fn_i2d_RSA_NET = 'i2d_RSA_NET'; }{Do not localize}
  19788. {CH fn_d2i_RSA_NET = 'd2i_RSA_NET'; }{Do not localize}
  19789. {CH fn_i2d_Netscape_RSA = 'i2d_Netscape_RSA'; } {Do not localize}
  19790. {CH fn_d2i_Netscape_RSA = 'd2i_Netscape_RSA'; } {Do not localize}
  19791. {$ENDIF}
  19792. {CH fn_d2i_Netscape_RSA_2 = 'd2i_Netscape_RSA_2'; } {Do not localize}
  19793. {CH fn_RSA_sign = 'RSA_sign'; } {Do not localize}
  19794. {CH fn_RSA_verify = 'RSA_verify'; } {Do not localize}
  19795. {CH fn_RSA_sign_ASN1_OCTET_STRING = 'RSA_sign_ASN1_OCTET_STRING'; } {Do not localize}
  19796. {CH fn_RSA_verify_ASN1_OCTET_STRING = 'RSA_verify_ASN1_OCTET_STRING'; } {Do not localize}
  19797. {CH fn_RSA_blinding_on = 'RSA_blinding_on'; } {Do not localize}
  19798. {CH fn_RSA_blinding_off = 'RSA_blinding_off'; } {Do not localize}
  19799. {CH fn_RSA_padding_add_PKCS1_type_1 = 'RSA_padding_add_PKCS1_type_1'; } {Do not localize}
  19800. {CH fn_RSA_padding_check_PKCS1_type_1 = 'RSA_padding_check_PKCS1_type_1'; } {Do not localize}
  19801. {CH fn_RSA_padding_add_PKCS1_type_2 = 'RSA_padding_add_PKCS1_type_2'; } {Do not localize}
  19802. {CH fn_RSA_padding_check_PKCS1_type_2 = 'RSA_padding_check_PKCS1_type_2'; } {Do not localize}
  19803. {CH fn_RSA_padding_add_PKCS1_OAEP = 'RSA_padding_add_PKCS1_OAEP'; } {Do not localize}
  19804. {CH fn_RSA_padding_check_PKCS1_OAEP = 'RSA_padding_check_PKCS1_OAEP'; } {Do not localize}
  19805. {CH fn_RSA_padding_add_SSLv23 = 'RSA_padding_add_SSLv23'; } {Do not localize}
  19806. {CH fn_RSA_padding_check_SSLv23 = 'RSA_padding_check_SSLv23'; } {Do not localize}
  19807. {CH fn_RSA_padding_add_none = 'RSA_padding_add_none'; } {Do not localize}
  19808. {CH fn_RSA_padding_check_none = 'RSA_padding_check_none'; } {Do not localize}
  19809. {CH fn_RSA_get_ex_new_index = 'RSA_get_ex_new_index'; } {Do not localize}
  19810. {CH fn_RSA_set_ex_data = 'RSA_set_ex_data'; } {Do not localize}
  19811. {CH fn_RSA_get_ex_data = 'RSA_get_ex_data'; } {Do not localize}
  19812. {$ENDIF}
  19813. {$IFNDEF OPENSSL_NO_DH}
  19814. {CH fn_DH_OpenSSL = 'DH_OpenSSL'; } {Do not localize}
  19815. {CH fn_DH_set_default_method = 'DH_set_default_method'; } {Do not localize}
  19816. {CH fn_DH_set_method = 'DH_set_method'; } {Do not localize}
  19817. {CH fn_DH_new_method = 'DH_new_method'; } {Do not localize}
  19818. {CH fn_DH_new = 'DH_new'; } {Do not localize}
  19819. {CH fn_DH_up_ref = 'DH_up_ref'; } {Do not localize}
  19820. fn_DH_free = 'DH_free'; {Do not localize}
  19821. {CH fn_DH_size = 'DH_size'; } {Do not localize}
  19822. {$IFNDEF OPENSSL_NO_DEPRECATED}
  19823. {CH fn_DH_generate_parameters = 'DH_generate_parameters'; } {Do not localize}
  19824. {$ENDIF}
  19825. {CH fn_DH_generate_parameters_ex = 'DH_generate_parameters_ex'; } {Do not localize}
  19826. {CH fn_DH_get_ex_new_index = 'DH_get_ex_new_index'; } {Do not localize}
  19827. {CH fn_DH_set_ex_data = 'DH_set_ex_data'; } {Do not localize}
  19828. {CH fn_DH_get_ex_data = 'DH_get_ex_data'; } {Do not localize}
  19829. {CH fn_DH_check = 'DH_check'; } {Do not localize}
  19830. {CH fn_DH_check_pub_key = 'DH_check_pub_key'; } {Do not localize}
  19831. {CH fn_DH_generate_key = 'DH_generate_key'; } {Do not localize}
  19832. {CH fn_DH_compute_key = 'DH_compute_key'; } {Do not localize}
  19833. fn_d2i_DHparams = 'd2i_DHparams'; {Do not localize}
  19834. fn_i2d_DHparams = 'i2d_DHparams'; {Do not localize}
  19835. {CH fn_DH_OpenSSL = 'DH_OpenSSL'; } {Do not localize}
  19836. {$IFDEF OPENSSL_FIPS}
  19837. {CH fn_FIPS_dh_new = 'FIPS_dh_new'; } {Do not localize}
  19838. {CH fn_FIPS_dh_free = 'FIPS_dh_free'; } {Do not localize}
  19839. {$ENDIF}
  19840. {$IFNDEF OPENSSL_NO_FP_API}
  19841. {CH fn_DHparams_print_fp = 'DHparams_print_fp'; } {Do not localize}
  19842. {$ENDIF}
  19843. {CH fn_DHparams_print = 'DHparams_print'; } {Do not localize}
  19844. {$ENDIF}
  19845. {CH fn_ERR_load_DH_strings = 'ERR_load_DH_strings'; } {Do not localize}
  19846. {$IFNDEF OPENSSL_NO_DSA}
  19847. {CH fn_DSA_SIG_new = 'DSA_SIG_new'; } {Do not localize}
  19848. {CH fn_DSA_SIG_free = 'DSA_SIG_free'; } {Do not localize}
  19849. {CH fn_i2d_DSA_SIG = 'i2d_DSA_SIG'; } {Do not localize}
  19850. {CH fn_d2i_DSA_SIG = 'd2i_DSA_SIG'; } {Do not localize}
  19851. {CH fn_DSA_do_sign = 'DSA_do_sign'; } {Do not localize}
  19852. {CH fn_DSA_do_verify = 'DSA_do_verify'; } {Do not localize}
  19853. {$IFDEF OPENSSL_FIPS}
  19854. {CH fn_FIPS_dsa_new = 'FIPS_dsa_new'; } {Do not localize}
  19855. {CH fn_FIPS_dsa_free = 'FIPS_dsa_free'; } {Co not localize}
  19856. {$ENDIF}
  19857. {CH fn_DSA_new = 'DSA_new'; } {Do not localize}
  19858. {CH fn_DSA_size = 'DSA_size'; } {Do not localize}
  19859. {CH fn_DSA_sign_setup = 'DSA_sign_setup'; } {Do not localize}
  19860. {CH fn_DSA_sign = 'DSA_sign'; } {Do not localize}
  19861. {CH fn_DSA_verify = 'DSA_verify'; } {Do not localize}
  19862. {CH fn_DSA_free = 'DSA_free'; } {Do not localize}
  19863. {CH fn_ERR_load_DSA_strings = 'ERR_load_DSA_strings'; } {Do not localize}
  19864. {$IFNDEF OPENSSL_NO_DEPRECATED}
  19865. {CH fn_DSA_generate_parameters = 'DSA_generate_parameters'; } {Do not localize}
  19866. {$ENDIF}
  19867. {CH fn_DSA_generate_parameters_ex = 'DSA_generate_parameters_ex'; } {Do not localize}
  19868. {CH fn_DSA_generate_key = 'DSA_generate_key'; } {Do not localize}
  19869. fn_d2i_DSAPublicKey = 'd2i_DSAPublicKey'; {Do not localize}
  19870. fn_i2d_DSAPublicKey = 'i2d_DSAPublicKey'; {Do not localize}
  19871. fn_d2i_DSAPrivateKey = 'd2i_DSAPrivateKey'; {Do not localize}
  19872. fn_i2d_DSAPrivateKey = 'i2d_DSAPrivateKey'; {Do not localize}
  19873. fn_i2d_DSAparams = 'i2d_DSAparams'; {Do not localize}
  19874. fn_d2i_DSAparams = 'd2i_DSAparams'; {Do not localize}
  19875. {$IFNDEF OPENSSL_NO_BIO}
  19876. {CH fn_DSAparams_print = 'DSAparams_print'; } {Do not localize}
  19877. {CH fn_DSA_print = 'DSA_print'; } {Do not localize}
  19878. {$ENDIF}
  19879. {$IFNDEF OPENSSL_NO_FP_API}
  19880. {CH fn_DSAparams_print_fp = 'DSAparams_print_fp'; } {Do not localize}
  19881. {CH fn_DSA_print_fp = 'DSA_print_fp'; } {Do not localize}
  19882. {$ENDIF}
  19883. {CH fn_DSA_is_prime = 'DSA_is_prime'; } {Do not localize}
  19884. {$IFNDEF OPENSSL_NO_DH}
  19885. {CH fn_DSA_dup_DH = 'DSA_dup_DH'; } {Do not localize}
  19886. {$ENDIF}
  19887. {$IFDEF OPENSSL_FIPS}
  19888. {CH fn_FIPS_dsa_sig_encode = 'FIPS_dsa_sig_encode'; } {Do not localize}
  19889. {CH fn_FIPS_dsa_sig_decode = 'FIPS_dsa_sig_decode'; } {Do not localize}
  19890. {$ENDIF}
  19891. {$ENDIF}
  19892. {$IFNDEF OPENSSL_NO_EC}
  19893. {CH fn_EC_GFp_simple_method = 'EC_GFp_simple_method'; } {Do not localize}
  19894. {CH fn_EC_GFp_mont_method = 'EC_GFp_mont_method'; } {Do not localize}
  19895. {CH fn_EC_GFp_nist_method = 'EC_GFp_nist_method'; } {Do not localize}
  19896. {CH fn_EC_GF2m_simple_method = 'EC_GF2m_simple_method'; } {Do not localize}
  19897. {CH fn_EC_GROUP_new = 'EC_GROUP_new'; } {Do not localize}
  19898. {CH fn_EC_GROUP_free = 'EC_GROUP_free'; } {Do not localize}
  19899. {CH fn_EC_GROUP_clear_free = 'EC_GROUP_clear_free'; } {Do not localize}
  19900. {CH fn_EC_GROUP_copy = 'EC_GROUP_copy'; } {Do not localize}
  19901. {CH fn_EC_GROUP_dup = 'EC_GROUP_dup'; } {Do not localize}
  19902. {CH fn_EC_GROUP_method_of = 'EC_GROUP_method_of'; } {Do not localize}
  19903. {CH fn_EC_METHOD_get_field_type = 'EC_METHOD_get_field_type'; } {Do not localize}
  19904. {CH fn_EC_GROUP_set_generator = 'EC_GROUP_set_generator'; } {Do not localize}
  19905. {CH fn_EC_GROUP_get0_generator = 'EC_GROUP_get0_generator'; } {Do not localize}
  19906. {CH fn_EC_GROUP_get_order = 'EC_GROUP_get_order'; } {Do not localize}
  19907. {CH fn_EC_GROUP_get_cofactor = 'EC_GROUP_get_cofactor'; } {Do not localize}
  19908. {CH fn_EC_GROUP_set_curve_name ='EC_GROUP_set_curve_name'; } {Do not localize}
  19909. {CH fn_EC_GROUP_get_curve_name = 'EC_GROUP_get_curve_name'; } {Do not localize}
  19910. {CH fn_EC_GROUP_set_asn1_flag = 'EC_GROUP_set_asn1_flag'; } {Do not localize}
  19911. {CH fn_EC_GROUP_get_asn1_flag = 'EC_GROUP_get_asn1_flag'; } {Do not localize}
  19912. {CH fn_EC_GROUP_set_point_conversion_form = 'EC_GROUP_set_point_conversion_form'; } {Do not localize}
  19913. {CH fn_EC_GROUP_get_point_conversion_form = 'EC_GROUP_get_point_conversion_form'; } {Do not localize}
  19914. {CH fn_EC_GROUP_get0_seed = 'EC_GROUP_get0_seed'; } {Do not localize}
  19915. {CH fn_EC_GROUP_get_seed_len = 'EC_GROUP_get_seed_len'; } {Do not localize}
  19916. {CH fn_EC_GROUP_set_seed = 'EC_GROUP_set_seed'; } {Do not localize}
  19917. {CH fn_EC_GROUP_set_curve_GFp = 'EC_GROUP_set_curve_GFp'; } {Do not localize}
  19918. {CH fn_EC_GROUP_get_curve_GFp = 'EC_GROUP_get_curve_GFp'; } {Do not localize}
  19919. {CH fn_EC_GROUP_set_curve_GF2m = 'EC_GROUP_set_curve_GF2m'; } {Do not localize}
  19920. {CH fn_EC_GROUP_get_curve_GF2m = 'EC_GROUP_get_curve_GF2m'; } {Do not localize}
  19921. {CH fn_EC_GROUP_get_degree = 'EC_GROUP_get_degree'; } {Do not localize}
  19922. {CH fn_EC_GROUP_check = 'EC_GROUP_check'; } {Do not localize}
  19923. {CH fn_EC_GROUP_check_discriminant = 'EC_GROUP_check_discriminant'; } {Do not localize}
  19924. {CH fn_EC_GROUP_cmp = 'EC_GROUP_cmp'; } {Do not localize}
  19925. {CH fn_EC_GROUP_new_curve_GFp = 'EC_GROUP_new_curve_GFp'; } {Do not localize}
  19926. {CH fn_EC_GROUP_new_curve_GF2m = 'EC_GROUP_new_curve_GF2m'; } {Do not localize}
  19927. {CH fn_EC_GROUP_new_by_curve_name = 'EC_GROUP_new_by_curve_name'; } {Do not localize}
  19928. {CH fn_EC_get_builtin_curves = 'EC_get_builtin_curves'; } {Do not localize}
  19929. {CH fn_EC_POINT_new = 'EC_POINT_new'; } {Do not localize}
  19930. {CH fn_EC_POINT_free = 'EC_POINT_free'; } {Do not localize}
  19931. {CH fn_EC_POINT_clear_free = 'EC_POINT_clear_free'; } {Do not localize}
  19932. {CH fn_EC_POINT_copy = 'EC_POINT_copy'; } {Do not localize}
  19933. {CH fn_EC_POINT_dup = 'EC_POINT_dup'; } {Do not localize}
  19934. {CH fn_EC_POINT_method_of = 'EC_POINT_method_of'; } {Do not localize}
  19935. {CH fn_EC_POINT_set_to_infinity = 'EC_POINT_set_to_infinity'; } {Do not localize}
  19936. {CH fn_EC_POINT_set_Jprojective_coordinates_GFp = 'EC_POINT_set_Jprojective_coordinates_GFp'; } {Do not localize}
  19937. {CH fn_EC_POINT_get_Jprojective_coordinates_GFp = 'EC_POINT_get_Jprojective_coordinates_GFp'; } {Do not localize}
  19938. {CH fn_EC_POINT_set_affine_coordinates_GFp = 'EC_POINT_set_affine_coordinates_GFp'; } {Do not localize}
  19939. {CH fn_EC_POINT_get_affine_coordinates_GFp = 'EC_POINT_get_affine_coordinates_GFp'; } {Do not localize}
  19940. {CH fn_EC_POINT_set_compressed_coordinates_GFp = 'EC_POINT_set_compressed_coordinates_GFp'; } {Do not localize}
  19941. {CH fn_EC_POINT_set_affine_coordinates_GF2m = 'EC_POINT_set_affine_coordinates_GF2m'; } {Do not localize}
  19942. {CH fn_EC_POINT_set_compressed_coordinates_GF2m = 'EC_POINT_set_compressed_coordinates_GF2m'; } {Do not localize}
  19943. {CH fn_EC_POINT_point2oct = 'EC_POINT_point2oct'; } {Do not localize}
  19944. {CH fn_EC_POINT_oct2point = 'EC_POINT_oct2point'; } {Do not localize}
  19945. {CH fn_EC_POINT_point2bn = 'EC_POINT_point2bn'; } {Do not localize}
  19946. {CH fn_EC_POINT_bn2point = 'EC_POINT_bn2point'; } {Do not localize}
  19947. {CH fn_EC_POINT_point2hex = 'EC_POINT_point2hex'; } {Do not localize}
  19948. {CH fn_EC_POINT_hex2point = 'EC_POINT_hex2point'; } {Do not localize}
  19949. {CH fn_EC_POINT_add = 'EC_POINT_add'; } {Do not localize}
  19950. {CH fn_EC_POINT_dbl = 'EC_POINT_dbl'; } {Do not localize}
  19951. {CH fn_EC_POINT_invert = 'EC_POINT_invert'; } {Do not localize}
  19952. {CH fn_EC_POINT_is_at_infinity = 'EC_POINT_is_at_infinity'; } {Do not localize}
  19953. {CH fn_EC_POINT_is_on_curve = 'EC_POINT_is_on_curve'; } {Do not localize}
  19954. {CH fn_EC_POINT_cmp = 'EC_POINT_cmp'; } {Do not localize}
  19955. {CH fn_EC_POINT_make_affine = 'EC_POINT_make_affine'; } {Do not localize}
  19956. {CH fn_EC_POINTs_make_affine = 'EC_POINTs_make_affine'; } {Do not localize}
  19957. {CH fn_EC_POINTs_mul = 'EC_POINTs_mul'; } {Do not localize}
  19958. {CH fn_EC_POINT_mul = 'EC_POINT_mul'; } {Do not localize}
  19959. {CH fn_EC_GROUP_precompute_mult = 'EC_GROUP_precompute_mult'; } {Do not localize}
  19960. {CH fn_EC_GROUP_have_precompute_mult = 'EC_GROUP_have_precompute_mult'; } {Do not localize}
  19961. {CH fn_EC_GROUP_get_basis_type = 'EC_GROUP_get_basis_type'; } {Do not localize}
  19962. {CH fn_EC_GROUP_get_trinomial_basis = 'EC_GROUP_get_trinomial_basis'; } {Do not localize}
  19963. {CH fn_EC_GROUP_get_pentanomial_basis = 'EC_GROUP_get_pentanomial_basis'; } {Do not localize}
  19964. {CH fn_d2i_ECPKParameters = 'd2i_ECPKParameters'; } {Do not localize}
  19965. {CH fn_i2d_ECPKParameters = 'i2d_ECPKParameters'; } {Do not localize}
  19966. {$IFNDEF OPENSSL_NO_BIO}
  19967. {CH fn_ECPKParameters_print = 'ECPKParameters_print'; } {Do not localize}
  19968. {$ENDIF}
  19969. {$IFNDEF OPENSSL_NO_FP_API}
  19970. {CH fn_ECPKParameters_print_fp = 'ECPKParameters_print_fp'; } {Do not localize}
  19971. {$ENDIF}
  19972. {CH fn_EC_KEY_new = 'EC_KEY_new'; } {Do not localize}
  19973. {CH fn_EC_KEY_new_by_curve_name = 'EC_KEY_new_by_curve_name'; } {Do not localize}
  19974. {CH fn_EC_KEY_free = 'EC_KEY_free'; } {Do not localize}
  19975. {CH fn_EC_KEY_copy = 'EC_KEY_copy'; } {Do not localize}
  19976. {CH fn_EC_KEY_dup = 'EC_KEY_dup'; } {Do not localize}
  19977. {CH fn_EC_KEY_up_ref = 'EC_KEY_up_ref'; } {Do not localize}
  19978. {CH fn_EC_KEY_get0_group = 'EC_KEY_get0_group'; } {Do not localize}
  19979. {CH fn_EC_KEY_set_group = 'EC_KEY_set_group'; } {Do not localize}
  19980. {CH fn_EC_KEY_get0_private_key = 'EC_KEY_get0_private_key'; } {Do not localize}
  19981. {CH fn_EC_KEY_set_private_key = 'EC_KEY_set_private_key'; } {Do not localize}
  19982. {CH fn_EC_KEY_get0_public_key = 'EC_KEY_get0_public_key'; } {Do not localize}
  19983. {CH fn_EC_KEY_set_public_key = 'EC_KEY_set_public_key'; } {Do not localize}
  19984. {CH fn_EC_KEY_get_enc_flags = 'EC_KEY_get_enc_flags'; } {Do not localize}
  19985. {CH fn_EC_KEY_set_enc_flags = 'EC_KEY_set_enc_flags'; } {Do not localize}
  19986. {CH fn_EC_KEY_get_conv_form = 'EC_KEY_get_conv_form'; } {Do not localize}
  19987. {CH fn_EC_KEY_set_conv_form = 'EC_KEY_set_conv_form'; } {Do not localize}
  19988. {CH fn_EC_KEY_get_key_method_data = 'EC_KEY_get_key_method_data'; } {Do not localize}
  19989. {CH fn_EC_KEY_insert_key_method_data = 'EC_KEY_insert_key_method_data'; } {Do not localize}
  19990. {CH fn_EC_KEY_set_asn1_flag = 'EC_KEY_set_asn1_flag'; } {Do not localize}
  19991. {CH fn_EC_KEY_precompute_mult = 'EC_KEY_precompute_mult'; } {Do not localize}
  19992. {CH fn_EC_KEY_generate_key = 'EC_KEY_generate_key'; } {Do not localize}
  19993. {CH fn_EC_KEY_check_key = 'EC_KEY_check_key'; } {Do not localize}
  19994. {CH fn_d2i_ECPrivateKey = 'd2i_ECPrivateKey'; } {Do not localize}
  19995. {CH fn_i2d_ECPrivateKey = 'i2d_ECPrivateKey'; } {Do not localize}
  19996. {CH fn_d2i_ECParameters = 'd2i_ECParameters'; } {Do not localize}
  19997. {CH fn_i2d_ECParameters = 'i2d_ECParameters'; } {Do not localize}
  19998. {CH fn_o2i_ECPublicKey = 'o2i_ECPublicKey'; } {Do not localize}
  19999. {CH fn_i2o_ECPublicKey = 'i2o_ECPublicKey'; } {Do not localize}
  20000. {$IFNDEF OPENSSL_NO_BIO}
  20001. {CH fn_ECParameters_print = 'ECParameters_print'; } {Do not localize}
  20002. {CH fn_EC_KEY_print = 'EC_KEY_print'; } {Do not localize}
  20003. {$ENDIF}
  20004. {$IFNDEF OPENSSL_NO_FP_API}
  20005. {CH fn_ECParameters_print_fp = 'ECParameters_print_fp'; } {Do not localize}
  20006. {CH fn_EC_KEY_print_fp = 'EC_KEY_print_fp'; } {Do not localize}
  20007. {$ENDIF}
  20008. {$ENDIF}
  20009. {$IFNDEF OPENSSL_NO_ECDSA}
  20010. {CH fn_ECDSA_SIG_new = 'ECDSA_SIG_new'; } {Do not localize}
  20011. {CH fn_ECDSA_SIG_free = 'ECDSA_SIG_free'; } {Do not localize}
  20012. {CH fn_i2d_ECDSA_SIG = 'i2d_ECDSA_SIG'; } {Do not localize}
  20013. {CH fn_d2i_ECDSA_SIG = 'd2i_ECDSA_SIG'; } {Do not localize}
  20014. {CH fn_ECDSA_do_sign = 'ECDSA_do_sign'; } {Do not localize}
  20015. {CH fn_ECDSA_do_sign_ex = 'ECDSA_do_sign_ex'; } {Do not localize}
  20016. {CH fn_ECDSA_do_verify = 'ECDSA_do_verify'; } {Do not localize}
  20017. {CH fn_ECDSA_OpenSSL = 'ECDSA_OpenSSL'; } {Do not localize}
  20018. {CH fn_ECDSA_set_default_method = 'ECDSA_set_default_method'; } {Do not localize}
  20019. {CH fn_ECDSA_get_default_method = 'ECDSA_get_default_method'; } {Do not localize}
  20020. {CH fn_ECDSA_set_method = 'ECDSA_set_method'; } {Do not localize}
  20021. {CH fn_ECDSA_size = 'ECDSA_size'; } {Do not localize}
  20022. {CH fn_ECDSA_sign_setup = 'ECDSA_sign_setup'; } {Do not localize}
  20023. {CH fn_ECDSA_sign = 'ECDSA_sign'; } {Do not localize}
  20024. {CH fn_ECDSA_sign_ex = 'ECDSA_sign_ex'; } {Do not localize}
  20025. {CH fn_ECDSA_verify = 'ECDSA_verify'; } {Do not localize}
  20026. {CH fn_ECDSA_get_ex_new_index = 'ECDSA_get_ex_new_index'; } {Do not localize}
  20027. {CH fn_ECDSA_set_ex_data = 'ECDSA_set_ex_data'; } {Do not localize}
  20028. {CH fn_ECDSA_get_ex_data = 'ECDSA_get_ex_data'; } {Do not localize}
  20029. {CH fn_ERR_load_ECDSA_strings = 'ERR_load_ECDSA_strings'; } {Do not localize}
  20030. {$ENDIF}
  20031. {$IFNDEF OPENSSL_NO_ECDH}
  20032. {CH fn_ECDH_OpenSSL = 'ECDH_OpenSSL'; } {Do not localize}
  20033. {CH fn_ECDH_set_default_method = 'ECDH_set_default_method'; } {Do not localize}
  20034. {CH fn_ECDH_get_default_method = 'ECDH_get_default_method'; } {Do not localize}
  20035. {CH fn_ECDH_set_method = 'ECDH_set_method'; } {Do not localize}
  20036. {CH fn_ECDH_compute_key = 'ECDH_compute_key'; } {Do not localize}
  20037. {CH fn_ECDH_get_ex_new_index = 'ECDH_get_ex_new_index'; } {Do not localize}
  20038. {CH fn_ECDH_set_ex_data = 'ECDH_set_ex_data'; } {Do not localize}
  20039. {CH fn_ECDH_get_ex_data = 'ECDH_get_ex_data'; } {Do not localize}
  20040. {CH fn_ERR_load_ECDH_strings = 'ERR_load_ECDH_strings'; } {Do not localize}
  20041. {$ENDIF}
  20042. {CH fn_BN_value_one = 'BN_value_one'; } {Do not localize}
  20043. {CH fn_BN_options = 'BN_options'; } {Do not localize}
  20044. {CH fn_BN_CTX_new = 'BN_CTX_new'; } {Do not localize}
  20045. {$IFNDEF OPENSSL_NO_DEPRECATED}
  20046. {CH fn_BN_CTX_init = 'BN_CTX_init'; } {Do not localize}
  20047. {$ENDIF}
  20048. {CH fn_BN_CTX_free = 'BN_CTX_free'; } {Do not localize}
  20049. {CH fn_BN_rand = 'BN_rand'; } {Do not localize}
  20050. {CH fn_BN_pseudo_rand = 'BN_pseudo_rand'; } {Do not localize}
  20051. {CH fn_BN_rand_range = 'BN_rand_range'; } {Do not localize}
  20052. {CH fn_BN_pseudo_rand_range = 'BN_pseudo_rand_range'; } {Do not localize}
  20053. {CH fn_BN_num_bits = 'BN_num_bits'; } {Do not localize}
  20054. {CH fn_BN_num_bits_word = 'BN_num_bits_word'; } {Do not localize}
  20055. fn_BN_new = 'BN_new'; {Do not localize}
  20056. {CH fn_BN_init = 'BN_init'; } {Do not localize}
  20057. {CH fn_BN_clear_free = 'BN_clear_free'; } {Do not localize}
  20058. {CH fn_BN_copy = 'BN_copy'; } {Do not localize}
  20059. {CH fn_BN_bin2bn = 'BN_bin2bn'; } {Do not localize}
  20060. {CH fn_BN_bn2bin = 'BN_bn2bin'; } {Do not localize}
  20061. {CH fn_BN_mpi2bn = 'BN_mpi2bn'; } {Do not localize}
  20062. {CH fn_BN_bn2mpi = 'BN_bn2mpi'; } {Do not localize}
  20063. {CH fn_BN_sub = 'BN_sub'; } {Do not localize}
  20064. {CH fn_BN_usub = 'BN_usub'; } {Do not localize}
  20065. {CH fn_BN_uadd = 'BN_uadd'; } {Do not localize}
  20066. {CH fn_BN_add = 'BN_add'; } {Do not localize}
  20067. {CH fn_BN_mod = 'BN_mod'; } {Do not localize}
  20068. {CH fn_BN_div = 'BN_div'; } {Do not localize}
  20069. {CH fn_BN_mul = 'BN_mul'; } {Do not localize}
  20070. {CH fn_BN_sqr = 'BN_sqr'; } {Do not localize}
  20071. {CH fn_BN_mod_word = 'BN_mod_word'; } {Do not localize}
  20072. {CH fn_BN_div_word = 'BN_div_word'; } {Do not localize}
  20073. {CH fn_BN_mul_word = 'BN_mul_word'; } {Do not localize}
  20074. {CH fn_BN_add_word = 'BN_add_word'; } {Do not localize}
  20075. {CH fn_BN_sub_word = 'BN_sub_word'; } {Do not localize}
  20076. fn_BN_set_word = 'BN_set_word'; {Do not localize}
  20077. {CH fn_BN_get_word = 'BN_get_word'; } {Do not localize}
  20078. {CH fn_BN_cmp = 'BN_cmp'; } {Do not localize}
  20079. fn_BN_free = 'BN_free'; {Do not localize}
  20080. {CH fn_BN_is_bit_set = 'BN_is_bit_set'; } {Do not localize}
  20081. {CH fn_BN_lshift = 'BN_lshift'; } {Do not localize}
  20082. {CH fn_BN_lshift1 = 'BN_lshift1'; } {Do not localize}
  20083. {CH fn_BN_exp = 'BN_exp'; } {Do not localize}
  20084. {CH fn_BN_mod_exp = 'BN_mod_exp'; } {Do not localize}
  20085. {CH fn_BN_mod_exp_mont = 'BN_mod_exp_mont'; } {Do not localize}
  20086. {CH fn_BN_mod_exp2_mont = 'BN_mod_exp2_mont'; } {Do not localize}
  20087. {CH fn_BN_mod_exp_simple = 'BN_mod_exp_simple'; } {Do not localize}
  20088. {CH fn_BN_mask_bits = 'BN_mask_bits'; } {Do not localize}
  20089. {CH fn_BN_mod_mul = 'BN_mod_mul'; } {Do not localize}
  20090. {$IFNDEF OPENSSL_NO_FP_API}
  20091. {CH fn_BN_print_fp = 'BN_print_fp'; } {Do not localize}
  20092. {$ENDIF}
  20093. {CH fn_BN_print = 'BN_print'; } {Do not localize}
  20094. {CH fn_BN_reciprocal = 'BN_reciprocal'; } {Do not localize}
  20095. {CH fn_BN_rshift = 'BN_rshift'; } {Do not localize}
  20096. {CH fn_BN_rshift1 = 'BN_rshift1'; } {Do not localize}
  20097. {CH fn_BN_clear = 'BN_clear'; } {Do not localize}
  20098. {CH fn_bn_expand2 = 'bn_expand2'; } {Do not localize}
  20099. {CH fn_BN_dup = 'BN_dup'; } {Do not localize}
  20100. {CH fn_BN_ucmp = 'BN_ucmp'; } {Do not localize}
  20101. {CH fn_BN_set_bit = 'BN_set_bit'; } {Do not localize}
  20102. {CH fn_BN_clear_bit = 'BN_clear_bit'; } {Do not localize}
  20103. fn_BN_bn2hex = 'BN_bn2hex'; {Do not localize}
  20104. fn_BN_bn2dec = 'BN_bn2dec'; {Do not localize}
  20105. fn_BN_hex2bn = 'BN_hex2bn'; {Do not localize}
  20106. {CH fn_BN_dec2bn = 'BN_dec2bn'; } {Do not localize}
  20107. {CH fn_BN_gcd = 'BN_gcd'; } {Do not localize}
  20108. {CH fn_BN_mod_inverse = 'BN_mod_inverse'; } {Do not localize}
  20109. {$IFNDEF OPENSSL_NO_DEPRECATED}
  20110. {CH fn_BN_generate_prime = 'BN_generate_prime'; } {Do not localize}
  20111. {CH fn_BN_is_prime = 'BN_is_prime'; } {Do not localize}
  20112. {CH fn_BN_is_prime_fasttest = 'BN_is_prime_fasttest'; } {Do not localize}
  20113. {$ENDIF}
  20114. {CH fn_ERR_load_BN_strings = 'ERR_load_BN_strings'; } {Do not localize}
  20115. {CH fn_bn_mul_add_words = 'bn_mul_add_words'; } {Do not localize}
  20116. {CH fn_bn_mul_words = 'bn_mul_words'; } {Do not localize}
  20117. {CH fn_bn_sqr_words = 'bn_sqr_words'; } {Do not localize}
  20118. {CH fn_bn_div_words = 'bn_div_words'; } {Do not localize}
  20119. {CH fn_bn_add_words = 'bn_add_words'; } {Do not localize}
  20120. {CH fn_bn_sub_words = 'bn_sub_words'; } {Do not localize}
  20121. {CH fn_BN_MONT_CTX_new = 'BN_MONT_CTX_new'; } {Do not localize}
  20122. {CH fn_BN_MONT_CTX_init = 'BN_MONT_CTX_init'; } {Do not localize}
  20123. {CH fn_BN_mod_mul_montgomery = 'BN_mod_mul_montgomery'; } {Do not localize}
  20124. {CH fn_BN_from_montgomery = 'BN_from_montgomery'; } {Do not localize}
  20125. {CH fn_BN_MONT_CTX_free = 'BN_MONT_CTX_free'; } {Do not localize}
  20126. {CH fn_BN_MONT_CTX_set = 'BN_MONT_CTX_set'; } {Do not localize}
  20127. {CH fn_BN_MONT_CTX_copy = 'BN_MONT_CTX_copy'; } {Do not localize}
  20128. {CH fn_BN_BLINDING_new = 'BN_BLINDING_new'; } {Do not localize}
  20129. {CH fn_BN_BLINDING_free = 'BN_BLINDING_free'; } {Do not localize}
  20130. {CH fn_BN_BLINDING_update = 'BN_BLINDING_update'; } {Do not localize}
  20131. {CH fn_BN_BLINDING_convert = 'BN_BLINDING_convert'; } {Do not localize}
  20132. {CH fn_BN_BLINDING_invert = 'BN_BLINDING_invert'; } {Do not localize}
  20133. {$IFNDEF OPENSSL_NO_DEPRECATED}
  20134. {CH fn_BN_set_params = 'BN_set_params'; } {Do not localize}
  20135. {CH fn_BN_get_params = 'BN_get_params'; } {Do not localize}
  20136. {$ENDIF}
  20137. {CH fn_BN_RECP_CTX_init = 'BN_RECP_CTX_init'; } {Do not localize}
  20138. {CH fn_BN_RECP_CTX_new = 'BN_RECP_CTX_new'; } {Do not localize}
  20139. {CH fn_BN_RECP_CTX_free = 'BN_RECP_CTX_free'; } {Do not localize}
  20140. {CH fn_BN_RECP_CTX_set = 'BN_RECP_CTX_set'; } {Do not localize}
  20141. {CH fn_BN_mod_mul_reciprocal = 'BN_mod_mul_reciprocal'; } {Do not localize}
  20142. {CH fn_BN_mod_exp_recp = 'BN_mod_exp_recp'; } {Do not localize}
  20143. {CH fn_BN_div_recp = 'BN_div_recp'; } {Do not localize}
  20144. {CH fn_BN_GF2m_add = 'BN_GF2m_add'; } {Do not localize}
  20145. {CH fn_BN_GF2m_mod = 'BN_GF2m_mod'; } {Do not localize}
  20146. {CH fn_BN_GF2m_mod_mul = 'BN_GF2m_mod_mul'; } {Do not localize}
  20147. {CH fn_BN_GF2m_mod_sqr = 'BN_GF2m_mod_sqr'; } {Do not localize}
  20148. {CH fn_BN_GF2m_mod_inv = 'BN_GF2m_mod_inv'; } {Do not localize}
  20149. {CH fn_BN_GF2m_mod_div = 'BN_GF2m_mod_div'; } {Do not localize}
  20150. {CH fn_BN_GF2m_mod_exp = 'BN_GF2m_mod_exp'; } {Do not localize}
  20151. {CH fn_BN_GF2m_mod_sqrt = 'BN_GF2m_mod_sqrt'; } {Do not localize}
  20152. {CH fn_BN_GF2m_mod_solve_quad = 'BN_GF2m_mod_solve_quad'; } {Do not localize}
  20153. {CH fn_BN_GF2m_mod_arr = 'BN_GF2m_mod_arr'; } {Do not localize}
  20154. {CH fn_BN_GF2m_mod_mul_arr = 'BN_GF2m_mod_mul_arr'; } {Do not localize}
  20155. {CH fn_BN_GF2m_mod_sqr_arr = 'BN_GF2m_mod_sqr_arr'; } {Do not localize}
  20156. {CH fn_BN_GF2m_mod_inv_arr = 'BN_GF2m_mod_inv_arr'; } {Do not localize}
  20157. {CH fn_BN_GF2m_mod_div_arr = 'BN_GF2m_mod_div_arr'; } {Do not localize}
  20158. {CH fn_BN_GF2m_mod_exp_arr = 'BN_GF2m_mod_exp_arr'; } {Do not localize}
  20159. {CH fn_BN_GF2m_mod_sqrt_arr = 'BN_GF2m_mod_sqrt_arr'; } {Do not localize}
  20160. {CH fn_BN_GF2m_mod_solve_quad_arr = 'BN_GF2m_mod_solve_quad_arr'; } {Do not localize}
  20161. {CH fn_BN_GF2m_poly2arr = 'BN_GF2m_poly2arr'; } {Do not localize}
  20162. {CH fn_BN_GF2m_arr2poly = 'BN_GF2m_arr2poly'; } {Do not localize}
  20163. // faster mod functions for the 'NIST primes'
  20164. // 0 <= a < p^2
  20165. {CH fn_BN_nist_mod_192 = 'BN_nist_mod_192'; } {Do not localize}
  20166. {CH fn_BN_nist_mod_224 = 'BN_nist_mod_224'; } {Do not localize}
  20167. {CH fn_BN_nist_mod_256 = 'BN_nist_mod_256'; } {Do not localize}
  20168. {CH fn_BN_nist_mod_384 = 'BN_nist_mod_384'; } {Do not localize}
  20169. {CH fn_BN_nist_mod_521 = 'BN_nist_mod_521'; } {Do not localize}
  20170. {CH fn_BN_get0_nist_prime_192 = 'BN_get0_nist_prime_192'; } {Do not localize}
  20171. {CH fn_BN_get0_nist_prime_224 = 'BN_get0_nist_prime_224'; } {Do not localize}
  20172. {CH fn_BN_get0_nist_prime_256 = 'BN_get0_nist_prime_256'; } {Do not localize}
  20173. {CH fn_BN_get0_nist_prime_384 = 'BN_get0_nist_prime_384'; } {Do not localize}
  20174. {CH fn_BN_get0_nist_prime_521 = 'BN_get0_nist_prime_521'; } {Do not localize}
  20175. //
  20176. {CH fn_get_rfc2409_prime_768 = 'get_rfc2409_prime_768'; } {Do not localize}
  20177. {CH fn_get_rfc2409_prime_1024 = 'get_rfc2409_prime_1024'; } {Do not localize}
  20178. {CH fn_get_rfc3526_prime_1536 = 'get_rfc3526_prime_1536'; } {Do not localize}
  20179. {CH fn_get_rfc3526_prime_2048 = 'get_rfc3526_prime_2048'; } {Do not localize}
  20180. {CH fn_get_rfc3526_prime_3072 = 'get_rfc3526_prime_3072'; } {Do not localize}
  20181. {CH fn_get_rfc3526_prime_4096 = 'get_rfc3526_prime_4096'; } {Do not localize}
  20182. {CH fn_get_rfc3526_prime_6144 = 'get_rfc3526_prime_6144'; } {Do not localize}
  20183. {CH fn_get_rfc3526_prime_8192 = 'get_rfc3526_prime_8192'; } {Do not localize}
  20184. {CH fn_BN_bntest_rand = 'BN_bntest_rand'; } {Do not localize}
  20185. {CH fn_sk_ASN1_TYPE_new = 'sk_ASN1_TYPE_new'; } {Do not localize}
  20186. {CH fn_sk_ASN1_TYPE_new_null = 'sk_ASN1_TYPE_new_null'; } {Do not localize}
  20187. {CH fn_sk_ASN1_TYPE_free = 'sk_ASN1_TYPE_free'; } {Do not localize}
  20188. {CH fn_sk_ASN1_TYPE_num = 'sk_ASN1_TYPE_num'; } {Do not localize}
  20189. {CH fn_sk_ASN1_TYPE_value = 'sk_ASN1_TYPE_value'; } {Do not localize}
  20190. {CH fn_sk_ASN1_TYPE_set = 'sk_ASN1_TYPE_set'; } {Do not localize}
  20191. {CH fn_ASN1_TYPE_set1 = 'ASN1_TYPE_set1'; } {Do not localize}
  20192. {CH fn_sk_ASN1_TYPE_zero = 'sk_ASN1_TYPE_zero'; } {Do not localize}
  20193. {CH fn_sk_ASN1_TYPE_push = 'sk_ASN1_TYPE_push'; } {Do not localize}
  20194. {CH fn_sk_ASN1_TYPE_unshift = 'sk_ASN1_TYPE_unshift'; } {Do not localize}
  20195. {CH fn_sk_ASN1_TYPE_find = 'sk_ASN1_TYPE_find'; } {Do not localize}
  20196. {CH fn_sk_ASN1_TYPE_delete = 'sk_ASN1_TYPE_delete'; } {Do not localize}
  20197. {CH fn_sk_ASN1_TYPE_delete_ptr = 'sk_ASN1_TYPE_delete_ptr'; } {Do not localize}
  20198. {CH fn_sk_ASN1_TYPE_insert = 'sk_ASN1_TYPE_insert'; } {Do not localize}
  20199. {CH fn_sk_ASN1_TYPE_dup = 'sk_ASN1_TYPE_dup'; } {Do not localize}
  20200. {CH fn_sk_ASN1_TYPE_pop_free = 'sk_ASN1_TYPE_pop_free'; } {Do not localize}
  20201. {CH fn_sk_ASN1_TYPE_shift = 'sk_ASN1_TYPE_shift'; } {Do not localize}
  20202. {CH fn_sk_ASN1_TYPE_pop = 'sk_ASN1_TYPE_pop'; } {Do not localize}
  20203. {CH fn_sk_ASN1_TYPE_sort = 'sk_ASN1_TYPE_sort'; } {Do not localize}
  20204. {CH fn_i2d_ASN1_SET_OF_ASN1_TYPE = 'i2d_ASN1_SET_OF_ASN1_TYPE'; } {Do not localize}
  20205. {CH fn_d2i_ASN1_SET_OF_ASN1_TYPE = 'd2i_ASN1_SET_OF_ASN1_TYPE'; } {Do not localize}
  20206. {CH fn_ASN1_TYPE_new = 'ASN1_TYPE_new'; } {Do not localize}
  20207. {CH fn_ASN1_TYPE_free = 'ASN1_TYPE_free'; } {Do not localize}
  20208. {CH fn_i2d_ASN1_TYPE = 'i2d_ASN1_TYPE'; } {Do not localize}
  20209. {CH fn_d2i_ASN1_TYPE = 'd2i_ASN1_TYPE'; } {Do not localize}
  20210. {CH fn_ASN1_TYPE_get = 'ASN1_TYPE_get'; } {Do not localize}
  20211. {CH fn_ASN1_TYPE_set = 'ASN1_TYPE_set'; } {Do not localize}
  20212. {CH fn_ASN1_TYPE_set1 = 'ASN1_TYPE_set1'; } {Do not localize}
  20213. {CH fn_ASN1_OBJECT_new = 'ASN1_OBJECT_new'; } {Do not localize}
  20214. {CH fn_ASN1_OBJECT_free = 'ASN1_OBJECT_free'; } {Do not localize}
  20215. {CH fn_i2d_ASN1_OBJECT = 'i2d_ASN1_OBJECT'; } {Do not localize}
  20216. {CH fn_d2i_ASN1_OBJECT = 'd2i_ASN1_OBJECT'; } {Do not localize}
  20217. {CH fn_sk_ASN1_OBJECT_new = 'sk_ASN1_OBJECT_new'; } {Do not localize}
  20218. {CH fn_sk_ASN1_OBJECT_new_null = 'sk_ASN1_OBJECT_new_null'; } {Do not localize}
  20219. {CH fn_sk_ASN1_OBJECT_free = 'sk_ASN1_OBJECT_free'; } {Do not localize}
  20220. {CH fn_sk_ASN1_OBJECT_num = 'sk_ASN1_OBJECT_num'; } {Do not localize}
  20221. {CH fn_sk_ASN1_OBJECT_value = 'sk_ASN1_OBJECT_value'; } {Do not localize}
  20222. {CH fn_sk_ASN1_OBJECT_set = 'sk_ASN1_OBJECT_set'; } {Do not localize}
  20223. {CH fn_sk_ASN1_OBJECT_zero = 'sk_ASN1_OBJECT_zero'; } {Do not localize}
  20224. {CH fn_sk_ASN1_OBJECT_push = 'sk_ASN1_OBJECT_push'; } {Do not localize}
  20225. {CH fn_sk_ASN1_OBJECT_unshift = 'sk_ASN1_OBJECT_unshift'; } {Do not localize}
  20226. {CH fn_sk_ASN1_OBJECT_find = 'sk_ASN1_OBJECT_find'; } {Do not localize}
  20227. {CH fn_sk_ASN1_OBJECT_delete = 'sk_ASN1_OBJECT_delete'; } {Do not localize}
  20228. {CH fn_sk_ASN1_OBJECT_delete_ptr = 'sk_ASN1_OBJECT_delete_ptr'; } {Do not localize}
  20229. {CH fn_sk_ASN1_OBJECT_insert = 'sk_ASN1_OBJECT_insert'; } {Do not localize}
  20230. {CH fn_sk_ASN1_OBJECT_dup = 'sk_ASN1_OBJECT_dup'; } {Do not localize}
  20231. {CH fn_sk_ASN1_OBJECT_pop_free = 'sk_ASN1_OBJECT_pop_free'; } {Do not localize}
  20232. {CH fn_sk_ASN1_OBJECT_shift = 'sk_ASN1_OBJECT_shift'; } {Do not localize}
  20233. {CH fn_sk_ASN1_OBJECT_pop = 'sk_ASN1_OBJECT_pop'; } {Do not localize}
  20234. {CH fn_sk_ASN1_OBJECT_sort = 'sk_ASN1_OBJECT_sort'; } {Do not localize}
  20235. {CH fn_i2d_ASN1_SET_OF_ASN1_OBJECT = 'i2d_ASN1_SET_OF_ASN1_OBJECT'; } {Do not localize}
  20236. {CH fn_d2i_ASN1_SET_OF_ASN1_OBJECT = 'd2i_ASN1_SET_OF_ASN1_OBJECT'; } {Do not localize}
  20237. {CH fn_ASN1_STRING_new = 'ASN1_STRING_new'; } {Do not localize}
  20238. fn_ASN1_STRING_free = 'ASN1_STRING_free'; {Do not localize}
  20239. {CH fn_ASN1_STRING_dup = 'ASN1_STRING_dup'; } {Do not localize}
  20240. fn_ASN1_STRING_type_new = 'ASN1_STRING_type_new'; {Do not localize}
  20241. {CH fn_ASN1_STRING_cmp = 'ASN1_STRING_cmp'; } {Do not localize}
  20242. {CH fn_ASN1_STRING_set = 'ASN1_STRING_set'; } {Do not localize}
  20243. {CH fn_ASN1_STRING_set0 = 'ASN1_STRING_set0'; } {Do not localize}
  20244. {CH fn_i2d_ASN1_BIT_STRING = 'i2d_ASN1_BIT_STRING'; } {Do not localize}
  20245. {CH fn_d2i_ASN1_BIT_STRING = 'd2i_ASN1_BIT_STRING'; } {Do not localize}
  20246. {CH fn_ASN1_BIT_STRING_set_bit = 'ASN1_BIT_STRING_set_bit'; } {Do not localize}
  20247. {CH fn_ASN1_BIT_STRING_get_bit = 'ASN1_BIT_STRING_get_bit'; } {Do not localize}
  20248. {CH fn_i2d_ASN1_BOOLEAN = 'i2d_ASN1_BOOLEAN'; } {Do not localize}
  20249. {CH fn_d2i_ASN1_BOOLEAN = 'd2i_ASN1_BOOLEAN'; } {Do not localize}
  20250. {CH fn_i2d_ASN1_INTEGER = 'i2d_ASN1_INTEGER'; } {Do not localize}
  20251. {CH fn_d2i_ASN1_INTEGER = 'd2i_ASN1_INTEGER'; } {Do not localize}
  20252. {CH fn_d2i_ASN1_UINTEGER = 'd2i_ASN1_UINTEGER'; } {Do not localize}
  20253. {CH fn_i2d_ASN1_ENUMERATED = 'i2d_ASN1_ENUMERATED'; } {Do not localize}
  20254. {CH fn_d2i_ASN1_ENUMERATED = 'd2i_ASN1_ENUMERATED'; } {Do not localize}
  20255. {CH fn_ASN1_UTCTIME_check = 'ASN1_UTCTIME_check'; } {Do not localize}
  20256. {CH fn_ASN1_UTCTIME_set = 'ASN1_UTCTIME_set'; } {Do not localize}
  20257. {CH fn_ASN1_UTCTIME_set_string = 'ASN1_UTCTIME_set_string'; } {Do not localize}
  20258. {CH fn_ASN1_GENERALIZEDTIME_check = 'ASN1_GENERALIZEDTIME_check'; } {Do not localize}
  20259. {CH fn_ASN1_GENERALIZEDTIME_set = 'ASN1_GENERALIZEDTIME_set'; } {Do not localize}
  20260. {CH fn_ASN1_GENERALIZEDTIME_set_string = 'ASN1_GENERALIZEDTIME_set_string'; } {Do not localize}
  20261. {CH fn_i2d_ASN1_OCTET_STRING = 'i2d_ASN1_OCTET_STRING'; } {Do not localize}
  20262. {CH fn_d2i_ASN1_OCTET_STRING = 'd2i_ASN1_OCTET_STRING'; } {Do not localize}
  20263. {CH fn_i2d_ASN1_VISIBLESTRING = 'i2d_ASN1_VISIBLESTRING'; } {Do not localize}
  20264. {CH fn_d2i_ASN1_VISIBLESTRING = 'd2i_ASN1_VISIBLESTRING'; } {Do not localize}
  20265. {CH fn_i2d_ASN1_UTF8STRING = 'i2d_ASN1_UTF8STRING'; } {Do not localize}
  20266. {CH fn_d2i_ASN1_UTF8STRING = 'd2i_ASN1_UTF8STRING'; } {Do not localize}
  20267. {CH fn_i2d_ASN1_BMPSTRING = 'i2d_ASN1_BMPSTRING'; } {Do not localize}
  20268. {CH fn_d2i_ASN1_BMPSTRING = 'd2i_ASN1_BMPSTRING'; } {Do not localize}
  20269. {CH fn_i2d_ASN1_PRINTABLE = 'i2d_ASN1_PRINTABLE'; } {Do not localize}
  20270. {CH fn_d2i_ASN1_PRINTABLE = 'd2i_ASN1_PRINTABLE'; } {Do not localize}
  20271. {CH fn_d2i_ASN1_PRINTABLESTRING = 'd2i_ASN1_PRINTABLESTRING'; } {Do not localize}
  20272. {CH fn_i2d_DIRECTORYSTRING = 'i2d_DIRECTORYSTRING'; } {Do not localize}
  20273. {CH fn_d2i_DIRECTORYSTRING = 'd2i_DIRECTORYSTRING'; } {Do not localize}
  20274. {CH fn_i2d_DISPLAYTEXT = 'i2d_DISPLAYTEXT'; } {Do not localize}
  20275. {CH fn_d2i_DISPLAYTEXT = 'd2i_DISPLAYTEXT'; } {Do not localize}
  20276. {CH fn_d2i_ASN1_T61STRING = 'd2i_ASN1_T61STRING'; } {Do not localize}
  20277. {CH fn_i2d_ASN1_IA5STRING = 'i2d_ASN1_IA5STRING'; } {Do not localize}
  20278. {CH fn_d2i_ASN1_IA5STRING = 'd2i_ASN1_IA5STRING'; } {Do not localize}
  20279. {CH fn_i2d_ASN1_UTCTIME = 'i2d_ASN1_UTCTIME'; } {Do not localize}
  20280. {CH fn_d2i_ASN1_UTCTIME = 'd2i_ASN1_UTCTIME'; } {Do not localize}
  20281. {CH fn_i2d_ASN1_GENERALIZEDTIME = 'i2d_ASN1_GENERALIZEDTIME'; } {Do not localize}
  20282. {CH fn_d2i_ASN1_GENERALIZEDTIME = 'd2i_ASN1_GENERALIZEDTIME'; } {Do not localize}
  20283. {CH fn_i2d_ASN1_TIME = 'i2d_ASN1_TIME'; } {Do not localize}
  20284. {CH fn_d2i_ASN1_TIME = 'd2i_ASN1_TIME'; } {Do not localize}
  20285. {CH fn_ASN1_TIME_set = 'ASN1_TIME_set'; } {Do not localize}
  20286. {CH fn_i2d_ASN1_SET = 'i2d_ASN1_SET'; } {Do not localize}
  20287. {CH fn_d2i_ASN1_SET = 'd2i_ASN1_SET'; } {Do not localize}
  20288. {$IFNDEF OPENSSL_NO_BIO}
  20289. {CH fn_i2a_ASN1_INTEGER = 'i2a_ASN1_INTEGER'; } {Do not localize}
  20290. {CH fn_a2i_ASN1_INTEGER = 'a2i_ASN1_INTEGER'; } {Do not localize}
  20291. {CH fn_i2a_ASN1_ENUMERATED = 'i2a_ASN1_ENUMERATED'; } {Do not localize}
  20292. {CH fn_a2i_ASN1_ENUMERATED = 'a2i_ASN1_ENUMERATED'; } {Do not localize}
  20293. {CH fn_i2a_ASN1_OBJECT = 'i2a_ASN1_OBJECT'; } {Do not localize}
  20294. {CH fn_a2i_ASN1_STRING = 'a2i_ASN1_STRING'; } {Do not localize}
  20295. {CH fn_i2a_ASN1_STRING = 'i2a_ASN1_STRING'; } {Do not localize}
  20296. {$ENDIF}
  20297. {CH fn_i2t_ASN1_OBJECT = 'i2t_ASN1_OBJECT'; } {Do not localize}
  20298. {CH fn_a2d_ASN1_OBJECT = 'a2d_ASN1_OBJECT'; } {Do not localize}
  20299. {CH fn_ASN1_OBJECT_create = 'ASN1_OBJECT_create'; } {Do not localize}
  20300. fn_ASN1_INTEGER_set = 'ASN1_INTEGER_set'; {Do not localize}
  20301. fn_ASN1_INTEGER_get = 'ASN1_INTEGER_get'; {Do not localize}
  20302. {CH fn_BN_to_ASN1_INTEGER = 'BN_to_ASN1_INTEGER'; } {Do not localize}
  20303. fn_ASN1_INTEGER_to_BN = 'ASN1_INTEGER_to_BN'; {Do not localize}
  20304. {CH fn_ASN1_ENUMERATED_set = 'ASN1_ENUMERATED_set'; } {Do not localize}
  20305. {CH fn_ASN1_ENUMERATED_get = 'ASN1_ENUMERATED_get'; } {Do not localize}
  20306. {CH fn_BN_to_ASN1_ENUMERATED = 'BN_to_ASN1_ENUMERATED'; } {Do not localize}
  20307. {CH fn_ASN1_ENUMERATED_to_BN = 'ASN1_ENUMERATED_to_BN'; } {Do not localize}
  20308. {CH fn_ASN1_PRINTABLE_type = 'ASN1_PRINTABLE_type'; } {Do not localize}
  20309. {CH fn_i2d_ASN1_bytes = 'i2d_ASN1_bytes'; } {Do not localize}
  20310. {CH fn_d2i_ASN1_bytes = 'd2i_ASN1_bytes'; } {Do not localize}
  20311. {CH fn_d2i_ASN1_type_bytes = 'd2i_ASN1_type_bytes'; } {Do not localize}
  20312. {CH fn_asn1_Finish = 'asn1_Finish'; } {Do not localize}
  20313. {CH fn_ASN1_get_object = 'ASN1_get_object'; } {Do not localize}
  20314. {CH fn_ASN1_check_infinite_end = 'ASN1_check_infinite_end'; } {Do not localize}
  20315. {CH fn_ASN1_put_object = 'ASN1_put_object'; } {Do not localize}
  20316. {CH fn_ASN1_object_size = 'ASN1_object_size'; } {Do not localize}
  20317. fn_ASN1_dup = 'ASN1_dup'; {Do not localize}
  20318. {$IFNDEF OPENSSL_NO_FP_API}
  20319. {CH fn_ASN1_d2i_fp = 'ASN1_d2i_fp'; } {Do not localize}
  20320. {CH fn_ASN1_i2d_fp = 'ASN1_i2d_fp'; } {Do not localize}
  20321. {$ENDIF}
  20322. {$IFNDEF OPENSSL_NO_BIO}
  20323. {CH fn_ASN1_d2i_bio = 'ASN1_d2i_bio'; } {Do not localize}
  20324. {CH fn_ASN1_item_d2i_bio = 'ASN1_item_d2i_bio'; } {Do not localize}
  20325. {CH fn_ASN1_i2d_bio = 'ASN1_i2d_bio'; } {Do not localize}
  20326. {CH fn_ASN1_item_i2d_bio = 'ASN1_item_i2d_bio'; } {Do not localize}
  20327. {CH fn_ASN1_UTCTIME_print = 'ASN1_UTCTIME_print'; } {Do not localize}
  20328. {CH fn_ASN1_GENERALIZEDTIME_print = 'ASN1_GENERALIZEDTIME_print'; } {Do not localize}
  20329. {CH fn_ASN1_TIME_print = 'ASN1_TIME_print'; } {Do not localize}
  20330. {CH fn_ASN1_STRING_print = 'ASN1_STRING_print'; } {Do not localize}
  20331. {CH fn_ASN1_STRING_print_ex = 'ASN1_STRING_print_ex'; } {Do not localize}
  20332. {CH fn_ASN1_parse = 'ASN1_parse'; } {Do not localize}
  20333. {CH fn_ASN1_parse_dump = 'ASN1_parse_dump'; } {Do not localize}
  20334. {$ENDIF}
  20335. {CH fn_ASN1_tag2str = 'ASN1_tag2str'; } {Do not localize}
  20336. {CH fn_i2d_ASN1_HEADER = 'i2d_ASN1_HEADER'; } {Do not localize}
  20337. {CH fn_d2i_ASN1_HEADER = 'd2i_ASN1_HEADER'; } {Do not localize}
  20338. {CH fn_ASN1_HEADER_new = 'ASN1_HEADER_new'; } {Do not localize}
  20339. {CH fn_ASN1_HEADER_free = 'ASN1_HEADER_free'; } {Do not localize}
  20340. {CH fn_ASN1_UNIVERSALSTRING_to_string = 'ASN1_UNIVERSALSTRING_to_string'; } {Do not localize}
  20341. {CH fn_ERR_load_ASN1_strings = 'ERR_load_ASN1_strings'; } {Do not localize}
  20342. {CH fn_X509_asn1_meth = 'X509_asn1_meth'; } {Do not localize}
  20343. {CH fn_RSAPrivateKey_asn1_meth = 'RSAPrivateKey_asn1_meth'; } {Do not localize}
  20344. {CH fn_ASN1_IA5STRING_asn1_meth = 'ASN1_IA5STRING_asn1_meth'; } {Do not localize}
  20345. {CH fn_ASN1_BIT_STRING_asn1_meth = 'ASN1_BIT_STRING_asn1_meth'; } {Do not localize}
  20346. {CH fn_ASN1_TYPE_set_octetstring = 'ASN1_TYPE_set_octetstring'; } {Do not localize}
  20347. {CH fn_ASN1_TYPE_get_octetstring = 'ASN1_TYPE_get_octetstring'; } {Do not localize}
  20348. {CH fn_ASN1_TYPE_set_int_octetstring = 'ASN1_TYPE_set_int_octetstring'; } {Do not localize}
  20349. {CH fn_ASN1_TYPE_get_int_octetstring = 'ASN1_TYPE_get_int_octetstring'; } {Do not localize}
  20350. {CH fn_ASN1_seq_unpack = 'ASN1_seq_unpack'; } {Do not localize}
  20351. {CH fn_ASN1_seq_pack = 'ASN1_seq_pack'; } {Do not localize}
  20352. {CH fn_ASN1_unpack_string = 'ASN1_unpack_string'; } {Do not localize}
  20353. {CH fn_ASN1_pack_string = 'ASN1_pack_string'; } {Do not localize}
  20354. {CH fn_ASN1_item_unpack = 'ASN1_item_unpack'; } {Do not localize}
  20355. {CH fn_ASN1_item_pack = 'ASN1_item_pack'; } {Do not localize}
  20356. {CH fn_ASN1_STRING_set_default_mask = 'ASN1_STRING_set_default_mask'; } {Do not localize}
  20357. {CH fn_ASN1_STRING_set_default_mask_asc = 'ASN1_STRING_set_default_mask_asc'; } {Do not localize}
  20358. {CH fn_ASN1_STRING_get_default_mask = 'ASN1_STRING_get_default_mask'; } {Do not localize}
  20359. {CH fn_ASN1_mbstring_copy = 'ASN1_mbstring_copy'; } {Do not localize}
  20360. {CH fn_ASN1_mbstring_ncopy = 'ASN1_mbstring_ncopy'; } {Do not localize}
  20361. {CH fn_ASN1_STRING_set_by_NID = 'ASN1_STRING_set_by_NID'; } {Do not localize}
  20362. {CH fn_ASN1_STRING_TABLE_get = 'ASN1_STRING_TABLE_get'; } {Do not localize}
  20363. {CH fn_ASN1_STRING_TABLE_add = 'ASN1_STRING_TABLE_add'; } {Do not localize}
  20364. {CH fn_ASN1_STRING_TABLE_cleanup = 'ASN1_STRING_TABLE_cleanup'; } {Do not localize}
  20365. {CH fn_ASN1_item_new = 'ASN1_item_new'; } {Do not localize}
  20366. {CH fn_ASN1_item_free = 'ASN1_item_free'; } {Do not localize}
  20367. {CH fn_ASN1_item_d2i = 'ASN1_item_d2i'; } {Do not localize}
  20368. {CH fn_ASN1_item_i2d = 'ASN1_item_i2d'; } {Do not localize}
  20369. {CH fn_ASN1_item_ndef_i2d = 'ASN1_item_ndef_i2d'; } {Do not localize}
  20370. {CH fn_ASN1_add_oid_module = 'ASN1_add_oid_module'; } {Do not localize}
  20371. {CH fn_ASN1_generate_nconf = 'ASN1_generate_nconf'; } {Do not localize}
  20372. {CH fn_ASN1_generate_v3 = 'ASN1_generate_v3'; } {Do not localize}
  20373. {CH fn_int_smime_write_ASN1 = 'int_smime_write_ASN1'; } {Do not localize}
  20374. {CH fn_SMIME_read_ASN1 = 'SMIME_read_ASN1'; } {Do not localize}
  20375. {CH fn_OBJ_NAME_init = 'OBJ_NAME_init'; } {Do not localize}
  20376. {CH fn_OBJ_NAME_new_index = 'OBJ_NAME_new_index'; } {Do not localize}
  20377. {CH fn_OBJ_NAME_get = 'OBJ_NAME_get'; } {Do not localize}
  20378. {CH fn_OBJ_NAME_add = 'OBJ_NAME_add'; } {Do not localize}
  20379. {CH fn_OBJ_NAME_remove = 'OBJ_NAME_remove'; } {Do not localize}
  20380. {CH fn_OBJ_NAME_cleanup = 'OBJ_NAME_cleanup'; } {Do not localize}
  20381. {CH fn_OBJ_dup = 'OBJ_dup'; } {Do not localize}
  20382. fn_OBJ_nid2obj = 'OBJ_nid2obj'; {Do not localize}
  20383. fn_OBJ_nid2ln = 'OBJ_nid2ln'; {Do not localize}
  20384. fn_OBJ_nid2sn = 'OBJ_nid2sn'; {Do not localize}
  20385. fn_OBJ_obj2nid = 'OBJ_obj2nid'; {Do not localize}
  20386. {CH fn_OBJ_txt2obj = 'OBJ_txt2obj'; } {Do not localize}
  20387. {CH fn_OBJ_obj2txt = 'OBJ_obj2txt'; } {Do not localize}
  20388. {CH fn_OBJ_txt2nid = 'OBJ_txt2nid'; } {Do not localize}
  20389. {CH fn_OBJ_ln2nid = 'OBJ_ln2nid'; } {Do not localize}
  20390. {CH fn_OBJ_sn2nid = 'OBJ_sn2nid'; } {Do not localize}
  20391. {CH fn_OBJ_cmp = 'OBJ_cmp'; } {Do not localize}
  20392. {CH fn_OBJ_bsearch = 'OBJ_bsearch'; } {Do not localize}
  20393. {CH fn_ERR_load_OBJ_strings = 'ERR_load_OBJ_strings'; } {Do not localize}
  20394. {CH fn_OBJ_new_nid = 'OBJ_new_nid'; } {Do not localize}
  20395. {CH fn_OBJ_add_object = 'OBJ_add_object'; } {Do not localize}
  20396. {CH fn_OBJ_create = 'OBJ_create'; } {Do not localize}
  20397. {CH fn_OBJ_cleanup = 'OBJ_cleanup'; } {Do not localize}
  20398. {CH fn_OBJ_create_objects = 'OBJ_create_objects'; } {Do not localize}
  20399. {===}
  20400. fn_EVP_MD_type = 'EVP_MD_type'; {Do not localize}
  20401. fn_EVP_MD_pkey_type = 'EVP_MD_pkey_type'; {Do not localize}
  20402. fn_EVP_MD_size = 'EVP_MD_size'; {Do not localize}
  20403. fn_EVP_MD_block_size = 'EVP_MD_block_size'; {Do not localize}
  20404. fn_EVP_MD_flags = 'EVP_MD_flags'; {Do not localize}
  20405. fn_EVP_MD_CTX_md = 'EVP_MD_CTX_md'; {Do not localize}
  20406. fn_EVP_CIPHER_nid = 'EVP_CIPHER_nid'; {Do not localize}
  20407. fn_EVP_CIPHER_block_size = 'EVP_CIPHER_block_size'; {Do not localize}
  20408. fn_EVP_CIPHER_key_length = 'EVP_CIPHER_key_length'; {Do not localize}
  20409. fn_EVP_CIPHER_iv_length = 'EVP_CIPHER_iv_length'; {Do not localize}
  20410. fn_EVP_CIPHER_flags = 'EVP_CIPHER_flags'; {Do not localize}
  20411. fn_EVP_CIPHER_CTX_cipher = 'EVP_CIPHER_CTX_cipher'; {Do not localize}
  20412. fn_EVP_CIPHER_CTX_nid = 'EVP_CIPHER_CTX_nid'; {Do not localize}
  20413. fn_EVP_CIPHER_CTX_block_size = 'EVP_CIPHER_CTX_block_size'; {Do not localize}
  20414. fn_EVP_CIPHER_CTX_key_length = 'EVP_CIPHER_CTX_key_length'; {Do not localize}
  20415. fn_EVP_CIPHER_CTX_iv_length = 'EVP_CIPHER_CTX_iv_length'; {Do not localize}
  20416. fn_EVP_CIPHER_CTX_get_app_data = 'EVP_CIPHER_CTX_get_app_data'; {Do not localize}
  20417. fn_EVP_CIPHER_CTX_set_app_data = 'EVP_CIPHER_CTX_set_app_data'; {Do not localize}
  20418. fn_EVP_CIPHER_CTX_flags = 'EVP_CIPHER_CTX_flags'; {Do not localize}
  20419. fn_EVP_Cipher = 'EVP_Cipher'; {Do not localize}
  20420. fn_EVP_MD_CTX_init = 'EVP_MD_CTX_init'; {Do not localize}
  20421. fn_EVP_MD_CTX_cleanup = 'EVP_MD_CTX_cleanup'; {Do not localize}
  20422. fn_EVP_MD_CTX_create = 'EVP_MD_CTX_create'; {Do not localize}
  20423. fn_EVP_MD_CTX_destroy = 'EVP_MD_CTX_destroy'; {Do not localize}
  20424. fn_EVP_MD_CTX_copy_ex = 'EVP_MD_CTX_copy_ex'; {Do not localize}
  20425. fn_EVP_MD_CTX_set_flags = 'EVP_MD_CTX_set_flags'; {Do not localize}
  20426. fn_EVP_MD_CTX_clear_flags = 'EVP_MD_CTX_clear_flags'; {Do not localize}
  20427. fn_EVP_MD_CTX_test_flags = 'EVP_MD_CTX_test_flags'; {Do not localize}
  20428. fn_EVP_DigestInit_ex = 'EVP_DigestInit_ex'; {Do not localize}
  20429. fn_EVP_DigestUpdate = 'EVP_DigestUpdate'; {Do not localize}
  20430. fn_EVP_DigestFinal_ex = 'EVP_DigestFinal_ex'; {Do not localize}
  20431. fn_EVP_Digest = 'EVP_Digest'; {Do not localize}
  20432. fn_EVP_MD_CTX_copy = 'EVP_MD_CTX_copy'; {Do not localize}
  20433. fn_EVP_DigestInit = 'EVP_DigestInit'; {Do not localize}
  20434. fn_EVP_DigestFinal = 'EVP_DigestFinal'; {Do not localize}
  20435. fn_EVP_read_pw_string = 'EVP_read_pw_string'; {Do not localize}
  20436. fn_EVP_set_pw_prompt = 'EVP_set_pw_prompt'; {Do not localize}
  20437. fn_EVP_get_pw_prompt = 'EVP_get_pw_prompt'; {Do not localize}
  20438. fn_EVP_BytesToKey = 'EVP_BytesToKey'; {Do not localize}
  20439. fn_EVP_CIPHER_CTX_set_flags = 'EVP_CIPHER_CTX_set_flags'; {Do not localize}
  20440. fn_EVP_CIPHER_CTX_clear_flags = 'EVP_CIPHER_CTX_clear_flags'; {Do not localize}
  20441. fn_EVP_CIPHER_CTX_test_flags = 'EVP_CIPHER_CTX_test_flags'; {Do not localize}
  20442. fn_EVP_EncryptInit = 'EVP_EncryptInit'; {Do not localize}
  20443. fn_EVP_EncryptInit_ex = 'EVP_EncryptInit_ex'; {Do not localize}
  20444. fn_EVP_EncryptUpdate = 'EVP_EncryptUpdate'; {Do not localize}
  20445. fn_EVP_EncryptFinal = 'EVP_EncryptFinal'; {Do not localize}
  20446. fn_EVP_EncryptFinal_ex = 'EVP_EncryptFinal_ex'; {Do not localize}
  20447. fn_EVP_DecryptInit = 'EVP_DecryptInit'; {Do not localize}
  20448. fn_EVP_DecryptInit_ex = 'EVP_DecryptInit_ex'; {Do not localize}
  20449. fn_EVP_DecryptUpdate = 'EVP_DecryptUpdate'; {Do not localize}
  20450. fn_EVP_DecryptFinal = 'EVP_DecryptFinal'; {Do not localize}
  20451. fn_EVP_DecryptFinal_ex = 'EVP_DecryptFinal_ex'; {Do not localize}
  20452. fn_EVP_CipherInit = 'EVP_CipherInit'; {Do not localize}
  20453. fn_EVP_CipherInit_ex = 'EVP_CipherInit_ex'; {Do not localize}
  20454. fn_EVP_CipherUpdate = 'EVP_CipherUpdate'; {Do not localize}
  20455. fn_EVP_CipherFinal = 'EVP_CipherFinal'; {Do not localize}
  20456. fn_EVP_CipherFinal_ex = 'EVP_CipherFinal_ex'; {Do not localize}
  20457. fn_EVP_DigestSignInit = 'EVP_DigestSignInit'; {Do not localize}
  20458. fn_EVP_DigestSignFinal = 'EVP_DigestSignFinal'; {Do not localize}
  20459. fn_EVP_DigestVerifyInit = 'EVP_DigestVerifyInit'; {Do not localize}
  20460. fn_EVP_DigestVerifyFinal = 'EVP_DigestVerifyFinal'; {Do not localize}
  20461. fn_EVP_SignFinal = 'EVP_SignFinal'; {Do not localize}
  20462. fn_EVP_VerifyFinal = 'EVP_VerifyFinal'; {Do not localize}
  20463. fn_EVP_OpenInit = 'EVP_OpenInit'; {Do not localize}
  20464. fn_EVP_OpenFinal = 'EVP_OpenFinal'; {Do not localize}
  20465. fn_EVP_SealInit = 'EVP_SealInit'; {Do not localize}
  20466. fn_EVP_SealFinal = 'EVP_SealFinal'; {Do not localize}
  20467. fn_EVP_EncodeInit = 'EVP_EncodeInit'; {Do not localize}
  20468. fn_EVP_EncodeUpdate = 'EVP_EncodeUpdate'; {Do not localize}
  20469. fn_EVP_EncodeFinal = 'EVP_EncodeFinal'; {Do not localize}
  20470. fn_EVP_EncodeBlock = 'EVP_EncodeBlock'; {Do not localize}
  20471. fn_EVP_DecodeInit = 'EVP_DecodeInit'; {Do not localize}
  20472. fn_EVP_DecodeUpdate = 'EVP_DecodeUpdate'; {Do not localize}
  20473. fn_EVP_DecodeFinal = 'EVP_DecodeFinal'; {Do not localize}
  20474. fn_EVP_DecodeBlock = 'EVP_DecodeBlock'; {Do not localize}
  20475. fn_EVP_CIPHER_CTX_init = 'EVP_CIPHER_CTX_init'; {Do not localize}
  20476. fn_EVP_CIPHER_CTX_cleanup = 'EVP_CIPHER_CTX_cleanup'; {Do not localize}
  20477. fn_EVP_CIPHER_CTX_new = 'EVP_CIPHER_CTX_new'; {Do not localize}
  20478. fn_EVP_CIPHER_CTX_set_key_length = 'EVP_CIPHER_CTX_set_key_length'; {Do not localize}
  20479. fn_EVP_CIPHER_CTX_ctrl = 'EVP_CIPHER_CTX_ctrl'; {Do not localize}
  20480. fn_EVP_CIPHER_CTX_rand_key = 'EVP_CIPHER_CTX_rand_key'; {Do not localize}
  20481. fn_EVP_CIPHER_CTX_copy = 'EVP_CIPHER_CTX_copy'; {Do not localize}
  20482. fn_EVP_CIPHER_CTX_free = 'EVP_CIPHER_CTX_free'; {Do not localize}
  20483. fn_EVP_CIPHER_CTX_set_padding = 'EVP_CIPHER_CTX_set_padding'; {Do not localize}
  20484. {$IFNDEF OPENSSL_NO_BIO}
  20485. fn_BIO_f_md = 'BIO_f_md'; {Do not localize}
  20486. fn_BIO_f_base64 = 'BIO_f_base64'; {Do not localize}
  20487. fn_BIO_f_cipher = 'BIO_f_cipher'; {Do not localize}
  20488. fn_BIO_f_reliable = 'BIO_f_reliable'; {Do not localize}
  20489. fn_BIO_set_cipher = 'BIO_set_cipher'; {Do not localize}
  20490. {$ENDIF}
  20491. fn_EVP_md_null = 'EVP_md_null'; {Do not localize}
  20492. {$IFNDEF OPENSSL_NO_MD2}
  20493. fn_EVP_md2 = 'EVP_md2'; {Do not localize}
  20494. {$ENDIF}
  20495. {$IFNDEF OPENSSL_NO_MD4}
  20496. fn_EVP_md4 = 'EVP_md4'; {Do not localize}
  20497. {$ENDIF}
  20498. {$IFNDEF OPENSSL_NO_MD5}
  20499. fn_EVP_md5 = 'EVP_md5'; {Do not localize}
  20500. {$ENDIF}
  20501. {$IFNDEF OPENSSL_NO_SHA}
  20502. fn_EVP_sha = 'EVP_sha'; {Do not localize}
  20503. fn_EVP_sha1 = 'EVP_sha1'; {Do not localize}
  20504. fn_EVP_dss = 'EVP_dss'; {Do not localize}
  20505. fn_EVP_dss1 = 'EVP_dss1'; {Do not localize}
  20506. fn_EVP_ecdsa = 'EVP_ecdsa'; {Do not localize}
  20507. {$ENDIF}
  20508. {$IFNDEF OPENSSL_NO_SHA256}
  20509. fn_EVP_sha512 = 'EVP_sha512'; {Do not localize}
  20510. fn_EVP_sha384 = 'EVP_sha384'; {Do not localize}
  20511. {$ENDIF}
  20512. {$IFNDEF OPENSSL_NO_SHA512}
  20513. fn_EVP_sha256 = 'EVP_sha256'; {Do not localize}
  20514. fn_EVP_sha224 = 'EVP_sha224'; {Do not localize}
  20515. {$ENDIF}
  20516. {$IFNDEF OPENSSL_NO_MDC2}
  20517. fn_EVP_mdc2 = 'EVP_mdc2'; {Do not localize}
  20518. {$ENDIF}
  20519. {$IFNDEF OPENSSL_NO_RIPEMD}
  20520. fn_EVP_ripemd160 = 'EVP_ripemd160'; {Do not localize}
  20521. {$ENDIF}
  20522. {$ifndef OPENSSL_NO_WHIRLPOOL}
  20523. fn_EVP_whirlpool = 'EVP_whirlpool'; {Do not localize}
  20524. {$ENDIF}
  20525. fn_EVP_enc_null = 'EVP_enc_null'; {Do not localize}
  20526. {$IFNDEF OPENSSL_NO_DES}
  20527. fn_EVP_des_ecb = 'EVP_des_ecb'; {Do not localize}
  20528. fn_EVP_des_ede = 'EVP_des_ede'; {Do not localize}
  20529. fn_EVP_des_ede3 = 'EVP_des_ede3'; {Do not localize}
  20530. fn_EVP_des_cfb = 'EVP_des_cfb'; {Do not localize}
  20531. fn_EVP_des_ede_cfb = 'EVP_des_ede_cfb'; {Do not localize}
  20532. fn_EVP_des_ede3_cfb = 'EVP_des_ede3_cfb'; {Do not localize}
  20533. fn_EVP_des_ofb = 'EVP_des_ofb'; {Do not localize}
  20534. fn_EVP_des_ede_ofb = 'EVP_des_ede_ofb'; {Do not localize}
  20535. fn_EVP_des_ede3_ofb = 'EVP_des_ede3_ofb'; {Do not localize}
  20536. fn_EVP_des_cbc = 'EVP_des_cbc'; {Do not localize}
  20537. fn_EVP_des_ede_cbc = 'EVP_des_ede_cbc'; {Do not localize}
  20538. fn_EVP_des_ede3_cbc = 'EVP_des_ede3_cbc'; {Do not localize}
  20539. fn_EVP_desx_cbc = 'EVP_desx_cbc'; {Do not localize}
  20540. fn_EVP_des_ede3_cfb8 = 'EVP_des_ede3_cfb8'; {Do not localize}
  20541. fn_EVP_des_ede_ecb = 'EVP_des_ede_ecb'; {Do not localize}
  20542. fn_EVP_des_ede3_ecb = 'EVP_des_ede3_ecb';
  20543. fn_EVP_des_cfb64 = 'EVP_des_cfb64';
  20544. fn_EVP_des_cfb1 = 'EVP_des_cfb1';
  20545. fn_EVP_des_cfb8 = 'EVP_des_cfb8';
  20546. fn_EVP_des_ede_cfb64 = 'EVP_des_ede_cfb64';
  20547. //#if 0
  20548. fn_EVP_des_ede_cfb1 = 'EVP_des_ede_cfb1';
  20549. fn_EVP_des_ede_cfb8 = 'EVP_des_ede_cfb8';
  20550. //#endif
  20551. fn_EVP_des_ede3_cfb64 = 'EVP_des_ede3_cfb64';
  20552. fn_EVP_des_ede3_cfb1 = 'EVP_des_ede3_cfb1';
  20553. {$ENDIF}
  20554. {$IFNDEF OPENSSL_NO_RC4}
  20555. fn_EVP_rc4 = 'EVP_rc4'; {Do not localize}
  20556. fn_EVP_rc4_40 = 'EVP_rc4_40'; {Do not localize}
  20557. {$ifndef OPENSSL_NO_MD5}
  20558. fn_EVP_rc4_hmac_md5 = 'EVP_rc4_hmac_md5'; {Do not localize}
  20559. {$endif}
  20560. {$ENDIF}
  20561. {$IFNDEF OPENSSL_NO_IDEA}
  20562. fn_EVP_idea_ecb = 'EVP_idea_ecb'; {Do not localize}
  20563. fn_EVP_idea_cfb64 = 'EVP_idea_cfb64'; {Do not localize}
  20564. fn_EVP_idea_cfb = 'EVP_idea_cfb'; {Do not localize}
  20565. fn_EVP_idea_ofb = 'EVP_idea_ofb'; {Do not localize}
  20566. fn_EVP_idea_cbc = 'EVP_idea_cbc'; {Do not localize}
  20567. {$ENDIF}
  20568. {$IFNDEF OPENSSL_NO_RC2}
  20569. fn_EVP_rc2_ecb = 'EVP_rc2_ecb'; {Do not localize}
  20570. fn_EVP_rc2_cbc = 'EVP_rc2_cbc'; {Do not localize}
  20571. fn_EVP_rc2_40_cbc = 'EVP_rc2_40_cbc'; {Do not localize}
  20572. fn_EVP_rc2_64_cbc = 'EVP_rc2_64_cbc'; {Do not localize}
  20573. fn_EVP_rc2_cfb64 = 'EVP_rc2_cfb64'; {Do not localize}
  20574. fn_EVP_rc2_cfb = 'EVP_rc2_cfb'; {Do not localize}
  20575. fn_EVP_rc2_ofb = 'EVP_rc2_ofb'; {Do not localize}
  20576. {$ENDIF}
  20577. {$IFNDEF OPENSSL_NO_BF}
  20578. fn_EVP_bf_ecb = 'EVP_bf_ecb'; {Do not localize}
  20579. fn_EVP_bf_cbc = 'EVP_bf_cbc'; {Do not localize}
  20580. fn_EVP_bf_cfb = 'EVP_bf_cfb'; {Do not localize}
  20581. fn_EVP_bf_cfb64 = 'EVP_bf_cfb64'; {Do not localize}
  20582. fn_EVP_bf_ofb = 'EVP_bf_ofb'; {Do not localize}
  20583. {$ENDIF}
  20584. {$IFNDEF OPENSSL_NO_CAST}
  20585. fn_EVP_cast5_ecb = 'EVP_cast5_ecb'; {Do not localize}
  20586. fn_EVP_cast5_cbc = 'EVP_cast5_cbc'; {Do not localize}
  20587. fn_EVP_cast5_cfb = 'EVP_cast5_cfb'; {Do not localize}
  20588. fn_EVP_cast5_cfb64 = 'EVP_cast5_cfb64'; {Do not localize}
  20589. fn_EVP_cast5_ofb = 'EVP_cast5_ofb'; {Do not localize}
  20590. {$ENDIF}
  20591. {$IFNDEF OPENSSL_NO_RC5 }
  20592. fn_EVP_rc5_32_12_16_cbc = 'EVP_rc5_32_12_16_cbc'; {Do not localize}
  20593. fn_EVP_rc5_32_12_16_ecb = 'EVP_rc5_32_12_16_ecb'; {Do not localize}
  20594. fn_EVP_rc5_32_12_16_cfb = 'EVP_rc5_32_12_16_cfb'; {Do not localize}
  20595. fn_EVP_rc5_32_12_16_cfb64 = 'EVP_rc5_32_12_16_cfb64'; {Do not localize}
  20596. fn_EVP_rc5_32_12_16_ofb = 'EVP_rc5_32_12_16_ofb'; {Do not localize}
  20597. {$ENDIF}
  20598. {$IFNDEF OPENSSL_NO_AES}
  20599. fn_EVP_aes_128_ecb = 'EVP_aes_128_ecb'; {do not localize}
  20600. fn_EVP_aes_128_cbc = 'EVP_aes_128_cbc'; {do not localize}
  20601. fn_EVP_aes_128_cfb1 = 'EVP_aes_128_cfb1'; {do not localize}
  20602. fn_EVP_aes_128_cfb8 = 'EVP_aes_128_cfb8';{do not localize}
  20603. fn_EVP_aes_128_cfb128 = 'EVP_aes_128_cfb128'; {do not localize}
  20604. fn_EVP_aes_128_ofb = 'EVP_aes_128_ofb'; {do not localize}
  20605. fn_EVP_aes_128_ctr = 'EVP_aes_128_ctr'; {Do not localize}
  20606. fn_EVP_aes_128_gcm = 'EVP_aes_128_gcm'; {Do not localize}
  20607. fn_EVP_aes_128_ccm = 'EVP_aes_128_ccm'; {Do not localize}
  20608. fn_EVP_aes_128_xts = 'EVP_aes_128_xts'; {Do not localize}
  20609. fn_EVP_aes_192_ecb = 'EVP_aes_192_ecb'; {Do not localize}
  20610. fn_EVP_aes_192_cbc = 'EVP_aes_192_cbc'; {Do not localize}
  20611. fn_EVP_aes_192_cfb1 = 'EVP_aes_192_cfb1'; {Do not localize}
  20612. fn_EVP_aes_192_cfb8 = 'EVP_aes_192_cfb8'; {Do not localize}
  20613. fn_EVP_aes_192_cfb128 = 'EVP_aes_192_cfb128'; {Do not localize}
  20614. fn_EVP_aes_192_ctr = 'EVP_aes_192_ctr'; {Do not localize}
  20615. fn_EVP_aes_192_gcm = 'EVP_aes_192_gcm'; {Do not localize}
  20616. fn_EVP_aes_192_ccm = 'EVP_aes_192_ccm'; {Do not localize}
  20617. fn_EVP_aes_192_ofb = 'EVP_aes_192_ofb'; {Do not localize}
  20618. fn_EVP_aes_256_ecb = 'EVP_aes_256_ecb'; {Do not localize}
  20619. fn_EVP_aes_256_cbc = 'EVP_aes_256_cbc'; {Do not localize}
  20620. fn_EVP_aes_256_cfb1 = 'EVP_aes_256_cfb1'; {Do not localize}
  20621. fn_EVP_aes_256_cfb8 = 'EVP_aes_256_cfb8'; {Do not localize}
  20622. fn_EVP_aes_256_cfb128 = 'EVP_aes_256_cfb128'; {Do not localize}
  20623. fn_EVP_aes_256_ofb = 'EVP_aes_256_ofb'; {Do not localize}
  20624. fn_EVP_aes_256_ctr = 'EVP_aes_256_ctr'; {Do not localize}
  20625. fn_EVP_aes_256_gcm = 'EVP_aes_256_gcm'; {Do not localize}
  20626. fn_EVP_aes_256_ccm = 'EVP_aes_256_ccm'; {Do not localize}
  20627. fn_EVP_aes_256_xts = 'EVP_aes_256_xts'; {Do not localize}
  20628. {$ifndef OPENSSL_NO_SHA}
  20629. {$ifndef OPENSSL_NO_SHA1}
  20630. fn_EVP_aes_128_cbc_hmac_sha1 = 'EVP_aes_128_cbc_hmac_sha1'; {Do not localize}
  20631. fn_EVP_aes_256_cbc_hmac_sha1 = 'EVP_aes_256_cbc_hmac_sha1'; {do not localize}
  20632. {$endif}
  20633. {$endif}
  20634. {$endif}
  20635. {$IFNDEF OPENSSL_NO_CAMELLIA}
  20636. fn_EVP_camellia_128_ecb = 'EVP_camellia_128_ecb'; {Do not localize}
  20637. fn_EVP_camellia_128_cbc = 'EVP_camellia_128_cbc'; {Do not localize}
  20638. fn_EVP_camellia_128_cfb1 = 'EVP_camellia_128_cfb1'; {Do not localize}
  20639. fn_EVP_camellia_128_cfb8 = 'EVP_camellia_128_cfb8'; {Do not localize}
  20640. fn_EVP_camellia_128_cfb128 = 'EVP_camellia_128_cfb128'; {Do not localize}
  20641. fn_EVP_camellia_128_ofb = 'EVP_camellia_128_ofb'; {Do not localize}
  20642. fn_EVP_camellia_192_ecb = 'EVP_camellia_192_ecb'; {Do not localize}
  20643. fn_EVP_camellia_192_cbc = 'EVP_camellia_192_cbc'; {Do not localize}
  20644. fn_EVP_camellia_192_cfb1 = 'EVP_camellia_192_cfb1'; {Do not localize}
  20645. fn_EVP_camellia_192_cfb8 = 'EVP_camellia_192_cfb8'; {Do not localize}
  20646. fn_EVP_camellia_192_cfb128 = 'EVP_camellia_192_cfb128'; {Do not localize}
  20647. fn_EVP_camellia_192_ofb = 'EVP_camellia_192_ofb'; {Do not localize}
  20648. fn_EVP_camellia_256_ecb = 'EVP_camellia_256_ecb'; {Do not localize}
  20649. fn_EVP_camellia_256_cbc = 'EVP_camellia_256_cbc'; {Do not localize}
  20650. fn_EVP_camellia_256_cfb1 = 'EVP_camellia_256_cfb1'; {Do not localize}
  20651. fn_EVP_camellia_256_cfb8 = 'EVP_camellia_256_cfb8'; {Do not localize}
  20652. fn_EVP_camellia_256_cfb128 = 'EVP_camellia_256_cfb128'; {Do not localize}
  20653. fn_EVP_camellia_256_ofb = 'EVP_camellia_256_ofb'; {Do not localize}
  20654. {$ENDIF}
  20655. {$IFNDEF OPENSSL_NO_SEED}
  20656. fn_EVP_seed_ecb = 'EVP_seed_ecb'; {Do not localize}
  20657. fn_EVP_seed_cbc = 'EVP_seed_cbc'; {Do not localize}
  20658. fn_EVP_seed_cfb128 = 'EVP_seed_cfb128'; {Do not localize}
  20659. fn_EVP_seed_ofb = 'EVP_seed_ofb'; {Do not localize}
  20660. {$ENDIF}
  20661. fn_OPENSSL_add_all_algorithms_noconf = 'OPENSSL_add_all_algorithms_noconf'; {Do not localize}
  20662. { fn_OPENSSL_add_all_algorithms_conf = 'OPENSSL_add_all_algorithms_conf'; }{Do not localize}
  20663. fn_OpenSSL_add_all_algorithms = 'OpenSSL_add_all_algorithms';
  20664. fn_OpenSSL_add_all_ciphers = 'OpenSSL_add_all_ciphers'; {Do not localize}
  20665. fn_OpenSSL_add_all_digests = 'OpenSSL_add_all_digests'; {Do not localize}
  20666. fn_EVP_add_cipher = 'EVP_add_cipher'; {Do not localize}
  20667. fn_EVP_add_digest = 'EVP_add_digest'; {Do not localize}
  20668. fn_EVP_CIPHER_do_all = 'EVP_CIPHER_do_all'; {Do not localize}
  20669. fn_EVP_CIPHER_do_all_sorted = 'EVP_CIPHER_do_all_sorted'; {do not localize}
  20670. fn_EVP_MD_do_all = 'EVP_MD_do_all'; {Do not localize}
  20671. fn_EVP_MD_do_all_sorted = 'EVP_MD_do_all_sorted'; {Do not localize}
  20672. fn_EVP_get_cipherbyname = 'EVP_get_cipherbyname'; {Do not localize}
  20673. fn_EVP_get_digestbyname = 'EVP_get_digestbyname'; {Do not localize}
  20674. fn_EVP_PKEY_decrypt_old = 'EVP_PKEY_decrypt_old'; {Do not localize}
  20675. fn_EVP_PKEY_encrypt_old = 'EVP_PKEY_encrypt_old'; {Do not localize}
  20676. fn_EVP_cleanup = 'EVP_cleanup'; {Do not localize}
  20677. fn_EVP_PKEY_decrypt = 'EVP_PKEY_decrypt'; {Do not localize}
  20678. fn_EVP_PKEY_encrypt = 'EVP_PKEY_encrypt'; {Do not localize}
  20679. fn_EVP_PKEY_type = 'EVP_PKEY_type'; {Do not localize}
  20680. fn_EVP_PKEY_id = 'EVP_PKEY_id'; {Do not localize}
  20681. fn_EVP_PKEY_bits = 'EVP_PKEY_bits'; {Do not localize}
  20682. fn_EVP_PKEY_base_id = 'EVP_PKEY_base_id'; {Do not localize}
  20683. fn_EVP_PKEY_set_type = 'EVP_PKEY_set_type'; {Do not localize}
  20684. fn_EVP_PKEY_set_type_str = 'EVP_PKEY_set_type_str'; {Do not localize}
  20685. fn_EVP_PKEY_size = 'EVP_PKEY_size'; {Do not localize}
  20686. fn_EVP_PKEY_assign = 'EVP_PKEY_assign'; {Do not localize}
  20687. fn_EVP_PKEY_get0 = 'EVP_PKEY_get0'; {Do not localize}
  20688. {$IFNDEF OPENSSL_NO_RSA}
  20689. fn_EVP_PKEY_set1_RSA = 'EVP_PKEY_set1_RSA'; {Do not localize}
  20690. fn_EVP_PKEY_get1_RSA = 'EVP_PKEY_get1_RSA'; {Do not localize}
  20691. {$ENDIF}
  20692. {$IFNDEF OPENSSL_NO_DSA}
  20693. fn_EVP_PKEY_set1_DSA = 'EVP_PKEY_set1_DSA'; {Do not localize}
  20694. fn_EVP_PKEY_get1_DSA = 'EVP_PKEY_get1_DSA'; {Do not localize}
  20695. {$ENDIF}
  20696. {$IFNDEF OPENSSL_NO_DH}
  20697. fn_EVP_PKEY_set1_DH = 'EVP_PKEY_set1_DH'; {Do not localize}
  20698. fn_EVP_PKEY_get1_DH = 'EVP_PKEY_get1_DH'; {Do not localize}
  20699. {$ENDIF}
  20700. {$IFNDEF OPENSSL_NO_EC}
  20701. fn_EVP_PKEY_set1_EC_KEY = 'EVP_PKEY_set1_EC_KEY'; {Do not localize}
  20702. fn_EVP_PKEY_get1_EC_KEY = 'EVP_PKEY_get1_EC_KEY'; {Do not localize}
  20703. {$ENDIF}
  20704. fn_EVP_PKEY_new = 'EVP_PKEY_new'; {Do not localize}
  20705. fn_EVP_PKEY_free = 'EVP_PKEY_free'; {Do not localize}
  20706. fn_d2i_PublicKey = 'd2i_PublicKey'; {Do not localize}
  20707. fn_i2d_PublicKey = 'i2d_PublicKey'; {Do not localize}
  20708. fn_d2i_PrivateKey = 'd2i_PrivateKey'; {Do not localize}
  20709. fn_d2i_AutoPrivateKey = 'd2i_AutoPrivateKey'; {Do not localize}
  20710. fn_i2d_PrivateKey = 'i2d_PrivateKey'; {Do not localize}
  20711. fn_EVP_PKEY_copy_parameters = 'EVP_PKEY_copy_parameters'; {Do not localize}
  20712. fn_EVP_PKEY_missing_parameters = 'EVP_PKEY_missing_parameters'; {Do not localize}
  20713. fn_EVP_PKEY_save_parameters = 'EVP_PKEY_save_parameters'; {Do not localize}
  20714. fn_EVP_PKEY_cmp_parameters = 'EVP_PKEY_cmp_parameters'; {Do not localize}
  20715. fn_EVP_PKEY_cmp = 'EVP_PKEY_cmp'; {Do not localize}
  20716. fn_EVP_PKEY_print_public = 'EVP_PKEY_print_public'; {Do not localize}
  20717. fn_EVP_PKEY_print_private = 'EVP_PKEY_print_private'; {Do not localize}
  20718. fn_EVP_PKEY_print_params = 'EVP_PKEY_print_params'; {Do not localize}
  20719. fn_EVP_PKEY_get_default_digest_nid = 'EVP_PKEY_get_default_digest_nid'; {Do not localize}
  20720. fn_EVP_CIPHER_type = 'EVP_CIPHER_type'; {Do not localize}
  20721. fn_EVP_CIPHER_param_to_asn1 = 'EVP_CIPHER_param_to_asn1'; {Do not localize}
  20722. fn_EVP_CIPHER_asn1_to_param = 'EVP_CIPHER_asn1_to_param'; {Do not localize}
  20723. fn_EVP_CIPHER_set_asn1_iv = 'EVP_CIPHER_set_asn1_iv'; {Do not localize}
  20724. fn_EVP_CIPHER_get_asn1_iv = 'EVP_CIPHER_get_asn1_iv'; {Do not localize}
  20725. fn_PKCS5_PBE_keyivgen = 'PKCS5_PBE_keyivgen'; {Do not localize}
  20726. fn_PKCS5_PBKDF2_HMAC = 'PKCS5_PBKDF2_HMAC'; {Do not lozalize}
  20727. fn_PKCS5_PBKDF2_HMAC_SHA1 = 'PKCS5_PBKDF2_HMAC_SHA1'; {Do not localize}
  20728. fn_PKCS5_v2_PBE_keyivgen = 'PKCS5_v2_PBE_keyivgen'; {Do not localize}
  20729. fn_PKCS5_PBE_add = 'PKCS5_PBE_add'; {Do not localize}
  20730. fn_EVP_PBE_CipherInit = 'EVP_PBE_CipherInit'; {Do not localize}
  20731. fn_EVP_PBE_alg_add = 'EVP_PBE_alg_add'; {Do not localize}
  20732. fn_EVP_PBE_alg_add_type = 'EVP_PBE_alg_add_type'; {Do not localize}
  20733. fn_EVP_PBE_find = 'EVP_PBE_find'; {Do not localize}
  20734. fn_EVP_PBE_cleanup = 'EVP_PBE_cleanup'; {Do not localize}
  20735. fn_EVP_PKEY_asn1_get_count = 'EVP_PKEY_asn1_get_count';
  20736. fn_EVP_PKEY_asn1_get0 = 'EVP_PKEY_asn1_get0';
  20737. fn_EVP_PKEY_asn1_find = 'EVP_PKEY_asn1_find';
  20738. fn_EVP_PKEY_asn1_find_str = 'EVP_PKEY_asn1_find_str';
  20739. fn_EVP_PKEY_asn1_add0 = 'EVP_PKEY_asn1_add0';
  20740. fn_EVP_PKEY_asn1_add_alias = 'EVP_PKEY_asn1_add_alias';
  20741. fn_EVP_PKEY_asn1_get0_info = 'EVP_PKEY_asn1_get0_info';
  20742. fn_EVP_PKEY_get0_asn1 = 'EVP_PKEY_get0_asn1';
  20743. fn_EVP_PKEY_asn1_new = 'EVP_PKEY_asn1_new';
  20744. fn_EVP_PKEY_asn1_copy = 'EVP_PKEY_asn1_copy';
  20745. fn_EVP_PKEY_asn1_free = 'EVP_PKEY_asn1_free';
  20746. fn_EVP_PKEY_asn1_set_public = 'EVP_PKEY_asn1_set_public';
  20747. fn_EVP_PKEY_asn1_set_private = 'EVP_PKEY_asn1_set_private';
  20748. fn_EVP_PKEY_asn1_set_param = 'EVP_PKEY_asn1_set_param';
  20749. fn_EVP_PKEY_asn1_set_free = 'EVP_PKEY_asn1_set_free';
  20750. fn_EVP_PKEY_asn1_set_ctrl = 'EVP_PKEY_asn1_set_ctrl';
  20751. fn_EVP_PKEY_meth_find = 'EVP_PKEY_meth_find';
  20752. fn_EVP_PKEY_meth_new = 'EVP_PKEY_meth_new';
  20753. fn_EVP_PKEY_meth_get0_info = 'EVP_PKEY_meth_get0_info';
  20754. fn_EVP_PKEY_meth_copy = 'EVP_PKEY_meth_copy';
  20755. fn_EVP_PKEY_meth_free = 'EVP_PKEY_meth_free';
  20756. fn_EVP_PKEY_meth_add0 = 'EVP_PKEY_meth_add0';
  20757. fn_EVP_PKEY_CTX_new = 'EVP_PKEY_CTX_new';
  20758. fn_EVP_PKEY_CTX_new_id = 'EVP_PKEY_CTX_new_id';
  20759. fn_EVP_PKEY_CTX_dup = 'EVP_PKEY_CTX_dup';
  20760. fn_EVP_PKEY_CTX_free = 'EVP_PKEY_CTX_free';
  20761. fn_EVP_PKEY_CTX_ctrl = 'EVP_PKEY_CTX_ctrl';
  20762. fn_EVP_PKEY_CTX_ctrl_str = 'EVP_PKEY_CTX_ctrl_str';
  20763. fn_EVP_PKEY_CTX_get_operation = 'EVP_PKEY_CTX_get_operation';
  20764. fn_EVP_PKEY_CTX_set0_keygen_info = 'EVP_PKEY_CTX_set0_keygen_info';
  20765. fn_EVP_PKEY_new_mac_key = 'EVP_PKEY_new_mac_key';
  20766. fn_EVP_PKEY_CTX_set_data = 'EVP_PKEY_CTX_set_data';
  20767. fn_EVP_PKEY_CTX_get_data = 'EVP_PKEY_CTX_get_data';
  20768. fn_EVP_PKEY_CTX_get0_pkey = 'EVP_PKEY_CTX_get0_pkey';
  20769. fn_EVP_PKEY_CTX_get0_peerkey = 'EVP_PKEY_CTX_get0_peerkey';
  20770. fn_EVP_PKEY_CTX_set_app_data = 'EVP_PKEY_CTX_set_app_data';
  20771. fn_EVP_PKEY_CTX_get_app_data = 'EVP_PKEY_CTX_get_app_data';
  20772. fn_EVP_PKEY_sign_init = 'EVP_PKEY_sign_init';
  20773. fn_EVP_PKEY_sign = 'EVP_PKEY_sign';
  20774. fn_EVP_PKEY_verify_init = 'EVP_PKEY_verify_init';
  20775. fn_EVP_PKEY_verify = 'EVP_PKEY_verify';
  20776. fn_EVP_PKEY_verify_recover_init = 'EVP_PKEY_verify_recover_init';
  20777. fn_EVP_PKEY_verify_recover = 'EVP_PKEY_verify_recover';
  20778. fn_EVP_PKEY_encrypt_init = 'EVP_PKEY_encrypt_init';
  20779. fn_EVP_PKEY_decrypt_init = 'EVP_PKEY_decrypt_init';
  20780. fn_EVP_PKEY_derive_init = 'EVP_PKEY_derive_init';
  20781. fn_EVP_PKEY_derive_set_peer = 'EVP_PKEY_derive_set_peer';
  20782. fn_EVP_PKEY_derive = 'EVP_PKEY_derive';
  20783. fn_EVP_PKEY_paramgen_init = 'EVP_PKEY_paramgen_init';
  20784. fn_EVP_PKEY_paramgen = 'EVP_PKEY_paramgen';
  20785. fn_EVP_PKEY_keygen_init = 'EVP_PKEY_keygen_init';
  20786. fn_EVP_PKEY_keygen = 'EVP_PKEY_keygen';
  20787. fn_EVP_PKEY_CTX_set_cb = 'EVP_PKEY_CTX_set_cb';
  20788. fn_EVP_PKEY_CTX_get_cb = 'EVP_PKEY_CTX_get_cb';
  20789. fn_EVP_PKEY_CTX_get_keygen_info = 'EVP_PKEY_CTX_get_keygen_info';
  20790. fn_EVP_PKEY_meth_set_init = 'EVP_PKEY_meth_set_init';
  20791. fn_EVP_PKEY_meth_set_copy = 'EVP_PKEY_meth_set_copy';
  20792. fn_EVP_PKEY_meth_set_cleanup = 'EVP_PKEY_meth_set_cleanup';
  20793. fn_EVP_PKEY_meth_set_paramgen = 'EVP_PKEY_meth_set_paramgen';
  20794. fn_EVP_PKEY_meth_set_keygen = 'EVP_PKEY_meth_set_keygen';
  20795. fn_EVP_PKEY_meth_set_sign = 'EVP_PKEY_meth_set_sign';
  20796. fn_EVP_PKEY_meth_set_verify = 'EVP_PKEY_meth_set_verify';
  20797. fn_EVP_PKEY_meth_set_verify_recover = 'EVP_PKEY_meth_set_verify_recover';
  20798. fn_EVP_PKEY_meth_set_signctx = 'EVP_PKEY_meth_set_signctx';
  20799. fn_EVP_PKEY_meth_set_verifyctx = 'EVP_PKEY_meth_set_verifyctx';
  20800. fn_EVP_PKEY_meth_set_encrypt = 'EVP_PKEY_meth_set_encrypt';
  20801. fn_EVP_PKEY_meth_set_decrypt = 'EVP_PKEY_meth_set_decrypt';
  20802. fn_EVP_PKEY_meth_set_derive = 'EVP_PKEY_meth_set_derive';
  20803. fn_EVP_PKEY_meth_set_ctrl = 'EVP_PKEY_meth_set_ctrl';
  20804. {$IFDEF OPENSSL_FIPS}
  20805. {$IFNDEF OPENSSL_NO_ENGINE}
  20806. fn_EVP_MD_set_engine_callbacks = 'EVP_MD_set_engine_callbacks'; {Do not localize}
  20807. fn_int_EVP_MD_init_engine_callbacks = 'int_EVP_MD_init_engine_callbacks'; {Do not localize}
  20808. fn_int_EVP_CIPHER_set_engine_callbacks = 'int_EVP_CIPHER_set_engine_callbacks'; {Do not localize}
  20809. fn_int_EVP_CIPHER_init_engine_callbacks = 'int_EVP_CIPHER_init_engine_callbacks'; {Do not localize}
  20810. {$ENDIF}
  20811. {$ENDIF}
  20812. fn_EVP_add_alg_module = 'EVP_add_alg_module'; {Do not localize}
  20813. {CH fn_ERR_load_EVP_strings = 'ERR_load_EVP_strings'; } {Do not localize}
  20814. {$IFDEF OPENSSL_FIPS}
  20815. fn_FIPS_mode_set = 'FIPS_mode_set'; {Do not localize}
  20816. fn_FIPS_mode = 'FIPS_mode'; {Do not localize}
  20817. {CH fn_FIPS_rand_check = 'FIPS_rand_check'; } {Do not localize}
  20818. {CH fn_FIPS_selftest_failed = 'FIPS_selftest_failed'; } {Do not localize}
  20819. fn_FIPS_selftest_check = 'FIPS_selftest_check'; {Do not localize}
  20820. {CH fn_FIPS_corrupt_sha1 = 'FIPS_corrupt_sha1'; } {Do not localize}
  20821. {CH fn_FIPS_selftest_sha1 = 'FIPS_selftest_sha1'; } {Do not localize}
  20822. {CH fb_FIPS_corrupt_aes = 'FIPS_corrupt_aes'; } {Do not localize}
  20823. {CH fn_FIPS_selftest_aes = 'FIPS_selftest_aes'; } {Do not localize}
  20824. {CH fn_FIPS_corrupt_des = 'FIPS_corrupt_des'; } {Do not localize}
  20825. {CH fn_FIPS_selftest_des = 'FIPS_selftest_des'; } {Do not localize}
  20826. {CH fn_FIPS_corrupt_rsa = 'FIPS_corrupt_rsa'; } {Do not localize}
  20827. {CH fn_FIPS_corrupt_rsa_keygen = 'FIPS_corrupt_rsa_keygen'; } {Do not localize}
  20828. {CH fn_FIPS_selftest_rsa = 'FIPS_selftest_rsa'; } {Do not localize}
  20829. {CH fn_FIPS_corrupt_dsa = 'FIPS_corrupt_dsa'; } {Do not localize}
  20830. {CH fn_FIPS_corrupt_dsa_keygen = 'FIPS_corrupt_dsa_keygen'; } {Do not localize}
  20831. {CH fn_FIPS_selftest_dsa = 'FIPS_selftest_dsa'; } {Do not localize}
  20832. {CH fn_FIPS_corrupt_rng = 'FIPS_corrupt_rng'; } {Do not localize}
  20833. {CH fn_FIPS_rng_stick = 'FIPS_rng_stick'; } {Do not localize}
  20834. {CH fn_FIPS_selftest_rng = 'FIPS_selftest_rng'; } {Do not localize}
  20835. {CH fn_FIPS_selftest_hmac = 'FIPS_selftest_hmac'; } {Do not localize}
  20836. {CH fn_fips_pkey_signature_test = 'fips_pkey_signature_test'; } {Do not localize}
  20837. {CH fn_fips_cipher_test = 'fips_cipher_test'; } {Do not localize}
  20838. //fips_rand.h
  20839. {CH fn_FIPS_rand_set_key = 'FIPS_rand_set_key'; } {Do not localize}
  20840. {CH fn_FIPS_rand_seed = 'FIPS_rand_seed; } {Do not localize}
  20841. {CH fn_FIPS_rand_bytes = 'FIPS_rand_bytes'; } {Do not localize}
  20842. {CH fn_FIPS_rand_test_mode = 'FIPS_rand_test_mode'; } {Do not localize}
  20843. {CH fn_FIPS_rand_reset = 'FIPS_rand_reset'; } {Do not localize}
  20844. {CH fn_FIPS_rand_set_dt = 'FIPS_rand_set_dt'; } {Do not localize}
  20845. {CH fn_FIPS_rand_status = 'FIPS_rand_status'; } {Do not localize}
  20846. {CH fn_FIPS_rand_method = 'FIPS_rand_method'; } {Do not localize}
  20847. {$ENDIF}
  20848. {CH fn_sk_X509_ALGOR_new = 'sk_X509_ALGOR_new'; } {Do not localize}
  20849. {CH fn_sk_X509_ALGOR_new_null = 'sk_X509_ALGOR_new_null'; } {Do not localize}
  20850. {CH fn_sk_X509_ALGOR_free = 'sk_X509_ALGOR_free'; } {Do not localize}
  20851. {CH fn_sk_X509_ALGOR_num = 'sk_X509_ALGOR_num'; } {Do not localize}
  20852. {CH fn_sk_X509_ALGOR_value = 'sk_X509_ALGOR_value'; } {Do not localize}
  20853. {CH fn_sk_X509_ALGOR_set = 'sk_X509_ALGOR_set'; } {Do not localize}
  20854. {CH fn_sk_X509_ALGOR_zero = 'sk_X509_ALGOR_zero'; } {Do not localize}
  20855. {CH fn_sk_X509_ALGOR_push = 'sk_X509_ALGOR_push'; } {Do not localize}
  20856. {CH fn_sk_X509_ALGOR_unshift = 'sk_X509_ALGOR_unshift'; } {Do not localize}
  20857. {CH fn_sk_X509_ALGOR_find = 'sk_X509_ALGOR_find'; } {Do not localize}
  20858. {CH fn_sk_X509_ALGOR_delete = 'sk_X509_ALGOR_delete'; } {Do not localize}
  20859. {CH fn_sk_X509_ALGOR_delete_ptr = 'sk_X509_ALGOR_delete_ptr'; } {Do not localize}
  20860. {CH fn_sk_X509_ALGOR_insert = 'sk_X509_ALGOR_insert'; } {Do not localize}
  20861. {CH fn_sk_X509_ALGOR_dup = 'sk_X509_ALGOR_dup'; } {Do not localize}
  20862. {CH fn_sk_X509_ALGOR_pop_free = 'sk_X509_ALGOR_pop_free'; } {Do not localize}
  20863. {CH fn_sk_X509_ALGOR_shift = 'sk_X509_ALGOR_shift'; } {Do not localize}
  20864. {CH fn_sk_X509_ALGOR_pop = 'sk_X509_ALGOR_pop'; } {Do not localize}
  20865. {CH fn_sk_X509_ALGOR_sort = 'sk_X509_ALGOR_sort'; } {Do not localize}
  20866. {CH fn_i2d_ASN1_SET_OF_X509_ALGOR = 'i2d_ASN1_SET_OF_X509_ALGOR'; } {Do not localize}
  20867. {CH fn_d2i_ASN1_SET_OF_X509_ALGOR = 'd2i_ASN1_SET_OF_X509_ALGOR'; } {Do not localize}
  20868. {CH fn_sk_X509_NAME_ENTRY_new = 'sk_X509_NAME_ENTRY_new'; } {Do not localize}
  20869. {CH fn_sk_X509_NAME_ENTRY_new_null = 'sk_X509_NAME_ENTRY_new_null'; } {Do not localize}
  20870. {CH fn_sk_X509_NAME_ENTRY_free = 'sk_X509_NAME_ENTRY_free'; } {Do not localize}
  20871. {CH fn_sk_X509_NAME_ENTRY_num = 'sk_X509_NAME_ENTRY_num'; } {Do not localize}
  20872. {CH fn_sk_X509_NAME_ENTRY_value = 'sk_X509_NAME_ENTRY_value'; } {Do not localize}
  20873. {CH fn_sk_X509_NAME_ENTRY_set = 'sk_X509_NAME_ENTRY_set'; } {Do not localize}
  20874. {CH fn_sk_X509_NAME_ENTRY_zero = 'sk_X509_NAME_ENTRY_zero'; } {Do not localize}
  20875. {CH fn_sk_X509_NAME_ENTRY_push = 'sk_X509_NAME_ENTRY_push'; } {Do not localize}
  20876. {CH fn_sk_X509_NAME_ENTRY_unshift = 'sk_X509_NAME_ENTRY_unshift'; } {Do not localize}
  20877. {CH fn_sk_X509_NAME_ENTRY_find = 'sk_X509_NAME_ENTRY_find'; } {Do not localize}
  20878. {CH fn_sk_X509_NAME_ENTRY_delete = 'sk_X509_NAME_ENTRY_delete'; } {Do not localize}
  20879. {CH fn_sk_X509_NAME_ENTRY_delete_ptr = 'sk_X509_NAME_ENTRY_delete_ptr'; } {Do not localize}
  20880. {CH fn_sk_X509_NAME_ENTRY_insert = 'sk_X509_NAME_ENTRY_insert'; } {Do not localize}
  20881. {CH fn_sk_X509_NAME_ENTRY_dup = 'sk_X509_NAME_ENTRY_dup'; } {Do not localize}
  20882. {CH fn_sk_X509_NAME_ENTRY_pop_free = 'sk_X509_NAME_ENTRY_pop_free'; } {Do not localize}
  20883. {CH fn_sk_X509_NAME_ENTRY_shift = 'sk_X509_NAME_ENTRY_shift'; } {Do not localize}
  20884. {CH fn_sk_X509_NAME_ENTRY_pop = 'sk_X509_NAME_ENTRY_pop'; } {Do not localize}
  20885. {CH fn_sk_X509_NAME_ENTRY_sort = 'sk_X509_NAME_ENTRY_sort'; } {Do not localize}
  20886. {CH fn_i2d_ASN1_SET_OF_X509_NAME_ENTRY = 'i2d_ASN1_SET_OF_X509_NAME_ENTRY'; } {Do not localize}
  20887. {CH fn_d2i_ASN1_SET_OF_X509_NAME_ENTRY = 'd2i_ASN1_SET_OF_X509_NAME_ENTRY'; } {Do not localize}
  20888. {CH fn_sk_X509_NAME_new = 'sk_X509_NAME_new'; } {Do not localize}
  20889. {CH fn_sk_X509_NAME_new_null = 'sk_X509_NAME_new_null'; } {Do not localize}
  20890. {CH fn_sk_X509_NAME_free = 'sk_X509_NAME_free'; } {Do not localize}
  20891. {CH fn_sk_X509_NAME_num = 'sk_X509_NAME_num'; } {Do not localize}
  20892. {CH fn_sk_X509_NAME_value = 'sk_X509_NAME_value'; } {Do not localize}
  20893. {CH fn_sk_X509_NAME_set = 'sk_X509_NAME_set'; } {Do not localize}
  20894. {CH fn_sk_X509_NAME_zero = 'sk_X509_NAME_zero'; } {Do not localize}
  20895. {CH fn_sk_X509_NAME_push = 'sk_X509_NAME_push'; } {Do not localize}
  20896. {CH fn_sk_X509_NAME_unshift = 'sk_X509_NAME_unshift'; } {Do not localize}
  20897. {CH fn_sk_X509_NAME_find = 'sk_X509_NAME_find'; } {Do not localize}
  20898. {CH fn_sk_X509_NAME_delete = 'sk_X509_NAME_delete'; } {Do not localize}
  20899. {CH fn_sk_X509_NAME_delete_ptr = 'sk_X509_NAME_delete_ptr'; } {Do not localize}
  20900. {CH fn_sk_X509_NAME_insert = 'sk_X509_NAME_insert'; } {Do not localize}
  20901. {CH fn_sk_X509_NAME_dup = 'sk_X509_NAME_dup'; } {Do not localize}
  20902. {CH fn_sk_X509_NAME_pop_free = 'sk_X509_NAME_pop_free'; } {Do not localize}
  20903. {CH fn_sk_X509_NAME_shift = 'sk_X509_NAME_shift'; } {Do not localize}
  20904. {CH fn_sk_X509_NAME_pop = 'sk_X509_NAME_pop'; } {Do not localize}
  20905. {CH fn_sk_X509_NAME_sort = 'sk_X509_NAME_sort'; } {Do not localize}
  20906. {CH fn_sk_X509_EXTENSION_new = 'sk_X509_EXTENSION_new'; } {Do not localize}
  20907. {CH fn_sk_X509_EXTENSION_new_null = 'sk_X509_EXTENSION_new_null'; } {Do not localize}
  20908. {CH fn_sk_X509_EXTENSION_free = 'sk_X509_EXTENSION_free'; } {Do not localize}
  20909. {CH fn_sk_X509_EXTENSION_num = 'sk_X509_EXTENSION_num'; } {Do not localize}
  20910. {CH fn_sk_X509_EXTENSION_value = 'sk_X509_EXTENSION_value'; } {Do not localize}
  20911. {CH fn_sk_X509_EXTENSION_set = 'sk_X509_EXTENSION_set'; } {Do not localize}
  20912. {CH fn_sk_X509_EXTENSION_zero = 'sk_X509_EXTENSION_zero'; } {Do not localize}
  20913. {CH fn_sk_X509_EXTENSION_push = 'sk_X509_EXTENSION_push'; } {Do not localize}
  20914. {CH fn_sk_X509_EXTENSION_unshift = 'sk_X509_EXTENSION_unshift'; } {Do not localize}
  20915. {CH fn_sk_X509_EXTENSION_find = 'sk_X509_EXTENSION_find'; } {Do not localize}
  20916. {CH fn_sk_X509_EXTENSION_delete = 'sk_X509_EXTENSION_delete'; } {Do not localize}
  20917. {CH fn_sk_X509_EXTENSION_delete_ptr = 'sk_X509_EXTENSION_delete_ptr'; } {Do not localize}
  20918. {CH fn_sk_X509_EXTENSION_insert = 'sk_X509_EXTENSION_insert'; } {Do not localize}
  20919. {CH fn_sk_X509_EXTENSION_dup = 'sk_X509_EXTENSION_dup'; } {Do not localize}
  20920. {CH fn_sk_X509_EXTENSION_pop_free = 'sk_X509_EXTENSION_pop_free'; } {Do not localize}
  20921. {CH fn_sk_X509_EXTENSION_shift = 'sk_X509_EXTENSION_shift'; } {Do not localize}
  20922. {CH fn_sk_X509_EXTENSION_pop = 'sk_X509_EXTENSION_pop'; } {Do not localize}
  20923. {CH fn_sk_X509_EXTENSION_sort = 'sk_X509_EXTENSION_sort'; } {Do not localize}
  20924. {CH fn_i2d_ASN1_SET_OF_X509_EXTENSION = 'i2d_ASN1_SET_OF_X509_EXTENSION'; } {Do not localize}
  20925. {CH fn_d2i_ASN1_SET_OF_X509_EXTENSION = 'd2i_ASN1_SET_OF_X509_EXTENSION'; } {Do not localize}
  20926. {CH fn_sk_X509_ATTRIBUTE_new = 'sk_X509_ATTRIBUTE_new'; } {Do not localize}
  20927. {CH fn_sk_X509_ATTRIBUTE_new_null = 'sk_X509_ATTRIBUTE_new_null'; } {Do not localize}
  20928. {CH fn_sk_X509_ATTRIBUTE_free = 'sk_X509_ATTRIBUTE_free'; } {Do not localize}
  20929. {CH fn_sk_X509_ATTRIBUTE_num = 'sk_X509_ATTRIBUTE_num'; } {Do not localize}
  20930. {CH fn_sk_X509_ATTRIBUTE_value = 'sk_X509_ATTRIBUTE_value'; } {Do not localize}
  20931. {CH fn_sk_X509_ATTRIBUTE_set = 'sk_X509_ATTRIBUTE_set'; } {Do not localize}
  20932. {CH fn_sk_X509_ATTRIBUTE_zero = 'sk_X509_ATTRIBUTE_zero'; } {Do not localize}
  20933. {CH fn_sk_X509_ATTRIBUTE_push = 'sk_X509_ATTRIBUTE_push'; } {Do not localize}
  20934. {CH fn_sk_X509_ATTRIBUTE_unshift = 'sk_X509_ATTRIBUTE_unshift'; } {Do not localize}
  20935. {CH fn_sk_X509_ATTRIBUTE_find = 'sk_X509_ATTRIBUTE_find'; } {Do not localize}
  20936. {CH fn_sk_X509_ATTRIBUTE_delete = 'sk_X509_ATTRIBUTE_delete'; } {Do not localize}
  20937. {CH fn_sk_X509_ATTRIBUTE_delete_ptr = 'sk_X509_ATTRIBUTE_delete_ptr'; } {Do not localize}
  20938. {CH fn_sk_X509_ATTRIBUTE_insert = 'sk_X509_ATTRIBUTE_insert'; } {Do not localize}
  20939. {CH fn_sk_X509_ATTRIBUTE_dup = 'sk_X509_ATTRIBUTE_dup'; } {Do not localize}
  20940. {CH fn_sk_X509_ATTRIBUTE_pop_free = 'sk_X509_ATTRIBUTE_pop_free'; } {Do not localize}
  20941. {CH fn_sk_X509_ATTRIBUTE_shift = 'sk_X509_ATTRIBUTE_shift'; } {Do not localize}
  20942. {CH fn_sk_X509_ATTRIBUTE_pop = 'sk_X509_ATTRIBUTE_pop'; } {Do not localize}
  20943. {CH fn_sk_X509_ATTRIBUTE_sort = 'sk_X509_ATTRIBUTE_sort'; } {Do not localize}
  20944. {CH fn_i2d_ASN1_SET_OF_X509_ATTRIBUTE = 'i2d_ASN1_SET_OF_X509_ATTRIBUTE'; } {Do not localize}
  20945. {CH fn_d2i_ASN1_SET_OF_X509_ATTRIBUTE = 'd2i_ASN1_SET_OF_X509_ATTRIBUTE'; } {Do not localize}
  20946. {CH fn_sk_X509_new = 'sk_X509_new'; } {Do not localize}
  20947. {CH fn_sk_X509_new_null = 'sk_X509_new_null'; } {Do not localize}
  20948. {CH fn_sk_X509_free = 'sk_X509_free'; } {Do not localize}
  20949. {CH fn_sk_X509_num = 'sk_X509_num'; } {Do not localize}
  20950. {CH fn_sk_X509_value = 'sk_X509_value'; } {Do not localize}
  20951. {CH fn_sk_X509_set = 'sk_X509_set'; } {Do not localize}
  20952. {CH fn_sk_X509_zero = 'sk_X509_zero'; } {Do not localize}
  20953. {CH fn_sk_X509_push = 'sk_X509_push'; } {Do not localize}
  20954. {CH fn_sk_X509_unshift = 'sk_X509_unshift'; } {Do not localize}
  20955. {CH fn_sk_X509_find = 'sk_X509_find'; } {Do not localize}
  20956. {CH fn_sk_X509_delete = 'sk_X509_delete'; } {Do not localize}
  20957. {CH fn_sk_X509_delete_ptr = 'sk_X509_delete_ptr'; } {Do not localize}
  20958. {CH fn_sk_X509_insert = 'sk_X509_insert'; } {Do not localize}
  20959. {CH fn_sk_X509_dup = 'sk_X509_dup'; } {Do not localize}
  20960. {CH fn_sk_X509_pop_free = 'sk_X509_pop_free'; } {Do not localize}
  20961. {CH fn_sk_X509_shift = 'sk_X509_shift'; } {Do not localize}
  20962. {CH fn_sk_X509_pop = 'sk_X509_pop'; } {Do not localize}
  20963. {CH fn_sk_X509_sort = 'sk_X509_sort'; } {Do not localize}
  20964. {CH fn_i2d_ASN1_SET_OF_X509 = 'i2d_ASN1_SET_OF_X509'; } {Do not localize}
  20965. {CH fn_d2i_ASN1_SET_OF_X509 = 'd2i_ASN1_SET_OF_X509'; } {Do not localize}
  20966. {CH fn_sk_X509_REVOKED_new = 'sk_X509_REVOKED_new'; } {Do not localize}
  20967. {CH fn_sk_X509_REVOKED_new_null = 'sk_X509_REVOKED_new_null'; } {Do not localize}
  20968. {CH fn_sk_X509_REVOKED_free = 'sk_X509_REVOKED_free'; } {Do not localize}
  20969. {CH fn_sk_X509_REVOKED_num = 'sk_X509_REVOKED_num'; } {Do not localize}
  20970. {CH fn_sk_X509_REVOKED_value = 'sk_X509_REVOKED_value'; } {Do not localize}
  20971. {CH fn_sk_X509_REVOKED_set = 'sk_X509_REVOKED_set'; } {Do not localize}
  20972. {CH fn_sk_X509_REVOKED_zero = 'sk_X509_REVOKED_zero'; } {Do not localize}
  20973. {CH fn_sk_X509_REVOKED_push = 'sk_X509_REVOKED_push'; } {Do not localize}
  20974. {CH fn_sk_X509_REVOKED_unshift = 'sk_X509_REVOKED_unshift'; } {Do not localize}
  20975. {CH fn_sk_X509_REVOKED_find = 'sk_X509_REVOKED_find'; } {Do not localize}
  20976. {CH fn_sk_X509_REVOKED_delete = 'sk_X509_REVOKED_delete'; } {Do not localize}
  20977. {CH fn_sk_X509_REVOKED_delete_ptr = 'sk_X509_REVOKED_delete_ptr'; } {Do not localize}
  20978. {CH fn_sk_X509_REVOKED_insert = 'sk_X509_REVOKED_insert'; } {Do not localize}
  20979. {CH fn_sk_X509_REVOKED_dup = 'sk_X509_REVOKED_dup'; } {Do not localize}
  20980. {CH fn_sk_X509_REVOKED_pop_free = 'sk_X509_REVOKED_pop_free'; } {Do not localize}
  20981. {CH fn_sk_X509_REVOKED_shift = 'sk_X509_REVOKED_shift'; } {Do not localize}
  20982. {CH fn_sk_X509_REVOKED_pop = 'sk_X509_REVOKED_pop'; } {Do not localize}
  20983. {CH fn_sk_X509_REVOKED_sort = 'sk_X509_REVOKED_sort'; } {Do not localize}
  20984. {CH fn_i2d_ASN1_SET_OF_X509_REVOKED = 'i2d_ASN1_SET_OF_X509_REVOKED'; } {Do not localize}
  20985. {CH fn_d2i_ASN1_SET_OF_X509_REVOKED = 'd2i_ASN1_SET_OF_X509_REVOKED'; } {Do not localize}
  20986. {CH fn_sk_X509_CRL_new = 'sk_X509_CRL_new'; } {Do not localize}
  20987. {CH fn_sk_X509_CRL_new_null = 'sk_X509_CRL_new_null'; } {Do not localize}
  20988. {CH fn_sk_X509_CRL_free = 'sk_X509_CRL_free'; } {Do not localize}
  20989. {CH fn_sk_X509_CRL_num = 'sk_X509_CRL_num'; } {Do not localize}
  20990. {CH fn_sk_X509_CRL_value = 'sk_X509_CRL_value'; } {Do not localize}
  20991. {CH fn_sk_X509_CRL_set = 'sk_X509_CRL_set'; } {Do not localize}
  20992. {CH fn_sk_X509_CRL_zero = 'sk_X509_CRL_zero'; } {Do not localize}
  20993. {CH fn_sk_X509_CRL_push = 'sk_X509_CRL_push'; } {Do not localize}
  20994. {CH fn_sk_X509_CRL_unshift = 'sk_X509_CRL_unshift'; } {Do not localize}
  20995. {CH fn_sk_X509_CRL_find = 'sk_X509_CRL_find'; } {Do not localize}
  20996. {CH fn_sk_X509_CRL_delete = 'sk_X509_CRL_delete'; } {Do not localize}
  20997. {CH fn_sk_X509_CRL_delete_ptr = 'sk_X509_CRL_delete_ptr'; } {Do not localize}
  20998. {CH fn_sk_X509_CRL_insert = 'sk_X509_CRL_insert'; } {Do not localize}
  20999. {CH fn_sk_X509_CRL_dup = 'sk_X509_CRL_dup'; } {Do not localize}
  21000. {CH fn_sk_X509_CRL_pop_free = 'sk_X509_CRL_pop_free'; } {Do not localize}
  21001. {CH fn_sk_X509_CRL_shift = 'sk_X509_CRL_shift'; } {Do not localize}
  21002. {CH fn_sk_X509_CRL_pop = 'sk_X509_CRL_pop'; } {Do not localize}
  21003. {CH fn_sk_X509_CRL_sort = 'sk_X509_CRL_sort'; } {Do not localize}
  21004. {CH fn_i2d_ASN1_SET_OF_X509_CRL = 'i2d_ASN1_SET_OF_X509_CRL'; } {Do not localize}
  21005. {CH fn_d2i_ASN1_SET_OF_X509_CRL = 'd2i_ASN1_SET_OF_X509_CRL'; } {Do not localize}
  21006. {CH fn_sk_X509_INFO_new = 'sk_X509_INFO_new'; } {Do not localize}
  21007. {CH fn_sk_X509_INFO_new_null = 'sk_X509_INFO_new_null'; } {Do not localize}
  21008. {CH fn_sk_X509_INFO_free = 'sk_X509_INFO_free'; } {Do not localize}
  21009. {CH fn_sk_X509_INFO_num = 'sk_X509_INFO_num'; } {Do not localize}
  21010. {CH fn_sk_X509_INFO_value = 'sk_X509_INFO_value'; } {Do not localize}
  21011. {CH fn_sk_X509_INFO_set = 'sk_X509_INFO_set'; } {Do not localize}
  21012. {CH fn_sk_X509_INFO_zero = 'sk_X509_INFO_zero'; } {Do not localize}
  21013. {CH fn_sk_X509_INFO_push = 'sk_X509_INFO_push'; } {Do not localize}
  21014. {CH fn_sk_X509_INFO_unshift = 'sk_X509_INFO_unshift'; } {Do not localize}
  21015. {CH fn_sk_X509_INFO_find = 'sk_X509_INFO_find'; } {Do not localize}
  21016. {CH fn_sk_X509_INFO_delete = 'sk_X509_INFO_delete'; } {Do not localize}
  21017. {CH fn_sk_X509_INFO_delete_ptr = 'sk_X509_INFO_delete_ptr'; } {Do not localize}
  21018. {CH fn_sk_X509_INFO_insert = 'sk_X509_INFO_insert'; } {Do not localize}
  21019. {CH fn_sk_X509_INFO_dup = 'sk_X509_INFO_dup'; } {Do not localize}
  21020. {CH fn_sk_X509_INFO_pop_free = 'sk_X509_INFO_pop_free'; } {Do not localize}
  21021. {CH fn_sk_X509_INFO_shift = 'sk_X509_INFO_shift'; } {Do not localize}
  21022. {CH fn_sk_X509_INFO_pop = 'sk_X509_INFO_pop'; } {Do not localize}
  21023. {CH fn_sk_X509_INFO_sort = 'sk_X509_INFO_sort'; } {Do not localize}
  21024. {CH fn_sk_X509_LOOKUP_new = 'sk_X509_LOOKUP_new'; } {Do not localize}
  21025. {CH fn_sk_X509_LOOKUP_new_null = 'sk_X509_LOOKUP_new_null'; } {Do not localize}
  21026. {CH fn_sk_X509_LOOKUP_free = 'sk_X509_LOOKUP_free'; } {Do not localize}
  21027. {CH fn_sk_X509_LOOKUP_num = 'sk_X509_LOOKUP_num'; } {Do not localize}
  21028. {CH fn_sk_X509_LOOKUP_value = 'sk_X509_LOOKUP_value'; } {Do not localize}
  21029. {CH fn_sk_X509_LOOKUP_set = 'sk_X509_LOOKUP_set'; } {Do not localize}
  21030. {CH fn_sk_X509_LOOKUP_zero = 'sk_X509_LOOKUP_zero'; } {Do not localize}
  21031. {CH fn_sk_X509_LOOKUP_push = 'sk_X509_LOOKUP_push'; } {Do not localize}
  21032. {CH fn_sk_X509_LOOKUP_unshift = 'sk_X509_LOOKUP_unshift'; } {Do not localize}
  21033. {CH fn_sk_X509_LOOKUP_find = 'sk_X509_LOOKUP_find'; } {Do not localize}
  21034. {CH fn_sk_X509_LOOKUP_delete = 'sk_X509_LOOKUP_delete'; } {Do not localize}
  21035. {CH fn_sk_X509_LOOKUP_delete_ptr = 'sk_X509_LOOKUP_delete_ptr'; } {Do not localize}
  21036. {CH fn_sk_X509_LOOKUP_insert = 'sk_X509_LOOKUP_insert'; } {Do not localize}
  21037. {CH fn_sk_X509_LOOKUP_dup = 'sk_X509_LOOKUP_dup'; } {Do not localize}
  21038. {CH fn_sk_X509_LOOKUP_pop_free = 'sk_X509_LOOKUP_pop_free'; } {Do not localize}
  21039. {CH fn_sk_X509_LOOKUP_shift = 'sk_X509_LOOKUP_shift'; } {Do not localize}
  21040. {CH fn_sk_X509_LOOKUP_pop = 'sk_X509_LOOKUP_pop'; } {Do not localize}
  21041. {CH fn_sk_X509_LOOKUP_sort = 'sk_X509_LOOKUP_sort'; } {Do not localize}
  21042. {CH fn_X509_OBJECT_retrieve_by_subject = 'X509_OBJECT_retrieve_by_subject'; } {Do not localize}
  21043. {CH fn_X509_OBJECT_up_ref_count = 'X509_OBJECT_up_ref_count'; } {Do not localize}
  21044. {CH fn_X509_OBJECT_free_contents = 'X509_OBJECT_free_contents'; } {Do not localize}
  21045. {CH fn_X509_STORE_new = 'X509_STORE_new'; } {Do not localize}
  21046. {CH fn_X509_STORE_free = 'X509_STORE_free'; } {Do not localize}
  21047. {CH fn_X509_STORE_CTX_init = 'X509_STORE_CTX_init'; } {Do not localize}
  21048. {CH fn_X509_STORE_CTX_cleanup = 'X509_STORE_CTX_cleanup'; } {Do not localize}
  21049. fn_X509_STORE_add_lookup = 'X509_STORE_add_lookup'; {Do not localize}
  21050. {CH fn_X509_LOOKUP_hash_dir = 'X509_LOOKUP_hash_dir'; } {Do not localize}
  21051. {CH fn_X509_LOOKUP_file = 'X509_LOOKUP_file'; } {Do not localize}
  21052. fn_X509_STORE_add_cert = 'X509_STORE_add_cert'; {Do not localize}
  21053. fn_X509_STORE_add_crl = 'X509_STORE_add_crl'; {Do not localize}
  21054. {CH fn_X509_STORE_get_by_subject = 'X509_STORE_get_by_subject'; } {Do not localize}
  21055. fn_X509_LOOKUP_ctrl = 'X509_LOOKUP_ctrl'; {Do not localize}
  21056. {CH fn_X509_load_cert_file = 'X509_load_cert_file'; } {Do not localize}
  21057. {CH fn_X509_load_crl_file = 'X509_load_crl_file'; } {Do not localize}
  21058. {CH fn_X509_LOOKUP_new = 'X509_LOOKUP_new'; } {Do not localize}
  21059. {CH fn_X509_LOOKUP_free = 'X509_LOOKUP_free'; } {Do not localize}
  21060. {CH fn_X509_LOOKUP_init = 'X509_LOOKUP_init'; } {Do not localize}
  21061. {CH fn_X509_LOOKUP_by_subject = 'X509_LOOKUP_by_subject'; } {Do not localize}
  21062. {CH fn_X509_LOOKUP_by_issuer_serial = 'X509_LOOKUP_by_issuer_serial'; } {Do not localize}
  21063. {CH fn_X509_LOOKUP_by_fingerprint = 'X509_LOOKUP_by_fingerprint'; } {Do not localize}
  21064. {CH fn_X509_LOOKUP_by_alias = 'X509_LOOKUP_by_alias'; } {Do not localize}
  21065. {CH fn_X509_LOOKUP_shutdown = 'X509_LOOKUP_shutdown'; } {Do not localize}
  21066. fn_X509_STORE_load_locations = 'X509_STORE_load_locations'; {Do not localize}
  21067. {CH fn_X509_STORE_set_default_paths = 'X509_STORE_set_default_paths'; } {Do not localize}
  21068. {CH fn_X509_STORE_CTX_get_ex_new_index = 'X509_STORE_CTX_get_ex_new_index'; } {Do not localize}
  21069. {CH fn_X509_STORE_CTX_set_ex_data = 'X509_STORE_CTX_set_ex_data'; } {Do not localize}
  21070. fn_X509_STORE_CTX_get_ex_data = 'X509_STORE_CTX_get_ex_data'; {Do not localize}
  21071. fn_X509_STORE_CTX_get_error = 'X509_STORE_CTX_get_error'; {Do not localize}
  21072. fn_X509_STORE_CTX_set_error = 'X509_STORE_CTX_set_error'; {Do not localize}
  21073. fn_X509_STORE_CTX_get_error_depth = 'X509_STORE_CTX_get_error_depth'; {Do not localize}
  21074. fn_X509_STORE_CTX_get_current_cert = 'X509_STORE_CTX_get_current_cert'; {Do not localize}
  21075. {CH fn_X509_STORE_CTX_get_chain = 'X509_STORE_CTX_get_chain'; } {Do not localize}
  21076. {CH fn_X509_STORE_CTX_set_cert = 'X509_STORE_CTX_set_cert'; } {Do not localize}
  21077. {CH fn_X509_STORE_CTX_set_chain = 'X509_STORE_CTX_set_chain'; } {Do not localize}
  21078. {CH fn_sk_PKCS7_SIGNER_INFO_new = 'sk_PKCS7_SIGNER_INFO_new'; } {Do not localize}
  21079. {CH fn_sk_PKCS7_SIGNER_INFO_new_null = 'sk_PKCS7_SIGNER_INFO_new_null'; } {Do not localize}
  21080. {CH fn_sk_PKCS7_SIGNER_INFO_free = 'sk_PKCS7_SIGNER_INFO_free'; } {Do not localize}
  21081. {CH fn_sk_PKCS7_SIGNER_INFO_num = 'sk_PKCS7_SIGNER_INFO_num'; } {Do not localize}
  21082. {CH fn_sk_PKCS7_SIGNER_INFO_value = 'sk_PKCS7_SIGNER_INFO_value'; } {Do not localize}
  21083. {CH fn_sk_PKCS7_SIGNER_INFO_set = 'sk_PKCS7_SIGNER_INFO_set'; } {Do not localize}
  21084. {CH fn_sk_PKCS7_SIGNER_INFO_zero = 'sk_PKCS7_SIGNER_INFO_zero'; } {Do not localize}
  21085. {CH fn_sk_PKCS7_SIGNER_INFO_push = 'sk_PKCS7_SIGNER_INFO_push'; } {Do not localize}
  21086. {CH fn_sk_PKCS7_SIGNER_INFO_unshift = 'sk_PKCS7_SIGNER_INFO_unshift'; } {Do not localize}
  21087. {CH fn_sk_PKCS7_SIGNER_INFO_find = 'sk_PKCS7_SIGNER_INFO_find'; } {Do not localize}
  21088. {CH fn_sk_PKCS7_SIGNER_INFO_delete = 'sk_PKCS7_SIGNER_INFO_delete'; } {Do not localize}
  21089. {CH fn_sk_PKCS7_SIGNER_INFO_delete_ptr = 'sk_PKCS7_SIGNER_INFO_delete_ptr'; } {Do not localize}
  21090. {CH fn_sk_PKCS7_SIGNER_INFO_insert = 'sk_PKCS7_SIGNER_INFO_insert'; } {Do not localize}
  21091. {CH fn_sk_PKCS7_SIGNER_INFO_dup = 'sk_PKCS7_SIGNER_INFO_dup'; } {Do not localize}
  21092. {CH fn_sk_PKCS7_SIGNER_INFO_pop_free = 'sk_PKCS7_SIGNER_INFO_pop_free'; } {Do not localize}
  21093. {CH fn_sk_PKCS7_SIGNER_INFO_shift = 'sk_PKCS7_SIGNER_INFO_shift'; } {Do not localize}
  21094. {CH fn_sk_PKCS7_SIGNER_INFO_pop = 'sk_PKCS7_SIGNER_INFO_pop'; } {Do not localize}
  21095. {CH fn_sk_PKCS7_SIGNER_INFO_sort = 'sk_PKCS7_SIGNER_INFO_sort'; } {Do not localize}
  21096. {CH fn_i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO = 'i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO'; } {Do not localize}
  21097. {CH fn_d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO = 'd2i_ASN1_SET_OF_PKCS7_SIGNER_INFO'; } {Do not localize}
  21098. {CH fn_sk_PKCS7_RECIP_INFO_new = 'sk_PKCS7_RECIP_INFO_new'; } {Do not localize}
  21099. {CH fn_sk_PKCS7_RECIP_INFO_new_null = 'sk_PKCS7_RECIP_INFO_new_null'; } {Do not localize}
  21100. {CH fn_sk_PKCS7_RECIP_INFO_free = 'sk_PKCS7_RECIP_INFO_free'; } {Do not localize}
  21101. {CH fn_sk_PKCS7_RECIP_INFO_num = 'sk_PKCS7_RECIP_INFO_num'; } {Do not localize}
  21102. {CH fn_sk_PKCS7_RECIP_INFO_value = 'sk_PKCS7_RECIP_INFO_value'; } {Do not localize}
  21103. {CH fn_sk_PKCS7_RECIP_INFO_set = 'sk_PKCS7_RECIP_INFO_set'; } {Do not localize}
  21104. {CH fn_sk_PKCS7_RECIP_INFO_zero = 'sk_PKCS7_RECIP_INFO_zero'; } {Do not localize}
  21105. {CH fn_sk_PKCS7_RECIP_INFO_push = 'sk_PKCS7_RECIP_INFO_push'; } {Do not localize}
  21106. {CH fn_sk_PKCS7_RECIP_INFO_unshift = 'sk_PKCS7_RECIP_INFO_unshift'; } {Do not localize}
  21107. {CH fn_sk_PKCS7_RECIP_INFO_find = 'sk_PKCS7_RECIP_INFO_find'; } {Do not localize}
  21108. {CH fn_sk_PKCS7_RECIP_INFO_delete = 'sk_PKCS7_RECIP_INFO_delete'; } {Do not localize}
  21109. {CH fn_sk_PKCS7_RECIP_INFO_delete_ptr = 'sk_PKCS7_RECIP_INFO_delete_ptr'; } {Do not localize}
  21110. {CH fn_sk_PKCS7_RECIP_INFO_insert = 'sk_PKCS7_RECIP_INFO_insert'; } {Do not localize}
  21111. {CH fn_sk_PKCS7_RECIP_INFO_dup = 'sk_PKCS7_RECIP_INFO_dup'; } {Do not localize}
  21112. {CH fn_sk_PKCS7_RECIP_INFO_pop_free = 'sk_PKCS7_RECIP_INFO_pop_free'; } {Do not localize}
  21113. {CH fn_sk_PKCS7_RECIP_INFO_shift = 'sk_PKCS7_RECIP_INFO_shift'; } {Do not localize}
  21114. {CH fn_sk_PKCS7_RECIP_INFO_pop = 'sk_PKCS7_RECIP_INFO_pop'; } {Do not localize}
  21115. {CH fn_sk_PKCS7_RECIP_INFO_sort = 'sk_PKCS7_RECIP_INFO_sort'; } {Do not localize}
  21116. {CH fn_i2d_ASN1_SET_OF_PKCS7_RECIP_INFO = 'i2d_ASN1_SET_OF_PKCS7_RECIP_INFO'; } {Do not localize}
  21117. {CH fn_d2i_ASN1_SET_OF_PKCS7_RECIP_INFO = 'd2i_ASN1_SET_OF_PKCS7_RECIP_INFO'; } {Do not localize}
  21118. {CH fn_PKCS7_ISSUER_AND_SERIAL_new = 'PKCS7_ISSUER_AND_SERIAL_new'; } {Do not localize}
  21119. {CH fn_PKCS7_ISSUER_AND_SERIAL_free = 'PKCS7_ISSUER_AND_SERIAL_free'; } {Do not localize}
  21120. {CH fn_i2d_PKCS7_ISSUER_AND_SERIAL = 'i2d_PKCS7_ISSUER_AND_SERIAL'; } {Do not localize}
  21121. {CH fn_d2i_PKCS7_ISSUER_AND_SERIAL = 'd2i_PKCS7_ISSUER_AND_SERIAL'; } {Do not localize}
  21122. {CH fn_PKCS7_ISSUER_AND_SERIAL_digest = 'PKCS7_ISSUER_AND_SERIAL_digest'; } {Do not localize}
  21123. {$IFNDEF OPENSSL_NO_FP_API}
  21124. {CH fn_d2i_PKCS7_fp = 'd2i_PKCS7_fp'; } {Do not localize}
  21125. {CH fn_i2d_PKCS7_fp = 'i2d_PKCS7_fp'; } {Do not localize}
  21126. {$ENDIF}
  21127. {CH fn_PKCS7_dup = 'PKCS7_dup'; } {Do not localize}
  21128. {CH fn_d2i_PKCS7_bio = 'd2i_PKCS7_bio'; } {Do not localize}
  21129. {CH fn_i2d_PKCS7_bio = 'i2d_PKCS7_bio'; } {Do not localize}
  21130. {CH fn_PKCS7_SIGNER_INFO_new = 'PKCS7_SIGNER_INFO_new'; } {Do not localize}
  21131. {CH fn_PKCS7_SIGNER_INFO_free = 'PKCS7_SIGNER_INFO_free'; } {Do not localize}
  21132. {CH fn_i2d_PKCS7_SIGNER_INFO = 'i2d_PKCS7_SIGNER_INFO'; } {Do not localize}
  21133. {CH fn_d2i_PKCS7_SIGNER_INFO = 'd2i_PKCS7_SIGNER_INFO'; } {Do not localize}
  21134. {CH fn_PKCS7_RECIP_INFO_new = 'PKCS7_RECIP_INFO_new'; } {Do not localize}
  21135. {CH fn_PKCS7_RECIP_INFO_free = 'PKCS7_RECIP_INFO_free'; } {Do not localize}
  21136. {CH fn_i2d_PKCS7_RECIP_INFO = 'i2d_PKCS7_RECIP_INFO'; } {Do not localize}
  21137. {CH fn_d2i_PKCS7_RECIP_INFO = 'd2i_PKCS7_RECIP_INFO'; } {Do not localize}
  21138. {CH fn_PKCS7_SIGNED_new = 'PKCS7_SIGNED_new'; } {Do not localize}
  21139. {CH fn_PKCS7_SIGNED_free = 'PKCS7_SIGNED_free'; } {Do not localize}
  21140. {CH fn_i2d_PKCS7_SIGNED = 'i2d_PKCS7_SIGNED'; } {Do not localize}
  21141. {CH fn_d2i_PKCS7_SIGNED = 'd2i_PKCS7_SIGNED'; } {Do not localize}
  21142. {CH fn_PKCS7_ENC_CONTENT_new = 'PKCS7_ENC_CONTENT_new'; } {Do not localize}
  21143. {CH fn_PKCS7_ENC_CONTENT_free = 'PKCS7_ENC_CONTENT_free'; } {Do not localize}
  21144. {CH fn_i2d_PKCS7_ENC_CONTENT = 'i2d_PKCS7_ENC_CONTENT'; } {Do not localize}
  21145. {CH fn_d2i_PKCS7_ENC_CONTENT = 'd2i_PKCS7_ENC_CONTENT'; } {Do not localize}
  21146. {CH fn_PKCS7_ENVELOPE_new = 'PKCS7_ENVELOPE_new'; } {Do not localize}
  21147. {CH fn_PKCS7_ENVELOPE_free = 'PKCS7_ENVELOPE_free'; } {Do not localize}
  21148. {CH fn_i2d_PKCS7_ENVELOPE = 'i2d_PKCS7_ENVELOPE'; } {Do not localize}
  21149. {CH fn_d2i_PKCS7_ENVELOPE = 'd2i_PKCS7_ENVELOPE'; } {Do not localize}
  21150. {CH fn_PKCS7_SIGN_ENVELOPE_new = 'PKCS7_SIGN_ENVELOPE_new'; } {Do not localize}
  21151. {CH fn_PKCS7_SIGN_ENVELOPE_free = 'PKCS7_SIGN_ENVELOPE_free'; } {Do not localize}
  21152. {CH fn_i2d_PKCS7_SIGN_ENVELOPE = 'i2d_PKCS7_SIGN_ENVELOPE'; } {Do not localize}
  21153. {CH fn_d2i_PKCS7_SIGN_ENVELOPE = 'd2i_PKCS7_SIGN_ENVELOPE'; } {Do not localize}
  21154. {CH fn_PKCS7_DIGEST_new = 'PKCS7_DIGEST_new'; } {Do not localize}
  21155. {CH fn_PKCS7_DIGEST_free = 'PKCS7_DIGEST_free'; } {Do not localize}
  21156. {CH fn_i2d_PKCS7_DIGEST = 'i2d_PKCS7_DIGEST'; } {Do not localize}
  21157. {CH fn_d2i_PKCS7_DIGEST = 'd2i_PKCS7_DIGEST'; } {Do not localize}
  21158. {CH fn_PKCS7_ENCRYPT_new = 'PKCS7_ENCRYPT_new'; } {Do not localize}
  21159. {CH fn_PKCS7_ENCRYPT_free = 'PKCS7_ENCRYPT_free'; } {Do not localize}
  21160. {CH fn_i2d_PKCS7_ENCRYPT = 'i2d_PKCS7_ENCRYPT'; } {Do not localize}
  21161. {CH fn_d2i_PKCS7_ENCRYPT = 'd2i_PKCS7_ENCRYPT'; } {Do not localize}
  21162. {CH fn_PKCS7_new = 'PKCS7_new'; } {Do not localize}
  21163. {CH fn_PKCS7_free = 'PKCS7_free'; } {Do not localize}
  21164. {CH fn_PKCS7_content_free = 'PKCS7_content_free'; } {Do not localize}
  21165. fn_i2d_PKCS7 = 'i2d_PKCS7'; {Do not localize}
  21166. fn_d2i_PKCS7 = 'd2i_PKCS7'; {Do not localize}
  21167. {CH fn_ERR_load_PKCS7_strings = 'ERR_load_PKCS7_strings'; } {Do not localize}
  21168. {CH fn_PKCS7_ctrl = 'PKCS7_ctrl'; } {Do not localize}
  21169. {CH fn_PKCS7_set_type = 'PKCS7_set_type'; } {Do not localize}
  21170. {CH fn_PKCS7_set_content = 'PKCS7_set_content'; } {Do not localize}
  21171. {CH fn_PKCS7_SIGNER_INFO_set = 'PKCS7_SIGNER_INFO_set'; } {Do not localize}
  21172. {CH fn_PKCS7_add_signer = 'PKCS7_add_signer'; } {Do not localize}
  21173. {CH fn_PKCS7_add_certificate = 'PKCS7_add_certificate'; } {Do not localize}
  21174. {CH fn_PKCS7_add_crl = 'PKCS7_add_crl'; } {Do not localize}
  21175. {CH fn_PKCS7_content_new = 'PKCS7_content_new'; } {Do not localize}
  21176. {CH fn_PKCS7_dataVerify = 'PKCS7_dataVerify'; } {Do not localize}
  21177. {CH fn_PKCS7_signatureVerify = 'PKCS7_signatureVerify'; } {Do not localize}
  21178. {CH fn_PKCS7_dataInit = 'PKCS7_dataInit'; } {Do not localize}
  21179. {CH fn_PKCS7_dataFinal = 'PKCS7_dataFinal'; } {Do not localize}
  21180. {CH fn_PKCS7_dataDecode = 'PKCS7_dataDecode'; } {Do not localize}
  21181. {CH fn_PKCS7_add_signature = 'PKCS7_add_signature'; } {Do not localize}
  21182. {CH fn_PKCS7_cert_from_signer_info = 'PKCS7_cert_from_signer_info'; } {Do not localize}
  21183. {CH fn_PKCS7_get_signer_info = 'PKCS7_get_signer_info'; } {Do not localize}
  21184. {CH fn_PKCS7_add_recipient = 'PKCS7_add_recipient'; } {Do not localize}
  21185. {CH fn_PKCS7_add_recipient_info = 'PKCS7_add_recipient_info'; } {Do not localize}
  21186. {CH fn_PKCS7_RECIP_INFO_set = 'PKCS7_RECIP_INFO_set'; } {Do not localize}
  21187. {CH fn_PKCS7_set_cipher = 'PKCS7_set_cipher'; } {Do not localize}
  21188. {CH fn_PKCS7_get_issuer_and_serial = 'PKCS7_get_issuer_and_serial'; } {Do not localize}
  21189. {CH fn_PKCS7_digest_from_attributes = 'PKCS7_digest_from_attributes'; } {Do not localize}
  21190. {CH fn_PKCS7_add_signed_attribute = 'PKCS7_add_signed_attribute'; } {Do not localize}
  21191. {CH fn_PKCS7_add_attribute = 'PKCS7_add_attribute'; } {Do not localize}
  21192. {CH fn_PKCS7_get_attribute = 'PKCS7_get_attribute'; } {Do not localize}
  21193. {CH fn_PKCS7_get_signed_attribute = 'PKCS7_get_signed_attribute'; } {Do not localize}
  21194. {CH fn_PKCS7_set_signed_attributes = 'PKCS7_set_signed_attributes'; } {Do not localize}
  21195. {CH fn_PKCS7_set_attributes = 'PKCS7_set_attributes'; } {Do not localize}
  21196. {CH fn_X509_verify_cert_error_string = 'X509_verify_cert_error_string'; } {Do not localize}
  21197. fn_X509_verify = 'X509_verify'; {Do not localize}
  21198. {CH fn_X509_REQ_verify = 'X509_REQ_verify'; } {Do not localize}
  21199. {CH fn_X509_CRL_verify = 'X509_CRL_verify'; } {Do not localize}
  21200. {CH fn_NETSCAPE_SPKI_verify = 'NETSCAPE_SPKI_verify'; } {Do not localize}
  21201. fn_X509_sign = 'X509_sign'; {Do not localize}
  21202. fn_X509_REQ_sign = 'X509_REQ_sign'; {Do not localize}
  21203. fn_X509V3_set_ctx = 'X509V3_set_ctx'; {Do not localize}
  21204. fn_X509V3_EXT_conf_nid = 'X509V3_EXT_conf_nid'; {Do not localize}
  21205. fn_X509_REQ_add_extensions = 'X509_REQ_add_extensions'; {Do not localize}
  21206. {CH fn_X509_CRL_sign = 'X509_CRL_sign'; } {Do not localize}
  21207. {CH fn_NETSCAPE_SPKI_sign = 'NETSCAPE_SPKI_sign'; } {Do not localize}
  21208. fn_X509_digest = 'X509_digest'; {Do not localize}
  21209. {CH fn_X509_NAME_digest = 'X509_NAME_digest'; } {Do not localize}
  21210. {CH fn_d2i_X509_fp = 'd2i_X509_fp'; } {Do not localize}
  21211. {CH fn_i2d_X509_fp = 'i2d_X509_fp'; } {Do not localize}
  21212. {CH fn_d2i_X509_CRL_fp = 'd2i_X509_CRL_fp'; } {Do not localize}
  21213. {CH fn_i2d_X509_CRL_fp = 'i2d_X509_CRL_fp'; } {Do not localize}
  21214. {CH fn_d2i_X509_REQ_fp = 'd2i_X509_REQ_fp'; } {Do not localize}
  21215. {CH fn_i2d_X509_REQ_fp = 'i2d_X509_REQ_fp'; } {Do not localize}
  21216. {$IFNDEF OPENSSL_NO_RSA}
  21217. {CH fn_d2i_RSAPrivateKey_fp = 'd2i_RSAPrivateKey_fp'; } {Do not localize}
  21218. {CH fn_i2d_RSAPrivateKey_fp = 'i2d_RSAPrivateKey_fp'; } {Do not localize}
  21219. {CH fn_d2i_RSAPublicKey_fp = 'd2i_RSAPublicKey_fp'; } {Do not localize}
  21220. {CH fn_i2d_RSAPublicKey_fp = 'i2d_RSAPublicKey_fp'; } {Do not localize}
  21221. {CH fn_d2i_RSA_PUBKEY_fp = 'd2i_RSA_PUBKEY_fp'; } {Do not localize}
  21222. {CH fn_i2d_RSA_PUBKEY_fp = 'i2d_RSA_PUBKEY_fp'; } {Do not localize}
  21223. {$ENDIF}
  21224. {$IFNDEF OPENSSL_NO_DSA}
  21225. {CH fn_d2i_DSA_PUBKEY_fp = 'd2i_DSA_PUBKEY_fp'; } {Do not localize}
  21226. {CH fn_i2d_DSA_PUBKEY_fp = 'i2d_DSA_PUBKEY_fp'; } {Do not localize}
  21227. {CH fn_d2i_DSAPrivateKey_fp = 'd2i_DSAPrivateKey_fp'; } {Do not localize}
  21228. {CH fn_i2d_DSAPrivateKey_fp = 'i2d_DSAPrivateKey_fp'; } {Do not localize}
  21229. {$ENDIF}
  21230. {$IFNDEF OPENSSL_NO_EC}
  21231. {CH fn_d2i_EC_PUBKEY_fp = 'd2i_EC_PUBKEY_fp'; } {Do not localize}
  21232. {CH fn_i2d_EC_PUBKEY_fp = 'i2d_EC_PUBKEY_fp'; } {Do not localize}
  21233. {CH fn_d2i_ECPrivateKey_fp = 'd2i_ECPrivateKey_fp'; } {Do not localize}
  21234. {CH fn_i2d_ECPrivateKey_fp = 'i2d_ECPrivateKey_fp'; } {Do not localize}
  21235. {$ENDIF}
  21236. {CH fn_d2i_PKCS8_fp = 'd2i_PKCS8_fp'; } {Do not localize}
  21237. {CH fn_i2d_PKCS8_fp = 'i2d_PKCS8_fp'; } {Do not localize}
  21238. {CH fn_d2i_PKCS8_PRIV_KEY_INFO_fp = 'd2i_PKCS8_PRIV_KEY_INFO_fp'; } {Do not localize}
  21239. {CH fn_i2d_PKCS8_PRIV_KEY_INFO_fp = 'i2d_PKCS8_PRIV_KEY_INFO_fp'; } {Do not localize}
  21240. {$IFNDEF OPENSSL_NO_BIO}
  21241. fn_d2i_X509_bio = 'd2i_X509_bio'; {Do not localize}
  21242. fn_i2d_X509_bio = 'i2d_X509_bio'; {Do not localize}
  21243. fn_d2i_PKCS12_bio = 'd2i_PKCS12_bio'; {Do not localize}
  21244. fn_PKCS12_parse = 'PKCS12_parse'; {Do not localize}
  21245. fn_i2d_PrivateKey_bio = 'i2d_PrivateKey_bio'; {Do not localize}
  21246. fn_d2i_X509_CRL_bio = 'd2i_X509_CRL_bio'; {Do not localize}
  21247. fn_i2d_X509_CRL_bio = 'i2d_X509_CRL_bio'; {Do not localize}
  21248. fn_d2i_X509_REQ_bio = 'd2i_X509_REQ_bio'; {Do not localize}
  21249. fn_i2d_X509_REQ_bio = 'i2d_X509_REQ_bio'; {Do not localize}
  21250. {$IFNDEF OPENSSL_NO_RSA}
  21251. fn_d2i_RSAPrivateKey_bio = 'd2i_RSAPrivateKey_bio'; {Do not localize}
  21252. fn_i2d_RSAPrivateKey_bio = 'i2d_RSAPrivateKey_bio'; {Do not localize}
  21253. fn_d2i_RSAPublicKey_bio = 'd2i_RSAPublicKey_bio'; {Do not localize}
  21254. fn_i2d_RSAPublicKey_bio = 'i2d_RSAPublicKey_bio'; {Do not localize}
  21255. {$ENDIF}
  21256. {$IFNDEF OPENSSL_NO_DSA}
  21257. {CH fn_d2i_DSA_PUBKEY_bio = 'd2i_DSA_PUBKEY_bio'; } {Do not localize}
  21258. {CH fn_i2d_DSA_PUBKEY_bio = 'i2d_DSA_PUBKEY_bio'; } {Do not localize}
  21259. {CH fn_d2i_DSAPrivateKey_bio = 'd2i_DSAPrivateKey_bio'; } {Do not localize}
  21260. {CH fn_i2d_DSAPrivateKey_bio = 'i2d_DSAPrivateKey_bio'; } {Do not localize}
  21261. {$ENDIF}
  21262. {$IFNDEF OPENSSL_NO_EC}
  21263. {CH fn_d2i_EC_PUBKEY_bio = 'd2i_EC_PUBKEY_bio'; } {Do not localize}
  21264. {CH fn_i2d_EC_PUBKEY_bio = 'i2d_EC_PUBKEY_bio'; } {Do not localize}
  21265. {CH fn_d2i_ECPrivateKey_bio = 'd2i_ECPrivateKey_bio'; } {Do not localize}
  21266. {CH fn_i2d_ECPrivateKey_bio = 'i2d_ECPrivateKey_bio'; } {Do not localize}
  21267. {$ENDIF}
  21268. {CH fn_d2i_PKCS8_bio = 'd2i_PKCS8_bio'; } {Do not localize}
  21269. {CH fn_i2d_PKCS8_bio = 'i2d_PKCS8_bio'; } {Do not localize}
  21270. {CH fn_d2i_PKCS8_PRIV_KEY_INFO_bio = 'd2i_PKCS8_PRIV_KEY_INFO_bio'; } {Do not localize}
  21271. {CH fn_i2d_PKCS8_PRIV_KEY_INFO_bio = 'i2d_PKCS8_PRIV_KEY_INFO_bio'; } {Do not localize}
  21272. fn_d2i_PrivateKey_bio = 'd2i_PrivateKey_bio'; {Do not localize}
  21273. {CH fn_i2d_PUBKEY_bio = 'i2d_PUBKEY_bio'; } {Do not localize}
  21274. {CH fn_d2i_PUBKEY_bio = 'd2i_PUBKEY_bio'; } {Do not localize}
  21275. {$ENDIF}
  21276. {CH fn_X509_dup = 'X509_dup'; } {Do not localize}
  21277. {CH fn_X509_ATTRIBUTE_dup = 'X509_ATTRIBUTE_dup'; } {Do not localize}
  21278. {CH fn_X509_EXTENSION_dup = 'X509_EXTENSION_dup'; } {Do not localize}
  21279. {CH fn_X509_CRL_dup = 'X509_CRL_dup'; } {Do not localize}
  21280. {CH fn_X509_REQ_dup = 'X509_REQ_dup'; } {Do not localize}
  21281. {CH fn_X509_ALGOR_dup = 'X509_ALGOR_dup'; } {Do not localize}
  21282. {CH fn_X509_NAME_dup = 'X509_NAME_dup'; } {Do not localize}
  21283. {CH fn_X509_NAME_ENTRY_dup = 'X509_NAME_ENTRY_dup'; } {Do not localize}
  21284. {CH fn_RSAPublicKey_dup = 'RSAPublicKey_dup'; } {Do not localize}
  21285. {CH fn_RSAPrivateKey_dup = 'RSAPrivateKey_dup'; } {Do not localize}
  21286. {CH fn_X509_cmp_current_time = 'X509_cmp_current_time'; } {Do not localize}
  21287. fn_X509_gmtime_adj = 'X509_gmtime_adj'; {Do not localize}
  21288. {CH fn_X509_get_default_cert_area = 'X509_get_default_cert_area'; } {Do not localize}
  21289. {CH fn_X509_get_default_cert_dir = 'X509_get_default_cert_dir'; } {Do not localize}
  21290. fn_X509_get_default_cert_file = 'X509_get_default_cert_file'; {Do not localize}
  21291. {CH fn_X509_get_default_cert_dir_env = 'X509_get_default_cert_dir_env'; } {Do not localize}
  21292. fn_X509_get_default_cert_file_env = 'X509_get_default_cert_file_env'; {Do not localize}
  21293. {CH fn_X509_get_default_private_dir = 'X509_get_default_private_dir'; } {Do not localize}
  21294. fn_X509_to_X509_REQ = 'X509_to_X509_REQ'; {Do not localize}
  21295. {CH fn_X509_REQ_to_X509 = 'X509_REQ_to_X509'; } {Do not localize}
  21296. fn_X509_NAME_add_entry_by_txt = 'X509_NAME_add_entry_by_txt'; {Do not localize}
  21297. {CH fn_ERR_load_X509_strings = 'ERR_load_X509_strings'; } {Do not localize}
  21298. {CH fn_X509_ALGOR_new = 'X509_ALGOR_new'; } {Do not localize}
  21299. {CH fn_X509_ALGOR_free = 'X509_ALGOR_free'; } {Do not localize}
  21300. {CH fn_i2d_X509_ALGOR = 'i2d_X509_ALGOR'; } {Do not localize}
  21301. {CH fn_d2i_X509_ALGOR = 'd2i_X509_ALGOR'; } {Do not localize}
  21302. {CH fn_X509_VAL_new = 'X509_VAL_new'; } {Do not localize}
  21303. {CH fn_X509_VAL_free = 'X509_VAL_free'; } {Do not localize}
  21304. {CH fn_i2d_X509_VAL = 'i2d_X509_VAL'; } {Do not localize}
  21305. {CH fn_d2i_X509_VAL = 'd2i_X509_VAL'; } {Do not localize}
  21306. {CH fn_X509_PUBKEY_new = 'X509_PUBKEY_new'; } {Do not localize}
  21307. {CH fn_X509_PUBKEY_free = 'X509_PUBKEY_free'; } {Do not localize}
  21308. {CH fn_i2d_X509_PUBKEY = 'i2d_X509_PUBKEY'; } {Do not localize}
  21309. {CH fn_d2i_X509_PUBKEY = 'd2i_X509_PUBKEY'; } {Do not localize}
  21310. {CH fn_X509_PUBKEY_set = 'X509_PUBKEY_set'; } {Do not localize}
  21311. fn_X509_PUBKEY_get = 'X509_PUBKEY_get'; {Do not localize}
  21312. {CH fn_X509_get_pubkey_parameters = 'X509_get_pubkey_parameters'; } {Do not localize}
  21313. {CH fn_X509_SIG_new = 'X509_SIG_new'; } {Do not localize}
  21314. {CH fn_X509_SIG_free = 'X509_SIG_free'; } {Do not localize}
  21315. {CH fn_i2d_X509_SIG = 'i2d_X509_SIG'; } {Do not localize}
  21316. {CH fn_d2i_X509_SIG = 'd2i_X509_SIG'; } {Do not localize}
  21317. {CH fn_X509_REQ_INFO_new = 'X509_REQ_INFO_new'; } {Do not localize}
  21318. {CH fn_X509_REQ_INFO_free = 'X509_REQ_INFO_free'; } {Do not localize}
  21319. {CH fn_i2d_X509_REQ_INFO = 'i2d_X509_REQ_INFO'; } {Do not localize}
  21320. {CH fn_d2i_X509_REQ_INFO = 'd2i_X509_REQ_INFO'; } {Do not localize}
  21321. fn_X509_REQ_new = 'X509_REQ_new'; {Do not localize}
  21322. fn_X509_REQ_free = 'X509_REQ_free'; {Do not localize}
  21323. fn_i2d_X509_REQ = 'i2d_X509_REQ'; {Do not localize}
  21324. fn_d2i_X509_REQ = 'd2i_X509_REQ'; {Do not localize}
  21325. {CH fn_X509_ATTRIBUTE_new = 'X509_ATTRIBUTE_new'; } {Do not localize}
  21326. {CH fn_X509_ATTRIBUTE_free = 'X509_ATTRIBUTE_free'; } {Do not localize}
  21327. {CH fn_i2d_X509_ATTRIBUTE = 'i2d_X509_ATTRIBUTE'; } {Do not localize}
  21328. {CH fn_d2i_X509_ATTRIBUTE = 'd2i_X509_ATTRIBUTE'; } {Do not localize}
  21329. {CH fn_X509_ATTRIBUTE_create = 'X509_ATTRIBUTE_create'; } {Do not localize}
  21330. {CH fn_X509_EXTENSION_new = 'X509_EXTENSION_new'; } {Do not localize}
  21331. fn_X509_EXTENSION_free = 'X509_EXTENSION_free'; {Do not localize}
  21332. {CH fn_i2d_X509_EXTENSION = 'i2d_X509_EXTENSION'; } {Do not localize}
  21333. {CH fn_d2i_X509_EXTENSION = 'd2i_X509_EXTENSION'; } {Do not localize}
  21334. {CH fn_X509_NAME_ENTRY_new = 'X509_NAME_ENTRY_new'; } {Do not localize}
  21335. {CH fn_X509_NAME_ENTRY_free = 'X509_NAME_ENTRY_free'; } {Do not localize}
  21336. fn_i2d_X509_NAME_ENTRY = 'i2d_X509_NAME_ENTRY'; {Do not localize}
  21337. fn_d2i_X509_NAME_ENTRY = 'd2i_X509_NAME_ENTRY'; {Do not localize}
  21338. fn_X509_NAME_new = 'X509_NAME_new'; {Do not localize}
  21339. fn_X509_NAME_free = 'X509_NAME_free'; {Do not localize}
  21340. fn_i2d_X509_NAME = 'i2d_X509_NAME'; {Do not localize}
  21341. fn_d2i_X509_NAME = 'd2i_X509_NAME'; {Do not localize}
  21342. {CH fn_X509_NAME_set = 'X509_NAME_set'; } {Do not localize}
  21343. {CH fn_X509_CINF_new = 'X509_CINF_new'; } {Do not localize}
  21344. {CH fn_X509_CINF_free = 'X509_CINF_free'; } {Do not localize}
  21345. {CH fn_i2d_X509_CINF = 'i2d_X509_CINF'; } {Do not localize}
  21346. {CH fn_d2i_X509_CINF = 'd2i_X509_CINF'; } {Do not localize}
  21347. fn_X509_new = 'X509_new'; {Do not localize}
  21348. fn_X509_free = 'X509_free'; {Do not localize}
  21349. fn_i2d_X509 = 'i2d_X509'; {Do not localize}
  21350. fn_d2i_X509 = 'd2i_X509'; {Do not localize}
  21351. {CH fn_X509_REVOKED_new = 'X509_REVOKED_new'; } {Do not localize}
  21352. {CH fn_X509_REVOKED_free = 'X509_REVOKED_free'; } {Do not localize}
  21353. {CH fn_i2d_X509_REVOKED = 'i2d_X509_REVOKED'; } {Do not localize}
  21354. {CH fn_d2i_X509_REVOKED = 'd2i_X509_REVOKED'; } {Do not localize}
  21355. {CH fn_X509_CRL_INFO_new = 'X509_CRL_INFO_new'; } {Do not localize}
  21356. {CH fn_X509_CRL_INFO_free = 'X509_CRL_INFO_free'; } {Do not localize}
  21357. {CH fn_i2d_X509_CRL_INFO = 'i2d_X509_CRL_INFO'; } {Do not localize}
  21358. {CH fn_d2i_X509_CRL_INFO = 'd2i_X509_CRL_INFO'; } {Do not localize}
  21359. {CH fn_X509_CRL_new = 'X509_CRL_new'; } {Do not localize}
  21360. {CH fn_X509_CRL_free = 'X509_CRL_free'; } {Do not localize}
  21361. fn_i2d_X509_CRL = 'i2d_X509_CRL'; {Do not localize}
  21362. fn_d2i_X509_CRL = 'd2i_X509_CRL'; {Do not localize}
  21363. {CH fn_X509_PKEY_new = 'X509_PKEY_new'; } {Do not localize}
  21364. {CH fn_X509_PKEY_free = 'X509_PKEY_free'; } {Do not localize}
  21365. {CH fn_i2d_X509_PKEY = 'i2d_X509_PKEY'; } {Do not localize}
  21366. {CH fn_d2i_X509_PKEY = 'd2i_X509_PKEY'; } {Do not localize}
  21367. {CH fn_NETSCAPE_SPKI_new = 'NETSCAPE_SPKI_new'; } {Do not localize}
  21368. {CH fn_NETSCAPE_SPKI_free = 'NETSCAPE_SPKI_free'; } {Do not localize}
  21369. {CH fn_i2d_NETSCAPE_SPKI = 'i2d_NETSCAPE_SPKI'; } {Do not localize}
  21370. {CH fn_d2i_NETSCAPE_SPKI = 'd2i_NETSCAPE_SPKI'; } {Do not localize}
  21371. {CH fn_NETSCAPE_SPKAC_new = 'NETSCAPE_SPKAC_new'; } {Do not localize}
  21372. {CH fn_NETSCAPE_SPKAC_free = 'NETSCAPE_SPKAC_free'; } {Do not localize}
  21373. {CH fn_i2d_NETSCAPE_SPKAC = 'i2d_NETSCAPE_SPKAC'; } {Do not localize}
  21374. {CH fn_d2i_NETSCAPE_SPKAC = 'd2i_NETSCAPE_SPKAC'; } {Do not localize}
  21375. fn_i2d_NETSCAPE_CERT_SEQUENCE = 'i2d_NETSCAPE_CERT_SEQUENCE'; {Do not localize}
  21376. fn_d2i_NETSCAPE_CERT_SEQUENCE = 'd2i_NETSCAPE_CERT_SEQUENCE'; {Do not localize}
  21377. fn_i2d_PUBKEY = 'i2d_PUBKEY'; {Do not localize}
  21378. fn_d2i_PUBKEY = 'd2i_PUBKEY'; {Do not localize}
  21379. {CH fn_NETSCAPE_CERT_SEQUENCE_new = 'NETSCAPE_CERT_SEQUENCE_new'; } {Do not localize}
  21380. {CH fn_NETSCAPE_CERT_SEQUENCE_free = 'NETSCAPE_CERT_SEQUENCE_free'; } {Do not localize}
  21381. {CH fn_X509_INFO_new = 'X509_INFO_new'; } {Do not localize}
  21382. fn_X509_INFO_free = 'X509_INFO_free'; {Do not localize}
  21383. fn_X509_NAME_oneline = 'X509_NAME_oneline'; {Do not localize}
  21384. {CH fn_ASN1_verify = 'ASN1_verify'; } {Do not localize}
  21385. {CH fn_ASN1_digest = 'ASN1_digest'; } {Do not localize}
  21386. {CH fn_ASN1_sign = 'ASN1_sign'; } {Do not localize}
  21387. fn_X509_set_version = 'X509_set_version'; {Do not localize}
  21388. {CH fn_X509_set_serialNumber = 'X509_set_serialNumber'; } {Do not localize}
  21389. fn_X509_get_serialNumber = 'X509_get_serialNumber'; {Do not localize}
  21390. fn_X509_set_issuer_name = 'X509_set_issuer_name'; {Do not localize}
  21391. fn_X509_get_issuer_name = 'X509_get_issuer_name'; {Do not localize}
  21392. fn_X509_set_subject_name = 'X509_set_subject_name'; {Do not localize}
  21393. fn_X509_get_subject_name = 'X509_get_subject_name'; {Do not localize}
  21394. fn_X509_set_notBefore = 'X509_set_notBefore'; {Do not localize}
  21395. fn_X509_set_notAfter = 'X509_set_notAfter'; {Do not localize}
  21396. fn_X509_set_pubkey = 'X509_set_pubkey'; {Do not localize}
  21397. {CH fn_X509_get_pubkey = 'X509_get_pubkey'; } {Do not localize}
  21398. {CH fn_X509_certificate_type = 'X509_certificate_type'; } {Do not localize}
  21399. {CH fn_X509_REQ_set_version = 'X509_REQ_set_version'; } {Do not localize}
  21400. {CH fn_X509_REQ_set_subject_name = 'X509_REQ_set_subject_name'; } {Do not localize}
  21401. fn_X509_REQ_set_pubkey = 'X509_REQ_set_pubkey'; {Do not localize}
  21402. {CH fn_X509_REQ_get_pubkey = 'X509_REQ_get_pubkey'; } {Do not localize}
  21403. {CH fn_X509_check_private_key = 'X509_check_private_key'; } {Do not localize}
  21404. {CH fn_X509_issuer_and_serial_cmp = 'X509_issuer_and_serial_cmp'; } {Do not localize}
  21405. {CH fn_X509_issuer_and_serial_hash = 'X509_issuer_and_serial_hash'; } {Do not localize}
  21406. {CH fn_X509_issuer_name_cmp = 'X509_issuer_name_cmp'; } {Do not localize}
  21407. {CH fn_X509_issuer_name_hash = 'X509_issuer_name_hash'; } {Do not localize}
  21408. {CH fn_X509_subject_name_cmp = 'X509_subject_name_cmp'; } {Do not localize}
  21409. {CH fn_X509_subject_name_hash = 'X509_subject_name_hash'; } {Do not localize}
  21410. fn_X509_NAME_cmp = 'X509_NAME_cmp'; {Do not localize}
  21411. fn_X509_NAME_hash = 'X509_NAME_hash'; {Do not localize}
  21412. {CH fn_X509_CRL_cmp = 'X509_CRL_cmp'; } {Do not localize}
  21413. {$IFNDEF OPENSSL_NO_FP_API}
  21414. {CH fn_X509_print_ex_fp = 'X509_print_ex_fp'; } {Do not localize}
  21415. {CH fn_X509_print_fp = 'X509_print_fp'; } {Do not localize}
  21416. {CH fn_X509_CRL_print_fp = 'X509_CRL_print_fp'; } {Do not localize}
  21417. {CH fn_X509_REQ_print_fp = 'X509_REQ_print_fp'; } {Do not localize}
  21418. {CH fn_X509_NAME_print_ex_fp = 'X509_NAME_print_ex_fp'; } {Do not localize}
  21419. {$ENDIF}
  21420. {$IFNDEF OPENSSL_NO_BIO}
  21421. {CH fn_X509_NAME_print = 'X509_NAME_print'; } {Do not localize}
  21422. {CH fn_X509_NAME_print_ex = 'X509_NAME_print_ex'; } {Do not localize}
  21423. {CH fn_X509_print_ex = 'X509_print_ex'; } {Do not localize}
  21424. fn_X509_print = 'X509_print'; {Do not localize}
  21425. {CH fn_X509_ocspid_print = 'X509_ocspid_print'; } {Do not localize}
  21426. {CH fn_X509_CERT_AUX_print = 'X509_CERT_AUX_print'; } {Do not localize}
  21427. {CH fn_X509_CRL_print = 'X509_CRL_print'; } {Do not localize}
  21428. {CH fn_X509_REQ_print = 'X509_REQ_print'; } {Do not localize}
  21429. {CH fn_X509_REQ_print_ex = 'X509_REQ_print_ex'; } {Do not localize}
  21430. {$ENDIF}
  21431. {CH fn_X509_NAME_entry_count = 'X509_NAME_entry_count'; } {Do not localize}
  21432. {CH fn_X509_NAME_get_text_by_NID = 'X509_NAME_get_text_by_NID'; } {Do not localize}
  21433. {CH fn_X509_NAME_get_text_by_OBJ = 'X509_NAME_get_text_by_OBJ'; } {Do not localize}
  21434. {CH fn_X509_NAME_get_index_by_NID = 'X509_NAME_get_index_by_NID'; } {Do not localize}
  21435. {CH fn_X509_NAME_get_index_by_OBJ = 'X509_NAME_get_index_by_OBJ'; } {Do not localize}
  21436. {CH fn_X509_NAME_get_entry = 'X509_NAME_get_entry'; } {Do not localize}
  21437. {CH fn_X509_NAME_delete_entry = 'X509_NAME_delete_entry'; } {Do not localize}
  21438. {CH fn_X509_NAME_add_entry = 'X509_NAME_add_entry'; } {Do not localize}
  21439. {CH fn_X509_NAME_ENTRY_create_by_NID = 'X509_NAME_ENTRY_create_by_NID'; } {Do not localize}
  21440. {CH fn_X509_NAME_ENTRY_create_by_OBJ = 'X509_NAME_ENTRY_create_by_OBJ'; } {Do not localize}
  21441. {CH fn_X509_NAME_ENTRY_set_object = 'X509_NAME_ENTRY_set_object'; } {Do not localize}
  21442. {CH fn_X509_NAME_ENTRY_set_data = 'X509_NAME_ENTRY_set_data'; } {Do not localize}
  21443. {CH fn_X509_NAME_ENTRY_get_object = 'X509_NAME_ENTRY_get_object'; } {Do not localize}
  21444. {CH fn_X509_NAME_ENTRY_get_data = 'X509_NAME_ENTRY_get_data'; } {Do not localize}
  21445. {CH fn_X509v3_get_ext_count = 'X509v3_get_ext_count'; } {Do not localize}
  21446. {CH fn_X509v3_get_ext_by_NID = 'X509v3_get_ext_by_NID'; } {Do not localize}
  21447. {CH fn_X509v3_get_ext_by_OBJ = 'X509v3_get_ext_by_OBJ'; } {Do not localize}
  21448. {CH fn_X509v3_get_ext_by_critical = 'X509v3_get_ext_by_critical'; } {Do not localize}
  21449. {CH fn_X509v3_get_ext = 'X509v3_get_ext'; } {Do not localize}
  21450. {CH fn_X509v3_delete_ext = 'X509v3_delete_ext'; } {Do not localize}
  21451. {CH fn_X509v3_add_ext = 'X509v3_add_ext'; } {Do not localize}
  21452. {CH fn_X509_get_ext_count = 'X509_get_ext_count'; } {Do not localize}
  21453. {CH fn_X509_get_ext_by_NID = 'X509_get_ext_by_NID'; } {Do not localize}
  21454. {CH fn_X509_get_ext_by_OBJ = 'X509_get_ext_by_OBJ'; } {Do not localize}
  21455. {CH fn_X509_get_ext_by_critical = 'X509_get_ext_by_critical'; } {Do not localize}
  21456. {CH fn_X509_get_ext = 'X509_get_ext'; } {Do not localize}
  21457. {CH fn_X509_delete_ext = 'X509_delete_ext'; } {Do not localize}
  21458. fn_X509_add_ext = 'X509_add_ext'; {Do not localize}
  21459. {CH fn_X509_CRL_get_ext_count = 'X509_CRL_get_ext_count'; } {Do not localize}
  21460. {CH fn_X509_CRL_get_ext_by_NID = 'X509_CRL_get_ext_by_NID'; } {Do not localize}
  21461. {CH fn_X509_CRL_get_ext_by_OBJ = 'X509_CRL_get_ext_by_OBJ'; } {Do not localize}
  21462. {CH fn_X509_CRL_get_ext_by_critical = 'X509_CRL_get_ext_by_critical'; } {Do not localize}
  21463. {CH fn_X509_CRL_get_ext = 'X509_CRL_get_ext'; } {Do not localize}
  21464. {CH fn_X509_CRL_delete_ext = 'X509_CRL_delete_ext'; } {Do not localize}
  21465. {CH fn_X509_CRL_add_ext = 'X509_CRL_add_ext'; } {Do not localize}
  21466. {CH fn_X509_REVOKED_get_ext_count = 'X509_REVOKED_get_ext_count'; } {Do not localize}
  21467. {CH fn_X509_REVOKED_get_ext_by_NID = 'X509_REVOKED_get_ext_by_NID'; } {Do not localize}
  21468. {CH fn_X509_REVOKED_get_ext_by_OBJ = 'X509_REVOKED_get_ext_by_OBJ'; } {Do not localize}
  21469. {CH fn_X509_REVOKED_get_ext_by_critical = 'X509_REVOKED_get_ext_by_critical'; } {Do not localize}
  21470. {CH fn_X509_REVOKED_get_ext = 'X509_REVOKED_get_ext'; } {Do not localize}
  21471. {CH fn_X509_REVOKED_delete_ext = 'X509_REVOKED_delete_ext'; } {Do not localize}
  21472. {CH fn_X509_REVOKED_add_ext = 'X509_REVOKED_add_ext'; } {Do not localize}
  21473. fn_X509_EXTENSION_create_by_NID = 'X509_EXTENSION_create_by_NID'; {Do not localize}
  21474. {CH fn_X509_EXTENSION_create_by_OBJ = 'X509_EXTENSION_create_by_OBJ'; } {Do not localize}
  21475. {CH fn_X509_EXTENSION_set_object = 'X509_EXTENSION_set_object'; } {Do not localize}
  21476. {CH fn_X509_EXTENSION_set_critical = 'X509_EXTENSION_set_critical'; } {Do not localize}
  21477. {CH fn_X509_EXTENSION_set_data = 'X509_EXTENSION_set_data'; } {Do not localize}
  21478. {CH fn_X509_EXTENSION_get_object = 'X509_EXTENSION_get_object'; } {Do not localize}
  21479. {CH fn_X509_EXTENSION_get_data = 'X509_EXTENSION_get_data'; } {Do not localize}
  21480. {CH fn_X509_EXTENSION_get_critical = 'X509_EXTENSION_get_critical'; } {Do not localize}
  21481. {CH fn_X509_verify_cert = 'X509_verify_cert'; } {Do not localize}
  21482. {CH fn_X509_find_by_issuer_and_serial = 'X509_find_by_issuer_and_serial'; } {Do not localize}
  21483. {CH fn_X509_find_by_subject = 'X509_find_by_subject'; } {Do not localize}
  21484. {CH fn_i2d_PBEPARAM = 'i2d_PBEPARAM'; } {Do not localize}
  21485. {CH fn_PBEPARAM_new = 'PBEPARAM_new'; } {Do not localize}
  21486. {CH fn_d2i_PBEPARAM = 'd2i_PBEPARAM'; } {Do not localize}
  21487. {CH fn_PBEPARAM_free = 'PBEPARAM_free'; } {Do not localize}
  21488. {CH fn_PKCS5_pbe_set = 'PKCS5_pbe_set'; } {Do not localize}
  21489. {CH fn_PKCS5_pbe2_set = 'PKCS5_pbe2_set'; } {Do not localize}
  21490. {CH fn_i2d_PBKDF2PARAM = 'i2d_PBKDF2PARAM'; } {Do not localize}
  21491. {CH fn_PBKDF2PARAM_new = 'PBKDF2PARAM_new'; } {Do not localize}
  21492. {CH fn_d2i_PBKDF2PARAM = 'd2i_PBKDF2PARAM'; } {Do not localize}
  21493. {CH fn_PBKDF2PARAM_free = 'PBKDF2PARAM_free'; } {Do not localize}
  21494. {CH fn_i2d_PBE2PARAM = 'i2d_PBE2PARAM'; } {Do not localize}
  21495. {CH fn_PBE2PARAM_new = 'PBE2PARAM_new'; } {Do not localize}
  21496. {CH fn_d2i_PBE2PARAM = 'd2i_PBE2PARAM'; } {Do not localize}
  21497. {CH fn_PBE2PARAM_free = 'PBE2PARAM_free'; } {Do not localize}
  21498. {CH fn_i2d_PKCS8_PRIV_KEY_INFO = 'i2d_PKCS8_PRIV_KEY_INFO'; } {Do not localize}
  21499. {CH fn_PKCS8_PRIV_KEY_INFO_new = 'PKCS8_PRIV_KEY_INFO_new'; } {Do not localize}
  21500. {CH fn_d2i_PKCS8_PRIV_KEY_INFO = 'd2i_PKCS8_PRIV_KEY_INFO'; } {Do not localize}
  21501. {CH fn_PKCS8_PRIV_KEY_INFO_free = 'PKCS8_PRIV_KEY_INFO_free'; } {Do not localize}
  21502. {CH fn_EVP_PKCS82PKEY = 'EVP_PKCS82PKEY'; } {Do not localize}
  21503. {CH fn_EVP_PKEY2PKCS8 = 'EVP_PKEY2PKCS8'; } {Do not localize}
  21504. {CH fn_PKCS8_set_broken = 'PKCS8_set_broken'; } {Do not localize}
  21505. {CH fn_ERR_load_PEM_strings = 'ERR_load_PEM_strings'; } {Do not localize}
  21506. {CH fn_PEM_get_EVP_CIPHER_INFO = 'PEM_get_EVP_CIPHER_INFO'; } {Do not localize}
  21507. {CH fn_PEM_do_header = 'PEM_do_header'; } {Do not localize}
  21508. {CH fn_PEM_read_bio = 'PEM_read_bio'; } {Do not localize}
  21509. {CH fn_PEM_write_bio = 'PEM_write_bio'; } {Do not localize}
  21510. fn_PEM_ASN1_read_bio = 'PEM_ASN1_read_bio'; {Do not localize}
  21511. fn_PEM_ASN1_write_bio = 'PEM_ASN1_write_bio'; {Do not localize}
  21512. fn_PEM_X509_INFO_read_bio = 'PEM_X509_INFO_read_bio'; {Do not localize}
  21513. {CH fn_PEM_X509_INFO_write_bio = 'PEM_X509_INFO_write_bio'; } {Do not localize}
  21514. {CH fn_PEM_read = 'PEM_read'; } {Do not localize}
  21515. {CH fn_PEM_write = 'PEM_write'; } {Do not localize}
  21516. {CH fn_PEM_ASN1_read = 'PEM_ASN1_read'; } {Do not localize}
  21517. {CH fn_PEM_ASN1_write = 'PEM_ASN1_write'; } {Do not localize}
  21518. {CH fn_PEM_X509_INFO_read = 'PEM_X509_INFO_read'; } {Do not localize}
  21519. {CH fn_PEM_SealInit = 'PEM_SealInit'; } {Do not localize}
  21520. {CH fn_PEM_SealUpdate = 'PEM_SealUpdate'; } {Do not localize}
  21521. {CH fn_PEM_SealFinal = 'PEM_SealFinal'; } {Do not localize}
  21522. {CH fn_PEM_SignInit = 'PEM_SignInit'; } {Do not localize}
  21523. {CH fn_PEM_SignUpdate = 'PEM_SignUpdate'; } {Do not localize}
  21524. {CH fn_PEM_SignFinal = 'PEM_SignFinal'; } {Do not localize}
  21525. {CH fn_PEM_proc_type = 'PEM_proc_type'; } {Do not localize}
  21526. {CH fn_PEM_dek_info = 'PEM_dek_info'; } {Do not localize}
  21527. {$IFNDEF OPENSSL_NO_BIO}
  21528. {$IFNDEF SSLEAY_MACROS}
  21529. fn_PEM_read_bio_X509 = 'PEM_read_bio_X509'; {Do not localize}
  21530. fn_PEM_write_bio_X509 = 'PEM_write_bio_X509'; {Do not localize}
  21531. fn_PEM_read_bio_X509_REQ = 'PEM_read_bio_X509_REQ'; {Do not localize}
  21532. fn_PEM_write_bio_X509_REQ = 'PEM_write_bio_X509_REQ'; {Do not localize}
  21533. fn_PEM_read_bio_X509_CRL = 'PEM_read_bio_X509_CRL'; {Do not localize}
  21534. fn_PEM_write_bio_X509_CRL = 'PEM_write_bio_X509_CRL'; {Do not localize}
  21535. fn_PEM_read_bio_PKCS7 = 'PEM_read_bio_PKCS7'; {Do not localize}
  21536. fn_PEM_write_bio_PKCS7 = 'PEM_write_bio_PKCS7'; {Do not localize}
  21537. fn_PEM_read_bio_NETSCAPE_CERT_SEQUENCE = 'PEM_read_bio_NETSCAPE_CERT_SEQUENCE'; {Do not localize}
  21538. fn_PEM_write_bio_NETSCAPE_CERT_SEQUENCE = 'PEM_write_bio_NETSCAPE_CERT_SEQUENCE'; {Do not localize}
  21539. fn_PEM_read_bio_PKCS8 = 'PEM_read_bio_PKCS8'; {Do not localize}
  21540. fn_PEM_write_bio_PKCS8 = 'PEM_write_bio_PKCS8'; {Do not localize}
  21541. fn_PEM_read_bio_PKCS8_PRIV_KEY_INFO = 'PEM_read_bio_PKCS8_PRIV_KEY_INFO'; {Do not localize}
  21542. fn_PEM_write_bio_PKCS8_PRIV_KEY_INFO = 'PEM_write_bio_PKCS8_PRIV_KEY_INFO'; {Do not localize}
  21543. fn_PEM_read_bio_RSAPrivateKey = 'PEM_read_bio_RSAPrivateKey'; {Do not localize}
  21544. fn_PEM_write_bio_RSAPrivateKey = 'PEM_write_bio_RSAPrivateKey'; {Do not localize}
  21545. fn_PEM_read_bio_RSAPublicKey = 'PEM_read_bio_RSAPublicKey'; {Do not localize}
  21546. fn_PEM_write_bio_RSAPublicKey = 'PEM_write_bio_RSAPublicKey'; {Do not localize}
  21547. fn_PEM_read_bio_DSAPrivateKey = 'PEM_read_bio_DSAPrivateKey'; {Do not localize}
  21548. fn_PEM_write_bio_DSAPrivateKey = 'PEM_write_bio_DSAPrivateKey'; {Do not localize}
  21549. fn_PEM_read_bio_DSAparams = 'PEM_read_bio_DSAparams'; {Do not localize}
  21550. fn_PEM_write_bio_DSAparams = 'PEM_write_bio_DSAparams'; {Do not localize}
  21551. fn_PEM_read_bio_DHparams = 'PEM_read_bio_DHparams'; {Do not localize}
  21552. fn_PEM_write_bio_DHparams = 'PEM_write_bio_DHparams'; {Do not localize}
  21553. fn_PEM_read_bio_PrivateKey = 'PEM_read_bio_PrivateKey'; {Do not localize}
  21554. fn_PEM_write_bio_PrivateKey = 'PEM_write_bio_PrivateKey'; {Do not localize}
  21555. fn_PEM_write_bio_PKCS8PrivateKey = 'PEM_write_bio_PKCS8PrivateKey'; {Do not localize}
  21556. fn_PEM_read_bio_PUBKEY = 'PEM_read_bio_PUBKEY'; {Do not localize}
  21557. fn_PEM_write_bio_PUBKEY = 'PEM_write_bio_PUBKEY'; {Do not localize}
  21558. {$ENDIF}
  21559. {$ENDIF}
  21560. fn_PEM_read_bio_X509_AUX = 'PEM_read_bio_X509_AUX'; {Do not localize}
  21561. {CH fn_PEM_read_X509 = 'PEM_read_X509'; } {Do not localize}
  21562. {CH fn_PEM_write_X509 = 'PEM_write_X509'; } {Do not localize}
  21563. {CH fn_PEM_read_X509_REQ = 'PEM_read_X509_REQ'; } {Do not localize}
  21564. {CH fn_PEM_write_X509_REQ = 'PEM_write_X509_REQ'; } {Do not localize}
  21565. {CH fn_PEM_read_X509_CRL = 'PEM_read_X509_CRL'; } {Do not localize}
  21566. {CH fn_PEM_write_X509_CRL = 'PEM_write_X509_CRL'; } {Do not localize}
  21567. {CH fn_PEM_read_PKCS7 = 'PEM_read_PKCS7'; } {Do not localize}
  21568. {CH fn_PEM_write_PKCS7 = 'PEM_write_PKCS7'; } {Do not localize}
  21569. {CH fn_PEM_read_NETSCAPE_CERT_SEQUENCE = 'PEM_read_NETSCAPE_CERT_SEQUENCE'; } {Do not localize}
  21570. {CH fn_PEM_write_NETSCAPE_CERT_SEQUENCE = 'PEM_write_NETSCAPE_CERT_SEQUENCE'; } {Do not localize}
  21571. {CH fn_PEM_read_PKCS8 = 'PEM_read_PKCS8'; } {Do not localize}
  21572. {CH fn_PEM_write_PKCS8 = 'PEM_write_PKCS8'; } {Do not localize}
  21573. {CH fn_PEM_read_PKCS8_PRIV_KEY_INFO = 'PEM_read_PKCS8_PRIV_KEY_INFO'; } {Do not localize}
  21574. {CH fn_PEM_write_PKCS8_PRIV_KEY_INFO = 'PEM_write_PKCS8_PRIV_KEY_INFO'; } {Do not localize}
  21575. {CH fn_PEM_read_RSAPrivateKey = 'PEM_read_RSAPrivateKey'; } {Do not localize}
  21576. {CH fn_PEM_write_RSAPrivateKey = 'PEM_write_RSAPrivateKey'; } {Do not localize}
  21577. {CH fn_PEM_read_RSAPublicKey = 'PEM_read_RSAPublicKey'; } {Do not localize}
  21578. {CH fn_PEM_write_RSAPublicKey = 'PEM_write_RSAPublicKey'; } {Do not localize}
  21579. {CH fn_PEM_read_DSAPrivateKey = 'PEM_read_DSAPrivateKey'; } {Do not localize}
  21580. {CH fn_PEM_write_DSAPrivateKey = 'PEM_write_DSAPrivateKey'; } {Do not localize}
  21581. {CH fn_PEM_read_DSAparams = 'PEM_read_DSAparams'; } {Do not localize}
  21582. {CH fn_PEM_write_DSAparams = 'PEM_write_DSAparams'; } {Do not localize}
  21583. {CH fn_PEM_read_DHparams = 'PEM_read_DHparams'; } {Do not localize}
  21584. {CH fn_PEM_write_DHparams = 'PEM_write_DHparams'; } {Do not localize}
  21585. {CH fn_PEM_read_PrivateKey = 'PEM_read_PrivateKey'; } {Do not localize}
  21586. {CH fn_PEM_write_PrivateKey = 'PEM_write_PrivateKey'; } {Do not localize}
  21587. {CH fn_PEM_write_PKCS8PrivateKey = 'PEM_write_PKCS8PrivateKey'; } {Do not localize}
  21588. {CH fn_sk_SSL_CIPHER_new = 'sk_SSL_CIPHER_new'; } {Do not localize}
  21589. {CH fn_sk_SSL_CIPHER_new_null = 'sk_SSL_CIPHER_new_null'; } {Do not localize}
  21590. {CH fn_sk_SSL_CIPHER_free = 'sk_SSL_CIPHER_free'; } {Do not localize}
  21591. {CH fn_sk_SSL_CIPHER_num = 'sk_SSL_CIPHER_num'; } {Do not localize}
  21592. {CH fn_sk_SSL_CIPHER_value = 'sk_SSL_CIPHER_value'; } {Do not localize}
  21593. {CH fn_sk_SSL_CIPHER_set = 'sk_SSL_CIPHER_set'; } {Do not localize}
  21594. {CH fn_sk_SSL_CIPHER_zero = 'sk_SSL_CIPHER_zero'; } {Do not localize}
  21595. {CH fn_sk_SSL_CIPHER_push = 'sk_SSL_CIPHER_push'; } {Do not localize}
  21596. {CH fn_sk_SSL_CIPHER_unshift = 'sk_SSL_CIPHER_unshift'; } {Do not localize}
  21597. {CH fn_sk_SSL_CIPHER_find = 'sk_SSL_CIPHER_find'; } {Do not localize}
  21598. {CH fn_sk_SSL_CIPHER_delete = 'sk_SSL_CIPHER_delete'; } {Do not localize}
  21599. {CH fn_sk_SSL_CIPHER_delete_ptr = 'sk_SSL_CIPHER_delete_ptr'; } {Do not localize}
  21600. {CH fn_sk_SSL_CIPHER_insert = 'sk_SSL_CIPHER_insert'; } {Do not localize}
  21601. {CH fn_sk_SSL_CIPHER_dup = 'sk_SSL_CIPHER_dup'; } {Do not localize}
  21602. {CH fn_sk_SSL_CIPHER_pop_free = 'sk_SSL_CIPHER_pop_free'; } {Do not localize}
  21603. {CH fn_sk_SSL_CIPHER_shift = 'sk_SSL_CIPHER_shift'; } {Do not localize}
  21604. {CH fn_sk_SSL_CIPHER_pop = 'sk_SSL_CIPHER_pop'; } {Do not localize}
  21605. {CH fn_sk_SSL_CIPHER_sort = 'sk_SSL_CIPHER_sort'; } {Do not localize}
  21606. {CH fn_sk_SSL_COMP_new = 'sk_SSL_COMP_new'; } {Do not localize}
  21607. {CH fn_sk_SSL_COMP_new_null = 'sk_SSL_COMP_new_null'; } {Do not localize}
  21608. {CH fn_sk_SSL_COMP_free = 'sk_SSL_COMP_free'; } {Do not localize}
  21609. {CH fn_sk_SSL_COMP_num = 'sk_SSL_COMP_num'; } {Do not localize}
  21610. {CH fn_sk_SSL_COMP_value = 'sk_SSL_COMP_value'; } {Do not localize}
  21611. {CH fn_sk_SSL_COMP_set = 'sk_SSL_COMP_set'; } {Do not localize}
  21612. {CH fn_sk_SSL_COMP_zero = 'sk_SSL_COMP_zero'; } {Do not localize}
  21613. {CH fn_sk_SSL_COMP_push = 'sk_SSL_COMP_push'; } {Do not localize}
  21614. {CH fn_sk_SSL_COMP_unshift = 'sk_SSL_COMP_unshift'; } {Do not localize}
  21615. {CH fn_sk_SSL_COMP_find = 'sk_SSL_COMP_find'; } {Do not localize}
  21616. {CH fn_sk_SSL_COMP_delete = 'sk_SSL_COMP_delete'; } {Do not localize}
  21617. {CH fn_sk_SSL_COMP_delete_ptr = 'sk_SSL_COMP_delete_ptr'; } {Do not localize}
  21618. {CH fn_sk_SSL_COMP_insert = 'sk_SSL_COMP_insert'; } {Do not localize}
  21619. {CH fn_sk_SSL_COMP_dup = 'sk_SSL_COMP_dup'; } {Do not localize}
  21620. {CH fn_sk_SSL_COMP_pop_free = 'sk_SSL_COMP_pop_free'; } {Do not localize}
  21621. {CH fn_sk_SSL_COMP_shift = 'sk_SSL_COMP_shift'; } {Do not localize}
  21622. {CH fn_sk_SSL_COMP_pop = 'sk_SSL_COMP_pop'; } {Do not localize}
  21623. {CH fn_sk_SSL_COMP_sort = 'sk_SSL_COMP_sort'; } {Do not localize}
  21624. {$IFNDEF OPENSSL_NO_BIO}
  21625. {CH fn_BIO_f_ssl = 'BIO_f_ssl'; } {Do not localize}
  21626. {CH fn_BIO_new_ssl = 'BIO_new_ssl'; } {Do not localize}
  21627. {CH fn_BIO_new_ssl_connect = 'BIO_new_ssl_connect'; } {Do not localize}
  21628. {CH fn_BIO_new_buffer_ssl_connect = 'BIO_new_buffer_ssl_connect'; } {Do not localize}
  21629. {CH fn_BIO_ssl_copy_session_id = 'BIO_ssl_copy_session_id'; } {Do not localize}
  21630. {CH fn_BIO_ssl_shutdown = 'BIO_ssl_shutdown'; } {Do not localize}
  21631. {$ENDIF}
  21632. fn_SSL_CTX_set_cipher_list = 'SSL_CTX_set_cipher_list'; {Do not localize}
  21633. fn_SSL_CTX_new = 'SSL_CTX_new'; {Do not localize}
  21634. fn_SSL_CTX_free = 'SSL_CTX_free'; {Do not localize}
  21635. fn_SSL_callback_ctrl = 'SSL_callback_ctrl'; {Do not localize}
  21636. fn_SSL_CTX_callback_ctrl = 'SSL_CTX_callback_ctrl'; {Do not localize}
  21637. {CH fn_SSL_CTX_set_timeout = 'SSL_CTX_set_timeout'; } {Do not localize}
  21638. {CH fn_SSL_CTX_get_timeout = 'SSL_CTX_get_timeout'; } {Do not localize}
  21639. {CH fn_SSL_CTX_get_cert_store = 'SSL_CTX_get_cert_store'; } {Do not localize}
  21640. {CH fn_SSL_CTX_set_cert_store = 'SSL_CTX_set_cert_store'; } {Do not localize}
  21641. {CH fn_SSL_want = 'SSL_want'; } {Do not localize}
  21642. {CH fn_SSL_clear = 'SSL_clear'; } {Do not localize}
  21643. {CH fn_SSL_CTX_flush_sessions = 'SSL_CTX_flush_sessions'; } {Do not localize}
  21644. fn_SSL_get_current_cipher = 'SSL_get_current_cipher'; {Do not localize}
  21645. fn_SSL_CIPHER_get_bits = 'SSL_CIPHER_get_bits'; {Do not localize}
  21646. fn_SSL_CIPHER_get_version = 'SSL_CIPHER_get_version'; {Do not localize}
  21647. fn_SSL_CIPHER_get_name = 'SSL_CIPHER_get_name'; {Do not localize}
  21648. {CH fn_SSL_get_fd = 'SSL_get_fd'; } {Do not localize}
  21649. {CH fn_SSL_get_cipher_list = 'SSL_get_cipher_list'; } {Do not localize}
  21650. {CH fn_SSL_get_shared_ciphers = 'SSL_get_shared_ciphers'; } {Do not localize}
  21651. {CH fn_SSL_get_read_ahead = 'SSL_get_read_ahead'; } {Do not localize}
  21652. fn_SSL_pending = 'SSL_pending'; {Do not localize}
  21653. {$IFNDEF OPENSSL_NO_SOCK}
  21654. fn_SSL_set_fd = 'SSL_set_fd'; {Do not localize}
  21655. {CH fn_SSL_set_rfd = 'SSL_set_rfd'; } {Do not localize}
  21656. {CH fn_SSL_set_wfd = 'SSL_set_wfd'; } {Do not localize}
  21657. {$ENDIF}
  21658. {$IFNDEF OPENSSL_NO_BIO}
  21659. {CH fn_SSL_set_bio = 'SSL_set_bio'; } {Do not localize}
  21660. {CH fn_SSL_get_rbio = 'SSL_get_rbio'; } {Do not localize}
  21661. {CH fn_SSL_get_wbio = 'SSL_get_wbio'; } {Do not localize}
  21662. {$ENDIF}
  21663. {CH fn_SSL_set_cipher_list = 'SSL_set_cipher_list'; } {Do not localize}
  21664. {CH fn_SSL_set_read_ahead = 'SSL_set_read_ahead'; } {Do not localize}
  21665. {CH fn_SSL_get_verify_mode = 'SSL_get_verify_mode'; } {Do not localize}
  21666. {CH fn_SSL_get_verify_depth = 'SSL_get_verify_depth'; } {Do not localize}
  21667. {CH fn_SSL_set_verify = 'SSL_set_verify'; } {Do not localize}
  21668. {CH fn_SSL_set_verify_depth = 'SSL_set_verify_depth'; } {Do not localize}
  21669. {$IFNDEF OPENSSL_NO_RSA}
  21670. {CH fn_SSL_use_RSAPrivateKey = 'SSL_use_RSAPrivateKey'; } {Do not localize}
  21671. {CH fn_SSL_use_RSAPrivateKey_ASN1 = 'SSL_use_RSAPrivateKey_ASN1'; } {Do not localize}
  21672. {$ENDIF}
  21673. {CH fn_SSL_use_PrivateKey = 'SSL_use_PrivateKey'; } {Do not localize}
  21674. {CH fn_SSL_use_PrivateKey_ASN1 = 'SSL_use_PrivateKey_ASN1'; } {Do not localize}
  21675. {CH fn_SSL_use_certificate = 'SSL_use_certificate'; } {Do not localize}
  21676. {CH fn_SSL_use_certificate_ASN1 = 'SSL_use_certificate_ASN1'; } {Do not localize}
  21677. {CH fn_SSL_use_RSAPrivateKey_file = 'SSL_use_RSAPrivateKey_file'; } {Do not localize}
  21678. {CH fn_SSL_use_PrivateKey_file = 'SSL_use_PrivateKey_file'; } {Do not localize}
  21679. {CH fn_SSL_use_certificate_file = 'SSL_use_certificate_file'; } {Do not localize}
  21680. {$IFNDEF OPENSSL_NO_RSA}
  21681. {CH fn_SSL_CTX_use_RSAPrivateKey_file = 'SSL_CTX_use_RSAPrivateKey_file'; } {Do not localize}
  21682. {$ENDIF}
  21683. fn_SSL_CTX_use_PrivateKey_file = 'SSL_CTX_use_PrivateKey_file'; {Do not localize}
  21684. fn_SSL_CTX_use_certificate_file = 'SSL_CTX_use_certificate_file'; {Do not localize}
  21685. fn_SSL_CTX_use_certificate_chain_file = 'SSL_CTX_use_certificate_chain_file'; {Do not localize}
  21686. {$ifndef OPENSSL_NO_ENGINE}
  21687. {CH fn_SSL_CTX_set_client_cert_engine = 'SSL_CTX_set_client_cert_engine'; } {Do not localize}
  21688. {$endif}
  21689. {CH fn_SSL_CTX_use_certificate_chain_file = 'SSL_CTX_use_certificate_chain_file'; } {Do not localize}
  21690. fn_SSL_load_client_CA_file = 'SSL_load_client_CA_file'; {Do not localize}
  21691. {CH fn_SSL_add_file_cert_subjects_to_stack = 'SSL_add_file_cert_subjects_to_stack'; } {Do not localize}
  21692. {CH fn_ERR_load_SSL_strings = 'ERR_load_SSL_strings'; } {Do not localize}
  21693. fn_SSL_load_error_strings = 'SSL_load_error_strings'; {Do not localize}
  21694. {CH fn_SSL_state_string = 'SSL_state_string'; } {Do not localize}
  21695. {CH fn_SSL_rstate_string = 'SSL_rstate_string'; } {Do not localize}
  21696. fn_SSL_state_string_long = 'SSL_state_string_long'; {Do not localize}
  21697. {CH fn_SSL_rstate_string_long = 'SSL_rstate_string_long'; } {Do not localize}
  21698. {CH fn_SSL_SESSION_get_time = 'SSL_SESSION_get_time'; } {Do not localize}
  21699. {CH fn_SSL_SESSION_set_time = 'SSL_SESSION_set_time'; } {Do not localize}
  21700. {CH fn_SSL_SESSION_get_timeout = 'SSL_SESSION_get_timeout'; } {Do not localize}
  21701. {CH fn_SSL_SESSION_set_timeout = 'SSL_SESSION_set_timeout'; } {Do not localize}
  21702. fn_SSL_copy_session_id = 'SSL_copy_session_id'; {Do not localize}
  21703. {CH fn_SSL_SESSION_new = 'SSL_SESSION_new'; } {Do not localize}
  21704. {CH fn_SSL_SESSION_hash = 'SSL_SESSION_hash'; } {Do not localize}
  21705. {CH fn_SSL_SESSION_cmp = 'SSL_SESSION_cmp'; } {Do not localize}
  21706. {$IFNDEF OPENSSL_NO_FP_API}
  21707. {CH fn_SSL_SESSION_print_fp = 'SSL_SESSION_print_fp'; } {Do not localize}
  21708. {$ENDIF}
  21709. {$IFNDEF OPENSSL_NO_BIO}
  21710. {CH fn_SSL_SESSION_print = 'SSL_SESSION_print'; } {Do not localize}
  21711. {$ENDIF}
  21712. {CH fn_SSL_SESSION_free = 'SSL_SESSION_free'; } {Do not localize}
  21713. {CH fn_i2d_SSL_SESSION = 'i2d_SSL_SESSION'; } {Do not localize}
  21714. {CH fn_SSL_set_session = 'SSL_set_session'; } {Do not localize}
  21715. {CH fn_SSL_CTX_add_session = 'SSL_CTX_add_session'; } {Do not localize}
  21716. {CH fn_SSL_CTX_remove_session = 'SSL_CTX_remove_session'; } {Do not localize}
  21717. {CH fn_d2i_SSL_SESSION = 'd2i_SSL_SESSION'; } {Do not localize}
  21718. fn_SSL_get_peer_certificate = 'SSL_get_peer_certificate'; {Do not localize}
  21719. {CH fn_SSL_get_peer_cert_chain = 'SSL_get_peer_cert_chain'; } {Do not localize}
  21720. {CH fn_SSL_CTX_get_verify_mode = 'SSL_CTX_get_verify_mode'; } {Do not localize}
  21721. fn_SSL_CTX_get_verify_depth = 'SSL_CTX_get_verify_depth'; {Do not localize}
  21722. fn_SSL_CTX_set_verify = 'SSL_CTX_set_verify'; {Do not localize}
  21723. fn_SSL_CTX_set_verify_depth = 'SSL_CTX_set_verify_depth'; {Do not localize}
  21724. {CH fn_SSL_CTX_set_cert_verify_callback = 'SSL_CTX_set_cert_verify_callback'; } {Do not localize}
  21725. {CH fn_SSL_CTX_use_RSAPrivateKey = 'SSL_CTX_use_RSAPrivateKey'; } {Do not localize}
  21726. {CH fn_SSL_CTX_use_RSAPrivateKey_ASN1 = 'SSL_CTX_use_RSAPrivateKey_ASN1'; } {Do not localize}
  21727. fn_SSL_CTX_use_PrivateKey = 'SSL_CTX_use_PrivateKey'; {Do not localize}
  21728. {CH fn_SSL_CTX_use_PrivateKey_ASN1 = 'SSL_CTX_use_PrivateKey_ASN1'; } {Do not localize}
  21729. fn_SSL_CTX_use_certificate = 'SSL_CTX_use_certificate'; {Do not localize}
  21730. {CH fn_SSL_CTX_use_certificate_ASN1 = 'SSL_CTX_use_certificate_ASN1'; } {Do not localize}
  21731. fn_SSL_CTX_set_default_passwd_cb = 'SSL_CTX_set_default_passwd_cb'; {Do not localize}
  21732. fn_SSL_CTX_set_default_passwd_cb_userdata = 'SSL_CTX_set_default_passwd_cb_userdata'; {Do not localize}
  21733. fn_SSL_CTX_check_private_key = 'SSL_CTX_check_private_key'; {Do not localize}
  21734. {CH fn_SSL_check_private_key = 'SSL_check_private_key'; } {Do not localize}
  21735. fn_SSL_CTX_set_session_id_context = 'SSL_CTX_set_session_id_context'; {Do not localize}
  21736. fn_SSL_new = 'SSL_new'; {Do not localize}
  21737. {CH fn_SSL_set_session_id_context = 'SSL_set_session_id_context'; } {Do not localize}
  21738. fn_SSL_free = 'SSL_free'; {Do not localize}
  21739. fn_SSL_accept = 'SSL_accept'; {Do not localize}
  21740. fn_SSL_connect = 'SSL_connect'; {Do not localize}
  21741. fn_SSL_read = 'SSL_read'; {Do not localize}
  21742. fn_SSL_peek = 'SSL_peek'; {Do not localize}
  21743. fn_SSL_write = 'SSL_write'; {Do not localize}
  21744. fn_SSL_ctrl = 'SSL_ctrl'; {Do not localize}
  21745. fn_SSL_CTX_ctrl = 'SSL_CTX_ctrl'; {Do not localize}
  21746. fn_SSL_get_error = 'SSL_get_error'; {Do not localize}
  21747. {CH fn_SSL_get_version = 'SSL_get_version'; } {Do not localize}
  21748. {CH fn_SSL_CTX_set_ssl_version = 'SSL_CTX_set_ssl_version'; } {Do not localize}
  21749. fn_SSLv2_method = 'SSLv2_method'; {Do not localize}
  21750. fn_SSLv2_server_method = 'SSLv2_server_method'; {Do not localize}
  21751. fn_SSLv2_client_method = 'SSLv2_client_method'; {Do not localize}
  21752. fn_SSLv3_method = 'SSLv3_method'; {Do not localize}
  21753. fn_SSLv3_server_method = 'SSLv3_server_method'; {Do not localize}
  21754. fn_SSLv3_client_method = 'SSLv3_client_method'; {Do not localize}
  21755. fn_SSLv23_method = 'SSLv23_method'; {Do not localize}
  21756. fn_SSLv23_server_method = 'SSLv23_server_method'; {Do not localize}
  21757. fn_SSLv23_client_method = 'SSLv23_client_method'; {Do not localize}
  21758. fn_TLSv1_method = 'TLSv1_method'; {Do not localize}
  21759. fn_TLSv1_server_method = 'TLSv1_server_method'; {Do not localize}
  21760. fn_TLSv1_client_method = 'TLSv1_client_method'; {Do not localize}
  21761. fn_TLSv1_1_method = 'TLSv1_1_method'; {Do not localize}
  21762. fn_TLSv1_1_server_method = 'TLSv1_1_server_method'; {Do not localize}
  21763. fn_TLSv1_1_client_method = 'TLSv1_1_client_method'; {Do not localize}
  21764. fn_TLSv1_2_method = 'TLSv1_2_method'; {Do not localize}
  21765. fn_TLSv1_2_server_method = 'TLSv1_2_server_method'; {Do not localize}
  21766. fn_TLSv1_2_client_method = 'TLSv1_2_client_method'; {Do not localize}
  21767. fn_DTLSv1_method = 'DTLSv1_method'; {Do not localize}
  21768. fn_DTLSv1_server_method = 'DTLSv1_server_method'; {Do not localize}
  21769. fn_DTLSv1_client_method = 'DTLSv1_client_method'; {Do not localize}
  21770. {CH fn_SSL_get_ciphers = 'SSL_get_ciphers'; } {Do not localize}
  21771. {CH fn_SSL_do_handshake = 'SSL_do_handshake'; } {Do not localize}
  21772. {CH fn_SSL_renegotiate = 'SSL_renegotiate'; } {Do not localize}
  21773. fn_SSL_shutdown = 'SSL_shutdown'; {Do not localize}
  21774. {CH fn_SSL_get_ssl_method = 'SSL_get_ssl_method'; } {Do not localize}
  21775. {CH fn_SSL_set_ssl_method = 'SSL_set_ssl_method'; } {Do not localize}
  21776. fn_SSL_alert_type_string_long = 'SSL_alert_type_string_long'; {Do not localize}
  21777. {CH fn_SSL_alert_type_string = 'SSL_alert_type_string'; } {Do not localize}
  21778. fn_SSL_alert_desc_string_long = 'SSL_alert_desc_string_long'; {Do not localize}
  21779. {CH fn_SSL_alert_desc_string = 'SSL_alert_desc_string'; } {Do not localize}
  21780. {CH fn_SSL_set_client_CA_list = 'SSL_set_client_CA_list'; } {Do not localize}
  21781. fn_SSL_CTX_set_client_CA_list = 'SSL_CTX_set_client_CA_list'; {Do not localize}
  21782. {CH fn_SSL_get_client_CA_list = 'SSL_get_client_CA_list'; } {Do not localize}
  21783. {CH fn_SSL_CTX_get_client_CA_list = 'SSL_CTX_get_client_CA_list'; } {Do not localize}
  21784. {CH fn_SSL_add_client_CA = 'SSL_add_client_CA'; } {Do not localize}
  21785. {CH fn_SSL_CTX_add_client_CA = 'SSL_CTX_add_client_CA'; } {Do not localize}
  21786. fn_SSL_set_connect_state = 'SSL_set_connect_state'; {Do not localize}
  21787. fn_SSL_set_accept_state = 'SSL_set_accept_state'; {Do not localize}
  21788. {CH fn_SSL_get_default_timeout = 'SSL_get_default_timeout'; } {Do not localize}
  21789. {CH fn_SSL_library_init = 'SSL_library_init'; } {Do not localize}
  21790. fn_SSL_CIPHER_description = 'SSL_CIPHER_description'; {Do not localize}
  21791. {CH fn_SSL_dup_CA_list = 'SSL_dup_CA_list'; } {Do not localize}
  21792. {CH fn_SSL_dup = 'SSL_dup'; } {Do not localize}
  21793. {CH fn_SSL_get_certificate = 'SSL_get_certificate'; } {Do not localize}
  21794. {CH fn_SSL_get_privatekey = 'SSL_get_privatekey'; } {Do not localize}
  21795. {CH fn_SSL_CTX_set_quiet_shutdown = 'SSL_CTX_set_quiet_shutdown'; } {Do not localize}
  21796. {CH fn_SSL_CTX_get_quiet_shutdown = 'SSL_CTX_get_quiet_shutdown'; } {Do not localize}
  21797. {CH fn_SSL_set_quiet_shutdown = 'SSL_set_quiet_shutdown'; } {Do not localize}
  21798. {CH fn_SSL_get_quiet_shutdown = 'SSL_get_quiet_shutdown'; } {Do not localize}
  21799. fn_SSL_set_shutdown = 'SSL_set_shutdown'; {Do not localize}
  21800. {CH fn_SSL_get_shutdown = 'SSL_get_shutdown'; } {Do not localize}
  21801. {CH fn_SSL_version = 'SSL_version'; } {Do not localize}
  21802. fn_SSL_CTX_set_default_verify_paths = 'SSL_CTX_set_default_verify_paths'; {Do not localize}
  21803. fn_SSL_CTX_load_verify_locations = 'SSL_CTX_load_verify_locations'; {Do not localize}
  21804. fn_SSL_get_session = 'SSL_get_session'; {Do not localize}
  21805. {CH fn_SSL_get_SSL_CTX = 'SSL_get_SSL_CTX'; } {Do not localize}
  21806. {CH fn_SSL_set_SSL_CTX = 'SSL_set_SSL_CTX'; } {Do not localize}
  21807. {CH fn_OPENSSL_isservice = 'OPENSSL_isservice'; }{Do not localize}
  21808. {CH fn_SSL_set_info_callback = 'SSL_set_info_callback'; } {Do not localize}
  21809. {CH fn_SSL_state = 'SSL_state'; } {Do not localize}
  21810. fn_SSL_set_verify_result = 'SSL_set_verify_result'; {Do not localize}
  21811. fn_SSL_get_verify_result = 'SSL_get_verify_result'; {Do not localize}
  21812. fn_SSL_set_ex_data = 'SSL_set_ex_data'; {Do not localize}
  21813. fn_SSL_get_ex_data = 'SSL_get_ex_data'; {Do not localize}
  21814. {CH fn_SSL_get_ex_new_index = 'SSL_get_ex_new_index'; } {Do not localize}
  21815. {CH fn_SSL_SESSION_set_ex_data = 'SSL_SESSION_set_ex_data'; } {Do not localize}
  21816. {CH fn_SSL_SESSION_get_ex_data = 'SSL_SESSION_get_ex_data'; } {Do not localize}
  21817. {CH fn_SSL_SESSION_get_ex_new_index = 'SSL_SESSION_get_ex_new_index'; } {Do not localize}
  21818. {CH fn_SSL_CTX_set_ex_data = 'SSL_CTX_set_ex_data'; } {Do not localize}
  21819. {CH fn_SSL_CTX_get_ex_data = 'SSL_CTX_get_ex_data'; } {Do not localize}
  21820. {CH fn_SSL_CTX_get_ex_new_index = 'SSL_CTX_get_ex_new_index'; } {Do not localize}
  21821. {CH fn_SSL_get_ex_data_X509_STORE_CTX_idx = 'SSL_get_ex_data_X509_STORE_CTX_idx'; } {Do not localize}
  21822. {$IFNDEF OPENSSL_NO_RSA}
  21823. {CH fn_SSL_CTX_set_tmp_rsa_callback = 'SSL_CTX_set_tmp_rsa_callback'; } {Do not localize}
  21824. {CH fn_SSL_set_tmp_rsa_callback = 'SSL_set_tmp_rsa_callback'; } {Do not localize}
  21825. {$ENDIF}
  21826. {$IFNDEF OPENSSL_NO_DH}
  21827. {CH fn_SSL_CTX_set_tmp_dh_callback = 'SSL_CTX_set_tmp_dh_callback'; } {Do not localize}
  21828. {CH fn_SSL_set_tmp_dh_callback = 'SSL_set_tmp_dh_callback'; } {Do not localize}
  21829. {$ENDIF}
  21830. {$IFNDEF OPENSSL_NO_ECDH}
  21831. {CH fn_SSL_CTX_set_tmp_ecdh_callback = 'SSL_CTX_set_tmp_ecdh_callback'; } {Do not localize}
  21832. {CH fn_SSL_set_tmp_ecdh_callback = 'SSL_set_tmp_ecdh_callback'; } {Do not localize}
  21833. {$ENDIF}
  21834. {CH fn_SSL_COMP_add_compression_method = 'SSL_COMP_add_compression_method'; } {Do not localize}
  21835. {CH fn_SSL_get_current_expansion = 'SSL_get_current_expansion'; } {Do not localize}
  21836. {CH fn_SSL_COMP_get_name = 'SSL_COMP_get_name'; } {Do not localize}
  21837. fn_SSL_COMP_get_compression_methods = 'SSL_COMP_get_compression_methods'; {Do not localize}
  21838. fn_SSL_COMP_free_compression_methods = 'SSL_COMP_free_compression_methods'; {Do not localize}
  21839. // GREGOR
  21840. //fn_SSLeay_add_ssl_algorithms = 'mi_SSLeay_add_ssl_algorithms'; {Do not localize}
  21841. //why does the function name not match?
  21842. //
  21843. // RLebeau: because it is not an actual function of its own to begin with.
  21844. // It is a precompiler macro that maps to another function
  21845. fn_SSLeay_add_ssl_algorithms = 'SSL_library_init'; {Do not localize}
  21846. fn_SSL_SESSION_get_id = 'SSL_SESSION_get_id'; {Do not localize}
  21847. {CH fn_SSL_is_init_finished = 'mi_SSL_is_init_finished'; } {Do not localize}
  21848. {CH fn_SSL_in_init = 'mi_SSL_in_init'; } {Do not localize}
  21849. {CH fn_SSL_in_before = 'mi_SSL_in_before'; } {Do not localize}
  21850. {CH fn_SSL_in_connect_init = 'mi_SSL_in_connect_init'; } {Do not localize}
  21851. {CH fn_SSL_in_accept_init = 'mi_SSL_in_accept_init'; } {Do not localize}
  21852. {CH fn_fopen = 'mi_fopen'; } {Do not localize}
  21853. {CH fn_fclose = 'mi_fclose'; } {Do not localize}
  21854. //
  21855. fn_PKCS12_create = 'PKCS12_create'; {Do not localize}
  21856. fn_i2d_PKCS12_bio = 'i2d_PKCS12_bio'; {Do not localize}
  21857. fn_PKCS12_free = 'PKCS12_free'; {Do not localize}
  21858. {CH fn_RAND_set_rand_method = 'RAND_set_rand_method'; } {Do not localize}
  21859. {CH fn_RAND_get_rand_method = 'RAND_get_rand_method'; } {Do not localize}
  21860. {$IFNDEF OPENSSL_NO_ENGINE}
  21861. {CH fn_RAND_set_rand_engine = 'RAND_set_rand_engine'; } {Do not localize}
  21862. {$ENDIF}
  21863. {CH fn_RAND_SSLeay = 'RAND_SSLeay'; } {Do not localize}
  21864. fn_RAND_cleanup = 'RAND_cleanup'; {Do not localize}
  21865. fn_RAND_bytes = 'RAND_bytes'; {Do not localize}
  21866. fn_RAND_pseudo_bytes = 'RAND_pseudo_bytes'; {Do not localize}
  21867. fn_RAND_seed = 'RAND_seed'; {Do not localize}
  21868. fn_RAND_add = 'RAND_add'; {Do not localize}
  21869. {CH fn_RAND_load_file = 'RAND_load_file'; } {Do not localize}
  21870. {CH fn_RAND_write_file = 'RAND_write_file'; } {Do not localize}
  21871. {CH fn_RAND_file_name = 'RAND_file_name'; } {Do not localize}
  21872. fn_RAND_status = 'RAND_status'; {Do not localize}
  21873. {CH fn_RAND_query_egd_bytes = 'RAND_query_egd_bytes'; } {Do not localize}
  21874. {CH fn_RAND_egd = 'RAND_egd'; } {Do not localize}
  21875. {CH fn_RAND_egd_bytes = 'RAND_egd_bytes'; } {Do not localize}
  21876. {CH fn_RAND_poll = 'RAND_poll'; } {Do not localize}
  21877. {$IFDEF SYS_WIN}
  21878. //GREGOR
  21879. fn_RAND_screen = 'RAND_screen'; {Do not localize}
  21880. fn_RAND_event = 'RAND_event'; {Do not localize}
  21881. {$ENDIF}
  21882. {CH fn_ERR_load_RAND_strings = 'ERR_load_RAND_strings'; } {Do not localize}
  21883. //experimental
  21884. fn_ERR_put_error = 'ERR_put_error'; {Do not localize}
  21885. fn_ERR_get_error = 'ERR_get_error'; {Do not localize}
  21886. {CH fn_ERR_get_error_line = 'ERR_get_error_line'; } {Do not localize}
  21887. {CH fn_ERR_get_error_line_data = 'ERR_get_error_line_data'; } {Do not localize}
  21888. fn_ERR_peek_error = 'ERR_peek_error'; {Do not localize}
  21889. fn_ERR_peek_last_error = 'ERR_peek_last_error'; {Do not localize}
  21890. {CH fn_ERR_peek_error_line = 'ERR_peek_error_line'; } {Do not localize}
  21891. {CH fn_ERR_peek_error_line_data = 'ERR_peek_error_line_data'; } {Do not localize}
  21892. fn_ERR_peek_last_error_line = 'ERR_peek_last_error_line'; {Do not localize}
  21893. {CH fn_ERR_peek_last_error_line_data = 'ERR_peek_last_error_line_data'; } {Do not localize}
  21894. fn_ERR_clear_error = 'ERR_clear_error'; {Do not localize}
  21895. fn_ERR_error_string = 'ERR_error_string'; {Do not localize}
  21896. fn_ERR_error_string_n = 'ERR_error_string_n'; {Do not localize}
  21897. fn_ERR_lib_error_string = 'ERR_lib_error_string'; {Do not localize}
  21898. fn_ERR_func_error_string = 'ERR_func_error_string'; {Do not localize}
  21899. fn_ERR_reason_error_string = 'ERR_reason_error_string'; {Do not localize}
  21900. {CH fn_ERR_print_errors_cb = 'ERR_print_errors_cb'; } {Do not localize}
  21901. {$IFNDEF OPENSSL_NO_FP_API}
  21902. {CH fn_ERR_print_errors_fp = 'ERR_print_errors_fp'; } {Do not localize}
  21903. {$ENDIF}
  21904. {$IFNDEF OPENSSL_NO_BIO}
  21905. {CH fn_ERR_print_errors = 'ERR_print_errors'; } {Do not localize}
  21906. {CH fn_ERR_add_error_data = 'ERR_add_error_data'; } {Do not localize}
  21907. {$ENDIF}
  21908. fn_ERR_load_ERR_strings = 'ERR_load_ERR_strings'; {Do not localize}
  21909. fn_ERR_free_strings = 'ERR_free_strings'; {do not localize}
  21910. fn_ERR_remove_thread_state = 'ERR_remove_thread_state'; {Do not localize}
  21911. fn_ERR_remove_state = 'ERR_remove_state'; {do not localize}
  21912. {CH fn_ERR_unload_strings = 'ERR_unload_strings'; } {Do not localize}
  21913. {CH fn_ERR_remove_thread_state = 'ERR_remove_thread_state'; } {Do not localize}
  21914. {CH fn_ERR_load_ERR_strings = 'ERR_load_ERR_strings'; } {Do not localize}
  21915. {CH fn_ERR_load_crypto_strings = 'ERR_load_crypto_strings'; } {Do not localize}
  21916. {CH fn_ERR_free_strings = 'ERR_free_strings'; } {Do not localize}
  21917. {CH fn_ERR_add_error_vdata = 'ERR_add_error_vdata'; } {Do not localize}
  21918. {CH fn_ERR_remove_state = 'ERR_remove_state'; } {Do not localize}
  21919. {CH fn_ERR_get_state = 'ERR_get_state'; } {Do not localize}
  21920. {$IFNDEF OPENSSL_NO_LHASH}
  21921. {CH fn_ERR_get_string_table = 'ERR_get_string_table'; } {Do not localize}
  21922. {CH fn_ERR_get_err_state_table = 'ERR_get_err_state_table'; } {Do not localize}
  21923. {CH fn_ERR_release_err_state_table = 'ERR_release_err_state_table'; } {Do not localize}
  21924. {$ENDIF}
  21925. {CH fn_ERR_get_next_error_library = 'ERR_get_next_error_library'; } {Do not localize}
  21926. {CH fn_ERR_set_mark = 'ERR_set_mark'; } {Do not localize}
  21927. {CH fn_ERR_pop_to_mark = 'ERR_pop_to_mark'; } {Do not localize}
  21928. {$IFDEF OPENSSL_FIPS}
  21929. {CH fn_int_ERR_set_state_func = 'int_ERR_set_state_func'; } {Do not localize}
  21930. {CH fn_int_ERR_lib_init = 'int_ERR_lib_init'; } {Do not localize}
  21931. {$ENDIF}
  21932. {CH fn_UI_new = 'UI_new'; } {Do not localize}
  21933. {CH fn_UI_new_method = 'UI_new_method'; } {Do not localize}
  21934. {CH fn_UI_free = 'UI_free'; } {Do not localize}
  21935. {CH fn_UI_add_input_string = 'UI_add_input_string'; } {Do not localize}
  21936. {CH fn_UI_dup_input_string = 'UI_dup_input_string'; } {Do not localize}
  21937. {CH fn_UI_add_verify_string = 'UI_add_verify_string'; } {Do not localize}
  21938. {CH fn_UI_dup_verify_string = 'UI_dup_verify_string'; } {Do not localize}
  21939. {CH fn_UI_add_input_boolean = 'UI_add_input_boolean'; } {Do not localize}
  21940. {CH fn_UI_dup_input_boolean = 'UI_dup_input_boolean'; } {Do not localize}
  21941. {CH fn_UI_add_info_string = 'UI_add_info_string'; } {Do not localize}
  21942. {CH fn_UI_dup_info_string = 'UI_dup_info_string'; } {Do not localize}
  21943. {CH fn_UI_add_error_string = 'UI_add_error_string'; } {Do not localize}
  21944. {CH fn_UI_dup_error_string = 'UI_dup_error_string'; } {Do not localize}
  21945. {CH fn_UI_construct_prompt = 'UI_construct_prompt'; } {Do not localize}
  21946. {CH fn_UI_add_user_data = 'UI_add_user_data'; } {Do not localize}
  21947. {CH fn_UI_get0_user_data = 'UI_get0_user_data'; } {Do not localize}
  21948. {CH fn_UI_get0_resul = 'UI_get0_resul'; } {Do not localize}
  21949. {CH fn_UI_process = 'UI_process'; } {Do not localize}
  21950. {CH fn_UI_ctrl = 'UI_ctrl'; } {Do not localize}
  21951. {CH fn_UI_get_ex_new_index = 'UI_get_ex_new_index'; } {Do not localize}
  21952. {CH fn_UI_set_ex_data = 'UI_set_ex_data'; } {Do not localize}
  21953. {CH fn_UI_get_ex_data = 'UI_get_ex_data'; } {Do not localize}
  21954. {CH fn_UI_set_default_method = 'UI_set_default_method'; } {Do not localize}
  21955. {CH fn_UI_get_method = 'UI_get_method'; } {Do not localize}
  21956. {CH fn_UI_set_method = 'UI_set_method'; } {Do not localize}
  21957. {CH fn_UI_OpenSSL = 'UI_OpenSSL'; } {Do not localize}
  21958. {CH fn_UI_create_method = 'UI_create_method'; } {Do not localize}
  21959. {CH fn_UI_destroy_method = 'UI_destroy_method'; } {Do not localize}
  21960. {CH fn_UI_method_set_opener = 'UI_method_set_opener'; } {Do not localize}
  21961. {CH fn_UI_method_set_writer = 'UI_method_set_writer'; } {Do not localize}
  21962. {CH fn_UI_method_set_flusher = 'UI_method_set_flusher'; } {Do not localize}
  21963. {CH fn_UI_method_set_reader = 'UI_method_set_reader'; } {Do not localize}
  21964. {CH fn_UI_method_set_closer = 'UI_method_set_closer'; } {Do not localize}
  21965. {CH fn_UI_get_string_type = 'UI_get_string_type'; } {Do not localize}
  21966. {CH fn_UI_get_input_flags = 'UI_get_input_flags'; } {Do not localize}
  21967. {CH fn_UI_get0_output_string = 'UI_get0_output_string'; } {Do not localize}
  21968. {CH fn_UI_get0_action_string = 'UI_get0_action_string'; } {Do not localize}
  21969. {CH fn_UI_get0_result_string = 'UI_get0_result_string'; } {Do not localize}
  21970. {CH fn_UI_get0_test_string = 'UI_get0_test_string'; } {Do not localize}
  21971. {CH fn_UI_get_result_minsize = 'UI_get_result_minsize'; } {Do not localize}
  21972. {CH fn_UI_get_result_maxsize = 'UI_get_result_maxsize'; } {Do not localize}
  21973. {CH fn_UI_set_result = 'UI_set_result'; } {Do not localize}
  21974. {CH fn_UI_UTIL_read_pw_string = 'UI_UTIL_read_pw_string'; } {Do not localize}
  21975. {CH fn_UI_UTIL_read_pw = 'UI_UTIL_read_pw'; } {Do not localize}
  21976. {CH fn_ERR_load_UI_strings = 'ERR_load_UI_strings'; } {Do not localize}
  21977. {$IFNDEF OPENSSL_NO_ENGINE}
  21978. {CH fn_ENGINE_get_first = 'ENGINE_get_first'; } {Do not localize}
  21979. {CH fn_ENGINE_get_last = 'ENGINE_get_last'; } {Do not localize}
  21980. {CH fn_ENGINE_get_next = 'ENGINE_get_next'; } {Do not localize}
  21981. {CH fn_ENGINE_get_prev = 'ENGINE_get_prev'; } {Do not localize}
  21982. {CH fn_ENGINE_add = 'ENGINE_add'; } {Do not localize}
  21983. {CH fn_ENGINE_remove = 'ENGINE_remove'; } {Do not localize}
  21984. {CH fn_ENGINE_by_id = 'ENGINE_by_id'; } {Do not localize}
  21985. {CH fn_ENGINE_load_openssl = 'ENGINE_load_openssl'; } {Do not localize}
  21986. {CH fn_ENGINE_load_dynamic = 'ENGINE_load_dynamic'; } {Do not localize}
  21987. {$IFNDEF OPENSSL_NO_STATIC_ENGINE}
  21988. {CH fn_ENGINE_load_4758cca = 'ENGINE_load_4758cca'; } {Do not localize}
  21989. {CH fn_ENGINE_load_aep = 'ENGINE_load_aep'; } {Do not localize}
  21990. {CH fn_ENGINE_load_atalla = 'ENGINE_load_atalla'; } {Do not localize}
  21991. {CH fn_ENGINE_load_chil = 'ENGINE_load_chil'; } {Do not localize}
  21992. {CH fn_ENGINE_load_cswift = 'ENGINE_load_cswift'; } {Do not localize}
  21993. {$IFNDEF OPENSSL_NO_GMP}
  21994. {CH fn_ENGINE_load_gmp = 'ENGINE_load_gmp'; } {Do not localize}
  21995. {$ENDIF}
  21996. {CH fn_ENGINE_load_nuron = 'ENGINE_load_nuron'; } {Do not localize}
  21997. {CH fn_ENGINE_load_sureware = 'ENGINE_load_sureware'; } {Do not localize}
  21998. {CH fn_ENGINE_load_ubsec = 'ENGINE_load_ubsec'; } {Do not localize}
  21999. {$ENDIF}
  22000. {CH fn_ENGINE_load_cryptodev = 'ENGINE_load_cryptodev'; } {Do not localize}
  22001. {CH fn_ENGINE_load_padlock = 'ENGINE_load_padlock'; } {Do not localize}
  22002. {CH fn_ENGINE_load_builtin_engines = 'ENGINE_load_builtin_engines'; } {Do not localize}
  22003. {$IFDEF WIN32_OR_WIN64}
  22004. {$IFNDEF OPENSSL_NO_CAPIENG}
  22005. {CH fn_ENGINE_load_capi = 'ENGINE_load_capi'; } {Do not localize}
  22006. {$ENDIF}
  22007. {$ENDIF}
  22008. {CH fn_ENGINE_get_table_flags = 'ENGINE_get_table_flags'; } {Do not localize}
  22009. {CH fn_ENGINE_set_table_flags = 'ENGINE_set_table_flags'; } {Do not localize}
  22010. {CH fn_ENGINE_register_RSA = 'ENGINE_register_RSA'; } {Do not localize}
  22011. {CH fn_ENGINE_unregister_RSA = 'ENGINE_unregister_RSA'; } {Do not localize}
  22012. {CH fn_ENGINE_register_all_RSA = 'ENGINE_register_all_RSA'; } {Do not localize}
  22013. {CH fn_ENGINE_register_DSA = 'ENGINE_register_DSA'; } {Do not localize}
  22014. {CH fn_ENGINE_unregister_DSA = 'ENGINE_unregister_DSA'; } {Do not localize}
  22015. {CH fn_ENGINE_register_all_DSA = 'ENGINE_register_all_DSA'; } {Do not localize}
  22016. {CH fn_ENGINE_register_ECDH = 'ENGINE_register_ECDH'; } {Do not localize}
  22017. {CH fn_ENGINE_unregister_ECDH = 'ENGINE_unregister_ECDH'; } {Do not localize}
  22018. {CH fn_ENGINE_register_all_ECDH = 'ENGINE_register_all_ECDH'; } {Do not localize}
  22019. {CH fn_ENGINE_register_ECDSA = 'ENGINE_register_ECDSA'; } {Do not localize}
  22020. {CH fn_ENGINE_unregister_ECDSA = 'ENGINE_unregister_ECDSA'; } {Do not localize}
  22021. {CH fn_ENGINE_register_all_ECDSA = 'ENGINE_register_all_ECDSA'; } {Do not localize}
  22022. {CH fn_ENGINE_register_DH = 'ENGINE_register_DH'; } {Do not localize}
  22023. {CH fn_ENGINE_unregister_DH = 'ENGINE_unregister_DH'; } {Do not localize}
  22024. {CH fn_ENGINE_register_all_DH = 'ENGINE_register_all_DH'; } {Do not localize}
  22025. {CH fn_ENGINE_register_RAND = 'ENGINE_register_RAND'; } {Do not localize}
  22026. {CH fn_ENGINE_unregister_RAND = 'ENGINE_unregister_RAND'; } {Do not localize}
  22027. {CH fn_ENGINE_register_all_RAND = 'ENGINE_register_all_RAND'; } {Do not localize}
  22028. {CH fn_ENGINE_register_STORE = 'ENGINE_register_STORE'; } {Do not localize}
  22029. {CH fn_ENGINE_unregister_STORE = 'ENGINE_unregister_STORE'; } {Do not localize}
  22030. {CH fn_ENGINE_register_all_STORE = 'ENGINE_register_all_STORE'; } {Do not localize}
  22031. {CH fn_ENGINE_register_ciphers = 'ENGINE_register_ciphers'; } {Do not localize}
  22032. {CH fn_ENGINE_unregister_ciphers = 'ENGINE_unregister_ciphers'; } {Do not localize}
  22033. {CH fn_ENGINE_register_all_ciphers = 'ENGINE_register_all_ciphers'; } {Do not localize}
  22034. {CH fn_ENGINE_register_digests = 'ENGINE_register_digests'; } {Do not localize}
  22035. {CH fn_ENGINE_unregister_digests = 'ENGINE_unregister_digests'; } {Do not localize}
  22036. {CH fn_ENGINE_register_all_digests= 'ENGINE_register_all_digests'; } {Do not localize}
  22037. {CH fn_ENGINE_register_complete = 'ENGINE_register_complete'; } {Do not localize}
  22038. {CH fn_ENGINE_register_all_complete = 'ENGINE_register_all_complete'; } {Do not localize}
  22039. {CH fn_ENGINE_ctrl = 'ENGINE_ctrl'; } {Do not localize}
  22040. {CH fn_ENGINE_cmd_is_executable = 'ENGINE_cmd_is_executable'; } {Do not localize}
  22041. {CH fn_ENGINE_ctrl_cmd = 'ENGINE_ctrl_cmd'; } {Do not localize}
  22042. {CH fn_ENGINE_ctrl_cmd_string = 'ENGINE_ctrl_cmd_string'; } {Do not localize}
  22043. {CH fn_ENGINE_new = 'ENGINE_new'; } {Do not localize}
  22044. {CH fn_ENGINE_free = 'ENGINE_free'; } {Do not localize}
  22045. {CH fn_ENGINE_up_ref = 'ENGINE_up_ref'; } {Do not localize}
  22046. {CH fn_ENGINE_set_id = 'ENGINE_set_id'; } {Do not localize}
  22047. {CH fn_ENGINE_set_name = 'ENGINE_set_name'; } {Do not localize}
  22048. {CH fn_ENGINE_set_RSA = 'ENGINE_set_RSA'; } {Do not localize}
  22049. {CH fn_ENGINE_set_DSA = 'ENGINE_set_DSA'; } {Do not localize}
  22050. {CH fn_ENGINE_set_ECDH = 'ENGINE_set_ECDH'; } {Do not localize}
  22051. {CH fn_ENGINE_set_ECDSA = 'ENGINE_set_ECDSA'; } {Do not localize}
  22052. {CH fn_ENGINE_set_DH = 'ENGINE_set_DH'; } {Do not localize}
  22053. {CH fn_ENGINE_set_RAND = 'ENGINE_set_RAND'; } {Do not localize}
  22054. {CH fn_ENGINE_set_STORE = 'ENGINE_set_STORE'; } {Do not localize}
  22055. {CH fn_ENGINE_set_destroy_function = 'ENGINE_set_destroy_function'; } {Do not localize}
  22056. {CH fn_ENGINE_set_init_function = 'ENGINE_set_init_function'; } {Do not localize}
  22057. {CH fn_ENGINE_set_finish_function = 'ENGINE_set_finish_function'; } {Do not localize}
  22058. {CH fn_ENGINE_set_ctrl_function = 'ENGINE_set_ctrl_function'; } {Do not localize}
  22059. {CH fn_ENGINE_set_load_privkey_function = 'ENGINE_set_load_privkey_function'; } {Do not localize}
  22060. {CH fn_ENGINE_set_load_pubkey_function = 'ENGINE_set_load_pubkey_function'; } {Do not localize}
  22061. {CH fn_ENGINE_set_load_ssl_client_cert_function = 'ENGINE_set_load_ssl_client_cert_function'; } {Do not localize}
  22062. {CH fn_ENGINE_set_ciphers = 'ENGINE_set_ciphers'; } {Do not localize}
  22063. {CH fn_ENGINE_set_digests = 'ENGINE_set_digests'; } {Do not localize}
  22064. {CH fn_ENGINE_set_flags = 'ENGINE_set_flags'; } {Do not localize}
  22065. {CH fn_ENGINE_set_cmd_defns = 'ENGINE_set_cmd_defns'; } {Do not localize}
  22066. {CH fn_ENGINE_get_ex_new_index = 'ENGINE_get_ex_new_index'; } {Do not localize}
  22067. {CH fn_ENGINE_set_ex_data = 'ENGINE_set_ex_data'; } {Do not localize}
  22068. {CH fn_ENGINE_get_ex_data = 'ENGINE_get_ex_data'; } {Do not localize}
  22069. {CH fn_ENGINE_cleanup = 'ENGINE_cleanup'; } {Do not localize}
  22070. {CH fn_ENGINE_get_id = 'ENGINE_get_id'; } {Do not localize}
  22071. {CH fn_ENGINE_get_name = 'ENGINE_get_name'; } {Do not localize}
  22072. {CH fn_ENGINE_get_RSA = 'ENGINE_get_RSA'; } {Do not localize}
  22073. {CH fn_ENGINE_get_DSA = 'ENGINE_get_DSA'; } {Do not localize}
  22074. {CH fn_ENGINE_get_ECDH = 'ENGINE_get_ECDH'; } {Do not localize}
  22075. {CH fn_ENGINE_get_ECDSA = 'ENGINE_get_ECDSA'; } {Do not localize}
  22076. {CH fn_ENGINE_get_DH = 'ENGINE_get_DH'; } {Do not localize}
  22077. {CH fn_ENGINE_get_RAND = 'ENGINE_get_RAND'; } {Do not localize}
  22078. {CH fn_ENGINE_get_STORE = 'ENGINE_get_STORE'; } {Do not localize}
  22079. {CH fn_ENGINE_get_destroy_function = 'ENGINE_get_destroy_function'; } {Do not localize}
  22080. {CH fn_ENGINE_get_init_function = 'ENGINE_get_init_function'; } {Do not localize}
  22081. {CH fn_ENGINE_get_finish_function = 'ENGINE_get_finish_function'; } {Do not localize}
  22082. {CH fn_ENGINE_get_ctrl_function = 'ENGINE_get_ctrl_function'; } {Do not localize}
  22083. {CH fn_ENGINE_get_load_privkey_function = 'ENGINE_get_load_privkey_function'; } {Do not localize}
  22084. {CH fn_ENGINE_get_load_pubkey_function = 'ENGINE_get_load_pubkey_function'; } {Do not localize}
  22085. {CH fn_ENGINE_get_ssl_client_cert_function = 'ENGINE_get_ssl_client_cert_function'; } {Do not localize}
  22086. {CH fn_ENGINE_get_ciphers = 'ENGINE_get_ciphers'; } {Do not localize}
  22087. {CH fn_ENGINE_get_digests = 'ENGINE_get_digests'; } {Do not localize}
  22088. {CH fn_ENGINE_get_cipher = 'ENGINE_get_cipher'; } {Do not localize}
  22089. {CH fn_ENGINE_get_digest = 'ENGINE_get_digest'; } {Do not localize}
  22090. {CH fn_ENGINE_get_cmd_defns = 'ENGINE_get_cmd_defns'; } {Do not localize}
  22091. {CH fn_ENGINE_get_flags = 'ENGINE_get_flags'; } {Do not localize}
  22092. {CH fn_ENGINE_init = 'ENGINE_init'; } {Do not localize}
  22093. {CH fn_ENGINE_finish = 'ENGINE_finish'; } {Do not localize}
  22094. {CH fn_ENGINE_load_private_key = 'ENGINE_load_private_key'; } {Do not localize}
  22095. {CH fn_ENGINE_load_public_key = 'ENGINE_load_public_key'; } {Do not localize}
  22096. {CH fn_ENGINE_load_ssl_client_cert = 'ENGINE_load_ssl_client_cert'; } {Do not localize}
  22097. {CH fn_ENGINE_get_default_RSA = 'ENGINE_get_default_RSA'; } {Do not localize}
  22098. {CH fn_ENGINE_get_default_DSA = 'ENGINE_get_default_DSA'; } {Do not localize}
  22099. {CH fn_ENGINE_get_default_ECDH = 'ENGINE_get_default_ECDH'; } {Do not localize}
  22100. {CH fn_ENGINE_get_default_ECDSA = 'ENGINE_get_default_ECDSA'; } {Do not localize}
  22101. {CH fn_ENGINE_get_default_DH = 'ENGINE_get_default_DH'; } {Do not localize}
  22102. {CH fn_ENGINE_get_default_RAND = 'ENGINE_get_default_RAND'; } {Do not localize}
  22103. {CH fn_ENGINE_get_cipher_engine = 'ENGINE_get_cipher_engine'; } {Do not localize}
  22104. {CH fn_ENGINE_get_digest_engine = 'ENGINE_get_digest_engine'; } {Do not localize}
  22105. {CH fn_ENGINE_set_default_RSA = 'ENGINE_set_default_RSA'; } {Do not localize}
  22106. {CH fn_ENGINE_set_default_string = 'ENGINE_set_default_string'; } {Do not localize}
  22107. {CH fn_ENGINE_set_default_DSA = 'ENGINE_set_default_DSA'; } {Do not localize}
  22108. {CH fn_ENGINE_set_default_ECDH = 'ENGINE_set_default_ECDH'; } {Do not localize}
  22109. {CH fn_ENGINE_set_default_ECDSA = 'ENGINE_set_default_ECDSA'; } {Do not localize}
  22110. {CH fn_ENGINE_set_default_DH = 'ENGINE_set_default_DH'; } {do not localize}
  22111. {CH fn_ENGINE_set_default_RAND = 'ENGINE_set_default_RAND'; } {Do not localize}
  22112. {CH fn_ENGINE_set_default_ciphers = 'ENGINE_set_default_ciphers'; } {Do not localize}
  22113. {CH fn_ENGINE_set_default_digests = 'ENGINE_set_default_digests'; } {Do not localize}
  22114. {CH fn_ENGINE_set_default = 'ENGINE_set_default'; } {Do not localize}
  22115. {CH fn_ENGINE_add_conf_module = 'ENGINE_add_conf_module'; } {Do not localize}
  22116. {CH fn_ENGINE_get_static_state = 'ENGINE_get_static_state'; } {Do not localize}
  22117. {$IFDEF OPENBSD}
  22118. {CH fn_ENGINE_setup_bsd_cryptodev = 'ENGINE_setup_bsd_cryptodev'; } {Do not localize}
  22119. {$ENDIF}
  22120. {$IFDEF FREEBSD}
  22121. {CH fn_ENGINE_setup_bsd_cryptodev = 'ENGINE_setup_bsd_cryptodev'; } {Do not localize}
  22122. {$ENDIF}
  22123. {CH fn_ERR_load_ENGINE_strings = 'ERR_load_ENGINE_strings'; } {Do not localize}
  22124. {$ENDIF}
  22125. {$IFDEF OPENSSL_EXPORT_VAR_AS_FUNCTION}
  22126. //These have a gl prefix because they may not be functions in some platforms.
  22127. //They are functions in Win32 because DLL's can't export global variables
  22128. //while Unix shared objects may expose them.
  22129. {CH gl_ASN1_OBJECT_it = 'ASN1_OBJECT_it'; } {do not localize}
  22130. {CH gl_ASN1_OCTET_STRING_NDEF_it = 'ASN1_OCTET_STRING_NDEF_it'; } {Do not localize}
  22131. {CH gl_ASN1_BOOLEAN_it = 'ASN1_BOOLEAN_it'; } {Do not localize}
  22132. {CH gl_ASN1_SEQUENCE_it = 'ASN1_SEQUENCE_it'; } {Do not localize}
  22133. {CH gl_CBIGNUM_it = 'CBIGNUM_it'; } {Do not localize}
  22134. {CH gl_BIGNUM_it = 'BIGNUM_it'; } {Do not localize}
  22135. {CH gl_LONG_it = 'LONG_it'; } {Do not localize}
  22136. {CH gl_ZLONG_it = 'ZLONG_it'; } {Do not localize}
  22137. {CH gl_POLICY_MAPPING_it = 'POLICY_MAPPING_it'; } {Do not localize}
  22138. {CH gl_POLICY_MAPPINGS_it = 'POLICY_MAPPINGS_it'; } {Do not localize}
  22139. {CH gl_GENERAL_SUBTREE_it = 'GENERAL_SUBTREE_it'; } {Do not localize}
  22140. {CH gl_NAME_CONSTRAINTS_it = 'NAME_CONSTRAINTS_it'; } {Do not localize}
  22141. {CH gl_POLICY_CONSTRAINTS_it = 'POLICY_CONSTRAINTS_it'; } {Do not localize}
  22142. {$ENDIF}
  22143. function LoadFunction(const FceName: TIdLibFuncName; const ACritical : Boolean = True): Pointer;
  22144. {$IFDEF WINDOWS}
  22145. var
  22146. Err: DWORD;
  22147. {$ENDIF}
  22148. begin
  22149. Result := LoadLibFunction(hIdSSL, FceName);
  22150. if (Result <> nil) or (not ACritical) then begin
  22151. Exit;
  22152. end;
  22153. {$IFDEF WINDOWS}
  22154. Err := GetLastError();
  22155. if Err <> ERROR_PROC_NOT_FOUND then begin
  22156. FFailedLoadList.Add(IndyFormat(RSOSSMissingExport_WithErrCode, [FceName, Err]));
  22157. Exit;
  22158. end;
  22159. {$ELSE}
  22160. // TODO: add error code to message...
  22161. {$ENDIF}
  22162. FFailedLoadList.Add(FceName);
  22163. end;
  22164. function LoadFunctionCLib(const FceName: TIdLibFuncName; const ACritical : Boolean = True): Pointer;
  22165. {$IFDEF WINDOWS}
  22166. var
  22167. Err: DWORD;
  22168. {$ENDIF}
  22169. begin
  22170. Result := LoadLibFunction(hIdCrypto, FceName);
  22171. if (Result <> nil) or (not ACritical) then begin
  22172. Exit;
  22173. end;
  22174. {$IFDEF WINDOWS}
  22175. Err := GetLastError();
  22176. if Err <> ERROR_PROC_NOT_FOUND then begin
  22177. FFailedLoadList.Add(IndyFormat(RSOSSMissingExport_WithErrCode, [FceName, Err]));
  22178. Exit;
  22179. end;
  22180. {$ELSE}
  22181. // TODO: add error code to message...
  22182. {$ENDIF}
  22183. FFailedLoadList.Add(FceName);
  22184. end;
  22185. // Id_ossl_old_des_set_odd_parity
  22186. {
  22187. IMPORTANT!!!
  22188. Indy DES support probably had been written to use some old "des_" functions.
  22189. The OpenSSL developers changed that interface to a new "des_*" API. They have some
  22190. "_ossl_old_des_*" for backwards compatability with the old functions
  22191. which are defined in des_old.h.
  22192. }
  22193. function LoadOldCLib(const AOldName, ANewName : TIdLibFuncName; const ACritical : Boolean = True): Pointer;
  22194. {$IFDEF WINDOWS}
  22195. var
  22196. Err: DWORD;
  22197. {$ENDIF}
  22198. begin
  22199. Result := LoadLibFunction(hIdCrypto, AOldName);
  22200. if Result <> nil then begin
  22201. Exit;
  22202. end;
  22203. {$IFDEF WINDOWS}
  22204. if ACritical then begin
  22205. Err := GetLastError();
  22206. if Err <> ERROR_PROC_NOT_FOUND then begin
  22207. FFailedLoadList.Add(IndyFormat(RSOSSMissingExport_WithErrCode, [AOldName, Err]));
  22208. Exit;
  22209. end;
  22210. end;
  22211. {$ENDIF}
  22212. Result := LoadLibFunction(hIdCrypto, ANewName);
  22213. if (Result <> nil) or (not ACritical) then begin
  22214. Exit;
  22215. end;
  22216. {$IFDEF WINDOWS}
  22217. Err := GetLastError();
  22218. if Err <> ERROR_PROC_NOT_FOUND then begin
  22219. FFailedLoadList.Add(IndyFormat(RSOSSMissingExport_WithErrCode, [ANewName, Err]));
  22220. Exit;
  22221. end;
  22222. {$ELSE}
  22223. // TODO: add error code to message...
  22224. {$ENDIF}
  22225. FFailedLoadList.Add(AOldName);
  22226. end;
  22227. {$ENDIF} // STATICLOAD_OPENSSL
  22228. // remove this function, it is not used
  22229. function ErrMsg(AErr : TIdC_ULONG) : string;
  22230. const
  22231. sMaxErrStr = 300;
  22232. var
  22233. LString: array[0..sMaxErrStr] of TIdAnsiChar;
  22234. {$IFDEF USE_MARSHALLED_PTRS}
  22235. LStringPtr: TPtrWrapper;
  22236. {$ENDIF}
  22237. begin
  22238. {$IFDEF USE_MARSHALLED_PTRS}
  22239. LStringPtr := TPtrWrapper.Create(@LString[0]);
  22240. {$ENDIF}
  22241. ERR_error_string_n(AErr,
  22242. {$IFDEF USE_MARSHALLED_PTRS}
  22243. LStringPtr.ToPointer
  22244. {$ELSE}
  22245. LString
  22246. {$ENDIF}, sMaxErrStr);
  22247. LString[sMaxErrStr] := TIdAnsiChar(0);
  22248. {$IFDEF USE_MARSHALLED_PTRS}
  22249. Result := TMarshal.ReadStringAsAnsi(LStringPtr);
  22250. {$ELSE}
  22251. Result := String(LString);
  22252. {$ENDIF}
  22253. end;
  22254. {$IFNDEF STATICLOAD_OPENSSL}
  22255. {$UNDEF USE_BASEUNIX_OR_VCL_POSIX}
  22256. {$IFDEF USE_BASEUNIX}
  22257. {$DEFINE USE_BASEUNIX_OR_VCL_POSIX}
  22258. {$ENDIF}
  22259. {$IFDEF USE_VCL_POSIX}
  22260. {$DEFINE USE_BASEUNIX_OR_VCL_POSIX}
  22261. {$ENDIF}
  22262. {$UNDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT}
  22263. {$IFDEF USE_BASEUNIX_OR_VCL_POSIX}
  22264. {$DEFINE USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT}
  22265. {$ENDIF}
  22266. {$IFDEF KYLIXCOMPAT}
  22267. {$DEFINE USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT}
  22268. {$ENDIF}
  22269. var
  22270. GIdOpenSSLPath: String = '';
  22271. procedure IdOpenSSLSetLibPath(const APath: String);
  22272. begin
  22273. if APath <> '' then begin
  22274. GIdOpenSSLPath := IndyIncludeTrailingPathDelimiter(APath);
  22275. end else begin
  22276. GIdOpenSSLPath := '';
  22277. end;
  22278. end;
  22279. {$IFDEF UNIX}
  22280. var
  22281. // TODO: default these to False instead, as modern systems now
  22282. // use symlinks that point to OpenSSL 1.1.x+, which is not
  22283. // compatible with this unit...
  22284. GIdCanLoadSymLinks: Boolean = True;
  22285. GIdLoadSymLinksFirst: Boolean = True;
  22286. procedure IdOpenSSLSetCanLoadSymLinks(ACanLoad: Boolean);
  22287. begin
  22288. GIdCanLoadSymLinks := ACanLoad;
  22289. end;
  22290. procedure IdOpenSSLSetLoadSymLinksFirst(ALoadFirst: Boolean);
  22291. begin
  22292. GIdLoadSymLinksFirst := ALoadFirst;
  22293. end;
  22294. {$ENDIF}
  22295. function LoadSSLCryptoLibrary: TIdLibHandle;
  22296. {$IFDEF WINDOWS}
  22297. var
  22298. Err: DWORD;
  22299. {$ELSE}
  22300. {$IFDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT} // TODO: use {$IF DEFINED(UNIX)} instead?
  22301. var
  22302. i, j: Integer;
  22303. LLibVersions: array [0..26] of string;
  22304. LCanLoadSymLinks, LLoadSymLinksFirst: Boolean;
  22305. {$ENDIF}
  22306. {$ENDIF}
  22307. begin
  22308. {$IFDEF WINDOWS}
  22309. //On Windows, you should use SafeLoadLibrary because
  22310. //the LoadLibrary API call messes with the FPU control word.
  22311. Result := SafeLoadLibrary(GIdOpenSSLPath + SSLCLIB_DLL_name);
  22312. if Result <> IdNilHandle then begin
  22313. Exit;
  22314. end;
  22315. {$ELSE}
  22316. {$IFDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT} // TODO: use {$IF DEFINED(UNIX)} instead?
  22317. // Workaround that is required under Linux (changed RTLD_GLOBAL with RTLD_LAZY Note: also work with LoadLibrary())
  22318. Result := IdNilHandle;
  22319. LCanLoadSymLinks := GIdCanLoadSymLinks;
  22320. LLoadSymLinksFirst := GIdLoadSymLinksFirst;
  22321. if LCanLoadSymLinks and LLoadSymLinksFirst then begin
  22322. Result := HackLoad(GIdOpenSSLPath + SSLCLIB_DLL_name, []);
  22323. if Result <> IdNilHandle then begin
  22324. Exit;
  22325. end;
  22326. // TODO: exit here if the error is anything other than the file not being found...
  22327. end;
  22328. for i := Low(SSLDLLVers) to High(SSLDLLVers) do begin
  22329. for j := Low(SSLDLLVersChar) to High(SSLDLLVersChar) do begin
  22330. LLibVersions[j] := SSLDLLVers[i] + SSLDLLVersChar[j];
  22331. end;
  22332. Result := HackLoad(GIdOpenSSLPath + SSLCLIB_DLL_name, LLibVersions);
  22333. if Result <> IdNilHandle then begin
  22334. Exit;
  22335. end;
  22336. // TODO: exit here if the error is anything other than the file not being found...
  22337. end;
  22338. if LCanLoadSymLinks and (not LLoadSymLinksFirst) then begin
  22339. Result := HackLoad(GIdOpenSSLPath + SSLCLIB_DLL_name, []);
  22340. if Result <> IdNilHandle then begin
  22341. Exit;
  22342. end;
  22343. // TODO: exit here if the error is anything other than the file not being found...
  22344. end;
  22345. {$ELSE}
  22346. Result := IdNilHandle;
  22347. {$ENDIF}
  22348. {$ENDIF}
  22349. {$IFDEF WINDOWS}
  22350. Err := GetLastError;
  22351. FFailedLoadList.Add(IndyFormat(RSOSSFailedToLoad_WithErrCode, [GIdOpenSSLPath + SSLCLIB_DLL_name, Err]));
  22352. {$ELSE}
  22353. // TODO: add error code to message...
  22354. FFailedLoadList.Add(IndyFormat(RSOSSFailedToLoad, [GIdOpenSSLPath + SSLCLIB_DLL_name {$IFDEF UNIX}+ LIBEXT{$ENDIF}]));
  22355. {$ENDIF}
  22356. end;
  22357. function LoadSSLLibrary: TIdLibHandle;
  22358. {$IFDEF WINDOWS}
  22359. var
  22360. Err: DWORD;
  22361. {$ELSE}
  22362. {$IFDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT} // TODO: use {$IF DEFINED(UNIX)} instead?
  22363. var
  22364. i, j: Integer;
  22365. LLibVersions: array [0..26] of string;
  22366. LCanLoadSymLinks, LLoadSymLinksFirst: Boolean;
  22367. {$ENDIF}
  22368. {$ENDIF}
  22369. begin
  22370. {$IFDEF WINDOWS}
  22371. //On Windows, you should use SafeLoadLibrary because
  22372. //the LoadLibrary API call messes with the FPU control word.
  22373. Result := SafeLoadLibrary(GIdOpenSSLPath + SSL_DLL_name);
  22374. if Result <> IdNilHandle then begin
  22375. Exit;
  22376. end;
  22377. // TODO: exit here if the error is anything other than the file not being found...
  22378. //This is a workaround for mingw32-compiled SSL .DLL which
  22379. //might be named 'libssl32.dll'.
  22380. Result := SafeLoadLibrary(GIdOpenSSLPath + SSL_DLL_name_alt);
  22381. if Result <> IdNilHandle then begin
  22382. Exit;
  22383. end;
  22384. {$ELSE}
  22385. {$IFDEF USE_BASEUNIX_OR_VCL_POSIX_OR_KYLIXCOMPAT} // TODO: use {$IF DEFINED(UNIX)} instead?
  22386. // Workaround that is required under Linux (changed RTLD_GLOBAL with RTLD_LAZY Note: also work with LoadLibrary())
  22387. Result := IdNilHandle;
  22388. LCanLoadSymLinks := GIdCanLoadSymLinks;
  22389. LLoadSymLinksFirst := GIdLoadSymLinksFirst;
  22390. if LCanLoadSymLinks and LLoadSymLinksFirst then begin
  22391. Result := HackLoad(GIdOpenSSLPath + SSL_DLL_name, []);
  22392. if Result <> IdNilHandle then begin
  22393. Exit;
  22394. end;
  22395. // TODO: exit here if the error is anything other than the file not being found...
  22396. end;
  22397. for i := Low(SSLDLLVers) to High(SSLDLLVers) do begin
  22398. for j := Low(SSLDLLVersChar) to High(SSLDLLVersChar) do begin
  22399. LLibVersions[j] := SSLDLLVers[i] + SSLDLLVersChar[j];
  22400. end;
  22401. Result := HackLoad(GIdOpenSSLPath + SSL_DLL_name, LLibVersions);
  22402. if Result <> IdNilHandle then begin
  22403. Exit;
  22404. end;
  22405. // TODO: exit here if the error is anything other than the file not being found...
  22406. end;
  22407. if LCanLoadSymLinks and (not LLoadSymLinksFirst) then begin
  22408. Result := HackLoad(GIdOpenSSLPath + SSL_DLL_name, []);
  22409. if Result <> IdNilHandle then begin
  22410. Exit;
  22411. end;
  22412. // TODO: exit here if the error is anything other than the file not being found...
  22413. end;
  22414. {$ELSE}
  22415. Result := IdNilHandle;
  22416. {$ENDIF}
  22417. {$ENDIF}
  22418. {$IFDEF WINDOWS}
  22419. Err := GetLastError;
  22420. FFailedLoadList.Add(IndyFormat(RSOSSFailedToLoad_WithErrCode, [GIdOpenSSLPath + SSL_DLL_name, Err]));
  22421. {$ELSE}
  22422. // TODO: add error code to message...
  22423. FFailedLoadList.Add(IndyFormat(RSOSSFailedToLoad, [GIdOpenSSLPath + SSL_DLL_name {$IFDEF UNIX}+ LIBEXT{$ENDIF}]));
  22424. {$ENDIF}
  22425. end;
  22426. {$ENDIF} // STATICLOAD_OPENSSL
  22427. {$IFDEF ANDROID}
  22428. // In Android 6, Google replaced OpenSSL with BoringSSL, which is a fork of
  22429. // OpenSSL and does not export many functions, including the following...
  22430. type
  22431. msg_callback_proc = procedure(write_p, version, content_type : TIdC_INT; const buf : Pointer; len: size_t; ssl: PSSL; arg: Pointer); cdecl;
  22432. function Indy_ssl_callback_ctrl(s: PSSL; cb_id: TIdC_INT; fp: SSL_METHOD_PROC): TIdC_LONG; cdecl;
  22433. begin
  22434. if cb_id = SSL_CTRL_SET_MSG_CALLBACK then begin
  22435. s.msg_callback := msg_callback_proc(fp);
  22436. Result := 1;
  22437. end else begin
  22438. Result := s.method.ssl_callback_ctrl(s, cb_id, fp);
  22439. end;
  22440. end;
  22441. function Indy_SSL_CTX_callback_ctrl(ctx: PSSL_CTX; cmd: TIdC_INT; fp: SSL_METHOD_PROC): TIdC_LONG; cdecl;
  22442. begin
  22443. if cmd = SSL_CTRL_SET_MSG_CALLBACK then begin
  22444. ctx.msg_callback := msg_callback_proc(fp);
  22445. Result := 1;
  22446. end else begin
  22447. Result := ctx.method.ssl_ctx_callback_ctrl(ctx, cmd, fp);
  22448. end;
  22449. end;
  22450. procedure Indy_SSL_copy_session_id(sslTo: PSSL; const sslFrom: PSSL) cdecl;
  22451. begin
  22452. // TODO: what to do here?
  22453. end;
  22454. procedure Indy_CRYPTO_lock(mode, _type : TIdC_INT; const _file : PIdAnsiChar; line : TIdC_INT) cdecl;
  22455. begin
  22456. // TODO: what to do here?
  22457. end;
  22458. {$ENDIF}
  22459. {$IFDEF STATICLOAD_OPENSSL}
  22460. function Load: Boolean;
  22461. begin
  22462. bIsLoaded := True;
  22463. Result := True;
  22464. end;
  22465. {$ELSE}
  22466. function Load: Boolean;
  22467. var
  22468. LVersion, LMajor, LMinor: TIdC_ULONG;
  22469. LVersionStr: string;
  22470. begin
  22471. Result := False;
  22472. Assert(FFailedLoadList<>nil);
  22473. if (hIdCrypto <> IdNilHandle) and (hIdSSL <> IdNilHandle) and (FFailedLoadList.Count = 0) then begin
  22474. Result := True;
  22475. Exit;
  22476. end;
  22477. FFailedLoadList.Clear;
  22478. if hIdCrypto = IdNilHandle then begin
  22479. hIdCrypto := LoadSSLCryptoLibrary;
  22480. if hIdCrypto = IdNilHandle then begin
  22481. Exit;
  22482. end;
  22483. end;
  22484. if hIdSSL = IdNilHandle then begin
  22485. hIdSSL := LoadSSLLibrary;
  22486. if hIdSSL = IdNilHandle then begin
  22487. Exit;
  22488. end;
  22489. end;
  22490. // RLebeau 6/8/2021: verify the type of library is supported...
  22491. @_SSLeay_version := LoadOldCLib(fn_SSLeay_version, 'OpenSSL_version'); {Do not localize} //Used by Indy
  22492. @SSLeay := LoadOldCLib(fn_SSLeay, 'OpenSSL_version_num'); {Do not localize} //Used by Indy
  22493. if Assigned(_SSLeay_version) then begin
  22494. LVersionStr := String(_SSLeay_version(SSLEAY_VERSION));
  22495. end;
  22496. if TextStartsWith(LVersionStr, 'LibreSSL') then {do not localize}
  22497. begin
  22498. {
  22499. According to the LibreSSL Portable GitHub repo:
  22500. https://github.com/libressl-portable/portable
  22501. LibreSSL is API compatible with OpenSSL 1.0.1, but does not yet include all new APIs from OpenSSL 1.0.2 and later.
  22502. LibreSSL also includes APIs not yet present in OpenSSL. The current common API subset is OpenSSL 1.0.1.
  22503. LibreSSL is not ABI compatible with any release of OpenSSL, or necessarily earlier releases of LibreSSL.
  22504. You will need to relink your programs to LibreSSL in order to use it, just as in moving between major versions
  22505. of OpenSSL. LibreSSL's installed library version numbers are incremented to account for ABI and API changes.
  22506. }
  22507. // TODO: add version checking?
  22508. end
  22509. else if TextStartsWith(LVersionStr, 'OpenSSL') or (LVersionStr = '') then {do not localize}
  22510. begin
  22511. // RLebeau 2/2/2021: verify the version is OpenSSL 1.0.2 or earlier, as OpenSSL 1.1.0 made MAJOR changes that we do not support yet...
  22512. if Assigned(SSLeay) then
  22513. begin
  22514. LVersion := SSLeay;
  22515. LMajor := (LVersion and $F0000000) shr 28;
  22516. LMinor := (LVersion and $0FF00000) shr 20;
  22517. if (LMajor = 0) and (LMinor = 0) then begin // < 0.9.3
  22518. LMajor := (LVersion and $F000) shr 12;
  22519. LMinor := (LVersion and $0F00) shr 8;
  22520. end;
  22521. if (LMajor > 1) or ((LMajor = 1) and (LMinor > 0)) then // OpenSSL 1.1.0 or higher
  22522. begin
  22523. FFailedLoadList.Add(IndyFormat(RSOSSUnsupportedVersion, [LVersion]));
  22524. Exit;
  22525. end;
  22526. end;
  22527. end else
  22528. begin
  22529. FFailedLoadList.Add(IndyFormat(RSOSSUnsupportedLibrary, [LVersionStr]));
  22530. Exit;
  22531. end;
  22532. // TODO: stop loading non-critical functions here. We should use per-function
  22533. // stubs instead, similar to the approach used in IdWinsock2.pas, so functions
  22534. // are not loaded until they are actually used for the first time...
  22535. @SSL_CTX_set_cipher_list := LoadFunction(fn_SSL_CTX_set_cipher_list); //Used by Indy
  22536. @SSL_CTX_new := LoadFunction(fn_SSL_CTX_new); //Used by Indy
  22537. @SSL_CTX_free := LoadFunction(fn_SSL_CTX_free); //Used by Indy
  22538. @SSL_set_fd := LoadFunction(fn_SSL_set_fd); //Used by Indy
  22539. @SSL_CTX_use_PrivateKey_file := LoadFunction(fn_SSL_CTX_use_PrivateKey_file); //Used by Indy
  22540. @SSL_CTX_use_PrivateKey := LoadFunction(fn_SSL_CTX_use_PrivateKey); //Used by Indy
  22541. @SSL_CTX_use_certificate := LoadFunction(fn_SSL_CTX_use_certificate); //Used by Indy
  22542. @SSL_CTX_use_certificate_file := LoadFunction(fn_SSL_CTX_use_certificate_file); //Used by Indy
  22543. @SSL_CTX_use_certificate_chain_file := LoadFunction(fn_SSL_CTX_use_certificate_chain_file,False); //Used by Indy
  22544. @SSL_load_error_strings := LoadFunction(fn_SSL_load_error_strings); //Used by Indy
  22545. @SSL_state_string_long := LoadFunction(fn_SSL_state_string_long); //Used by Indy
  22546. @SSL_alert_desc_string_long := LoadFunction(fn_SSL_alert_desc_string_long); //Used by Indy
  22547. @SSL_alert_type_string_long := LoadFunction(fn_SSL_alert_type_string_long); //Used by Indy
  22548. @SSL_get_peer_certificate := LoadFunction(fn_SSL_get_peer_certificate); //Used by Indy
  22549. @SSL_CTX_set_verify := LoadFunction(fn_SSL_CTX_set_verify); //Used by Indy
  22550. @SSL_CTX_set_verify_depth := LoadFunction(fn_SSL_CTX_set_verify_depth); //Used by Indy
  22551. @SSL_CTX_get_verify_depth := LoadFunction(fn_SSL_CTX_get_verify_depth);
  22552. @SSL_CTX_set_default_passwd_cb := LoadFunction(fn_SSL_CTX_set_default_passwd_cb); //Used by Indy
  22553. @SSL_CTX_set_default_passwd_cb_userdata:= LoadFunction(fn_SSL_CTX_set_default_passwd_cb_userdata); //Used by Indy
  22554. @SSL_CTX_check_private_key := LoadFunction(fn_SSL_CTX_check_private_key); //Used by Indy
  22555. @SSL_new := LoadFunction(fn_SSL_new); //Used by Indy
  22556. @SSL_free := LoadFunction(fn_SSL_free); //Used by Indy
  22557. @SSL_accept := LoadFunction(fn_SSL_accept); //Used by Indy
  22558. @SSL_connect := LoadFunction(fn_SSL_connect); //Used by Indy
  22559. @SSL_read := LoadFunction(fn_SSL_read); //Used by Indy
  22560. @SSL_peek := LoadFunction(fn_SSL_peek,False);
  22561. @SSL_pending := LoadFunction(fn_SSL_pending,False);
  22562. @SSL_write := LoadFunction(fn_SSL_write); //Used by Indy
  22563. @SSL_ctrl := LoadFunction(fn_SSL_ctrl);
  22564. @SSL_callback_ctrl := LoadFunction(fn_SSL_callback_ctrl{$IFDEF ANDROID}, False{$ENDIF});
  22565. {$IFDEF ANDROID}
  22566. if not Assigned(SSL_callback_ctrl) then begin
  22567. @SSL_callback_ctrl := @Indy_SSL_callback_ctrl;
  22568. end;
  22569. {$ENDIF}
  22570. @SSL_CTX_ctrl := LoadFunction(fn_SSL_CTX_ctrl);
  22571. @SSL_CTX_callback_ctrl := LoadFunction(fn_SSL_CTX_callback_ctrl{$IFDEF ANDROID}, False{$ENDIF});
  22572. {$IFDEF ANDROID}
  22573. if not Assigned(SSL_CTX_callback_ctrl) then begin
  22574. @SSL_CTX_callback_ctrl := @Indy_SSL_CTX_callback_ctrl;
  22575. end;
  22576. {$ENDIF}
  22577. @SSL_get_error := LoadFunction(fn_SSL_get_error); //Used by Indy
  22578. // RLebeau 9/7/2015 - making all of the "..._method()" functions optional. If
  22579. // a user wants to disable a given SSL/TLS version at runtime, there is no need
  22580. // for it to be marked as "critical" at load time, in case it is not available
  22581. // in their version of OpenSSL. For instance, some vendors disable SSLv2 so
  22582. // it is not even exported. If a user wants to use a given version and it is
  22583. // not available in their version of OpenSSL, TIdSSLContext.SetSSLMethod() will
  22584. // now raise a runtime error...
  22585. @SSLv2_method := LoadFunction(fn_SSLv2_method,False); //Used by Indy
  22586. @SSLv2_server_method := LoadFunction(fn_SSLv2_server_method,False); //Used by Indy
  22587. @SSLv2_client_method := LoadFunction(fn_SSLv2_client_method,False); //Used by Indy
  22588. @SSLv3_method := LoadFunction(fn_SSLv3_method,False); //Used by Indy
  22589. @SSLv3_server_method := LoadFunction(fn_SSLv3_server_method,False); //Used by Indy
  22590. @SSLv3_client_method := LoadFunction(fn_SSLv3_client_method,False); //Used by Indy
  22591. @SSLv23_method := LoadFunction(fn_SSLv23_method,False); //Used by Indy
  22592. @SSLv23_server_method := LoadFunction(fn_SSLv23_server_method,False); //Used by Indy
  22593. @SSLv23_client_method := LoadFunction(fn_SSLv23_client_method,False); //Used by Indy
  22594. @TLSv1_method := LoadFunction(fn_TLSv1_method,False); //Used by Indy
  22595. @TLSv1_server_method := LoadFunction(fn_TLSv1_server_method,False); //Used by Indy
  22596. @TLSv1_client_method := LoadFunction(fn_TLSv1_client_method,False); //Used by Indy
  22597. @TLSv1_1_method := LoadFunction(fn_TLSv1_1_method,False); //Used by Indy
  22598. @TLSv1_1_server_method := LoadFunction(fn_TLSv1_1_server_method,False); //Used by Indy
  22599. @TLSv1_1_client_method := LoadFunction(fn_TLSv1_1_client_method,False); //Used by Indy
  22600. @TLSv1_2_method := LoadFunction(fn_TLSv1_2_method,False); //Used by Indy
  22601. @TLSv1_2_server_method := LoadFunction(fn_TLSv1_2_server_method,False); //Used by Indy
  22602. @TLSv1_2_client_method := LoadFunction(fn_TLSv1_2_client_method,False); //Used by Indy
  22603. @DTLSv1_method := LoadFunction(fn_DTLSv1_method, False);
  22604. @DTLSv1_server_method := LoadFunction(fn_DTLSv1_server_method, False);
  22605. @DTLSv1_client_method := LoadFunction(fn_DTLSv1_client_method, False);
  22606. //
  22607. @SSL_shutdown := LoadFunction(fn_SSL_shutdown); //Used by Indy
  22608. @SSL_set_connect_state := LoadFunction(fn_SSL_set_connect_state,False);
  22609. @SSL_set_accept_state := LoadFunction(fn_SSL_set_accept_state,False);
  22610. @SSL_set_shutdown := LoadFunction(fn_SSL_set_shutdown); //Used by Indy
  22611. @SSL_CTX_load_verify_locations := LoadFunction(fn_SSL_CTX_load_verify_locations); //Used by Indy
  22612. @SSL_get_session := LoadFunction(fn_SSL_get_session); //Used by Indy
  22613. @SSLeay_add_ssl_algorithms := LoadFunction(fn_SSLeay_add_ssl_algorithms); //Used by Indy
  22614. @SSL_SESSION_get_id := LoadFunction(fn_SSL_SESSION_get_id); //Used by Indy
  22615. @SSL_copy_session_id := LoadFunction(fn_SSL_copy_session_id{$IFDEF ANDROID}, False{$ENDIF}); //Used by Indy
  22616. {$IFDEF ANDROID}
  22617. if not Assigned(SSL_copy_session_id) then begin
  22618. @SSL_copy_session_id := @Indy_SSL_copy_session_id;
  22619. end;
  22620. {$ENDIF}
  22621. // CRYPTO LIB
  22622. @d2i_X509_NAME := LoadFunctionCLib(fn_d2i_X509_NAME);
  22623. @i2d_X509_NAME := LoadFunctionCLib(fn_i2d_X509_NAME);
  22624. @X509_NAME_oneline := LoadFunctionCLib(fn_X509_NAME_oneline);//Used by Indy
  22625. @X509_NAME_cmp := LoadFunctionCLib(fn_X509_NAME_cmp); //Used by Indy
  22626. @X509_NAME_hash := LoadFunctionCLib(fn_X509_NAME_hash); //Used by Indy
  22627. @X509_set_issuer_name := LoadFunctionCLib(fn_X509_set_issuer_name,False);
  22628. @X509_get_issuer_name := LoadFunctionCLib(fn_X509_get_issuer_name); //Used by Indy
  22629. @X509_set_subject_name := LoadFunctionCLib(fn_X509_set_subject_name,False);
  22630. @X509_get_subject_name := LoadFunctionCLib(fn_X509_get_subject_name); //Used by Indy
  22631. @X509_digest := LoadFunctionCLib(fn_X509_digest);//Used by Indy
  22632. @X509_LOOKUP_ctrl := LoadFunctionCLib( fn_X509_LOOKUP_ctrl, False );
  22633. @X509_STORE_add_cert := LoadFunctionCLib(fn_X509_STORE_add_cert); //Used by Indy
  22634. @X509_STORE_add_crl := LoadFunctionCLib(fn_X509_STORE_add_crl); //Used by Indy
  22635. @X509_STORE_CTX_get_ex_data := LoadFunctionCLib(fn_X509_STORE_CTX_get_ex_data,False);
  22636. @X509_STORE_CTX_get_error := LoadFunctionCLib(fn_X509_STORE_CTX_get_error); //Used by Indy
  22637. @X509_STORE_CTX_set_error := LoadFunctionCLib(fn_X509_STORE_CTX_set_error,False);
  22638. @X509_STORE_CTX_get_error_depth := LoadFunctionCLib(fn_X509_STORE_CTX_get_error_depth); //Used by Indy
  22639. @X509_STORE_CTX_get_current_cert := LoadFunctionCLib(fn_X509_STORE_CTX_get_current_cert); //Used by Indy
  22640. @X509_STORE_add_lookup := LoadFunctionCLib(fn_X509_STORE_add_lookup); //Used by Indy
  22641. @X509_STORE_load_locations := LoadFunctionCLib(fn_X509_STORE_load_locations); //Used by Indy
  22642. @X509_sign := LoadFunctionCLib(fn_X509_sign,False);
  22643. @X509_REQ_sign := LoadFunctionCLib(fn_X509_REQ_sign,False);
  22644. @X509_REQ_add_extensions := LoadFunctionCLib(fn_X509_REQ_add_extensions,False);
  22645. @X509V3_EXT_conf_nid := LoadFunctionCLib(fn_X509V3_EXT_conf_nid,False);
  22646. @X509_EXTENSION_create_by_NID := LoadFunctionCLib(fn_X509_EXTENSION_create_by_NID,False);
  22647. @X509V3_set_ctx := LoadFunctionCLib(fn_X509V3_set_ctx);
  22648. @X509_EXTENSION_free := LoadFunctionCLib(fn_X509_EXTENSION_free,False);
  22649. @X509_add_ext := LoadFunctionCLib(fn_X509_add_ext,False);
  22650. {$IFNDEF OPENSSL_NO_BIO}
  22651. //X509_print
  22652. @X509_print := LoadFunctionCLib(fn_X509_print, False ); //Used by Indy
  22653. {$ENDIF}
  22654. @_RAND_cleanup := LoadFunctionCLib(fn_RAND_cleanup, False); //Used by Indy
  22655. @_RAND_bytes := LoadFunctionCLib(fn_RAND_bytes); //Used by Indy
  22656. @_RAND_pseudo_bytes := LoadFunctionCLib(fn_RAND_pseudo_bytes); //Used by Indy
  22657. @_RAND_seed := LoadFunctionCLib(fn_RAND_seed); //Used by Indy
  22658. @_RAND_add := LoadFunctionCLib(fn_RAND_add); //Used by Indy
  22659. @_RAND_status := LoadFunctionCLib(fn_RAND_status); //Used by Indy
  22660. {$IFDEF SYS_WIN}
  22661. @_RAND_screen := LoadFunctionCLib(fn_RAND_screen); //Used by Indy
  22662. @_RAND_event := LoadFunctionCLib(fn_RAND_event); //Used by Indy
  22663. {$ENDIF}
  22664. {$IFNDEF OPENSSL_NO_DES}
  22665. // 3DES
  22666. @DES_set_odd_parity := LoadFunctionCLib(fn_DES_set_odd_parity); //Used by Indy
  22667. @DES_set_key := LoadFunctionCLib(fn_DES_set_key); //Used by Indy
  22668. @DES_ecb_encrypt := LoadFunctionCLib(fn_DES_ecb_encrypt); //Used by Indy
  22669. @Id_ossl_old_des_set_odd_parity := LoadOldCLib(fnold_des_set_odd_parity,fn__ossl_old_des_set_odd_parity,False);
  22670. @Id_ossl_old_des_set_key := LoadOldCLib(fnold_des_set_key,fn__ossl_old_des_set_key,False);
  22671. @Id_ossl_old_des_ecb_encrypt := LoadOldCLib(fnold_des_ecb_encrypt,fn__ossl_old_des_ecb_encrypt,False);
  22672. {$ENDIF}
  22673. // More SSL functions
  22674. @SSL_set_ex_data := LoadFunction(fn_SSL_set_ex_data,False);
  22675. @SSL_get_ex_data := LoadFunction(fn_SSL_get_ex_data,False);
  22676. @SSL_load_client_CA_file := LoadFunction(fn_SSL_load_client_CA_file); //Used by Indy
  22677. @SSL_CTX_set_client_CA_list := LoadFunction(fn_SSL_CTX_set_client_CA_list); //Used by Indy
  22678. @SSL_CTX_set_default_verify_paths := LoadFunction(fn_SSL_CTX_set_default_verify_paths); //Used by Indy
  22679. @SSL_CTX_set_session_id_context := LoadFunction(fn_SSL_CTX_set_session_id_context); //Used by Indy
  22680. @SSL_CIPHER_description := LoadFunction(fn_SSL_CIPHER_description); //Used by Indy
  22681. @SSL_get_current_cipher := LoadFunction(fn_SSL_get_current_cipher); //Used by Indy
  22682. @SSL_CIPHER_get_name := LoadFunction(fn_SSL_CIPHER_get_name); //Used by Indy
  22683. @SSL_CIPHER_get_version := LoadFunction(fn_SSL_CIPHER_get_version); //Used by Indy
  22684. @SSL_CIPHER_get_bits := LoadFunction(fn_SSL_CIPHER_get_bits); //Used by Indy
  22685. // Thread safe
  22686. @_CRYPTO_lock := LoadFunctionCLib(fn_CRYPTO_lock{$IFDEF ANDROID}, False{$ENDIF}); //Used by Indy
  22687. {$IFDEF ANDROID}
  22688. if not Assigned(_CRYPTO_lock) then begin
  22689. @_CRYPTO_lock := @Indy_CRYPTO_lock;
  22690. end;
  22691. {$ENDIF}
  22692. @_CRYPTO_num_locks := LoadFunctionCLib(fn_CRYPTO_num_locks); //Used by Indy
  22693. @CRYPTO_set_locking_callback := LoadFunctionCLib(fn_CRYPTO_set_locking_callback); //Used by Indy
  22694. {$IFNDEF WIN32_OR_WIN64}
  22695. {
  22696. In OpenSSL 1.0.0, you should use these callback functions instead of the
  22697. depreciated set_id_callback. They are not in the older 0.9.8 OpenSSL series so
  22698. we have to handle both cases.
  22699. }
  22700. @CRYPTO_THREADID_set_callback := LoadFunctionCLib(fn_CRYPTO_THREADID_set_callback,False); //Used by Indy
  22701. @CRYPTO_THREADID_set_numeric := LoadFunctionClib(fn_CRYPTO_THREADID_set_numeric,False); //Used by Indy
  22702. @CRYPTO_THREADID_set_pointer := LoadFunctionClib(fn_CRYPTO_THREADID_set_pointer,False);
  22703. if not Assigned(CRYPTO_THREADID_set_callback) then begin //Used by Indy
  22704. @CRYPTO_set_id_callback := LoadFunctionCLib(fn_CRYPTO_set_id_callback); //Used by Indy
  22705. end else begin
  22706. @CRYPTO_set_id_callback := nil;
  22707. end;
  22708. {$ENDIF}
  22709. @ERR_put_error := LoadFunctionCLib(fn_ERR_put_error,False);
  22710. @ERR_get_error := LoadFunctionCLib(fn_ERR_get_error,False);
  22711. @ERR_peek_error := LoadFunctionCLib(fn_ERR_peek_error,False);
  22712. @ERR_peek_last_error := LoadFunctionCLib(fn_ERR_peek_last_error); //Used by Indy
  22713. @ERR_clear_error := LoadFunctionCLib(fn_ERR_clear_error); //Used by Indy
  22714. @ERR_error_string := LoadFunctionCLib(fn_ERR_error_string, False);
  22715. @ERR_error_string_n := LoadFunctionCLib(fn_ERR_error_string_n, False);
  22716. @ERR_lib_error_string := LoadFunctionCLib( fn_ERR_lib_error_string, False );
  22717. @ERR_func_error_string := LoadFunctionCLib( fn_ERR_func_error_string, False );
  22718. @ERR_reason_error_string := LoadFunctionCLib( fn_ERR_reason_error_string, False );
  22719. @ERR_load_ERR_strings := LoadFunctionCLib( fn_ERR_load_ERR_strings,False);
  22720. @ERR_load_crypto_strings := LoadFunctionCLib(fn_ERR_load_crypto_strings,False);
  22721. @ERR_free_strings := LoadFunctionCLib(fn_ERR_free_strings); //Used by Indy
  22722. @ERR_remove_thread_state := LoadFunctionCLib(fn_ERR_remove_thread_state,False); //Used by Indy
  22723. if not Assigned(ERR_remove_thread_state) then begin
  22724. @ERR_remove_state := LoadFunctionCLib(fn_ERR_remove_state); //Used by Indy
  22725. end else begin
  22726. @ERR_remove_state := nil;
  22727. end;
  22728. @CRYPTO_cleanup_all_ex_data := LoadFunctionCLib(fn_CRYPTO_cleanup_all_ex_data,False); //Used by Indy
  22729. @SSL_COMP_get_compression_methods := LoadFunction(fn_SSL_COMP_get_compression_methods,False);
  22730. @SSL_COMP_free_compression_methods := LoadFunction(fn_SSL_COMP_free_compression_methods,False);
  22731. @sk_pop_free := LoadFunctionCLib(fn_sk_pop_free,False);
  22732. //RSA
  22733. @RSA_free := LoadFunctionCLib(fn_RSA_free,False);
  22734. @RSA_generate_key_ex := LoadFunctionCLib(fn_RSA_generate_key_ex, False);
  22735. @RSA_generate_key := LoadFunctionCLib(fn_RSA_generate_key, False);
  22736. // @RSA_generate_key := LoadFunctionCLib(fn_RSA_generate_key, not Assigned(RSA_generate_key_ex));
  22737. @RSA_check_key := LoadFunctionCLib(fn_RSA_check_key,False);
  22738. @RSA_new := LoadFunctionCLib(fn_RSA_new,False);
  22739. @RSA_size := LoadFunctionCLib(fn_RSA_size,False);
  22740. @RSA_private_decrypt := LoadFunctionCLib(fn_RSA_private_decrypt,False);
  22741. @RSA_public_encrypt := LoadFunctionCLib(fn_RSA_public_encrypt,False);
  22742. //DH
  22743. @DH_free := LoadFunctionCLib(fn_DH_free); //Used by Indy
  22744. //BN
  22745. @BN_new := LoadFunctionCLib(fn_BN_new,False);
  22746. @BN_free := LoadFunctionCLib(fn_BN_free,False);
  22747. @BN_hex2bn := LoadFunctionCLib(fn_BN_hex2bn,False);
  22748. @BN_bn2dec := LoadFunctionCLib(fn_BN_bn2dec,False);
  22749. @BN_bn2hex := LoadFunctionCLib(fn_BN_bn2hex,False);
  22750. @BN_set_word := LoadFunctionCLib(fn_BN_set_word,False);
  22751. //BIO
  22752. @BIO_set_flags := LoadFunctionCLib(fn_BIO_set_flags,False);
  22753. @BIO_new := LoadFunctionCLib(fn_BIO_new); //Used by Indy
  22754. @BIO_push := LoadFunctionCLib(fn_BIO_push,False);
  22755. @BIO_pop := LoadFunctionCLib(fn_BIO_pop,False);
  22756. @BIO_set_next := LoadFunctionCLib(fn_BIO_set_next,False);
  22757. @BIO_free := LoadFunctionCLib(fn_BIO_free); //Used by Indy
  22758. @BIO_free_all := LoadFunctionCLib(fn_BIO_free_all,False);
  22759. @BIO_new_mem_buf := LoadFunctionCLib(fn_BIO_new_mem_buf); //Used by Indy
  22760. @BIO_s_mem := LoadFunctionCLib(fn_BIO_s_mem); //Used by Indy
  22761. @BIO_s_file := LoadFunctionCLib(fn_BIO_s_file,False);
  22762. @BIO_set_ex_data := LoadFunctionCLib(fn_BIO_set_ex_data,False);
  22763. @BIO_get_ex_data := LoadFunctionCLib(fn_BIO_get_ex_data,False);
  22764. @BIO_ctrl := LoadFunctionCLib(fn_BIO_ctrl);
  22765. @BIO_int_ctrl := LoadFunctionCLib( fn_BIO_int_ctrl,False);
  22766. @BIO_ptr_ctrl := LoadFunctionCLib( fn_BIO_ptr_ctrl,False);
  22767. @BIO_new_file := LoadFunctionCLib(fn_BIO_new_file);
  22768. @BIO_puts := LoadFunctionCLib(fn_BIO_puts,False);
  22769. @BIO_read := LoadFunctionCLib(fn_BIO_read,False);
  22770. @BIO_write := LoadFunctionCLib(fn_BIO_write,False);
  22771. //i2d
  22772. @i2d_X509_bio := LoadFunctionCLib(fn_i2d_X509_bio,False);
  22773. @i2d_PrivateKey_bio := LoadFunctionCLib(fn_i2d_PrivateKey_bio,False);
  22774. @d2i_X509_bio := LoadFunctionCLib(fn_d2i_X509_bio); //Used by Indy
  22775. @d2i_PKCS12_bio := LoadFunctionCLib(fn_d2i_PKCS12_bio); //Used by Indy
  22776. @PKCS12_parse := LoadFunctionCLib(fn_PKCS12_parse); //Used by Indy
  22777. @i2d_X509_REQ_bio := LoadFunctionCLib(fn_i2d_X509_REQ_bio,False);
  22778. @i2d_PKCS7 := LoadFunctionCLib(fn_i2d_PKCS7,False);
  22779. @d2i_PKCS7 := LoadFunctionCLib(fn_d2i_PKCS7,False);
  22780. @i2d_X509 := LoadFunctionCLib(fn_i2d_X509,False);
  22781. @d2i_X509 := LoadFunctionCLib(fn_d2i_X509); //Used by Indy
  22782. @i2d_X509_REQ := LoadFunctionCLib(fn_i2d_X509_REQ, False);
  22783. @d2i_X509_REQ := LoadFunctionCLib(fn_d2i_X509_REQ, False );
  22784. @i2d_X509_CRL := LoadFunctionCLib(fn_i2d_X509_CRL, False );
  22785. @d2i_X509_CRL := LoadFunctionCLib(fn_d2i_X509_CRL,False );
  22786. @i2d_RSAPrivateKey := LoadFunctionCLib(fn_i2d_RSAPrivateKey,False );
  22787. @d2i_RSAPrivateKey := LoadFunctionCLib(fn_d2i_RSAPrivateKey, False );
  22788. @i2d_RSAPublicKey := LoadFunctionCLib(fn_i2d_RSAPublicKey,False);
  22789. @d2i_RSAPublicKey := LoadFunctionCLib(fn_d2i_RSAPublicKey,False);
  22790. @i2d_PrivateKey := LoadFunctionCLib(fn_i2d_PrivateKey,False);
  22791. @d2i_PrivateKey := LoadFunctionCLib(fn_d2i_PrivateKey); //Used by Indy
  22792. @d2i_PrivateKey_bio := LoadFunctionCLib(fn_d2i_PrivateKey_bio); //Used by Indy
  22793. @i2d_DSAPrivateKey := LoadFunctionCLib(fn_i2d_DSAPrivateKey); //Used by Indy
  22794. @d2i_DSAPrivateKey := LoadFunctionCLib(fn_d2i_DSAPrivateKey); //Used by Indy
  22795. @i2d_DSAparams := LoadFunctionCLib(fn_i2d_DSAparams,False);
  22796. @d2i_DSAparams := LoadFunctionCLib(fn_d2i_DSAparams,False);
  22797. @i2d_DHparams := LoadFunctionCLib(fn_i2d_DHparams,False);
  22798. @d2i_DHparams := LoadFunctionCLib(fn_d2i_DHparams); //Used by Indy
  22799. @i2d_NETSCAPE_CERT_SEQUENCE := LoadFunctionCLib(fn_i2d_NETSCAPE_CERT_SEQUENCE,False);
  22800. @d2i_NETSCAPE_CERT_SEQUENCE := LoadFunctionCLib(fn_d2i_NETSCAPE_CERT_SEQUENCE); //Indy by Indy
  22801. @i2d_PUBKEY := LoadFunctionCLib(fn_i2d_PUBKEY,False);
  22802. @d2i_PUBKEY := LoadFunctionCLib(fn_d2i_PUBKEY,False);
  22803. //X509
  22804. @X509_get_default_cert_file := LoadFunctionCLib(fn_X509_get_default_cert_file); //Used by Indy
  22805. @X509_get_default_cert_file_env := LoadFunctionCLib(fn_X509_get_default_cert_file_env); //Used by Indy
  22806. @X509_new := LoadFunctionCLib(fn_X509_new,False);
  22807. @X509_free := LoadFunctionCLib(fn_X509_free); //Used by Indy
  22808. @X509_REQ_new := LoadFunctionCLib(fn_X509_REQ_new,False);
  22809. @X509_REQ_free := LoadFunctionCLib(fn_X509_REQ_free,False);
  22810. @X509_to_X509_REQ := LoadFunctionCLib(fn_X509_to_X509_REQ,False);
  22811. @X509_NAME_new := LoadFunctionCLib(fn_X509_NAME_new); //Used by Indy
  22812. @X509_NAME_free := LoadFunctionCLib(fn_X509_NAME_free); //Used by Indy
  22813. @X509_NAME_add_entry_by_txt := LoadFunctionCLib(fn_X509_NAME_add_entry_by_txt);
  22814. @X509_INFO_free := LoadFunctionCLib(fn_X509_INFO_free); //Used by Indy
  22815. @X509_set_version := LoadFunctionCLib(fn_X509_set_version,False);
  22816. @X509_get_serialNumber := LoadFunctionCLib(fn_X509_get_serialNumber); //USED by Indy
  22817. @X509_gmtime_adj := LoadFunctionCLib(fn_X509_gmtime_adj,False);
  22818. @X509_set_notBefore := LoadFunctionCLib(fn_X509_set_notBefore,False);
  22819. @X509_set_notAfter := LoadFunctionCLib(fn_X509_set_notAfter,False);
  22820. @X509_set_pubkey := LoadFunctionCLib(fn_X509_set_pubkey,False);
  22821. @X509_REQ_set_pubkey := LoadFunctionCLib(fn_X509_REQ_set_pubkey,False);
  22822. @X509_PUBKEY_get := LoadFunctionCLib(fn_X509_PUBKEY_get,False);
  22823. @X509_verify := LoadFunctionCLib(fn_X509_verify,False);
  22824. //PEM
  22825. {$IFNDEF SSLEAY_MACROS}
  22826. @_PEM_read_bio_X509 := LoadFunctionCLib(fn_PEM_read_bio_X509, False);
  22827. @_PEM_read_bio_X509_REQ := LoadFunctionCLib(fn_PEM_read_bio_X509_REQ, False);
  22828. @_PEM_read_bio_X509_CRL := LoadFunctionCLib(fn_PEM_read_bio_X509_CRL, False);
  22829. @_PEM_read_bio_RSAPrivateKey := LoadFunctionCLib(fn_PEM_read_bio_RSAPrivateKey, False);
  22830. @_PEM_read_bio_RSAPublicKey := LoadFunctionCLib(fn_PEM_read_bio_RSAPublicKey, False);
  22831. @_PEM_read_bio_DSAPrivateKey := LoadFunctionCLib(fn_PEM_read_bio_DSAPrivateKey, False);
  22832. @_PEM_read_bio_PrivateKey := LoadFunctionCLib (fn_PEM_read_bio_PrivateKey,False);
  22833. @_PEM_read_bio_PKCS7 := LoadFunctionCLib (fn_PEM_read_bio_PKCS7, False);
  22834. @_PEM_read_bio_DHparams := LoadFunctionCLib(fn_PEM_read_bio_DHparams, False);
  22835. @_PEM_read_bio_DSAparams := LoadFunctionCLib(fn_PEM_read_bio_DSAparams, False);
  22836. @_PEM_read_bio_NETSCAPE_CERT_SEQUENCE := LoadFunctionCLib(fn_PEM_read_bio_NETSCAPE_CERT_SEQUENCE,False);
  22837. @_PEM_read_bio_PUBKEY := LoadFunctionCLib(fn_PEM_read_bio_PUBKEY,False);
  22838. @_PEM_write_bio_X509 := LoadFunctionCLib(fn_PEM_write_bio_X509,False);
  22839. @_PEM_write_bio_X509_REQ := LoadFunctionCLib(fn_PEM_write_bio_X509_REQ,False);
  22840. @_PEM_write_bio_X509_CRL := LoadFunctionCLib( fn_PEM_write_bio_X509_CRL,False);
  22841. @_PEM_write_bio_RSAPrivateKey := LoadFunctionCLib(fn_PEM_write_bio_RSAPrivateKey,False);
  22842. @_PEM_write_bio_RSAPublicKey := LoadFunctionCLib( fn_PEM_write_bio_RSAPublicKey,False);
  22843. @_PEM_write_bio_DSAPrivateKey := LoadFunctionCLib( fn_PEM_write_bio_DSAPrivateKey,False);
  22844. @_PEM_write_bio_PrivateKey := LoadFunctionCLib( fn_PEM_write_bio_PrivateKey,False);
  22845. @_PEM_write_bio_PKCS7 := LoadFunctionCLib( fn_PEM_write_bio_PKCS7,False);
  22846. @_PEM_write_bio_DHparams := LoadFunctionCLib(fn_PEM_write_bio_DHparams,False);
  22847. @_PEM_write_bio_DSAparams := LoadFunctionCLib(fn_PEM_write_bio_DSAparams,False);
  22848. @_PEM_write_bio_NETSCAPE_CERT_SEQUENCE := LoadFunctionCLib(fn_PEM_write_bio_NETSCAPE_CERT_SEQUENCE,False);
  22849. @_PEM_write_bio_PKCS8PrivateKey := LoadFunctionCLib(fn_PEM_write_bio_PKCS8PrivateKey,False);
  22850. @_PEM_write_bio_PUBKEY := LoadFunctionCLib(fn_PEM_write_bio_PUBKEY,False);
  22851. {$ELSE}
  22852. @PEM_ASN1_write_bio := LoadFunctionCLib(fn_PEM_ASN1_write_bio,False);
  22853. @PEM_ASN1_read_bio := LoadFunctionCLib(fn_PEM_ASN1_read_bio,False);
  22854. {$ENDIF}
  22855. @PEM_X509_INFO_read_bio := LoadFunctionCLib(fn_PEM_X509_INFO_read_bio); //Used by Indy
  22856. @PEM_read_bio_X509_AUX := LoadFunctionCLib(fn_PEM_read_bio_X509_AUX); //Used by Indy
  22857. //EVP
  22858. {$IFNDEF OPENSSL_NO_DES}
  22859. @EVP_des_ede3_cbc := LoadFunctionCLib(fn_EVP_des_ede3_cbc,False);
  22860. {$ENDIF}
  22861. {$IFNDEF OPENSSL_NO_SHA512}
  22862. @EVP_sha512 := LoadFunctionCLib(fn_EVP_sha512,False); //Used by Indy but non-critical
  22863. @EVP_sha384 := LoadFunctionCLib(fn_EVP_sha384,False); //Used by Indy but non-critical
  22864. {$ENDIF}
  22865. {$IFNDEF OPENSSL_NO_SHA256}
  22866. @EVP_sha256 := LoadFunctionCLib(fn_EVP_sha256,False); //Used by Indy but non-critical
  22867. @EVP_sha224 := LoadFunctionCLib(fn_EVP_sha224,False); //Used by Indy but non-critical
  22868. {$ENDIF}
  22869. {$IFNDEF OPENSSL_NO_SHA}
  22870. @EVP_sha1 := LoadFunctionCLib(fn_EVP_sha1); //USED by Indy
  22871. @EVP_sha := LoadFunctionCLib(fn_EVP_sha,False); //not available on Android
  22872. @EVP_dss := LoadFunctionCLib(fn_EVP_dss,False);
  22873. @EVP_dss1 := LoadFunctionCLib(fn_EVP_dss1,False);
  22874. @EVP_ecdsa := LoadFunctionCLib(fn_EVP_ecdsa,False);
  22875. {$ENDIF}
  22876. {$ifndef OPENSSL_NO_MDC2}
  22877. @EVP_mdc2 := LoadFunctionCLib(fn_EVP_mdc2,False);
  22878. {$endif}
  22879. {$IFNDEF OPENSSL_NO_MD5}
  22880. @EVP_md5 := LoadFunctionCLib(fn_EVP_md5); //USED By Indy
  22881. {$ENDIF}
  22882. {$IFNDEF OPENSSL_NO_MD4}
  22883. @EVP_md4 := LoadFunctionCLib(fn_EVP_md4,False);
  22884. {$ENDIF}
  22885. {$IFNDEF OPENSSL_NO_MD2}
  22886. @EVP_md2 := LoadFunctionCLib(fn_EVP_md2,False);
  22887. {$ENDIF}
  22888. {$ifndef OPENSSL_NO_RIPEMD}
  22889. @EVP_ripemd160 := LoadFunctionCLib(fn_EVP_ripemd160,False);
  22890. {$endif}
  22891. {$ifndef OPENSSL_NO_WHIRLPOOL}
  22892. @EVP_whirlpool := LoadFunctionCLib(fn_EVP_whirlpool,False); //not available on Android
  22893. {$endif}
  22894. @EVP_md_null := LoadFunctionCLib(fn_EVP_md_null, False);
  22895. {$IFNDEF OPENSSL_NO_DES}
  22896. @EVP_des_ecb := LoadFunctionCLib(fn_EVP_des_ecb,False);
  22897. @EVP_des_ede := LoadFunctionCLib(fn_EVP_des_ede,False);
  22898. @EVP_des_ede3 := LoadFunctionCLib(fn_EVP_des_ede3,False);
  22899. @EVP_des_ede_ecb := LoadFunctionCLib(fn_EVP_des_ede_ecb,False);
  22900. @EVP_des_ede3_ecb := LoadFunctionCLib(fn_EVP_des_ede3_ecb,False);
  22901. @EVP_des_cfb64 := LoadFunctionCLib(fn_EVP_des_cfb64,False);
  22902. // # define EVP_des_cfb EVP_des_cfb64
  22903. @EVP_des_cfb1 := LoadFunctionCLib(fn_EVP_des_cfb1,False);
  22904. @EVP_des_cfb8 := LoadFunctionCLib(fn_EVP_des_cfb8,False);
  22905. @EVP_des_ede_cfb64 := LoadFunctionCLib(fn_EVP_des_ede_cfb64,False);
  22906. //#if 0
  22907. // @EVP_des_ede_cfb1 := LoadFunctionCLib(fn_EVP_des_ede_cfb1,False);
  22908. // @EVP_des_ede_cfb8 := LoadFunctionCLib(fn_EVP_des_ede_cfb8,False);
  22909. //#endif
  22910. @EVP_des_ede3_cfb64 := LoadFunctionCLib(fn_EVP_des_ede3_cfb64,False);
  22911. @EVP_des_ede3_cfb1 := LoadFunctionCLib(fn_EVP_des_ede3_cfb1,False);
  22912. @EVP_des_ede3_cfb8 := LoadFunctionCLib(fn_EVP_des_ede3_cfb8,False);
  22913. @EVP_des_ofb := LoadFunctionCLib(fn_EVP_des_ofb,False);
  22914. @EVP_des_ede_ofb := LoadFunctionCLib(fn_EVP_des_ede_ofb,False);
  22915. @EVP_des_ede3_ofb := LoadFunctionCLib(fn_EVP_des_ede3_ofb,False);
  22916. @EVP_des_cbc := LoadFunctionCLib(fn_EVP_des_cbc,False);
  22917. @EVP_des_ede_cbc := LoadFunctionCLib(fn_EVP_des_ede_cbc,False);
  22918. @EVP_desx_cbc := LoadFunctionCLib(fn_EVP_desx_cbc,False);
  22919. //* This should now be supported through the dev_crypto ENGINE. But also, why are
  22920. // * rc4 and md5 declarations made here inside a "NO_DES" precompiler branch? */
  22921. //#if 0
  22922. {$ifdef OPENSSL_OPENBSD_DEV_CRYPTO}
  22923. @EVP_dev_crypto_des_ede3_cbc := LoadFunctionCLib(fn_EVP_dev_crypto_des_ede3_cbc,False);
  22924. @EVP_dev_crypto_rc4 := LoadFunctionCLib(fn_EVP_dev_crypto_rc4,False);
  22925. @EVP_dev_crypto_md5 := LoadFunctionCLib(fn_EVP_dev_crypto_md5,False);
  22926. {$endif}
  22927. //#endif
  22928. {$endif}
  22929. {$ifndef OPENSSL_NO_RC4}
  22930. @EVP_rc4 := LoadFunctionCLib(fn_EVP_rc4,False);
  22931. @EVP_rc4_40 := LoadFunctionCLib(fn_EVP_rc4_40,False);
  22932. {$ifndef OPENSSL_NO_MD5}
  22933. @EVP_rc4_hmac_md5 := LoadFunctionCLib(fn_EVP_rc4_hmac_md5,False);
  22934. {$endif}
  22935. {$endif}
  22936. {$ifndef OPENSSL_NO_IDEA}
  22937. //not available on Android
  22938. @EVP_idea_ecb := LoadFunctionCLib(fn_EVP_idea_ecb,False);
  22939. @EVP_idea_cfb64 := LoadFunctionCLib(fn_EVP_idea_cfb64,False);
  22940. @EVP_idea_ofb := LoadFunctionCLib(fn_EVP_idea_ofb,False);
  22941. @EVP_idea_cbc := LoadFunctionCLib(fn_EVP_idea_cbc,False);
  22942. {$endif}
  22943. {$ifndef OPENSSL_NO_RC2}
  22944. @EVP_rc2_ecb := LoadFunctionCLib(fn_EVP_rc2_ecb,False);
  22945. @EVP_rc2_cbc := LoadFunctionCLib(fn_EVP_rc2_cbc,False);
  22946. @EVP_rc2_40_cbc := LoadFunctionCLib(fn_EVP_rc2_40_cbc,False);
  22947. @EVP_rc2_64_cbc := LoadFunctionCLib(fn_EVP_rc2_64_cbc,False);
  22948. @EVP_rc2_cfb64 := LoadFunctionCLib(fn_EVP_rc2_cfb64,False);
  22949. @EVP_rc2_ofb := LoadFunctionCLib(fn_EVP_rc2_ofb, False);
  22950. {$endif}
  22951. {$ifndef OPENSSL_NO_BF}
  22952. @EVP_bf_ecb := LoadFunctionCLib(fn_EVP_bf_ecb,False);
  22953. @EVP_bf_cbc := LoadFunctionCLib(fn_EVP_bf_cbc,False);
  22954. @EVP_bf_cfb64 := LoadFunctionCLib(fn_EVP_bf_cfb64,False);
  22955. @EVP_bf_ofb := LoadFunctionCLib(fn_EVP_bf_ofb,False);
  22956. {$endif}
  22957. {$ifndef OPENSSL_NO_CAST}
  22958. //not available on Android
  22959. @EVP_cast5_ecb := LoadFunctionCLib(fn_EVP_cast5_ecb,False);
  22960. @EVP_cast5_cbc := LoadFunctionCLib(fn_EVP_cast5_cbc,False);
  22961. @EVP_cast5_cfb64 := LoadFunctionCLib(fn_EVP_cast5_cfb64,False);
  22962. @EVP_cast5_ofb := LoadFunctionCLib(fn_EVP_cast5_ofb,False);
  22963. {$endif}
  22964. {$ifndef OPENSSL_NO_RC5}
  22965. @EVP_rc5_32_12_16_cbc := LoadFunctionCLib(fn_EVP_rc5_32_12_16_cbc,False);
  22966. @EVP_rc5_32_12_16_ecb := LoadFunctionCLib(fn_EVP_rc5_32_12_16_ecb,False);
  22967. @EVP_rc5_32_12_16_cfb64 := LoadFunctionCLib(fn_EVP_rc5_32_12_16_cfb64,False);
  22968. @EVP_rc5_32_12_16_ofb := LoadFunctionCLib(fn_EVP_rc5_32_12_16_ofb,False);
  22969. {$endif}
  22970. {$ifndef OPENSSL_NO_AES}
  22971. @EVP_aes_128_ecb := LoadFunctionCLib(fn_EVP_aes_128_ecb,False);
  22972. @EVP_aes_128_cbc := LoadFunctionCLib(fn_EVP_aes_128_cbc,False);
  22973. @EVP_aes_128_cfb1:= LoadFunctionCLib(fn_EVP_aes_128_cfb1,False);
  22974. @EVP_aes_128_cfb8:= LoadFunctionCLib(fn_EVP_aes_128_cfb8,False);
  22975. @EVP_aes_128_cfb128 := LoadFunctionCLib(fn_EVP_aes_128_cfb128,False);
  22976. @EVP_aes_128_ofb := LoadFunctionCLib(fn_EVP_aes_128_ofb,False);
  22977. @EVP_aes_128_ctr := LoadFunctionCLib(fn_EVP_aes_128_ctr,False);
  22978. @EVP_aes_128_gcm := LoadFunctionCLib(fn_EVP_aes_128_gcm,False);
  22979. @EVP_aes_128_ccm := LoadFunctionCLib(fn_EVP_aes_128_ccm,False);
  22980. @EVP_aes_128_xts := LoadFunctionCLib(fn_EVP_aes_128_xts,False);
  22981. @EVP_aes_192_ecb := LoadFunctionCLib(fn_EVP_aes_192_ecb,False);
  22982. @EVP_aes_192_cbc := LoadFunctionCLib(fn_EVP_aes_192_cbc,False);
  22983. @EVP_aes_192_cfb1 := LoadFunctionCLib(fn_EVP_aes_192_cfb1,False);
  22984. @EVP_aes_192_cfb128 := LoadFunctionCLib(fn_EVP_aes_192_cfb128,False);
  22985. @EVP_aes_192_ofb := LoadFunctionCLib(fn_EVP_aes_192_ofb,False);
  22986. @EVP_aes_192_ctr := LoadFunctionCLib(fn_EVP_aes_192_ctr,False);
  22987. @EVP_aes_192_gcm := LoadFunctionCLib(fn_EVP_aes_192_gcm,False);
  22988. @EVP_aes_192_ccm := LoadFunctionCLib(fn_EVP_aes_192_ccm,False);
  22989. @EVP_aes_256_ecb := LoadFunctionCLib(fn_EVP_aes_256_ecb,False);
  22990. @EVP_aes_256_cbc := LoadFunctionCLib(fn_EVP_aes_256_cbc,False);
  22991. @EVP_aes_256_cfb1 := LoadFunctionCLib(fn_EVP_aes_256_cfb1,False);
  22992. @EVP_aes_256_cfb8 := LoadFunctionCLib(fn_EVP_aes_256_cfb8,False);
  22993. @EVP_aes_256_cfb128 := LoadFunctionCLib(fn_EVP_aes_256_cfb128,False);
  22994. @EVP_aes_256_ofb := LoadFunctionCLib(fn_EVP_aes_256_ofb,False);
  22995. @EVP_aes_256_ctr := LoadFunctionCLib(fn_EVP_aes_256_ctr,False);
  22996. @EVP_aes_256_gcm := LoadFunctionCLib(fn_EVP_aes_256_gcm,False);
  22997. @EVP_aes_256_ccm := LoadFunctionCLib(fn_EVP_aes_256_ccm,False);
  22998. @EVP_aes_256_xts := LoadFunctionCLib(fn_EVP_aes_256_xts,False);
  22999. {$ifndef OPENSSL_NO_SHA}
  23000. {$ifndef OPENSSL_NO_SHA1}
  23001. @EVP_aes_128_cbc_hmac_sha1 := LoadFunctionCLib(fn_EVP_aes_128_cbc_hmac_sha1,False);
  23002. @EVP_aes_256_cbc_hmac_sha1 := LoadFunctionCLib(fn_EVP_aes_256_cbc_hmac_sha1,False);
  23003. {$endif}
  23004. {$endif}
  23005. {$endif}
  23006. {$ifndef OPENSSL_NO_CAMELLIA}
  23007. @EVP_camellia_128_ecb := LoadFunctionCLib(fn_EVP_camellia_128_ecb, False);
  23008. @EVP_camellia_128_cbc := LoadFunctionCLib(fn_EVP_camellia_128_cbc, False);
  23009. @EVP_camellia_128_cfb1 := LoadFunctionCLib(fn_EVP_camellia_128_cfb1, False);
  23010. @EVP_camellia_128_cfb8 := LoadFunctionCLib(fn_EVP_camellia_128_cfb8, False);
  23011. @EVP_camellia_128_cfb128 := LoadFunctionCLib(fn_EVP_camellia_128_cfb12, False);
  23012. @EVP_camellia_128_ofb := LoadFunctionCLib(fn_EVP_camellia_128_ofb, False);
  23013. @EVP_camellia_192_ecb := LoadFunctionCLib(fn_EVP_camellia_192_ecb, False);
  23014. @EVP_camellia_192_cbc := LoadFunctionCLib(fn_EVP_camellia_192_cbc,False);
  23015. @EVP_camellia_192_cfb1 := LoadFunctionCLib(fn_EVP_camellia_192_cfb1,False);
  23016. @EVP_camellia_192_cfb8 := LoadFunctionCLib(fn_EVP_camellia_192_cfb8,False);
  23017. @EVP_camellia_192_cfb128 := LoadFunctionCLib(fn_EVP_camellia_192_cfb128,False);
  23018. @EVP_camellia_192_ofb := LoadFunctionCLib(fn_EVP_camellia_192_ofb,False);
  23019. @EVP_camellia_256_ecb := LoadFunctionCLib(fn_EVP_camellia_256_ecb,False);
  23020. @EVP_camellia_256_cbc := LoadFunctionCLib(fn_EVP_camellia_256_cbc,False);
  23021. @EVP_camellia_256_cfb1 := LoadFunctionCLib(fn_EVP_camellia_256_cfb1,False);
  23022. @EVP_camellia_256_cfb8 := LoadFunctionCLib(fn_EVP_camellia_256_cfb8,False);
  23023. @EVP_camellia_256_cfb128 := LoadFunctionCLib(fn_EVP_camellia_256_cfb128,False);
  23024. @EVP_camellia_256_ofb := LoadFunctionCLib(fn_EVP_camellia_256_ofb,False);
  23025. {$endif}
  23026. {$ifndef OPENSSL_NO_SEED}
  23027. @EVP_seed_ecb := LoadFunctionCLib(fn_EVP_seed_ecb,False);
  23028. @EVP_seed_cbc := LoadFunctionCLib(fn_EVP_seed_cbc,False);
  23029. @EVP_seed_cfb128 := LoadFunctionCLib(fn_EVP_seed_cfb128,False);
  23030. @EVP_seed_ofb := LoadFunctionCLib(fn_EVP_seed_ofb,False);
  23031. {$endif}
  23032. @EVP_MD_CTX_init := LoadFunctionCLib(fn_EVP_MD_CTX_init);
  23033. @EVP_MD_CTX_cleanup := LoadFunctionCLib(fn_EVP_MD_CTX_cleanup);
  23034. @EVP_MD_CTX_create := LoadFunctionCLib(fn_EVP_MD_CTX_create, False);
  23035. @EVP_MD_CTX_destroy := LoadFunctionCLib(fn_EVP_MD_CTX_destroy, False);
  23036. @EVP_MD_CTX_copy := LoadFunctionCLib(fn_EVP_MD_CTX_copy, False);
  23037. @EVP_MD_CTX_copy_ex := LoadFunctionCLib(fn_EVP_MD_CTX_copy_ex, False);
  23038. //@EVP_MD_CTX_set_flags := LoadFunctionCLib(fn_EVP_MD_CTX_set_flags, False);
  23039. //@EVP_MD_CTX_clear_flags := LoadFunctionCLib(fn_EVP_MD_CTX_clear_flags, False);
  23040. //@EVP_MD_CTX_test_flags := LoadFunctionCLib(fn_EVP_MD_CTX_test_flags, False);
  23041. @EVP_DigestInit := LoadFunctionCLib(fn_EVP_DigestInit);
  23042. @EVP_DigestInit_ex := LoadFunctionCLib(fn_EVP_DigestInit_ex);
  23043. @EVP_DigestUpdate := LoadFunctionCLib(fn_EVP_DigestUpdate);
  23044. @EVP_DigestFinal_ex := LoadFunctionCLib(fn_EVP_DigestFinal_ex);
  23045. @EVP_EncryptInit := LoadFunctionCLib(fn_EVP_EncryptInit,False);
  23046. @EVP_EncryptInit_ex := LoadFunctionCLib(fn_EVP_EncryptInit_ex,False);
  23047. @EVP_EncryptUpdate := LoadFunctionCLib(fn_EVP_EncryptUpdate);
  23048. @EVP_EncryptFinal_ex := LoadFunctionCLib(fn_EVP_EncryptFinal_ex,False);
  23049. @EVP_EncryptFinal := LoadFunctionCLib(fn_EVP_EncryptFinal,False);
  23050. @EVP_DecryptInit := LoadFunctionCLib(fn_EVP_DecryptInit,False);
  23051. @EVP_DecryptInit_ex := LoadFunctionCLib(fn_EVP_DecryptInit_ex,False);
  23052. @EVP_DecryptUpdate := LoadFunctionCLib(fn_EVP_DecryptUpdate);
  23053. @EVP_DecryptFinal := LoadFunctionCLib(fn_EVP_DecryptFinal,False);
  23054. @EVP_DecryptFinal_ex := LoadFunctionCLib(fn_EVP_DecryptFinal_ex,False);
  23055. @EVP_CipherInit := LoadFunctionCLib(fn_EVP_CipherInit,False);
  23056. @EVP_CipherInit_ex := LoadFunctionCLib(fn_EVP_CipherInit_ex,False);
  23057. @EVP_CipherUpdate := LoadFunctionCLib(fn_EVP_CipherUpdate,False);
  23058. @EVP_CipherFinal := LoadFunctionCLib(fn_EVP_CipherFinal,False);
  23059. @EVP_CipherFinal_ex := LoadFunctionCLib(fn_EVP_CipherFinal_ex,False);
  23060. @EVP_SignFinal := LoadFunctionCLib(fn_EVP_SignFinal,False);
  23061. @EVP_VerifyFinal := LoadFunctionCLib(fn_EVP_VerifyFinal,False);
  23062. @EVP_DigestSignInit := LoadFunctionCLib(fn_EVP_DigestSignInit,False);
  23063. @EVP_DigestSignFinal := LoadFunctionCLib(fn_EVP_DigestSignFinal,False);
  23064. @EVP_DigestVerifyInit := LoadFunctionCLib(fn_EVP_DigestVerifyInit,False);
  23065. @EVP_DigestVerifyFinal := LoadFunctionCLib(fn_EVP_DigestVerifyFinal,False);
  23066. @EVP_OpenInit := LoadFunctionCLib(fn_EVP_OpenInit,False);
  23067. @EVP_OpenFinal := LoadFunctionCLib(fn_EVP_OpenFinal,False);
  23068. @EVP_SealInit := LoadFunctionCLib(fn_EVP_SealInit,False);
  23069. @EVP_SealFinal := LoadFunctionCLib(fn_EVP_SealFinal,False);
  23070. @EVP_EncodeInit := LoadFunctionCLib(fn_EVP_EncodeInit,False);
  23071. @EVP_EncodeUpdate := LoadFunctionCLib(fn_EVP_EncodeUpdate,False);
  23072. @EVP_EncodeFinal := LoadFunctionCLib(fn_EVP_EncodeFinal,False);
  23073. @EVP_EncodeBlock := LoadFunctionCLib(fn_EVP_EncodeBlock,False);
  23074. @EVP_DecodeInit := LoadFunctionCLib(fn_EVP_DecodeInit,False);
  23075. @EVP_DecodeUpdate:= LoadFunctionCLib(fn_EVP_DecodeUpdate,False);
  23076. @EVP_DecodeFinal:= LoadFunctionCLib(fn_EVP_DecodeFinal,False);
  23077. @EVP_DecodeBlock:= LoadFunctionCLib(fn_EVP_DecodeBlock,False);
  23078. @EVP_CIPHER_CTX_init:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_init,False);
  23079. @EVP_CIPHER_CTX_cleanup:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_cleanup,False);
  23080. @EVP_CIPHER_CTX_new:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_new,False);
  23081. @EVP_CIPHER_CTX_free:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_free,False);
  23082. @EVP_CIPHER_CTX_set_key_length:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_set_key_length,False);
  23083. @EVP_CIPHER_CTX_set_padding:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_set_padding,False);
  23084. @EVP_CIPHER_CTX_ctrl:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_ctrl,False);
  23085. @EVP_CIPHER_CTX_rand_key:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_rand_key,False);
  23086. {$ifndef OPENSSL_NO_BIO}
  23087. @BIO_f_md := LoadFunctionCLib(fn_BIO_f_md,False);
  23088. @BIO_f_base64 := LoadFunctionCLib(fn_BIO_f_base64,False);
  23089. @BIO_f_cipher := LoadFunctionCLib(fn_BIO_f_cipher,False);
  23090. @BIO_f_reliable :=LoadFunctionCLib(fn_BIO_f_reliable,False);
  23091. @BIO_set_cipher :=LoadFunctionCLib(fn_BIO_set_cipher,False);
  23092. {$endif}
  23093. @EVP_PKEY_new := LoadFunctionCLib(fn_EVP_PKEY_new);
  23094. @EVP_PKEY_free := LoadFunctionCLib(fn_EVP_PKEY_free); //USED in Indy
  23095. @EVP_PKEY_assign := LoadFunctionCLib(fn_EVP_PKEY_assign);
  23096. @EVP_get_cipherbyname := LoadFunctionCLib(fn_EVP_get_cipherbyname);
  23097. @EVP_get_digestbyname := LoadFunctionCLib(fn_EVP_get_digestbyname);
  23098. @EVP_MD_type := LoadFunctionCLib(fn_EVP_MD_type);
  23099. @EVP_MD_size := LoadFunctionCLib(fn_EVP_MD_size);
  23100. @EVP_MD_block_size := LoadFunctionCLib(fn_EVP_MD_block_size);
  23101. @EVP_MD_flags := LoadFunctionCLib(fn_EVP_MD_flags,False);
  23102. @EVP_MD_CTX_md := LoadFunctionCLib(fn_EVP_MD_CTX_md);
  23103. @EVP_CIPHER_nid := LoadFunctionCLib(fn_EVP_CIPHER_nid,False);
  23104. @EVP_CIPHER_block_size := LoadFunctionCLib(fn_EVP_CIPHER_block_size,False);
  23105. @EVP_CIPHER_key_length := LoadFunctionCLib(fn_EVP_CIPHER_key_length,False);
  23106. @EVP_CIPHER_iv_length := LoadFunctionCLib(fn_EVP_CIPHER_iv_length,False);
  23107. @EVP_CIPHER_flags := LoadFunctionCLib(fn_EVP_CIPHER_flags);
  23108. @EVP_CIPHER_type := LoadFunctionCLib(fn_EVP_CIPHER_type);
  23109. @EVP_CIPHER_CTX_cipher := LoadFunctionCLib(fn_EVP_CIPHER_CTX_cipher);
  23110. @EVP_CIPHER_CTX_nid := LoadFunctionCLib(fn_EVP_CIPHER_CTX_nid,False);
  23111. @EVP_CIPHER_CTX_block_size := LoadFunctionCLib(fn_EVP_CIPHER_CTX_block_size, False );
  23112. @EVP_CIPHER_CTX_key_length := LoadFunctionCLib(fn_EVP_CIPHER_CTX_key_length, False );
  23113. @EVP_CIPHER_CTX_iv_length := LoadFunctionCLib(fn_EVP_CIPHER_CTX_iv_length,False);
  23114. @EVP_CIPHER_CTX_copy := LoadFunctionCLib(fn_EVP_CIPHER_CTX_copy,False );
  23115. @EVP_CIPHER_CTX_get_app_data := LoadFunctionCLib(fn_EVP_CIPHER_CTX_get_app_data );
  23116. @EVP_CIPHER_CTX_set_app_data := LoadFunctionCLib(fn_EVP_CIPHER_CTX_set_app_data );
  23117. @EVP_CIPHER_CTX_flags := LoadFunctionCLib(fn_EVP_CIPHER_CTX_flags);
  23118. @EVP_add_cipher := LoadFunctionCLib(fn_EVP_add_cipher,False);
  23119. @EVP_add_digest := LoadFunctionCLib(fn_EVP_add_digest,False);
  23120. @EVP_CIPHER_do_all := LoadFunctionCLib(fn_EVP_CIPHER_do_all,False);
  23121. @EVP_CIPHER_do_all_sorted := LoadFunctionCLib(fn_EVP_CIPHER_do_all_sorted,False);
  23122. @EVP_MD_do_all := LoadFunctionCLib(fn_EVP_MD_do_all,False);
  23123. @EVP_MD_do_all_sorted := LoadFunctionCLib(fn_EVP_MD_do_all_sorted,False);
  23124. @EVP_PKEY_decrypt_old := LoadFunctionCLib(fn_EVP_PKEY_decrypt_old,False);
  23125. @EVP_PKEY_encrypt_old := LoadFunctionCLib(fn_EVP_PKEY_encrypt_old,False);
  23126. @EVP_PKEY_type := LoadFunctionCLib(fn_EVP_PKEY_type,False);
  23127. @EVP_PKEY_id := LoadFunctionCLib(fn_EVP_PKEY_id,False);
  23128. @EVP_PKEY_base_id := LoadFunctionCLib(fn_EVP_PKEY_base_id,False);
  23129. @EVP_PKEY_bits := LoadFunctionCLib(fn_EVP_PKEY_bits,False);
  23130. @EVP_PKEY_size := LoadFunctionCLib(fn_EVP_PKEY_size,False);
  23131. @EVP_PKEY_set_type := LoadFunctionCLib(fn_EVP_PKEY_set_type,False);
  23132. @EVP_PKEY_set_type_str := LoadFunctionCLib(fn_EVP_PKEY_set_type_str,False);
  23133. @EVP_PKEY_get0 := LoadFunctionCLib(fn_EVP_PKEY_get0,False);
  23134. {$ifndef OPENSSL_NO_RSA}
  23135. @EVP_PKEY_set1_RSA := LoadFunctionCLib(fn_EVP_PKEY_set1_RSA,False);
  23136. @EVP_PKEY_get1_RSA := LoadFunctionCLib(fn_EVP_PKEY_get1_RSA,False);
  23137. {$ENDIF}
  23138. {$ifndef OPENSSL_NO_DSA}
  23139. @EVP_PKEY_set1_DSA := LoadFunctionCLib(fn_EVP_PKEY_set1_DSA,False);
  23140. @EVP_PKEY_get1_DSA := LoadFunctionCLib(fn_EVP_PKEY_get1_DSA,False);
  23141. {$endif}
  23142. {$ifndef OPENSSL_NO_DH}
  23143. @EVP_PKEY_set1_DH := LoadFunctionCLib(fn_EVP_PKEY_set1_DH,False);
  23144. @EVP_PKEY_get1_DH := LoadFunctionCLib(fn_EVP_PKEY_get1_DH,False);
  23145. {$endif}
  23146. {$ifndef OPENSSL_NO_EC}
  23147. @EVP_PKEY_set1_EC_KEY := LoadFunctionCLib(fn_EVP_PKEY_set1_EC_KEY,False);
  23148. @EVP_PKEY_get1_EC_KEY := LoadFunctionCLib(fn_EVP_PKEY_get1_EC_KEY,False);
  23149. {$endif}
  23150. @d2i_PublicKey := LoadFunctionCLib(fn_d2i_PublicKey,False);
  23151. @i2d_PublicKey := LoadFunctionCLib(fn_i2d_PublicKey,False);
  23152. @d2i_AutoPrivateKey := LoadFunctionCLib(fn_d2i_AutoPrivateKey,False);
  23153. @EVP_PKEY_copy_parameters := LoadFunctionCLib(fn_EVP_PKEY_copy_parameters,False);
  23154. @EVP_PKEY_missing_parameters := LoadFunctionCLib(fn_EVP_PKEY_missing_parameters,False);
  23155. @EVP_PKEY_save_parameters := LoadFunctionCLib(fn_EVP_PKEY_save_parameters,False);
  23156. @EVP_PKEY_cmp_parameters := LoadFunctionCLib(fn_EVP_PKEY_cmp_parameters,False);
  23157. @EVP_PKEY_cmp := LoadFunctionCLib(fn_EVP_PKEY_cmp,False);
  23158. @EVP_PKEY_print_public := LoadFunctionCLib(fn_EVP_PKEY_print_public,False);
  23159. @EVP_PKEY_print_private := LoadFunctionCLib(fn_EVP_PKEY_print_private,False);
  23160. @EVP_PKEY_print_params := LoadFunctionCLib(fn_EVP_PKEY_print_params,False);
  23161. @EVP_PKEY_get_default_digest_nid := LoadFunctionCLib(fn_EVP_PKEY_get_default_digest_nid,False);
  23162. @EVP_CIPHER_param_to_asn1 := LoadFunctionCLib(fn_EVP_CIPHER_param_to_asn1,False);
  23163. @EVP_CIPHER_asn1_to_param := LoadFunctionCLib(fn_EVP_CIPHER_asn1_to_param,False);
  23164. @EVP_CIPHER_set_asn1_iv := LoadFunctionCLib(fn_EVP_CIPHER_set_asn1_iv,False);
  23165. @EVP_CIPHER_get_asn1_iv := LoadFunctionCLib(fn_EVP_CIPHER_get_asn1_iv,False);
  23166. @PKCS5_PBE_keyivgen := LoadFunctionCLib(fn_PKCS5_PBE_keyivgen,False);
  23167. @PKCS5_PBKDF2_HMAC_SHA1 := LoadFunctionCLib(fn_PKCS5_PBKDF2_HMAC_SHA1,False);
  23168. @PKCS5_PBKDF2_HMAC := LoadFunctionCLib(fn_PKCS5_PBKDF2_HMAC,False);
  23169. @PKCS5_v2_PBE_keyivgen := LoadFunctionCLib(fn_PKCS5_v2_PBE_keyivgen,False);
  23170. @PKCS5_PBE_add := LoadFunctionCLib(fn_PKCS5_PBE_add,False);
  23171. @EVP_PBE_CipherInit := LoadFunctionCLib(fn_EVP_PBE_CipherInit,False);
  23172. @EVP_PBE_alg_add_type := LoadFunctionCLib(fn_EVP_PBE_alg_add_type,False);
  23173. @EVP_PBE_alg_add := LoadFunctionCLib(fn_EVP_PBE_alg_add,False);
  23174. @EVP_PBE_find := LoadFunctionCLib(fn_EVP_PBE_find,False);
  23175. @EVP_PBE_cleanup := LoadFunctionCLib(fn_EVP_PBE_cleanup,False);
  23176. @EVP_PKEY_asn1_get_count := LoadFunctionCLib(fn_EVP_PKEY_asn1_get_count,False);
  23177. @EVP_PKEY_asn1_get0 := LoadFunctionCLib(fn_EVP_PKEY_asn1_get0,False);
  23178. @EVP_PKEY_asn1_find := LoadFunctionCLib(fn_EVP_PKEY_asn1_find,False);
  23179. @EVP_PKEY_asn1_find_str := LoadFunctionCLib(fn_EVP_PKEY_asn1_find_str,False);
  23180. @EVP_PKEY_asn1_add0 := LoadFunctionCLib(fn_EVP_PKEY_asn1_add0,False);
  23181. @EVP_PKEY_asn1_add_alias := LoadFunctionCLib(fn_EVP_PKEY_asn1_add_alias,False);
  23182. @EVP_PKEY_asn1_get0_info := LoadFunctionCLib(fn_EVP_PKEY_asn1_get0_info,False);
  23183. @EVP_PKEY_get0_asn1 := LoadFunctionCLib(fn_EVP_PKEY_get0_asn1,False);
  23184. @EVP_PKEY_asn1_new := LoadFunctionCLib(fn_EVP_PKEY_asn1_new,False);
  23185. @EVP_PKEY_asn1_copy := LoadFunctionCLib(fn_EVP_PKEY_asn1_copy,False);
  23186. @EVP_PKEY_asn1_free := LoadFunctionCLib(fn_EVP_PKEY_asn1_free,False);
  23187. @EVP_PKEY_asn1_set_public := LoadFunctionCLib(fn_EVP_PKEY_asn1_set_public,False);
  23188. @EVP_PKEY_asn1_set_private := LoadFunctionCLib(fn_EVP_PKEY_asn1_set_private,False);
  23189. @EVP_PKEY_asn1_set_param := LoadFunctionCLib(fn_EVP_PKEY_asn1_set_param,False);
  23190. @EVP_PKEY_asn1_set_free := LoadFunctionCLib(fn_EVP_PKEY_asn1_set_free,False);
  23191. @EVP_PKEY_asn1_set_ctrl := LoadFunctionCLib(fn_EVP_PKEY_asn1_set_ctrl,False);
  23192. @EVP_PKEY_meth_find := LoadFunctionCLib(fn_EVP_PKEY_meth_find,False);
  23193. @EVP_PKEY_meth_new := LoadFunctionCLib(fn_EVP_PKEY_meth_new,False);
  23194. @EVP_PKEY_meth_get0_info := LoadFunctionCLib(fn_EVP_PKEY_meth_get0_info,False);
  23195. @EVP_PKEY_meth_copy := LoadFunctionCLib(fn_EVP_PKEY_meth_copy,False);
  23196. @EVP_PKEY_meth_free := LoadFunctionCLib(fn_EVP_PKEY_meth_free,False);
  23197. @EVP_PKEY_meth_add0 := LoadFunctionCLib(fn_EVP_PKEY_meth_add0,False);
  23198. @EVP_PKEY_CTX_new := LoadFunctionCLib(fn_EVP_PKEY_CTX_new,False);
  23199. @EVP_PKEY_CTX_new_id := LoadFunctionCLib(fn_EVP_PKEY_CTX_new_id,False);
  23200. @EVP_PKEY_CTX_dup := LoadFunctionCLib(fn_EVP_PKEY_CTX_dup,False);
  23201. @EVP_PKEY_CTX_free := LoadFunctionCLib(fn_EVP_PKEY_CTX_free,False);
  23202. @EVP_PKEY_CTX_ctrl := LoadFunctionCLib(fn_EVP_PKEY_CTX_ctrl,False);
  23203. @EVP_PKEY_CTX_ctrl_str := LoadFunctionCLib(fn_EVP_PKEY_CTX_ctrl_str,False);
  23204. @EVP_PKEY_CTX_get_operation := LoadFunctionCLib(fn_EVP_PKEY_CTX_get_operation,False);
  23205. @EVP_PKEY_CTX_set0_keygen_info := LoadFunctionCLib(fn_EVP_PKEY_CTX_set0_keygen_info,False);
  23206. @EVP_PKEY_new_mac_key := LoadFunctionCLib(fn_EVP_PKEY_new_mac_key,False);
  23207. @EVP_PKEY_CTX_set_data := LoadFunctionCLib(fn_EVP_PKEY_CTX_set_data,False);
  23208. @EVP_PKEY_CTX_get_data := LoadFunctionCLib(fn_EVP_PKEY_CTX_get_data,False);
  23209. @EVP_PKEY_CTX_get0_pkey := LoadFunctionCLib(fn_EVP_PKEY_CTX_get0_pkey,False);
  23210. @EVP_PKEY_CTX_get0_peerkey := LoadFunctionCLib(fn_EVP_PKEY_CTX_get0_peerkey,False);
  23211. @EVP_PKEY_CTX_set_app_data := LoadFunctionCLib(fn_EVP_PKEY_CTX_set_app_data,False);
  23212. @EVP_PKEY_CTX_get_app_data := LoadFunctionCLib(fn_EVP_PKEY_CTX_get_app_data,False);
  23213. @EVP_PKEY_sign_init := LoadFunctionCLib(fn_EVP_PKEY_sign_init,False);
  23214. @EVP_PKEY_sign := LoadFunctionCLib(fn_EVP_PKEY_sign,False);
  23215. @EVP_PKEY_verify_init := LoadFunctionCLib(fn_EVP_PKEY_verify_init,False);
  23216. @EVP_PKEY_verify := LoadFunctionCLib(fn_EVP_PKEY_verify,False);
  23217. @EVP_PKEY_verify_recover_init := LoadFunctionCLib(fn_EVP_PKEY_verify_recover_init,False);
  23218. @EVP_PKEY_verify_recover := LoadFunctionCLib(fn_EVP_PKEY_verify_recover,False);
  23219. @EVP_PKEY_encrypt_init := LoadFunctionCLib(fn_EVP_PKEY_encrypt_init,False);
  23220. @EVP_PKEY_encrypt := LoadFunctionCLib(fn_EVP_PKEY_encrypt,False);
  23221. @EVP_PKEY_decrypt_init := LoadFunctionCLib(fn_EVP_PKEY_decrypt_init,False);
  23222. @EVP_PKEY_decrypt := LoadFunctionCLib(fn_EVP_PKEY_decrypt,False);
  23223. @EVP_PKEY_derive_init := LoadFunctionCLib(fn_EVP_PKEY_derive_init,False);
  23224. @EVP_PKEY_derive_set_peer := LoadFunctionCLib(fn_EVP_PKEY_derive_set_peer,False);
  23225. @EVP_PKEY_derive := LoadFunctionCLib(fn_EVP_PKEY_derive,False);
  23226. @EVP_PKEY_paramgen_init := LoadFunctionCLib(fn_EVP_PKEY_paramgen_init,False);
  23227. @EVP_PKEY_paramgen := LoadFunctionCLib(fn_EVP_PKEY_paramgen,False);
  23228. @EVP_PKEY_keygen_init := LoadFunctionCLib(fn_EVP_PKEY_keygen_init,False);
  23229. @EVP_PKEY_keygen := LoadFunctionCLib(fn_EVP_PKEY_keygen,False);
  23230. @EVP_PKEY_CTX_set_cb := LoadFunctionCLib(fn_EVP_PKEY_CTX_set_cb,False);
  23231. @EVP_PKEY_CTX_get_cb := LoadFunctionCLib(fn_EVP_PKEY_CTX_get_cb,False);
  23232. @EVP_PKEY_CTX_get_keygen_info := LoadFunctionCLib(fn_EVP_PKEY_CTX_get_keygen_info,False);
  23233. @EVP_PKEY_meth_set_init := LoadFunctionCLib(fn_EVP_PKEY_meth_set_init,False);
  23234. @EVP_PKEY_meth_set_copy := LoadFunctionCLib(fn_EVP_PKEY_meth_set_copy,False);
  23235. @EVP_PKEY_meth_set_cleanup := LoadFunctionCLib(fn_EVP_PKEY_meth_set_cleanup,False);
  23236. @EVP_PKEY_meth_set_paramgen := LoadFunctionCLib(fn_EVP_PKEY_meth_set_paramgen,False);
  23237. @EVP_PKEY_meth_set_keygen := LoadFunctionCLib(fn_EVP_PKEY_meth_set_keygen,False);
  23238. @EVP_PKEY_meth_set_sign := LoadFunctionCLib(fn_EVP_PKEY_meth_set_sign,False);
  23239. @EVP_PKEY_meth_set_verify := LoadFunctionCLib(fn_EVP_PKEY_meth_set_verify,False);
  23240. @EVP_PKEY_meth_set_verify_recover := LoadFunctionCLib(fn_EVP_PKEY_meth_set_verify_recover,False);
  23241. @EVP_PKEY_meth_set_signctx := LoadFunctionCLib(fn_EVP_PKEY_meth_set_signctx,False);
  23242. @EVP_PKEY_meth_set_verifyctx := LoadFunctionCLib(fn_EVP_PKEY_meth_set_verifyctx,False);
  23243. @EVP_PKEY_meth_set_encrypt := LoadFunctionCLib(fn_EVP_PKEY_meth_set_encrypt,False);
  23244. @EVP_PKEY_meth_set_decrypt := LoadFunctionCLib(fn_EVP_PKEY_meth_set_decrypt,False);
  23245. @EVP_PKEY_meth_set_derive := LoadFunctionCLib(fn_EVP_PKEY_meth_set_derive,False);
  23246. @EVP_PKEY_meth_set_ctrl := LoadFunctionCLib(fn_EVP_PKEY_meth_set_ctrl,False);
  23247. //HMAC
  23248. {$IFNDEF OPENSSL_NO_HMAC}
  23249. @HMAC_CTX_init := LoadFunctionCLib(fn_HMAC_CTX_init);
  23250. if IsOpenSSL_1x then begin
  23251. @_HMAC_Init_ex := nil;
  23252. @_HMAC_Update := nil;
  23253. @_HMAC_Final := nil;
  23254. @_1_0_HMAC_Init_ex := LoadFunctionCLib(fn_HMAC_Init_ex);
  23255. @_1_0_HMAC_Update := LoadFunctionCLib(fn_HMAC_Update);
  23256. @_1_0_HMAC_Final := LoadFunctionCLib(fn_HMAC_Final);
  23257. end else begin
  23258. @_HMAC_Init_ex := LoadFunctionCLib(fn_HMAC_Init_ex);
  23259. @_HMAC_Update := LoadFunctionCLib(fn_HMAC_Update);
  23260. @_HMAC_Final := LoadFunctionCLib(fn_HMAC_Final);
  23261. @_1_0_HMAC_Init_ex := nil;
  23262. @_1_0_HMAC_Update := nil;
  23263. @_1_0_HMAC_Final := nil;
  23264. end;
  23265. @HMAC_CTX_cleanup := LoadFunctionCLib(fn_HMAC_CTX_cleanup);
  23266. {$ENDIF}
  23267. //OBJ
  23268. @OBJ_obj2nid := LoadFunctionCLib(fn_OBJ_obj2nid);
  23269. @OBJ_nid2obj := LoadFunctionCLib(fn_OBJ_nid2obj);
  23270. @OBJ_nid2ln := LoadFunctionCLib(fn_OBJ_nid2ln);
  23271. @OBJ_nid2sn := LoadFunctionCLib(fn_OBJ_nid2sn);
  23272. //ASN1
  23273. @ASN1_INTEGER_set := LoadFunctionCLib(fn_ASN1_INTEGER_set);
  23274. @ASN1_INTEGER_get := LoadFunctionCLib(fn_ASN1_INTEGER_get);
  23275. @ASN1_INTEGER_to_BN := LoadFunctionCLib(fn_ASN1_INTEGER_to_BN);
  23276. @ASN1_STRING_type_new := LoadFunctionCLib(fn_ASN1_STRING_type_new);
  23277. @ASN1_STRING_free := LoadFunctionCLib(fn_ASN1_STRING_free);
  23278. @ASN1_dup := LoadFunctionCLib(fn_ASN1_dup );
  23279. @CRYPTO_set_mem_functions := LoadFunctionCLib(fn_CRYPTO_set_mem_functions);
  23280. @CRYPTO_malloc := LoadFunctionCLib(fn_CRYPTO_malloc);
  23281. @CRYPTO_free := LoadFunctionCLib(fn_CRYPTO_free);
  23282. @CRYPTO_mem_leaks := LoadFunctionCLib(fn_CRYPTO_mem_leaks);
  23283. @CRYPTO_mem_ctrl := LoadFunctionCLib(fn_CRYPTO_mem_ctrl);
  23284. @CRYPTO_set_mem_debug_functions := LoadFunctionCLib(fn_CRYPTO_set_mem_debug_functions);
  23285. //@CRYPTO_dbg_malloc := LoadFunctionCLib(fn_CRYPTO_dbg_malloc);
  23286. //@CRYPTO_dbg_realloc := LoadFunctionCLib(fn_CRYPTO_dbg_realloc);
  23287. //@CRYPTO_dbg_free := LoadFunctionCLib(fn_CRYPTO_dbg_free);
  23288. //@CRYPTO_dbg_set_options := LoadFunctionCLib(fn_CRYPTO_dbg_set_options);
  23289. //@CRYPTO_dbg_get_options := LoadFunctionCLib(fn_CRYPTO_dbg_get_options);
  23290. @PKCS12_create := LoadFunctionCLib(fn_PKCS12_create);
  23291. @i2d_PKCS12_bio := LoadFunctionCLib(fn_i2d_PKCS12_bio);
  23292. @PKCS12_free := LoadFunctionCLib(fn_PKCS12_free);
  23293. @OpenSSL_add_all_algorithms := LoadOldCLib(fn_OpenSSL_add_all_algorithms,
  23294. fn_OPENSSL_add_all_algorithms_noconf);
  23295. @OpenSSL_add_all_ciphers := LoadFunctionCLib(fn_OpenSSL_add_all_ciphers);
  23296. @OpenSSL_add_all_digests := LoadFunctionCLib(fn_OpenSSL_add_all_digests);
  23297. @EVP_cleanup := LoadFunctionCLib(fn_EVP_cleanup);
  23298. @sk_num := LoadFunctionCLib(fn_sk_num);
  23299. @sk_new := LoadFunctionCLib(fn_sk_new);
  23300. @sk_new_null := LoadFunctionCLib(fn_sk_new_null);
  23301. @sk_free := LoadFunctionCLib(fn_sk_free);
  23302. @sk_push := LoadFunctionCLib(fn_sk_push);
  23303. @sk_dup := LoadFunctionCLib(fn_sk_dup);
  23304. @sk_find := LoadFunctionCLib(fn_sk_find);
  23305. @sk_value := LoadFunctionCLib(fn_sk_value);
  23306. {$IFDEF OPENSSL_FIPS}
  23307. @_FIPS_mode_set := LoadFunctionCLib(fn_FIPS_mode_set,False);
  23308. @_FIPS_mode := LoadFunctionCLib(fn_FIPS_mode,False);
  23309. {$ENDIF}
  23310. // TODO: expose a global callback function pointer, or an optional input
  23311. // parameter to Load(), so users can choose to load additional OpenSSL
  23312. // functions as desired using the DLL handles that we've already loaded...
  23313. {
  23314. if Assigned(LoadSSLFuncsCallback) then begin
  23315. LoadSSLFuncsCallback(hIdSSL, hIdCrypto, FFailedLoadList);
  23316. end;
  23317. }
  23318. Result := (FFailedLoadList.Count = 0);
  23319. end;
  23320. {$ENDIF} // STATICLOAD_OPENSSL
  23321. procedure InitializeFuncPointers;
  23322. begin
  23323. @SSL_CTX_set_cipher_list := nil;
  23324. @SSL_CTX_new := nil;
  23325. @SSL_CTX_free := nil;
  23326. @SSL_set_fd := nil;
  23327. @SSL_CTX_use_PrivateKey_file := nil;
  23328. @SSL_CTX_use_PrivateKey := nil;
  23329. @SSL_CTX_use_certificate := nil;
  23330. @SSL_CTX_use_certificate_file := nil;
  23331. SSL_CTX_use_certificate_chain_file := nil;
  23332. @SSL_load_error_strings := nil;
  23333. @SSL_state_string_long := nil;
  23334. @SSL_load_error_strings := nil;
  23335. @SSL_alert_type_string_long := nil;
  23336. @SSL_get_peer_certificate := nil;
  23337. @SSL_CTX_set_verify := nil;
  23338. @SSL_CTX_set_verify_depth := nil;
  23339. @SSL_CTX_get_verify_depth := nil;
  23340. @SSL_CTX_set_default_passwd_cb := nil;
  23341. @SSL_CTX_set_default_passwd_cb_userdata := nil;
  23342. @SSL_CTX_check_private_key := nil;
  23343. @SSL_new := nil;
  23344. @SSL_free := nil;
  23345. @SSL_accept := nil;
  23346. @SSL_connect := nil;
  23347. @SSL_read := nil;
  23348. @SSL_peek := nil;
  23349. @SSL_pending := nil;
  23350. @SSL_write := nil;
  23351. @SSL_ctrl := nil;
  23352. @SSL_callback_ctrl := nil;
  23353. @SSL_CTX_ctrl := nil;
  23354. @SSL_CTX_callback_ctrl := nil;
  23355. @SSL_get_error := nil;
  23356. @SSLv2_method := nil;
  23357. @SSLv2_server_method := nil;
  23358. @SSLv2_client_method := nil;
  23359. @SSLv3_method := nil;
  23360. @SSLv3_server_method := nil;
  23361. @SSLv3_client_method := nil;
  23362. @SSLv23_method := nil;
  23363. @SSLv23_server_method := nil;
  23364. @SSLv23_client_method := nil;
  23365. @TLSv1_method := nil;
  23366. @TLSv1_server_method := nil;
  23367. @TLSv1_client_method := nil;
  23368. @TLSv1_1_method := nil;
  23369. @TLSv1_1_server_method := nil;
  23370. @TLSv1_1_client_method := nil;
  23371. @TLSv1_2_method := nil;
  23372. @TLSv1_2_server_method := nil;
  23373. @TLSv1_2_client_method := nil;
  23374. @DTLSv1_method := nil;
  23375. @DTLSv1_server_method := nil;
  23376. @DTLSv1_client_method := nil;
  23377. @SSL_shutdown := nil;
  23378. @SSL_set_connect_state := nil;
  23379. @SSL_set_accept_state := nil;
  23380. @SSL_set_shutdown := nil;
  23381. @SSL_CTX_load_verify_locations := nil;
  23382. @SSL_get_session := nil;
  23383. @SSLeay_add_ssl_algorithms := nil;
  23384. @SSL_SESSION_get_id := nil;
  23385. @SSL_copy_session_id := nil;
  23386. // CRYPTO LIB
  23387. @_SSLeay_version := nil;
  23388. @SSLeay := nil;
  23389. @X509_NAME_oneline := nil;
  23390. @X509_NAME_hash := nil;
  23391. @X509_set_issuer_name := nil;
  23392. @X509_get_issuer_name := nil;
  23393. @X509_set_subject_name := nil;
  23394. @X509_get_subject_name := nil;
  23395. @X509_digest := nil;
  23396. @X509_LOOKUP_ctrl := nil;
  23397. @X509_STORE_add_cert := nil;
  23398. @X509_STORE_add_crl := nil;
  23399. @X509_STORE_CTX_get_ex_data := nil;
  23400. @X509_STORE_CTX_get_error := nil;
  23401. @X509_STORE_CTX_set_error := nil;
  23402. @X509_STORE_CTX_get_error_depth := nil;
  23403. @X509_STORE_CTX_get_current_cert := nil;
  23404. @X509_STORE_add_lookup := nil;
  23405. @X509_STORE_load_locations := nil;
  23406. @X509_sign := nil;
  23407. @X509_REQ_sign := nil;
  23408. @X509_REQ_add_extensions := nil;
  23409. @X509V3_EXT_conf_nid := nil;
  23410. @X509_EXTENSION_create_by_NID := nil;
  23411. @X509V3_set_ctx := nil;
  23412. @X509_EXTENSION_free := nil;
  23413. @X509_add_ext := nil;
  23414. {$IFNDEF OPENSSL_NO_BIO}
  23415. //X509_print
  23416. @X509_print := nil;
  23417. {$ENDIF}
  23418. @_RAND_cleanup := nil;
  23419. @_RAND_bytes := nil;
  23420. @_RAND_pseudo_bytes := nil;
  23421. @_RAND_seed := nil;
  23422. @_RAND_add := nil;
  23423. @_RAND_status := nil;
  23424. {$IFDEF SYS_WIN}
  23425. @_RAND_screen := nil;
  23426. @_RAND_event := nil;
  23427. {$ENDIF}
  23428. {$IFNDEF OPENSSL_NO_DES}
  23429. // 3DES
  23430. @DES_set_odd_parity := nil;
  23431. @DES_set_key := nil;
  23432. @DES_ecb_encrypt := nil;
  23433. @Id_ossl_old_des_set_odd_parity := nil;
  23434. @Id_ossl_old_des_set_key := nil;
  23435. @Id_ossl_old_des_ecb_encrypt := nil;
  23436. {$ENDIF}
  23437. // More SSL functions
  23438. @SSL_set_ex_data := nil;
  23439. @SSL_get_ex_data := nil;
  23440. @SSL_load_client_CA_file := nil;
  23441. @SSL_CTX_set_client_CA_list := nil;
  23442. @SSL_CTX_set_default_verify_paths := nil;
  23443. @SSL_CTX_set_session_id_context := nil;
  23444. @SSL_CIPHER_description := nil;
  23445. @SSL_get_current_cipher := nil;
  23446. @SSL_CIPHER_get_name := nil;
  23447. @SSL_CIPHER_get_version := nil;
  23448. @SSL_CIPHER_get_bits := nil;
  23449. // Thread safe
  23450. @_CRYPTO_num_locks := nil;
  23451. @CRYPTO_set_locking_callback := nil;
  23452. {$IFNDEF WIN32_OR_WIN64}
  23453. @CRYPTO_THREADID_set_callback := nil;
  23454. @CRYPTO_THREADID_set_numeric := nil;
  23455. @CRYPTO_THREADID_set_pointer := nil;
  23456. @CRYPTO_set_id_callback := nil;
  23457. {$ENDIF}
  23458. @ERR_put_error := nil;
  23459. @ERR_get_error := nil;
  23460. @ERR_peek_error := nil;
  23461. @ERR_peek_last_error := nil;
  23462. @ERR_clear_error := nil;
  23463. @ERR_error_string := nil;
  23464. @ERR_error_string_n := nil;
  23465. @ERR_lib_error_string := nil;
  23466. @ERR_func_error_string := nil;
  23467. @ERR_reason_error_string := nil;
  23468. @ERR_load_ERR_strings := nil;
  23469. @ERR_load_crypto_strings := nil;
  23470. @ERR_free_strings := nil;
  23471. @ERR_remove_thread_state := nil;
  23472. @ERR_remove_state := nil;
  23473. @CRYPTO_cleanup_all_ex_data := nil;
  23474. @SSL_COMP_get_compression_methods := nil;
  23475. @SSL_COMP_free_compression_methods := nil;
  23476. @sk_pop_free := nil;
  23477. //RSA
  23478. @RSA_new := nil;
  23479. @RSA_free := nil;
  23480. @RSA_size := nil;
  23481. @RSA_generate_key := nil;
  23482. @RSA_generate_key_ex := nil;
  23483. @RSA_check_key := nil;
  23484. @RSA_private_decrypt := nil;
  23485. @RSA_public_encrypt := nil;
  23486. //DH
  23487. @DH_free := nil;
  23488. //BIO
  23489. @BIO_set_flags := nil;
  23490. @BIO_new := nil;
  23491. @BIO_push := nil;
  23492. @BIO_pop := nil;
  23493. @BIO_set_next := nil;
  23494. @BIO_free := nil;
  23495. @BIO_free_all := nil;
  23496. @BIO_new_mem_buf := nil;
  23497. @BIO_s_mem := nil;
  23498. @BIO_s_file := nil;
  23499. @BIO_set_ex_data := nil;
  23500. @BIO_get_ex_data := nil;
  23501. @BIO_ctrl := nil;
  23502. @BIO_ptr_ctrl := nil;
  23503. @BIO_int_ctrl := nil;
  23504. @BIO_new_file := nil;
  23505. @BIO_puts := nil;
  23506. @BIO_read := nil;
  23507. @BIO_write := nil;
  23508. //BN
  23509. @BN_hex2bn := nil;
  23510. @BN_bn2dec := nil;
  23511. @BN_bn2hex := nil;
  23512. //i2d
  23513. @i2d_PKCS7 := nil;
  23514. @d2i_PKCS7 := nil;
  23515. @i2d_RSAPrivateKey := nil;
  23516. @d2i_RSAPrivateKey := nil;
  23517. @i2d_DSAPrivateKey := nil;
  23518. @d2i_DSAPrivateKey := nil;
  23519. @i2d_X509_bio := nil;
  23520. @i2d_PrivateKey_bio := nil;
  23521. @i2d_PrivateKey := nil;
  23522. @d2i_PrivateKey := nil;
  23523. @d2i_PrivateKey_bio := nil;
  23524. @i2d_X509 := nil;
  23525. @d2i_X509_bio := nil;
  23526. @d2i_X509 := nil;
  23527. @d2i_PKCS12_bio := nil;
  23528. @PKCS12_parse := nil;
  23529. @X509_NAME_new := nil;
  23530. @X509_NAME_free := nil;
  23531. @i2d_X509_REQ_bio := nil;
  23532. @i2d_X509_REQ := nil;
  23533. @d2i_X509_REQ := nil;
  23534. @i2d_X509_NAME := nil;
  23535. @d2i_X509_NAME := nil;
  23536. @i2d_DSAparams := nil;
  23537. @d2i_DSAparams := nil;
  23538. @i2d_DHparams := nil;
  23539. @d2i_DHparams := nil;
  23540. @i2d_NETSCAPE_CERT_SEQUENCE := nil;
  23541. @d2i_NETSCAPE_CERT_SEQUENCE := nil;
  23542. @i2d_PUBKEY := nil;
  23543. @d2i_PUBKEY := nil;
  23544. //X509
  23545. @X509_get_default_cert_file := nil;
  23546. @X509_get_default_cert_file_env := nil;
  23547. @X509_new := nil;
  23548. @X509_free := nil;
  23549. @X509_REQ_new := nil;
  23550. @X509_REQ_free := nil;
  23551. @X509_to_X509_REQ := nil;
  23552. @X509_NAME_add_entry_by_txt := nil;
  23553. @X509_INFO_free := nil;
  23554. @X509_set_version := nil;
  23555. @X509_get_serialNumber := nil;
  23556. @X509_gmtime_adj := nil;
  23557. @X509_set_notBefore := nil;
  23558. @X509_set_notAfter := nil;
  23559. @X509_set_pubkey := nil;
  23560. @X509_REQ_set_pubkey := nil;
  23561. //PEM
  23562. {$IFNDEF SSLEAY_MACROS}
  23563. @_PEM_read_bio_X509 := nil;
  23564. @_PEM_read_bio_X509_REQ := nil;
  23565. @_PEM_read_bio_X509_CRL := nil;
  23566. @_PEM_read_bio_RSAPrivateKey := nil;
  23567. @_PEM_read_bio_RSAPublicKey := nil;
  23568. @_PEM_read_bio_DSAPrivateKey := nil;
  23569. @_PEM_read_bio_PrivateKey := nil;
  23570. @_PEM_read_bio_PKCS7 := nil;
  23571. @_PEM_read_bio_DHparams := nil;
  23572. @_PEM_read_bio_DSAparams := nil;
  23573. @_PEM_read_bio_NETSCAPE_CERT_SEQUENCE := nil;
  23574. @_PEM_read_bio_PUBKEY := nil;
  23575. @_PEM_write_bio_X509 := nil;
  23576. @_PEM_write_bio_X509_REQ := nil;
  23577. @_PEM_write_bio_X509_CRL := nil;
  23578. @_PEM_write_bio_RSAPublicKey := nil;
  23579. @_PEM_write_bio_RSAPrivateKey := nil;
  23580. @_PEM_write_bio_DSAPrivateKey := nil;
  23581. @_PEM_write_bio_PrivateKey := nil;
  23582. @_PEM_write_bio_PKCS7 := nil;
  23583. @_PEM_write_bio_DHparams := nil;
  23584. @_PEM_write_bio_DSAparams := nil;
  23585. @_PEM_write_bio_NETSCAPE_CERT_SEQUENCE := nil;
  23586. @_PEM_write_bio_PKCS8PrivateKey := nil;
  23587. @_PEM_write_bio_PUBKEY := nil;
  23588. {$ELSE}
  23589. @PEM_ASN1_write_bio := nil;
  23590. @PEM_ASN1_read_bio := nil;
  23591. {$ENDIF}
  23592. @PEM_X509_INFO_read_bio := nil;
  23593. @PEM_read_bio_X509_AUX := nil;
  23594. //EVP
  23595. {$IFNDEF OPENSSL_NO_DES}
  23596. @EVP_des_ede3_cbc := nil;
  23597. {$ENDIF}
  23598. {$IFNDEF OPENSSL_NO_SHA512}
  23599. @EVP_sha512 := nil;
  23600. @EVP_sha384 := nil;
  23601. {$ENDIF}
  23602. {$IFNDEF OPENSSL_NO_SHA256}
  23603. @EVP_sha256 := nil;
  23604. @EVP_sha224 := nil;
  23605. {$ENDIF}
  23606. {$IFNDEF OPENSSL_NO_SHA}
  23607. @EVP_sha := nil;
  23608. @EVP_sha1 := nil;
  23609. @EVP_dss := nil;
  23610. @EVP_dss1 := nil;
  23611. @EVP_ecdsa := nil;
  23612. {$ENDIF}
  23613. {$IFNDEF OPENSSL_NO_MD5}
  23614. @EVP_md5 := nil;
  23615. {$ENDIF}
  23616. {$IFNDEF OPENSSL_NO_MD4}
  23617. @EVP_md4 := nil;
  23618. {$ENDIF}
  23619. {$IFNDEF OPENSSL_NO_MD2}
  23620. @EVP_md2 := nil;
  23621. {$ENDIF}
  23622. {$ifndef OPENSSL_NO_MDC2}
  23623. @EVP_mdc2 := nil;
  23624. {$endif}
  23625. {$IFNDEF OPENSSL_NO_MD5}
  23626. @EVP_md5 := nil;
  23627. {$ENDIF}
  23628. {$ifndef OPENSSL_NO_RIPEMD}
  23629. EVP_ripemd160 := nil;
  23630. {$endif}
  23631. {$ifndef OPENSSL_NO_WHIRLPOOL}
  23632. @EVP_whirlpool := nil;
  23633. {$endif}
  23634. @EVP_md_null := nil;
  23635. {$IFNDEF OPENSSL_NO_DES}
  23636. @EVP_des_ecb := nil;
  23637. @EVP_des_ede := nil;
  23638. @EVP_des_ede3 :=nil;
  23639. @EVP_des_ede_ecb := nil;
  23640. @EVP_des_ede3_ecb := nil;
  23641. @EVP_des_cfb64 := nil;
  23642. @EVP_des_cfb1 := nil;
  23643. @EVP_des_cfb8 := nil;
  23644. @EVP_des_ede_cfb64 := nil;
  23645. //#if 0
  23646. // @EVP_des_ede_cfb1 := nil;
  23647. // @EVP_des_ede_cfb8 := nil;
  23648. //#endif
  23649. @EVP_des_ede3_cfb64 :=nil;
  23650. @EVP_des_ede3_cfb1 := nil;
  23651. @EVP_des_ede3_cfb8 := nil;
  23652. @EVP_des_ofb := nil;
  23653. @EVP_des_ede_ofb := nil;
  23654. @EVP_des_ede3_ofb := nil;
  23655. @EVP_des_cbc := nil;
  23656. @EVP_des_ede_cbc := nil;
  23657. @EVP_desx_cbc := nil;
  23658. //* This should now be supported through the dev_crypto ENGINE. But also, why are
  23659. // * rc4 and md5 declarations made here inside a "NO_DES" precompiler branch? */
  23660. //#if 0
  23661. {$ifdef OPENSSL_OPENBSD_DEV_CRYPTO}
  23662. @EVP_dev_crypto_des_ede3_cbc := nil;
  23663. @EVP_dev_crypto_rc4 := nil;
  23664. @EVP_dev_crypto_md5 := nil;
  23665. {$endif}
  23666. //#endif
  23667. {$endif}
  23668. {$ifndef OPENSSL_NO_RC4}
  23669. @EVP_rc4 := nil;
  23670. @EVP_rc4_40 := nil;
  23671. {$ifndef OPENSSL_NO_MD5}
  23672. @EVP_rc4_hmac_md5 := nil;
  23673. {$endif}
  23674. {$endif}
  23675. {$ifndef OPENSSL_NO_IDEA}
  23676. @EVP_idea_ecb := nil;
  23677. @EVP_idea_cfb64 := nil;
  23678. @EVP_idea_ofb := nil;
  23679. @EVP_idea_cbc := nil;
  23680. {$endif}
  23681. {$ifndef OPENSSL_NO_RC2}
  23682. @EVP_rc2_ecb := nil;
  23683. @EVP_rc2_cbc := nil;
  23684. @EVP_rc2_40_cbc := nil;
  23685. @EVP_rc2_64_cbc := nil;
  23686. @EVP_rc2_cfb64 := nil;
  23687. @EVP_rc2_ofb := nil;
  23688. {$endif}
  23689. {$ifndef OPENSSL_NO_BF}
  23690. @EVP_bf_ecb := nil;
  23691. @EVP_bf_cbc := nil;
  23692. @EVP_bf_cfb64 := nil;
  23693. @EVP_bf_ofb := nil;
  23694. {$endif}
  23695. {$ifndef OPENSSL_NO_CAST}
  23696. @EVP_cast5_ecb := nil;
  23697. @EVP_cast5_cbc := nil;
  23698. @EVP_cast5_cfb64 := nil;
  23699. @EVP_cast5_ofb := nil;
  23700. {$endif}
  23701. {$ifndef OPENSSL_NO_RC5}
  23702. @EVP_rc5_32_12_16_cbc := nil;
  23703. @EVP_rc5_32_12_16_ecb := nil;
  23704. @EVP_rc5_32_12_16_cfb64 := nil;
  23705. @EVP_rc5_32_12_16_ofb := nil;
  23706. {$endif}
  23707. {$ifndef OPENSSL_NO_AES}
  23708. @EVP_aes_128_ecb := nil;
  23709. @EVP_aes_128_cbc := nil;
  23710. @EVP_aes_128_cfb1:= nil;
  23711. @EVP_aes_128_cfb8:= nil;
  23712. @EVP_aes_128_cfb128 := nil;
  23713. @EVP_aes_128_ofb := nil;
  23714. @EVP_aes_128_ctr := nil;
  23715. @EVP_aes_128_gcm := nil;
  23716. @EVP_aes_128_ccm := nil;
  23717. @EVP_aes_128_xts := nil;
  23718. @EVP_aes_192_ecb := nil;
  23719. @EVP_aes_192_cbc := nil;
  23720. @EVP_aes_192_cfb1 := nil;
  23721. @EVP_aes_192_cfb128 := nil;
  23722. @EVP_aes_192_ofb := nil;
  23723. @EVP_aes_192_ctr := nil;
  23724. @EVP_aes_192_gcm := nil;
  23725. @EVP_aes_192_ccm := nil;
  23726. @EVP_aes_256_ecb := nil;
  23727. @EVP_aes_256_cbc := nil;
  23728. @EVP_aes_256_cfb1 := nil;
  23729. @EVP_aes_256_cfb8 := nil;
  23730. @EVP_aes_256_cfb128 := nil;
  23731. @EVP_aes_256_ofb := nil;
  23732. @EVP_aes_256_ctr := nil;
  23733. @EVP_aes_256_gcm := nil;
  23734. @EVP_aes_256_ccm := nil;
  23735. @EVP_aes_256_xts := nil;
  23736. {$ifndef OPENSSL_NO_SHA}
  23737. {$ifndef OPENSSL_NO_SHA1}
  23738. @EVP_aes_128_cbc_hmac_sha1 := nil;
  23739. @EVP_aes_256_cbc_hmac_sha1 := nil;
  23740. {$endif}
  23741. {$endif}
  23742. {$endif}
  23743. {$ifndef OPENSSL_NO_CAMELLIA}
  23744. @EVP_camellia_128_ecb := nil;
  23745. @EVP_camellia_128_cbc := nil;
  23746. @EVP_camellia_128_cfb1 := nil;
  23747. @EVP_camellia_128_cfb8 := nil;
  23748. @EVP_camellia_128_cfb128 := nil;
  23749. @EVP_camellia_128_ofb := nil;
  23750. @EVP_camellia_192_ecb := nil;
  23751. @EVP_camellia_192_cbc := nil;
  23752. @EVP_camellia_192_cfb1 := nil;
  23753. @EVP_camellia_192_cfb8 := nil;
  23754. @EVP_camellia_192_cfb128 :=nil;
  23755. @EVP_camellia_192_ofb := nil;
  23756. @EVP_camellia_256_ecb := nil;
  23757. @EVP_camellia_256_cbc := nil;
  23758. @EVP_camellia_256_cfb1 := nil;
  23759. @EVP_camellia_256_cfb8 := nil;
  23760. @EVP_camellia_256_cfb128 := nil;
  23761. @EVP_camellia_256_ofb := nil;
  23762. {$endif}
  23763. {$ifndef OPENSSL_NO_SEED}
  23764. @EVP_seed_ecb := nil;
  23765. @EVP_seed_cbc := nil;
  23766. @EVP_seed_cfb128 := nil;
  23767. @EVP_seed_ofb := nil;
  23768. {$endif}
  23769. @EVP_MD_CTX_init := nil;
  23770. @EVP_MD_CTX_cleanup := nil;
  23771. @EVP_MD_CTX_create := nil;
  23772. @EVP_MD_CTX_destroy := nil;
  23773. @EVP_MD_CTX_copy := nil;
  23774. @EVP_MD_CTX_copy_ex := nil;
  23775. //@EVP_MD_CTX_set_flags := nil;
  23776. //@EVP_MD_CTX_clear_flags := nil;
  23777. //@EVP_MD_CTX_test_flags := nil;
  23778. @EVP_DigestInit := nil;
  23779. @EVP_DigestInit_ex := nil;
  23780. @EVP_DigestUpdate := nil;
  23781. @EVP_DigestFinal_ex := nil;
  23782. @EVP_EncryptInit := nil;
  23783. @EVP_EncryptInit_ex := nil;
  23784. @EVP_EncryptUpdate := nil;
  23785. @EVP_EncryptFinal_ex := nil;
  23786. @EVP_EncryptFinal := nil;
  23787. @EVP_DecryptInit := nil;
  23788. @EVP_DecryptInit_ex := nil;
  23789. @EVP_DecryptUpdate := nil;
  23790. @EVP_DecryptFinal := nil;
  23791. @EVP_DecryptFinal_ex := nil;
  23792. @EVP_CipherInit := nil;
  23793. @EVP_CipherInit_ex := nil;
  23794. @EVP_CipherUpdate := nil;
  23795. @EVP_CipherFinal := nil;
  23796. @EVP_CipherFinal_ex := nil;
  23797. @EVP_SignFinal := nil;
  23798. @EVP_VerifyFinal := nil;
  23799. @EVP_DigestSignInit := nil;
  23800. @EVP_DigestSignFinal := nil;
  23801. @EVP_DigestVerifyInit := nil;
  23802. @EVP_DigestVerifyFinal := nil;
  23803. @EVP_OpenInit := nil;
  23804. @EVP_OpenFinal := nil;
  23805. @EVP_SealInit := nil;
  23806. @EVP_SealFinal := nil;
  23807. @EVP_EncodeInit := nil;
  23808. @EVP_EncodeUpdate := nil;
  23809. @EVP_EncodeFinal := nil;
  23810. @EVP_EncodeBlock := nil;
  23811. @EVP_DecodeInit := nil;
  23812. @EVP_DecodeUpdate := nil;
  23813. @EVP_DecodeFinal := nil;
  23814. @EVP_DecodeBlock := nil;
  23815. @EVP_CIPHER_CTX_init := nil;
  23816. @EVP_CIPHER_CTX_cleanup := nil;
  23817. @EVP_CIPHER_CTX_new := nil;
  23818. @EVP_CIPHER_CTX_free := nil;
  23819. @EVP_CIPHER_CTX_set_key_length := nil;
  23820. @EVP_CIPHER_CTX_set_padding := nil;
  23821. @EVP_CIPHER_CTX_ctrl := nil;
  23822. @EVP_CIPHER_CTX_rand_key := nil;
  23823. @EVP_add_cipher := nil;
  23824. @EVP_add_digest := nil;
  23825. @EVP_CIPHER_do_all := nil;
  23826. @EVP_CIPHER_do_all_sorted := nil;
  23827. @EVP_MD_do_all := nil;
  23828. @EVP_MD_do_all_sorted := nil;
  23829. @EVP_PKEY_decrypt_old := nil;
  23830. @EVP_PKEY_encrypt_old := nil;
  23831. @EVP_PKEY_type := nil;
  23832. @EVP_PKEY_id := nil;
  23833. @EVP_PKEY_base_id := nil;
  23834. @EVP_PKEY_bits := nil;
  23835. @EVP_PKEY_size := nil;
  23836. @EVP_PKEY_set_type := nil;
  23837. @EVP_PKEY_set_type_str := nil;
  23838. @EVP_PKEY_get0 := nil;
  23839. {$ifndef OPENSSL_NO_RSA}
  23840. @EVP_PKEY_set1_RSA := nil;
  23841. @EVP_PKEY_get1_RSA := nil;
  23842. {$ENDIF}
  23843. {$ifndef OPENSSL_NO_DSA}
  23844. @EVP_PKEY_set1_DSA := nil;
  23845. @EVP_PKEY_get1_DSA := nil;
  23846. {$endif}
  23847. {$ifndef OPENSSL_NO_DH}
  23848. @EVP_PKEY_set1_DH := nil;
  23849. @EVP_PKEY_get1_DH := nil;
  23850. {$endif}
  23851. {$ifndef OPENSSL_NO_EC}
  23852. @EVP_PKEY_set1_EC_KEY := nil;
  23853. @EVP_PKEY_get1_EC_KEY := nil;
  23854. {$endif}
  23855. {$EXTERNALSYM d2i_PublicKey}
  23856. @d2i_PublicKey := nil;
  23857. @i2d_PublicKey := nil;
  23858. @d2i_AutoPrivateKey := nil;
  23859. @EVP_PKEY_copy_parameters := nil;
  23860. @EVP_PKEY_missing_parameters := nil;
  23861. @EVP_PKEY_save_parameters := nil;
  23862. @EVP_PKEY_cmp_parameters := nil;
  23863. @EVP_PKEY_cmp := nil;
  23864. @EVP_PKEY_print_public := nil;
  23865. @EVP_PKEY_print_private := nil;
  23866. @EVP_PKEY_print_params := nil;
  23867. @EVP_PKEY_get_default_digest_nid := nil;
  23868. @EVP_CIPHER_param_to_asn1 := nil;
  23869. @EVP_CIPHER_asn1_to_param := nil;
  23870. @EVP_CIPHER_set_asn1_iv := nil;
  23871. @EVP_CIPHER_get_asn1_iv := nil;
  23872. @PKCS5_PBE_keyivgen := nil;
  23873. @PKCS5_PBKDF2_HMAC_SHA1 := nil;
  23874. @PKCS5_PBKDF2_HMAC := nil;
  23875. @PKCS5_v2_PBE_keyivgen := nil;
  23876. @PKCS5_PBE_add := nil;
  23877. @EVP_PBE_CipherInit := nil;
  23878. @EVP_PBE_alg_add_type := nil;
  23879. @EVP_PBE_alg_add := nil;
  23880. @EVP_PBE_find := nil;
  23881. @EVP_PBE_cleanup := nil;
  23882. @EVP_PKEY_asn1_get_count := nil;
  23883. @EVP_PKEY_asn1_get0 := nil;
  23884. @EVP_PKEY_asn1_find := nil;
  23885. @EVP_PKEY_asn1_find_str := nil;
  23886. @EVP_PKEY_asn1_add0 := nil;
  23887. @EVP_PKEY_asn1_add_alias := nil;
  23888. @EVP_PKEY_asn1_get0_info := nil;
  23889. @EVP_PKEY_get0_asn1 := nil;
  23890. @EVP_PKEY_asn1_new := nil;
  23891. @EVP_PKEY_asn1_copy := nil;
  23892. @EVP_PKEY_asn1_free := nil;
  23893. @EVP_PKEY_asn1_set_public := nil;
  23894. @EVP_PKEY_asn1_set_private := nil;
  23895. @EVP_PKEY_asn1_set_param := nil;
  23896. @EVP_PKEY_asn1_set_free := nil;
  23897. @EVP_PKEY_asn1_set_ctrl := nil;
  23898. @EVP_PKEY_meth_find := nil;
  23899. @EVP_PKEY_meth_new := nil;
  23900. @EVP_PKEY_meth_get0_info := nil;
  23901. @EVP_PKEY_meth_copy := nil;
  23902. @EVP_PKEY_meth_free := nil;
  23903. @EVP_PKEY_meth_add0 := nil;
  23904. @EVP_PKEY_CTX_new := nil;
  23905. @EVP_PKEY_CTX_new_id := nil;
  23906. @EVP_PKEY_CTX_dup := nil;
  23907. @EVP_PKEY_CTX_free := nil;
  23908. @EVP_PKEY_CTX_ctrl := nil;
  23909. @EVP_PKEY_CTX_ctrl_str := nil;
  23910. @EVP_PKEY_CTX_get_operation := nil;
  23911. @EVP_PKEY_CTX_set0_keygen_info := nil;
  23912. @EVP_PKEY_new_mac_key := nil;
  23913. @EVP_PKEY_CTX_set_data := nil;
  23914. @EVP_PKEY_CTX_get_data := nil;
  23915. @EVP_PKEY_CTX_get0_pkey := nil;
  23916. @EVP_PKEY_CTX_get0_peerkey := nil;
  23917. @EVP_PKEY_CTX_set_app_data := nil;
  23918. @EVP_PKEY_CTX_get_app_data := nil;
  23919. @EVP_PKEY_sign_init := nil;
  23920. @EVP_PKEY_sign := nil;
  23921. @EVP_PKEY_verify_init := nil;
  23922. @EVP_PKEY_verify := nil;
  23923. @EVP_PKEY_verify_recover_init := nil;
  23924. @EVP_PKEY_verify_recover := nil;
  23925. @EVP_PKEY_encrypt_init := nil;
  23926. @EVP_PKEY_encrypt := nil;
  23927. @EVP_PKEY_decrypt_init := nil;
  23928. @EVP_PKEY_decrypt := nil;
  23929. @EVP_PKEY_derive_init := nil;
  23930. @EVP_PKEY_derive_set_peer := nil;
  23931. @EVP_PKEY_derive := nil;
  23932. @EVP_PKEY_paramgen_init := nil;
  23933. @EVP_PKEY_paramgen := nil;
  23934. @EVP_PKEY_keygen_init := nil;
  23935. @EVP_PKEY_keygen := nil;
  23936. @EVP_PKEY_CTX_set_cb := nil;
  23937. @EVP_PKEY_CTX_get_cb := nil;
  23938. @EVP_PKEY_CTX_get_keygen_info := nil;
  23939. @EVP_PKEY_meth_set_init := nil;
  23940. @EVP_PKEY_meth_set_copy := nil;
  23941. @EVP_PKEY_meth_set_cleanup := nil;
  23942. @EVP_PKEY_meth_set_paramgen := nil;
  23943. @EVP_PKEY_meth_set_keygen := nil;
  23944. @EVP_PKEY_meth_set_sign := nil;
  23945. @EVP_PKEY_meth_set_verify := nil;
  23946. @EVP_PKEY_meth_set_verify_recover := nil;
  23947. @EVP_PKEY_meth_set_signctx := nil;
  23948. @EVP_PKEY_meth_set_verifyctx := nil;
  23949. @EVP_PKEY_meth_set_encrypt := nil;
  23950. @EVP_PKEY_meth_set_decrypt := nil;
  23951. @EVP_PKEY_meth_set_derive := nil;
  23952. @EVP_PKEY_meth_set_ctrl := nil;
  23953. {$ifndef OPENSSL_NO_BIO}
  23954. BIO_f_md := nil;
  23955. BIO_f_base64 := nil;
  23956. BIO_f_cipher := nil;
  23957. BIO_f_reliable := nil;
  23958. BIO_set_cipher := nil;
  23959. {$endif}
  23960. @EVP_PKEY_type := nil;
  23961. @EVP_PKEY_new := nil;
  23962. @EVP_PKEY_free := nil;
  23963. @EVP_PKEY_assign := nil;
  23964. @EVP_get_cipherbyname := nil;
  23965. @EVP_get_digestbyname := nil;
  23966. @EVP_MD_type := nil;
  23967. @EVP_MD_size := nil;
  23968. @EVP_MD_block_size := nil;
  23969. @EVP_MD_flags := nil;
  23970. @EVP_MD_CTX_md := nil;
  23971. @EVP_CIPHER_nid := nil;
  23972. @EVP_CIPHER_block_size := nil;
  23973. @EVP_CIPHER_key_length := nil;
  23974. @EVP_CIPHER_iv_length := nil;
  23975. @EVP_CIPHER_flags := nil;
  23976. @EVP_CIPHER_type := nil;
  23977. @EVP_CIPHER_CTX_cipher := nil;
  23978. @EVP_CIPHER_CTX_nid := nil;
  23979. @EVP_CIPHER_CTX_block_size := nil;
  23980. @EVP_CIPHER_CTX_key_length := nil;
  23981. @EVP_CIPHER_CTX_iv_length := nil;
  23982. @EVP_CIPHER_CTX_copy := nil;
  23983. @EVP_CIPHER_CTX_get_app_data := nil;
  23984. @EVP_CIPHER_CTX_set_app_data := nil;
  23985. @EVP_CIPHER_CTX_flags := nil;
  23986. //HMAC
  23987. {$IFNDEF OPENSSL_NO_HMAC}
  23988. @HMAC_CTX_init := nil;
  23989. @_HMAC_Init_ex := nil;
  23990. @_HMAC_Update := nil;
  23991. @_HMAC_Final := nil;
  23992. @_1_0_HMAC_Init_ex := nil;
  23993. @_1_0_HMAC_Update := nil;
  23994. @_1_0_HMAC_Final := nil;
  23995. @HMAC_CTX_cleanup := nil;
  23996. {$ENDIF}
  23997. //OBJ
  23998. @OBJ_obj2nid := nil;
  23999. @OBJ_nid2obj := nil;
  24000. @OBJ_nid2ln := nil;
  24001. @OBJ_nid2sn := nil;
  24002. //ASN1
  24003. @ASN1_INTEGER_set := nil;
  24004. @ASN1_INTEGER_get := nil;
  24005. @ASN1_INTEGER_to_BN := nil;
  24006. @ASN1_STRING_type_new := nil;
  24007. @ASN1_STRING_free := nil;
  24008. @ASN1_dup := nil;
  24009. @_CRYPTO_lock := nil;
  24010. @CRYPTO_set_mem_functions := nil;
  24011. @CRYPTO_malloc := nil;
  24012. @CRYPTO_free := nil;
  24013. @CRYPTO_mem_leaks := nil;
  24014. @CRYPTO_mem_ctrl := nil;
  24015. @CRYPTO_set_mem_debug_functions := nil;
  24016. //@CRYPTO_dbg_malloc := nil;
  24017. //@CRYPTO_dbg_realloc := nil;
  24018. //@CRYPTO_dbg_free := nil;
  24019. //@CRYPTO_dbg_set_options := nil;
  24020. //@CRYPTO_dbg_get_options := nil;
  24021. @PKCS12_create := nil;
  24022. @i2d_PKCS12_bio := nil;
  24023. @PKCS12_free := nil;
  24024. @OpenSSL_add_all_algorithms := nil;
  24025. @OpenSSL_add_all_ciphers := nil;
  24026. @OpenSSL_add_all_digests := nil;
  24027. @EVP_cleanup := nil;
  24028. @sk_new := nil;
  24029. @sk_num := nil;
  24030. @sk_new_null := nil;
  24031. @sk_free := nil;
  24032. @sk_push := nil;
  24033. @sk_dup := nil;
  24034. @sk_find := nil;
  24035. @sk_value := nil;
  24036. {$IFDEF OPENSSL_FIPS}
  24037. @_FIPS_mode_set := nil;
  24038. @_FIPS_mode := nil;
  24039. {$ENDIF}
  24040. // TODO: expose a global callback function pointer, or an optional input
  24041. // parameter to InitializeFuncPointers(), so users can reset any additional
  24042. // OpenSSL function pointers they loaded manually during Load()...
  24043. {
  24044. if Assigned(UnloadSSLFuncsCallback) then begin
  24045. UnloadSSLFuncsCallback();
  24046. end;
  24047. }
  24048. end;
  24049. procedure Unload;
  24050. var
  24051. LStack: Pointer;
  24052. begin
  24053. if {$IFDEF STATICLOAD_OPENSSL}bIsLoaded{$ELSE}hIdSSL <> IdNilHandle{$ENDIF} then begin
  24054. if Assigned(SSL_COMP_free_compression_methods) then begin
  24055. SSL_COMP_free_compression_methods;
  24056. end
  24057. //this is a workaround for a known leak in the openssl library
  24058. //present in 0.9.8a
  24059. else if Assigned(SSLeay) then begin
  24060. if SSLeay = $0090801f then begin
  24061. if Assigned(SSL_COMP_get_compression_methods) and
  24062. Assigned(sk_pop_free) and
  24063. Assigned(CRYPTO_free) then
  24064. begin
  24065. LStack := SSL_COMP_get_compression_methods;
  24066. sk_pop_free(LStack, CRYPTO_free);
  24067. end;
  24068. end;
  24069. end;
  24070. if Assigned(CRYPTO_cleanup_all_ex_data) then begin
  24071. CRYPTO_cleanup_all_ex_data;
  24072. end;
  24073. if Assigned(ERR_free_strings) then begin
  24074. ERR_free_strings;
  24075. end;
  24076. if Assigned(ERR_remove_thread_state) then begin
  24077. ERR_remove_thread_state(nil);
  24078. end
  24079. else if Assigned(ERR_remove_state) then begin
  24080. ERR_remove_state(0);
  24081. end;
  24082. if Assigned(EVP_cleanup) then begin
  24083. EVP_cleanup;
  24084. end;
  24085. {$IFDEF STATICLOAD_OPENSSL}
  24086. bIsLoaded := False;
  24087. {$ELSE}
  24088. {$IFDEF WINDOWS}Windows.{$ENDIF}FreeLibrary(hIdSSL);
  24089. hIdSSL := IdNilHandle;
  24090. {$ENDIF}
  24091. end;
  24092. {$IFNDEF STATICLOAD_OPENSSL}
  24093. if hIdCrypto <> IdNilHandle then begin
  24094. {$IFDEF WINDOWS}Windows.{$ENDIF}FreeLibrary(hIdCrypto);
  24095. hIdCrypto := IdNilHandle;
  24096. end;
  24097. {$ENDIF}
  24098. {$IFDEF USE_INVALIDATE_MOD_CACHE}
  24099. InvalidateModuleCache;
  24100. {$ENDIF}
  24101. {$IFNDEF STATICLOAD_OPENSSL}
  24102. {
  24103. IMPORTANT!!
  24104. We probably should reinitialize the functions to nil after the library is
  24105. unloaded as some code will test for their presence with Assigned.
  24106. }
  24107. InitializeFuncPointers;
  24108. {$ENDIF}
  24109. end;
  24110. {$IFNDEF STATICLOAD_OPENSSL}
  24111. function WhichFailedToLoad: string;
  24112. begin
  24113. Assert(FFailedLoadList<>nil);
  24114. Result := FFailedLoadList.CommaText;
  24115. end;
  24116. {$ENDIF}
  24117. // Author : Gregor Ibich ([email protected])
  24118. // Pascal translation: Doychin Bondzhev ([email protected])
  24119. // Converts the following string representations into corresponding parts
  24120. // YYYYMMDDHHMMSS(+|-)HH( )MM (GeneralizedTime, for dates 2050 and later)
  24121. // YYMMDDHHMMSS(+|-)HH( )MM (UTCTime, for dates up to 2049)
  24122. function UTC_Time_Decode(UCTtime : PASN1_UTCTIME; var year, month, day, hour, min, sec: Word;
  24123. var tz_hour, tz_min: Integer): Integer;
  24124. var
  24125. i, tz_dir, index: Integer;
  24126. time_str: string;
  24127. {$IFNDEF USE_MARSHALLED_PTRS}
  24128. {$IFNDEF STRING_IS_ANSI}
  24129. LTemp: AnsiString;
  24130. {$ENDIF}
  24131. {$ENDIF}
  24132. begin
  24133. Result := 0;
  24134. if UCTtime^.length < 12 then begin
  24135. Exit;
  24136. end;
  24137. {$IFDEF USE_MARSHALLED_PTRS}
  24138. time_str := TMarshal.ReadStringAsAnsi(TPtrWrapper.Create(UCTtime^.data), UCTtime^.length);
  24139. {$ELSE}
  24140. {$IFDEF STRING_IS_ANSI}
  24141. SetString(time_str, UCTtime^.data, UCTtime^.length);
  24142. {$ELSE}
  24143. SetString(LTemp, UCTtime^.data, UCTtime^.length);
  24144. // TODO: do we need to use SetCodePage() here?
  24145. time_str := String(LTemp); // explicit convert to Unicode
  24146. {$ENDIF}
  24147. {$ENDIF}
  24148. // Check if first 14 chars (4-digit year) are numbers
  24149. if (Length(time_str) >= 14) and IsNumeric(time_str, 14) then begin
  24150. // Convert time from string to number
  24151. year := IndyStrToInt(Copy(time_str, 1, 4));
  24152. month := IndyStrToInt(Copy(time_str, 5, 2));
  24153. day := IndyStrToInt(Copy(time_str, 7, 2));
  24154. hour := IndyStrToInt(Copy(time_str, 9, 2));
  24155. min := IndyStrToInt(Copy(time_str, 11, 2));
  24156. sec := IndyStrToInt(Copy(time_str, 13, 2));
  24157. index := 15;
  24158. end
  24159. // Check if first 12 chars (2-digit year) are numbers
  24160. else if (Length(time_str) >= 12) and IsNumeric(time_str, 12) then begin
  24161. // Convert time from string to number
  24162. year := IndyStrToInt(Copy(time_str, 1, 2)) + 1900;
  24163. month := IndyStrToInt(Copy(time_str, 3, 2));
  24164. day := IndyStrToInt(Copy(time_str, 5, 2));
  24165. hour := IndyStrToInt(Copy(time_str, 7, 2));
  24166. min := IndyStrToInt(Copy(time_str, 9, 2));
  24167. sec := IndyStrToInt(Copy(time_str, 11, 2));
  24168. // Fix year. This function is Y2k but isn't compatible with Y2k5 :-( {Do not Localize}
  24169. if year < 1950 then begin
  24170. Inc(year, 100);
  24171. end;
  24172. index := 13;
  24173. end else begin
  24174. Exit;
  24175. end;
  24176. // Check TZ
  24177. tz_hour := 0;
  24178. tz_min := 0;
  24179. if CharIsInSet(time_str, index, '-+') then begin {Do not Localize}
  24180. tz_dir := iif(CharEquals(time_str, index, '-'), -1, 1); {Do not Localize}
  24181. for i := index+1 to index+5 do begin // Check if numbers are numbers
  24182. if i = index+3 then begin
  24183. Continue;
  24184. end;
  24185. if not IsNumeric(time_str[i]) then begin
  24186. Exit;
  24187. end;
  24188. end;
  24189. tz_hour := IndyStrToInt(Copy(time_str, index+1, 2)) * tz_dir;
  24190. tz_min := IndyStrToInt(Copy(time_str, index+4, 2)) * tz_dir;
  24191. end;
  24192. Result := 1;
  24193. end;
  24194. function SSL_set_app_data(s: PSSL; arg: Pointer): TIdC_INT;
  24195. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24196. begin
  24197. Result := SSL_set_ex_data(s, 0, arg);
  24198. end;
  24199. function SSL_get_app_data(s: PSSL): Pointer;
  24200. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24201. begin
  24202. Result := SSL_get_ex_data(s, 0);
  24203. end;
  24204. procedure InitializeRandom;
  24205. begin
  24206. {$IFDEF SYS_WIN}
  24207. if Assigned(_RAND_screen) then begin
  24208. _RAND_screen;
  24209. end;
  24210. {$ENDIF}
  24211. end;
  24212. procedure CleanupRandom;
  24213. begin
  24214. if Assigned(_RAND_cleanup) then begin
  24215. _RAND_cleanup;
  24216. end;
  24217. end;
  24218. function M_ASN1_STRING_length(x : PASN1_STRING): TIdC_INT;
  24219. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24220. begin
  24221. Result := x^.length;
  24222. end;
  24223. procedure M_ASN1_STRING_length_set(x : PASN1_STRING; n : TIdC_INT);
  24224. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24225. begin
  24226. x^.length := n;
  24227. end;
  24228. function M_ASN1_STRING_type(x : PASN1_STRING) : TIdC_INT;
  24229. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24230. begin
  24231. Result := x^._type;
  24232. end;
  24233. function M_ASN1_STRING_data(x : PASN1_STRING) : PIdAnsiChar;
  24234. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24235. begin
  24236. Result := x^.data;
  24237. end;
  24238. function X509_NAME_dup(xn : PX509_NAME) : PX509_NAME;
  24239. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24240. begin
  24241. Result := ASN1_dup(i2d_of_Void(i2d_X509_NAME), d2i_of_void(d2i_X509_NAME), PIdAnsiChar(xn) );
  24242. end;
  24243. function X509_STORE_CTX_get_app_data(ctx: PX509_STORE_CTX):Pointer;
  24244. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24245. begin
  24246. // TODO: use SSL_get_ex_data_X509_STORE_CTX_idx() instead of 0 to get the true index of the SSL pointer
  24247. Result := X509_STORE_CTX_get_ex_data(ctx, 0);
  24248. end;
  24249. function X509_get_version(x : PX509): TIdC_LONG;
  24250. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24251. begin
  24252. Result := ASN1_INTEGER_get(x^.cert_info^.version);
  24253. end;
  24254. function X509_get_signature_type(x : PX509) : TIdC_INT;
  24255. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24256. {
  24257. http://groups.google.com/group/mailing.openssl.dev/browse_thread/thread/c1ab56fc4fb7af6a/98a2e94fe893aecf?lnk=st&q=X509_get_signature_type+&rnum=1&hl=en#98a2e94fe893aecf
  24258. Austin Krauss via RT wrote:
  24259. > D:\openssl-0.9.7b\out32dll\Release>openssl version -a
  24260. > OpenSSL 0.9.7b 10 Apr 2003
  24261. > built on: date not available
  24262. > platform: information not available
  24263. > options: bn(64,32) md2(int) rc4(idx,int) des(idx,cisc,4,long) idea(int) blowfish(idx)
  24264. > compiler: information not available
  24265. > OPENSSLDIR: "/usr/local/ssl"
  24266. > Windows 2000 SP3 x86
  24267. > Visual C++ 6.0 SP5
  24268. > I'm running into a problem parsing the certificate that I've recieved from the peer. I'm trying to call X509_get_signature_type(...) to get the key algorithm used. After I went through this function with the debugger, I'm finding that "NID_sha1WithRSAEncryption" (which is correct by the way) is getting passed to EVP_PKEY_type(...). It seems as if there is not a EVP constant that maps to this particular NID and thus EVP_PKEY_type is returning NID_undef to my function.
  24269. As a addition to:
  24270. http://marc.theaimsgroup.com/?l=openssl-users&m=105074607225189&w=2
  24271. I would suggest that X509_get_signature_type(x) should
  24272. be changed to 'OBJ_obj2nid((x)->sig_alg->algorithm' (i.e. remove
  24273. the call to EVP_PKEY_type()) because currently this macro
  24274. returns the type of the key used for the signature generation
  24275. and *not* the type of the signature (i.e. key alg + hash alg).
  24276. The other solution would be to change EVP_PKEY_type() to
  24277. include the other RSA OIDs as well (from the usage of this macro
  24278. in OpenSSL the second alternative is simpler to implement, but
  24279. in this case the name of the macro should better be changed to
  24280. X509_get_signature_key_type() :-).
  24281. Regards,
  24282. Nils
  24283. }
  24284. begin
  24285. Assert(x<>nil);
  24286. Result := EVP_PKEY_type(OBJ_obj2nid(x.sig_alg.algorithm));
  24287. end;
  24288. function X509_REQ_get_subject_name(x:PX509_REQ):PX509_NAME;
  24289. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24290. begin
  24291. Assert(x<>nil);
  24292. Result := x^.req_info^.subject;
  24293. end;
  24294. //function X509_get_notBefore(x509: PX509):PASN1_UTCTIME;
  24295. function X509_get_notBefore(x509: PX509):PASN1_TIME;
  24296. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24297. begin
  24298. Assert(x509<>nil);
  24299. Result := x509.cert_info.validity.notBefore;
  24300. end;
  24301. //function X509_get_notAfter(x509: PX509):PASN1_UTCTIME;
  24302. function X509_get_notAfter(x509: PX509):PASN1_TIME;
  24303. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24304. begin
  24305. Assert(x509<>nil);
  24306. Result := x509.cert_info.validity.notAfter;
  24307. end;
  24308. function X509_REQ_get_version(x : PX509_REQ): TIdC_LONG;
  24309. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24310. begin
  24311. Result := ASN1_INTEGER_get(x^.req_info^.version);
  24312. end;
  24313. function X509_CRL_get_version(x : PX509_CRL) : TIdC_LONG;
  24314. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24315. begin
  24316. Result := ASN1_INTEGER_get(x^.crl^.version);
  24317. end;
  24318. function X509_CRL_get_lastUpdate(x : PX509_CRL) : PASN1_TIME;
  24319. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24320. begin
  24321. Result := x^.crl^.lastUpdate;
  24322. end;
  24323. function X509_CRL_get_nextUpdate(x : PX509_CRL) : PASN1_TIME;
  24324. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24325. begin
  24326. Result := x^.crl^.nextUpdate;
  24327. end;
  24328. function X509_CRL_get_issuer(x : PX509_CRL) : PX509_NAME;
  24329. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24330. begin
  24331. Result := x^.crl^.issuer
  24332. end;
  24333. function X509_CRL_get_REVOKED(x : PX509_CRL) : PSTACK_OF_X509_REVOKED;
  24334. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24335. begin
  24336. Result := x^.crl^.revoked;
  24337. end;
  24338. procedure SSL_CTX_set_info_callback(ctx: PSSL_CTX; cb: PSSL_CTX_info_callback);
  24339. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24340. begin
  24341. Assert(ctx<>nil);
  24342. ctx.info_callback := cb;
  24343. end;
  24344. //* Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value,
  24345. // * they cannot be used to clear bits. */
  24346. function SSL_CTX_set_options(ctx: PSSL_CTX; op: TIdC_LONG):TIdC_LONG;
  24347. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24348. begin
  24349. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_OPTIONS, op, nil);
  24350. end;
  24351. function SSL_CTX_clear_options(ctx : PSSL_CTX; op : TIdC_LONG):TIdC_LONG;
  24352. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24353. begin
  24354. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_OPTIONS,op,nil);
  24355. end;
  24356. function SSL_CTX_get_options(ctx: PSSL_CTX) : TIdC_LONG;
  24357. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24358. begin
  24359. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_OPTIONS,0,nil);
  24360. end;
  24361. function SSL_set_options(ssl: PSSL; op : TIdC_LONG): TIdC_LONG;
  24362. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24363. begin
  24364. Result := SSL_ctrl(ssl, SSL_CTRL_OPTIONS,op,nil);
  24365. end;
  24366. function SSL_clear_mode(ssl : PSSL; op : TIdC_LONG) : TIdC_LONG;
  24367. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24368. begin
  24369. Result := SSL_ctrl(ssl,SSL_CTRL_CLEAR_MODE,op,nil);
  24370. end;
  24371. function SSL_get_options(ssl : PSSL): TIdC_LONG;
  24372. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24373. begin
  24374. Result := SSL_ctrl(ssl, SSL_CTRL_OPTIONS,0,nil);
  24375. end;
  24376. function SSL_CTX_set_mode(ctx : PSSL_CTX; op : TIdC_LONG) : TIdC_LONG;
  24377. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24378. begin
  24379. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_MODE, op,nil);
  24380. end;
  24381. function SSL_CTX_clear_mode(ctx : PSSL_CTX; op : TIdC_LONG) : TIdC_LONG;
  24382. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24383. begin
  24384. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_MODE,op,nil);
  24385. end;
  24386. function SSL_CTX_get_mode(ctx : PSSL_CTX) : TIdC_LONG;
  24387. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24388. begin
  24389. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_MODE,0,nil);
  24390. end;
  24391. function SSL_set_mtu(ssl : PSSL; mtu : TIdC_LONG) : TIdC_LONG;
  24392. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24393. begin
  24394. Result := SSL_ctrl(ssl, SSL_CTRL_SET_MTU, mtu, nil);
  24395. end;
  24396. function SSL_get_secure_renegotiation_support(ssl : PSSL) : TIdC_LONG;
  24397. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24398. begin
  24399. Result := SSL_ctrl(ssl, SSL_CTRL_GET_RI_SUPPORT, 0, nil);
  24400. end;
  24401. //
  24402. function SSL_CTX_sess_number(ctx : PSSL_CTX) : TIdC_LONG;
  24403. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24404. begin
  24405. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_NUMBER,0,nil);
  24406. end;
  24407. function SSL_CTX_sess_connect(ctx : PSSL_CTX) : TIdC_LONG;
  24408. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24409. begin
  24410. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_CONNECT, 0,nil);
  24411. end;
  24412. function SSL_CTX_sess_connect_good(ctx : PSSL_CTX): TIdC_LONG;
  24413. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24414. begin
  24415. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_CONNECT_GOOD, 0, nil);
  24416. end;
  24417. function SSL_CTX_sess_connect_renegotiate(ctx : PSSL_CTX): TIdC_LONG;
  24418. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24419. begin
  24420. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_CONNECT_RENEGOTIATE, 0, nil);
  24421. end;
  24422. function SSL_CTX_sess_accept(ctx : PSSL_CTX) : TIdC_LONG;
  24423. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24424. begin
  24425. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_ACCEPT, 0, nil);
  24426. end;
  24427. function SSL_CTX_sess_accept_renegotiate(ctx : PSSL_CTX) : TIdC_LONG;
  24428. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24429. begin
  24430. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_ACCEPT_RENEGOTIATE, 0, nil);
  24431. end;
  24432. function SSL_CTX_sess_accept_good(ctx : PSSL_CTX) : TIdC_LONG;
  24433. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24434. begin
  24435. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_ACCEPT_GOOD, 0, nil);
  24436. end;
  24437. function SSL_CTX_sess_hits(ctx : PSSL_CTX) : TIdC_LONG;
  24438. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24439. begin
  24440. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_HIT, 0, nil);
  24441. end;
  24442. function SSL_CTX_sess_cb_hits(ctx : PSSL_CTX) : TIdC_LONG;
  24443. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24444. begin
  24445. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_CB_HIT, 0, nil);
  24446. end;
  24447. function SSL_CTX_sess_misses(ctx : PSSL_CTX) : TIdC_LONG;
  24448. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24449. begin
  24450. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_MISSES, 0, nil);
  24451. end;
  24452. function SSL_CTX_sess_timeouts(ctx : PSSL_CTX) : TIdC_LONG;
  24453. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24454. begin
  24455. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_TIMEOUTS, 0, nil);
  24456. end;
  24457. function SSL_CTX_sess_cache_full(ctx : PSSL_CTX) : TIdC_LONG;
  24458. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24459. begin
  24460. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SESS_CACHE_FULL, 0, nil);
  24461. end;
  24462. function SSL_CTX_sess_set_cache_size(ctx : PSSL_CTX; t : TIdC_LONG) : TIdC_LONG;
  24463. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24464. begin
  24465. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SET_SESS_CACHE_SIZE, t, nil);
  24466. end;
  24467. function SSL_CTX_sess_get_cache_size(ctx : PSSL_CTX) : TIdC_LONG;
  24468. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24469. begin
  24470. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_GET_SESS_CACHE_SIZE, 0, nil);
  24471. end;
  24472. function SSL_CTX_set_session_cache_mode(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  24473. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24474. begin
  24475. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SET_SESS_CACHE_MODE, m, nil);
  24476. end;
  24477. function SSL_CTX_get_session_cache_mode(ctx : PSSL_CTX) : TIdC_LONG;
  24478. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24479. begin
  24480. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_GET_SESS_CACHE_MODE, 0, nil);
  24481. end;
  24482. function SSL_CTX_get_read_ahead(ctx : PSSL_CTX) : TIdC_LONG;
  24483. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24484. begin
  24485. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_GET_READ_AHEAD,0,nil);
  24486. end;
  24487. function SSL_CTX_set_read_ahead(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  24488. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24489. begin
  24490. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_SET_READ_AHEAD, m,nil);
  24491. end;
  24492. function SSL_CTX_get_max_cert_list(ctx : PSSL_CTX) : TIdC_LONG;
  24493. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24494. begin
  24495. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_CERT_LIST,0,nil);
  24496. end;
  24497. function SSL_CTX_set_max_cert_list(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  24498. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24499. begin
  24500. Result := SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_CERT_LIST,m,nil);
  24501. end;
  24502. function SSL_get_max_cert_list(ssl : PSSL) : TIdC_LONG;
  24503. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24504. begin
  24505. Result := SSL_ctrl(ssl, SSL_CTRL_GET_MAX_CERT_LIST, 0, nil);
  24506. end;
  24507. function SSL_set_max_cert_list(ssl : PSSL; m : TIdC_LONG) : TIdC_LONG;
  24508. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24509. begin
  24510. Result := SSL_ctrl(ssl, SSL_CTRL_SET_MAX_CERT_LIST, m, nil);
  24511. end;
  24512. function SSL_CTX_set_max_send_fragment(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  24513. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24514. begin
  24515. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,nil);
  24516. end;
  24517. function SSL_set_max_send_fragment(ssl : PSSL; m : TIdC_LONG) : TIdC_LONG;
  24518. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24519. begin
  24520. Result := SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,nil);
  24521. end;
  24522. function DTLSv1_get_timeout(ssl : PSSL; var arg : timeval) : TIdC_LONG;
  24523. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24524. begin
  24525. Result := SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, @arg);
  24526. end;
  24527. function DTLSv1_handle_timeout(ssl : PSSL) : TIdC_LONG;
  24528. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24529. begin
  24530. Result := SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, nil);
  24531. end;
  24532. function DTLSv1_listen(ssl : PSSL; var peer : sockaddr) : TIdC_LONG;
  24533. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24534. begin
  24535. Result := SSL_ctrl(ssl,DTLS_CTRL_LISTEN,0, @peer);
  24536. end;
  24537. function SSL_session_reused(ssl : PSSL) : TIdC_LONG;
  24538. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24539. begin
  24540. Result := SSL_ctrl(ssl,SSL_CTRL_GET_SESSION_REUSED,0,nil);
  24541. end;
  24542. function SSL_num_renegotiations(ssl : PSSL) : TIdC_LONG;
  24543. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24544. begin
  24545. Result := SSL_ctrl(ssl,SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,nil);
  24546. end;
  24547. function SSL_clear_num_renegotiations(ssl : PSSL) : TIdC_LONG;
  24548. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24549. begin
  24550. Result := SSL_ctrl(ssl,SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,nil);
  24551. end;
  24552. function SSL_total_renegotiations(ssl : PSSL) : TIdC_LONG;
  24553. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24554. begin
  24555. Result := SSL_ctrl(ssl,SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,nil);
  24556. end;
  24557. function SSL_CTX_need_tmp_RSA(ctx : PSSL_CTX) : TIdC_LONG;
  24558. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24559. begin
  24560. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_NEED_TMP_RSA,0,nil);
  24561. end;
  24562. function SSL_CTX_set_tmp_rsa(ctx : PSSL_CTX; rsa : PRSA) : TIdC_LONG;
  24563. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24564. begin
  24565. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA,0,rsa);
  24566. end;
  24567. function SSL_CTX_set_tmp_dh(ctx : PSSL_CTX; dh : PDH) : TIdC_LONG;
  24568. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24569. begin
  24570. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,dh);
  24571. end;
  24572. function SSL_CTX_set_tmp_ecdh(ctx : PSSL_CTX; ecdh : PEC_KEY) : TIdC_LONG;
  24573. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24574. begin
  24575. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,ecdh);
  24576. end;
  24577. function SSL_CTX_set_ecdh_auto(ctx : PSSL_CTX; m : TIdC_LONG) : TIdC_LONG;
  24578. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24579. begin
  24580. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_SET_ECDH_AUTO,m,nil);
  24581. end;
  24582. function SSL_need_tmp_RSA(ssl : PSSL) : TIdC_LONG;
  24583. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24584. begin
  24585. Result := SSL_ctrl(ssl,SSL_CTRL_NEED_TMP_RSA,0,nil);
  24586. end;
  24587. procedure SSL_set_tmp_rsa(ssl : PSSL; rsa : PRSA);
  24588. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24589. begin
  24590. SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA,0,rsa);
  24591. end;
  24592. function SSL_set_tmp_dh(ssl : PSSL;dh : PDH) : TIdC_LONG;
  24593. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24594. begin
  24595. Result := SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,dh);
  24596. end;
  24597. function SSL_set_tmp_ecdh(ssl : PSSL; ecdh : PEC_KEY) : TIdC_LONG;
  24598. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24599. begin
  24600. Result := SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,ecdh);
  24601. end;
  24602. {$IFNDEF OPENSSL_NO_TLSEXT}
  24603. function SSL_set_tlsext_host_name(s : PSSL; name : string) : TIdC_LONG;
  24604. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24605. {$IFDEF USE_MARSHALLED_PTRS}
  24606. var
  24607. M: TMarshaller;
  24608. {$ENDIF}
  24609. begin
  24610. Result := SSL_ctrl(s, SSL_CTRL_SET_TLSEXT_HOSTNAME, TLSEXT_NAMETYPE_host_name,
  24611. {$IFDEF USE_MARSHALLED_PTRS}
  24612. M.AsAnsi(name).ToPointer
  24613. {$ELSE}
  24614. PAnsiChar(
  24615. {$IFDEF STRING_IS_ANSI}
  24616. name
  24617. {$ELSE}
  24618. AnsiString(name) // explicit convert to Ansi
  24619. {$ENDIF}
  24620. )
  24621. {$ENDIF}
  24622. );
  24623. end;
  24624. function SSL_set_tlsext_debug_callback(ssl : PSSL; cb : SSL_callback_ctrl_fp) : TIdC_LONG;
  24625. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24626. begin
  24627. if Assigned(SSL_callback_ctrl) then begin
  24628. Result := SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,cb);
  24629. end else begin
  24630. Result := ssl.method.ssl_callback_ctrl(ssl, SSL_CTRL_SET_TLSEXT_DEBUG_CB, SSL_METHOD_PROC(cb));
  24631. end;
  24632. end;
  24633. function SSL_set_tlsext_debug_arg(ssl : PSSL; arg : Pointer) : TIdC_LONG;
  24634. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24635. begin
  24636. Result := SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0,arg);
  24637. end;
  24638. function SSL_set_tlsext_status_type(ssl : PSSL; _type : TIdC_LONG):TIdC_LONG;
  24639. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24640. begin
  24641. Result := SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,_type,nil);
  24642. end;
  24643. function SSL_get_tlsext_status_exts(ssl : PSSL; arg : Pointer): TIdC_LONG;
  24644. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24645. begin
  24646. Result := SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0,arg);
  24647. end;
  24648. function SSL_set_tlsext_status_exts(ssl : PSSL; arg : Pointer):TIdC_LONG;
  24649. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24650. begin
  24651. Result := SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS, 0, arg);
  24652. end;
  24653. function SSL_get_tlsext_status_ids(ssl : PSSL; arg : Pointer) : TIdC_LONG;
  24654. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24655. begin
  24656. Result := SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, arg);
  24657. end;
  24658. function SSL_set_tlsext_status_ids(ssl : PSSL; arg : Pointer) : TIdC_LONG;
  24659. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24660. begin
  24661. Result := SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0,arg);
  24662. end;
  24663. function SSL_get_tlsext_status_ocsp_resp(ssl : PSSL; arg : Pointer) : TIdC_LONG;
  24664. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24665. begin
  24666. Result := SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0,arg);
  24667. end;
  24668. function SSL_set_tlsext_status_ocsp_resp(ssl : PSSL; arg : Pointer; arglen : TIdC_LONG) : TIdC_LONG;
  24669. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24670. begin
  24671. Result := SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen,arg);
  24672. end;
  24673. function SSL_CTX_set_tlsext_servername_callback(ctx : PSSL_CTX; cb :SSL_callback_ctrl_fp):TIdC_LONG;
  24674. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24675. begin
  24676. Result := SSL_CTX_callback_ctrl(ctx, SSL_CTRL_SET_TLSEXT_SERVERNAME_CB, cb);
  24677. end;
  24678. function SSL_CTX_get_tlsext_ticket_keys(ctx : PSSL_CTX; keys : PIdAnsiChar; keylen : TIdC_LONG ) : TIdC_LONG;
  24679. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24680. begin
  24681. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_GET_TLSEXT_TICKET_KEYS, keylen, keys);
  24682. end;
  24683. function SSL_CTX_set_tlsext_status_cb(ssl : PSSL_CTX; cb : TSSL_CTX_set_tlsext_status_cb) :TIdC_LONG;
  24684. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24685. begin
  24686. Result := SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,SSL_callback_ctrl_fp(cb));
  24687. end;
  24688. function SSL_set_tlsext_opaque_prf_input(s : PSSL; src : PIdAnsiChar; len : TIdC_LONG ) : TIdC_LONG;
  24689. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24690. begin
  24691. Result := SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT, len, src)
  24692. end;
  24693. function SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx : PSSL_CTX; cb : TSSL_CTX_set_tlsext_opaque_prf_input_callback_cb) : TIdC_LONG;
  24694. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24695. begin
  24696. Result := SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB, SSL_callback_ctrl_fp(cb));
  24697. end;
  24698. function SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx : PSSL_CTX; arg : Pointer) : TIdC_LONG;
  24699. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24700. begin
  24701. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG, 0, arg);
  24702. end;
  24703. function SSL_CTX_set_tlsext_ticket_key_cb(ssl : PSSL_CTX; cb : TSSL_CTX_set_tlsext_ticket_key_cb_fp) : TIdC_LONG;
  24704. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24705. begin
  24706. Result := SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,SSL_callback_ctrl_fp(cb));
  24707. end;
  24708. function SSL_CTX_add_extra_chain_cert(ctx : PSSL_CTX; x509 : PX509) : TIdC_LONG;
  24709. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24710. begin
  24711. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,x509);
  24712. end;
  24713. function SSL_CTX_get_extra_chain_certs(ctx : PSSL_CTX; var px509 : px509) : TIdC_LONG;
  24714. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24715. begin
  24716. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509);
  24717. end;
  24718. function SSL_CTX_get_extra_chain_certs_only(ctx: PSSL_CTX;var PX509 :PX509) : TIdC_LONG;
  24719. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24720. begin
  24721. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509);
  24722. end;
  24723. function SSL_CTX_clear_extra_chain_certs(ctx : PSSL_CTX) : TIdC_LONG;
  24724. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24725. begin
  24726. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,nil);
  24727. end;
  24728. function SSL_CTX_set0_chain(ctx:PSSL_CTX; sk : PSTACK_OF_X509) : TIdC_LONG;
  24729. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24730. begin
  24731. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,sk);
  24732. end;
  24733. function SSL_CTX_set1_chain(ctx:PSSL_CTX; sk : PSTACK_OF_X509) : TIdC_LONG;
  24734. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24735. begin
  24736. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,sk);
  24737. end;
  24738. function SSL_CTX_add0_chain_cert(ctx : PSSL_CTX; x509 : PX509) : TIdC_LONG;
  24739. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24740. begin
  24741. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,x509);
  24742. end;
  24743. function SSL_CTX_add1_chain_cert(ctx : PSSL_CTX; x509 : PX509) : TIdC_LONG;
  24744. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24745. begin
  24746. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,x509);
  24747. end;
  24748. function SSL_CTX_get0_chain_certs(ctx :PSSL_CTX; var px509 :PX509) : TIdC_LONG;
  24749. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24750. begin
  24751. Result := SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
  24752. end;
  24753. function SSL_CTX_clear_chain_certs(ctx :PSSL_CTX) : TIdC_LONG;
  24754. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24755. begin
  24756. Result := SSL_CTX_set0_chain(ctx,nil);
  24757. end;
  24758. {$ifndef OPENSSL_NO_HEARTBEATS}
  24759. function SSL_heartbeat(ssl : PSSL) : TIdC_LONG;
  24760. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24761. begin
  24762. Result := SSL_ctrl(ssl,SSL_CTRL_TLS_EXT_SEND_HEARTBEAT,0,nil);
  24763. end;
  24764. function SSL_get_tlsext_heartbeat_pending(ssl : PSSL) : TIdC_LONG;
  24765. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24766. begin
  24767. Result := SSL_ctrl(ssl,SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING,0,nil);
  24768. end;
  24769. function SSL_set_tlsext_heartbeat_no_requests(ssl : PSSL; arg : TIdC_LONG) : TIdC_LONG;
  24770. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24771. begin
  24772. Result := SSL_ctrl(ssl,SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS,arg,nil);
  24773. end;
  24774. {$endif}
  24775. {$ENDIF}
  24776. function TLS1_get_version(s : PSSL) : TIdC_INT;
  24777. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24778. begin
  24779. if (s.version shr 8) = TLS1_VERSION_MAJOR then
  24780. Result := s.version
  24781. else
  24782. Result := 0;
  24783. end;
  24784. function TLS1_get_client_version(s : PSSL) : TIdC_INT;
  24785. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24786. begin
  24787. if s.client_version shr 8 = TLS1_VERSION_MAJOR then
  24788. Result := s.client_version
  24789. else
  24790. Result := 0;
  24791. end;
  24792. function SSL_CTX_get_version(ctx: PSSL_CTX):TIdC_INT;
  24793. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24794. begin
  24795. Assert(ctx<>nil);
  24796. Result := ctx^.method^.version;
  24797. end;
  24798. //* BIO_s_connect() and BIO_s_socks4a_connect() */
  24799. function BIO_set_conn_hostname(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  24800. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24801. begin
  24802. Result := BIO_ctrl(b,BIO_C_SET_CONNECT,0,name);
  24803. end;
  24804. function BIO_set_conn_port(b : PBIO; port : PIdAnsiChar) : TIdC_LONG;
  24805. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24806. begin
  24807. Result := BIO_ctrl(b,BIO_C_SET_CONNECT,1,port);
  24808. end;
  24809. function BIO_set_conn_ip(b : PBIO; ip : PIdAnsiChar) : TIdC_LONG;
  24810. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24811. begin
  24812. Result := BIO_ctrl(b,BIO_C_SET_CONNECT,2,ip);
  24813. end;
  24814. function BIO_set_conn_int_port(b : PBIO; port : PIdAnsiChar) : TIdC_LONG;
  24815. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24816. begin
  24817. Result := BIO_ctrl(b,BIO_C_SET_CONNECT,3,port);
  24818. end;
  24819. function BIO_get_conn_hostname(b : PBIO) : PIdAnsiChar;
  24820. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24821. begin
  24822. Result := BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0);
  24823. end;
  24824. function BIO_get_conn_port(b : PBIO) : PIdAnsiChar;
  24825. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24826. begin
  24827. Result := BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1);
  24828. end;
  24829. function BIO_get_conn_ip(b : PBIO) : PIdAnsiChar;
  24830. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24831. begin
  24832. Result := BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2);
  24833. end;
  24834. function BIO_get_conn_int_port(b : PBIO) : TIdC_LONG;
  24835. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24836. begin
  24837. Result := BIO_int_ctrl(b,BIO_C_GET_CONNECT,3,0);
  24838. end;
  24839. function BIO_set_nbio(b : PBIO; n : TIdC_LONG) : TIdC_LONG;
  24840. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24841. begin
  24842. Result := BIO_ctrl(b,BIO_C_SET_NBIO,n,nil);
  24843. end;
  24844. //* BIO_s_accept_socket() */
  24845. function BIO_set_accept_port(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  24846. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24847. begin
  24848. Result := BIO_ctrl(b,BIO_C_SET_ACCEPT,0,name);
  24849. end;
  24850. function BIO_get_accept_port(b : PBIO) : PIdAnsiChar;
  24851. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24852. begin
  24853. Result := BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0);
  24854. end;
  24855. //* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */
  24856. function BIO_set_nbio_accept(b : PBIO; n : TIdC_INT) : TIdC_LONG;
  24857. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24858. var
  24859. a: array[0..1] of TIdAnsiChar;
  24860. begin
  24861. if n <> 0 then begin
  24862. a[0] := TIdAnsiChar('a');
  24863. a[1] := TIdAnsiChar(#0);
  24864. Result := BIO_ctrl(b, BIO_C_SET_ACCEPT, 1, @a[0]);
  24865. end else begin
  24866. Result := BIO_ctrl(b, BIO_C_SET_ACCEPT, 1, nil);
  24867. end;
  24868. end;
  24869. function BIO_set_accept_bios(b : PBIO; bio : PBIO) : TIdC_LONG;
  24870. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24871. begin
  24872. Result := BIO_ctrl(b,BIO_C_SET_ACCEPT, 2, bio);
  24873. end;
  24874. function BIO_set_bind_mode(b : PBIO; mode : TIdC_LONG) : TIdC_LONG;
  24875. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24876. begin
  24877. Result := BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,nil);
  24878. end;
  24879. function BIO_get_bind_mode(b : PBIO; mode : TIdC_LONG) : TIdC_LONG;
  24880. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24881. begin
  24882. Result := BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,nil);
  24883. end;
  24884. function BIO_do_handshake(b : PBIO) : TIdC_LONG;
  24885. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24886. begin
  24887. Result := BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,nil);
  24888. end;
  24889. function BIO_do_connect(b : PBIO) : TIdC_LONG;
  24890. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24891. begin
  24892. Result := BIO_do_handshake(b);
  24893. end;
  24894. function BIO_do_accept(b : PBIO) : TIdC_LONG;
  24895. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24896. begin
  24897. Result := BIO_do_handshake(b)
  24898. end;
  24899. //* BIO_s_proxy_client() */
  24900. function BIO_set_url(b : PBIO; url : PIdAnsiChar) : TIdC_LONG;
  24901. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24902. begin
  24903. Result := BIO_ctrl(b, BIO_C_SET_PROXY_PARAM,0,url);
  24904. end;
  24905. function BIO_set_proxies(b : PBIO; p : PIdAnsiChar) : TIdC_LONG;
  24906. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24907. begin
  24908. Result := BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,1,p);
  24909. end;
  24910. //* BIO_set_nbio(b,n) */
  24911. function BIO_set_filter_bio(b : PBIO; s : PIdAnsiChar) : TIdC_LONG;
  24912. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24913. begin
  24914. Result := BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,2,s);
  24915. end;
  24916. //* BIO *BIO_get_filter_bio(BIO *bio); */
  24917. //function BIO_set_proxy_cb(b : PBIO,cb) : TIdC_LONG;
  24918. //begin
  24919. //BIO_callback_ctrl(b,BIO_C_SET_PROXY_PARAM,3,(void *(*cb)()))
  24920. //end;
  24921. function BIO_set_proxy_header(b : PBIO; sk : PIdAnsiChar) : TIdC_LONG;
  24922. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24923. begin
  24924. Result := BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,4,sk);
  24925. end;
  24926. function BIO_set_no_connect_return(b : PBIO; b2 : TIdC_LONG) : TIdC_LONG;
  24927. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24928. begin
  24929. Result := BIO_int_ctrl(b,BIO_C_SET_PROXY_PARAM,5,b2);
  24930. end;
  24931. function BIO_get_proxy_header(b : PBIO; var skp : PIdAnsiChar) : TIdC_LONG;
  24932. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24933. begin
  24934. Result := BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,0,@skp);
  24935. end;
  24936. function BIO_get_proxies(b : PBIO; var pxy_p : PIdAnsiChar) : TIdC_LONG;
  24937. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24938. begin
  24939. Result := BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,1,@pxy_p);
  24940. end;
  24941. function BIO_get_url(b : PBIO; var url : PIdAnsiChar) : TIdC_LONG;
  24942. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24943. begin
  24944. Result := BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,@url);
  24945. end;
  24946. function BIO_get_no_connect_return(b : PBIO) : TIdC_LONG;
  24947. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24948. begin
  24949. Result := BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,nil);
  24950. end;
  24951. function BIO_set_fd(b : PBIO; fd,c : TIdC_INT) : TIdC_LONG;
  24952. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24953. begin
  24954. Result := BIO_int_ctrl(b,BIO_C_SET_FD,c,fd);
  24955. end;
  24956. function BIO_get_fd(b : PBIO; c : PIdC_INT) : TIdC_LONG;
  24957. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24958. begin
  24959. Result := BIO_ctrl(b,BIO_C_GET_FD,0,c);
  24960. end;
  24961. //function BIO_set_fp(b : PBIO; fp : Pointer; c : TIdC_LONG) : TIdC_LONG;
  24962. //{$IFDEF USE_INLINE} inline; {$ENDIF}
  24963. //begin
  24964. // Result := BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,fp);
  24965. //end;
  24966. //function BIO_get_fp(b : PBIO; out fpp : Pointer) : TIdC_LONG;
  24967. //{$IFDEF USE_INLINE} inline; {$ENDIF}
  24968. //begin
  24969. // Result := BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,@fpp);
  24970. //end;
  24971. function BIO_seek(b : PBIO; ofs : TIdC_LONG) : TIdC_INT;
  24972. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24973. begin
  24974. Result := BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,nil);
  24975. end;
  24976. function BIO_tell(b : PBIO) : TIdC_INT;
  24977. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24978. begin
  24979. Result := BIO_ctrl(b,BIO_C_FILE_TELL,0,nil);
  24980. end;
  24981. //* name is cast to lose const, but might be better to route through a function
  24982. // so we can do it safely */
  24983. {$IFDEF CONST_STRICT}
  24984. ///* If you are wondering why this isn't defined, its because CONST_STRICT is
  24985. // * purely a compile-time kludge to allow const to be checked.
  24986. // */
  24987. //int BIO_read_filename(BIO *b,const char *name);
  24988. {$ELSE}
  24989. function BIO_read_filename(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  24990. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24991. begin
  24992. Result := BIO_ctrl(b,BIO_C_SET_FILENAME, BIO_CLOSE or BIO_FP_READ,name);
  24993. end;
  24994. {$ENDIF}
  24995. function BIO_write_filename(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  24996. {$IFDEF USE_INLINE} inline; {$ENDIF}
  24997. begin
  24998. Result := BIO_ctrl(b,BIO_C_SET_FILENAME, BIO_CLOSE or BIO_FP_WRITE,name);
  24999. end;
  25000. function BIO_append_filename(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  25001. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25002. begin
  25003. Result := BIO_ctrl(b,BIO_C_SET_FILENAME, BIO_CLOSE or BIO_FP_APPEND,name);
  25004. end;
  25005. function BIO_rw_filename(b : PBIO; name : PIdAnsiChar) : TIdC_LONG;
  25006. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25007. begin
  25008. Result := BIO_ctrl(b,BIO_C_SET_FILENAME, BIO_CLOSE or BIO_FP_READ or BIO_FP_WRITE,name);
  25009. end;
  25010. ///* WARNING WARNING, this ups the reference count on the read bio of the
  25011. // * SSL structure. This is because the ssl read BIO is now pointed to by
  25012. // * the next_bio field in the bio. So when you free the BIO, make sure
  25013. // * you are doing a BIO_free_all() to catch the underlying BIO. */
  25014. function BIO_set_ssl(b : PBIO; ssl : PSSL; c : TIdC_LONG) : TIdC_LONG;
  25015. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25016. begin
  25017. Result := BIO_ctrl(b,BIO_C_SET_SSL,c,ssl);
  25018. end;
  25019. function BIO_get_ssl(b : PBIO; var sslp : PSSL) : TIdC_LONG;
  25020. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25021. begin
  25022. Result := BIO_ctrl(b,BIO_C_GET_SSL,0,@sslp);
  25023. end;
  25024. function BIO_set_ssl_mode(b : PBIO; client : TIdC_LONG) : TIdC_LONG;
  25025. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25026. begin
  25027. Result := BIO_ctrl(b,BIO_C_SSL_MODE,client,nil);
  25028. end;
  25029. function BIO_set_ssl_renegotiate_bytes(b : PBIO; num : TIdC_LONG) : TIdC_LONG;
  25030. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25031. begin
  25032. Result := BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,nil);
  25033. end;
  25034. function BIO_get_num_renegotiates(b : PBIO) : TIdC_LONG;
  25035. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25036. begin
  25037. Result := BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,nil);
  25038. end;
  25039. function BIO_set_ssl_renegotiate_timeout(b : PBIO; seconds : TIdC_LONG) : TIdC_LONG;
  25040. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25041. begin
  25042. Result := BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,nil);
  25043. end;
  25044. function BIO_get_mem_data(b : PBIO; var pp : PIdAnsiChar) : TIdC_INT;
  25045. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25046. begin
  25047. Result := BIO_ctrl(b,BIO_CTRL_INFO,0,@pp);
  25048. end;
  25049. function BIO_set_mem_buf(b : PBIO; bm : PBUF_MEM; c : TIdC_INT) : TIdC_INT;
  25050. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25051. begin
  25052. Result := BIO_ctrl(b, BIO_C_SET_BUF_MEM, c, bm);
  25053. end;
  25054. function BIO_get_mem_ptr(b: PBIO; var pp: PBUF_MEM) : TIdC_INT;
  25055. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25056. begin
  25057. Result := BIO_ctrl(b, BIO_C_GET_BUF_MEM_PTR, 0, @pp);
  25058. end;
  25059. procedure BIO_set_mem_eof_return(b : PBIO; const v : TIdC_INT);
  25060. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25061. begin
  25062. BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,nil);
  25063. end;
  25064. //* For the BIO_f_buffer() type */
  25065. function BIO_get_buffer_num_lines(b : PBIO) : TIdC_INT;
  25066. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25067. begin
  25068. Result := BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,nil);
  25069. end;
  25070. procedure BIO_set_buffer_size(b : PBIO; const size : TIdC_INT);
  25071. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25072. begin
  25073. BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,nil);
  25074. end;
  25075. //* Don't use the next one unless you know what you are doing :-) */
  25076. function BIO_dup_state(b : PBIO; ret : PBIO) : TIdC_LONG;
  25077. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25078. begin
  25079. Result := BIO_ctrl(b,BIO_CTRL_DUP,0,ret);
  25080. end;
  25081. function BIO_reset(b : PBIO) : TIdC_INT;
  25082. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25083. begin
  25084. Result := BIO_ctrl(b,BIO_CTRL_RESET,0,nil);
  25085. end;
  25086. function BIO_eof(b : PBIO) : TIdC_INT;
  25087. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25088. begin
  25089. Result := BIO_ctrl(b,BIO_CTRL_EOF,0,nil);
  25090. end;
  25091. function BIO_set_close(b: PBIO; c: TIdC_LONG): TIdC_INT;
  25092. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25093. begin
  25094. Result := BIO_ctrl(b, BIO_CTRL_SET_CLOSE, c, nil);
  25095. end;
  25096. function BIO_get_close(b : PBIO) : TIdC_INT;
  25097. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25098. begin
  25099. Result := BIO_ctrl(b, BIO_CTRL_GET_CLOSE, 0, nil);
  25100. end;
  25101. function BIO_pending(b : PBIO) : TIdC_INT;
  25102. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25103. begin
  25104. Result := BIO_ctrl(b,BIO_CTRL_PENDING,0,nil);
  25105. end;
  25106. function BIO_wpending(b : PBIO) : TIdC_INT;
  25107. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25108. begin
  25109. Result := BIO_ctrl(b,BIO_CTRL_WPENDING,0,nil);
  25110. end;
  25111. function BIO_flush(b : PBIO) : TIdC_INT;
  25112. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25113. begin
  25114. Result := BIO_ctrl(b,BIO_CTRL_FLUSH,0,nil);
  25115. end;
  25116. //* For the BIO_f_buffer() type */
  25117. function BIO_buffer_get_num_lines(b : PBIO) : TIdC_INT;
  25118. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25119. begin
  25120. Result := BIO_ctrl(b,BIO_CTRL_GET,0,nil);
  25121. end;
  25122. function BIO_get_info_callback(b : PBIO; var cbp : Pbio_info_cb) : TIdC_INT;
  25123. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25124. begin
  25125. Result := BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, @cbp);
  25126. end;
  25127. function BIO_set_info_callback(b : PBIO; cb : Pbio_info_cb) : TIdC_INT;
  25128. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25129. begin
  25130. Result := BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb);
  25131. end;
  25132. //* For BIO_s_bio() */
  25133. //function(bp : PBIO; cmd : TIdC_INT; larg : TIdC_LONG; iArg : TIdC_INT) : TIdC_LONG cdecl = nil;
  25134. //BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0)
  25135. function BIO_set_read_buffer_size(b : PBIO; size : TIdC_LONG) : TIdC_LONG;
  25136. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25137. begin
  25138. Result := BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0);
  25139. end;
  25140. function BIO_set_write_buffer_size(b : PBIO; size : TIdC_LONG) : TIdC_LONG;
  25141. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25142. begin
  25143. Result := BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1);
  25144. end;
  25145. //#define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2)
  25146. function BIO_make_bio_pair(b1, b2 : PBIO ): TIdC_INT;
  25147. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25148. begin
  25149. Result := BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2);
  25150. end;
  25151. //#define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL)
  25152. function BIO_destroy_bio_pair(b : PBIO) : TIdC_INT;
  25153. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25154. begin
  25155. Result := BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,nil);
  25156. end;
  25157. //#define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL)
  25158. function BIO_shutdown_wr(b : PBIO) : TIdC_INT;
  25159. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25160. begin
  25161. Result := BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, nil);
  25162. end;
  25163. ///* macros with inappropriate type -- but ...pending macros use int too: */
  25164. //#define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL)
  25165. function BIO_get_write_guarantee(b : PBIO) : TIdC_INT;
  25166. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25167. begin
  25168. Result := BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,nil);
  25169. end;
  25170. //#define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL)
  25171. function BIO_get_read_request(b : PBIO) : TIdC_INT;
  25172. begin
  25173. Result := BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,nil);
  25174. end;
  25175. //* ctrl macros for dgram */
  25176. function _BIO_ctrl_dgram_connect(b : PBIO; peer : Sockaddr) : TIdC_INT;
  25177. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25178. begin
  25179. Result := BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0,@peer);
  25180. end;
  25181. function BIO_ctrl_set_connected(b : PBIO; state : TIdC_INT; peer : Sockaddr) : TIdC_INT;
  25182. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25183. begin
  25184. Result := BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, state, @peer);
  25185. end;
  25186. function BIO_dgram_recv_timedout(b : PBIO) : TIdC_INT;
  25187. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25188. begin
  25189. Result := BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, nil);
  25190. end;
  25191. function BIO_dgram_send_timedout(b : PBIO) : TIdC_INT;
  25192. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25193. begin
  25194. Result := BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, nil);
  25195. end;
  25196. function BIO_dgram_get_peer(b : PBIO; peer : PSockAddr) : TIdC_INT;
  25197. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25198. begin
  25199. Result := BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, peer);
  25200. end;
  25201. function BIO_dgram_set_peer(b : PBIO; peer : PSockAddr) : TIdC_INT;
  25202. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25203. begin
  25204. Result := BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, peer);
  25205. end;
  25206. {$IFDEF SSLEAY_MACROS}
  25207. //You should do the PEM_read_bio and PEM_write_bio functions like this
  25208. //because OpenSSL has a define for either using Macros or the native
  25209. //functions.
  25210. function PEM_read_bio_X509(bp: PBIO; x: PPX509; cb: ppem_password_cb; u: Pointer): PX509;
  25211. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25212. begin
  25213. Result := PEM_ASN1_read_bio(d2i_of_void(d2i_X509), PEM_STRING_X509, bp, PPointer(x), cb, u);
  25214. end;
  25215. function PEM_read_bio_X509_REQ(bp :PBIO; x : PPX509_REQ; cb :ppem_password_cb; u: Pointer) : PX509_REQ;
  25216. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25217. begin
  25218. Result := PEM_ASN1_read_bio(d2i_of_void(d2i_X509_REQ),PEM_STRING_X509_REQ,bp, Pointer(x), cb, u);
  25219. end;
  25220. function PEM_read_bio_X509_CRL(bp : PBIO; x : PPX509_CRL;cb : ppem_password_cb; u: Pointer) : PX509_CRL;
  25221. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25222. begin
  25223. Result := PEM_ASN1_read_bio(d2i_of_void(d2i_X509_CRL), PEM_STRING_X509_CRL, bp, Pointer(x), cb, u);
  25224. end;
  25225. function PEM_read_bio_RSAPrivateKey(bp : PBIO; x : PPRSA; cb : ppem_password_cb; u: Pointer) : PRSA;
  25226. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25227. begin
  25228. Result := PEM_ASN1_read_bio(d2i_of_void(d2i_RSAPrivateKey), PEM_STRING_RSA, bp, Pointer(x), cb, u);
  25229. end;
  25230. function PEM_read_bio_RSAPublicKey(bp : PBIO; x : PPRSA; cb : ppem_password_cb; u: Pointer) : PRSA;
  25231. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25232. begin
  25233. Result := PEM_ASN1_read_bio(d2i_of_void(d2i_RSAPublicKey),PEM_STRING_RSA_PUBLIC, bp, Pointer(x),cb, u);
  25234. end;
  25235. function PEM_read_bio_DSAPrivateKey(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u : Pointer) : PDSA;
  25236. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25237. begin
  25238. Result := PEM_ASN1_read_bio( d2i_of_void(d2i_DSAPrivateKey),PEM_STRING_DSA,bp,Pointer(x),cb,u);
  25239. end;
  25240. function PEM_read_bio_PrivateKey(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY;
  25241. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25242. begin
  25243. Result := PEM_ASN1_read_bio( d2i_of_void(d2i_PrivateKey), PEM_STRING_EVP_PKEY, bp, Pointer(x),cb, u);
  25244. end;
  25245. function PEM_read_bio_PKCS7(bp : PBIO; x : PPPKCS7; cb : ppem_password_cb; u : Pointer) : PPKCS7;
  25246. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25247. begin
  25248. Result := PEM_ASN1_read_bio( d2i_of_void(d2i_PKCS7), PEM_STRING_PKCS7,bp,Pointer(x),cb, u);
  25249. end;
  25250. function PEM_read_bio_DHparams(bp : PBIO; x : PPDH; cb : ppem_password_cb; u : Pointer) : PDH;
  25251. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25252. begin
  25253. Result := PEM_ASN1_read_bio(d2i_of_void(d2i_DHparams),PEM_STRING_DHPARAMS,bp,Pointer(x),cb,u);
  25254. end;
  25255. function PEM_read_bio_DSAparams(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u : Pointer) : PDSA;
  25256. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25257. begin
  25258. Result := PEM_ASN1_read_bio( d2i_of_void(d2i_DSAparams),PEM_STRING_DSAPARAMS,bp,Pointer(x),cb,u);
  25259. end;
  25260. function PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PPNETSCAPE_CERT_SEQUENCE;
  25261. cb : ppem_password_cb; u : Pointer) : PNETSCAPE_CERT_SEQUENCE;
  25262. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25263. begin
  25264. Result := PEM_ASN1_read_bio( d2i_of_void(d2i_NETSCAPE_CERT_SEQUENCE),PEM_STRING_X509,bp,Pointer(x),cb, u);
  25265. end;
  25266. function PEM_read_bio_PUBKEY(bp : PBIO; x: PPEVP_PKEY; cb: ppem_password_cb; u: Pointer): PEVP_PKEY;
  25267. begin
  25268. Result := PEM_ASN1_read_bio( d2i_of_void(d2i_PUBKEY),PEM_STRING_PUBLIC,bp,Pointer(x),cb, u);
  25269. end;
  25270. function PEM_write_bio_X509(bp: PBIO; x: PX509): TIdC_INT;
  25271. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25272. begin
  25273. Assert(bp<>nil);
  25274. Assert(x<>nil);
  25275. Result := PEM_ASN1_write_bio( i2d_of_void(i2d_X509), PEM_STRING_X509, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25276. Assert(Result<>0);
  25277. end;
  25278. function PEM_write_bio_X509_REQ(bp: PBIO; x: PX509_REQ): TIdC_INT;
  25279. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25280. begin
  25281. Assert(bp<>nil);
  25282. Assert(x<>nil);
  25283. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_X509_REQ), PEM_STRING_X509_REQ, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25284. Assert(Result<>0);
  25285. end;
  25286. function PEM_write_bio_X509_CRL(bp : PBIO; x : PX509_CRL) : TIdC_INT;
  25287. begin
  25288. Assert(bp<>nil);
  25289. Assert(x<>nil);
  25290. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_X509_CRL), PEM_STRING_X509_CRL, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25291. Assert(Result<>0);
  25292. end;
  25293. function PEM_write_bio_RSAPrivateKey(bp : PBIO; x : PRSA; const enc : PEVP_CIPHER;
  25294. kstr : PIdAnsiChar; klen : TIdC_INT; cb : ppem_password_cb; u : POinter) : TIdC_INT;
  25295. begin
  25296. Assert(bp<>nil);
  25297. Assert(x<>nil);
  25298. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_RSAPrivateKey), PEM_STRING_RSA, bp, PIdAnsiChar(x), enc,kstr,klen,cb,u);
  25299. Assert(Result<>0);
  25300. end;
  25301. function PEM_write_bio_RSAPublicKey(bp : PBIO; x : PRSA) : TIdC_INT;
  25302. begin
  25303. Assert(bp<>nil);
  25304. Assert(x<>nil);
  25305. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_RSAPublicKey), PEM_STRING_RSA_PUBLIC, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25306. Assert(Result<>0);
  25307. end;
  25308. function PEM_write_bio_DSAPrivateKey( bp : PBIO; x : PDSA; const enc : PEVP_CIPHER;
  25309. kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT;
  25310. begin
  25311. Assert(bp<>nil);
  25312. Assert(x<>nil);
  25313. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_DSAPrivateKey), PEM_STRING_DSA, bp, PIdAnsiChar(x), enc,kstr,klen,cb,u);
  25314. Assert(Result<>0);
  25315. end;
  25316. function PEM_write_bio_PrivateKey(bp : PBIO; x : PEVP_PKEY; const enc : PEVP_CIPHER;
  25317. kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT;
  25318. begin
  25319. Assert(bp<>nil);
  25320. Assert(x<>nil);
  25321. if x^._type = EVP_PKEY_DSA then begin
  25322. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_PrivateKey),PEM_STRING_DSA,bp, Pointer(x),enc,kstr,klen,cb,u);
  25323. end else begin
  25324. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_PrivateKey),PEM_STRING_RSA,bp, Pointer(x),enc,kstr,klen,cb,u);
  25325. end;
  25326. Assert(Result<>0);
  25327. end;
  25328. function PEM_write_bio_PKCS7(bp : PBIO; x : PPKCS7) : TIdC_INT;
  25329. begin
  25330. Assert(bp<>nil);
  25331. Assert(x<>nil);
  25332. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_PKCS7), PEM_STRING_PKCS7, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25333. Assert(Result<>0);
  25334. end;
  25335. function PEM_write_bio_DHparams(bp : PBIO; x : PDH): TIdC_INT;
  25336. begin
  25337. Assert(bp<>nil);
  25338. Assert(x<>nil);
  25339. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_DHparams), PEM_STRING_DHPARAMS, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25340. Assert(Result<>0);
  25341. end;
  25342. function PEM_write_bio_DSAparams(bp : PBIO; x : PDSA) : TIdC_INT;
  25343. begin
  25344. Assert(bp<>nil);
  25345. Assert(x<>nil);
  25346. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_DSAparams), PEM_STRING_DSAPARAMS, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25347. Assert(Result<>0);
  25348. end;
  25349. function PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PDSA) : TIdC_INT;
  25350. begin
  25351. Assert(bp<>nil);
  25352. Assert(x<>nil);
  25353. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_NETSCAPE_CERT_SEQUENCE), PEM_STRING_X509, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25354. Assert(Result<>0);
  25355. end;
  25356. function PEM_write_bio_PUBKEY(bp: PBIO; x : PEVP_PKEY): TIdC_INT;
  25357. begin
  25358. Assert(bp<>nil);
  25359. Assert(x<>nil);
  25360. Result := PEM_ASN1_write_bio(i2d_of_void(i2d_PUBKEY), PEM_STRING_PUBLIC, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
  25361. Assert(Result<>0);
  25362. end;
  25363. {$ELSE}
  25364. function PEM_read_bio_X509(bp: PBIO; x: PPX509; cb: ppem_password_cb; u: Pointer): PX509;
  25365. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25366. begin
  25367. Result := _PEM_read_bio_X509(bp, x, cb, u);
  25368. end;
  25369. function PEM_read_bio_X509_REQ(bp :PBIO; x : PPX509_REQ; cb :ppem_password_cb; u: Pointer) : PX509_REQ;
  25370. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25371. begin
  25372. Result := _PEM_read_bio_X509_REQ(bp, x, cb, u);
  25373. end;
  25374. function PEM_read_bio_X509_CRL(bp : PBIO; x : PPX509_CRL;cb : ppem_password_cb; u: Pointer) : PX509_CRL;
  25375. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25376. begin
  25377. Result := _PEM_read_bio_X509_CRL(bp, x, cb, u);
  25378. end;
  25379. function PEM_read_bio_RSAPrivateKey(bp : PBIO; x : PPRSA; cb : ppem_password_cb; u: Pointer) : PRSA;
  25380. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25381. begin
  25382. Result := _PEM_read_bio_RSAPrivateKey(bp, x, cb, u);
  25383. end;
  25384. function PEM_read_bio_RSAPublicKey(bp : PBIO; x : PPRSA; cb : ppem_password_cb; u: Pointer) : PRSA;
  25385. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25386. begin
  25387. Result := _PEM_read_bio_RSAPublicKey(bp, x, cb, u);
  25388. end;
  25389. function PEM_read_bio_DSAPrivateKey(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u : Pointer) : PDSA;{$IFDEF USE_INLINE} inline; {$ENDIF}
  25390. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25391. begin
  25392. Result := _PEM_read_bio_DSAPrivateKey(bp, x, cb, u);
  25393. end;
  25394. function PEM_read_bio_PrivateKey(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY;
  25395. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25396. begin
  25397. Result := _PEM_read_bio_PrivateKey(bp, x, cb, u);
  25398. end;
  25399. function PEM_read_bio_PKCS7(bp : PBIO; x : PPPKCS7; cb : ppem_password_cb; u : Pointer) : PPKCS7;
  25400. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25401. begin
  25402. Result := _PEM_read_bio_PKCS7(bp, x, cb, u);
  25403. end;
  25404. function PEM_read_bio_DHparams(bp : PBIO; x : PPDH; cb : ppem_password_cb; u : Pointer) : PDH;
  25405. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25406. begin
  25407. Result := _PEM_read_bio_DHparams(bp, x, cb, u);
  25408. end;
  25409. function PEM_read_bio_DSAparams(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u : Pointer) : PDSA;
  25410. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25411. begin
  25412. Result := _PEM_read_bio_DSAparams(bp, x, cb, u);
  25413. end;
  25414. function PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PPNETSCAPE_CERT_SEQUENCE;
  25415. cb : ppem_password_cb; u : Pointer) : PNETSCAPE_CERT_SEQUENCE;
  25416. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25417. begin
  25418. Result := _PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp, x, cb, u);
  25419. end;
  25420. function PEM_read_bio_PUBKEY(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY;
  25421. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25422. begin
  25423. Result := _PEM_read_bio_PUBKEY(bp, x, cb, u);
  25424. end;
  25425. function PEM_write_bio_X509(bp: PBIO; x: PX509): TIdC_INT;
  25426. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25427. begin
  25428. Result := _PEM_write_bio_X509(bp, x);
  25429. end;
  25430. function PEM_write_bio_X509_REQ(bp: PBIO; x: PX509_REQ): TIdC_INT;
  25431. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25432. begin
  25433. Result := _PEM_write_bio_X509_REQ(bp, x);
  25434. end;
  25435. function PEM_write_bio_X509_CRL(bp : PBIO; x : PX509_CRL) : TIdC_INT;
  25436. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25437. begin
  25438. Result := _PEM_write_bio_X509_CRL(bp, x);
  25439. end;
  25440. function PEM_write_bio_RSAPublicKey(bp : PBIO; x : PRSA) : TIdC_INT;
  25441. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25442. begin
  25443. Result := _PEM_write_bio_RSAPublicKey(bp,x);
  25444. end;
  25445. function PEM_write_bio_RSAPrivateKey(bp : PBIO; x : PRSA; const enc : PEVP_CIPHER;
  25446. kstr : PIdAnsiChar; klen : TIdC_INT; cb : ppem_password_cb; u : POinter) : TIdC_INT;
  25447. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25448. begin
  25449. Result := _PEM_write_bio_RSAPrivateKey(bp,x,enc,kstr,klen,cb, u);
  25450. end;
  25451. function PEM_write_bio_DSAPrivateKey( bp : PBIO; x : PDSA; const enc : PEVP_CIPHER;
  25452. kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT;
  25453. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25454. begin
  25455. Result := _PEM_write_bio_DSAPrivateKey( bp, x, enc, kstr, klen, cb, u);
  25456. end;
  25457. function PEM_write_bio_PrivateKey(bp : PBIO; x : PEVP_PKEY; const enc : PEVP_CIPHER;
  25458. kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT;
  25459. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25460. begin
  25461. Result := _PEM_write_bio_PrivateKey(bp,x, enc, kstr, klen, cb, u);
  25462. end;
  25463. function PEM_write_bio_PKCS7(bp : PBIO; x : PPKCS7) : TIdC_INT;
  25464. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25465. begin
  25466. Result := _PEM_write_bio_PKCS7(bp, x);
  25467. end;
  25468. function PEM_write_bio_DHparams(bp : PBIO; x : PDH): TIdC_INT;
  25469. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25470. begin
  25471. Result := _PEM_write_bio_DHparams(bp, x);
  25472. end;
  25473. function PEM_write_bio_DSAparams(bp : PBIO; x : PDSA) : TIdC_INT;
  25474. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25475. begin
  25476. Result := _PEM_write_bio_DSAparams(bp, x);
  25477. end;
  25478. function PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PDSA) : TIdC_INT;
  25479. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25480. begin
  25481. Result := _PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp, x);
  25482. end;
  25483. function PEM_write_bio_PUBKEY(bp : PBIO; x : PEVP_PKEY): TIdC_INT;
  25484. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25485. begin
  25486. Result := _PEM_write_bio_PUBKEY(bp, x);
  25487. end;
  25488. {$ENDIF}
  25489. function OPENSSL_malloc(aSize:TIdC_INT):Pointer;
  25490. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25491. //can also use CRYPTO_mem_leaks(bio)
  25492. begin
  25493. Result := CRYPTO_malloc(aSize,
  25494. {$IFNDEF HAS_PAnsiChar}
  25495. @cNull
  25496. {$ELSE}
  25497. ''
  25498. {$ENDIF}, 0);
  25499. end;
  25500. procedure CRYPTO_SetMemCheck(const aEnabled: Boolean);
  25501. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25502. //compile openssl with -DCRYPTO_MDEBUG
  25503. {$IFOPT C+} // detect assertions
  25504. var
  25505. r: Integer;
  25506. {$ENDIF}
  25507. begin
  25508. //compile openssl with -DCRYPTO_MDEBUG
  25509. {$IFOPT C+}r :={$ENDIF} CRYPTO_mem_ctrl(iif(aEnabled, CRYPTO_MEM_CHECK_ON, CRYPTO_MEM_CHECK_OFF));
  25510. {$IFOPT C+}Assert(r<>0);{$ENDIF}
  25511. end;
  25512. {$IFNDEF OPENSSL_NO_RSA}
  25513. function EVP_PKEY_assign_RSA(pkey: PEVP_PKEY; rsa: PRSA): TIdC_INT;
  25514. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25515. begin
  25516. Result := EVP_PKEY_assign(pkey, EVP_PKEY_RSA, rsa);
  25517. end;
  25518. {$ENDIF}
  25519. {$IFNDEF OPENSSL_NO_DSA}
  25520. function EVP_PKEY_assign_DSA(pkey : PEVP_PKEY; dsa : PDSA) : TIdC_INT;
  25521. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25522. begin
  25523. Result := EVP_PKEY_assign(pkey, EVP_PKEY_DSA, dsa);
  25524. end;
  25525. {$ENDIF}
  25526. {$IFNDEF OPENSSL_NO_DH}
  25527. function EVP_PKEY_assign_DH(pkey : PEVP_PKEY; dh : PDH) : TIdC_INT;
  25528. begin
  25529. Result := EVP_PKEY_assign(pkey, EVP_PKEY_DH, dh);
  25530. end;
  25531. {$ENDIF}
  25532. {$IFNDEF OPENSSL_NO_EC}
  25533. function EVP_PKEY_assign_EC_KEY(pkey : PEVP_PKEY; eckey : PEC_KEY) : TIdC_INT;
  25534. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25535. begin
  25536. Result := EVP_PKEY_assign(pkey, EVP_PKEY_EC, eckey);
  25537. end;
  25538. {$ENDIF}
  25539. function EVP_get_digestbynid(a : TIdC_INT) : PEVP_MD;
  25540. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25541. begin
  25542. Result := EVP_get_digestbyname(OBJ_nid2sn(a));
  25543. end;
  25544. function EVP_get_digestbyobj(a : PASN1_OBJECT) : PEVP_MD;
  25545. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25546. begin
  25547. Result := EVP_get_digestbynid(OBJ_obj2nid(a));
  25548. end;
  25549. function EVP_get_cipherbynid(a : TIdC_INT) : PEVP_CIPHER;
  25550. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25551. begin
  25552. Result := EVP_get_cipherbyname(OBJ_nid2sn(a));
  25553. end;
  25554. function EVP_get_cipherbyobj(a : PASN1_OBJECT) : PEVP_CIPHER;
  25555. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25556. begin
  25557. Result := EVP_get_cipherbynid(OBJ_obj2nid(a))
  25558. end;
  25559. function EVP_MD_nid(e : PEVP_MD) : TIdC_INT;
  25560. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25561. begin
  25562. Result := EVP_MD_type(e);
  25563. end;
  25564. function EVP_MD_name(e : PEVP_MD) : PIdAnsiChar;
  25565. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25566. begin
  25567. Result := OBJ_nid2sn(EVP_MD_nid(e))
  25568. end;
  25569. function EVP_MD_CTX_size(e : PEVP_MD_CTX) : TIdC_INT;
  25570. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25571. begin
  25572. Result := EVP_MD_size(EVP_MD_CTX_md(e));
  25573. end;
  25574. function EVP_MD_CTX_block_size(e : PEVP_MD_CTX) : TIdC_INT;
  25575. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25576. begin
  25577. Result := EVP_MD_block_size(EVP_MD_CTX_md(e));
  25578. end;
  25579. function EVP_MD_CTX_type(e : PEVP_MD_CTX) : TIdC_INT;
  25580. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25581. begin
  25582. Result := EVP_MD_type(EVP_MD_CTX_md(e));
  25583. end;
  25584. function EVP_CIPHER_name(e : PEVP_CIPHER) : PIdAnsiChar;
  25585. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25586. begin
  25587. Result := OBJ_nid2sn(EVP_CIPHER_nid(e));
  25588. end;
  25589. function EVP_CIPHER_mode(e : PEVP_CIPHER) : TIdC_ULONG;
  25590. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25591. begin
  25592. Result := (EVP_CIPHER_flags(e) and EVP_CIPH_MODE)
  25593. end;
  25594. function EVP_CIPHER_CTX_type(c : PEVP_CIPHER_CTX) : TIdC_INT;
  25595. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25596. begin
  25597. Result := EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c));
  25598. end;
  25599. function EVP_CIPHER_CTX_mode(e : PEVP_CIPHER_CTX) : TIdC_ULONG;
  25600. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25601. begin
  25602. Result := (EVP_CIPHER_CTX_flags(e) and EVP_CIPH_MODE)
  25603. end;
  25604. function EVP_ENCODE_LENGTH(l : Integer) : Integer;
  25605. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25606. begin
  25607. Result := (((l+2) div 3*4)+(l div 48+1)*2+80);
  25608. end;
  25609. function EVP_DECODE_LENGTH(l : Integer) : Integer;
  25610. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25611. begin
  25612. Result := ((l+3) div 4*3+80);
  25613. end;
  25614. function EVP_SignInit_ex(a: PEVP_MD_CTX; b : PEVP_MD; c : PENGINE) : TIdC_INT;
  25615. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25616. begin
  25617. Result := EVP_DigestInit_ex(a, b,c);
  25618. end;
  25619. function EVP_SignInit(a : PEVP_MD_CTX; b : PEVP_MD) : TIdC_INT;
  25620. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25621. begin
  25622. Result := EVP_DigestInit(a,b);
  25623. end;
  25624. function EVP_SignUpdate(a: PEVP_MD_CTX; b : Pointer; c : size_t) : TIdC_INT;
  25625. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25626. begin
  25627. Result := EVP_DigestUpdate(a,b,c);
  25628. end;
  25629. function EVP_VerifyInit_ex(a: PEVP_MD_CTX; b: PEVP_MD; c: PENGINE) : TIdC_INT;
  25630. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25631. begin
  25632. Result := EVP_DigestInit_ex(a,b,c);
  25633. end;
  25634. function EVP_VerifyInit(a: PEVP_MD_CTX; b: PEVP_MD) : TIdC_INT;
  25635. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25636. begin
  25637. Result := EVP_DigestInit(a,b);
  25638. end;
  25639. function EVP_VerifyUpdate(a: PEVP_MD_CTX; b: Pointer; c : size_t) : TIdC_INT;
  25640. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25641. begin
  25642. Result := EVP_DigestUpdate(a,b,c);
  25643. end;
  25644. function EVP_OpenUpdate(a: PEVP_CIPHER_CTX; _out : PIdAnsiChar; outl : PIdC_INT;
  25645. _in : PIdAnsiChar; inl : TIdC_INT) : TIdC_INT;
  25646. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25647. begin
  25648. Result := EVP_DecryptUpdate(a,_out,outl,_in,inl);
  25649. end;
  25650. function EVP_SealUpdate(a : PEVP_CIPHER_CTX; b: PIdAnsiChar; c : PIdC_INT;
  25651. d: PIdAnsiChar; e : TIdC_INT) : TIdC_INT;
  25652. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25653. begin
  25654. Result := EVP_EncryptUpdate(a,b,c,d,e)
  25655. end;
  25656. function EVP_DigestSignUpdate(a : PEVP_MD_CTX; b : Pointer; c : size_t) : TIdC_Int;
  25657. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25658. begin
  25659. Result := EVP_DigestUpdate(a,b,size_t(c));
  25660. end;
  25661. function EVP_DigestVerifyUpdate(a : PEVP_MD_CTX; b : Pointer; c : size_t) : TIdC_INT;
  25662. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25663. begin
  25664. Result := EVP_DigestUpdate(a,b,size_t(c));
  25665. end;
  25666. function BIO_get_md(b : PBIO; var mdp : PEVP_MD) : TIdC_LONG;
  25667. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25668. begin
  25669. Result := BIO_ctrl(b,BIO_C_GET_MD,0,@mdp);
  25670. end;
  25671. function BIO_get_md_ctx(b : PBIO; var mdcp : PEVP_MD_CTX) : TIdC_LONG;
  25672. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25673. begin
  25674. Result := BIO_ctrl(b,BIO_C_GET_MD_CTX,0,@mdcp);
  25675. end;
  25676. function BIO_set_md_ctx(b : PBIO; mdcp : PEVP_MD_CTX) : TIdC_LONG;
  25677. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25678. begin
  25679. Result := BIO_ctrl(b,BIO_C_SET_MD_CTX,0,mdcp);
  25680. end;
  25681. function BIO_get_cipher_status(b : PBIO) : TIdC_LONG;
  25682. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25683. begin
  25684. Result := BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,nil);
  25685. end;
  25686. function BIO_get_cipher_ctx(b : PBIO; var c_pp : PEVP_CIPHER_CTX): TIdC_LONG;
  25687. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25688. begin
  25689. Result := BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,@c_pp);
  25690. end;
  25691. {$ifndef OPENSSL_NO_DES}
  25692. function EVP_des_cfb : PEVP_CIPHER;
  25693. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25694. begin
  25695. Result := EVP_des_cfb64;
  25696. end;
  25697. function EVP_des_ede_cfb: PEVP_CIPHER;
  25698. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25699. begin
  25700. Result := EVP_des_ede_cfb64;
  25701. end;
  25702. function EVP_des_ede3_cfb: PEVP_CIPHER;
  25703. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25704. begin
  25705. Result := EVP_des_ede3_cfb64
  25706. end;
  25707. {$endif}
  25708. {$ifndef OPENSSL_NO_IDEA}
  25709. function EVP_idea_cfb: PEVP_CIPHER;
  25710. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25711. begin
  25712. Result := EVP_idea_cfb64
  25713. end;
  25714. {$endif}
  25715. {$ifndef OPENSSL_NO_RC2}
  25716. function EVP_rc2_cfb: PEVP_CIPHER;
  25717. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25718. begin
  25719. Result := EVP_rc2_cfb64;
  25720. end;
  25721. {$endif}
  25722. {$ifndef OPENSSL_NO_BF}
  25723. function EVP_bf_cfb: PEVP_CIPHER;
  25724. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25725. begin
  25726. Result := EVP_bf_cfb64;
  25727. end;
  25728. {$endif}
  25729. {$ifndef OPENSSL_NO_CAST}
  25730. function EVP_cast5_cfb: PEVP_CIPHER;
  25731. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25732. begin
  25733. Result := EVP_cast5_cfb64;
  25734. end;
  25735. {$endif}
  25736. {$ifndef OPENSSL_NO_RC5}
  25737. function EVP_rc5_32_12_16_cfb: PEVP_CIPHER;
  25738. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25739. begin
  25740. Result := EVP_rc5_32_12_16_cfb64;
  25741. end;
  25742. {$endif}
  25743. {$ifndef OPENSSL_NO_AES}
  25744. function EVP_aes_128_cfb: PEVP_CIPHER;
  25745. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25746. begin
  25747. Result := EVP_aes_128_cfb128;
  25748. end;
  25749. function EVP_aes_192_cfb: PEVP_CIPHER;
  25750. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25751. begin
  25752. Result := EVP_aes_192_cfb128
  25753. end;
  25754. function EVP_aes_256_cfb: PEVP_CIPHER;
  25755. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25756. begin
  25757. Result := EVP_aes_256_cfb128;
  25758. end;
  25759. {$endif}
  25760. {$ifndef OPENSSL_NO_CAMELLIA}
  25761. function EVP_camellia_128_cfb: PEVP_CIPHER;
  25762. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25763. begin
  25764. Result := EVP_camellia_128_cfb128;
  25765. end;
  25766. function EVP_camellia_192_cfb: PEVP_CIPHER;
  25767. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25768. begin
  25769. Result := EVP_camellia_192_cfb128;
  25770. end;
  25771. function EVP_camellia_256_cfb: PEVP_CIPHER;
  25772. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25773. begin
  25774. Result := EVP_camellia_256_cfb128;
  25775. end;
  25776. {$ENDIF}
  25777. {$ifndef OPENSSL_NO_SEED}
  25778. function EVP_seed_cfb: PEVP_CIPHER;
  25779. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25780. begin
  25781. Result := EVP_seed_cfb128;
  25782. end;
  25783. {$endif}
  25784. function EVP_PKEY_CTX_set_signature_md(ctx : PEVP_PKEY_CTX;md : PEVP_PKEY_CTX) : TIdC_INT;
  25785. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25786. begin
  25787. Result := EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG,
  25788. EVP_PKEY_CTRL_MD, 0, Pointer(md));
  25789. end;
  25790. procedure SSLeay_add_all_algorithms;
  25791. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25792. begin
  25793. OpenSSL_add_all_algorithms;
  25794. end;
  25795. procedure SSLeay_add_all_ciphers;
  25796. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25797. begin
  25798. OpenSSL_add_all_ciphers;
  25799. end;
  25800. procedure SSLeay_add_all_digests;
  25801. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25802. begin
  25803. OpenSSL_add_all_digests;
  25804. end;
  25805. procedure X509V3_set_ctx_nodb(ctx: X509V3_CTX);
  25806. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25807. begin
  25808. ctx.db := nil;
  25809. end;
  25810. function ERR_PACK(l, f, r : TIdC_INT) : TIdC_ULONG;
  25811. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25812. begin
  25813. Result := ((TIdC_ULONG(l) and $ff) * $1000000) or
  25814. ((TIdC_ULONG(f) and $fff) * $1000) or
  25815. (TIdC_ULONG(r) and $fff);
  25816. end;
  25817. function ERR_GET_LIB(const l : TIdC_INT) : TIdC_ULONG;
  25818. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25819. begin
  25820. Result := (l shr 24) and $ff;
  25821. end;
  25822. function ERR_GET_FUNC(const l : TIdC_INT) : TIdC_ULONG;
  25823. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25824. begin
  25825. Result := (l shr 12) and $fff;
  25826. end;
  25827. function ERR_FATAL_ERROR(const l : TIdC_INT) : Boolean;
  25828. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25829. begin
  25830. Result := (l and ERR_R_FATAL) > 0;
  25831. end;
  25832. function ERR_GET_REASON(const l : TIdC_INT) : TIdC_INT;
  25833. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25834. begin
  25835. Result := l and $fff;
  25836. end;
  25837. //__FILE__,__LINE__ preprocessor macros are not available in Pascal.
  25838. //so we can't pass error location info in the last two parameters.
  25839. procedure SYSerr(const f,r : TIdC_INT);
  25840. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25841. begin
  25842. ERR_PUT_error(ERR_LIB_SYS,f,r,nil,0);
  25843. end;
  25844. procedure BNerr(const f,r : TIdC_INT);
  25845. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25846. begin
  25847. ERR_PUT_error(ERR_LIB_BN,f,r,nil,0);
  25848. end;
  25849. procedure RSAerr(const f,r : TIdC_INT);
  25850. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25851. begin
  25852. ERR_PUT_error(ERR_LIB_RSA,f,r,nil,0);
  25853. end;
  25854. procedure DHerrr(const f,r : TIdC_INT);
  25855. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25856. begin
  25857. ERR_PUT_error(ERR_LIB_DH,f,r,nil,0);
  25858. end;
  25859. procedure EVPerr(const f,r : TIdC_INT);
  25860. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25861. begin
  25862. ERR_PUT_error(ERR_LIB_EVP,f,r,nil,0);
  25863. end;
  25864. procedure BUFerr(const f,r : TIdC_INT);
  25865. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25866. begin
  25867. ERR_PUT_error(ERR_LIB_BUF,f,r,nil,0);
  25868. end;
  25869. procedure OBJerr(const f,r : TIdC_INT);
  25870. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25871. begin
  25872. ERR_PUT_error(ERR_LIB_OBJ,f,r,nil,0);
  25873. end;
  25874. procedure PEMerr(const f,r : TIdC_INT);
  25875. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25876. begin
  25877. ERR_PUT_error(ERR_LIB_PEM,f,r,nil,0);
  25878. end;
  25879. procedure DSAerr(const f,r : TIdC_INT);
  25880. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25881. begin
  25882. ERR_PUT_error(ERR_LIB_DSA,f,r,nil,0);
  25883. end;
  25884. procedure X509err(const f,r : TIdC_INT);
  25885. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25886. begin
  25887. ERR_PUT_error(ERR_LIB_X509,f,r,nil,0);
  25888. end;
  25889. procedure ASN1err(const f,r : TIdC_INT);
  25890. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25891. begin
  25892. ERR_PUT_error(ERR_LIB_ASN1,f,r,nil,0);
  25893. end;
  25894. procedure CONFerr(const f,r : TIdC_INT);
  25895. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25896. begin
  25897. ERR_PUT_error(ERR_LIB_CONF,f,r,nil,0);
  25898. end;
  25899. procedure CRYPTOerr(const f,r : TIdC_INT);
  25900. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25901. begin
  25902. ERR_PUT_error(ERR_LIB_CRYPTO,f,r,nil,0);
  25903. end;
  25904. procedure ECerr(const f,r : TIdC_INT);
  25905. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25906. begin
  25907. ERR_PUT_error(ERR_LIB_EC,f,r,nil,0);
  25908. end;
  25909. procedure SSLerr(const f,r : TIdC_INT);
  25910. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25911. begin
  25912. ERR_PUT_error(ERR_LIB_SSL,f,r,nil,0);
  25913. end;
  25914. procedure BIOerr(const f,r : TIdC_INT);
  25915. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25916. begin
  25917. ERR_PUT_error(ERR_LIB_BIO,f,r,nil,0);
  25918. end;
  25919. procedure PKCS7err(const f,r : TIdC_INT);
  25920. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25921. begin
  25922. ERR_PUT_error(ERR_LIB_PKCS7,f,r,nil,0);
  25923. end;
  25924. procedure X509V3err(const f,r : TIdC_INT);
  25925. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25926. begin
  25927. ERR_PUT_error(ERR_LIB_X509V3,f,r,nil,0);
  25928. end;
  25929. procedure PKCS12err(const f,r : TIdC_INT);
  25930. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25931. begin
  25932. ERR_PUT_error(ERR_LIB_PKCS12,f,r,nil,0);
  25933. end;
  25934. procedure RANDerr(const f,r : TIdC_INT);
  25935. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25936. begin
  25937. ERR_PUT_error(ERR_LIB_RAND,f,r,nil,0);
  25938. end;
  25939. procedure DSOerr(const f,r : TIdC_INT);
  25940. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25941. begin
  25942. ERR_PUT_error(ERR_LIB_DSO,f,r,nil,0);
  25943. end;
  25944. procedure ENGINEerr(const f,r : TIdC_INT);
  25945. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25946. begin
  25947. ERR_PUT_error(ERR_LIB_ENGINE,f,r,nil,0);
  25948. end;
  25949. procedure OCSPerr(const f,r : TIdC_INT);
  25950. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25951. begin
  25952. ERR_PUT_error(ERR_LIB_OCSP,f,r,nil,0);
  25953. end;
  25954. procedure UIerr(const f,r : TIdC_INT);
  25955. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25956. begin
  25957. ERR_PUT_error(ERR_LIB_UI,f,r,nil,0);
  25958. end;
  25959. procedure COMPerr(const f,r : TIdC_INT);
  25960. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25961. begin
  25962. ERR_PUT_error(ERR_LIB_COMP,f,r,nil,0);
  25963. end;
  25964. procedure ECDSAerr(const f,r : TIdC_INT);
  25965. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25966. begin
  25967. ERR_PUT_error(ERR_LIB_ECDSA,f,r,nil,0);
  25968. end;
  25969. procedure ECDHerr(const f,r : TIdC_INT);
  25970. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25971. begin
  25972. ERR_PUT_error(ERR_LIB_ECDH,f,r,nil,0);
  25973. end;
  25974. procedure STOREerr(const f,r : TIdC_INT);
  25975. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25976. begin
  25977. ERR_PUT_error(ERR_LIB_STORE,f,r,nil,0);
  25978. end;
  25979. procedure FIPSerr(const f,r : TIdC_INT);
  25980. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25981. begin
  25982. ERR_PUT_error(ERR_LIB_FIPS,f,r,nil,0);
  25983. end;
  25984. procedure CMSerr(const f,r : TIdC_INT);
  25985. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25986. begin
  25987. ERR_PUT_error(ERR_LIB_CMS,f,r,nil,0);
  25988. end;
  25989. procedure TSerr(const f,r : TIdC_INT);
  25990. begin
  25991. ERR_PUT_error(ERR_LIB_TS,f,r,nil,0);
  25992. end;
  25993. procedure HMACerr(const f,r : TIdC_INT);
  25994. begin
  25995. ERR_PUT_error(ERR_LIB_HMAC,(f),(r),nil,0);
  25996. end;
  25997. procedure JPAKEerr(const f,r : TIdC_INT);
  25998. {$IFDEF USE_INLINE} inline; {$ENDIF}
  25999. begin
  26000. ERR_PUT_error(ERR_LIB_JPAKE,f,r,nil,0);
  26001. end;
  26002. procedure CRYPTO_w_lock(const _type : TIdC_INT);
  26003. {$IFDEF USE_INLINE} inline; {$ENDIF}
  26004. begin
  26005. {$IFNDEF OPENSSL_NO_LOCKING}
  26006. _CRYPTO_lock(CRYPTO_LOCK or CRYPTO_WRITE,_type, nil, 0);
  26007. {$ENDIF}
  26008. end;
  26009. procedure CRYPTO_w_unlock(const _type : TIdC_INT);
  26010. {$IFDEF USE_INLINE} inline; {$ENDIF}
  26011. begin
  26012. {$IFNDEF OPENSSL_NO_LOCKING}
  26013. _CRYPTO_lock(CRYPTO_UNLOCK or CRYPTO_WRITE,_type, nil, 0);
  26014. {$ENDIF}
  26015. end;
  26016. procedure CRYPTO_r_lock(const _type : TIdC_INT);
  26017. {$IFDEF USE_INLINE} inline; {$ENDIF}
  26018. begin
  26019. {$IFNDEF OPENSSL_NO_LOCKING}
  26020. _CRYPTO_lock(CRYPTO_LOCK or CRYPTO_READ,_type, nil, 0);
  26021. {$ENDIF}
  26022. end;
  26023. procedure CRYPTO_r_unlock(const _type : TIdC_INT);
  26024. {$IFDEF USE_INLINE} inline; {$ENDIF}
  26025. begin
  26026. {$IFNDEF OPENSSL_NO_LOCKING}
  26027. _CRYPTO_lock(CRYPTO_UNLOCK or CRYPTO_READ,_type, nil, 0);
  26028. {$ENDIF}
  26029. end;
  26030. function X509_LOOKUP_load_file(x : PX509_LOOKUP; name : PIdAnsiChar; _type : TIdC_LONG) : TIdC_INT;
  26031. {$IFDEF USE_INLINE} inline; {$ENDIF}
  26032. begin
  26033. Result := X509_LOOKUP_ctrl(x, X509_L_FILE_LOAD, name, _type, nil);
  26034. end;
  26035. function X509_LOOKUP_add_dir(x : PX509_LOOKUP; name : PIdAnsiChar; _type : TIdC_LONG) : TIdC_INT;
  26036. {$IFDEF USE_INLINE} inline; {$ENDIF}
  26037. begin
  26038. Result := X509_LOOKUP_ctrl(x, X509_L_ADD_DIR, name, _type, nil);
  26039. end;
  26040. procedure RAND_cleanup;
  26041. begin
  26042. if Assigned(_RAND_cleanup) then begin
  26043. _RAND_cleanup();
  26044. end;
  26045. end;
  26046. function RAND_bytes(buf : PIdAnsiChar; num : integer) : integer;
  26047. begin
  26048. if Assigned(_RAND_bytes) then begin
  26049. Result := _RAND_bytes(buf, num);
  26050. end else begin
  26051. Result := 0;
  26052. end;
  26053. end;
  26054. function RAND_pseudo_bytes(buf : PIdAnsiChar; num : integer) : integer;
  26055. begin
  26056. if Assigned(_RAND_pseudo_bytes) then begin
  26057. Result := _RAND_pseudo_bytes(buf, num);
  26058. end else begin
  26059. Result := 0;
  26060. end;
  26061. end;
  26062. procedure RAND_seed(buf : PIdAnsiChar; num : integer);
  26063. begin
  26064. if Assigned(_RAND_seed) then begin
  26065. _RAND_seed(buf, num);
  26066. end;
  26067. end;
  26068. procedure RAND_add(buf : PIdAnsiChar; num : integer; entropy : integer);
  26069. begin
  26070. if Assigned(_RAND_add) then begin
  26071. _RAND_add(buf, num, entropy);
  26072. end;
  26073. end;
  26074. function RAND_status() : integer;
  26075. begin
  26076. if Assigned(_RAND_status) then begin
  26077. Result := _RAND_status();
  26078. end else begin
  26079. Result := 0;
  26080. end;
  26081. end;
  26082. {$IFDEF SYS_WIN}
  26083. function RAND_event(iMsg : UINT; wp : wparam; lp : lparam) : integer;
  26084. begin
  26085. if Assigned(_RAND_event) then begin
  26086. Result := _RAND_event(iMsg, wp, lp);
  26087. end else begin
  26088. Result := 0;
  26089. end;
  26090. end;
  26091. procedure RAND_screen();
  26092. begin
  26093. if Assigned(_RAND_screen) then begin
  26094. _RAND_screen();
  26095. end;
  26096. end;
  26097. {$ENDIF}
  26098. initialization
  26099. {$IFDEF STATICLOAD_OPENSSL}
  26100. InitializeFuncPointers;
  26101. {$ELSE}
  26102. FFailedLoadList := TStringList.Create;
  26103. {$ENDIF}
  26104. SetFIPSMode := OpenSSLSetFIPSMode;
  26105. GetFIPSMode := OpenSSLGetFIPSMode;
  26106. IsHashingIntfAvail := OpenSSLIsHashingIntfAvail;
  26107. IsMD2HashIntfAvail := OpenSSLIsMD2HashIntfAvail;
  26108. GetMD2HashInst := OpenSSLGetMD2HashInst;
  26109. IsMD4HashIntfAvail := OpenSSLIsMD4HashIntfAvail;
  26110. GetMD4HashInst := OpenSSLGetMD4HashInst;
  26111. IsMD5HashIntfAvail := OpenSSLIsMD5HashIntfAvail;
  26112. GetMD5HashInst := OpenSSLGetMD5HashInst;
  26113. IsSHA1HashIntfAvail := OpenSSLIsSHA1HashIntfAvail;
  26114. GetSHA1HashInst := OpenSSLGetSHA1HashInst;
  26115. IsSHA224HashIntfAvail := OpenSSLIsSHA224HashIntfAvail;
  26116. GetSHA224HashInst := OpenSSLGetSHA224HashInst;
  26117. IsSHA256HashIntfAvail := OpenSSLIsSHA256HashIntfAvail;
  26118. GetSHA256HashInst := OpenSSLGetSHA256HashInst;
  26119. IsSHA384HashIntfAvail := OpenSSLIsSHA384HashIntfAvail;
  26120. GetSHA384HashInst := OpenSSLGetSHA384HashInst;
  26121. IsSHA512HashIntfAvail := OpenSSLIsSHA512HashIntfAvail;
  26122. GetSHA512HashInst := OpenSSLGetSHA512HashInst;
  26123. UpdateHashInst := OpenSSLUpdateHashInst;
  26124. FinalHashInst := OpenSSLFinalHashInst;
  26125. IsHMACAvail := OpenSSLIsHMACAvail;
  26126. IsHMACMD5Avail := OpenSSLIsHMACMD5Avail;
  26127. GetHMACMD5HashInst := OpenSSLGetHMACMD5Inst;
  26128. IsHMACSHA1Avail := OpenSSLIsHMACSHA1Avail;
  26129. GetHMACSHA1HashInst:= OpenSSLGetHMACSHA1Inst;
  26130. IsHMACSHA224Avail := OpenSSLIsHMACSHA224Avail;
  26131. GetHMACSHA224HashInst:= OpenSSLGetHMACSHA224Inst;
  26132. IsHMACSHA256Avail := OpenSSLIsHMACSHA256Avail;
  26133. GetHMACSHA256HashInst:= OpenSSLGetHMACSHA256Inst;
  26134. IsHMACSHA384Avail := OpenSSLIsHMACSHA384Avail;
  26135. GetHMACSHA384HashInst:= OpenSSLGetHMACSHA384Inst;
  26136. IsHMACSHA512Avail := OpenSSLIsHMACSHA512Avail;
  26137. GetHMACSHA512HashInst:= OpenSSLGetHMACSHA512Inst;
  26138. UpdateHMACInst := OpenSSLUpdateHMACInst;
  26139. FinalHMACInst := OpenSSLFinalHMACInst;
  26140. LoadHashLibrary := LoadOpenSSL;
  26141. LoadNTLMLibrary := LoadOpenSSL;
  26142. IsNTLMFuncsAvail := OpenSSLIsNTLMFuncsAvail;
  26143. NTLMGetLmChallengeResponse := OpenSSLSetupLanManagerPassword;
  26144. NTLMGetNtChallengeResponse := OpenSSLCreateNTPassword;
  26145. {$IFNDEF STATICLOAD_OPENSSL}
  26146. finalization
  26147. FreeAndNil(FFailedLoadList);
  26148. {$ENDIF}
  26149. end.